¡Salta! tm
Feed Estás viendo el archivo de la fecha: Febrero 2008
Cuando RESTificar es necesario II

Si hay alguien ahí fuera, desde luego, pensará que estoy como una cabra, y me temo que tal vez tenga razones suficientes. Justamente, en una entrada anterior, anunciaba que había deshecho ciertos cambios llevados a cabo últimamente en el gestor de bitácoras Gesbit.

Pongamos las cosas en orden:

  • Se incorporan las notificaciones con "pings"
  • Se utiliza de entrada el protocolo XML-RPC
  • Deshecho esto último, y opto por usar HTTP REST
  • ¡Y ahora volvemos a utilizar el protocolo XML-RPC!

Aquí pasa algo raro. Ya digo que si alguien ha estado ahí leyendo esta bitácora últimamente, pensará con razón que estoy como una verdadera cabra, y que, el desarrollo de Gesbit no es para nada normal. Tiene razón, últimamente no doy pie con bola, por lo que parece.

Me he visto obligado a rectificar dos veces en los dos últimos días. Ahora bien, intentaré decir algo en mi descargo: en ambos casos he creído que era lo mejor para Gesbit. Sé que no es excusa, que estas cosas no deben ser así, pero, la intención era y es buena.

¿Por qué he optado por volver a utilizar XML-RPC en lugar de HTTP REST? Sencillo: porque el primero es el protocolo utilizado por la mayoría de servicios de "pings" que he encontrado, y he buscado unos cuantos. Simplemente por eso merecía la pena "quedar mal".

Si hay alguien ahí que diga si hago bien o no, o qué le parece de todo esto. Pero, que comprenda, antes de nada, que no es mi intención jorobar, sino mejorar Gesbit en la medida de mis posibilidades, aunque ello implique cambios un tanto "extraños".

Si ayer pensé que usar HTTP REST era mejor, y que no me convencía además añadir la complejidad de la biblioteca para trabajar con XML-RPC, hoy pienso otra cosa. ¡Y tengo que dar muchas vueltas más sobre esto, no te lo pierdas! Todavía queda...

Lo único que cabría aprender de esto (pienso al menos en lo que yo podría, mejor, debería aprender) es a pensarme más los cambios que se lleven a cabo en un futuro. Y no publicarlos, acaso, hasta estar del todo seguro. Y aún así se cometerán errores.

Esto de actualizar Gesbit (su código fuente) a diario, no tiene acaso mucho sentido. Así lo vengo haciendo desde que comencé con su desarrollo (públicamente) y, bueno, lo cierto es que Gesbit está en una versión "beta", y a nadie deberían sorprender los cambios.

En fin. Pido disculpas si he ocasionado algún problema. Por lo pronto piensa que si usas Gesbit y quieres además usar las "notificaciones de actualización", ahora mismo podrás utilizar un sin número de servicios de "Ping" a tu disposición.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Desarrollo
Cuando RESTificar es necesario

Estos últimos días han sido de cambios en Gesbit, algunos importantes, como la incorporación de la Incutio XML-RPC library en Gesbit, para dar soporte al envío de notificaciones, en un principio, y luego para preparar hasta un servidor XML-RPC para Gesbit...

Sin embargo, luego de pararme a pensar, y volver y volver sobre la Incutio XML-RPC, hoy he decidido no usar esta biblioteca en Gesbit, no por nada, sino porque de momento no es necesario, y añadirla ha sido una decisión precipitada.

¿Quiere esto decir que Gesbit no envía ya notificaciones cuando se añaden y actualizan entradas en las bitácoras? Al contrario, ahora también envía notificaciones también cuando se añaden y actualizan "páginas", pero, lo hace utilizando el "protocolo" HTTP REST, no un cliente XML-RPC, que, desde luego, añadía una complejidad no compensada por ninguna parte.

Tal y como puede verse en Weblogs.com, no es preciso usar un cliente XML-RPC, sino que puede emplearse el método HTTP REST, para lo que Gesbit estaba ya perfectamente equipado, gracias a que usa desde hace tiempo el cliente HTTP (en forma de clase) Snoopy para PHP.

Ahora bien, si ya podían enviarse notificaciones usando la clase Snoopy, ¿para qué añadir un cliente XML-RPC a Gesbit? Y si ya no se necesita un cliente XML-RPC, y el servidor XML-RPC incorporado fue más bien un desliz por mi parte, que además no se va a usar de momento, ¿para qué añadirlo enlaces y para qué añadir la Incutio XML-RPC library, "parcheada" por mí para adaptarla a PHP 5?

No tenía mucho sentido. Mira que me pegué ayer una buena paliza con la Incutio XML-RPC library, y hasta esta tarde he estado con ella liado, pero, no había caso: Gesbit no la precisaba, al menos no la precisaba todavía, e, incluirla, podía ocasionar acaso problemas, que en modo alguno estarían compensados por lo que por otro lado se estaría consiguiendo.

Así que lo dicho. Esta decisión es la primera de este tipo que tomo (que yo recuerde) sobre Gesbit, pero, me parece que acierto. Aunque tenga que decir adiós al trabajo de estos últimos días acierto, porque además, ¿qué son dos o tres días de trabajo en un proyecto en el que llevo meses trabajando? No hay caso. Y ya está RESTificado el asunto.

Además, estos días tampoco pueden tomarse como perdidos, puesto que no he vuelto atrás, por decirlo así, y los problemas y errores que me he topado en estos días, como el que se comenta en esta entrada acerca de los títulos de las entradas, siguen resueltos. Lo cierto es que ha resultado bastante sencillo de hacer los cambios sobre los que he hablado.

Definitivamente, hay veces que es mejor estarse quieto, aunque, en este caso, no se ha perdido todo, y, hasta puede decirse que se han terminado ganando algunas cosas.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Desarrollo
Servidor XML-RPC y otras cosas

Ayer decía que había incorporado a Gesbit la posibilidad de enviar notificaciones a diferentes sitios web cuando se actualiza o se publica una nueva entrada en una bitácora. Avanzaba entonces la posibilidad de incorporar un servidor XML-RPC a Gesbit, y así lo he hecho.

Por supuesto, se trata sólo de una especie de "prototipo", que únicamente cuenta con un método "propio" "gesbit.getTime", que retorna la hora del sistema, y que por ahora no ofrece más posibilidades. Pero es, como digo, la base de lo que puede llegar a ser.

Por otro lado, he solucionado algunos problemas en Gesbit entre ayer y hoy. Uno de ellos tenía que ver con los títulos de las entradas. Resulta que no se estaban validando convenientemente. Por poner un ejemplo, no se comprobaba si el título de una entrada era el de un "filtro" de Gesbit.

¿Qué quiere decir esto? Bueno. Tiene que ver con las URLs en las bitácoras gestionadas por Gesbit. Esta sería la URL de la categoría "Desarrollo" de esta misma bitácora:

http://www.bitacora.gesbit.com/category/desarrollo

Y aquí un ejemplo de URL para una entrada en esta misma bitácora:

http://www.bitacora.gesbit.com/titulo-entrada

Ahora bien, ¿qué ocurría si titulabas una entrada como "Category"? Pues que su "enlace permanente" sería "category", como puedes ya imaginar, esto entraba en conflicto con el "filtro" correspondiente, con un resultado, cuando menos, inesperado. Depende del "filtro" el resultado sería uno u otro.

Gesbit considera ahora inválido el título de una entrada si este supera o no llega a una determinada cantidad de caracteres, o si su "enlace permanente" coincide con el "identificador" de un "filtro" de Gesbit. Esto quiere decir, por otro lado, que, es posible tener una entrada cuyo título coincida con el identificador de un "filtro", siempre que su "enlace permanence" no sea el mismo.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Desarrollo
Envío de notificaciones con Gesbit

El gestor de bitácoras Gesbit ya permite enviar notificaciones automáticas (mediante "Pings") cada vez que se publica o actualiza alguna entrada en una bitácora. En todo caso se trata de una opción más, que, por lo pronto, no viene "activada" de forma predeterminada. He preferido que sea el usuario quien active esta opción si lo desea.

Se han incorporado a Gesbit, por tanto, dos nuevas opciones "generales". Una que permite especificar si se desea hacer "ping" cuando se publica una entrada en la bitácora, y, otra, que permite especificar varias URLs a las que hacer "ping", precisamente. Por defecto la primera opción no está activada, y, la segunda, contiene la URL "para pings" de Weblogs.com.

Una explicación sencilla de estas notificaciones sería la siguiente. Se produce una relación simbiótica (por decirlo así) entre ti, que acabas de publicar una entrada en tu bitácora y quieres que se entere la gente, dicho mal y pronto, y los "agregadores" y buscadores, que quieren mostrar a su propia audiencia las bitácoras actualizadas recientemente.

Un ejemplo es el servicio de "pings" que ofrece el buscador de bitácoras de Google, tú informas a dicho buscador de una nueva entrada en tu bitácora, y, por su parte, Google hará que su "robot" revise tu sitio, precisamente, en busca de actualizaciones. Todo esto de forma automática, sin que tengas que ir al buscador de Google a informar de que has publicado una nueva entrada en tu bitácora.

Para contar con esta opción he utilizado la biblioteca Incutio XML-RPC, puesto que ya la conocía de anteriores proyectos, la había utilizado, y me parece estupenda. He aprovechado además que ya había hecho algunas modificaciones: para adaptarla a PHP 5, y, todavía he hecho otra más: incorporar una "propiedad" "timeout" en la clase "IXRClient".

Gesbit usa, por tanto, un cliente XML-RPC, y la Extended Ping Service Interface, de modo que podrá enviarse una notificación forma de "ping" a cualquier servidor que soporte el protocolo XML-RPC y exponga el método público: "weblogUpdates.extendedPing". Muchos servicios implementan este sistema y podrán ser usados en Gesbit, dicho de otro modo: no podrán usarse servicios que no implementen este sistema.

El incorporar la biblioteca Incutio XML-RPC servirá en el futuro, si es que se lleva a cabo, para que Gesbit cuente con su propio servidor XML-RPC, de modo que pueda ejecutar métodos que pueden servir, por ejemplo, para publicar entradas desde "fuera de la bitácora", desde "editores de bitácoras" de terceros. No obstante no hay nada previsto sobre esto por el momento. Pero si se llevara a cabo la biblioteca Incutio XML-RPC se haría necesaria.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Desarrollo
URLs en las bitácoras de Gesbit

Uno de los requisitos para instalar y ejecutar el gestor de bitácoras Gesbit es el servidor HTTP Apache, pero, este además deberá contar con el módulo "rewrite" disponible y activado.

Opté por esto desde un principio con el fin de lograr URLs "bonitas" (y útiles, y prácticas), en lugar de utilizar variables en las URLs de las bitácoras Gestionadas con Gesbit. No obstante, esto es al contrario en los "scripts" para la administración de las bitácoras.

Pero, esto de que hablo se verá mejor con un ejemplo sencillo. En teoría estas dos URLs pueden llevar al mismo punto:

http://www.url-de-tu-bitacora.com/?id=123
 
http://www.url-de-tu-bitacora.com/estoy-de-examenes

Ambas URLs podrían llevar al mismo punto: la hipotética entrada "Estoy de exámenes" en tu bitácora. Sin embargo, la segunda URL tiene claras ventajas. Por ejemplo, algunos buscadores tienen en cuenta las palabras de una URL para "posicionar" una determinada página web.

Pero, la segunda URL también es más sencilla de utilizar para los lectores de tu bitácora. Porque además las URLs tendrán siempre ese aspecto:

http://www.url-de-tu-bitacora.com/estoy-de-examenes
http://www.url-de-tu-bitacora.com/no-aprobe-el-examen
http://www.url-de-tu-bitacora.com/ya-en-la-universidad

Hasta aquí las las URLs "naturales", por decirlo así, a las entradas de tu bitácora. Sin embargo, hay otras URLs en Gesbit útiles para ti y para los lectores de tu bitácora, y, vamos a verlas a continuación.

Continuar leyendo...
Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: General
Cuando vale más estarse quieto

Ayer, se ve que no tenía otra cosa mejor que hacer, y, se me ocurrió la maravillosa idea de incorporar una especie de estadística en el panel de administración de las bitácoras gestionadas con Gesbit.

Es decir, se trataba de añadir un nuevo apartado donde se mostrara información acerca de la bitácora en cuestión: número de entradas, comentarios, etiquetas, categorías, usuarios, "plugins", temas, entradas privadas, sin publicar, etc.

Llegué a avanzar bastante en el asunto, y encontré algunos errores y añadí un par de métodos a ciertas clases que estimé bastante útiles, hasta que me di cuenta de que no merecía la pena seguir adelante, no como lo estaba haciendo.

A veces vale más estarse quieto. A uno le bullen las ideas en la cabeza, y, generalmente, las que llevan más tiempo ahí son las que alguna vez merezca la pena implementar. Las ideas que se presentan sin llamar no son tan buenas.

Claro, esto no es así siempre, pero, es la sensación que tuve ayer, como digo, cuando al cabo decidí dar marcha atrás y no incorporar las estadísticas que ya había preparado hasta cierto punto. Tal vez en otra ocasión, de otro modo.

No sigo ningún plan en Gesbit, de modo que no puedo decir que esto o aquello va a ser lo siguiente. Pero, como he dicho, tengo ciertas ideas que dan vueltas en mi cabeza desde hace tiempo, y, es probable que por ahí vayan los tiros.

Mejoras en el "sistema de plugins", por ejemplo. Mejoras en la documentación, más atención al Wiki de Gesbit. Tal vez algún nuevo tema o "plugin", si la imaginación lo permite, sobre todo en lo que respecta al tema.

Cosas que hacer hay un montón, eso está claro, por no decir que se puede mejorar lo que ya está hecho, pero, como digo, a veces es mejor estarse quieto. Dejar las cosas como están (quitando errores) por lo menos no añades algo demás.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Desarrollo
« Entradas anteriores