Saltar al contenido

Categoría: Mi Página

Mi experiencia al desarrollar 2 plugins de WordPress bajo software libre

Este artículo cuenta mi experiencia luego de tres años, al desarrollar un proyecto de software libre (licencia GPL) y motivarlos a crear sus propios proyectos o colaborar en los existentes. Si no te gusta leer mucho, básicamente quiero compartir que al crear y mantener un proyecto de software libre logras: aprender a ser mejor programador al recibir correcciones de otras personas,  conoces gente de varias partes del mundo interesadas en tu programa, ves correr el programa en lugares no pensados, recibes código programado por otras personas, puedes recibir dinero sin previo aviso y sin nada a cambio, consigues futuros clientes y recibes felicitaciones por resolver un problema de otra persona.

Inicio

Como mi blog hecho con WordPress empezó a acumular años, el historial de artículos se hizo grande y ocupaba mucho espacio para mostrarlo. La solución por defecto es mostrar los años en una caja desplegable pero lucía muy feo y conseguí un sencillo plugin que los mostraba en un menú desplegable con animación hecha en Javascript. El plugin dejó de soportarse al poco tiempo y no siguió funcionando con WordPress, por ello, decidí hacer uno similar y como estaba aprendiendo jQuery (estaba de moda) lo utilicé para la implementación y nombre. Escribirlo fue fácil pues WordPress ofrece una excelente documentación, además, utilicé el plugin que usaba como base.

¿Ofrecerlo como software libre o usar una licencia cerrada y venderlo?

Una vez terminado, pense en 3 posibilidades: usarlo para mi mismo, venderlo por un precio muy barato y ganar algo de dinero por él, liberarlo como software libre porque le podría servir a alguien con la misma necesidad que yo. Decidí ésta última porque por primera vez tenía algo que surgía de una necesidad y estaba seguro de servirle a mucha gente en la misma situación que yo. Lo subí a WordPress y mi sorpresa es que tuvo bastantes descargas los primeros días (creo que como 300).

Por novatada, empecé a recibir peticiones (no quejas) de gente que deseaba mejor código porque no me entendían, soporte para otros días (me decían que si hablaba español por qué no había menús en este lenguaje), soporte para cambiar el formato del mes, etc. Aproveché un tiempo libre y lancé una segunda versión con el código mas sencillo y limpio, documentado, soporte para multi-idioma (en ese momento inglés y español) e implementé la funcionalidad del mes.

Primeras contribuciones

Luego de esos cambios pensé que el plugin estaba listo y no era necesario hacer mas cosas, para mi sorpresa empecé a recibir ideas de nuevas funcionalidades, código de personas para añadir compatibilidad de características de WordPress desconocidas para mi, por ejemplo, para ese entonces no conocida de WordPress MU, shortcodes, filtros, etc. Recibí parches para mejorar el código SQL porque había una persona con miles de posts, etc.

Mi sorpresa es ver como gente desconocida, se tomó el tiempo para estudiar el código elaborado por mí, modificarlo para soportar sus necesidades y compartirlo conmigo para incluirlo en la rama oficial, permitiendo al resto de usuarios disfrutar de estas funcionalidades. Además, las funcionalidades implementadas eran interesantes y muy variadas, yo sólo no hubiese podido hacerlas porque eran situaciones muy distintas en cada caso. Otra cosa interesante, fue que uno de los primeros programadores en enviarme código, tradujo el plugin a Checo y Esloveno, dos idiomas que jamás pensé contar en mi plugin.

Mantenimiento

Una vez con una base de funcionalidades generales, gente empieza a pedir características  mas complejas, a veces fuera de las funcionalidades o el objetivo del plugin, generalmente algunas se resolvían con otro plugin y otras tuve que agregarlas. Una de las mas solicitadas era la posibilidad de excluir tareas pero fallé, sin embargo, otro de los primeros programadores  en contribuir lo implementó sin que le pidiera ayuda y pude ofrecerlo al resto.

Al momento de estabilizarse el proyecto: buena base de usuarios, programadores voluntarios contribuyendo en el proyecto. Noté un incremento en el soporte, la gente al ver que el plugin funciona bien desean expandir sus posibilidades y empiezan a contactarte para ver como realizar ciertas cosas o dar nuevas idea.  Comencé a recibir donaciones simplemente por realizar el plugin, motivandome a realizar nuevas funcionalidades (como soportar muchas instancias que requería casi re-escritura total).

En otras palabras, una vez que el proyecto se mantiene, el mantenimiento consiste en arreglar bugs, dar soporte a las personas y dependiendo de la frecuencia de solicitudes, agregar funcionalidades nuevas. En este punto es bien porque ya vez el fruto del esfuerzo realizado anteriormente, sin embargo, me parece delicado descuidarlo porque se puede ir todo para atrás. Pues aquí la gente confía mas en tí y espera respuestas rápidas, tal vez algunas sean incómodas al exigir como si estuviesen pagando altas sumas por ello, pero otras son buenas al agradecerte por el esfuerzo realizado.

Conclusiones

Después de este tiempo, puedo decir que es uno de los proyectos mas satisfactorios a nivel profesional y pesonal, en el primer ámbito porque me permite mejorar mis capacidades de programación, conseguir nuevos clientes (mi mayor cliente lo conseguí al solucionarle un problema con este plugin), mejora el currículo (puedo demostrar capacidad de liderar un proyecto, experiencia con PHP y WordPress, Javascript, etc) y mas. Respecto a la parte personal, cada vez que recibo un correo de una persona agradeciendome por el trabajo, por el tiempo ahorrado al utilizar este programa, al ver ejecútandose en sitios conocidos o muy extraños. Me alegra saber que he ayudado a otra persona sin nada a cambio, además cuando recibo donaciones pues también es bien saber que se recibe una recompensa monetaria extra por un trabajo que muchas veces es para mí (para mi blog).

Si alguno tiene una idea o programa en mente, es sencillo y sienten que pueden ayudar a otro, liberelenlo bajo una licencia de código abierto, publiquen el repositorio y con el tiempo verás como crece con la ayuda de otros programadores. Realmente es una buena experiencia.

Si alguno desea conocer o probar mis 2 plugins, pueden hacerlo en las siguientes direcciones:

Happy Hacking!

1 comentario

Estrenando nueva web móvil

Aprovechando el tiempo libre que ofrecía semana santa, decidí actualizar la versión web de este blog pues tenía desde el 2009 sin realizar cambios, y desde entonces, el mundo de los dispositivos móviles ha cambiado bastante. En ese entonces decidí hacer una versión móvil al ver que la página era muy pesada para navegar desde un PSP, contenía una plantilla hecha en puro HTML gracias al plugin MobilePress. Al navegarla hoy en día, aún cumplía su funcionalidad pero desaprovechaba el poder de los navegadores actuales. Además, con tecnologías como Bootstrap y jQuery Mobile es fácil hacer una web en poco tiempo y con compatibilidad a muchos dispositivos. Lo que hice fue:

  • Migrar la plantilla anterior y utilizar jQuery Mobile para mejorar la apariencia de los componentes.
  • Modificar el plugin Quick Cache para que no aplique caché a los dispositivos móviles (no sé pero falla la detección si uso la caché)
  • Revisar la plantilla y eliminar elementos innecesarios para aligerar la carga y ganar espacio visual.
  • Probar en distintas plataformas.
  • Subir los cambios.

Deseaba editar código fuente de jQuery y jQuery mobile para eliminar todo lo que no necesita mi página pero pude hacerlo, si alguien sabe como puedo realizarlo fácilmente agradecería la información. Aunque actualmente la página ocupa aproximadamente 89KB y es buena para dispositivos móviles, sé que es posible reducirlo aún mas.

Si alguno desea observala desde una PC de escritorio, pueden hacerlo desde la dirección: https://skatox.com/blog/?mobile

Nota: Apenas tenga tiempo planeo liberar el código fuente de la plantilla.

Deja un comentario

jQuery Archive List Widget 1.2

El pasado jueves liberé la nueva versión de mi plugin para mostrar los archivos de un blog wordpress de manera compacta, con efectos de animación jQuery al momento de expandirlos y navegar sobre ellos. Si tienen un blog wordpress por muchos años y les molesta el tamaño del widget de archivos, les recomiendo utilizar este plugin.

En esta versión 1.2, ahora los archivos se expanden automáticamente dependiendo de la página que estemos visitando. Esta funcionalidad fué agregada en gran parte a un parche enviado por Michel Westergaard que me ayudó mucho a programar esta funcionalidad.

Para mas información pueden ver la página del plugin en WordPress.org o aquí en mi blog. Si les gusta, por favor le dan 5 estrellas o hacen una donación para contribuir con el desarrollo del mismo.

Deja un comentario

El software libre y su mezcla con la política en Venezuela

Hace unos dias leyendo el blog de Effiejayx y luego de tener una discusión con Lubrio a través de twitter (él no se explicaba como alguien que no esté a favor de las ideas del presidente Hugo Chavez podría ser fanático del software libre) me puse a pensar sobre el software libre en Venezuela, el cual me parece que ha sido muy politizado por las personas debido al decreto presidencial 3390.

Para los no venezolanos, el decreto nombrado fue dictado por el presidente a finales del 2004 donde se declara obligatorio el uso de software libre en la administración pública, esto es algo muy bueno por diversas razones como: ahorro de costos en licencia, independencia tecnológica parcial (si parcial porque aún dependemos de desarrolladores de muchos proyectos de software libre), adaptabilidad a las necesidades del país, mayor soporte de idiomas, posibilidad de ver el código fuente de cada programa, entre otros. Sin embargo, mucha gente lo vio como el software de la revolución bolivariana que sirve para luchar contra el imperio de Bill Gates; he escuchado comentarios como: el software libre fue creado por Chavez para cubanizar el cerebro de la población, o el software libre es la salvación del mundo porque nos va a liberar de la pobreza que Microsoft no ha ocasionado. Ambos comentarios no son inventados por mi, los he escuchado de personas y en los dos se observa la incorrecta relación de este tipo de software con una ideología política.

Cada quien tiene derecho a pensar en lo que quiere, pero el software libre no es de izquierda o derecha ya que simplemente es aquel licenciado bajo las 4 libertades del software libre. Tal vez por el hecho de la opcionalidad de cobrar por el software y obtenerlo gratuitamente, se ha prestado para ser usado en los países en desarrollo y por la posibilidad de no depender de una empresa extranjera (o porque EEUU no les vende) es muy utilizado en aquellos países contrarios a Estados Unidos, respecto eso, pero no por ello debe ser visto como un software de izquierda que lucha contra el capitalismo. La mayoría del software libre tiene esa licencia porque sus desarrolladores lo desearon así, bien sea para liberarlo como dominio público, mostrar la capacidad creativa del programador, falta de tiempo para mantenerlo y encargar esa tarea a una comunidad, ya no es comercializable pero puede servir a otras personas, para ayudar a personas interesadas en su funcionalidad, porque simplemente necesitaba un software similar, entre otros. Hasta ahorita no he visto el primer proyecto cuya descripción diga: creado para eliminar la competencia comercial de este programa, liberado para tumbar/robar ventas de otro software, entre otros. Por lo que no entiendo su relación hacia un sistema político, las licencia de software libre son solo un conjunto de reglas a seguir al momento de distribuir o utilizar un determinado software, mas nada. En ellas nunca se lee cosas respecto a la pobreza, el sistema económico, derechos de las personas, entre otros.

El hecho de usar software libre en el sector público, es algo cada día mas común en muchos países: Francia, Brasil, algunas provincias de España, Croacia, Rusia, China, Cuba, algunos sectores de Alemania utilizan software libre en sus gobiernos. Y eventualmente en nuestro país iba a suceder eso, no niego que el hecho de tener un presidente de izquierda aceleró el proceso, pero por ello no debe tildarse al software libre como parte del Socialismo del Siglo XXI, es como decir que Internet es de la IV república (término usado en Venezuela para referirse a los gobiernos entre los años 1958 y 1999) porque apareció en aquel entonces. Además, mucha de la gente que apoya al software libre porque va en contra del imperio y capitalismo, seguro ignora hechos como:

  • Aproximadamente 75% de los programadores de Linux, son empleados de grandes corporaciones capitalistas. Sé que invierten porque les conviene económicamente, pero igual sigue siendo software libre y mucho del código aportado por ellos va a permitir usar programas o hardware en distribuciones como Canaima, por ejemplo.
  • Empresas ubicadas en países «imperialistas», donde les interesa es ganar mas dinero (seamos sinceros, ninguna de ellas quiere perder dinero) como Google, Facebook, Oracle, IBM, HP, Novell y otras. Son quienes crean y liberan gran cantidad de proyectos libres.
  • Linus Torvald usó la GPL como licencia del kernel Linux pues era la misma licencia usada por el compilador GCC y le gustó, nunca lo hizo para competir contra Windows u MacOs.
  • La mayoría de programadores de los proyectos de software libre, están ubicados en países imperialistas, por ejemplo, en el mapa de la ubicación de los desarrolladores de Debian, una de las distribuciones mas conocidas por su estabilidad y apego al software libre, pueden observar donde se concentran mas programadores.
  • Muchas distribuciones de software libre estan patrocinadas por empresas capitalistas: Canonical con Ubuntu, Redhat con Fedora, Novell con openSuse. Al igual que muchos proyectos son realizados por muchas empresas o fundaciones.

En mi opinión, el software libre es un modo de licenciamiento de software donde se distribuye libremente junto a su código fuente y todas las modificaciones del mismo deben ser liberadas. Esto trae muchas ventajas con respecto a otro tipo de licenciamiento, sin embargo, tampoco estoy en contra del software propietario, algunos son muy buenos y merece usarlos, pero tengo mas preferencia por aquellos de código abierto porque suelen ser de mayor calidad, mas seguros, mas avanzados y en constante mejoras (muchas veces nuevas versiones son mas ligeras y necesitan menos hardware).

Para finalizar, espero que esta lectura haya sido de su agrado al ver otro punto de vista sobre el software libre, ojalá mas venezolanos tengan este punto de vista y observen el significado de software libre, lo usen mas sin tinte politico y crezca aún mas la comunidad de software libre en el país, la cual es muy buena y ha aportado proyectos muy buenos como Canaima, Turpial, entre otros. Ahora, lo invito a unirse a una de las comunidades en el país y comente en este post su opinión.

36 comentarios