Entradas etiquetadas con error

Solución: Error en NetBeans al conectar con un repositorio Subversion: handshake_failure
0Hace unos días me encontré con este problema. Fue después de actualizar Java a su versión más actual. Al ir a realizar un commit desde NetBeans 8.1 a un repositorio Subversion me devolvió este error, y claro, no pude realizar el commit.
Después de mucho indagar en el problema encontré que el JDK 1.8 ha abandonado el cifrado RC4 por inseguro, que es el cifrado que utilizaba el servidor donde tengo el repositorio. Así que como no tengo acceso al servidor, lo más adecuado es instalar la versión 1.7 de JDK y modificar NetBeans para que utilice esa versión.
Para indicarle a NetBeans la versión de JDK que debe usar debemos buscar un archivo llamado netbeans.conf, que habitualmente estará en el siguiente directorio:
C:\Program Files\NetBeans 8.x\etc\netbeans.conf
En ese archivo hay que buscar la variable netbeans_jdkhome y añadir la ruta de la versión del JDK:
netbeans_jdkhome="C:\Program Files\Java\jdk1.7xxxxx"
En mi caso ya tenía instalada la versión 1.7 de JDK, si tu no la tuvieras tendrás que instalarla primero
Guardamos el archivo, abrimos NetBeans y volvemos a hacer ese commit que se resistía.

Subversion y Apache, corregir el error 413 Request Entity Too Large
0Algunas veces, cuando realizamos commits con muchos archivos, Subversion no es capaz de procesar el commit y nos devuelve el error «413 Request Entity Too Large». Este error se produce porque el commit que estás realizando tiene un tamaño superior al que tiene configurado Subversion al hacer la petición.
Para corregirlo hay que añadir los siguientes parámetros al virtual host del servidor de Subversion:
- LimitXMLRequestBody 0
- LimitRequestBody 0
Con estos dos parámetros eliminarás el límite impuesto por Subversion.
Si lo deseas, en vez de eliminar el límite puedes aumentarlo a 64MB,256MB, etc.

Corregir los errores de microformatos en WordPress
0Como ya os comente en otro post, estoy haciendo una actualización del tema Mystique, el cual lleva sin actualizarse cerca de dos años. Esto me ha llevado a descubrir algunos fallos en el tema que hay que corregir. Uno de ellos es un problema con los microformatos.
Al utilizar la herramienta para Webmaster de Google, en la sección «Aspecto de la búsqueda«, apartado «Datos estructurados» nos aparecerá algo como lo de la siguiente imagen:
Continue reading “Corregir los errores de microformatos en WordPress” »
Tema Mystique para WordPress provoca el error child pid XXXXX exit signal Segmentation fault (11)
0Estoy seguro que conoceréis este tema para WordPress, el cual fue uno de los más valorados hace ya algunos años, de hecho este blog lo usa actualmente, aunque por desgracia la empresa que lo desarrolló lleva varios años sin mantenerlo, y eso provoca que aparezcan errores que antes no aparecían, por culpa de los avances en otras aplicaciones de las que depende este tema, como en nuestro caso, de PHP.
Bien, voy al grano: Hace varias semanas cambié el blog de servidor y de pronto, al entrar en un post, el blog se quedaba en blanco. No se mostraba contenido. Y en Chrome aparecía el error: ERR_INCOMPLETE_CHUNKED_ENCODING. Estoy seguro, que si te ha pasado, habrás exclamado la misma frase que yo: ¿Pero que coño es eso?.
Mirando los logs del blog, encontré el error: child pid XXXXX exit signal Segmentation fault (11), a lo que exclamé la misma expresión anterior, pero añadiendo un «¡Ostia puta!» al principio.
El segundo error es el importante. Es el que nos dice que algo se ha jodido en PHP. Pero… ¿Por qué? y lo más importante ¿El qué?.
Después de muchas pruebas, vi que el error se estaba generando en el tema Mystique, y más concretamente en la plantilla single.php.
Indagando más sobre el código conseguí llegar a la fuente del problema: cuatro putos ampersand (&) de los cojones que me han jodido un fin de semana entero con la tontería. El error es debido a la versión de PHP. En el servidor anterior era la 5.2, y en el actual es la 5.4.
Solución
Os explico la solución que es bastante sencillita:
En los archivos atom-core.php y AtomObjectPost.php busca la función «separate_comments», te deben aparecer dos resultados en cada archivo. Verás que delante de la función tiene un ampersand (&), elimínalo (con voz de El Padrino: «Que parezca un accidente»). Y con el resto de resultados igual. Guarda y solucionado.

WordPress 3.x para desarrolladores: Temas y plantillas, category.php, author.php, archive.php y 404.php
0Estas son las últimas plantillas que crearemos para nuestro tema.
CATEGORY.PHP
Creamos el archivo category.php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying Category Archive pages.
- *
- * @package WordPress
- * @subpackage New_Theme
- */
-
- get_header(); ?>
-
- <section id="primary">
- <div id="content" role="main">
-
- <?php if ( have_posts() ) : ?>
-
- <header class="page-header">
- <h1 class="page-title"><?php
- printf( __( 'Category Archives: %s', 'newtheme' ), '<span>' . single_cat_title( '', false ) . '</span>' );
- ?></h1>
-
- <?php
- $category_description = category_description();
- echo apply_filters( 'category_archive_meta', '<div class="category-archive-meta">' . $category_description . '</div>' );
- ?>
- </header>
-
- <?php newtheme_content_nav( 'nav-above' ); ?>
-
- <?php /* Start the Loop */ ?>
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php
- /* Include the Post-Format-specific template for the content.
- * If you want to overload this in a child theme then include a file
- * called content-___.php (where ___ is the Post Format name) and that will be used instead.
- */
- get_template_part( 'content', get_post_format() );
- ?>
-
- <?php endwhile; ?>
-
- <?php newtheme_content_nav( 'nav-below' ); ?>
-
- <?php else : ?>
-
- <article id="post-0" class="post no-results not-found">
- <header class="entry-header">
- <h1 class="entry-title"><?php _e( 'Nothing Found', 'newtheme' ); ?></h1>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'newtheme' ); ?></p>
- <?php get_search_form(); ?>
- </div><!-- .entry-content -->
- </article><!-- #post-0 -->
-
- <?php endif; ?>
-
- </div><!-- #content -->
- </section><!-- #primary -->
-
- <?php get_sidebar(); ?>
- <?php get_footer(); ?>
Esta plantilla está creada para mostrar los post que están en una misma categoría. La estructura de la página es idéntica al del resto que hemos visto del estilo.
AUTHOR.PHP
Creamos el archivo author-php y añadimos el siguiente código:
- <?php
- /**
- * The template for displaying Author Archive pages.
- *
- * @package WordPress
- * @subpackage New_Theme
- */
-
- get_header(); ?>
-
- <section id="primary">
- <div id="content" role="main">
-
- <?php if ( have_posts() ) : ?>
-
- <?php
- /* Queue the first post, that way we know
- * what author we're dealing with (if that is the case).
- *
- * We reset this later so we can run the loop
- * properly with a call to rewind_posts().
- */
- the_post();
- ?>
-
- <header class="page-header">
- <h1 class="page-title author"><?php printf( __( 'Author Archives: %s', 'newtheme' ), '<span class="vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( "ID" ) ) ) . '" title="' . esc_attr( get_the_author() ) . '" rel="me">' . get_the_author() . '</a></span>' ); ?></h1>
- </header>
-
- <?php
- /* Since we called the_post() above, we need to
- * rewind the loop back to the beginning that way
- * we can run the loop properly, in full.
- */
- rewind_posts();
- ?>
-
- <?php newtheme_content_nav( 'nav-above' ); ?>
-
- <?php
- // If a user has filled out their description, show a bio on their entries.
- if ( get_the_author_meta( 'description' ) ) : ?>
- <div id="author-info">
- <div id="author-avatar">
- <?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'newtheme_author_bio_avatar_size', 60 ) ); ?>
- </div><!-- #author-avatar -->
- <div id="author-description">
- <?php the_author_meta( 'description' ); ?>
- </div><!-- #author-description -->
- </div><!-- #author-info -->
- <?php endif; ?>
-
- <?php /* Start the Loop */ ?>
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php
- /* Include the Post-Format-specific template for the content.
- * If you want to overload this in a child theme then include a file
- * called content-___.php (where ___ is the Post Format name) and that will be used instead.
- */
- get_template_part( 'content', get_post_format() );
- ?>
-
- <?php endwhile; ?>
-
- <?php newtheme_content_nav( 'nav-below' ); ?>
-
- <?php else : ?>
-
- <article id="post-0" class="post no-results not-found">
- <header class="entry-header">
- <h1 class="entry-title"><?php _e( 'Nothing Found', 'newtheme' ); ?></h1>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'newtheme' ); ?></p>
- <?php get_search_form(); ?>
- </div><!-- .entry-content -->
- </article><!-- #post-0 -->
-
- <?php endif; ?>
-
- </div><!-- #content -->
- </section><!-- #primary -->
-
- <?php get_sidebar(); ?>
- <?php get_footer(); ?>
Esta plantilla muestra los post que un autor haya escrito. Lo más relevante del código es que para obtener los datos del autor se recupera el primer post, se genera la cabecera del contenido y después se reinicia el dataset para mostrar los post desde el primero, utilizando para ello la función rewind_posts().
ARCHIVE.PHP
Creamos el archivo archive.php y añadimos el siguiete código:
- <?php
- /**
- * The template for displaying Archive pages.
- *
- * Used to display archive-type pages if nothing more specific matches a query.
- * For example, puts together date-based pages if no date.php file exists.
- *
- * Learn more: http://codex.wordpress.org/Template_Hierarchy
- *
- * @package WordPress
- * @subpackage Twenty_Eleven
- */
-
- get_header(); ?>
-
- <section id="primary">
- <div id="content" role="main">
-
- <?php if ( have_posts() ) : ?>
-
- <header class="page-header">
- <h1 class="page-title">
- <?php if ( is_day() ) : ?>
- <?php elseif ( is_month() ) : ?>
- <?php printf( __( 'Monthly Archives: %s', 'newtheme' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format', 'newtheme' ) ) . '</span>' ); ?>
- <?php elseif ( is_year() ) : ?>
- <?php printf( __( 'Yearly Archives: %s', 'newtheme' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format', 'newtheme' ) ) . '</span>' ); ?>
- <?php else : ?>
- <?php _e( 'Blog Archives', 'newtheme' ); ?>
- <?php endif; ?>
- </h1>
- </header>
-
- <?php newtheme_content_nav( 'nav-above' ); ?>
-
- <?php /* Start the Loop */ ?>
- <?php while ( have_posts() ) : the_post(); ?>
-
- <?php
- /* Include the Post-Format-specific template for the content.
- * If you want to overload this in a child theme then include a file
- * called content-___.php (where ___ is the Post Format name) and that will be used instead.
- */
- get_template_part( 'content', get_post_format() );
- ?>
-
- <?php endwhile; ?>
-
- <?php newtheme_content_nav( 'nav-below' ); ?>
-
- <?php else : ?>
-
- <article id="post-0" class="post no-results not-found">
- <header class="entry-header">
- <h1 class="entry-title"><?php _e( 'Nothing Found', 'newtheme' ); ?></h1>
- </header><!-- .entry-header -->
-
- <div class="entry-content">
- <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'newtheme' ); ?></p>
- <?php get_search_form(); ?>
- </div><!-- .entry-content -->
- </article><!-- #post-0 -->
-
- <?php endif; ?>
-
- </div><!-- #content -->
- </section><!-- #primary -->
-
- <?php get_sidebar(); ?>
- <?php get_footer(); ?>
Esta plantilla muestra los post publicados en una fecha o entre fechas concretas.
Subversion: */props/tempfile.tmp. No se puede hallar la ruta especificada
1A veces las cosas fallan, sin más. Como en este caso, por alguna extraña razón Subversión no podía hallar la ruta especificada. Reviso la ruta y la carpeta no existe. Solución sencilla:
Creas la carpeta props y dentro de ella con el bloc de notas (si hablo de Windows, si estas en otro SO y te da este error (que lo dudo, sobre todo si es GNU/Linux) te dejo que elijas editor de texto xD) creas el archivo tempfile.tmp en blanco sin que tenga ni siquiera un espacio en blanco, le das a «Guardar como…» y en el deplegable elije «Todos los archivos» de esa forma podrás escribir la extensión del archivo y que no te lo guarde como txt.
Solo tienes que volver a realizar el commit y listo.
Pasar un proyecto symfony de un servidor a otro (a capón xD)
6Sí, soy un poco bestia para algunas cosas jejeje; en este caso tuve que pasar el proyecto con el que estaba trabajando en el portatil al ordenador de sobremesa. En el portatil tengo instalada una versión de WAMP y en el sobremesa AppServ así que cuando pasé la carpeta del proyecto con un copy&paste y fui a ejecutarlo al navegador, obviamente no funcionaba, exactamente daba este error:
Warning: sfAutoload::require(C:/wamp/www/sf_sandbox/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineDatabase.class.php) [sfautoload.require]: failed to open stream: No such file or directory in F:\AppServ\www\sf_sandbox\lib\vendor\symfony\lib\autoload\sfAutoload.class.php on line 188
Fatal error: sfAutoload::require() [function.require]: Failed opening required ‘C:/wamp/www/sf_sandbox/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineDatabase.class.php’ (include_path=’.;F:\AppServ\php5\pear’) in F:\AppServ\www\sf_sandbox\lib\vendor\symfony\lib\autoload\sfAutoload.class.php on line 188
Continue reading “Pasar un proyecto symfony de un servidor a otro (a capón xD)” »
Instalar Symfony + WAMP
26Una de las cosas más entretenidas de un programador (al menos para mí), es la de reciclarse cada poco tiempo para no quedarse estancado. Yo estoy en este proceso y después de varios días intentando instalar Symfony junto con WAMP al fin lo he conseguido (Sí, me ha costado un huevo, ¡que pasa! xD); para que otros desarrolladores no tengan que dedicarse a buscar información sobre como instalar Symfony junto a WAMP voy a explicar como realizarlo, los fallos que me ha dado, como solucionarlos, etc. Vamos allá.
Google sitemap y PHP
0Acabo de terminar de programar, testear y poner en servicio un pequeño script en php, que me permitire generar un archivo xml para que el robot de google lo procese, y así, indexar las páginas de una web mucho más rápido.
No lo utilizo en el blog, por la sencilla razón de que tengo un plugin que lo realiza automáticamente:http://wordpress.org/extend/plugins/google-sitemap-generator/. Este script sirve para webs o bien hechas desde cero sin cms de ningún tipo, o bien para cms modificados que requieran un sitemap especial.