Fin de semana de Fórmula 1 en el Circuit de Cataluña

2 comentarios »

En primer lugar quiero agradecer a toda la gente que ha trabajado en la organización del 53 Gran Premio de España Telefónica de Formula One 2009 en el Circuito de Cataluña, y en especial a su director Ramon Praderas y a la secretaria de dirección Elisenda Bertran, por la atención prestada durante mi estancia para disfrutar en directo de la Fórmula 1. Lo cierto es que han estado pendientes en todo momento y es muy de agradecer su hospitalidad, máximo si tenemos en cuenta la enorme carga de trabajo que supone asegurarse de que todo sale bien cuando se organiza un Gran Premio de Fórmula 1.

Vaya por delante que poder disfrutar de la F1 en directo es una experiencia que todo el mundo debería probar, las sensaciones que se experimentan en un circuito no son comparables ni remotamente a verlo por televisión. Y desde luego el Circuito de Cataluña ofrece un marco increible para un fin de semana para el recuerdo. Eso si, si os pasa como a mi que me gusta escuchar el sonido de los monoplazas en vivo y no usais tapones os pasareis unos días medio sordos, pero merece la pena.

De las cosas que más me han llamado la atención de asistir al Gran Premio de España 2009 puedo salientar el calor de la aficción de Fernando Alonso, a pesar de que este año no están saliendo las cosas como se esperaba en pretemporada (parecia que el Renault sería más competitivo este año), la gente sigue allí animando y apoyando al bicampeón. Y es algo que el asturiano agradece, así como otros pilotos fueron mucho más esquivos con los aficcionados, él siempre estaba pendiente de saludar a los aficionados a sus entradas y salidas del paddock.

Desde luego el slogan de este año del Circuit, “La emoción es venir”, es de lo más acertado, lo más emocionante del Gran Premio de España es poder estar allí. Y a pesar de que la televisión hace parecer que los monoplazas pasán bastante lejos de las gradas, lo cierto es que están a escasos metros, lo que redunda en esa sensación de velocidad que ofrece la Fórmula 1. Podeis ver las fotos en mi galeria de Flickr, no están todas las iré subiendo poco a poco estos días.

Frameworks PHP: Zend vs Symfony

1 comentario »

Cuando uno se plantea por primera vez el uso de un framework en PHP comienza a darle vueltas a las posibilidades que ofrecen unos y otros. Aunque la curva de aprendizaje en el uso de un framework es dura, todo el tiempo que le dediquemos a conocer a fondo aquel por el que nos decidamos será el tiempo mejor invertido en formarnos como desarrolladores.

En este caso quiero plantear una comparación entre dos de los frameworks más extendidos Zend y Symfony.

Documentación y aprendizaje. Com he dicho la curva de aprendizaje para poder usar correctamente y con soltura un framework necesita de un esfuerzo, mucho más si llevamos años programando sin usarlo. Symfony dispone de guias y manuales en abundancia, y además cuenta con numerosos foros en varios idiomas donde la comundad va resolviendo dudas. En el caso de Zend, a pesar de ser el framework de la empresa que está detrás de PHP, la comunidad es algo escasa, por tanto su documentación también.

Pruebas unitarias. Symfony dispone de tareas por linea de comandos para realizar testing, y además genera una clase vacia con cada nuevo controdalor desde el que poder realizar las pruebas. Zend no dispone de esta funcionalidad, algo que me parece muy importante a la hora de lanzar una aplicación a un entorno de producción.

Plantillas y plugins. Al sistema de plantillas de Zend le queda todavía un largo camino que recorer, mientras que en Symfony el sistema está ya muy avanzado, con la posibilidad de agragar módulos. Y otro tanto ocurre con los plugins, en Symfony es posible aumentar sus funcionalidades a base de plugins, mientras que Zend carece de esta característica.

Bases de datos. El trabajo con base de datos en Zend se limita a usar ActiveRecord (que no digo que esté mal), pero en Symfony tienes la posibilidad de usar el motor de base de datos que quieras, incluyendo el propio Zend_Db, algo que aporta una enorme flexibilidad al desarrollador que puede elegir en cada proyecto cual es la mejor opción.

Como conclusión a lo dicho quiero añadir, para todos aquellos que quieran dar el salto a hacer desarrollos basados en un framework, que a pesar de que al principio pueda resultar un poco engorroso con el tiempo os ayudará a mantener una limpieza de código y un mantenimiento de aplicaciones mucho más sencillo.

Utilidad y uso de EXPLAIN en MySQL

1 comentario »

logo_mysql

A la hora de realizar una buena optimización de las consultas de MySQL habrá que prestar mucha atención a lo que dice la cláusula EXPLAIN. Su sintaxis es muy sencilla, basta anteponerlo a la consulta que queremos realizar para obtener toda la información.

EXPLAIN SELECT columna1, columna2 FROM tabla1 WHERE columna3 = ‘2′\G

El resultado que obtendremos será el plan de ejecución de la consulta a la base de datos. Una explicación de como accederá MySQL a las diferentes columnas involucradas en la consulta. EXPLAIN devolverá:

  • id: Es el identificador que EXPLAIN asignará a la consulta.
  • select_type: Tipo de consulta a analizar. Por ejemplo, si se trata de una consulta sencilla su valor será SIMPLE.
  • table: Nombre de la tabla a la que hacen referencia el resto de datos en la fila. Hay que tener en cuenta que el orden de las filas será el que utilizará MySQL para acceder a los datos.
  • type: Indica como MySQL combinará los datos de esa tabla.
  • possible_keys: Lista de los indices que se podrían utilizar, aunque podría no usarse ninguno.
  • key: Índice que finalmente se usará, si no se usa ninguno el valor del campo será NULL.
  • key_len: Tamaño del indice utilizado, si no se usó ninguno contendrá NULL.
  • ref: Muestra con que campo está relacionado el índice seleccionado.
  • rows: Número de registros que se tendrán que recuperar para ejecutar la consulta.
  • extra: Información adicional sobre la forma en que se obtendrán los datos.

Con esta información es posible encontrar donde se producen los cuellos de botella en las consultas que realizamos a la base de datos, y nos permitirá optimizarlas para evitar que una consulta lenta provoque un retraso injustificado en la devolución de resultados a los usuarios. En el manual de MySQL puedes encontrar más información.