MSNCP, finalmente...

Saturday, May 14. 2011

Hace casi 4 años mariconeaba en este blog al respecto de un release de emergencia que había hecho del MSNCP después de casi 2 años de inactividad.

Finalmente, anoche, hice el primer release con features nuevas después de 5 años y monedas de abandono del proyecto. ¿La razón principal?, lo que primero fue un anuncio de deprecated y luego un warning de código obsoleto, finalmente se transformó en un error sintáctico con el correr de los años y las versiones de Python.

El fixing de eso fue bastante sistemático, pero ya que estaba resolví otro temita producto del paso del tiempo. Cuando empecé el desarrollo todavía era el default de los sistemas operativos los encodings de 8-bits, y el soporte multibyte de NCurses parecía ser una cosa lejana. Hoy un soporte decente multibyte de la interfaz de NCurses en Python aún parece ser una cosa lejana, pero los sistemas operativos con tablas de 8-bits parecen ser cosa del pasado y, honestamente, ya tenía las pelotas llenas de chatear sin poder utilizar ningún ASCII extendido... así que la mayor deuda pendiente solucionada por el release fue el soporte de entrada/salida en Unicode.


Habiendo actualizado el MSNCP y migrado de BitchX a irssi con menos de un mes en el medio, me doy cuenta de lo mucho que sufrí estos varios años condenado a chatear en ASCII plano por causa de mi dejadez.

Glumly

Tuesday, September 21. 2010

Si bien no soy para nada amante del alto nivel y sus prácticas, la vez pasada necesitaba representar unas entidades en un paper, creí que era copado hacerlo en un lenguaje universal, y me vi ante la necesidad de hacer mi primer diagrama UML.

Por una cuestión de presentación, necesitaba que el diagrama fuera elegante, y de ser posible en algún formato vectorial, para embeberlo en LaTeX. Con este objetivo, hice una pequeña búsqueda en las aplicaciones que encontré en el repositorio de paquetes de mis distros, y un rato más tarde me convencí de que no había nada que mínimamente me satisfaciera. O herramientas pensadas para generación de código automático, o herramientas de diagramas con nulo aporte estilístico...

Googleando, llegué a yUML y realmente me parecieron bastante copados los gráficos que generaba. Para el volumen de mi problema no necesitaba mucho más que eso. Ahora bien, los gráficos que genera son rasterizados, y por otro lado, tampoco parecía muy práctico estar desarrollando contra una aplicación web. Lamentablemente, yUML es privativo, por lo que tampoco había mucha forma de meter mano como para enmendar una u otra cosa.

Pregunté en el IRC del LUGFI por el tema, y Albertito me recomendó usar Graphviz para armar los diagramas, que si bien tenía un poco de overhead de sintaxis servía. Miré un poco por encima Graphviz y me convenció, así que le di para adelante. Si bien los gráficos que sacaba Graphviz pelado creo que ya eran ampliamente superiores a los que se podían sacar con Dia, googleé un poco y encontré hojas de estilos para maquillar un poco y hacer un poco más vistozos los SVGs de Graphviz, con lo que además de simple, la solución generaba gráficos bonitos.

Luego de delineado el fuente en DOT del primer UML, decidí que iba a ser el último y escribí un generador de DOT orientado a lo que necesitaba, sencillísimo, menos de 10 líneas de código. Ya que estaba, agregué tipos de dependencias que mi proyecto no necesitaba pero completaban los diagramas de clases UML, y terminé cerrando una miniaplicación.

Curiosamente (o no tanto), con un poco de googleo y un par de modestas líneas de código, desarrollé un proceso que si no es con el que está implementado yUML, le pega en el poste. Y dentro del contexto de la falencia de una aplicación sencilla para hacer ese tipo de cosas y de la licencia restrictiva de yUML, un script que hubiera dejado tirado en mi disco hoy lo estoy publicando para beneficio de otros.

Les presento Glumly (grep uml /usr/share/dict/*), una pseudo implementación libre de yUML, que me salió de casualidad.

Acá está el gráfico de ejemplo que colgué en la web (el cual está "inspirado" en el ejemplo más avanzado de la web de yUML):



P.D.: Al respecto de mi problema original, como era obvio esto me sirvió parcialmente... la única aplicación para postprocesar SVGs es el Inkscape y si bien para todos los demás formatos anda joya, los SVGs que genera este script rompen a Cairo, por lo que la exportación a PDF o a EPS anda para atrás. Por fuera de eso, el proceso funciona automagicamente para PNGs y otros formatos raster. Si alguien necesita sacar salida vectorial del Inkscape, comento cómo lo solucioné, pero ya es otro tema. Al respecto de la extensión para que LaTeX procese DOT, también me anduvo para atrás, si bien probablemente podria haber andado dedicándole más tiempo.
P.D.2: Al respecto de referenciar todo lo que menciono, me da paja; si quieren links, la homepage de Glumly tiene todos los que hacen falta.

Proporciones y porcentajes (de algo relevante).

Wednesday, April 14. 2010


45% para el primero, 42% para el segundo y 29% para el tercero... seguidos de varios "4 de cada 10".

Concurrencia...

Saturday, March 6. 2010


—¿Concuquée?

NIH

Saturday, January 9. 2010

Desconfiá siempre de lo que haya hecho el otro. No va a estar bien hasta que lo hayas hecho vos...



Y una vez que lo hayas hecho vos, aunque te haya salido igual... ¡festejá exageradamente!



(El Sudoku no me confía.)