Disclaimer: This is a personal web page. Contents written here do not represent the position of my employer.

Wednesday, July 26, 2006

 

Trabajando con "workflows" (válgame la redundancia)

Parece que los programas de workflow están de moda. Sobre todo los basados en web, que son muy fáciles de instalar (para el usuario, que no de administrar para el sysadmin) pues sólo se necesita un navegador.

En realidad, ¿qué es un workflow? Es un concepto un poco "cajón de sastre" pero básicamente es un software que te permite archivar, monitorizar, en general ayudarte a gestionar las tareas en un entorno de trabajo. Hay workflows más generales (como eGroupWare) y otros más específicos (como por ejemplo Bugzilla, que se centra en la gestión de bugs [defectos] en el software).

La verdad es que yo soy un enamorado de Bugzilla y siempre he pensado que se podría usar como workflow "general" a falta de alguna que otra funcionalidad, como wikis, calendarios con timelines/roadmaps, etc. Porque yo creo que es el software de gestión de incidencias más maduro y completo que existe.

¿Y por qué ahora he utilizado la palabra incidencia en lugar de defecto? Pues porque hay una interesante polémica desde hace bastante, en torno a este software, que consiste en que un cierto grupo numeroso de personas abogan porque esta herramienta gestione no sólo defectos o petición de nuevas funcionalidades (enhancements) sino también simples y llanas "tareas". Luego existen otros dos grupos en contra de esto: los primeros se escudan en que Bugzilla nació para ser un software de seguimiento de defectos del software, y no más, y luego hay otros que aseguran que un "bug" también puede ser válido como acepción general de una tarea.

Yo a estos últimos les preguntaría ¿la tarea de, por ejemplo, configurar un apache, se podría considerar un bug? A mí me suena un poco raro... Pero no me voy a casar con nadie, así que yo he encontrado mi solución particular, jugando con los "value fields" de Bugzilla, ya que originalmente contienen:

Gravedad/Severity: blocker, critical, major, normal, minor, trivial, enhancement
Prioridad/Priority: P1, P2, P3, P4, P5, P6

Si nos fijamos, el campo de prioridad es tan poco descriptivo que ni siquiera sabemos si P1 es el más o el menos prioritario; y el segundo es tan ambiguo que parece que en sus valores se están mezclando prioridad, gravedad, complejidad, y tipo de incidencia. Así que yo he optado por usar los valores siguientes

Severity (gravedad): critical defect, major defect, normal defect, slight defect, improvement, new feature, task.
Priority (prioridad): undecided, showstopper, urgent, normal, interesting, desirable


Con esto yo creo que resolvemos el problema de la ambigüedad de la gravedad y a la vez tenemos un workaround para el bug #88177 ;)

Para cubrir las necesidades de workflow que no cubre este "bugzilla parcheado" podemos recurrir a eGroupware o derivados. Sin embargo, puesto que soy un ex-programador PHP, en el sentido en el que cuando me cambio de equipo ya no puedo ni acordarme de lo antiguo, pues siempre me atraerán más los proyectos que se casen con una arquitectura de desarrollo más decente. Es el caso del recién nacido NProject el cual usa el eficiente CastleProject (que usa por debajo MonoRail, ActiveRecord + NHibernate, etc.) el cual es un framework que es el resultado de un port de Ruby on Rails a C#. Parece que en cuestión de frameworks web MVC, éste junto a Maverick.NET y Spring.NET son los más populares.

Otros podrían decirme: "¡pues Bugzilla está programado en Perl, ¿qué me dices de eso?" En cuyo caso respondería: ojalá tuviera tiempo de emprender mi propio proyecto "NBugzilla" o "MonoBugz" para conseguir, no sólo una herramienta divertida de usar, sino divertida de programar y extender. Y es que podríamos hacer uso de una arquitectura bastante apetecible en la que manejar casi cualquier base de datos gracias a NHibernate (al contrario que el Bugzilla actual que sólo soporta MySQL y PosgreSQL), o bien una base de objetos como DB4O, o bien soporte configurable para ambas cosas, etc. Es un proyecto que propuse en el GoogleSoC pero que evidentemente distaba mucho de ser aceptado :)

Volviendo un poco desde las ramas, me gustaría comentar mis andanzas a la hora de instalar este workflow que me gusta tanto: la primera vez lo instalé desde las fuentes en una distro Mandriva, la segunda con un RPM automático (aunque al final no tan automático, ¡oye!) en otra versión mejor de Mandriva, y esta tercera ha sido en una Ubuntu, con los siguientes procesos prueba-error (es una pena que OpenSUSE no incluya un paquete para Bugzilla):

  1. Instalación del paquete del repositorio universe, versión 2.20, con mucho miedo (las cosas no oficiales, es lo que tiene).
  2. Problemas de configuración.
  3. Problemas con el envío de correo.
  4. Desinstalación de sendmail e instalación de postfix.
  5. Errores de corrupción de tablas MySQL.
  6. Reinstalación desde cero.
  7. Problema con los caracteres internacionales (tildes, eñes, ...) en el envío de correo; al parecer resueltos por la versión siguiente (v. 2.22) gracias a UTF-8.
  8. No existe la versión 2.22 en Ubuntu Dapper.
  9. No parece que estén disponibles todavía los paquetes de Ubuntu inestable.
  10. Localización del paquete de Debian Sid (inestable) con la versión 2.22.
  11. Desinstalación y purgado de lo antiguo.
  12. Instalación del paquete de Debian en Ubuntu.
  13. Problemas de configuración no resueltos.
  14. Tiro la toalla e instalo el programa desde fuentes.
  15. Versión obsoleta del módulo estable de CPAN llamado Mail::Mailer.
  16. No hay versión inestable Debian/Ubuntu del mencionado módulo.
  17. Instalación manual del paquete por CPAN.
  18. Configuración correcta.
  19. Todo funcionando correctamente.

Sólo tengo clavada una pequeña espinita (al parecer asignada para su implementación en la 2.24).

Me ha gustado esta versión: la configuración general del programa (malamente llamada "Parameters") ahora está dividida en secciones por temas; existe opción de editar automáticamente los "Field values" de los que ya os he hablado, sin la antigua necesidad de recurrir a un fichero de texto y especificarlos al inicio para luego ser inmutables.

Actualización 03-SEP-2006: Parece ser que el concepto de Workflow es algo más subjetivo y diluido como para asociarlo a este tipo de gestores de incidencias. Parece que hay gente que lo atribuye más a programas de gestión de diagramas de flujo (los típicos que dibujamos los informáticos antes de describir un algoritmo), o incluso otros van más por el lado ERP, y un ejemplo concreto es el NetBPM, al parecer hecho con y usado por el proyecto Mono, que tiende más a la gestión al estilo Microsoft Project, en el que podemos incluso gestionar peticiones de vacaciones de los empleados (una demo aquí).

Actualización 17-NOV-2006: También me gusta más renombrar el estado ASSIGNED a INPROGRESS, lo que se puede hacer editando el fichero /var/www/bugzilla/template/en/default/global/field-descs.none.tmpl a partir de la versión 2.20.

Actualización 2-FEB-2006: Resulta que cambiando el valor a INPROGRESS en el punto en el que he mencionado antes, sólo lo cambia para la intefaz gráfica pero el valor lo sigue poniendo como ASSIGNED en los emails enviados, así que voy a investigar como se hace el cambio bien. Otra cosa que echo en falta es un campo nuevo para la "complejidad de la solución estimada", que bien podría dividirse en dos: un campo con valor enumerado, y otro con una estimación de tiempo de resolución de la incidencia.

Actualización 20-MAY-2006: Vaya, viendo esta página sobre Bugzilla puedo comprobar que se empieza a imponer el sentido común: y es que usar Perl para una herramienta tan grande empieza a verse como un handicap, y se están proponiendo alternativas para reescribirlo desde cero. Como no, he colocado mis propuestas en la página de discusión, máxime al ver que no existía una sección de Mono y sólo un párrafo hablando de C#. Si Mono no se lleva el gato al agua (que parece ser lo más seguro, dado el poco apoyo que tiene), espero que al menos gane Java.

Actualización 04-NOV-2007: Otra característica interesante de bugzilla para poderle cambiar la cara y que se adapte más a una herramienta de tipo genérico de ticketing o workflow, es la capacidad de cambiar la palabra "bug" por otra distinta, como "issue" o "ticket". Aquí más información.

Actualización 13-MAY-2009: Resulta que el tema de que las prioridades predeterminadas no son entendibles y el bug de que Enhancement sea un valor del campo "Severity" tienen sus correspondientes bugs abiertos!:
- Bug classification field: este bug tiene nada más y nada menos que 10 años de edad.
- Default Priority values are unclear: ya he aportado mi sugerencia aquí :)

Labels: , , , , ,


Wednesday, July 12, 2006

 

La estafa de las religiones

Cada vez estoy más convencido de lo siguiente:

Las religiones existen por un motivo muy simple: su marketing se basa en aprovecharse del miedo que casi todo humano tiene ante la muerte y en la superación del dolor y el sufrimiento que padecemos en la vida mediante la promesa de otra vida o estado de existencia que si seguimos los mandatos de esas religiones alcanzaremos tras la muerte.

Supuestamente lo único bueno que predican las religiones (causa y excusa de muchas guerras y conflictos) es el cómo intentan hacer un mundo en el que todos vivamos en paz y armonía; aunque tampoco se lo debemos a ellas, pues es algo creo yo, natural en la mayoría de las sociedades. Por ejemplo, en el movimiento solidario en España de ONGs las organizaciones religiosas pintan muy poco (Cáritas).


(Vía comentario de BarraPunto.)


Sin embargo, respeto a los religiosos. Igual que ellos deberían respetarme a mí; y para empezar a hacerlo, deberían dejar de estafarme. Sí, estafarme, más claro el agua; porque os recuerdo que aún tenemos un modelo de estado que permite la financiación de organizaciones religiosas. Es decir, que con parte de mis impuestos estoy sufragando una cosa que yo no he pedido. Los religiosos se merecen mi respeto pero las religiones no. La iglesia es un ente que me está estafando mediante un impuesto propio de sociedades medievales.

Incluso entre los religiosos existe gente con algo más de cordura y que empieza a denunciar este tipo de situaciones:

¿Por qué yo no te espero, Benedicto XVI?
  • Porque atacas la eutanasia y defiendes el valor del sufrimiento.
  • Por considerar el aborto como homicidio en todos los casos.
  • Porque haces el divorcio muy difícil y conviertes la vida de “pareja” en un infierno para ellos y sus hijos, provocando la violencia doméstica.
  • Por impedir otros tipos de matrimonio o uniones, que en nada perjudican ni atacan al matrimonio convencional. Es falso que la familia en España esté sufriendo ningún tipo de ataque, como dicen tus obispos.
  • Porque tienes homofobia a los homosexuales, al considerarlos una desviación moral, una enfermedad o un pecado.
  • Por querer enseñar la religión de modo obligatorio a todos, en lugar de reservarla al ámbito familiar o de la comunidad creyente.
  • Porque no respetas el laicismo, que es el estado primitivo del individuo.
  • Por oponerte a la utilización de células-madre, que tantas vidas podrían salvar.
  • Porque sigues bautizando a los niños, seres inconscientes del acto que reciben.
  • Por convertir la comunión de los niños y niñas en un acto de ostentación y riqueza, contraviniendo la vida de Jesús-Pobre.
  • Por callar tus obispos y sacerdotes, en las fiestas de los pueblos, con motivo de honrar a santos y a vírgenes, cuando se tortura y mata a animales indefensos e inocentes.
  • Porque rechazas el preservativo, elemento ndispensable para regular el número de hijos y evitar el SIDA.
  • Por acumular riquezas en el Vaticano y en todos los templos de tu Iglesia, habiendo dicho Jesús que Él no tenía dónde reclinar la cabeza.
  • Porque tú y la jerarquía que diriges deseáis el poder, cuando el Maestro vino a servir y no a ser servido.
  • Por rechazar la píldora, medio eficaz para ejercer una paternidad responsable.
  • Por imponer el celibato a todos los sacerdotes, sabiendo que no fue así en la Iglesia Primitiva.
  • Porque habéis convertido la Iglesia en una burocracia descomunal, alejándoos de la simplicidad de los primeros cristianos.
  • Porque gran parte del clero se empeña en vivir “del altar”, en lugar de ganar el pan con el sudor de vuestra frente y repartir gratis lo que gratis se os dio.
  • Porque os falta contundencia en rechazar las guerras y condenar a quienes las inician.
  • Por no oponeros frontalmente a los estados que aplican la pena de muerte: China, Irán, USA, etc.
  • Porque dais un mensaje de la Navidad equivocado. Cristo no vuelve a nacer. Y si está en algún lugar, está en los pobres, emigrantes, desheredados, etc.
  • Por transmitir durante la Semana Santa un mensaje que es ajeno al Evangelio. El sufrir por los demás es heróico; pero esto no trasciende. Dar la vida por los otros sí que encaja con la Pasión.
  • Porque vas a provocar un gasto público (del dinero de creyentes y no creyentes) que es escandaloso: adorno floral (46.000 €), bandas de música cada “x” metros, escenario descomunal (600.000 €), alojamientos de miles de curas y obispos, pintado de 80 km. de vallas de blanco y amarillo, etc.
  • Por no colocar a la mujer en el lugar que le corresponde en la Iglesia que diriges.
  • Porque no pediste perdón cuando fuiste a Auschwitz, ya que el Vaticano y la Iglesia contribuyeron a que murieran muchos judíos en los campos de concentración.
  • Por haber perseguido y condenado la Teología de la Liberación, la Teología de los Pobres. Cuando dirigías la Congregación del “Santo” (¿?) Oficio.
  • Porque tu venida se va a convertir en un espectáculo de masas, en un gran circo, donde se podrán comprar y vender todo tipo de “recuerdos”, pero que quedará un gran vacio. (Recuerda la expulsión de los mercaderes del Templo).
  • Por haber puesto una condición para tu venida (tú o tus enviados): un micro-clima para ti. Unos cuantos “puentes” más allá, en el de Ademuz, hay centenares de subsaharianos que no tienen ni lo más elemental para tener una vida digna.
  • Porque el Altar donde vas a celebrar la Misa es un ejemplo de derroche suntuoso. Existen en nuestra Comunidad barracones en lugar de aulas, listas muy largas de espera para pacientes, suciedad y ratas en los barrios de Valencia, etc.
  • Por tu intromisión en los asuntos internos del gobierno de España (recuerda tu última entrevista con el Embajador Español).
  • Porque tus obispos se meten en asuntos políticos, siempre decantados a favor de la derecha más reaccionaria.
  • Porque el Congreso Teológico que se celebrará días antes de tu venida, estará manipulado por las personas más integristas, como son el Opus Dei, los Legionarios o los “kikos”.
  • Por haber manipulado, los que han preparado tu venida, a familias pobres del Tercer Mundo, que van a vender granjas, animales y terrenos para venir a verte.
  • Porque creo que es incompatible el ser la Cabeza Visible de los creyentes y Jefe del Estado Vaticano. “Mi reino no es de este mundo”, dijo Jesús ante Pilatos (Juan 18,36).
  • Porque la mayoría de obispos y sacerdotes no denunciáis la tortura en los países donde se practica (se os va el tiempo hablando de sexo y temas relacionados con el sexo).
  • Por no denunciar las agresiones a nuestro Planeta, que salió de las manos del Creador mucho más hermoso de lo que está hoy.
(Vía NeCuDeCo.)

Luego, muchos religiosos (o casi, más que eso, manipuladores) sostienen que los agnósticos o ateos carecen de valores. Lo que ocurre es que nuestros valores no están basados en el miedo o en conceptos de dudosa existencia; son valores en sí mismos, no tienen razón de existencia (¿o sí?), pero existen.

Actualización: He encontrado una entrada de bitácora similar a la mía pero bastante mejor, de la cual extraeré una cita de Peter Atkins:

“...la religión discute los temas difíciles con guerras, terror y coerción y construye una red de ideas en conflicto que esconden la ignorancia bajo un manto de palabras grandilocuentes y vacías.”

Actualización 09-DIC-2007: Increíble el vídeo de Richard Dawkins en el que nos pide que los ateos/agnósticos dejemos de ser tan respetuosos con los religiosos.

Labels: ,


Tuesday, July 11, 2006

 

¿Felicidad sin objetivos?

La felicidad es cumplir el objetivo de tu vida (o, en su versión gerundiana, "ver que lo estás cumpliendo", porque sino, ¿qué pasa cuando ya lo has cumplido?), pero ¿qué pasa si un día te encuentras sin objetivo?

Cito:

No obstante, el esfuerzo puesto al servicio de un sentido puede ser frustrante, la cual puede llevar a la neurosis, especialmente a aquella llamada neurosis noogénica, o lo que otros suelen llamar neurosis existencial o espiritual. Más que nunca, las personas actuales están experimentando sus vidas como vacías, faltas de sentido, sin propósito, sin objetivo alguno..., y parece ser que responden a estas experiencias con comportamientos inusuales que les daña a sí mismos, a otros, a la sociedad o a los tres.

Vía comentario de BarraPunto.




Por el momento, dudo que a corto o medio plazo consiga uno de mis objetivos:

Para mí no hay nada más poderoso en este planeta que la lucha que un
hombre emprende cuando siente que ha perdido la libertad. Quizá eso
explica porqué miles de personas en el mundo se unirán a nuestra lucha
cuando descubran hasta que punto son prisioneros del sistema de
propiedad intelectual actual, ese que les impide crear, pensar o
imaginar por miedo a estar delinquiendo porque una ley dice que los
pensamientos, las ideas y hasta los sentimientos pueden tener amo.

Eso es lo que yo pienso pero aquí tienes a Mandela hablando de Ubuntu. Y
seguro que es una voz más autorizada que la mia para expresar lo que es
el amor a la Humanidad y porque un hombre ni debe poseer a otro ni
siquiera creer que sus ideas son de su propiedad, y las puede usar en
exclusiva y de forma excluyente.


Vía Juantomás.

Actualización 05-NOV-2006: Me he sentido increiblemente identificado con estos comentarios de Steve Jobs:

Sometimes life hits you in the head with a brick. Don't lose faith. I'm convinced that the only thing that kept me going was that I loved what I did. You've got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don't settle.

Extraído de You've got to find what you love.

Actualización 20-MAY-2007: Aquí el vídeo de Steve Jobs cuando pronunció aquel discurso:


Pincha aquí si no lo ves embebido.

Labels: , ,


Saturday, July 01, 2006

 

Mono cabrón

Bueno, no me suele gustar mucho que inunden mi correo de reenvíos en cadena (forwards), pero esta vez tengo que rescatar uno que me ha encantado (me he estado riendo un buen rato). Además, como en mi blog hablo mucho de Mono, pues no queda mal del todo incluso un chiste sobre un MONO :)


Un señor va de cacería a África y se lleva a su perro para no sentirse solo en ese lugar. Un día, ya en la expedición, el perro, correteando tras unas mariposas se aleja del grupo, se extravía y comienza a vagar solo por la selva.

En eso ve a lo lejos que viene una pantera enorme a toda carrera. Al ver que la pantera lo va a devorar, piensa rápido qué hacer. Ve un montón de huesos de un animal muerto y empieza a mordisquearlos. Entonces, cuando la pantera está a punto de atacarlo, el perrito dice:

- ¡Ah!, ¡qué rica pantera me acabo de comer!

La pantera alcanza a escuchar y frenando en seco, gira y sale despavorida pensando "¡Quién sabe qué animal será ese, no me vaya a comer a mí también!"

Un mono que andaba trepando en un árbol cercano y que había visto y oído la escena, sale corriendo tras la pantera para contarle cómo le engañó el perrito:

- Serás idiota, esos huesos ya estaban ahí, además es un simple perro.

El perrito alcanza a darse cuenta de la cabronada del mono. Después que el mono le contó a la pantera la historia de lo que vio, esta última muy cabreada le dice al mono:

-¡Súbete a mi espalda, vamos donde ese perro a ver quién se come a quién!

Y salen corriendo a buscar al perrito. El perrito ve a lo lejos que viene nuevamente la pantera, esta vez con el mono chismoso. "¿¿Y ahora qué hago??", piensa todo asustado el perrito. Entonces, en vez de salir corriendo, se queda sentado dándoles la espalda como si no los hubiera visto, y en cuanto la pantera está a punto de atacarlo de nuevo, el perrito dice:

- ¡Este mono cabrón hace como media hora que lo mandé a traerme otra pantera y todavía no aparece!

MORALEJA: "EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO"

Procura ser imaginativo como el PERRO.
Evita ser gilipollas como la PANTERA.
Pero nunca seas tan cabrón como el MONO.



Actualización 12-ENE-2007: Parece que el Capitán Planeta ha conocido de primera mano a nuestro perrito; o al menos a uno tan espabilado como él ;)

Actualización 18-ABR-2007: Me he reído mucho con algunos chistes en inglés que cuenta Ted Neward.

Actualización 21-NOV-2007: Ahora un poquito de humor geek: nuevas tags XHTML.

Actualización 21-NOV-2007: ¡Más humor geek! (esto de hecho lo he pensado más de una vez como un fallo de todas estas películas de viajes en el tiempo :)

Labels: , ,


This page is powered by Blogger. Isn't yours?

Categories

RSS of the category Gnome
RSS of the category Mono
RSS of the category C#
RSS of the category Programming
RSS of the category Mozilla
RSS of the category Web Development
RSS of the category Security
RSS of the category Open Source
RSS of the category Engineering
RSS of the category Misc
RSS of the category Politics

Contact with me:
aaragonesNOSPAMes@gnNOSPAMome.org

Archive
My Photo
Name:
Location: Hong Kong, Hong Kong
Follow me on Twitter