Usando Iteradores para recorrer colecciones en PHP5

Patxi Echarte, June 30th, 2008

Los iteradores nos permiten recorrer de forma fácil colecciones de objetos, de forma similar a como recorreríamos un array o una lista con un while o un foreach. Imaginemos que tenemos una aplicación en la que tenemos una clase Book que representa libros y queremos utilizar una colección de libros. Una forma sería simplemente utilizar un array y utilizar las opciones que ofrece PHP para insertar o eliminar elementos, así como recorrer los existentes. Sin embargo esto podría no ser lo más adecuado desde el punto de vista de orientación a objetos ya que implica un acoplamiento alto entre la forma en la que implementamos la colección (un array) y los diferentes puntos de la apliación desde la que se usa.

En muchos casos es más conveniente crear una nueva clase BookCollection que represente la lógica de una colección, en este caso de libros. Esta clase abstraería a las clases usuarias de la implementación interna que se haga de la colección, que podría ser un array o cualquier otra estructura de datos, permitiendo cambiar esta implementación sin tener que tocar nada en el resto de la aplicación.
Leer »

Retomando PHP tras una larga temporada

Patxi Echarte, June 23rd, 2008

Pues sí, tras más de dos años sin trabajar con PHP he vuelto a él. En este tiempo he hecho alguna cosilla en PHP pero principalmente he estado trabajando con otras tecnologías como Java y .NET. No hay ningún motivo especial en ello, simplemente que los derroteros de la vida me han llevado hacia un entorno distinto al de la web, por lo que únicamente he utilizado PHP para mantener este blog y para algunos scripts de mantenimiento y pequeñas utilidades.

Conocí PHP allá por el fin de siglo pasado, cuando todavía se utilizaba PHP3 y comenzaba a oirse a hablar de PHP4. Desde el principio fue un lenguaje que me encantó por su sencillez, la cantidad de funciones y librerías incluidas y la facilidad que ofrecía para hacer aplicaciones web. Sin embargo conforme lo usaba para afrontar proyectos cada vez más grandes se hacían patentes algunas de sus carencias, centradas principalmente en la tendencia a realizar código spaghetti o mezclar la lógica y la presentación, lo cual hacía que las aplicaciones se volvieran inabordables e inmantenibles.

Leer »

Más fotos de Ibai

Patxi Echarte, June 14th, 2008

Ibai cumplió hace un par de semanas, el 4 de Junio, su medio año de vida. Como sois varios los que me demandáis fotos nuevas cada vez que me veis, aquí os pongo algunas para que podáis disfrutarlas. Os recuerdo que tenéis más fotos en páginas anteriores como ésta y ésta.

Leer »

Mejoras destacables en MythTV y Ubuntu

Patxi Echarte, May 30th, 2008

Hace unos meses publiqué una entrada en la que explicaba como configurar MythTV con Ubuntu y una tarjeta Hauppage WinTV Nova-T-500. La arquitectura que monté en su día se basa en un servidor de archivos Linux en el que instalé el backend de MythTV y la tarjeta con los dos sintonizadores. La parte frontend consta de un Mac Mini conectado a la televisión por HDMI y un portátil con Ubuntu, ambos con el frontend de MythTV. Los frontends son capaces de acceder a la programación de TV del servidor, así como a los recursos multimedia como música, vídeos y fotos del servidor a través de conexiones NFS.

Desde que escribí esos artículos he utilizado este sistema prácticamente a diario, principalmente para la visualización de videos. Sin embargo me he encontrado con bastantes problemas con la parte de visualización de la TV, en parte por problemas con el modulo dvb de Linux y en parte por la mala calidad de la señal que llega hasta mi casa. Además también he tenido bastantes problemas a la hora de configurar la visualización de videos en el Mac Mini, que hacía con el Mplayer, ya que aunque me permitía ver los vídeos sin problemas, no me dejaba ni pausarlos ni volver al menú una vez empezada la visualización.

Sin embargo con la reciente llegada de Ubuntu 8.04 Hardy Heron y MythTV 0.21, todo esto se ha resuelto y ya dispongo de una infraestructura completamente satisfactoria.

Leer »

Almacenes de tripletas RDF

Patxi Echarte, May 20th, 2008

RDF es un modelo de metadatos basado en el concepto de sentencias de la forma “sujeto-predicado-objeto”, denominadas tripetas RDF. Este modelo ofrece una adecuación mayor para la representación del conocimiento que el modelo relacional de las bases de datos tradicionales, por lo que se ha utilizado para definir otros estándares como RDFS y OWL, enfocados a la representación del conocimiento como ontologías, tal como he explicado en algún post anterior.

Las tripletas representadas mediante RDF, bien provengan de un archivo RDFS, OWL, o cualquier otro derivado, se pueden almacenar de diversas formas, aunque la serialización más habitual se basa en la utilización de archivos XML. Este modo de representación presenta inconvenientes cuando se trabajan con volúmenes de información grandes, que sin embargo, es un punto donde precisamente las bases de datos relacionales llevan muchos años dando excelentes resultados. Es por esto que desde hace unos años existen diversos productos que permiten almacenar las tripletas RDF en bases de datos, principalmente relacionales, aunque también existen algunos productos con modos de almacenamiento específicos.

Leer »

Introducción a Cloud Computing

Patxi Echarte, May 5th, 2008

Hace un par de semanas publiqué un post en el que hablaba sobre los servicios de computación que ofrecen tanto Google como Amazon. Estos servicios, especialmente los que ofrece Amazon, permiten pensar en el hardware como una “utility” más, al mismo nivel que puede estar la electricidad o el ancho de banda. Bajo este prisma […]

Servicios de computación con Google y Amazon

Patxi Echarte, April 21st, 2008

Una de las noticias que más revuelo han causado en las últimas semanas ha sido la publicación del servicio Google App Engine, con el que Google ofrece a los desarrolladores la opción de crear y ejecutar aplicaciones sobre su infraestructura. La idea no es nueva y está relacionada en mayor o menor medida con […]

Experimentos con Mono, MonoDevelop y MySQL

Patxi Echarte, April 15th, 2008

Recientemente he tenido que desarrollar una serie de programas para mi tesis relacionados con temas de la Web Semántica, Folksonomías, etc. Hasta ahora había hecho ya unos cuantos en Java con Jena para trabajar con ontologías y algunos experimentos en C# con SharpDevelop con implementaciones de algoritmos de lógica difusa para pattern matching. De cara […]

Creado en .NET | 1 Comentario »

Libro sobre Blogs

Patxi Echarte, April 3rd, 2008

Vía el blog de S21Sec veo la publicación de un interesante libro sobre blogs. El libro ha sido escrito por Alberto Ortiz de Zárate Tercero y se titula “Manual de uso del blog en la empresa. Cómo prosperar en la sociedad de la conversación.”.
Alberto hace una presentación acerca de qué son los […]

Ventanas de diálogo desde scripts de consola

Patxi Echarte, April 2nd, 2008

Zenity es una herramienta que forma parte del proyecto GNOME que permite realizar scripts y programas de consola más usables y amigables para el usuario final, ya que permite mostrar diferentes tipos de mensajes en forma de ventanas de diálogo GTK+.
Por ejemplo, puede utilizarse para mostrar un calendario y que el […]