Todo controlado con xDebug

xdebug-logoHay algo que considero fundamental para todo programador: un depurador. Si desarrollas con PHP debes conocer xDebug, este depurador te permitirá hacer un control exhaustivo de los errores que se produzcan en nuestra aplicación.

Tienes toda la información relativa a la descarga e instalación en la página oficial de xDebug. Una vez instalado recuerda indicarle a PHP, en el php.ini, la ruta donde se encuentra el paquete. También debes tener habilitado PHP para mostrar errores mediante la directiva display_errors.

Algunas funciones útiles:

xdebug_memory_usage( ): Devuelve la cantidad de memoria usada por nuestro script. Antes de PHP 5.2.1, esta función sólo funcinará si PHP fue complilado con –enable-memory-limit.

xdebug_time_index(): Devuelve el tiempo en segundos que ha tardado en ejecutarse el script.

xdebug_peak_memory_usage(): Devuelve el pico máximo de memoria usuado por el script.

Otra de las características más salientables de xDebug es la integración con IDE’s, entre ellos Eclipse y Netbeans, lo que permite la depuración de las aplicaciones sin salir del entorno de trabajo.

La instalación de xDebug debe estar reservada únicamente al servidor de desarrollo, puesto que la cantidad de información que muestra xDebug puede ser utilizada por un atacante para encontrar puntos de ataque.

WordPress 2.7 disponible

wordpressAunque este blog ya venía usando las versiones preliminares de la versión 2.7 de WordPress, no he querido hablar de ella hasta que fuese lanzada definitivamente, y a pesar de llegar 1 día tarde, ya esta diponible. La nueva versión ha realizado un profundo cambio en la interface del panel de administración, por lo que al principio puede llevar un poco de tiempo descubrir donde estan las cosas. Pero en mi humilde opinión el cambio ha sido magnífico.

Entre las nuevas caracterísiticas de WordPress 2.7, llamada Coltrane, cabe destacar:

  • mayor uso de javascript
  • cambio del menu superior por uno lateral a la izquierda
  • acceso más rapido a todas las secciones
  • posibilidad de minimizar el área de menu, aumentado el área de trabajo
  • personalización del area de trabajo, pudiendo arrastrar los modulos para colocarlos

Pero esto no es todo lo que podrás encontrar en la versión 2.7 de WordPress, si no lo has hecho ya, te recomiendo que actualices tu blog, seguro que después no querrás volver a las versiones anteriores.

[Descargar WordPress 2.7] [Versión en español Worpress 2.7]

Nueva versión estable PHP 5.2.8

php_snowEl pasado 4 de diciembre veían la luz dos nuevas versiones de PHP, por un lado la versión estable 5.2.7 y por el otro la relase candidate 5.3.0alpha3. Y tres días más tarde se anunciaba el fallo de seguridad en la 5.2.7 que provocaba que aunque magic-quotes-gpc estuviese activado se mantubiese como desactivado.

La recomendación era regresar a la versión 5.2.6, a la espera de que fuese lanzado PHP 5.2.8, pues bién tan solo un día más tarde ya estaba disponible 5.2.8 con el fallo corregido. A aquellos que instalasen 5.2.7 se recomienda actualizar a 5.2.8 para evitar cualquier problema de seguridad en ese sentido.

En cuanto a la RC PHP 5.3.0alpha3 trae consigo muchas novedades, entre ellas los namespaces, el cambio de compilador de gcc a cc, o un redondeo más preciso al trabajar con decimales.

Control de versiones

Todo aquel que se haya tenido que enfrentar a un desarrollo en el que participan varios programadores se habrá encontrado con el mismo problema: ¿quién tiene la versión buena?

Y esto deriva en varios problemas más: ¿dónde aplico el cambio? ¿hás modificado tal fichero? ¿has terminado esa parte? y, sobre todo, que ocurre cuando alguien comete un error y tardamos días en darnos cuenta, ¿cómo volvemos atrás?

La solución en estos casos es un contol de versiones, basicamente lo que permite es tener una copia actualizada del trabajo sobre un servidor (repositorio) y una copia guardada de cada cambio subido al repositorio (versiones). Cada vez que alguien quiera continuar el trabajo debe bajarse una copia del repositorio actualizada, trabajar sobre ella y luego subir los cambios al servidor, creando una nueva versión.

Aunque son bastante evidentes, estas son algunas de las ventajas de trabajar con un control de versiones:

  • Tener un control exacto sobre cual es la última versión del código, y quién y cuando la ha cargado.
  • Poder comparar versiones, viendo cuales han sido los cambios realizados.
  • Regresar atrás (a una vesión anterior) cuando lo que hemos desarrollado no nos ha dado los resultados esperados.
  • Crear distintas ramas del proyecto. Si llegado a un punto se hace necesario hacer dos aplicaciones con distintas funcionalidades, pero con cosas en común, se pueden separar en dos ramas.

Obviamente hay más ventajas del control de versiones, pero creo que sólo por las cuatro anteriores merece la pena usar cualquier sistema gestor de control de versiones.

Entre los sistemas de control de versiones destacaría los tres siguientes:

  • CSV (Concurrent Version System): Desarrollado por GNU se distribuye bajo licencia GPL. Fue muy popular hasta la aparición de Subversion.
  • SVN (Subversion): Hoy es el más popular, fue creado para mejorar CVS, mejorando sobre todo el manejo de archivos binarios.
  • Git: Diseñado por Linus Torvalds, es usado por el desarrollo del kernel de Linux, aunque no alcanza la popularidad de los otros dos.
  • Mercurial: Un gestor de vesiones para entornos distribuidos sin necesidad de usar un servidor.
  • Monotone: Al igual que Mercurial no usa servidor, cada cliente hace al mismo tiempo de cliente y servidor.

Más información: Wikipedia [Control de Versiones]

WordPress como tienda virtual

WordPress tiene hoy tantos plugins que su funcionalidad parece casi ilimitada. Entre esa funcionalidad está la de convertir el blog en una tienda virtual, lo cual te permitirá vender tus productos a través de la red de redes.

  • WP e-Commerce: Tu blog se convertirá en un completo carro de la compra para tus productos.
  • YAK for WordPress: Muy completo, pero bastante lioso a la hora de configurar puesto que tiene muchas formas de pago y de mostrar los productos.
  • eShop: Es el más sencillo de los tres, y también el más recomendable para comenzar en esto de la venta a traés del blog de WordPress.

Además de estos plugins, que convierten tu blog en una tienda virtual, hay otros dos con los que también podrás ganar dinero, pero sin vender productos.

  • WP BankRoll: Con este plugin podrás vender la publicación de artículos en tu blog. Puede enlazarlo con tu cuenta de Paypal y tambien da la opción de que el anunciante publique el mismo el artículo.
  • Easypaypal: Con este plugin puedes vender acceso al contenido, restringiendo el acceso y cobrando por ver el contenido de artículos y páginas.

Fuente: BloggerProfesinal

Soporte para Symfony en Netbeans 7.0

Ya es oficial, Netbeans 7.0 contará con soporte para Symfony, después de que la votación recibiese 469 votos a favor del soporte de este framework de PHP en la próxima versión de Netbeans.

Una gran decisión por parte de Netbeans incluir soporte para uno de los mejores frameworks de PHP he probado hasta la fecha. Y espero que siga mejorando, para finales de este año se espera que esté lista la versión 1.2 de Symfony, de momento ya esta disponible la beta 2 para probar sus nuevas funcionalidades.

Aunque personalmente prefiero usar Eclipse con PDT como IDE para el desarrollo en PHP (tengo que recordar probar este plugin para Simfony), es una gran noticia que Netbeans tenga soporte Symfony, esto ayudará a que más gente se anime a usar el framework.

Agrega funcionalidad a tu WordPress

Dentro de cada theme de WordPress podemos encontrar un fichero llamado functions.php, su función es poder ampliar la funcionalidad de nuestra copia de WordPress desde el propio theme, lo que implica que cuando actualicemos a una nueva versión no tengamos que volver a definir nuestas funciones. A través de aNieto2K descubro que Matt Varone muestra dos recopilaciones de funciones para añadir a nuestro functions.php y ayudarnos a ampliar su funcionalidad.

Descargar funciones 1 | Descargar funciones 2