Casualmente estaba revisando el código de SPHPBlog, y al encontrarme vestigios de mis contribuciones, sin apenas ningún cambio, me he puesto a indagar más.

Todo empezó en un lejano año 2003, aunque no fue hasta abril de 2004, que encontré el Simple PHP Blog, un sistema de bloging sencillo, y con pocos requisitos hardware y software, es decir, ideal para montarlo en servidores gratuitos.

Muchos no estarías por aquí, pero en aquellos tiempos, se estilaban cosas super complicadas como Movable Type o . WordPress acababa de ser lanzado, así que SPHPBlog se convirtió en la plataforma ideal para mi.

Sin embargo, aunque a nivel de diseño, y técnico, estaba muy bien para la época, en seguida le encontré carencias. No en vano, mi blog llegó a ser con más de 1.500 artículos, y 5.000 comentarios, el más grande funcionando sobre ese motor, de manera que yo era ideal para detectar cuellos de botella, y funcionalidades que faltaban.

Revisando el CHANGELOG.TXT y el CREDITS.TXT, mi actividad a nivel de desarrollo se centró en el período de
2004 a 2006. Honestamente debo decir, que añadió todo lo que le faltaba en aquel momento, siendo yo mismo el primer beneficiado.

Puedo citar los siguiente:

Generación de feeds (RSS, Atom, y RDF)
Dar soporte a los incipientes formatos de sindicación, que eran obligados para un heavy-user como mi caso. Luego vendría el soporte de feeds temáticos por categoría, etc.
Enlace.
Enlace.
Enlace.

Buscador
Con una cantidad de posts en aumento, implementar un buscador por texto libre era lo suyo. Hacerlo que fuera veloz, no fue un reto interesante.
Enlace.

Pingbacks
Los pingbacks eran el relevo natural a los trackbacks, reducían el spam, e incrementaban la vinculación entre diferentes contenidos de la misma temática.

Calendario
Hasta el momento los motores de blogs, listaban los meses de forma lineal. Yo decidí implementar un calendario en formato natural, que diera acceso a todos los contenidos, una tarea que aunque no lo parezca, fue más sencillo de lo esperado.
Enlace.

Caché de entradas
Trabajar sobre archivos de texto, tiene muchas ventajas, pero un inconveniente era el rendimiento cuando se necesitaba acceder a un número elevado de ellos, por ejemplo al buscar sobre todos los posts, o al recorrer categorías. La solución fue tan sencilla como guardar a modo de caché un listado con punteros a todos los posts sobre el que operar. Lógicamente, se debía controlar la regeneración cuando éstos cambiasen.
Enlace.
Enlace.

Formulario de comentarios con Email, URL y recordarme
Inicialmente el formulario de comentarios, exigía solamente un nombre, y un texto. Lo amplié permitiendo introducir un Email y una URL, y además con la opción de “Recordarme” que los mantenía entre visitas.
Enlace.

Favicon
Resultaba trivial que un software estándar no incluyera un favicon de serie, aunque luego el usuario pudiera reemplazarlo.

Página 404
Del mismo modo, agregué la posibilidad de crear páginas de 404 personalizadas, editables con el mismo CMS de las páginas estáticas.

CAPTCHA (con librería GD o sin ella)
El spam empezaba a proliferar, así que añadí un sencillo CAPTCHA gráfico que usaba GD para generar números. Si el servidor no disponía de esa librería, se generaba un número en HTML de modo similar.
Enlace.

Corrección de errores
Lo habitual en el mantenimiento de todo software, probar, arreglar, volver a probar…
Enlace.

Opción de bloqueo de comentarios en artículos antiguos
Una nueva configuración podía evitar que los usuarios comentasen artículos de determinada antigüedad. Se mostró muy eficaz con el spam.

Opción de notificar por email cuando se publican nuevos comentarios
Otra opción que añadí era que el administrador recibiera avisos por email al publicarse un nuevo comentario.

Optimizaciones de velocidad
Lo comentaba al principio, siendo la bitácora más voluminosa a nivel mundial sobre SPHPBlog, poco a poco me encontraba nuevos puntos donde mejorar su rendimiento.
Enlace.
Enlace.
Enlace.

Hardening de seguridad
La plataforma iba haciéndose popular, así que se recibían más ataques, y el riesgo era proporcionalmente mayor a la base de usuarios.
Enlace.
Enlace.
Enlace.

Traducción al español
Naturalmente, era una obligación mantener la traducción al castellano actualizada.
Enlace.
Enlace.

Además de todo eso, coordiné con otros desarrolladores nuevas funciones, que acabaría integrando y probando yo mismo, como el parseo automático de URL, mejoras en la gestión de bloques, etc.

Finalmente, orgulloso de la contribución a mi obra y los resultados finales, decidí ir evangelizando con varios tutoriales al efecto:
abandoné su desarrollo, pero seguí usándolo bastante tiempo más. Pasé a ser un simple usuario, activo en el sentido de ayudar a otros, y reportar problemas, pero usuario al fin y al cabo.

Finalmente en 2011, le di carpetazo, y migré todo el contenido a WordPress. Alex había dejado de actualizarlo progresivamente, algo que comenzó cuando yo empecé a contribuir. Cuando yo dejé de hacerlo, él hacía ya tiempo que apenas lo mantenía, así que había ido muriendo poco a poco.

Debo decir que fue un proceso divertido, y me sentí muy a gusto haciéndolo, de modo que no hay mejor homenaje, que despedir el artículo con su botón oficial.