Orientaciones para la pastoral de la carretera

Hoy volviendo a casa me topé con esta noticia : «El Vaticano publicó 10 mandamientos para los automovilistas» …. WTF?! 🙂

Así que ya saben, a tener en cuenta :

  1. No matarás.
  2. Que la calle sea para vos instrumento de comunión entre las personas y no de daño mortal.
  3. Que la cortesía, la corrección y la prudencia te ayuden a superar los imprevistos.
  4. Sé caritativo y ayuda al prójimo en la necesidad, especialmente si es víctima de un accidente.
  5. El automóvil no sea para vos expresión de poder, de dominio y ocasión de pecado.
  6. Convencé con caridad a los jóvenes y a los que no lo son, a no sentarse a la guía cuando no están en condiciones de hacerlo.
  7. Sostené a las familias de las víctimas de los accidentes.
  8. Hacé encontrar a la víctima y al automovilista agresor en un momento oportuno, para que puedan viria la experiencia liberadora del perdón.
  9. En la calle tutelá a la parte más débil.
  10. Sentite vos mismo responsable hacia los otros.

Ya están avisados.

Fuente: Diario La Razón, 20-06-2007.

Dependencias Funcionales y Cubrimiento Minimal

Muchas veces nos encontramos con cosas que molestan, y las dos que nombro en el título son claros ejemplos, o por lo menos lo son cuando uno estudia Bases de Datos (al menos en mi facultad :D).

En realidad el tema en sí no es complicado ni difícil, sino más bien molesto. El algorítmo de Cubrimiento Minimal es uno de los peores y consta de 4 pasos (3 en realidad, el paso 0 no existe como tal :P) y hacer un solo ejercicio a mano me llevó 5 carillas y unas cuantas decenas de minutos.

La molestia viene dada por dos ciclos anidados que se complica por un tercer ciclo para un calculo intermedio, lo que lo convierte en 3 ciclos anidados :). Creo que no hice cosa más inútil en mi carrera (mentira, si me esfuerzo seguro algo encuentro). Sin contar que hay que recalcular un conjunto en cada paso para verificar condiciones. En fin, nada útil si no van a cursar la materia :D.

Todo esto viene a que implementó (literalmente a como está en el libro, nada de hacerse el loco y querer optimizar, de hecho lo empeoro copiando mil veces las cosas por las dudas no pisar nada sin querer :D) el algoritmo de Cubrimiento Minimal para un conjunto de Dependencias Funcionales, lo que me permite corregir los ejercicios en cuestión de segundos.

Les dejo el código por si alguno cae por acá y lo encuentra útil.

Seguir leyendo «Dependencias Funcionales y Cubrimiento Minimal»

emerge -av life

Ha pasado un buen rato, y la verdad que no ha pasado mucho en mi vida. Estoy bastante ocupado con boludeces de la facultad (trabajos, entregas, parciales, etc) y principalmente con mi tesis que dio un giro que no me esperaba :), se recorto por todos lados lo que yo tenía pensado hacer (o más bien lo que yo había entendido que tenía que hacer :D).

Resumido en un párrafo de un mail en la charla con uno de mis directores de Tesis :

Tal vez para resumir mi idea sobre el proyecto, lo que estarías haciendo es un «reificador de mensajes entre objetos», configurable de forma que la reificación pueda encenderse y apagarse de forma dinámica por motivos de performance. Casi la palabra aspecto se puede suprimir 😀

En fin, parece tan simple, que complica. Para empezar estoy analizando diferentes weavers y como realizan su trabajo, para poder comprender los cambios que se necesitan en la VM.

Les dejo acá buen paper sobre el weaving en AspectJ.

En otro aspecto de la vida, mi hermana juró por su título hace un par de semanas, y ahora oficialmente soy el único miembro no-titulado de mi familia :), lo que suma una presión extra a completar mi carrera de grado. Tengo una foto que predice el futuro, donde estoy posando muy sonriente con el título de mi hermana (total enrollados todos son iguales!!), pero voy a tener que esperar a viajar a Cipolletti para obtener una copia :).

Cambio de trabajo!

Y si, alguna vez iba a pasar :). Este lunes comuniqué oficialmente en mi trabajo que a fin de mes dejo mi puesto para emprender el lindo desafío de formar parte de mi propia «empresa».

Desde hace un tiempito (como 1 mes :P) me junte con gente copada y sacamos andando una Cooperativa de Trabajo ofreciendo soluciones basadas en Software Libre, y esperemos lograr nuestros objetivos de sacar proyectos copados con licencias libres al mismo tiempo. Sabemos que es un punto complicado, pero con probar no matamos a nadie :).

Para todos aquellos que quieran chusmear http://www.gcoop.com.ar es nuestro emprendimiento.

Esperemos que a mediano plazo pueda estar contando como nos ha ido y como es la experiencia de formar parte de una cooperativa de trabajo.

Antispam en el GForge

Ya hace un largo tiempo que los spammers nos estaban dando batalla en el GForge que tenemos en el LugFI. Este sábado, mientras me recuperaba decidí finalmente mirar el código y ver que se podía hacer.

Lo primero que me encontré es que el código apesta, y mucho :). No existe una forma simple o modular de extender la interfaz, así que recurrí a hackear directamente el código. Luego de un ratito le mande el diff a Des para que lo aplique.

El resultado : los reportes de bug/feature request/etc requieren ahora un campo más que es el antispam, así como también dejar comentarios en registros ya abiertos. El antispam no hace diferencia entre usuarios registrados y anónimos, así que espero que los users registradon no se ofendan :).

El parche en cuestión está acá a y aplica seguro sobre la versión 4.5.19 (yo use el orig.tar.gz que provee Debian para asegurarme que el patch aplicara en nuestro servidor). No puedo garantizar que aplique en otra versión.

Un poco de aire

En un ratito ya estoy partiendo para mi Cipolletti querido a pasar las fiestas de fin de año con mi familia. Es un viaje que siempre disfruto, especialmente porque salgo de esta «cuidad de brujas y de asfalto» :).

No todo es color de rosas, ya que tengo que trabajar desde allá pero podría ser peor. Muchas felicidades para todos y que la rompan este fin de año!!!

Random Links

Antes de perder el txt que tengo con los links leidos y pendientes, voy a postear algunos de los que estuve leyendo para mi tesis sobre AOP :

  • phpAspect : Aspect-Orient Programming for PHP
  • AspectC# : Aspectos para C#
  • AspectJ : Uno de los conocidos
  • Pythius : Aspectos en Python
  • JRockit : Algo similar a lo que apunta mi trabajo 🙂

Espero en estos días terminar finalmente la especificación del lenguaje para darla a revisón y pasar a lo siguiente. También espero empezar a usar este especio más seguido para llevar mi «diario» de tesis, ya que este primer post sale bien descolgado :).

Nueva Guitarra!

guitarra.jpg

Hace un tiempo que quería comprarme una guitarra eléctica y ya que se acerca mi cumpleaños me di el gusto :).

Para variar, gasté más de lo que tenía pensado pero la verdad es que me encariñé con esta guitarra cuando la probé y no pude resistirme.

El instrumento en cuestión es una Johnson SM4000PZ : mango encolado, 24 trastes, dos mics doble bobina, y la lista sigue, pero es aburrida :).

El amplificador es un Marshall MG Series de 15 watts, con dos canales (importantísimo para la distorsión) y 4 efectos (chorus, reverb, flange y delay). Un lindo aparatito que suena fuerte :P. Lo que me gustó, además de que suena lindo, es que no pesa demasiado y para «tocar en el baño» me va a alcanzar y sobrar.

NgSpice ha vuelto!

Luego de haber sido mutilado, el soporte de NgSpice para Oregano fue reescrito hoy. No está probado ni el 10% de todo lo que debería funcionar, pero ya me doy por satisfecho y es ahora de que me siente a esperar los reportes de los usuarios (Ping Tulku!!) con sus afamados problemas :-).

El parser nuevo, a diferencia del viejo estilo preprocesado en perl externamente al programa, utiliza el formato RAW que exporta NgSpice, haciendo mucho más simple la lectora de los valores de los análisis, sin tener que parsear texto.

El shot obligado :

ngspice.png
Con esto ya estarán dadas las condiciones para hacer un nuevo release, que supongo que será este fin de semana, aprovechando que sigo de vacaciones :-). Hay varias cosas que ameritan este release :
  • Nuevo esquema para los engines : Más flexible, más prolijo, más fácil de extender a nuevos engines, y sobre todo, anda. [1]
  • Scons cleanups
  • Instant-apply dialogs!
  • Nuevo log (colorsitos, ordenado, etc)
  • El ProgressDialog ahora muestra que operación se está realizando
  • Models y SubCKT
  • Menu cleanup
  • Mejora en la ventana de ploteo : los ejes son mas claros y se muestra la unidad actual en lugar de usar notacion cientifica.
  • Unos cuantos bugs de usabilidad y detalles reportados por Tulku!

[1] : Antes la salida de ngspice cambiaba segun detalles de la simulacion (db, no db, AC o Trans, etc) y el script en perl se colgaba mal 🙂