domingo, 10 de febrero de 2013

Reflexiones de un desarrollador web

Hay una canción de Jorge Drexler que dice: "Cada uno da lo que recibe y luego recibe lo que da, nada es más simple". Sin embargo, cuando uno está en el mundo del software libre, se suele recibir mucho más de lo que se da.

Eso es lo que me ha pasado con un proyecto que inicié hace ya más de 10 años y con el que he ido adquiriendo algunas deudas pendientes. Una de ellas es el presente artículo.

OpenClinic es el proyecto con el que desembarqué en el proceloso mundo web y en el cautivador desarrollo de software libre. Me sirvió para acabar mis estudios universitarios como PFC y me abrió las puertas para conseguir mi primer trabajo a jornada completa.

Desarrollo web

OpenClinic fue siempre un campo de juegos (entiéndase juego por aprendizaje) y pruebas para mí. Y por eso equivoqué el propósito de la aplicación. En lugar de atraer o buscar profesionales del espectro médico para evolucionar el proyecto, me concentré en los aspectos técnicos de programación para conseguir una especie de framework propio que me sirviera para hacer otras aplicaciones.

El año 2003, cuando ya tenía una versión bastante estable del programa, era una época ideal para haber explotado la idea. Era su momento, pero no supe ver cómo sacarle partido. Actualmente ya es demasiado tarde. Hay otros proyectos como Gnu Health, OpenEMR u OpenClinic GA (sí, ¡me han plagiado el nombre ;)!, era inevitable) que ya han cubierto el espectro con buenos productos.

Pero algo que conserva OpenClinic es su sencillez y sus escasas pretensiones. Supongo que por eso, a lo largo de todo este tiempo, la gente lo ha seguido descargando y, de vez en cuando, alguien me escribía acerca del estado del proyecto. Pero últimamente estaba recibiendo demasiadas quejas sobre problemas en la instalación. Esa ha sido la principal razón por la que 8 años después, he liberado una nueva versión.

La historia de OpenClinic ha ido muy de la mano de la historia de PHP. Cuando tuve la idea del proyecto (en la que ayudó mucho a modelarla Emilio Cazcarra) y de encaminarlo hacia la web, no tenía ni la menor idea de qué tecnologías usar. Descubrí Perl y empecé a estudiarlo cuando, casi por casualidad, me encontré con PHP. En el año 2002 era uno de los proyectos de moda y me convenció desde el principio como lenguaje para el backend. Aunque la primera versión de PHP4 se publicó en el año 2000, era la versión 3 la que por entonces predominaba tanto en aplicaciones como servidores de hosting.

Cuando tuve que decidirme por una de ellas, opté por la más nueva: PHP4. Ya que tenía que aprender un nuevo lenguaje de programación, lo más sensato era estudiar la última versión. Para cuando estuviera en condiciones de terminar la aplicación, al ritmo que se desarrollaba PHP, habría una versión muy estable del intérprete. Y no me equivoqué.

Pero hacia mediados de 2004, liberé OpenClinic 0.7 (eternamente beta) y ahí terminé su evolución. Como he dicho antes, no supe encaminar la adquisición de nuevas características al programa y por eso me concentré en aspectos más técnicos a partir de entonces. Tal vez por eso, aunque seguía con el desarrollo no veía razones de peso para publicar nuevas versiones (no aportaban nada nuevo en cuanto a funcionalidad para los usuarios).

En aquel mismo año, 2004, nació PHP5. Al contrario que con el cambio de PHP3 a PHP4, que fue rápidamente adoptado por los proyectos más importantes que usaban PHP y por los servidores de hosting, el cambio a PHP5 fue traumático y tortuoso para todos. A nivel personal, no lo empecé a usar hasta que me interesé por Zend Framework hacia el año 2007 (¡nada menos que 3 años después de la primera versión de PHP5!).

Pasados los años, OpenClinic adolecía de dos graves problemas:

  • No estar basado en PHP5 (que es la versión actual, desde hace muchos años, del lenguaje).
  • Y el más grave: no estar programado en un framework de desarrollo.

Adaptar el código a PHP5 (en cuanto a sintaxis, no en metodología) no ha sido muy costoso. El problema radicaba en que no era muy sencillo alojar en un mismo sitio web aplicaciones con PHP4 y PHP5.

Este último fue un grave error de concepto. Quería convertir OpenClinic en un framework. En aquella época (la del PHP Far West), cuando el lenguaje recibía constantes críticas por no ser demasiado estricto en sus formas, cada aplicación de cierta envergadura estaba hecha en un framework propio para intentar poner algo de orden en el caos. No es extraño que también cayera en ese error (intentar reinventar la rueda) pero no me di cuenta a tiempo y es algo que ha perjudicado al proyecto. Tanto que ha firmado su certificado de defunción. Si hubiera estado basado en un framework, entre otros aspectos positivos, habría sido más fácil que otras personas hubieran contribuido añadiendo funcionalidades.

Software libre

Pero no todo ha sido tan negativo. De hecho, el proyecto, como he empezado diciendo, me ha dado mucho más de lo que le he dado. Y me lo ha podido dar porque es software libre y porque está basado en tecnologías libres:

  • PHP como lenguaje de backend,
  • HTML como lenguaje de marcado,
  • CSS para la capa de diseño,
  • JavaScript para la capa de interacción,
  • MySQL como servidor de base de datos (aunque ha ido cambiando su status a lo largo del tiempo...),
  • gettext para las traducciones,
  • y Docbook para la documentación.

Para aprender todas estas tecnologías sólo he tenido que invertir tiempo. Los recursos están disponibles de forma libre (y gratuitos muchos de ellos). Y los beneficios obtenidos siguen siendo constantes y consistentes. Además, ha habido algunas personas que han podido contribuir, generando traducciones y temas CSS para la aplicación.

Y pese a los problemas mencionados, las críticas han sido bastante satisfactorias. La aplicación ha tenido unas 20.000 descargas y de vez en cuando me encontraba algún dominio en Internet con el programa funcionando. También me han escrito personas que lo han estado usando en ONGs en países en vías de desarrollo. Todo lo cual contribuye en una recompensa personal inmensa. Al fin y al cabo, uno desarrolla software para que las personas lo usen.

Conclusiones

A día de hoy no haría las cosas como las hice, pero eso lo puedo decir ahora porque las he hecho de esta manera. Uno aprende o sucumbe, no hay término medio.

Si algún vez vuelvo a rehacer la aplicación (no sería la primera vez...):

  • lo haría con un framework de desarrollo,
  • lo haría en un repositorio público de código desde el principio,
  • independizando totalmente el motor de base de datos del código de la aplicación,
  • pediría abiertamente ayuda a la gente para que colaborara, incluso dejando la dirección del proyecto a otros que se involucraran más.

Mientras tanto, sigo dedicando mis esfuerzos a otros proyectos de software libre. Uno de ellos es migasfree y, aunque tiene muchas cosas que mejorar, ya he empezado a poner en práctica mis conclusiones.

Actualización: 2013-02-23

Traducción del presente artículo al inglés, publicado amablemente por Rich Bowen.

lunes, 4 de junio de 2012

Cómo cambiar el menú de aplicaciones de Gnome 3

Como primera opción, se podría modificar el menú nuestro usuario con la aplicación alacarte. Si tenemos más usuarios en la máquina, podemos copiar los ficheros resultantes en el resto de perfiles. Es un método más o menos sencillo y que, si sólo tenemos una máquina que administrar, puede ser suficiente.

Pero si tenemos que administrar varios ordenadores y queremos obtener una solución algo más limpia y fácilmente replicable, tenemos que leer con atención la especificación de menús de escritorio.

En dicha especificación se advierte que hay un fichero principal, que suele estar en la ruta /etc/xdg/menus/applications.menu y que se puede extender añadiendo más ficheros en /etc/xdg/menus/applications-merged/. Esto conlleva un gran avance respecto a la primera opción, ya que sólo tenemos que preocuparnos de una única ubicación global por máquina y parece que no tenemos que modificar ningún fichero del sistema. Y digo parece, porque si queremos añadir aplicaciones a los menús sí que sirve, pero si lo que queremos es quitar (u ocultar) lanzadores o categorías, puede ser bastante complicado (por no decir, en algunos casos, imposible). La razón es que en el fichero applications.menu, se añaden primero las modificaciones de los archivos que se hayan puesto en applications-merged/ y luego se sobrescriben con las reglas del propio applications.menu.

Pero si seguimos leyendo con atención la especificación, veremos que existe la solución perfecta. No hace falta escribir complicadas reglas que no interfieran con las del sistema (applications.menu) ni tener que modificar el fichero de configuración (estas modificaciones podrían incluso perderse si se actualiza el paquete que contiene el archivo: gnome-menus).

Se trata de hacer uso de la variable XDG_MENU_PREFIX. Sólo tenemos que darle un valor (por defecto es vacío para que coincida con la ruta del fichero applications.menu) y crear el fichero con las modificaciones del menú.

Por ejemplo, se podría definir un valor para esta variable de entorno en el fichero /etc/environment de la forma:


export XDG_MENU_PREFIX="abc_web-"

Y después crear el fichero /etc/xdg/menus/abc_web-applications.menu. De este modo, ya no se analiza el archivo /etc/xdg/menus/applications.menu, por lo que no será necesario tener en cuenta las reglas de ese fichero, para hacer el nuestro.

sábado, 26 de mayo de 2012

Control de volumen simple en Gnome 3

En Gnome 3, hay nuevos applets para los paneles del escritorio. También hay shell extensions, que permiten añadir funcionalidades al escritorio. En uno de estos applets, el que se hace llamar miniaplicación completa de indicadores, aparece el control de volumen. Pero ya no es un simple slider para manipular el volumen, sino que integra el control de la aplicación reproductora de audio por defecto del sistema (Rhythmbox en Ubuntu 12.04).

¿Dónde se encuentra entonces el applet que estaba disponible en Gnome 2? ¿Acaso ha desapararecido?

Para los nostálgicos de aquel control, o para los que sólo quieren el control de volumen y no el resto de indicadores del nuevo applet de Gnome 3, voy a desvelaros qué ha pasado.

En realidad no ha desaparecido, sino que se encuentra oculto. Supongo que es para promocionar el uso del nuevo (que realmente tiene una funcionalidad más completa), pero se ha perdido en personalización, ya que no es muy sencillo mostrar sólo los indicadores que nos hacen falta, de entre todos los que muestra la miniaplicación completa de indicadores.

La solución para que vuelva a mostrarse en el área de notificaciones (este área es un applet más que habrá que añadir en alguno de los paneles del escritorio) es muy sencilla. Tan sólo debemos modificar el atributo OnlyShowIn del fichero /etc/xdg/autostart/gnome-sound-applet.desktop. Debería quedar así:


OnlyShowIn=GNOME;

Si os fijáis en su valor original (OnlyShowIn=;), al estar vacío, no se mostraba en ninguno de los escritorios disponibles, aunque sí está preparado para iniciarse en el comienzo de la sesión gráfica (existe un lanzador en /etc/xdg/autostart/).

sábado, 12 de mayo de 2012

Cómo cambiar la imagen de fondo de LightDM en Ubuntu 12.04

Con Simple LightDM Manager, en Ubuntu Oneiric, podíamos personalizar el logo y la imagen de fondo de LightDM. Sin embargo, la configuración del gestor de sesiones ha cambiado y ya no se realiza a través de un fichero (el archivo /etc/lightdm/unity-greeter.conf ha desaparecido), sino a través de dconf. De todas formas, en el fichero /etc/lightdm/lightdm.conf se siguen modificando algunos parámetros del programa (como la sesión gráfica por defecto o si se muestra la lista de usuarios, por ejemplo).

Para empezar, vamos a escoger una imagen adecuada a la resolución de nuestro monitor. Un buen sitio para elegir es Gnome-Look. En la sección de wallpapers hay una amplia selección donde, en cada imagen, viene documentada la resolución y la licencia de uso. En mi caso, me he decantado por Ovalized Wallpaper. Tras descargarla, la he copiado en el directorio /usr/share/backgrounds/ con el nombre lightdm-wallpaper.jpg (con el usuario root).

La posición de la caja para la elección de usuario de la máquina no se puede modificar, por lo que es mejor que no haya nada significativo en la imagen que escojamos para el fondo en dicha área. Como tampoco se puede cambiar la posición del logotipo que aparece abajo a la izquierda. Así que, si también queremos modificarlo, será mejor hacer uno de unas dimensiones parecidas al original (/usr/share/unity-greeter/logo.png).

Vamos a cambiar 2 propiedades de la configuración gráfica de LightDM: la imagen de fondo y quitar la malla (grid) que se dibuja por defecto. Estas propiedades se cambian en el esquema com.canonical.unity-greeter de dconf. Se podrían cambiar a través de la utilidad dconf-editor (que habría que instalar porque no viene por defecto), pero teniendo en cuenta que deberíamos hacerlo con el usuario lightdm. No serviría modificarlas con nuestro propio usuario, ya que LightDM se ejecuta con su propio usuario y hace sólo caso a los valores de su configuración.

Voy a explicar entonces un método alternativo y en el que sólo es necesario un intérprete de comandos y un editor de texto. La receta consiste en modificar globalmente las propiedades (a nivel de sistema) para que aplique a todos los usuarios de la máquina. Además, las voy a bloquear para que ningún usuario pueda sobreescribir estos valores. La explicación teórica del proceso se puede encontrar en la página dconf System Administrator Guide.

Debo decir que el nuevo sistema de configuración de Gnome 3 es bastante más sencillo de modificar para los administradores que el anterior (basado en GConf en Gnome 2). La mala noticia es que todavía hay bastantes aplicaciones de Gnome que siguen con GConf, en lugar de utilizar el nuevo sistema.

En primer lugar, vamos a crear la estructura de directorios necesaria. Como vamos a necesitar escribir en /etc, deberemos hacerlo como root:


$ sudo su
# mkdir -p /etc/dconf/db/local.d /etc/dconf/db/local.d/locks /etc/dconf/profile

Después, vamos a crear los ficheros de configuración.

En el archivo /etc/dconf/db/local.d/light.conf establecemos los nuevos valores de las propiedades:


[com/canonical/unity-greeter]
background='/usr/share/backgrounds/lightdm-wallpaper.jpg'
draw-grid=false

En el fichero /etc/dconf/db/local.d/locks/lightdm, le decimos al sistema dconf qué propiedades están bloqueadas para que no puedan modificarlas los usuarios:


/com/canonical/unity-greeter/background
/com/canonical/unity-greeter/draw-grid

Por último, crearemos el fichero /etc/dconf/profile/user para especificar la prioridad de las bases de datos de dconf.


user-db:user
system-db:local

Sólo falta ejecutar el comando dconf update (como root) para que el sistema dconf rehaga las bases de datos y se apliquen los cambios.

Y eso es todo. Este mismo método de cambio de propiedades sirve para el resto de esquemas disponibles en dconf.

sábado, 5 de noviembre de 2011

Proyectos varios

Mis inquietudes y quehaceres van más allá del mundo de la web. Hace ya varios años que cambié de modus vivendi y me introduje en la administración de sistemas. Además, me he ido involucrando en proyectos de programación y sociales. He aquí la lista:

AZLinux

Formo parte del equipo de desarrollo de la distribución y he escrito algunos de los artículos del blog:

Software & Barra Libre

He colaborado desde el principio con el proyecto y también he escrito algunas entradas en el blog:

Proyecto migasfree

En este sitio web todavía no me he estrenado como blogger, pero también he colaborado haciendo el tema para el blog, programando en Python la parte cliente de la solución y echando una mano en el instalador del servidor.

Libre Software World Conference 2011

Aprovechando la oportunidad que me brinda estar trabajando en el Grupo de Software Libre del Ayuntamiento de Zaragoza, estaré como ponente hablando de paquetes RPM y su distribución en una organización con migasfree y de AZLinux: evolución del proyecto.

sábado, 11 de junio de 2011

Sacando el pajarito a pasear

Crónica de un experimento social media.

Aprovechando la celebración del Congreso Web de Zaragoza, he hecho mi incursión en un nuevo medio social: Twitter.

Aunque hace años que conozco la herramienta, nunca me había atraido para un uso personal. Siempre he sido muy celoso de mi privacidad y consideraba (y lo sigo considerando) a Twitter un medio muy cotilla. Pero, desde hace un tiempo, en el trabajo compartimos una cuenta para contar nuestro día a día y había empezado a ver el lado más profesional de esta herramienta. Sin ir más lejos, la semana pasada, cuando estuve en Cádiz en el OpenDNIe hackfest, hice un uso bastante exhaustivo de esta cuenta compartida.

Esta es la crónica del Congreso Web contada a través de mis experiencias.

Preparativos


Creé mi cuenta el día 2 de junio, justo antes de comenzar el congreso. El primer problema lo encontré a la hora de escoger un nombre. Mis alias habituales ya estaban en uso pero tenía que seleccionar alguno relacionado conmigo y que fuera relacionable con alguna de mis facetas en Internet. Al final, la elección fue @jact_abcweb, la unión de mi nombre y mi blog.

Elegir el logotipo no fue difícil ya que sólo tuve que usar el que utilizo en este blog, pero escribir la biografía tuvo su dificultad. El formato de Twitter (los famosos 140 caracteres), es a la vez lo que lo hace tan atractivo e inmediato y que sea tan complicado en ocasiones condensar algo con el suficiente sentido.

La biografía de la cuenta de Twitter es como la tarjeta de visita en el mundo real y conseguir aunar descripción y marketing en 160 caracteres es todo un desafío.

Primer día


Me estrené en el congreso con la charla de @gmolino. El título de la misma no podía ser más oportuno: Aterrizando en las redes sociales. La herramienta que utilicé para twittear durante el congreso fue Gwibber (que viene por defecto en Ubuntu 11.04).

Tenía ganas de estrenarme y en cuanto Gabriel lanzaba un concepto interesante, lo escribía en Twitter tal cual (pero siempre citando la fuente). A la vez, intentaba ver cómo lo hacía el resto de twitteros de la sala, gracias a la monitorización que me permitía Gwibber. Enseguida comprobé que había bastante gente en el congreso que estaba twitteando y que se repetían (cambiadas muy ligeramente) las ideas que iba contando Gabriel. Entre las muchas que nos relató, me gustaría destacar las siguientes:
  • Facebook se ha adaptado a los usuarios, pero Twitter no ha evolucionado en absoluto.
  • Dentro de las redes hay negocio. No estar en ellas va a salir caro a las empresas que renuncien a estos medios, y estar cuesta muy poco dinero (pero sí mucha dedicación).
  • 2/3 de la población mundial usa las redes sociales a diario (no son sólo una moda). Si Facebook fuera un país, sería el tercero más poblado.
  • Conversar crea confianza, igual que la gente se relaciona el bar de toda la vida. Hay que hablar de lo que uno sabe porque engañar se paga caro (al final todo se sabe).
  • Las redes sociales deben tomarse como algo divertido, no como una obligación. Y uno debe abarcar lo que sea capaz. Es mejor empezar poco a poco. Paciencia, paciencia y más paciencia (a la hora de recoger resultados).

La siguiente charla prometía bastante por el título pero la ejecución de la misma no estuvo a la altura de las expectativas. Twitter echaba humo con críticas negativas. Aunque personalmente también me decepcionó, algunas ideas interesantes fueron:
  • Internet ha crecido mucho en poco tiempo y cambia y evoluciona aún más rápido. Internet es ya el tercer medio por inversión publicitaria en España (el consumo de medios está cambiando).
  • El consumo de TV no ha caido, se usan 3 pantallas: TV, PC, móvil (necesidad de analizar los 3 medios).

Para acabar la primera jornada, estuve en la charla de @carmenurbano: Internacionaliza tu proyecto web. Aunque a nivel técnico no me aportó mucho (hubo mención a conceptos de usabilidad y accesibilidad), sí que lo hizo a nivel comercial. Conocía que las referencias culturales eran un aspecto muy importante a tener en cuenta (simbología de los colores, banderas, iconografía), pero fue algo novedoso el hecho de realizar sitios web completamente diferentes para distintos mercados internacionales. Hasta ese punto es necesario impactar para destacar entre la competencia. La charla fue tan amena que ni siquiera dio tiempo de verla al completo. Los ejemplos que propocionó Carmen sobre campañas a nivel internacional (unas acertadas y otras no) fueron de lo más esclarecedores.

Al final del día, había hecho 27 tweets y había conseguido 6 menciones y 2 retweets.

Segundo día


Después de la experiencia del día anterior, vi claramente que no podía competir con los reyes del teclado y tenía que diferenciarme en la estrategia (buscar el valor añadido). La verdad es que era muy fácil citar a los ponentes para hacer más y más tweets: sólo hacía falta ser más rápido que los demás. También contaba la lista de seguidores de cada uno. En ambos campos no tenía nada que hacer: mi rapidez en la escritura es nula y al ser un recién llegado a Twitter, no tenía apenas seguidores.

Así pues, cambié la forma de proceder. Me dediqué a monitorizar los tweets de la sala, a redactar mis resúmenes personales y a incluir hacia el final de las charlas aquellas cosas que no había visto en otros tweets y que consideraba importantes. Como resultado, realicé menos entradas que el día anterior (17), pero conseguí más retweets (7). También influyó en el resultado final la falta de Internet que tuve en algunos momentos del día (que fueron ajenas a la organización). Ya que había tanto tráfico del evento, consideré ridículo comentar sobre charlas ya acabadas hacía unas horas. Twitter es un medio de comunicación enfermizamente inmediato y era necesario adaptarse al medio como parte del experimento.

En cuanto a las charlas, si ya fue complicado elegir las del día anterior, el panorama para el sábado empeoraba bastante: 4 ubicaciones simultáneas donde ponentes de renombre iban a impartir sus discursos. Por lo que tuve que escoger (y fue realmente difícil) entre las de comercio electrónico y las relacionadas con los medios sociales.

Las que más me impresionaron, por las grandes dotes de comunicación de los ponentes fueron:


Terminé agotado tras más de 12 horas de ponencias, pero la sensación fue la de haber asistido a un curso intensivo con varios de los mejores profesionales nacionales. Un lujo que debo agraceder a los artífices de este evento.

Tercer día


Menos mal que no fui a la cena del congreso, porque si no, no hubiera podido asistir a las charlas del último día. Aún así, estaba demasiado cansado y hacia media mañana, no pude seguir con el experimento Twitter.

Sin embargo, me dio tiempo de presenciar el robo de mi primer tweet (o al menos el primero del que tenía constancia). Recordé entonces a @rtayar y me lo tomé por el lado positivo. Justo la semana pasada también había oído comentar que if your work has stolen, it has value. Por cierto, que la charla de Ricardo Tayar fue un buen revulsivo para iniciar la mañana.

Otras charlas a las que asistí, fueron:


Los números del último día de congreso: 10 tweets, 3 menciones y 4 retweets.

Conclusiones


A lo largo del congreso se fueron repitiendo varios conceptos que me hacen pensar que, aunque el social media sea un mundo virtual, sólo es un reflejo del mundo real. Si bien es más vertiginoso y global, sirven las mismas reglas:
  • El sentido común es la mejor estrategia.
  • Una estrategia que debe ser coherente indiferentemente del medio usado.
  • Nadie da duros a cuatro pesetas: es necesario rodearse de buenos profesionales.
  • El factor humano es el recurso esencial en cualquier empresa.
  • Trabajar, trabajar, medir, analizar y trabajar aún más. Es necesario hacer muchas pequeñas cosas bien.
  • Y sobre todo, tener paciencia para recoger los resultados. La competencia es brutal (y más en Internet).


Se podría pensar que existiendo un medio tan global como Internet, y siendo gran parte de los asistentes, habitantes de ese mundo, un evento de tanta envergadura como este, cada vez tendría menos sentido. Sin embargo, personalmente ha sido muy gratificante ver como en 3 días, el congreso ha conseguido lo que yo no había conseguido en varios años. Había intentado hacer ver a cierta persona los beneficios profesionales de los medios sociales. Hasta que no la vivido en directo durante el congreso, no se ha convertido en una creyente más. Sólo espero que ahora no pare y le saque todo el partido posible. Por ahora lleva un buen camino.

En cuanto a Twitter, aunque no todos los días voy de conferencias, le he cogido cierto gustillo e intentaré que sea un complemento a mis otras presencias en la red. Y digo complemento porque lo que escribes en las redes sociales comerciales (como Facebook o Twitter) es de esas redes, no tuyo. Sólo lo que escribes en tu sitio web, es de tu propiedad.

sábado, 12 de marzo de 2011

Barra libre de software

Hola, mi nombre es Jose Antonio Chavarría y uso software libre. Toda mi vida profesional, y antes la universitaria, ha estado relacionada con el software libre. Como adicto, voy a relatar mi experiencia para compartirla con vosotros, porque, conforme pasa el tiempo, esta adicción va a peor.


Durante mi etapa universitaria conocí Linux por primera vez. Recuerdo que se llamaba Debian y que la instalación era en modo texto, pero la libertad que descubrí, me hizo pensar en un mundo lleno de posibilidades. La gente se suele fijar en las curvas y las caras bonitas, ¿pero a quién le importan esas superficilalidades cuando puedes configurar todo a tu gusto, cuando todo se puede conocer y se puede adaptar a tus necesidades?


Luego, tuve que pensar en hacer mi proyecto fin de carrera. En aquella época, el mundo de la informática médica era totalmente cerrado y propietario. A un amigo y a mí se nos ocurrió que era hora de que esta situación cambiara y propusimos un proyecto de historia clínica digital basado en herramientas totalmente libres y transparentes. Incluso la documentación del proyecto la hicimos en formatos abiertos. Por supuesto, la licencia del producto es GPL (creo que fue el primer proyecto que se presentaba bajo esta licencia en nuestra universidad, pero espero que no fuera el último).


Gracias a los conocimientos adquiridos durante la realización de este proyecto, inmediatamente después de acabar mis estudios, empecé a trabajar como desarrollador de aplicaciones web. Mis herramientas diarias de trabajo eran ya en su mayoría libres. El servidor de base de datos era MySQL, el servidor de aplicaciones web Apache y el lenguaje de programación PHP. El navegador web principal sobre el que desarrollaba era Firefox (al principio fue Mozilla).


Pero también en el trabajo, descubrí nuevos programas de software libre. Allí empecé a usar Thunderbird como cliente de correo. Tanto me gustó, que al poco tiempo, logré que todo el mundo en la empresa lo usara. El sistema de control de versiones era un CVS en una máquina con Debian que además hacía las funciones de servidor de correo interno. Usábamos MediaWiki como herramienta de gestión del conocimiento. Nuestro blog interno estaba hecho con WordPress. El virus se extendió aún más cuando cambié el sistema de documentación que se usaba para las aplicaciones que se vendían. Instalé una plataforma de desarrollo de documentación basada en Docbook, TexLive y una serie de scripts en MS-DOS, que luego un compañero (pero también amigo) rehizo en Python. La plaga se iba extendiendo, pero por entonces, el sistema operativo usado en los ordenadores todavía era Windows.


Pero hace ya casi 3 años, cambié de empleo. Primero, he de decir que si no hubiera sido por todo el conocimiento que adquirí por usar herramientas libres, no lo hubiera conseguido. El Ayuntamiento de Zaragoza me contrató para formar parte del proyecto de migración del escritorio a software libre. Desde el primer día comencé a usar SuSE en mi ordenador y desde entonces me dedico a hacer paquetes RPM y scripts en Bash y Python. También me dedico a dar formación los usuarios. Una parte importante de la formación consiste en evangelizar a la gente con las bondades del software libre. Como herramienta de distribución de software usamos MigasFree. Este programa es invención de un compañero y es una pieza esencial del proyecto de migración.


Aparte de mi trayectoria profesional, está mi experiencia personal y cotidiana con el software libre. Cuando me planteé poner Internet en casa, es cuando instalé linux en mi ordenador. Quería evitar riesgos y sorpresas, y sentirme a la vez seguro. Llevo ya 6 años sin haber tenido ninguna infección. Como pringao ahora sólo recomiendo (e instalo) Linux en ordenadores de conocidos y amigos.


Hace un par de días, un nuevo proyecto ha nacido en Zaragoza. Un amigo se ha liado la manta a la cabeza y ha comenzado una nueva locura. Y a mí no se me ha ocurrido otra cosa que arar con los bueyes que tengo, es decir, contagiar a otros con mis experiencias. Esto que me pasa, ¿es tan grave como parece, doctor?


Actualización: 2011-03-13

Sí que es grave y ha empezado por mi memoria. Como me apunta jlontheweb, en Scati Labs ya se usaba antes de entrar yo, Bugzilla como gestor de incidencias del software creado allí, y FileZilla como cliente FTP. También me comenta que han empezado a usar OpenOffice.org.


Esta suite ofimática está instalada en el 100% de los ordenadores del Ayuntamiento a día de hoy. Y para convertir a los equipos Windows en equipos con Linux, usamos a diario Clonezilla.