Pegotes, sólo otro pastebin


Mi nombre es Juan Carlos. Estudio Ingeniería Informática en la Universidad de Camagüey, Cuba, hace unos cuatro años. Mi mayor hobby es la programación, junto a la lectura, las series anime y el rock. A finales del pasado año se hizo en Cuba el primer Concurso Cubano de Software Libre, homólogo del CUSL español. Participé con el proyecto Pegotes y hoy quiero compartir con ustedes mis recuerdos de esos días inolvidables.

Hace unos meses, en algún momento de septiembre, un colega de una lista de correo cubana de tecnologías libres me habló de la necesidad de crear un pastebin para apoyar otra recién creada lista de correo de desarrolladores. En ese momento ni siquiera sabía qué era un pastebin ni lo útil que puede resultar. Después de buscar un poco en Wikipedia y otro tanto en Google supe que se trataba de una aplicación que permite “pegar” un poco de texto en la web y acceder luego a este a través de una dirección URL.

Existen muchísimas aplicaciones web de este tipo, cada una con sus características distintivas. Algunas están hechas en PHP, otras en Python, otras se integran fácilmente con otros servicios, otras son muy ligeras, etc. A los desarrolladores pueden resultarnos útiles los pastebins, pues nos permitan intercambiar pedazos de código fuente de forma rápida y fácil sin tener que preocuparnos de borrarlos luego. Algunos pastebins se especializan en código fuente y ofrecen características como resaltado de código y numeración de líneas.

La idea de hacer mi propio pastebin me gustó y empecé a trabajar. Al cabo de un mes y algo ya tenía una versión estable. Sin embargo hubo un problema con el hosting y mi pastebin nunca se utilizó. Fue realmente frustrante, pero de alguna forma estaba contento porque había aprendido unas cuantas cosas nuevas en ese tiempo, como el trabajo con el sistema de control de versiones Git.

Ya en diciembre y leyendo el blog humanOS, al que entro con frecuencia, encontré una interesante noticia sobre la convocatoria a un concurso: el Concurso Cubano de Software Libre. Para participar había que hacer software, hardware o documentación que utilizara una licencia libre. Era la primera vez en mi carrera que me enteraba de un concurso así, por lo que decidí que no perdería la oportunidad de participar dado que soy un entusiata del software libre. Inmediatamente pensé en el pastebin.

Ni siquiera había pensado en qué licencia tendría, y eso fue lo primero que tuve que decidir. Después de revisar algunas como la Apache 2, la BSD, la GPL, la LGPL y la AGPL con mis casi nulos conocimientos sobre leyes me decidí por la AGPL. Esta licencia, creada por la Free Software Foundation, cumple con las cuatro libertades del software libre y está pensada especialmente para software que ofrezca servicios a través de una red de computadoras.

Hasta la fecha había trabajado con la versión 1.2.4 de Play!, un popular framework web para Java, pero desde el curso anterior estaba esperando la ocasión para trabajar con la versión 2 que incluye un montón de características nuevas. Como la versión 1.2.4 tenía ya varios años de antigüedad decidí implementar el pastebin desde cero con la nueva versión, pues uno de los puntos medidos en el concurso era la actualidad de las tecnologías utilizadas. Quería hacer una aplicación que funcionara bien en las redes cubanas, donde el ancho de banda es bastante escaso. Por eso este pastebin tenía que economizar al máximo el ancho de banda, y pensé que sería útil agregarle APIs que permitieran utilizarlo desde algún cliente de escritorio. Fue así como comenzó la historia de Gloo, mi primer programa libre.

¡Un momento! He participado con el proyecto Pegotes, no Gloo. ¿A qué viene entonces ese nombre? Algo que pensé casi desde el mismo inicio de este proyecto fue su nombre. Inicialmente lo llamé Glue, que viene siendo “pegamento” en inglés y viene bien a un programa para pegar código fuente en la web. Un poco después lo cambié a Gloo, que sonaba igual pero se escribía distinto. Quisiera decir que tuve algún motivo serio para cambiar a Gloo, pero lo cierto es que lo escogí porque me gustó la fonética 🙂

Unos días después de comenzar el concurso descubrí que alguien llamado Pradeep Gowda hizo un pastebin cinco años atrás, y tuvo a bien llamarlo Gloo. ¿Cómo no lo encontré antes? Por un momento pensé que era víctima de una mala broma pero pronto tuve que aceptar que “Gloo” no era tan original como yo pensaba. Le había cogido cariño al nombre, pero tenía que cambiarlo.

Mi primer impulso fue cambiarlo ligeramente a algo como “Glood” (por “glued”), o incluso escribirlo en… ¿ruso? En busca de ideas frescas recurrí un valiosísimo recurso: la comunidad. Hacía un tiempo que era miembro de la lista debian-user-spanish@lists.debian.org por lo que aproveché para comentar a sus miembros lo que me había pasado y pedirles que me sugirieran un nuevo nombre. En unos pocos días tres miembros de la lista ya me habían sugerido nuevas ideas, como “Glu”, “iGloo”, “Pegamento”, “Pegote” y “Caucho”. Y de allí salió Pegotes, el nuevo nombre para la aplicación.

La presencia en las redes sociales era un requisito indispensable en el concurso, por lo que situé el proyecto en las redes Twitter y Dreamcatchers, y le creé su propio sitio en Github. Como algunos días me resultaba casi imposible acceder a Twitter por la lentitud de mi conexión, tuve que buscar un canal alternativo por el que seguir comunicando los avances en el proyecto. La primera solución fue crear una página en Facebook, a la que podía acceder sin problemas de lentitud mediante la interfaz para dispositivos móviles de esa red social. Luego encontré otra vía: la de publicar actualizaciones cortas en el sitio del proyecto mientras trabajaba. Como el sitio estaba hecho con Jekyll y las versiones controladas con Git, sólo tenía que crear nuevas actualizaciones y enviar los commits. El resultado final fue algo parecido a Twitter, pero sin límite de cantidad de caracteres 🙂

Como mi fuerte no era el diseño pedí ayuda a Yasmani, un amigo que sí se mantenía actualizado con respecto a las nuevas tecnologías web. Él hizo lo suyo con JavaScript y en un breve tiempo Pegotes era ya 100% responsive.

Faltando unos días para terminar el concurso ya la aplicación estaba completamente funcional pero aún era un poco complejo desplegarla en un servidor en producción. Eso me llevó a enfrentar un nuevo reto: crear un paquete que permitiera instalar la aplicación y configurarla de forma sencilla. Aprovechando las facilidades ofrecidas por Play decidí crear un paquete para sistemas basados en Debian. Tuve que aprender sobre los runlevels y los scripts en /etc/init.d. Acabé con una aplicación fácil de instalar y desinstalar, que iniciaba automáticamente al cargar el sistema.

Los días del concurso fueron realmente divertidos. Valió la pena cada minuto, cada compilation error, cada respuesta 500, cada connection timeout. Me sentí estresado con frecuencia al no saber cómo llegar adonde quería, pero más de una vez encontré la solución en la comunidad. Aprendí un montón de cosas nuevas, y la mayor parte me sirvieron en proyectos posteriores. Apenas salí del evento ya estaba pensando con qué participar en la próxima edición.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *