« Abril 2007 | Bitácora principal | Junio 2007 »

A través de un comentario de Joel Spolsky, llegué a un creativo aviso de reclutamiento de personal para MeetUp, en donde comparan como es trabajar en Google versus trabajar en MeetUp.

Luego de una encuesta realizada en línea, Dell anunció que vendería equipos Dell con Ubuntu pre-instalado. Durante la semana era posible ver que «venía en camino» y hoy al revisar el sitio de Dell, ya es una realidad... aunque por el momento sólo para el mercado de los Estados Unidos.

El 11 de abril escribí una nota llamada «Club de emprendedores», en donde realicé un comentario a partir de un par de fotografías que encontré en Flickr.

Colegio Bill Gates
Una de las fotos mencionadas

En aquel momento lo único que sabía es que el autor tenía por seudónimo «papeluchoasesino». Pero hoy, me entero a través de un comentario del mismo autor, que lleva por nombre Carlos Salazar y tiene un espacio donde escribe. Y que además le interesa el Software Libre.

Así es que esta nota es para dar la correcta atribución del autor de dichas fotografías.

Hoy di lo que fue mi primera charla del año. La charla fue sobre Python y ví un par de ejemplos de extensiones usando PyGTK. Pensé que tendría tiempo para preparar una, pero finalmente tomé una que di el año pasado. Por tiempo, no pude asistir a las charlas de la tarde. Espero que Javier continúe organizando charlas, más esporádicas y no necesariamente de todo el día.

Hay muchos alumnos interesados y eso que faltaron muchos otros que me consta que son amigos del pingüino. Se ve que hay ganas de realizar actividades y de participar, aunque por ahora hay mucha dispersión. Lamentablemente, ya no tengo ni el ánimo ni el humor para organizar nada que tenga que ver con la FACE o con la universidad; aunque no tengo problemas en dar charlas o consejos (siempre que no sean en la FACE).

Me llamó la atención una parte del comentario de Fernando Ruiz:

[...] me agredo conocer a [...] German Poo, que pa mi era como un mito urbano eso que trabajaba en la ubb[...]
«mito urbano», ¿qué tal? :-)

Por otro lado, anteriormente me habían invitado del Instituto Profesional Virginio Gómez de Los Angeles para la FLISOL, pero no pude ir.

Para el 30 de junio estoy invitado a dar 2 charlas en «Open Community», que se realizará en la Universidad de Ciencias de la Informática, en Santiago. Una será de Mercurial y la otra será de desarrollo en GNOME con PyGTK.

En general, los ambientes integrados de desarrollo (también conocidos como IDE) son similares en su concepción: están orientados al desarrollo de nuevos programas o aplicaciones. Y en las charlas de programación que he dado, siempre es una pregunta frecuente entre los interesados en un nuevo lenguaje o ambiente.

Por otro lado, todo libro de Ingeniería de software indica que el mayor esfuerzo se encuentra en la mantención del código; ya sea vía añadir una nueva funcionalidad o bien corregir algún un fallo. Pero los IDE no tienen una orientación hacia la mantención. Hay un estudio hecho en la Universidad de Carnegie Mellon, publicado en diciembre de 2006 en IEEE Transactions on Software Engineering, titulado «An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks» (disponible en la página del autor), que sirve para darse una idea del comportamiento de los programadores cuando deben mantener código ajeno.

Tal vez podría entenderse como un estudio de usabilidad de un IDE, en este caso: Eclipse. Se muestran los puntos débiles así como sugerencias para mejorar el entorno de cara a la mantención.

De forma particular, el artículo me llamó la atención porque precisamente mi incursión en el código de Postgresql para mi proyecto en Google. No es que el artículo me fuera ayudar mucho en términos prácticos, pero si para satisface mi curiosidad acerca de lo que se teje últimamente al respecto.

Uno de los aspectos relevantes es la falta de un buen apoyo en la navegación del código. Allí no mencionaron que existen otras herramientas para dicho proceso, que muchas veces pasan desapercibidas. Es el caso de CScope, que existe hace mucho tiempo en UNIX y que es libre desde el año 2000.

CScope es una herramienta para buscar y navegar a través del código. Para que la búsqueda sea rápida, CScope genera una base de datos de todos los símbolos de un proyecto. Y es realmente rápido. En los IDE existen algunos mecanismos de búsqueda, pero no tan cómodos y potentes.

Interfaz curses de CScope
Interfaz curses de CScope

Es muy útil, no sólo cuando se carece familiaridad con el código. Lo que desconocía es que nuestros vecinos de KDE disponen de una interfaz gráfica llamada KScope. Es fácil tener a la vista desde que archivos se hace referencia a un símbolo (sea función, variable, etc.) e incluso una gráfica personalizable. En cada caja es posible ver donde se define, que funciones llama, desde donde es utilizada, entre otras búsquedas.

Interfaz KDE de CScope

Lo mejor de todo, es que uno puede utilizar indistintamente cualquiera de éstas dos interfaces. La gracia de KScope es la persistencia de la sesión, así, la siguiente vez se inicia en el mismo punto que uno quedó en la última sesión.