SOLID y Visitor: Un ejemplo explicado (2da Parte)

En un artículo anterior comenzamos una diseñar un componente que permitía recorrer directorios recursivamente y procesar los archivos que fuese encontrando en su recorrido. Todo esto se relacionó con los principios SOLID y el patrón de diseño visitante. En este artículo se terminará de diseñar el componente.

SOLID y Visitor: Un ejemplo explicado (1era Parte)

No es fácil encontrar ejemplos de los principios SOLID que sean lo suficientemente "realistas" y "didácticos" al mismo tiempo.

El siguiente ejemplo surge de un fragmento de código de un trabajo de tesis que actualmente estoy dirigiendo, y sirve para hablar de SRP (Single Responsibility Principle), OCP (Open-Closed Principle), ISP (Interface Segregation Principle) y DIP (Dependency Inversion Principle). El ejemplo resulta interesante porque abarca casi todos los principios SOLID y el único que queda por fuera es el LSP (Liskov Substitution Principle). Adicionalmente se muestra el uso del patrón Visitor, que es un patrón de diseño útil en algunos casos.

ContextFreeArt: Arte Gráfico Generado por una GLC

Encontré un uso "artístico" de las Gramáticas de Libre Contexto. Ya hay algunos antecedentes en computación gráfica sobre aplicaciones orientadas a generar arte (que lamentablemente no tengo a mano), pero este es el primero en el que veo que se utiliza una gramática de libre contexto.

La aplicación se llama Context Free Art, el enlace es:

http://www.contextfreeart.org/

Es interesante mencionar que la búsqueda realizada en Google por medio de la que llegué a Context Free Art fue “context free grammar graphics computing”.

Las Listas Azules

Cuento / Julio 2013

En el año 2113 el planeta estaba dividido en dos bandos. En cierto sentido se estaba librando una guerra, no una de esas que se pelean con tanques y balas, sino una nueva forma de guerra, una que se pelea en algo llamado Internet, específicamente en las Redes Sociales.

¡Estaba en llamas cuando me acosté!

Cuento / Octubre 2010

¡Camina, camina, camina! El hombre se movía lentamente por los oscuros corredores. Al final del pasillo se veía un poco de luz. Con suerte, lograría alcanzar lo que aparentemente era al final del día una salida. Sigue caminando, arrastrando una pesada carga. Un pico en la mano derecha que utiliza de bastón y hace un rato usaba para extraer carbón.

¿Cómo descomprimo un WAR? (Humor)

Este es uno de esos episodios graciosos con los que uno se encuentra en la industria de software (algunas veces más frecuentemente de lo que uno quisiera). En este post voy a "sacarle el cuero" a un colega, de modo que por razones evidentes, voy a usar nombres falsos.

Installing swi-prolog with JPL and plUnit support

I'm currently playing with Prolog, plUnit and JPL (Java Prolog binding) for a postgraduate course I'm taking. I had some trouble putting all together and making it work, so I decided to write this small tutorial to remember how to do it again later and to share it just in case anyone else is also having the same problems.

First, compile swi-prolog. Ubuntu swi-prolog package does not come with plUnit included so I had to compile it from the sources. I grabbed the latest (6.2.6) tarball from:

http://www.swi-prolog.org/download/stable

Webcast Sobre Proyectos Ágiles (23/01/2013)

Me acaba de llegar información que considero importante difundir:


Webcast sobre proyectos ágiles

Cuándo:
23/01/2013 - 19:30 hrs. a 21:00 hrs.

Dónde:
Caracas, Distrito Metropolitano de Caracas, Venezuela

Organiza:
Comunidad ágil de Venezuela,
pablolischinsky@evolucionagil.com

Impresiones sobre el taller de UML en el IUTET

El 16 y 17 de Noviembre del 2012 tuve el gusto de dictar un taller de UML a un grupo de profesores del IUTET (Instituto Universitario de Tecnología del Estado Trujillo).

UML, que significa en Inglés Unified Modeling Language (Lenguaje Unificado de Modelado en Español), es un lenguaje gráfico que se utiliza para modelar y representar aspectos técnicos y no técnicos de un sistema de software. Éste lenguaje, en esencia, permite que los desarrolladores de software puedan comunicar y documentar ideas y aspectos de diseño de un sistema de software.

RE: Academia e Ingeniería de Software

Nicolas Paez ha escrito un breve post sobre su percepción respecto a la forma en que se enseña Ingeniería de Software en distintas universidades en Latinoamérica. En lo personal, no he realizado investigación alguna al respecto en otras universidades (al menos no formalmente), y cualquier cosa que pueda decir se suscribe por lo pronto, únicamente a mi experiencia y a la forma en que enseñamos Ingeniería de Software en la Universidad de los Andes (ULA), en Venezuela.

Citas...

It's too late, my time has come // Sends shivers down my spine // Body's aching all the time // Goodbye everybody - I've got to go // Gotta leave you all behind and face the truth // Mama, ooo // I don't want to die // I sometimes wish I'd never been born at all

Queen - Bohemian Rhapsody
As a personal favor:
if youtube link is ever broken,
please warn me!

Cursos