lunes, 25 de abril de 2011

¡Menuda se ha montado! ¡Copiad, Malditos!

Menuda se montó la semana pasada. Pero vayamos poco a poco. ¿Qué es lo que pasó?

La semana pasada se emitió en TVE (más concretamente el domingo 17 de abril de 2011 en La 2) el documental que enlazo más abajo, titulado "¡Copiad, Malditos!" y que trata sobre propiedad intelectual, derechos de autor, etc. Hasta aquí todo bien. ¿Qué es lo que lo hace tan peculiar? En primer lugar, que por primera vez en la Historia de RTVE, se emitió un documental sin la omnipresente (c) del Copyright y "Todos los derechos reservados", sino que estaba licenciado bajo una Creative Commons según la cual los usuarios quedan autorizados legalmente para descargarse el vídeo de Internet y distribuirlo.

Es más, lo verdaderamente sorprendente es que en el medio de comunicación que depende directamente del Gobierno tras el cual se encuentra la llamada Ley Sinde, se diera voz y voto a aquellos que se posicionan en contra de los derechos de autor entendidos en su forma más tradicional, poniendo en entredicho la actual legislación sobre propiedad actual en nuestro país y muy especialmente a los mecanismos de actuación de la SGAE (Sociedad General de Autores Españoles), y manifestándose claramente a favor de la cultura libre y del copyleft. Todo esto, ¿estará teniendo (o tendrá) consecuencias sobre determinados miembros de la plantilla de RTVE?



Para hacernos una idea del impacto del documental sobre el ciberespacio español, tan sólo es necesario conocer que durante las horas posteriores a su emisión, #copiadmalditos se convirtió en trending topic de Twitter. Y como os podéis imaginar, el "postpartido" resultó el mismo de siempre: Alejandro Sanz atacando a los letrados David Bravo y Javier de la Cueva, Lorenzo Silva por el medio quejándose de haber sido víctima de la tijera, y en definitiva, mucha bronca y ningún consenso (vamos, algo similar a lo que ocurre con el "Toros, sí vs. Toros, no").

Una última reflexión sobre un aspecto que me ha dejado relativamente a cuadros. Según el documental, la idea es licenciarlo como copyleft acorde con la cultura libre. Pero si bien es cierto que la licencia elegida es de tipo Creative Commons, su tipo específico es el siguiente: BY/NC 3.0 Unported. El "BY" quiere decir "Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría.", mientras que el "NC" indica "No Comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.". En resumen, el uso de esta licencia implica que:

"Reconocimiento - NoComercial (by-nc): Se permite la generación de obras derivadas siempre que no se haga un uso comercial. Tampoco se puede utilizar la obra original con finalidades comerciales."

Por tanto, ¿se puede considerar copyleft una licencia según la cual puedo descargar y redistribuir la obra así como generar obras derivadas a partir de ella, pero que no me permite explotar comercialmente ni la obra original ni sus derivadas? Hasta donde yo sé, se puede considerar una obra como libre siempre y cuando se pueda copiar, distribuir, exponer y/o representar, realizar trabajos derivados, y adicionalmente, se pueda llevar a cabo cualquiera de los puntos anteriores con ánimo de lucro si así se desea. Así que, según la información que yo tengo, la respuesta a la pregunta es que no. Si hay alguien que pueda argumentarme lo contrario, lo leeré encantado :-).

viernes, 22 de abril de 2011

Mozilla y su Modelo de Financiación

Para una persona que desconoce por completo el mundo del software libre, no deja de ser sorprendente a la par que enigmática, la manera mediante la cual los proyectos de este tipo consiguen financiarse para seguir adelante. Si bien es cierto que un gran número de proyectos de software libre se sirve únicamente de la colaboración voluntaria, muchos otros proyectos cuentan con una serie de gastos, fundamentalmente en personal contratado, máquinas e infraestructuras, a los que se debe hacer frente, consiguiendo para ello ingresos de diferentes maneras.

Dada su magnitud y su especial interés, en este post comentaremos la forma en que la Fundación Mozilla consigue esa financiación, que se produce fundamentalmente a través de donaciones. Estas donaciones van desde pequeñas aportaciones de particulares (la minoría) hasta grandes multinacionales que realizan un gran desembolso económico debido a que presentan algún tipo de interés particular en que Mozilla y sus proyectos, sigan adelante. Este es el caso de Google, que colabora con una aportación que supone la mayor parte de las recaudaciones conseguidas. Por conocer algunos datos, tenemos que Google en 2006 donó a Mozilla un total de 57 millones de dólares, lo que supuso el 85% de los ingresos totales de la compañía en este año (66'8 millones de dólares).

Gracias a estas aportaciones, los dos grandes productos estrella de Mozilla siguen adelante: el navegador web Mozilla Firefox y el cliente de correo electrónico Mozilla Thunderbird. Pero si ponemos en conjunción estos dos datos, el resultado es algo extraño: Google, a través de sus donaciones, está financiando Mozilla Firefox, lo que equivale a financiar a la competencia de su propio browser, Google Chrome; más extraña (o quizás todo lo contrario) se vuelve aún la situación teniendo en cuenta que los mayores ingresos de Google provienen a través de la publicidad colocada en páginas web visitadas con Firefox. Es más, Firefox incluye la barra de Google, que lleva a la página del buscador en que se publicita a Google Chrome.

El caso es que teniendo a Google como algo parecido a un mecenas, Mozilla consigue gozar de una buena salud económica, tal y como avalan sus resultados anuales, y teniendo además en cuenta que el acuerdo entre Google y Mozilla ya se prolongó en 2008 por 3 años más, es decir, hasta 2011, no sería de extrañar que nuevamente se volviera a prolongar dicho acuerdo durante unos años más. Además, debe tenerse en cuenta que todo esto puede que no sea más que una manera de Google para luchar contra uno de sus grandes competidores: Microsoft. Quizás Google no necesitase esta estrategia dentro de su empresa si Google Chrome estuviese en la situación dominante del mercado de los navegadores (Si bien es cierto que su cuota de mercado aumenta muy rápidamente), tal y como ocurre con Firefox que ya iguala e incluso supera a Internet Explorer en número de usuarios, y en el caso de Firefox 4, supera de manera aplastante a Internet Explorer 9 en cuanto a número de descargas (téngase también en cuenta que Explorer sólo está disponible para Windows, mientras que Firefox lo está para Windows, GNU/Linux, y Mac OS).

En resumen, aquí hemos presentado tan sólo un ejemplo de cómo los proyectos/organizaciones de software libre se pueden financiar, en este caso, a través de donaciones, pero casi podría decirse que a través del mecenazgo. En cualquier caso, no cabe duda de que el abanico de posibilidades es muy amplio, como bien demuestran algunos de estos ejemplos: RedHat, independiente económicamente por sí misma a través de sus servicios de consultoría, certificaciones, etc.; Canonical, con un multimillonario destinando fondos para que su distribución Ubuntu siga adelante ganando usuarios; o el caso de Wikipedia, basada en este caso sí, fundamentalmente en las pequeñas aportaciones económicas de particulares.

lunes, 18 de abril de 2011

Chrome OS: un producto estratégico

Durante las últimas semanas se ha sabido que múltiples fabricantes de hardware como Acer, Asus, Sony o Samsung, lanzarán durante la segunda mitad de 2011 diferentes portátiles con algunas características en común: Google Chrome OS preinstalado y en algunos casos con arranque dual Chrome OS/Windows, tamaño de entre 10 y 12 pulgadas, y precio entorno a los 300 dólares. Parece por tanto que se trata de portátiles lanzados con la idea de hacer competencia directa a las tan de moda tablets, con similares características físicas, pero menor versatilidad de funciones y precio alrededor de los 500 dólares.

Pero, ¿qué lleva a Google a introducirse en el mercado de los sistemas operativos? Si bien ya pudiera resultar extraño que Google lanzase Android para las plataformas móviles (y aparentemente extraño que además lo hiciera de manera libre), habría que comenzar a sospechar sobre el verdadero interés de Google con Chrome OS como sistema operativo en ordenadores y portátiles.




No cabe duda de que el hecho de que se trate de productos libres, invita a que los fabricantes lo adopten para sus dispositivos con el aliciente adicional del ahorro de costes en concepto de pago de licencias. Sin embargo, por centrarnos en el caso de Chrome OS, parece que la idea final es tener un kernel mínimo con funcionalidades elementales como la gestión de la tarjeta gráfica y el arranque de una navegador web (de ahí el ideal perseguido de que el sistema sea capaz de arrancar tan rápidamente como lo pueda hacer un televisor, llegándose a establecer un objetivo en el tiempo de arranque de tan sólo 7 segundos). En definitiva, lo estrictamente necesario como para acceder a la red e interactuar en ella, ya sea para el almacenamiento y acceso a ficheros personales (la necesidad de un disco duro local desaparecería cuando todo fuera almacenado en la nube), streaming, redacción de documentos en una suite ofimática (Google Docs), etc., haciéndose igualmente innecesario tener instalados en el portátil reproductores multimedia, suites ofimáticas, etc.

Una vez conseguido este objetivo en el que Chrome OS fuese el "sistema operativo" predominante basado en web y tras desbancar a Microsoft Windows como primera opción en los entornos de escritorio, Google habría consumado su objetivo último: hacer todavía más imprescindible de lo que ya lo es a día de hoy, el uso de Internet y del HTTP, lugar en el que sin duda alguna, es la empresa dominante y garantizándose el poder seguir explotando durante mucho tiempo más su modelo de negocio basado en la intermediación en el mundo de la publicidad en la red.

jueves, 14 de abril de 2011

Las Ventajas de Git

Desde hace algunas semanas estoy trabajando con Git tras mi paso intermedio por git-svn que ya detallé en una entrada anterior. Teniendo en cuenta que me inicié con Subversion dentro del mundo de los repositorios, he de decir que estoy encantado con las facilidades y potencia que ofrece Git. Sin llegar a entrar en detalles de aspectos más avanzados como por ejemplo el trabajo con ramas, indicaré aquí algunas de las cosas que me facilitan el trabajo respecto a lo que conocía de Subversion.

Lo primero es que gracias a que Git es un sistema de control de versiones distribuido, podemos hacer commits en nuestra máquina local, por lo que podemos seguir trabajando incluso sin conexión de red y subir todos los cambios de una sola vez más tarde. La ventaja no se encuentra únicamente en el hecho de que el desarrollador pueda no tener conexión a Internet, sino también en las horas de trabajo que se podrían perder en caso de que la máquina que albergase el repositorio a modo de servidor centralizado, estuviese caído.

También resulta cómoda la resolución de conflictos a través de la herramienta mergetool y del editor meld, en el que se presentan tres columnas de una manera muy gráfica y con colores: la central, que será en la que se resolverá el conflicto y que muestra la mezcla que Git intenta realizar; las otras dos columnas se corresponderán con el contenido que Git se ha descargado y la copia que ha encontrado en el repositorio local.

Cabe destacar la posibilidad de realizar una enmienda ("git commit --amend") sobre el último commit realizado, cosa a realizar únicamente en caso de que los cambios no se hayan subido todavía con un push, pues de lo contrario, se podrían ocasionar conflictos y problemas en las copias de trabajo del resto de desarrolladores.

Otra herramienta de gran utilidad es la posibilidad de deshacer todos los cambios locales que tengamos realizados sobre el código fuente y que queramos revertir, restaurando el estado del código al que tuviera tras la ejecución del último commit (esta posibilidad con "git stash" resulta de especial utilidad cuando por ejemplo, se ha llenado el código de trazas mediante las cuales se intentaba depurar un bug, ahorrando el trabajo de recorrer todos los ficheros y deshaciendo los cambios manualmente). Y como última curiosidad, la posibilidad de ver fácil y rápidamente la historia del proyecto con tan sólo teclear el comando "git log", al mismo tiempo que se podrán visualizar los cambios introducidos en cada commit con tan sólo ejecutar el comando "git show" seguido del hash del commit que podemos encontrar en el log.

En definitiva, Git configura una herramienta potente con la que ir descubriendo nuevas posibilidades poco a poco y que nos faciliten el trabajo, además de volverlo más rápido y cómodo.

domingo, 10 de abril de 2011

Métricas y Estadísticas (IV): SLOCCount

SLOCCount es una herramienta que permite, de una manera rápida y sencilla, contabilizar el número de líneas de código existentes a lo largo de una serie de ficheros. Esta herramienta además es capaz de detectar qué lenguaje de programación es el empleado en cada fichero, teniendo actualmente soporte para un gran número de lenguajes (de hecho, consultando el sitio oficial de la herramienta, raro será echar en falta algún lenguaje en concreto). En base a ese parámetro SLOC (Source Lines Of Code) previamente calculado, también se realizará automáticamente una estimación del esfuerzo (personas-año), tiempo y dinero (dólares) necesarios para realizar el desarrollo del software (esto se realiza aplicando un modelo COCOMO (COnstructive COst MOdel) tal y como si el proyecto fuese desarrollado de una manera tradicional de software privativo).

Lo mejor de todo es la sencillez de instalación y uso de SLOCCount. Para instalarlo, tan sólo necesitaremos ejecutar el siguiente comando en una shell de nuestro sistema GNU/Linux:

~>sudo apt-get install sloccount

Y para ejecutar SLOCCount de una manera básica (al mismo tiempo que funcional):

~>sloccount directory_name

Donde directory_name indica el directorio en el que se encuentran los ficheros fuente del proyecto que queremos analizar. En caso de que se quisieran afinar un poco más los parámetros del modelo COCOMO con tal de que los resultados obtenidos sean más precisos o cercanos a la realidad, siempre se pueden estudiar los parámetros del programa para ajustar el modelo de la manera más adecuada.

Sin duda, SLOCCount es una herramienta a destacar dado que con una gran simplicidad, nos ofrece información muy útil e interesante, no siempre fácil de obtener y a un bajo coste dada su rapidez y automatización del trabajo, con la que podremos complementar y contrastar la información obtenida tras la aplicación de otras herramientas sobre nuestro proyecto como las que ya analizamos brevemente en algunas otras entradas de este mismo blog, como por ejemplo ohloh.net y gitstats.

jueves, 7 de abril de 2011

Influencia en otros ámbitos: música y Creative Commons.

La influencia del software libre (su filosofía, su forma de actuar en la práctica, sus aspectos éticos) sobre otros ámbitos de la sociedad se están haciendo palpables cada vez con más frecuencia y de una manera más evidente. Un claro ejemplo de ello fue tratado en una entrada anterior de este blog, con el proyecto de hardware libre Arduino. Pero esta influencia no se ciñe únicamente a ámbitos técnicos, sino que en los últimos años está cobrando una relevancia muy fuerte en ciertas áreas artísticas, y muy especialmente en la música.

Esto se ha hecho posible gracias a las licencias Creative Commons, que han abierto una puerta con nuevas posibilidades para artistas noveles y desconocidos, ya que estas licencias les permiten ceder algunos derechos (controlando el autor qué derechos quiere ceder o compartir y cuáles no) pero sin perder por ello su reconocimiento como autor, logrando además gracias a Internet una distribución de su obra rápida y sencilla, en un lugar donde el coste asociado a la copia carece de sentido. Sin duda alguna la gran revolución está aún por venir (si no es así, ya lo veremos...), pero lo cierto es que esta coyuntura internacional está obligando a que las discográficas, como cabeza visible del negocio en su forma tradicional, comiencen a ensayar nuevas fórmulas para rentabilizar sus productos, siempre con un gran temor al cambio, donde otros muchos ven realmente nuevas oportunidades.



Actualmente, ya proliferan las páginas web en las que se puede disfrutar de todo tipo de música distribuida bajo este tipo de licencias Creative Commons (y también Licencias Arte Libre, de tipo copyleft y sometida al derecho francés). Quizás el ejemplo más representativo sea Jamendo, comunidad con más de 300.000 canciones de todos los estilos, en la que los artistas pueden subir su música gratuitamente y los usuarios pueden descargarla del mismo modo (aunque siempre se pueden hacer donaciones voluntarias para los artistas). El gran beneficiado de todo esto quizás sea el público general, ya que gracias a la proliferación de estas iniciativas, se puede disfrutar de un abanico de nuevas posibilidades, estilos, músicas, etc., presentándose un escenario alternativo al modelo tradicional, en el que parecía existir únicamente aquella música que se oía en los medios.

domingo, 3 de abril de 2011

Arch Linux

Arch Linux es una distribución de GNU/Linux lanzada en 2002 y que está ganando muchos seguidores especialmente entre los profesionales del software. Estos profesionales han encontrado en Arch Linux una alternativa perfecta a las otras dos grandes y populares distribuciones con las que estaban quedando insatisfechos. La primera de ellas es Debian, debido a la lentitud con la que se suelen incorporar actualizaciones del sistema. La segunda, Ubuntu, muy criticada al incluir módulos en el kernel para todas las arquitecturas posibles, drivers, etc. (además de distribuir muchos paquetes a menudo únicamente en forma binaria), por lo que buscando una mayor compatibilidad, se tiene un sistema mucho más pesado de lo necesario, y que además, aunque sólo sea a modo anecdótico, no suele incluir de serie una herramienta tan básica a la vez que fundamental como el editor vi/vim (ni Subversion, ni Git, etc.).


Arch Linux por su parte, ofrece una interfaz simple y minimalista, en la que prácticamente a diario se ofrecen actualizaciones del sistema. Sin embargo, se debe destacar también que debido a que incluye las actualizaciones más recientes, ese "estar a la última" a menudo hace que se incluyan revisiones inestables al encontrarse prácticamente en el Estado del Arte, y al no contar con unos controles de calidad tan exhaustivos como los que sí están presentes en Debian. En resumen, Arch Linux se puede definir como una distribución no muy recomendable para usuarios medios (basta con ver que el propio usuario debe "configurarse" el kernel para sus necesidades, de ahí la mayor ligereza que ofrece) dada su mayor complejidad de instalación, uso y mantenimiento, pero también debe ser tenida en cuenta por aquellos profesionales con ciertas necesidades con las versiones actualizadas de su software y que sean exigentes con el rendimiento de su equipo.

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.

lunes, 28 de febrero de 2011

Cubriendo todas las necesidades: Radio Mobile

Actualmente, podemos afirmar que el software libre está presente en todas partes, cubriendo todo tipo de necesidades que se le puedan presentar a un usuario cualquiera. Ya desde sus inicios, Richard Stallman con GNU Emacs y GCC, se encargó de cubrir las necesidades básicas de todo desarrollador software: un editor de textos y un compilador. Llegando a nuestros días, nos encontramos con que el número de aplicaciones y software libre en general para todo tipo de perfiles de usuario, ha crecido considerablemente (y no por ello con baja calidad) hasta el punto de cubrir prácticamente cualquier campo de aplicación: navegadores web, suites ofimáticas, clientes de correo electrónico, juegos, reproductores y editores multimedia, servidores web, frameworks de desarrollo, y un largo etcétera.

Como claro ejemplo de esto, y por descubrir un área tremendamente específica y un tanto desconocida para el público general, tenemos Radio Mobile. Se trata de una herramienta de software libre (nacida en 1988), con la que el usuario puede simular y analizar sistemas de radiocomunicaciones, empleando para ello mapas topográficos digitales para simular el perfil de la elevación del terreno entre una antena transmisora y otra emisora. Según sus autores, su uso está especialmente recomendado para radioaficionados (de hecho, la autoría del software queda firmada bajo un indicativo de radioaficionado, concretamente de Roger Coudé, residente en Canadá) y para aplicaciones con fines humanitarios (siendo de hecho uno de los principales usos de esta aplicación, en el diseño y despliegue de sistemas radio en países en vías de desarrollo).

Capture Radio Mobile

Si bien es cierto que esta herramienta cuenta con ciertas limitaciones e imprecisiones, como por ejemplo los modelos de propagación soportados, pero presentando también una gran flexibilidad, al permitirse por ejemplo el diseño y creación de nuevos modelos de diagramas de radiación para antenas (además de por supuesto el hecho mismo de ser un software libre que poder estudiar, ampliar, mejorar y evolucionar), su potencia queda lejos de las aplicaciones comerciales para uso profesional en las grandes empresas de telecomunicaciones. No obstante, se ha de reconocer el gran mérito que supone el que esos radioaficionados y personas sin presupuesto suficiente como para adquirir las carísimas licencias de las aplicaciones comerciales de este campo, tengan acceso a la simulación de enlaces de radiocomunicaciones mediante esta herramienta, teniendo en el caso de los estudiantes de ingeniería un nivel de acercamiento para una mejor comprensión de los conocimientos teóricos aprendidos, impagable.

lunes, 21 de febrero de 2011

Nokia + Microsoft = ¿?

La irrupción de iOS y Android en el mercado de los sistemas operativos para teléfonos móviles supuso un varapalo para Nokia, que hasta ese momento había sido el líder indiscutible en ventas a nivel mundial de estos dispositivos. Nokia no tuvo más remedio que reaccionar, intentando entre otras cosas captar desarrolladores para su plataforma: Symbian. Así, Nokia liberó el código fuente de dicho sistema operativo, pese a lo cual, las cosas no mejoraron para el gigante escandinavo. Entre aquellos amantes del software libre que no terminaban de quedar satisfechos con Android, se comenzó a generar gran expectación en torno al otro gran proyecto de Nokia, también basado en software libre (Linux, y auspiciado por la Linux Foundation, al contrario que Android pese a estar basado igualmente en Linux) y en su predecesor Maemo: MeeGo.



Pero en los últimos días, ardió la mecha tras el anuncio oficial de la alianza establecida entre Nokia y Microsoft, para incluir Windows Mobile en los dispositivos móviles del primero. Con ello, Nokia dice adiós a su control total sobre los dispositivos que diseña y produce, pasando de un modelo equivalente al de Apple con su iPhone, al que se podría comparar con el modelo que siguen actualmente HTC o Samsung con Android. Teniendo todos estos factores en cuenta, ¿a qué está jugando Nokia? ¿Alguna vez llegó a creer fuertemente en la filosofía y posibilidades del software libre? ¿A qué se deben estos giros tan repentinos y radicales, sin un rumbo fijo? ¿Son normales estos cambios de estrategia a golpes de timón?

Es indudable que para Microsoft se trata de un negocio redondo, puesto que consigue la entrada de lleno en un sector que tenía totalmente perdido tras la llegada demasiado tardía de su Windows Mobile. Pero, teniendo en cuenta la importante presencia que Nokia posee actualmente en los incipientes mercados asiáticos e iberoamericanos, ¿no le habría resultado mucho más provechoso decidirse por una estrategia basada en Android, por lo que además, seguramente habría abaratado sus costes respecto al uso de Windows Mobile, y empleando un sistema operativo ya muy popular entre la sociedad?

El tiempo dirá si se trata de una decisión acertada por parte del gigante internacional Nokia. Pero por el momento, quienes sí hablaron son los mercados bursátiles, ofreciendo en torno a una caída del 10% de las acciones de Nokia tras el anuncio del acuerdo.

miércoles, 16 de febrero de 2011

Arquitectura LAMP

La arquitectura LAMP (tradicionalmente Linux-Apache-MySQL-PHP/Perl/Python), promocionada fuertemente por la editorial O'Reilly hasta desembocar en la adopción del término mencionado para referirse a ella, puede que sea uno de los casos de éxito más sobresalientes del software libre como arquitectura. Esta arquitectura, que consta de un sistema operativo, un servidor web, una base de datos y un lenguaje de programación, todos ellos distribuidos bajo una licencia de software libre, ofrece una manera tremendamente rápida (además de por venir normalmente de serie en las distribuciones de Linux) para la construcción de una aplicación web para usuarios finales a un bajo coste. Siendo tecnologías sin dependencia alguna entre ellas (nunca fueron pensadas con el fin de interoperar entre sí), hace que resulte sorprendente los buenos resultados que se suelen obtener en producción, y siendo un gran ejemplo de la variedad y calidad de productos que ofrece el software libre. Pero sus detractores también ofrecen argumentos para no utilizarlo como por ejemplo la posible falta de soporte respecto a un Windows Server y una base de datos Oracle. Sin embargo, si visitamos páginas de empleo como InfoJobs, veremos un alto número de ofertas de empleo para personas con experiencia en LAMP, lo que nos ofrece la idea de que su grado de penetración en el mercado es elevado, por lo que debemos pensar en que, en cualquier caso, las ventajas que nos ofrece LAMP son mucho mayores que sus desventajas.

viernes, 11 de febrero de 2011

LibreSoft Gymkhana 1.0 en el Android Market

Desde el pasado 4 de febrero de 2011, la versión 1.0 de LibreSoft Gymkhana está disponible en el Android Market. LibreSoft Gymkhana es una aplicación Android para organizar y participar en juegos de pistas; el uso de tecnologías incluidas en smartphones hace que permita incluir experiencias nuevas a las ya tradicionales y divertidas gymkhanas.






También se trata de un juego libre (Open source), educativo y geolocalizado, relacionado con aplicaciones de M-Learning & Turismo principalmente. Está basado en la red social móvil LibreGeoSocial, que incluye una interfaz de realidad aumentada móvil. Gracias a LibreSoft Gymkhana serás capaz de organizar y gestionar gymkanas móviles (m-gymkhana) con soporte para múltiples tipos de retos destinados a los participantes, usando smartphones Android (gymkhanas de nueva generación) fácilmente y sin gran esfuerzo.




LibreSoft Gymkhana es un proyecto desarrollado dentro del grupo LibreSoft del Departamento GSyC (Universidad Rey Juan Carlos) con el apoyo y bajo el marco de la red eMadrid, y ha sido empleado hasta el momento exitosamente en varios eventos organizados por la Comunidad de Madrid: "La Noche de los Investigadores 2010" (un evento de ámbito europeo con el objetivo de acercar a la población en general a la ciencia y a sus investigadores) y "X Semana de la Ciencia" son tan sólo algunos ejemplos. Para más información sobre LibreSoft Gymkhana, puedes visitar su sitio web (click aquí), donde encontrarás cómo descargar e instalar la versión 1.0 (click aquí), noticias, experiencias, vídeos, e información de contacto.

domingo, 6 de febrero de 2011

Un proyecto de hardware libre: Arduino

Ya en la primera entrada del blog hice una mención velada a un mundo en el que el hardware libre fuese una realidad, como ya lo es a día de hoy el software libre. Hace unos días vi el documental que enlazo más abajo, sobre una interesante tecnología que sin duda alguna, está suponiendo una auténtica revolución, al menos en los entornos educativos de nivel superior: Arduino, una plataforma de hardware libre. Lo cierto es que tanto el documental, como por supuesto, la plataforma Arduino, no tienen desperdicio. Durante la media hora escasa que dura el documental, cada una de las personas que realizan algún comentario u observación, nos dejan, quizás sin ser conscientes de ello, una serie de interesantísimas frases dignas de análisis.

Arduino, comenzando como un proyecto Open Source en el que cualquiera pudiera llegar, ayudar y contribuir, y pensado para que perdurase pese al posible cierre de la escuela en la que nació, es un gran ejemplo de la influencia que el mundo del software libre comienza a tener sobre muchas otras áreas de nuestro mundo. Una iniciativa bonita y necesaria, nacida con la idea de facilitar, a un bajo coste económico, la posibilidad de que toda persona aprenda y comprenda cómo funciona el mundo tecnológico en el que nos encontramos inmersos.

Arduino The Documentary (2010) Spanish HD from gnd on Vimeo.

jueves, 3 de febrero de 2011

A medio camino entre git y subversion: git-svn

Actualmente estoy trabajando en dos proyectos de software libre. Los repositorios de estos proyecto, utilizan subversion (svn) como sistema de control de versiones. Sin embargo, llevaba tanto tiempo oyendo hablar de git, que tuve ganas de acercarme un poco más y comprobar por mí mismo las bondades que se le atribuyen, pese a que también hay quien dice que no ofrece grandes ventajas respecto a svn para proyectos pequeños con pocos desarrolladores.

Así, desde unas semanas estoy utilizando git-svn. Evidentemente no es lo mismo, pero creo que sí es una buena aproximación, teniendo en cuenta que el repositorio con el que trabajo es svn, no interoperable con git (así, digamos que en mi copia local trabajo como si de un git se tratase, pero contando con pequeñas diferencias a la hora de realizar los commits, puesto que todo debe ser entendible para ese subversion). Pese a todo, he de decir que hasta el momento estoy bastante contento, descubriendo cosas nuevas que no podía hacer con svn (o al menos, desconozco si realmente se pueden hacer). Algunos ejemplos de esto son que de entre todo el conjunto de ficheros modificados en mi espacio local, puedo indicar cómodamente cuáles de ellos quiero incluir y cuáles no en cada commit, lo cual es tremendamente beneficioso de cara a la atomicidad de los cambios introducidos en un proyecto. Otra gran ventaja es que dentro de un mismo fichero, normalmente nos podremos encontrar con que hemos introducido, eliminado o modificado diferentes bloques de código; así, git también nos permite fácilmente seleccionar qué bloques de modificación dentro de un mismo fichero, queremos seleccionar para nuestro commit, o postponerlo para otro.

En cualquier caso, esto son tan sólo pequeños caramelos si nos fijamos en la potencia de otras muchas funcionalidades de git: merge, branches, etc. Tan sólo un pero le pongo por el momento a git-svn: si enviamos de una sola vez al repositorio todos los commits realizados sobre la copia local de trabajo, todos esos commits aparecerán en el repositorio con la misma hora (en realidad, con pequeñas variaciones, quizás de segundos), cuando realmente nos gustaría que apareciese la hora a la que se realizó el commit sobre la copia local. Pero realmente esto no es culpa de git-svn, ya que realmente en subversion, el timestamp del commit lo establece el servidor al subir los cambios al repositorio, mientras que en git, el timestamp se marca en la propia máquina de trabajo al hacer el commit en ella, y conservándose ésta al realizar el push.

domingo, 30 de enero de 2011

Obsolescencia Programada - Planned Obsolescence

Recientemente tuve la ocasión de ver un documental emitido por La 2 de TVE, titulado "Obsolescencia Programada", cuyo visionado recomiendo encarecidamente y que enlazo a continuación:



De una manera muy resumida, presenta cómo desde la invención de la bombilla (como primer ejemplo de obsolescencia programada), las grandes compañías tecnológicas (y no tecnológicas, como por ejemplo con la fabricación de las medias de nailon) siempre han tratado de establecer cierta fecha de caducidad en sus productos (ya fuera programando la propia inoperatividad del producto tras un tiempo de uso determinado, o mediante el simple mecanismo del establecimiento de modas efímeras que se sustituyen unas a otras), con tal de evitar la existencia de bienes tan duraderos que terminasen por reducir las ventas tan drásticamente que finalmente los negocios se vinieran abajo (y sin tener nunca en cuenta los beneficios naturales y ecológicos que por otra parte, podría conllevar un uso prolongado de los productos).

Todo esto me llevó a pensar en el mundo del software. Son frecuentes las sospechas sobre posibles bombas lógicas introducidas deliberadamente en ciertos softwares con tal de que tras un determinado tiempo, sea necesario recurrir a un servicio de soporte que ofrezca una solución al problema. Del mismo modo, en ciertas ocasiones un determinado software, ya sea un sistema operativo o una determinada aplicación, sustituye a una versión anterior a la cual no sólo no mejora, sino que a veces supone un paso atrás en eficiencia y/o experiencia de usuario.

Sin embargo, en el mundo del software libre estos hechos son simplemente impensables. Si una persona tiene la libertad de estudiar el funcionamiento de un software (teniendo por tanto acceso a su código fuente, y siempre y cuando éste no haya sido ofuscado previamente), podría detectar la inclusión de posibles bombas lógicas (además de por supuesto, bugs, comportamientos poco deseables o inestables, etc.). En definitiva, el software libre permitiría conocer si ese software está bien o mal diseñado e implementado, si cumple con las funciones que dice desempeñar correcta y eficientemente. Y teniendo siempre la oportunidad de corregir y redistribuir las posibles taras del software, o simplemente desecharlo por completo en caso de que su calidad sea escasa. ¿Podremos disfrutar algún día de la misma libertad y transparencia que nos ofrece el software libre, en otros ámbitos como pueda ser el hardware de la electrónica de consumo que producen las grandes compañías internacionales?