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!

En algunos casos, necesitamos subir por medio de la interfaz de WordPress archivos de gran tamaño pero nos encontramos que no podemos hacelro porque existe un límite de tamaño, sin embargo, si tenemos los permisos necesarios en el servidor podemos hacerlo fácilmente.

Primero debemos modificar unas opciones globales de PHP, para ello debemos crear un archivo llamado php.ini en la carpeta /wp-admin con el siguiente contenido:

upload_max_filesize=280M ;tamaño máximo del archivo
max_execution_time=600 ;tiempo de ejecución del script, si es muy corto no da tiempo de subir el archivo
memory_limit=1024M ;limite de memoria, en mi caso esta alto porque se ejecutan unos scripts al subir el archivo
post_max_size=280M ;tamaño de la llamada POST, debe ser un tamaño igual o ligeramente superior al tamaño máximo del archivo

Y agregar la siguiente línea en el archivo /wp-config:

define(’WP_MEMORY_LIMIT’, ’64M’);

¡Listo! Ya puedes subir archivos de mayor tamaño. Si tienes una instalación multisitio, entonces debes cambiar en las opciones de la red (Network options) el tamaño máximo permitido para los archivos.

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.

Hace unas semanas hice un plugin para wordpress, donde se imprime una lista de las categorías de forma compacta y expandible mediante animaciones  jQuery, pues hoy he liberado la versión 1.1 del mismo, con la novedad que ahora pueden excluir del listado las categorías que deseen. Esta característica fue agregada debido a la solicitud de varios usuarios del plugin y expandir las posibilidades de uso de este plugin.

Para instalarlo pueden ir a su página oficial o actualizar desde el mismo gestor de actualizaciones de WordPress. Si no lo han probado, se los recomiendo y recuerden votar por él.

Este es mi segundo plugin para WordPress, creado por solicitud de varios usuarios quienes pidieron tener un plugin similar a jQuery Archive List pero para mostrar las categorías de un blog. Básicamente es el mismo plugin a diferencia que muestra las categorías y la configuración es un poco distinta. Entre las características que ofrece son:

  • Incluye un Widget para mostrar las categorías, con opciones para desplegar en caso de la existencia de subcategorías.
  • Filtro para llamar mostrar el listado usando [ jQuery Categories List ]
  • Utiliza la librería de jQuery incluida en WordPress.
  • Código JS separado en un archivo para mejorar el rendimiento.
  • Opciones para mostrar cantidad de entradas, seleccionar como se ordenan las categorías, simbolos a usar, etc.
  • Soporte para i18n, aunque actualmente solo esta disponible en: Español, Inglés.

Si quieren ver como lucen, simplemente miren como ésta página muestra las categorías y chequeen la compatibilidad del mismo. Si les gustó, voten por 5 estrellas, voten por la compatibilidad y donen para seguir trabajando en estos plugin.

Actualizacion v1.1

  • Soporte para excluir categorías de la lista.

Para descargalo, utilicen el gestor de plugins incluido en su instalación WordPress o desde la página oficial.

Contribuye con la creación de este plugin

Luego de 11 meses sin prestarle atención, esta semana decidí dedicarle un tiempo a mejorar este plugin de WordPress. Me dí cuenta que tenía sugerencia por parte de algunos usuarios para agregar características, mejorar unas existentes y otras cosas que tenía en mente. Al revisar me di cuenta de la mala escritura del código (recuerdo haberlo creado rápidamente en base a otro parecido) por lo que re-escribí completamente el plugin para adaptarse al estándar de WordPress, mejorar el mantenimiento del mismo, agregar soporte de internacionalización, mejorar la carga de los archivos Javascript.

Pues el resultado es la versión 1.0 de este plugin para mostrar el historial/archivo de las entradas de blog en una lista que se contrae y expande con efectos de jQuery, para mayor usabilidad, ahorro de espacio y mas interacción. De hecho, ese plugin esta siendo usado en esta página para mostrar los archivos de entradas en forma simplificada.

Los cambios realizados en esta versión son:

  • Se agregó soporte para el formato del mes (corto, número, completo).
  • Se puede mostrar el listado de archivos dentro de Páginas y Entradas, simplemente escribiendo [ jQuery Archive List ] en cualquier lado del contenido.
  • Se agregó soporte para i18n, así pueden traducir la interfaz de administración a cualquier idioma soportado por WordPress.
  • Se separó todo el código Javascript del código HTML, con este cambio, los navegadores deberían tener en caché estos archivos y procesarlos de manera mas óptima.
  • Se carga automáticamente la librería JS de jQuery.
  • Casi todo el código fue re-escrito para facilitar el mantenimiento y permitir agregar fácilmente nuevas características.
  • Se mejoró el código para mantener el estándar de WordPress.

Pueden descargarlo desde su página oficial en WordPress. Si les gusta recuerden recomendarlo, votar con una puntuación de 5 estrellas o hacer una donación para continuar con el desarrollo del mismo.

Para los lectores / amigos que me leen, saben que siempre en las vacaciones suelo programar algo por diversión como: el resolvedor de sudokus, el cheater para Word Challenge, el Skate or Dice para el PSP. Pues esta vez realicé un widget para WordPress utilizando la librerí­a jQuery, el cual consiste en mostrar los archivos de los artí­culos en una lista contraida, al hacer clic en cada uno de los items se despliega el contenido con un efecto de acordeón o de desvanecimiento tal como se puede observar en la sección de Archivos en la parte izquierda de esta página.

Entre las principales caracterí­sticas que posee son:

  • Utiliza el script de jQuery de WordPress por lo que no sobrecarga las páginas.
  • Sencillo y fácil de configurar.
  • Permite mostrar o no la cantidad de artí­culos por año o mes.
  • Permite mostrar o no los artí­culos que hay en cada mes.
  • Permite seleccionar el formato del mes a mostrar.
  • Se puede utilizar dentro de páginas o artículos.
  • Seleccionar efectos de jQuery.
  • Carga el script en un archivo separado para mejor ejecución y permitir guardarlo en caché.
  • Permite seleccionar el sí­mbolo de la viñeta.

Sé que es sencillo y no ofrece mucho, pero dependiendo del uso y si pueden colaborar con donaciones podré dedicarle mas tiempo con el fin de agregar mas caracterí­sticas configurables. Por ahora, pues descárguenlo e instálenlo, cualquier sugerencia o corrección pueden hacerlo por mensaje privado y/o un comentario en esta entrada.

La licencia del mismo es GPL2 y pueden descargarlo desde el siguiente enlace:

http://wordpress.org/extend/plugins/jquery-archive-list-widget/

Si les gustó mucho el widget y desean colaborar con el desarrollo de futuras versiones pueden ayudar con una donación libre usando el siguiente botón.

Cambios en las versiones: Leer los cambios de esta versión

Contribuye con la creación de este plugin