jueves, 31 de marzo de 2011

Free Software vs. Open Source Software

En torno al mundo del software libre existen muchos falsos mitos. Quizás el más popular sea el de asimilar el término "software libre" con "software gratis". Sin embargo, hay otro falso mito ante el cual me sorprendo, al ver las confusiones existentes incluso entre profesionales del software (es más, entre los propios profesionales del software libre). Esta confusión es la que hace referencia a que Open Source Software es algo completamente diferente al Free Software. Hay quien asimila que para que un software sea Open Source, basta con distribuir su código fuente, aunque luego se incluya una licencia que no permita su modificación, redistribución, etc.

Si acudimos a la página web de la Open Source Initiative, de la cual nació este término denominado Open Source Software, y más concretamente buscamos la definición que allí mismo se ofrece para este término, encontramos lo siguiente:

"Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:"

Es decir, que la propia Open Source Initiative se encarga de matizar, antes incluso de entrar en aspectos técnicos, que un software Open Source no se limita únicamente a permitir el acceso al código fuente del programa, sino que se ajusta además a una serie de hasta 10 puntos que se deben cumplir con tal de entrar en la definición. A lo largo de esos diez puntos, leídos detenidamente, podremos ver que el Open Source Software deberá ofrecer al usuario las cuatro libertades del software establecidas por la Free Software Foundation. Es más, en la tercer gran definición de software libre (segunda por cronología) también se deja claro que la definición de Open Source tomó como referencia a las Free Software Debian Guidelines:

-Posteriormente, Bruce Perens eliminó las referencias específicas a Debian en las directrices de Debian para el Software Libre (DFSG), creando "la definición de Open Source"-.

Bien es cierto que en la práctica, se suele asociar el término Free Software con aquellos más cercanos al aspecto ético y filosófico del movimiento, mientras que el término Open Source suele encontrarse más a menudo entre aquellos otros del lado más pragmático y de negocio. Pero el caso es que, más allá de estas pequeñas discrepancias, en la mayoría de los casos y salvo excepciones muy puntuales, ambos términos pueden aplicarse prácticamente como sinónimos. Con esta entrada espero haber puesto mi pequeño grano de arena para colaborar en la disolución de estas falsas asociaciones.

martes, 29 de marzo de 2011

Métricas y Estadísticas (III): GitStats

GitStats, según se indica en la propia web del proyecto, es un generador de estadísticas a partir de la historia de un repositorio Git. Su instalación y uso es tremendamente sencillo, ya que tan sólo debemos clonarnos su repositorio Git en SourceForge de la siguiente manera:

~>git clone git://repo.or.cz/gitstats.git

O bien, instalar el paquete directamente:

~>sudo apt-get install gitstats

Como se puede entender, uno de los requisitos previos será tener instalado Git, además de Python (dado que es el lenguaje empleado en la herramienta para obtener las estadísticas) y GNUPlot, para la realización de los gráficos de resultados a modo de dashboards.

Una vez hecho esto, tan sólo debemos dirigirnos al directorio donde hemos instalado/descargado GitStats, y buscar su ejecutable, que poseerá el mismo nombre. Para comenzar a obtener los resultados, tan sólo debemos realizar una invocación desde línea de comandos de la siguiente manera:

~>./gitstats path_git_repository_to_study path_results

Es decir, como primer argumento indicamos la ubicación del proyecto sobre el que queremos obtener las estadísticas, y como segundo argumento, el path en el que queremos obtener los resultados. Tras un tiempo de procesamiento tras la invocación, tendremos en el directorio indicado todos nuestros resultados en forma de páginas HTML. Podremos comenzar por abrir el fichero llamado "index.html" en el que podremos ver información general del proyecto: nombre del proyecto, número total de líneas de código, número total de ficheros, número de autores, etc. Y a partir de ese momento, sólo nos queda navegar entre los distintos enlaces referidos a actividad, autores, ficheros, líneas, y tags, todo siempre acompañado de gráficos y tablas que facilitan sobremanera la visualización y análisis de los datos obtenidos.

Algunos contras son por ejemplo la imposibilidad de listar los commits y enlazar uno en concreto para conocer sus estadísticas particulares, o consultas sobre las licencias de los ficheros, lenguajes de programación empleados y en definitiva, mucha otra información que sí conseguimos en ohloh.net como comentamos en una entrada anterior, si bien es cierto que ohloh.net no nos ofrece la posibilidad de estudiar los meses (días de la semana, e incluso horas) de mayor actividad, por poner un ejemplo. En definitiva, otra buena herramienta cuyos resultados podemos combinar con los obtenidos por otras vías con tal de completar nuestros estudios sobre un proyecto en concreto.

Por último, indicar que también se encuentran disponibles herramientas similares a GitStats pero destinadas al análisis de repositorios CVS (StatCVS) y Subversion (StatSVN).

domingo, 27 de marzo de 2011

Replicant: un androide 100% libre

Sabidas son las críticas hacia Android por parte de los más puristas y fervientes defensores del software libre, como por ejemplo por la inclusión de serie en la plataforma de aplicaciones privativas (en relación a esto mismo ya se realizó una entrada en este mismo blog, respecto a la relación entre Android-Google y Cyanogen), cosa que desvirtua, o cuando menos cuestiona, el concepto de free software en torno a Android (si bien es cierto que la mayor parte de Android está distribuido bajo una licencia Apache 2.0, y el kernel Linux bajo una GPL), especialmente si contemplamos los controladores o drivers del hardware de cada fabricante de dispositivos.


Del mismo modo que Debian en los entornos PC sólo incluye en sus distribuciones software 100% libre, llega ahora una alternativa (nótese el juego de palabras en los nombres) equivalente pero para el caso de Android y los smartphones: Replicant. En la propia web de Replicant, el proyecto queda definido de la siguiente manera: Replicant is a distribution of Android that is 100% Free Software. De hecho, entre los profesionales dedicados al mundo del software libre, siempre se ha comentado sobre el Android Market que si bien tiene múltiples maneras o criterios de búsqueda de aplicaciones (por categoría, de pago o gratuitas, por fecha de lanzamiento, etc.), se echa de menos la posibilidad de buscar por la licencia del software. Precisamente una de las iniciativas más relevantes de Replicant es la configuración de un Market compuesto únicamente por aplicaciones distribuidas bajo licencias de software libre. Así que, si has desarrollado y lanzado al Android Market una aplicación libre, no dudes en informar al equipo de Replicant para que la incluya en su listado ;-).

miércoles, 23 de marzo de 2011

Himno del Software Libre

Hace unos días conversaba con un compañero y al principio no me creía lo que me comentaba. Tras una búsqueda en Google y Youtube, pude comprobar que efectivamente, el Software Libre tiene una canción o himno, escrita por el mismísimo Richard Stallman, quien a su vez, la interpreta allá por donde se encuentra, incluídas conferencias. De hecho, toda la información sobre la canción queda recogida en la propia web del proyecto GNU, que puedes visitar haciendo click aquí.



Más abajo pego la letra de la canción, que como se puede observar, contiene algunos mensajes bonitos, muy en la línea, por otro lado, de la filosofía de vida y pensamiento de Richard Stallman. De hecho, se puede observar un claro paralelismo con la propia definición que RMS ofreció para el Free Software en su momento, como son la libertad, la ayuda a los vecinos, compartir del código, su concepción y uso del término hacker, etc.

Join us now and share the software;
You'll be free, hackers, you'll be free.
Join us now and share the software;
You'll be free, hackers, you'll be free.

Hoarders can get piles of money,
That is true, hackers, that is true.
But they cannot help their neighbors;
That's not good, hackers, that's not good.

When we have enough free software
At our call, hackers, at our call,
We'll kick out those dirty licenses
Ever more, hackers, ever more.

Join us now and share the software;
You'll be free, hackers, you'll be free.
Join us now and share the software;
You'll be free, hackers, you'll be free.

jueves, 17 de marzo de 2011

Métricas y Estadísticas (II): The Webalizer

Siguiendo el ciclo de herramientas para la obtención de métricas, en esta ocasión no trataremos exactamente sobre la obtención de datos respecto a un proyecto de software libre, sino que veremos cómo obtener todo tipo de estadísticas sobre la actividad de los usuarios en un servidor web.

Concretamente, vamos a tratar sobre la herramienta The Webalizer, que por supuesto, es un proyecto libre (distribuido bajo licencia GPL). Esta herramienta, mediante el acceso y uso de los logs del servidor web en cuestión, genera una serie de análisis presentados al usuario en formato de páginas web. Se trata de una herramienta empleada habitualmente por administradores de sitios web, al disponer tanto de una alta eficiencia (según se indica en el sitio oficial del proyecto, con un laptop con un procesador de 1.6GHz, se puede procesar un log con dos millones de hits en tan sólo 30 segundos) como de un rico y variado abanico de estadísticas ofrecidas. Entre todas estas métricas que se pueden obtener, a modo de ejemplos, destacan las siguientes:

Número de hits (cada petición HTTP recibida en nuestro servidor web), número de visitas, número de páginas descargadas, referencias, sistema operativo y navegador web empleado por nuestros usuarios (conocido normalmente como el User Agent, resulta interesantísimo con tal de optimizar nuestro sitio web para los navegadores desde los cuales obtenemos mayor número de visitas), país y dominio de nuestros visitantes, etc. Por supuesto, todas estas estadísticas las podemos parametrizar según los períodos temporales que definamos como de interés: anual, mensual, semanal, diario, etc., lo que nos permitirá de una manera sencilla tener un perfecto control sobre las reacciones del público (traducidas en tráfico y actividad en nuestro sitio) ante anuncios, apariciones en medios de comunicación, liberaciones de productos, etc., tendencia de crecimiento de nuestra empresa en el sector según las visitas aumentan mensualmente, etc.

Entre los puntos negativos de The Webalizer se encuentra el hecho de no diferenciar entre las visitas generadas por humanos y por robots, lo que suele conllevar, según los más críticos, a estudios poco realistas. Pese a todo, tan sólo podemos obtener una conclusión respecto a The Webalizer: la herramienta libre perfecta para exprimir todo el jugo al log de nuestro también libre servidor Apache.

sábado, 12 de marzo de 2011

Métricas y Estadísticas (I): ohloh.net

A partir de los repositorios de los proyectos de software libre, se puede obtener una infinidad de datos, que tras un adecuado procesamiento, estudio y análisis, se pueden convertir en valiosa información relativa a la evolución y trabajo en el proyecto: número de desarrolladores, meses con mayores picos de trabajo, horas del día en las que los desarrolladores realizan mayor número de commits, relacionar la introducción de bugs en el código con la experiencia del desarrollador en el proyecto, y prácticamente cualquier otro factor de utilidad que se nos pueda ocurrir.

Con esta entrada, inicio lo que espero que se convierta en una serie de posts sobre algunas de las principales herramientas existentes para la obtención de datos de interés de un proyecto con la única premisa de tener acceso a su sistema de control de versiones. Y para comenzar, tenemos el sitio web ohloh.net. Quizás la peculiaridad de esta herramienta, resida en que supone un portal web en el que los mismos desarrolladores de software libre pueden establecer relaciones como si de una red social profesional se tratase, en la que cada uno puede otorgar 'Kudos' a aquellos otros desarrolladores cuya valía tienen en buena consideración, e incluso, estableciéndose un ranking entre desarrolladores en comunidades de software libre.

Por lo demás, el proceso es sencillo: cualquier desarrollador puede crearse una cuenta en ohloh.net, dar de alta su proyecto, e indicar los repositorios en los cuales se encuentra su código fuente. A partir de entonces, se podrán consultar datos, métricas y estadísticas de todo tipo relativos al proyecto. Los aspectos más destacados según temática son los siguientes:

- Aspectos sociales: cuántos y quiénes son los desarrolladores del proyecto (y su experiencia en el proyecto y con cada lenguaje de programación), así como su propietario y/o mantenedor, quiénes y cuántas son las personas que se han registrado como usuarios del proyecto, las votaciones recibidas por parte de esos usuarios (y puntuación media), etc.
- Aspectos legales: las diferentes licencias empleadas en los ficheros del proyecto, así como cuántos ficheros (y su rating) poseen cada una de las licencias presentes en el proyecto.
- Aspectos técnicos: lenguajes de programación empleados, número de líneas de código escritas en cada lenguaje de programación y porcentaje de uso de cada uno de ellos, número de líneas en blanco y líneas de comentarios (y sus ratios), número total de commits realizados (con sus fechas, horas, enlaces al repositorio, autor), repositorios.
- Desarrolladores: como se puede entender por lo explicado hasta el momento, también todo tipo de estadísticas sobre cada desarrollador: ranking y número de 'kudos' recibidos, proyectos en los que ha participado, experiencia, commits realizados, etc.

En definitiva, una herramienta potente y de sencillo uso a través de una amigable interfaz web.

lunes, 7 de marzo de 2011

Google vs. Cyanogen

Prácticamente desde el mismo nacimiento y lanzamiento de Android, surgió de la nada un desarrollador independiente de toda gran multinacional, ya fuera fabricante de hardware, software u operadora perteneciente a la Open Handset Alliance. Su nombre: Cyanogen. Sus actos: generación y compilación de sus propias versiones de Android partiendo siempre del código fuente publicado por Google, llegando a generar nuevas ROMs que pronto se conocieron en todo el mundo y alcanzando un alto índice de penetración para teléfonos HTC Dream (G1) y HTC Magic (G2). Estas nuevas ROMs, hacían que el potencial de estos smartphones se aprovechase muchísimo mejor, de una manera más eficiente, y en definitiva, ofreciendo unas mejores prestaciones al usuario.

Sin embargo, tan conocido como Cyanogen son las polémicas y desaprobación de la labor de este desarrollador por parte de Google. Según Google, el problema reside en que Cyanogen incluye en sus nuevas compilaciones, aplicaciones privativas (de la propia compañía que se encuentra a la cabeza de Android), tales como YouTube, Gmail, Google Maps o el Android Market. ¿Es por tanto Android, tan sólo un vehículo (y de ahí que se distribuya como software libre) para entrar en el mercado de la telefonía móvil y que los productos de Google no sólo se empleen en el escritorio, sino también en los smartphones? ¿Acaso seguiría teniendo valor un teléfono Android con una versión en la cual no se pudiera hacer uso de los servicios que todos usamos asiduamente? Por otro lado, ¿deberían preocuparse las grandes multinacionales más por sus propios productos, buscando la optimización, eficiencia e innovación, facilitando el acceso a nuevas actualizaciones del firmware que a menudo no llegan para determinados terminales o en el mejor de los casos, lo hacen con un retraso de meses, en lugar de prestar atención a los desarrolladores independientes que tan sólo consiguen robar un puñado de miles de usuarios con su ROM?

viernes, 4 de marzo de 2011

Un Premio Príncipe de Asturias para el Software Libre

CENATIC (Centro Nacional de Referencia de Aplicación de las TIC basadas en fuentes abiertas), previo análisis de alternativas, y por invitación de la Fundación Príncipe de Asturias para la presentación de una candidatura a los Premios Príncipe de Asturias 2011, ha decidido promover y presentar la candidatura de "La Comunidad Internacional del Software Libre" en la modalidad de Cooperación Internacional.

Para acceder a toda la información, puedes pinchar aquí.

Sin duda alguna, el hecho mismo de que el mundo del software libre opte a tal galardón, ya es un éxito. Pero ahora sólo falta un pequeño paso más para la gloria: el reconocimiento. Una persona no puede observar sin el menor atisbo de asombro, la tarea llevada a cabo entre grupos de personas e instituciones de todas las nacionalidades, comunicadas desde todas las partes del mundo en la mayoría de los casos únicamente a través de Internet, pero sirviéndose de una herramienta mucho más poderosa: la lucha por la libertad en el ámbito tecnológico y la compartición del conocimiento. Puede que éste, de ser la candidatura finalmente galardonada en esta modalidad, fuera el Premio Príncipe de Asturias que pudiera pertenecer a más personas, aunque fuera en la más mínima parte, directa o indirectamente, dada la gran comunidad internacional que existe alrededor del mundo del software libre.

¿No sería bonito que nos tocase un pedacito de ese premio? Si te parece adecuado, muestra tu apoyo a la candidatura aquí y difúndelo.