miércoles, 5 de junio de 2013

Zafá del xml con Tryton Builder!

Hay cosas que no me gustan, y hay cosas que detesto. En esa escala de valores, en el primer lugar está PHP y en el segundo los XMLs. Como conté en el post anterior, estoy desarrollando algunos módulos para Tryton, que define sus vistas, y elementos de interacción usando ese lenguaje de markup.

Hay varios artículos que hablan que uno tiene que ser un programador vago, yo estoy totalmente de acuerdo con que hay que ser un programador que automatiza al máximo el trabajo que no le gusta hacer, para poder dedicar el tiempo a problemas mas complicados o atractivos, o a mirar por la ventana.

En mi intento por zafar de escribir varios cientos de  '<',' /', y '>' a mano nació Tryton Builder (Que tiene logo y todo!)


Por el momento, para generar un módulo, hay que escribir un pequeño archivo de código (Si, es código python, porque me gusta programar, no parametrizar, yamls, csv, y ese tipo de cosas) de este estilo:



En el ejemplo, estoy realizando todos los pasos para generar el modulo de ejemplo del wiki de tryton

Solo para comparar la diferencia de caracteres escritos versus generados:

El proximo paso, es armar una interfaz de consola como la de los scaffolders de Ruby On Rails




martes, 4 de junio de 2013

Monkey Patcheando Element tree para soportar cdata

Hace un tiempo que estoy trabajando con Tryton, el ERP libre, escrito en python, y como me gustan los scaffolders de Rails, decidí escribir uno para armar los esqueletos de los módulos. Tryton, no se bien por que motivo, utiliza mucho xml, para definir vistas, y fixtures de datos. Como me gusta programar en python, me empezé a escribir una especie de DSL para definirlos de una manera mas amigable:
https://github.com/joac/tryton_builder

Python permite trabajar con xml con un montón de bibliotecas distintas, pero las mas amigable de usar, para mi es ElementTree

Cuando empece a escribir el codigo, y hacer pruebas, me encontré con varios problemas, el primero, ElementTree no tiene "Pritty Print"
para que el xml generado sea mas cómodo de leer, por suerte encontré esta receta:


en http://effbot.org/zone/element-lib.htm#prettyprint que resolvió correctamente el problema

Avanzando en el diseño de los scaffolders me encontré con otra limitación  ElementTree no soporta el tag CDATA. Usted podria preguntarse "¿Que es el tag CDATA?", Básicamente un tag que le dice al parser "Lo que esta aca adentro es un conjunto de caracteres, no lo parsees"
Si bien se puede evitar el uso del tag, ingresando el texto escapado (por ejemplo, en lugar de '>' escribir '&gt' ) el objetivo es que el XML no deje de ser legible, encontré otras recetas en StackOverflow:
http://stackoverflow.com/questions/174890/how-to-output-cdata-using-elementtree

Pero finalmente, decidí escribir mi propia versión basada en algunos de los comentarios (la receta con mas votos no funciona en python 2.7+)

lunes, 25 de febrero de 2013

Finos Dardos

Noche cerrada,
el momento de atacar

No es la victima dormida su presa,
es el noctambulo despierto

Carecen de veneno,
elijen preciso donde impactar.

Volando entre nubes neuronales,
minúsculos misiles dirigidos a las raíces.

Fibras que lo atraviesan todo,
hasta el descanso.

Luego la pausa,
la tormenta que no llega.

Las nubes que prometieron lluvia,
se van secas.

El viento que decide no soplar mas, 
y disfrazarnos de silencio.

Y la lluvia empieza.
Salada.
Tibia.

De pronto sin aviso, 
es río bravo. 

Al momento amaina,
dejando ese sabor amargo.

Algunos lo taparan con vino.
Otros con distancia.

Y los terceros, engranajes pensantes,
tratarán de separar los gustos.

Así, algún día puedan,
hallar esa neurona amarga.

lunes, 17 de diciembre de 2012

Dolor de espalda.

Desde ayer estoy con un dolor de espalda importante, incomodo. Decidí reposar un poco, y evitar mayoritariamente estar con la computadora, que claramente, no me ayuda a mejorar mi postura.

En este rato largo, de unas 20 horas para pensar desenfrenadamente, me dediqué a revisar las cosas que me hacen sentirme raro cuando estoy con otra gente y las que me dan miedo.

La conclusion es bastante clara: soy una máquina de pensar, y en ciertos casos, de pensar de mas.

Me sorprende pensar, que muchas veces las cosas que quiero, son mas simples que el modelo mental que fabrico de ellas y mas espontaneas. Usted, querido lector, comprenderá que me gusta hacer música y otro tipo de cosas llamemos creativas, movilizadas, principalmente por la espontaneidad.

Hace un tiempo leí un libro llamado "Free Play" que habla un poco de lo procesos creativos y la improvisación musical. El autor diferencia claramente el "Juego Libre" que acompaña la creación de cosas (no nos importa si nuevas o no) y el proceso posterior de edición que completa, o refina la creación.

Me di cuenta, que en mi cabeza los dos procesos ocurren simultáneamente, por algún designio de un gen adicto a la concurrencia y la paralelización de procesos. Y como me gusta generarme paradigmas validos para seguir pensando mas y mas, a raiz de eso puedo explicarme, de alguna forma lógica, rebuscada e inhumana, varios comportamientos o cosas que nunca puedo lograr. O que al menos no puedo observar que logro.

Es ese proceso de autocensura constante, que no logra llevarme a intentar. Y ahi, es donde está la trampa. Porque, de las experiencias podemos aprender, y sacar conclusiones que nos ayuden a abordar otros intentos con mayor exito.

Y la pregunta de como medimos el éxito, lo dejo como tarea para el hogar. Quizás una respuesta esta justo al costado, y como sigo mirando para adelante, solamente, cual caballo con anteojeras, siga un largo trecho sin notarla.

miércoles, 12 de diciembre de 2012

Las Cosas Cambian

Hace bastante, pero bastante en serio, que no escribo en  este blog. Pero hoy, robándole un rato al sueño, me compro el desafio, y despunto al vicio de contar.

Es que las cosas cambian, y lo que uno vió ayer, y consideró una referencia válida, absoluta e inamovible, no es ni valida, ni absoluta, ni inamovible hoy. Es que la vida es mas compleja, es mucho mas compleja.

Porque tengo la certeza de que todos vamos a morir sin entenderla. Pero quizas, si logramos ser sabios, y aprender del vasto conflicto, lleguemos a ese punto de inflexión, al menos con la certeza de que buscamos todas las formas posibles de disfrutarla al máximo.

Es que existe mas que la búsqueda "estrella", "primero en profundidad" y otras que pregonan los textos de inteligencia artificial. Es la búsqueda, que ya de nacimiento sabe de la infinitud del universo y la certeza de que nunca se llegará a la respuesta esperada. Pero igual decide ser. Y transcurrir, despacio, muy despacio, llevandonos.

Y en el camino nos acerca a cosas, a gente, a proyectos, a historias, que valen la pena. Y la búsqueda en pleno ejercicio de sus derechos, se redefine y vuelve a llevarnos.

Y los seguira haciendo.