Cómo contribuir a proyectos de software libre
«Beethoven era un buen compositor porque utilizaba ideas nuevas en combinación con ideas antiguas. Nadie, ni siquiera Beethoven, podría inventar la música desde cero. Es igual con la informática.»
Richard Matthew Stallman.
La frase anterior es atribuida a un famoso hacker -que no cracker– del Instituto Tecnológico de Massachusetts (mejor conocido como MIT). Al igual que nosotros tenemos la palabra «presente» con doble significado, en idioma inglés «free» significa “gratis” y “libre”, por lo que el doctor Stallman propuso el nombre libre software en su lengua materna para subrayar la importancia de la libertad sobre el asunto económico. Sí, hoy hablo del software libre, el cual engloba el código abierto, y aunque son distintos, en esencia ambos conservan el mismo espíritu: poder ser nuestros propios dueños (o, si lo vemos de manera jocosa, «tener la sartén por el mango»).
¿Por qué el software libre es una necesidad?
“Software Libre (CONATEL Venezuela, 2019)”
Como todos ustedes saben, este blog va de monitorización y cuenta con nuestra poderosa herramienta Pandora FMS. Digo nuestra porque ya he quedado enganchado al foro de usuarios de pandorafms.org, donde anotamos y tratamos de resolver las dudas y/o problemas de la versión comunitaria.
Ahora bien, un foro así también lo tienen la mayoría de las aplicaciones privativas con empleados pagados -con nuestro dinero- para atendernos. Eso está bien y debe seguir existiendo. La diferencia con el software libre (pensando de manera egoísta) es que podemos adaptarlo a nuestras necesidades; además, contamos con la posibilidad cierta de proponer directamente soluciones a los desarrolladores originales e incluso ser reconocidos como autores, por minúsculo que sea nuestro aporte.
Esto último viene a colación al enterarme por la red social Twitter acerca del octocentésimo cuadragésimo tercer autor (vamos, el contribuidor número 843) del famoso software curl, proyecto que data del siglo pasado y que al día de hoy sigue siendo ampliamente utilizado en infinidad de aplicaciones (Pandora FMS incluída). Sentí curiosidad por saber cuál era el aporte y me sorprendí: fue el mover un comentario al lugar adecuado. Si es motivo para reir, sois libres de hacerlo, para eso es el software libre: libertad sin libertinaje. Una buena risa alegra el día, da ánimos y nos prepara para tareas arduas como por ejemplo el superar nosotros mismos la contribución que nos pareció graciosa.
Otra cosa que denoto es que el repositorio está alojado con la empresa GitHub, la cual, a la fecha de escribir estas líneas, es propiedad de Microsoft Corporation®, líder del software privativo, lo cual sinceramente considero toda una ironía y nos conlleva al siguiente punto.
Git y el software libre
Ya he escrito acerca de ello en una breve historia acerca de Git, el sistema de control de versiones de software más usado en la actualidad en toda clase de proyectos, tanto libres como privativos. GitHub es revolucionario porque permite alojar de manera gratuita los repositorios con software libre y obtiene sus ingresos alojando repositorios privados.
Los buenos programadores saben qué escribir. Los mejores, qué reescribir (y reutilizar).
Eric Raymond, libro «La catedral y el bazar»
Su filosofía es facilitar nuestra vida como programadores. Por ejemplo, el tutorial «Hello world» ha sido visitado -y ejecutado- por millones de personas, está bien redactado en idioma inglés y recoge la más pura esencia de trabajar con Git. ¿Queremos «montar» nuestro propio sitio web en línea para alojar nuestro código? Para ello existe GitLab, el más cercano competidor a GitHub pero enfocado fuertemente al Desarrollo Continuo de software.
Pandora FMS es código abierto desde finales del año 2002, y utiliza todo lo que esté al alcance como los anteriores, además de Sourceforge, Word Press (estas líneas que leéis) y una gran amalgama de utilidades unidas por su propio código: más de 700.000 líneas, 102 contribuidores que representan más de 212 años de trabajo de programador con un costo equivalente a cerca de 14 millones de dólares estadounidenses. Además, en el mundo del software libre existen proyectos gigantescos como Red Hat®, por nombrar uno que cotiza en la bolsa de valores de EE.UU.
Ahora, mis 12 consejos para contribuir a proyectos de software libre
Utilizar software libre no es más difícil, requiere equiparar conocimientos. Quienes hicieron el esfuerzo por conocer software propietario en su momento hoy deberían volver a hacerlo para conocer el software libre.
Linus Torvalds, autor de Linux®
- Organiza o simplemente promociona seminarios presenciales o en línea que traten sobre software libre.
- Amplía la herramienta para que cubra tus necesidades y luego comparte como una nueva característica. ¡Si la comunidad la acepta o la desdeña no importa! Si acaso saldrá herido tu ego, pero ya cumpliste con tu deber: recibes algo «gratis», lo mejoras (para tu egoísta beneficio) y lo compartes. ¡Punto!
- Lo más probable es que no seas programador… simplemente con usar software libre, hallar fallos y reportar adecuadamente, puedes llegar a ser de mucha ayuda. Si son muchos los usuarios que reportan lo mismo, seguro que es algún fallo importante que nadie se atrevió a reportar antes… o algún programador ya tiene la solución y está esperando para publicarla justo al leer tu reporte.
- Si fue tu caso anterior o si simplemente estás a gusto con el software libre desarrollado, agradece al equipo de manera directa o nombrándolos en la red social de tu preferencia.
- ¿Quieres ir más lejos en tu agradecimiento? Dona. La mayoría de los proyectos aceptan donaciones y si no es así lo indican explícitamente (por ejemplo PuTTY sugiere colaborar mediante sitios espejo).
- También usando las redes sociales o los foros dedicados a ello, si ya eres usuario avanzado en una herramienta de software libre, puedes ayudar a responder preguntas, aclarar dudas o incluso publicar tutoriales al respecto. La regla de oro sigue siendo la misma: mucha humildad, mucha paciencia y mucho respeto al dirigirse a los demás. “Nadie nació aprendido”.
- No solamente con el público en general podemos ayudar: si al momento de leer la documentación del proyecto hallamos un error ortográfico o algo completamente ilógico, reportar dichos gazapos en la escritura de la documentación puede ser de mucha ayuda. Incluso comprobar funcionalidades que no conocíamos es útil, ya que si encontramos que no hace o no es capaz de realizar lo que indica la documentación, podremos contribuir como describí en el punto tercero.
- Por el contrario, si la documentación está maravillosamente escrita pero no está en vuestro idioma preferido… ¡ayudad con las traducciones! Yo he traducido artículos no solamente del inglés -lo más frecuente-, sino también del francés o incluso secciones en chino al castellano. Siempre leed primero las normas antes de contribuir: por ejemplo, el lenguaje Python es sumamente riguroso en su sintaxis e indentado ¡y no lo es menos para sus traducciones!
- Si te sientes realmente valiente puedes bifurcar el código; eso sí, te recomiendo que leas en profundidad las licencias del proyecto. En esencia debemos acreditar debidamente y sin mezquindad a todos y cada uno de los autores originales y contribuidores, aunque requiera cantidad de espacio en disco; en 2021 disponemos de una buena cantidad de hardware y memoria para esos menesteres. Además, al usar Git todo eso queda bien registrado en el historial al bifurcar.
- Yo soy una persona mayor, no me canso de repetirlo ni me da pena alguna admitirlo: yo me encuentro bien leyendo foros y artículos para mantenerme al día. Pero he notado que por las redes sociales, y ahora más con la pandemia COVID-19, publican video tutoriales… Sí, la nueva generación necesita «soluciones rápidas y al alcance de la mano» y la inmediatez de la información nunca antes había estado tan cerca. ¿Tienes buena dicción -e incluso algo de carisma- y eres usuario avanzado de algún software libre? Es relativamente sencillo grabarte hablando de un tema específico, siete minutos es más que suficiente para ello. Puedes incluso ir más allá y montar tu propio servidor PeerTube®, el cual permite que el primer visitante preste su ordenador para ayudar a difundir a su vez tu vídeo mientras lo disfruta (nota: esto expone tu dirección IP a terceros y tu cortafuegos, de estar bien configurado, te lo advertirá). Incluso hay algo que se llama YouTube® que tal vez conozcas.
- Yo soy un pésimo dibujante artístico, pero en lo que respecta a gráficos de vectores (formato SVG) y programas de diseño asistido (CAD) me considero bueno, he incluso he aprobado cursos de manera satisfactoria. Si lo tuyo es el diseño web o diseño gráfico y tienes talento para ello, puedes contribuir a mejorar algún proyecto de software libre. Es más, muchas veces hay empresas patrocinadoras que donan premios en metálico para concursos de diseño. Si eres realmente bueno tal vez incluso un beneficio económico alcanzaras. Quién sabe.
- Muchos proyectos de software libre tienen ambientes de pruebas y necesitan hardware especializado o equipos con características específicas (digamos, por ejemplo procesadores PowerPC). Donar o prestar estos dispositivos, siempre y cuando estén en buen estado y los integrantes del proyecto acepten y aprueben su uso, es una buena forma de ayudar. Te ruego que no dones algo que vayas a tirar a la basura, que para eso existen organizaciones benéficas especializadas en ello.
- Sí, eran doce pero agrego una más: difunde este artículo, no solo por Pandora FMS y su versión comunitaria sino también por la esencia de mi mensaje. Estaré, personalmente, muy agradecido por ello.
Imagen: software-libre-2.png
“Software libre (Agencia de Gobierno Electrónico y Tecnologías de Información y Comunicación de Bolivia).”
Programador desde 1993 en KS7000.net.ve (desde 2014 soluciones en software libre para farmacias comerciales en Venezuela). Escribe regularmente para Pandora FMS y ofrece consejos en el foro. También colaborador entusiasta en Wikipedia y Wikidata. Machacador de hierros en gimnasios y cuando puede se ejercita en ciclismo también. Fanático de la ciencia ficción. Programmer since 1993 in KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice in the forum. Also an enthusiastic contributor to Wikipedia and Wikidata. Crusher of irons in gyms and when he can he exercises in cycling as well. Science fiction fan.