Webgrind: frontend para Xdebug

Webgrind es una aplicación web que nos permite visualizar los datos que nos ofrece Xdebug.
webgrind.png
Es de fácil instalación, compatible con todas las plataformas y permite comprobar el tiempo gastado en las funciones según su coste. Además podemos conocer dónde es llamada cada función y qué función la llama.
Webgrind
Vía / PHPDeveloper.org

5 funcionalidades de PHP que no se puede ignorar

Yo más diría que se deben conocer, porque algunas suelen ser algo desconocidas.

  • SimpleXML: parser de XML muy sencillo y potente, ya he hablado de esta librería y la diferencia con el método anterior de parsing de los xml es abismal.
  • JSON y SOAP: para la comunicación entre aplicaciones, a mí personalmente JSON me encanta y su uso es simple, muy simple.
  • PDO: capa de abstracción para acceso de la BD que nos permite acceder a MS SQL Server, Sybase, Firebird/Interbase, IBM, Informix, MySQL, Oracle, ODBC y DB2, PostgreSQL, SQLite de forma transparente.
  • SPL: o Standard PHP Library, permite convertir elementos en arrays y tratarlos con iteradores.
  • SQLite: librería para poder trabajar con esta base de datos (SQLite).

5 PHP 5 features you can’t afford to ignore

Vía / PHPDeveloper.org

Transformar los errores en excepciones en PHP

Lo que más me gusta en Java es el tratamiento de los errores mediante excepciones, en PHP no está tan logrado, pero se puede apañar para que tenga un funcionamiento parecido:

set_error_handler('error_handler');
function error_handler($errno, $errstr, $errfile, $errline) {
if (4096 == $errno) throw new Exception($errstr);
return false;
}

El código 4096 indica que el error es capturable, se produce un error pero no produce un situación inestable.

Después podremos capturar los errores de la siguiente manera:

try {
// Operación que produce error
} catch (ErrorException $e) {
// Tratar el error
}

Turning errors into exceptions

Firebug y el rendimiento Ajax

Ajax es una de las técnicas que más se están extendiendo por Internet. Su desarrollo es sencillo, pero su abuso es importante. Hay que tener en cuidado al desarrollar usando Ajax ya que podemos tener problemas de rendimiento.
En IBM nos ofrecen un artículo interesante sobre el rendimiento de estas aplicaciones y como medirlo y mejorarlo mediante Firebug e YSlow.
El tiempo de una llamada Ajax se centra en tres aspectos: tiempo de respuesta del servidor, tiempo de transferencia y tiempo de procesado en el cliente. Es importante bajar estos tiempos ya que así agilizaremos nuestras aplicaciones.
Reduce el número de llamadas HTTP, aunque en el cliente se puedan anular, en el servidor se procesan, por lo que es tiempo de proceso malgastado. También es interesante reducir el tamaño del contenido de la respuesta que devuelve el servidor, cuanto menos haya para mandar, menos se tarda en enviar y menos se tarda en procesar.
Una lectura interesante que nos ayudará paso a paso a mejorar nuestras aplicaciones.
Ajax performance analysis

Epiware: gestión documental

Epiware es un software que nos permite gestionar nuestros documentos, algo que debería ser obligatorio en cualquier producto medianamente complejo. La documentación es algo que por definición no nos gusta hacer a los desarrolladores, pero es una parte de necesaria, y también es necesaria tenerla organizada.
epiware.png
Epiware nos permite organizar la documentación de varios proyectos, añadiendo herramientas como calendario, wiki, taréas o gráficos Gantt. Además dispone de un apartado de noticias, posibilidad de búsqueda de contenidos en los documentos o por metadata, acceso de carpetas, historico de las versiones y check-in/check-out.
Existe una versión open source y una comercial.
Epiware
Vía / Smashing Apss

Nueva versión de TCPDF, clase PHP para crear PDFs

TCPDF es una librería PHP que permite generar PDFs, la cual usé para crear Post2PDF (plugin para WP que exporta a PDF las librerías).

Entre las novedades que nos ofrece la versión 3 nos encontramos con:

  • Mejoras en el tratamiento de imágenes, como por ejemplo el resize para optimizar el tamaño del PDF o inclusión de todos los tipos de archivos admitidos por GD.
  • Posibilidad de añadir transparencia a los elementos
  • Mejoras para el tratamiento de los colores: CMYK o colores HTML
  • Mejoras en el core y en las clases: propiedades privadas…
  • Ejemplos actualizados
  • Cambio de licencia a LGPL 2.1
  • Solución de errores

TCPDF

Consejos para tener un buen código Javascript

Consejos que nunca vienen mal para desarrollar un código Javascript decente:

  • Que sea limpio y esté bien documentado: esto no es exclusivo de Javascript, pero parece que en este lenguaje se olvida. También es recomendable tener dos versiones del script, uno de desarrollo y otro de producción (que estará comprimido).
  • Usa ficheros externos: no incluyas los scripts dentro de tu HTML, usa scripts externos. A parte de ser más eficiente en el gasto del ancho de banda es reutilizable y más legible.
  • Separa la capa de presentación de la capa lógica: no añadas eventos en las etiquetas HTML, create Javascripts no intrusivos que modifiquen los elementos y añadan los eventos.
  • Define el ámbito de las variables: aunque no sea necesario usar var para definir las variables, hay que hacerlo, así evitarás sorpresas de modificación de variables, sobre todo si usas recursividad.
  • No pienses que por defecto se soporta Javascript: no todo el mundo dispone de javascript, por ello no es conveniente llamar a funciones javascript dentro del href de los enlaces, y es conveniente tener acción por defecto en un enlace cuando se quiere modificar su funcionalidad por javascript:
<a href="#" onclick="javascript:accionClick()">enlace</a>
<a href="enlace.html" onclick="accionClick(); return false;">enlace</a>

5 JavaScript Best Practices

BytesFall: explorador de archivos mediante PHP

BytesFall Explorer es un administrador de archivos vía web realizado en PHP y Javascript, que nos permite subir archivos, descargarlos, verlos, editarlos, copiarlos, mover o renombrarlos, comprimirlos y cambiar los permisos de un fichero, directorio o un grupo de ficheros y directorios.
bytesfall.png
Además es posible crear ficheros y directorios, y ejecutar comandos shell, todo ello basado en una interfaz parecida a la del explorador de Windows. Los usuarios son guardados en una BD (MySQL o PostgreSQL) para realizar la autenticación.
BytesFall Explorer