La tendencia actual en Internet consiste en publicar contenidos en servidores centralizados para compartirlos con otras personas. Sin embargo, a veces resulta útil para los usuarios el tener la posibilidad de compartir sus propios contenidos desde el escritorio de una forma cómoda (en lugar de usando un pendrive, por ejemplo). ¿Por qué molestarse en publicar contenidos si se pueden compartir directamente desde el escritorio a la red de área local, o incluso a todo Internet?
En esta charla se presentará Meiga, una utilidad que permite compartir los directorios locales elegidos vía web. Pero eso es sólo el principio. De hecho, el objetivo final del proyecto es servir como punto común de publicación a otras aplicaciones de escritorio, como el gestor de archivos, visores de fotos o reproductores de música.
Meiga es ligero, fácil de usar, amigable con la red y también con las aplicaciones. Está escrito en una mezcla de de Vala y código C puro, usando tecnologías Gnome existentes para realizar sus tareas: libsoup se utiliza como una alternativa simple a los servidores web pesados, libgupnp se encarga de hacer la redirección de puertos si el router soporta UPnP, y DBUS expone una API pública que permite que tanto el interfaz gráfico como aplicaciones de terceros puedan controlar lo que se está sirviendo. Algunas características avanzadas de publicación están ya implementadas, como el servidor de feeds que puede generar una vista RSS de un directorio determinado.
Desde el punto de vista educativo, el código fuente de este proyecto es un ejemplo real del uso de tecnología Vala: programación Vala pura, diferentes alternativas para integrar Vala con código C puro (usando ficheros Vapi o lanzando un programa ejecutable hijo) o el uso de un "contexto programable" para manejar la secuenciación de operaciones asíncronas. Un sistema de compilación basado en autotools completa el conjunto de características interesantes. Este sistema emplea un fichero Vapi para pasar parámetros de configuración desde el config.h al programa Vala. Finalmente, unos cuantos ficheros adicionales de reglas permiten la generación de un paquete Debian, el último paso para poner el programa a disposición de los usuarios finales de una forma cómoda.
Meiga es software libre. Está publicado bajo licencia GPL 2.0 y puede descargarse haciendo git clone http://git.igalia.com/meiga.git