May 25 2007

Profiling en PHP

Tag: ProgramaciónManuel Jesús Recena Soto @ 01:07

Desde hace algunas semanas tengo pendiente escribir sobre profiling en PHP. Hace tiempo que no desarrollo ningún proyecto serio con PHP, sin embargo es un lenguaje de programación que siempre me traerá buenos recuerdos y del que procuro nos desvincularme demasiado. Aunque el marco tecnológico en el que me muevo ahora es otro, creo que es necesario no perder de vista otra opciones porque nos pueden aportar soluciones muy interesantes.

La intención de este post, y algún otro que le seguirá, es proporcionar algunas referencias para instalar y configurar un entorno de desarrollo con PHP en que tengamos la posibilidad de realizar debugging y profiling de forma más o menos seria. Las instrucciones están hechas sobre el sistema operativo Microsoft Windows, pero son fáciles de trasladar a otros sistemas operativos.  Antes de comenzar necesitamos conocer los requisitos para la instalación:

  • WAMP Server: Es un paquete preparado para Microsoft Windows ( lo he probado en Windows 2000, Windows XP y Windows Vista) que a través de un instalador tendremos disponible un Apache Web Server, PHP5 y MySQL. Concretamente, WAMP 1.7.1 tiene Apache Web Server 2.2.4, PHP 5.2.2 y MySQL 5.0.37. Al igual que este paquete existen otros como por ejemplo XAMPP (disponible para Microft Windows, Linux, Solaris y Mac OSX) y MAMP (disponible para Mac OSX y con una versión PRO),
  • Xdebug : Es la herramienta que nos proporcionará las trazas de los mensajes de error, información sobre la memoria consumida por los script, información sobre los tiempos de ejecución de script, funciones, etc… Esta herramienta se instalará y configurará como una extensión del intérprete de PHP. La versión que usaremos será la 2.0.0RC para Microsoft Windows y PHP 5.2.1 .
  • WinCacheGrind: Esta herramienta está disponible para Microft Windows y es la que nos permitirá analizar los archivos que Xdebug genera con la información de profiling a partir de una interfaz gráfica. Esta herramienta no es necesaria porque Xdebug permite varios modos para monitorizar la información, sin embargo, el que personalmente me parece más interesante es el que genera unos archivos que posteriormente pueden ser analizados con WinCacheGrind.

Una vez que nos hemos descargado el instalador de WAMP Server, Xdebug (extensión para PHP) y WinCacheGrind, procedemos a su instalación:

  1. De la instalación de WAMP Server poco hay que destacar porque precisamente una de las ventajas que tiene usar este tipo de paquetes en lugar de instalar las cosas de forma individual, es que proporciona un asistente que si mal no recuerdo lo único que pregunta es el directorio para la instalación, posibilidad de configurar los puertos con los que Apache Web Server y MySQL trabajarán y poco más. Tras la instalación y ejecutando wampserver tendremos una utilidad desde la que podremos lanzar los servicios y configurar Apache, MySQL y PHP. A continuación debemos lanzar los servicios, en nuestro caso con lanzar Apache Web Server es suficiente.
  2. Para comprobar que la instalación se ha realizado correctamente, podemos acceder desde nuestro navegador web a http://localhost y ver una página con información sobre el paquete instalado.
  3. Para instalar la extensión de PHP correspondiente a Xdebug:
    1. Copiamos la DLL en el directorio WAMP_INSTALL_DIR/php/ext/
    2. Habilitamos la extensión editando el archivo php.ini que se encuentra en WAMP_INSTALL_DIR/Apache2/bin
    3. Buscando la sección del archivo donde se encuentran el resto de extensiones añadimos la siguiente línea: zend_extension_ts=”WAMP_INSTALL_DIR/php/ext/LIBRARY_NAME”
  4. Reiniciamos Apache Web Server y accedemos al phpinfo que nos proporciona la págna principal de WAMP Server. Para comprobar que la extensión se ha cargado correctamente debemos obtener:
  5. Para descripción detallada sobre cada uno de los parámetros de configuración visitar la página de xdebug. A continuaciónun ejemplo de configuración básica (profiling):
    Sección con la configuración de Xdebug en php.ini

Espero que estas notas ayuden a configurar un entorno de desarrollo con PHP con la posibilidad de realizar tareas de profiling. Intentaré añadir un screenscast con un ejemplo.


May 10 2007

Software QA: ¿vaporware?

Tag: Software QAManuel Jesús Recena Soto @ 09:55

Aprovecho esta entrada en el blog para inaugurar una nueva categoría de contenidos, Software QA. Es un campo en el que siempre me he sentido muy cómodo e interesado quizás debido a lo detallista, cuidadoso y organizado que me gusta ser con las cosas que hago. Aunque bueno, no siempre se pueden hacer las cosas como uno quiere.

Es para mi un placer informaros sobre un evento de Software QA totalmente gratuito. Algunos datos importantes sobre el evento:

FECHA:

29 de mayo de 2007

LUGAR:

HOTEL MELIA COLÓN
CANALEJAS, 1 SEVILLA
ESPAÑA - 41001

A continuación tenéis la información del díptico con el que se está publicitando el evento:

El aseguramiento de la calidad del software (Software QA o SQA) ha sido típicamente un paradigma en torno al cual los consumidores de eSolutions han volcado sus expectativas, recibiendo generalmente productos cerrados dentro de los cuales es imposible vislumbrar
marcos de referencia, metodologías, procedimientos, etc, con los que asegurar la calidad del software.

En GMV entendemos que SQA debe ser concebido como un requisito intrínseco a cualquier desarrollo que se afronte y no como un elemento de valor añadido, motivo por el cual constituye por sí mismo una de nuestras líneas de trabajo fundamentales.

Utilizando como base tanto la experiencia acumulada en el desarrollo de productos software propios o soluciones a medida según las exigencias del cliente, como las labores de I+D que se realizan a nivel interno, hemos definido una infraestructura sólida sobre la que afrontar nuevos retos de forma más eficiente. Convencidos de los beneficios que se están obteniendo creemos que es el momento de compartir nuestras experiencias y reflexiones al respecto.

En este seminario, GMV le invita a conocer su visión acerca de la importancia de SQA para minimizar riesgos y maximizar la calidad y la ransparencia de los productos resultantes. Adicionalmente, se expondrán una serie de buenas prácticas, metodologías y herramientas concretas que nos están permitiendo incrementar nuestra eficiencia y mejorar la satisfacción de nuestros clientes.

Dado que el número de plazas es limitado, le rogamos nos envíe su solicitud a la dirección o teléfono que abajo le indicamos.

RESERVAS: marketing-sgi@gmv.com / +34 954 088 060

GMV SOLUCIONES GLOBALES
INTERNET, S.A.
OFICINAS SEVILLA
Avda. Américo Vespucio
Edif. Cartuja. Bloque E -1ª Pta
41092 - Sevilla
Tel: +34 9954 088 060
Fax: +34 954 081 233
infosgi@gmv.com
www.gmv-sgi.com

En el díptico también se ha publicado la agenda del evento:

9:30h - 10:00h: Recepción, entrega de documentación y café

10:00h - 10:15h: Introducción a GMV

Ponente: Miguel Hormigo, Director de la Delegación de Andalucía, GMV-SGI

10:15h - 11:00h: Aseguramiento de la calidad: una aproximación cualitativa

Ponente: José M. Palacio, Responsable de SQA de la Delegación de Andalucía, GMV-SGI

11:00h - 12:00h: ¿Y ahora qué? El día a día

Ponente: Manuel Gómez, Responsable de desarrollo de la Delegación de Andalucía, GMV-SGI

12:00h - 12:30h: Pausa - Café

12:30h - 13:30h: Modelando la calidad con software libre

Ponente: Manuel J. Recena Soto, Responsable de Innovación de la Delegación de Andalucía, GMV-SGI

13:30h - 14:00h: Demostración práctica

Ponente: Manuel J. Recena Soto, Responsable de Innovación de la Delegación de Andalucía, GMV-SGI

14:00h: Cóctel

Sin intención de desvelar los secretos de las ponencias simplemente daros algunas palabras clave: metodología, procedimientos, buenas prácticas, sistemas de control de versiones, seguimiento de incidencias y errores, procesos de construcción, pruebas unitarias, pruebas funcionales, pruebas de sistemas, integración continua, etc… el resto se desvelará durante el evento.


May 09 2007

1er Concurso Universitario de Software Libre - Fase final

Tag: Conocimiento libreManuel Jesús Recena Soto @ 11:11

Durante estos meses atrás muchos grupos de trabajo han estado trabajando para que el 1er Concurso Universitario de Software libre haya tenido una alta participación y gran difusión. El concurso llega a su fin y durante los días 10 y 11 de Mayo en la Escuela Técnica Superior de Ingeniería Informática de Sevilla se celebrará la fase final del concurso. La asistencia es gratuita y únicamente requiere una inscripción en el sitio web del concurso.


May 05 2007

Soporte, formación y consultoría para Maven y sus alrededores

Tag: Opiniones y reflexionesManuel Jesús Recena Soto @ 23:31

Leo en el blog de Vincent Massol que Jason Van Zyl, uno de los desarrolladores más activos del proyecto Apache Maven, ha puesto en marcha una empresa para dar soporte, formación y consultoría en construcción de proyectos software a partir de maven. La empresa se llama Sonatype y según leo en su sitio web, los fundadores de la empresa otra cosa no, pero experiencia en el desarrollo opensource no les falta.

Me alegra mucho ver como nacen empresas que ofrecen servicios basados en la experiencia. ¿Quién mejor que uno de los desarrolladores de la herramienta que usamos para ayudarnos y orientarnos? Personalmente me parece una opción profesional estupenda. Sonatype hace de su experiencia un producto, además un producto que inicialmente parte con mucha credibilidad y proporciona confianza. Sólo hay que hacer una búsqueda por la red para comprobar la trayectoria y actividad de los fundadores.

No olvidemos que maven viene para agilizar y mejorar nuestros procesos de construcción, lo cual está íntimamente relacionado con el aseguramiento de la calidad y con la productividad. ¿Tendría mercado en España este tipo de empresas? ¿Creéis que empresas o departamentos de desarrollo de software harían uso de este tipo de servicios? ¿Cómo es la calidad del software que se vende? ¿Qué nivel de importancia y dedicación le dan las empresas de software al aseguramiento de la calidad? ¿Y las empresas o administraciones públicas que contratan (consumen software por encargo) software?