viernes, 12 de junio de 2009

Rolland Garros : nuevas formas de contemplar los juegos

Rolland Garros 2009

Recientemente se ha organizado el Grand Slam Rolland Garros. Además de los juegos de excelente calidad, el evento también ha sido un hito para los medios de difusión. ¿Por qué? Simelo preguntan les digo que se han experimentado nuevas tecnologías que permitirán expandir los horizontes y satisfacer las demandas de las más disímiles audiencias.

Una naranja 3D en mi televisor

Televisión 3D Un año después de sus primeros experimentos, la compañía francesa Orange ha aprovechado la organización de los torneos internacionales de tennis en Francia para volver a ensayar la idea de las transmisiones de televisión en relieve 3D. Este año, se han instalado al menos 4 cámaras bifocales. Al tener estar características es posible reproducir diversos relieves. La tecnología, que ahora solo necesita unos 20 Mbps en vez de los 80 Mbps anteriores, se encuentre todavía en fase experimental y no está accesible en gran escala. Sin embargo cada vez son más frecuentes las presentaciones y proyecciones. En este caso se necesitan televisores especiales, y los espectadores deben utilizar gafas polarizadas para que la sensación de profundidad sea efectiva.

Según se explica, el costo de las aplicaciones 3D utilizadas resulta ser marginal para los productores y las cadenas de difusión. Por otra parte, los productores aseguran que este tipo de televisores estará disponible a partir del próximo año. Esto quiere decir que Orange tiene intenciones de obtener la luz verde para realizar este tipo de transmisiones a partir del año 2010 para todos aquellos clientes con acceso a la fibra óptica o próximos a un proveedor ASDL. Por tanto la compañía se sitúa como el líder indiscutible en este campo y cuenta con esta tecnología como sello distintivo frente a su competidor en la difusión de espacios deportivos y de cine, Canal+.

Difusión enlas redes de comunicación

Sin dudas el torneo ha resultado todo un éxito de audiencia para los ya tradicionales medios de difusión masiva como France Televisions. Sin embargo en esta edición otros como IBM y el mismo Orange también se han llevado su tajada al preocuparse por la presencia del evento en la red de redes. Big Blue, en su posición de socio de la Federación Internacional de Tennis y de responsable de los principales sitios web sobre Grand Slams, ha contabilizado este año cerca de 9,4 millones de visitantes en el sitio RolandGarros.com contra los 6,3 millones del año 2008. Más allá de los resultados de los partidos y de las galerías de fotos, este año el sitio ha marcado la diferencia debido al uso de aplicaciones interactivas como Slamtracker o VisualMatch. La primera permite seguir los resultados de los partidos, mientras que la segunda ofrece gráficos sobre el desempeño de los jugadores.

Orange también opta por este tipo de sistemas y aprovecha sus puntos fuertes: la telefonía celular. Siendo el proveedor de servicios de conectividad de France Television, este operador ha aprovechado el marco tan propicio para lanzar una aplicación que permitirá seguir los torneos desde los iPhone de Apple. A pesar de estar limitado su uso a los clientes que tienen contratos con esta compañía, la aplicación Orange Roland Garros ha tenido unas 118,000 descargas en solo quince días, acercándose a la cima del AppStore.

Conclusiones

Mientras hay sectores como la prensa escrita, por ejemplo, que afrontan dificultades, surgen otros que aportan nuevas dinámicas y prestaciones paradigmáticas. Bueno, simelo preguntan les digo que los medios de difusión se orientarán seriamente en esta dirección: interactividad, ubicuidad, contenidos variados, integración más servicios agregados. La cuestión es a dónde, cómo, para quién y cuándo llegan,

miércoles, 10 de junio de 2009

Google vs Microsoft : una confrontación por las nubes

En un artículo anterior ya les había introducido la carrera que se viene desatando ya en el terreno del SaaS. Pues bien, es hora de echarle un vistazo a los nuevos pasos que ha dado Google para reforzar su estrategia empresarial en esta dirección. Simelo preguntan solo les podría decir ... hasta la vista Microsoft.

La publicidad en tiempos de crisis

El marketing en línea ha sufrido también los embates de la crisis. Según la filial norteamericana del IAB (Interactive Advertising Bureau), organización que reune a las principales agencias y centrales de compra de esta rama en los Estados Unidos, los gastos en anuncios para sitios de Internet han alcanzado un volúmen de $ 5,500 millones USD en el primer trimestre del 2009. Esto representa una contracción del 5% anual.

http://img.neteco.com/photo/02207036.jpg

El hecho de que los primeros meses del año sean tradicionalmente menos dinámicos que el último trimestre del anterior, no es realmente algo fuera de lo normal. Sin embargo en este caso se reporta una reducción del 11% con respecto al cierre del 2008, hecho sin precedentes desde la caida de la bolsa de valores en los inicios de este siglo. De todas formas hay esperanzas de recuperación debido a que el marketing interactivo es el método más ajustado para llegar a los consumidores y con el clima actual, los medios resultan un elemento clave de las campañas publicitarias. Y como ya sabemos esta es la especialidad de Google. Es por esto que la compañía ha propuesto nuevas opciones de publicidad, mientras que otras han fracasado.

Ante esta situación ¿qué hará el gigante de Mountain View?

Discutámoslo en la oficina

Bueno, la versión oficial indica que recientemente hubo un encuentro en el Hotel Clift (San Francisco) entre algunos miembros de la compañía y varios periodistas, asociados y clientes. El tema era nada más y nada menos que el futuro de Google Apps y su orientación hacia el uso empresarial. Todas estas ideas girando alrededor de la expansión de sus servicios, la presentación de nuevos clientes y las estragtegias para facilitar la migración de los servicios hacia y desde su infraestructura.

El marco no podía ser más propicio el hotel Clift era un entorno ideal para tal cita puesto aque pertenece al grupo Morgan Hotels Group, el cual ha impulsado la migración hacia Google Apps de sus 1,750 empleados. Otro caso atraido por estos servicios fue JohnsonDiversey, un proveedor de productos relacionados con la higiene. En este caso se migraron sus 12,000 empleados hacia esta plataforma de comunicaciones. De esta forma reportan haber disminuido sus gastos en tecnología, mantenimiento y consumo de energía, producto de la consecuente eliminación de varios servidores de correo electrónico.

El hecho de que grandes compañías como estas abandonen los dominios de Microsoft Exchange para unirse a los de Google Apps es significativo; pero al mismo tiempo trae consigo otros retos. Para hacer menos traumática la transición se ha liberado la solución Google Apps Sync for Microsoft Outlook para los clientes de las ediciones Premier o Education. De esta manera se logra que este cliente de correos trabaje acoplado totalmente al tradicional Microsoft Outlook.

Conclusiones

La estrategia de facilitar el uso de sus servicios SaaS había sido ya precedida por el acceso offline a Gmail y por Google Apps Connector for BlackBerry® Enterprise Server. Se intenta así cautivar a más empresas para sobrepasar el número actual de 1,75 millones de compañías que utilizan actualmente Google Apps. También durante Google I/O 2009 se ha anunciado la próxima aparición de Google Wave, su nueva herramienta colaborativa integrada al servicio de mensajería, y Google Web Elements, que facilita la integración de las tecnologías de la compañía en otros sitios. Si a esto se le suman los SDC, ya queda clara la orientación de estos productos: las empresas. Más de 140 compañías presentaron sus aplicaciones construidas a partir de estos servicios y plataformas de desarrollo. En fin alrededor de todas estas propuestas hay, además, una comunidad de desarrolladores muy activa.

Simelo preguntan me aventuro a decir que los días del modelo de negocios de Microsoft están contados. Google se va convirtiendo en el principal arquitecto de lo que aparenta ser una nueva era. ¿Qué si es buena o mala? No me anticipo a dar respuestas, solo les aseguró que esa nueva era está ya a la vuelta de la esquina.

martes, 9 de junio de 2009

Web : Firefox a la medida

http://img.neteco.com/photo/0064000002077400.jpg

La Fundación Mozilla trabaja en un nuevo proyecto que debería permitir a las empresas la personalización del navegador web. La propuesta está basada en el próximo motor de búsqueda que estará disponible en un período de pocas semanas, según se estima. Con este enfoque bautizado como Build Your Own Browser, las organizaciones podrán encargar una versión a la medida de este software.

De acuerdo a la presentación de la idea, se podrán escoger varios elementos preestablecidos que serán descargados luego desde un servidor central. Según Sheri McLeish, analista de Forrester, Internet Explorer es todavía una opción muy popular en las empresas debido a que ofrece una gama de herramientas que permiten a los administradores la configuración centralizada de las opciones del navegador, y su integración con tecnologías como Microsoft Active Directory. Al respecto añade que :

Si Mozilla puede ofrecer opciones de personalización a los desarrolladores y profesionales de las IT, más allá de la marca, aportándoles además mejores herramientas de gestión para Firefox, entonces las organizaciones lo van a pensar dos veces antes de elegir el navegador predeterminado.

Por ahora aquí les va la proporción de navegadores y sistemas operativos utilizados por ustedes para consultar este blog. Simelo preguntan les diría que Firefox aparenta tener muy buena salud.

Supercomputadores : Sun anuncia Juropa2

Juropa2

Desde la compra por parte de Oracle de Sun Microsystems, este último multiplica sus comunicados. Esta vez se trata de los supercomputadores y su arquitectura abierta PetaFLOP, capaz de realizar más de 1,000,000,000,000,000 operaciones de punto flotante por segundo (Alabao ! ). Esta tecnología está orientada específicamente a realizar cálculos extremadamente complicados como los que se realizan en los centros de investigaciones y en la simulación de procesos reales y muy complejos complejos.

En Alemania esta infraestructura es utilizada en el marco del proyecto Juropa (Jülich Research on Petaflops Architectures) que está a su vez integrado con el programa europeo PRACE (Partnership for Advanced Computing in Europe). El centro de cálculo de Jülich ha puesto en servicio recientemente un superordenador que fusiona: servidores Bull NovaScale y Sun Blade X6275, aquipadas de procesadores Intel Xeon, librerías de middleware Partec, más soluciones InfiniBand a 40 GBps.

El supercalculador Juropa2 utiliza también servidores de almacenamiento de datos facilitados por Sun con una capacidad total de 500 TB soportados con el sistema de ficheros Lustre. Este sistema se distribuye bajo la licencia GNU GPL y forma parte del parque tecnológico de Sun tras compra el 2 de octubre del 2007 de Cluster File Systems, Inc. y desde entonces sus beneficios se han ido incorporando en el sistema de archivos ZFS y el sistema operativo Solaris. Además, 15 de los 30 supercomputadores más dotados utilizan este sistema de archivos, incluyendo el segundo más rápido Blue Gene/L. Sun afirma que Juropa2 es el supercomputador más potente aportado por la empresa entre los instalados en Europa.

En este dominio Sun siente la presión de sus competidores HP e IBM, así como del francés Bull. Simelo hubieran mencionado hace unos días, les hubiera dicho : ¿Se dan cuenta de la magnitud y de lo que implica la fusión de Oracle con Sun?. Por ahora espero que a nadie le queden dudas.

lunes, 8 de junio de 2009

Lo que es tuyo, mío y de todos ... La polémica de los datos

PiratPartiet

Los contenidos que se colocan en la web pueden llegar a ser una fuente de controversias. Esta vez analizaremos dos noticias que están relacionadas con este tema tan complejo del copyright, los derechos de autor y términos de uso de los sitios públicos y colaborativos. Nos enfrentamos al boom de los esquemas sociales en la web. Lo utilizan los políticos (bueno ... los que han tenido la visión suficiente para darse cuenta de sus ventajas y las del acceso de las personas a las redes de datos), las empresas, las organizaciones sociales, los profesionales, y muchos más. Pero ... ¿cuáles son las principales barreras para su desarrollo?

El caso Wikipedia

http://img.neteco.com/photo/00683578.jpg Considerado como un movimiento religioso en los Estados Unidos, y como una secta en Francia, la Iglesia Scientology parece haber trascendido los términos de uso de este sitio. El comité de arbitraje de esta enciclopedia libre y colaborativa ha determinado bloquear la edición de contenidos por parte de sus miembros desde todas las direcciones IP que pertenecen o son explotadas por la Iglesia Scientology y sus asociados. Compuesta de colaboradores elegidos por la comunidad, el comité ha acordado permitir la reintegración de sus miembros de forma individual y escalonada. Esta decisión se ha dictaminado después de meses de investigación alreadedor de violaciones de los términos de uso del servicio consistentes en modificaciones inapropiadas de contenidos. Se reporta que Roger Davies ha declarado a The New York Times que la decisión ha sido controvertida, que el consejo editorial ha tratado de no estigmatizar a un grupo de individuos, pero que la decisión era necesaria para controlar la situación.

Por otra parte, los afectados han aceptado la medida y han argumentado que : Wikipedia ha finalmente controlado a aquellos que se dedicaban a realizar publicaciones subjetivas y parciales con fines opositores en vez de aportar información fiable. Esto es lo más importante. Esperamos que la decisión se traducirá en tener artículos más fiables en línea y más útiles para los usuarios de la enciclopedia.

¿Piratas, suecos, partido, europeo?

Con un 7.1% de los votos segun las estimaciones más recientes, el Partido Pirata sueco ha logrado enviar uno o dos representantes al parlamento europeo. Sus principales intenciones resultan ser nada más y nada menos que la revisión de las leyes de copyright, la abolición de patentes, y la defensa de las libertades individuales en cuanto a las tecnologías digitales. El PiratPartiet ha obtenido unos 200,000 sufragios este domingo, y hasta el 19% de los votantes entre 18 y 30 años.

El líder de esta organización política ha hecho efectivo su estado de ánimo optimista después de entrar en la historia política del viejo continente y ha dicho que:

Esta tarde, los políticos han aprendido que el hecho de seguir las consignas tradicionales les podría costar su lugar.

Creado en el año 2006, el PiratPartiet no había brillado en la escena política sueca hasta el momento, pero esto ha cambiado después de la condena de los cuatro fundadores del sitio de descargas de BitTorrent The Pirate Bay. Este evento ha calentado los ánimos de algunos jóvenes suecos, y entraña una ola de adhesiones sin precedentes en el seno del partido, pasando de 15,000 a 45,000 afiliados y convirtiéndose en la cuarta fuerza política del país. Sus detractores, sin embargo, les reprochan que en realidad no presentan un programa político sólido y de valerse sola y simplemente de la reciente controversia acerca de las descargas ilegales para respaldar su ascenso.

The Pirate Bay Sí se trata de la reciente decisión de condenar a los miembros fundadores de este sitio a un año de privación de libertad y un pago de € 2,74 millones (de euros ;). El proceso fue seguido muy de cerca por la Asociación sueca del derecho de autor (SFU) y la Asociación sueca para la propiedad industrial (SFIR). Ante la apelación el gobierno sueco no se detuvo a considerar la apelación y la posibilidad de un nuevo juicio. Las autoridades reclamaron el pago inmediato de al menos la mitad de la penalización dictaminada, amenazando el bloqueo de las cuentas bancarias de los cuatro acusados hasta que se efectuara la transacción.

A todo esto se suma que poco después la estación de radio local Sveriges Radio P3 reveló que el juez Tomas Norström, era miembro de dos organizaciones promotoras del derecho de autor (¿veredicto parcializado?): la SFU y la SFIR. Dicho juez era miembro influyente de la primera y candidato al cosejo de dirección de la SFIR. En Suecia, como en otros países, los jueces son elegidos al azar para tratar asuntos judiciales. ¡Qué coincidencia! Parece que los números aleatorios les han jugado una mala pasada.

Por su parte Andrew Norton, responsable de la coalisión internacional de partidos piratas (sí, la cosa va en serio ;), ha mencionado que :

En solamente 42 breves palabras, hemos experimentado un crecimiento fulgurante y un reconocimiento importante a nivel mundial, en la medida que las inquietudes que hemos sacado a relucir han hecho que las personas tomen consciencia de los daños provocados por los partidos actuales al nivel de procesos fundamentales de la democracia.

Mientras, el partido pirata alemán ha recolectado menos del 1% de los votos, y por tanto ve frustrado su ascenso al nivel europeo. Existen otros partidos de este tipo alrededor del mundo.

Los otrora vikingos retoman sus intenciones de mover los cimientos de toda Europa. Pero esta vez todo apunta a un movimiento de dimensiones globales. ¿Hasta dónde llegarán en esta ocasión? Simelo preguntan solo les diré que cada vez será más grave la polémica de los datos.

Diseño: Tema PyTpp, ahora Trac se parece más a Python

http://trac-hacks.org/attachment/wiki/PyTppThemePlugin/screenshot.2.png?format=raw

Mudar la piel es algo que puede ser muy agradecido por los visitantes de un sitio. Esta vez le toca a Trac, por lo que hablaremos del tema PyTpp, el cual contiene las recientes mejoras que le he hecho al popular tema PyDotOrg. Algunas de las ideas que están recogidas en su versión 2.2.0 han sido experimentandas en este blog y puesto a prueba en el sitio web de mis proyectos. Si quiere saber de que se trata: ¡continúe leyendo hasta el final! . Espero sus sugerencias y comentarios. Simelo propone, muy probablemente sus ideas también podrán ser incluídas.

Motivación

Como ya mencioné el tema PyTpp está inspirado en el tema PyDotOrg. Este último trata de lograr a su vez que el sitio de administración de proyectos luzca de forma similar al sitio oficial de Python. Todo el trabajo comenzó debido a que había algunas características que faltaban. En primer lugar la sección de navegación del sitio (mainnav) todavía no era como la de python.org. A esto se le sumaban algunos problemas con las imágenes en la parte superior del sitio (banner). Por otra parte la información acerca del usuario y otros aspectos de meta-navegación del sitio (metanav) también diferían de los del sitio de referencia. Todo estos aspectos han encontrado algún tipo de solución, siempre tratando de no perder el espíritu de la interfaz de usuario de Trac (i.e. todo se parece a python.org, pero queda muy claro que estamos en un sitio de administración de proyectos implementado con Trac ;).

Otra característica incluída es que se mantienen fijas las tres áreas del sitio antes mencionadas más los enlaces de navegación contextual y el pie de página. De esta manera se logra aprovechar más el tiempo y no hacerle scroll a toda la página para navegar a otra ya más distante. Por lo general esto hace que los visitantes aprovechen mejor su tiempo, y que estén más al tanto de todas las partes que pueden ser de su interés.

Lo nuevo …

Para la más reciente versión 2.2.0 se ha hecho énfasis en la tipografía. Esta es una inquietud que he tenido desde hace muy poco tiempo, y creo que ya comienzo a ir cubriendo mis carencias. La realidad es que he constatado muy frecuentemente que este arte es relegado a un plano muy secundario, si es que se hace. Pero la realidad es que el uso inteligente de la tipografía facilita la lectura de las informaciones y no solo eso, también puede servir para ofrecerle una guía al usuario al resaltar determinados elementos ubicados dentro de una misma página. Se logra así atraer su atención.

Resulta curioso que todo esto está estudiado y puesto en práctica hace mucho tiempo en otros medios como la prensa escrita. En mi caso he ido descubriendo todos los detalles después de prestarle atención a la edición escrita de Le Monde Economie (sí los franceses son expertos en esto de la publicidad y el diseño gráfico), a Blogger in Draft y al formato de la publicación The Python Papers. Este último caso ha servido de referencia para los estilos aplicados a los encabezamientos de las páginas wiki, al ser de mi agrado y tan compatible con los colores del logotipo de Python. Sin embargo Blogger in Draft (que es otro que bien baila en la misma rama) me ha servido como guía para algunos otros detalles añadidos a este blog. Y más allá de todo eso, yo también puse un poquito de mi parte. Espero que les guste :).

Hasta aquí llegan las bondades que se pueden encontrar en la versión 2.1.0. Los nuevos cambios consisten en :

  • Modificar los tipos de letra empleados para los textos. De esta manera serán más legibles. Solo échenle un vistazo a lo que sugiere un libro especializado :

Arial is a common font choice, largely because of its dominance on Windows. Its poor design makes it unreadable at small sizes and a poor choice for body copy.

  • Variar el estilo de la primera letra del texto o artículo (en inglés dropcaps). Sí, exactamente lo que se ve al inicio de todas las entradas de este blog :).
  • Arreglar un problema con el Internet Explorer. Resulta ser que este navegador quiere seriamente romper el récord de incompatibilidades con los estándares de la web. En este caso específico :
    • No se interpreta el parámetro float como lo indica el estándar de CSS. Esto hace que haya que perder el tiempo para ajustar el estilo, y recurrir unos cuantos trucos. Antes las páginas se veían horribles con el mencionado navegador web.
    • Los dropcaps no funcionan, eso parece ser demasiado para un navegador tan defectuoso.
    • Las posiciones de los elementos no se interpretan como lo indica el estándar de CSS. Esto hace que la apariencia difiera a la que se logra browsers más serios como Opera o Firefox.

Pero bueno, al final los usuarios no tienen la mayor parte de la culpa, y todavía el infame Internet Explorer es bastante popular a pesar de ser tan incompatible. Por tanto apreciaría mucho si alguien me aporta sugerencias para homogenizar la apariencia al usar los tres navegadores ya mencionados.

Solo me resta invitarlos a que le echen un vistazo a este nuevo tema para Trac. Si tiene otras ideas o inquietud, bueno ... espero sus comentarios y sugerencias. Incluso en el caso de que no sea apropiado incluirlas en el tema oficial, simelo pide, no dudaría en indicarle como lograr que la apariencia se ajuste a sus necesidades particulares. Pero ... ¿esto es todo?

jueves, 4 de junio de 2009

¡ Bienvenido OpenSolaris 2009.06 !

El gigante estadounidense de los servidores y la informática Sun Microsystems, después de ser adquirido por Oracle, lanza OpenSolaris 2009.06. El sistema operativo basado en su pariente cercano (pero comercial ;) Sun Solaris está orientado a los sectores de servidores, puestos de trabajo y oficinas. La nueva versión integra opciones de configuración de virtualización para servidores (Xen Hypervisor para x86, los Containers de Solaris, dominios lógicos o LDoms para los sistemas Sun CMT) y de almacenamiento distribuido (proyecto Crossbow). Por otra parte se incluye soporte nativo para los sistemas de ficheros Microsoft CIFS (distribuido) y ZFS (de disco). Pero eso no es todo ...

Con respecto al proyecto libMicro de la comunidad OpenSolaris, Sun Microsystems ha dejado bien claro en un comunicado que las prestaciones del sistema son superiores a las de un sistema GNU/Linux considerando la gestión de la memoria (+35%), las operaciones de cálculo (+22%) y la planificación de múltiples tareas (+18%). Por ahora está disponible la versión Live CD que incluye al núcleo (kernel), librerías y utilitarios, acompañados todos de GNOME. A partir de esta versión sus usuarios, desarrolladores y los administadores de centros de datos pueden beneficiarse, aportando tarifas anuales, de un servicio de soporte comercial conocido como SunSpectrum.

lunes, 1 de junio de 2009

PyUMLGraph : Otra manera de contemplar el código

El viernes pude descargar una librería llamada PyUMLGraph. Su propósito es hacerle ingeniería inversa al código de Python para obtener diagramas UML. Si quiere constatar las mejoras recientes que incluí y las potencialidades del depurador de Python, este es el artículo que Ud debe leer, no lo dude. Claro que simelo pide también habrá otros comentarios y respuestas a sus inquietudes. Con más tiempo espero poder añadirle más funcionalidades a este maravilloso paquete que estaba en peligro de extinción en el ciberespacio. Por suerte existimos muchos con el firme propósito de mantener al software libre con vida. Esta vez creo que encontré una joya que solo requiere pulirla un poco. De más está decir que puedo hacerlo gracias a que se distribuye bajo la licencia GPL 2.0. Sí señores, el software libre es algo mágico.

¿Qué es PyUMLGraph?

PyUMLGraph, como ya dije, no es más que un paquete (que contiene un comando) que permite hacerle ingeniería inversa al código de Python para obtener diagramas de clase que se asemejen a los de UML. Hasta ahora lo que se obtiene es solo los aspectos visuales del diagrama y no el formato UML en sí. De hecho, todo parece indicar que por ahora los formatos que se pueden utilizar son PNG, GIF, SVG, SVGZ, PostScript, XFIG, MIF (i.e. FrameMaker), los ficheros HPGL y PCL utilizados por los plotters e impresoras láser de la compañía HP, diagramas de GTK+, mapas de imágenes para servidores web y para clientes (X)HTML, y en la mayoría de los casos también otros formatos (la lista es MUY larga ;^) como JPEG, PDF, PIC, VML, VRML y bitmaps.

Para ser más precisos, si queremos obtener un diagrama que muestre en un color amarillo claro (#FFFFCC) los atributos y métodos de las clases del módulo estándar unittest entonces una manera muy sencilla de hacerlo es ejecutando el siguiente comando:

$ pyumlgraph.py --all --nodefillcolor=#FFFFCC --bgcolor white -o ~/Desktop/unittest.graph /usr/lib/python2.5/unittest.py

Así se obtendría un gráfico como el siguiente ( ver con más detalle ) :

Un poco de historia

Desde el punto de vista cronológico el surgimiento del paquete se remonta apróximadamente al año 2003 . En sus orígenes fue el embrión de un intento para reproducir la funcionalidad que ya ofrecía UMLGraph para representar el código de Java. Este último es un proyecto mucho más abarcador y muchísimo más activo. De echo fue toda una Odisea encontrar el código de la versión 0.1.10 de PyUMLGraph y hasta ahora no he logrado saber si hay otras más recientes. Todo apunta a que está abandonado su desarrollo. Pero a pesar de estar en fase de gestación, tiene un diseño modular y características notables. Mejorar estos aspectos y adicionar otros, es solo cuestión de tiempo. Además la idea subyacente es simplemente genial ...

¿Cómo funciona PyUMLGraph?

Una de las primeras tareas que tiene que enfrentar este módulo es la de descubrir las clases, sus elementos y establecer relaciones entre ellas. Hay dos enfoques principales para abordar este tema. El primero consiste en realizar un análisis sintáctico del código Python y, a partir de los resultados, generar el diagrama.

La segunda es la que utiliza PyUMLGraph y consiste en tracear o emular la ejecución del código e incorporar las funciones y clases a medida que se vayan llamando. Al final (y esta es una de las características más importantes del lenguaje) en Python la declaración de una clase o función es también una instrucción y todo se va creando en tiempo de ejecución. Es por esto que estamos ante un comportamiento más parecido al del depurador de Python que al de un analizador sintáctico. De hecho, básicamente tanto el depurador de Python como el depurador de PyDev, como PyUMLGraph hacen exactamente la misma cosa : monitorean la ejecución de un programa. Las únicas diferencias residen en la manera en que reaccionan. En el primer caso, al encontrar un punto de ruptura (en inglés breakpoint) se interrumpe la ejecución del script y se lanza una interfaz de ejecución de comandos en modo texto para continuar paso a paso, ver el estado del programa, los valores de las variables locales y globales, y el millón de cosas que se puede hacer con el depurador. En el segundo caso ocurre algo muy parecido, solo que la interfaz se encuentra en varias pestañas del IDE Eclipse. Finalmente la tarea de PyUMLGraph consiste en monitorear las llamadas que se van sucediendo e ir creando un catálogo de clases y funciones. A partir de esta información se obtienen todos los restantes datos que se necsitan y se genera posteriormente el diagrama en cuestión.

Algo que también es preciso resaltar es la facilidad con la que se logra todo esto. ¡Compruébelo Usted mismo!

# Fragmentos relevantes del código de PyUMLGraph 
# para monitorear la ejecución del programa objetivo.

class InfoCollector:
 def collectInfoYes(self):
    sys.settrace(self.globalTrace)

 def collectInfoNo(self):
    sys.settrace(None)

 def globalTrace(self, frame, event, arg):
    "private"
    if event == "call":
       self.collectInfo(frame, event, arg)
    return self.localTrace

 def localTrace(self, frame, event, arg):
    "private"
    if event == "return":
       className, functionName = self.getClassAndFunctionName(frame)
       locals = frame.f_locals
       globals = frame.f_globals
       self.collectInfo(frame, event, arg)

Mis aportes

Si se preguntan cuales fueron mis aportes, aquí les enumero los que voy recordando (sí ... me estoy poniendo viejo XD ) :

  • Contabilizar en el modelo a los descriptores. Anteriormente la presencia de métodos estáticos en una clase, por ejemplo, hacía que fracasará la ejecución del comando.
  • Utilizar el módulo optparse en vez de getopt.
  • Arreglar un defecto que impedía que muchas clases no fueran detectadas en casos especiales (por ejemplo, con el módulo trac.core el diagrama quedaba vacío).
  • Incorporar la capacidad de filtrar los elementos del diagrama.
  • Cambiar el nombre de varias opciones para que sean compatibles con los estándares.
  • Una nueva opción para mostrar en el diagrama solamente las clases de módulos especificados como parámetros.
  • Mostrar los parámetros de los métodos junto con los tipos inferidos en tiempo de ejecución.
  • Añadir varios niveles de registro de eventos.

... en fin, nuevos bríos :). Por ahora el comando luce más o menos así :

$ pyumlgraph.py --help
Usage: pyumlgraph.py [OPTIONS] <Python program> [ARGS]

Options:
--version             show program's version number and exit
-h, --help            show this help message and exit

Diagram settings:
  --methods           Show class methods.
  --attributes        Show class attributes.
  --all               Equivalent to --types --methods --attributes
                      --references.
  --references        Distinguish between self and local references.

Color & styles:
  --node-fill-color=COLOR
                      Set the node fill color to this string.COLOR can be
                      Unix color name or a hex 3-tuple.
  --bgcolor=COLOR     Set the diagram's background color to this
                      string.COLOR can be Unix color name or a hex 3-tuple.

Files & Directories:
  -o FILE, --output-file=FILE
                      write dot language UML output to this file.

Class filters:
  --types             Include common types (str, int, dict, etc.).
  --include-modules=LIST
                      Consider only classes found in modules listed in LIST.

En el punto actual, el siguiente comando

$ pyumlgraph.py --all -v --node-fill-color=#FFFFCC -v --include-modules=unittest,__main__ -o ~/Desktop/unittest.dot /usr/lib/python2.5/unittest.py > ~/Desktop/unittest.log

... presentará el siguiente diagrama ( ver con más detalle )

Pero sucede que todavía hay muchas tareas por hacer, por ejemplo :

  • Mejorar la visualización del diagrama, especialmente el solapamiento de las relaciones de agregación por referencia y por valor.
  • Mejorar el layout, a veces las líneas quedan muy cerca, afectándose la legibilidad del modelo.
  • Resolver el error que ocurre al confeccionar modelos a partir de paquetes que utilizan pkg_resources.
  • Otras de las que ni siquiera me he dado cuenta ;^)

Conclusiones

El módulo analizado es un ejemplo de las posibilidades y la sencillez de la metaprogramación e introspección que ofrece Python. Entre sus virtudes se encuentra su naturaleza modular y las posibilidades de generación hacia cualquier otro formato con gran facilidad. Quizás en este último aspecto se necesite un mínimo de trabajo todavía para que se agilice aún más esta tarea ;o).

Sin embargo todo no es color de rosa. Como se ejecuta íntegramente el código de la librería analizada, sucede que los tiempos de ejecución pueden resultar elevados. Además esto puede traer efectos colaterales (e.g. conexiones de red, acceso a ficheros y recursos, cambios en el sistema). Por esta razón y otras, puede suceder que no se cubran todas las partes del programa durante la ejecución. En estos casos hay elementos que quedarían fuera del diagrama. Además, como se interceptan determinadas funciones básicas, se suplanta a cualquier depurador que se esté utilizando. De todas formas hay algunos casos de uso interesantes que pueden ser muy útiles. Por tanto, simelo preguntan, les diría que PyUMLGraph es uno de esos softwares que ilumina el camino para crecer y acercarnos a un fin bien claro. Espero poder recorrerlo con Ustedes, los lectores, aquí en el blog de Simelo.