<?xml version="1.0"?>
     <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
     <channel>
      <link>http://www.bitacora.gesbit.com/</link>
      <title>Bitácora de Gesbit - Bitácora del gestor de bitácoras Gesbit</title>
      <generator>Gesbit</generator>
      <description>Bitácora del gestor de bitácoras Gesbit</description>
      <atom:link href="http://www.bitacora.gesbit.com/rss/" rel="self"
       type="application/rss+xml" />
    
      <item>
       <link>http://www.bitacora.gesbit.com/gbmobile-un-poco-mas-mobile/</link>
       <guid>http://www.bitacora.gesbit.com/gbmobile-un-poco-mas-mobile/</guid>
       <pubDate>Mon, 17 Nov 2008 08:52:39 +0100</pubDate>
       <title><![CDATA[ GbMobile un poco más "mobile" ]]></title>
       <description><![CDATA[<p><img class="floatleft" src="http://www.bitacora.gesbit.com/archives/images/captura-emulador-opera-mini.png" alt="Captura del emulador del navegador Opera Mini" width="239" height="482" /> El plugin GbMobile para Gesbit es ahora un poco más "mobile". Concretamente, he añadido al tema que se utiliza en el mismo el "tipo de documento" correspondiente a la especificación XHTML Mobile Profile 1.0, y no a la especificación XHTML Strict 1.0 (la misma que los temas "normales" para Gesbit). En realidad el tema no parecía más complicado que cambiar un tipo de documento por otro, puesto que en Gesbit se usa XHTML, y en tema GbMobile se usa únicamente un "subconjunto" de XHTML.</p>
<p>Sin embargo, a la hora de validar las páginas de la bitácora usando el tema GbMobile con el nuevo tipo de documento, me he encontrado conque el <a title="W3C.org" href="http://www.w3c.org">W3C</a> me advertía del uso del atributo "onclick" en ciertos elementos, en concreto, los que tienen que ver con el CAPTCHA de Gesbit, puesto que este permite "recargarse" y "escucharse", y para esto hace uso de los atributos "onclick" y su poquito de Javascript. pero XHTML Mobile Profile 1.0 no pasa por ahí, amigo.</p>
<p>Así que he aprovechado para mejorar un aspecto de la clase CAPTCHA que me viene preocupando desde hace tiempo: la personalización de los elementos del formulario "HTML" en que se muestra la imagen en cuestión, y el resto de código HTML necesario. Ahora, el método "FormFields()" de la clase Captcha de Gesbit permite especificar, entre otras cosas, si se requieren los enlaces para "recargar" y "escuchar" la imagen CAPTCHA, de modo que GbMobile, simplemente, los omite.</p>
<p>Esto no significa que no puedan escribirse comentarios, pero, la mecánica cambia un poco respecto de la habitual en el resto de temas de Gesbit: en el tema de GbMobile no hay "vista previa" del comentario, porque para esto también se usaba cierto atributo "onclick", y, como podrá imaginarse, tampoco es posible "recargar" ni "escuchar" el CAPTCHA. Sin embargo, es posible añadir comentarios, y por supuesto el test CAPTCHA estará ahí si se está usando en la bitácora, que, como sabes, es opcional.</p>
<p>En fin. Termino recomendando la lectura de cierto artículo que me parece muy útil y curioso: <a title="Artículo de Luca Passani" href="http://www.passani.it/gap/">Global Authoring Practices for the Mobile Web</a>, de <a title="Sitio web de Luca Passani" href="http://www.passani.it/">Luca Passani</a>. Y, por cierto, la demostración de Gesbit cuenta con el <a title="Entrada en esta bitácora" href="http://www.bitacora.gesbit.com/el-nuevo-gbmobile-para-gesbit/">plugin GbMobile</a>, y puedes probarlo, si te apetece, en el <a title="Emulador del navegador Opera Mini" href="http://www.operamini.com/demo/">emulador del navegador Opera Mini</a>. Abre el enlace anterior y escribe en el navegador: <a title="Demostración de Gesbit" href="http://www.demo.gesbit.com">www.demo.gesbit.com</a> ¡Que usted lo pase bien! ;-)</p>]]></description>
      </item>
      
      <item>
       <link>http://www.bitacora.gesbit.com/gzip-y-el-panel-de-administracion/</link>
       <guid>http://www.bitacora.gesbit.com/gzip-y-el-panel-de-administracion/</guid>
       <pubDate>Sun, 16 Nov 2008 20:26:32 +0100</pubDate>
       <title><![CDATA[ GZip y el panel de administración ]]></title>
       <description><![CDATA[<p>¿Cómo funciona realmente la compresión GZip en PHP? El asunto tiene que tener miga, o yo soy muy torpe, porque, no termino de aclararme con este asunto. Sea como sea, he hecho unos cuantos en Gesbit que tienen en parte que ver con la compresión GZip que se utiliza, siempre que esté disponible, en la salida de las páginas de una bitácora, y, ahora también, en el panel de administración de Gesbit.</p>
<p>De hecho, tenía un tanto abandonado el panel de administración en este sentido, y es que, aunque para las páginas de una bitácora procuraba enviar las cabeceras HTTP correspondientes, mediante la clase "FrontEnd" de Gesbit, no era así para los "scripts" del panel de administración, puesto que para estos "scripts" no se utiliza la clase "FrontEnd" en absoluto, pensada sólo para las páginas de las bitácoras.</p>
<p>Sea como sea, trabajando en otra cuestión, me he dado cuenta de que no estaba comprobando correctamente si un agente de usuario acepta la compresión GZip. Concretamente, el validador del <a title="W3C.org" href="http://www.w3c.org">W3C</a> no acepta este tipo de compresión en los documentos para validar, y, había un error cuando se comprobaba esto, de modo que no se habilitaba la compresión Gzip correctamente. Al arreglar esto he trasteado en la clase "FrontEnd" y al cabo he acabado con una clase nueva: "UserAgent".</p>
<p>Como una forma de evitar el duplicado de código, y también para poner ciertas cosas en su sitio. Efectivamente, la clase "FrontEnd" contenía métodos que comprobaban si el agente de usuario aceptaba la compresión Gzip, y, por extensión, si este era el validador del "W3C", métodos estos que quedan mejor en una clase aparte, como es "UserAgent", puesto que se trata de obtener información del agente de usuario. Pero además se evita desde ya cierto duplicado de código.</p>
<p>Y es que, como he dicho, ahora se envían las correspondientes cabeceras HTTP también en los "scripts" del panel de administración, y se ha de comprobar si el agente de usuario acepta la compresión GZip, para habilitarla si es el caso, de modo que también la clase "Admin" hace uso de la nueva clase "FrontEnd", y no tiene que implementar (duplicar) lo necesario para averiguar si el agente de usuario soporta este tipo de compresión o no la soporta.</p>
<p>En definitiva, que, en virtud de estos cambios que relato, Gesbit sirve ya las páginas con compresión GZip, si está disponible (la correspondiente extensión para PHP) y la acepta el agente de usuario. Y que esto mismo se hace en los "scripts" del panel de administración. La clase "FrontEnd" se ha aligerado y existe una nueva clase "UserAgent" que ya es ciertamente útil y acaso puede serlo más aún en el futuro. Y esto es lo que tenía que decir respecto a la compresión Gzip. ;-)</p>]]></description>
      </item>
      
      <item>
       <link>http://www.bitacora.gesbit.com/gbcache-y-el-checkeo-de-expiracion/</link>
       <guid>http://www.bitacora.gesbit.com/gbcache-y-el-checkeo-de-expiracion/</guid>
       <pubDate>Fri, 14 Nov 2008 15:13:54 +0100</pubDate>
       <title><![CDATA[ GbCache y el checkeo de expiración ]]></title>
       <description><![CDATA[<p>La clase GbCache de Gesbit se encarga, entre otras cosas, de comprobar si existe contenido "cacheado" cuyo tiempo de vida haya expirado, es decir, de modo que borra el contenido del caché cada cierto tiempo, actualmente, el caché de Gesbit expira cada seis horas. Sin embargo, esta funcionalidad tenía un problema, y es que no se me ocurrió otra cosa que comprobar si existía contenido "cacheado" y expirado a cada petición de usuario, siempre que se use el caché de Gesbit, justo antes de enviar el contenido "cacheado" al usuario, o al menos tratar de hacerlo.</p>
<p>Hasta ahora estaba funcionando bien; aparentemente, comprobar si en el directorio del caché existían archivos expirados, lo que significa revisar todos los archivos de dicho directorio, no llevaba mucho tiempo, aunque, como un egregio lector de esta bitácora apuntaba en <a title="Comentario en esta bitácora" href="http://www.bitacora.gesbit.com/es-un-fallo-o-una-funcionalidad/#comment-63">un comentario</a>, quizá era demasiado revisar esta cuestión a cada petición de los usuarios, puesto que, si la bitácora tenía muchas visitas, muchos archivos "cacheados", esto podía implicar un consumo excesivo de recursos. No quedó claro cómo de excesivo, pero, ciertamente, tampoco se puede dejar de pensar en ello.</p>
<p>Mientras se implementa o no en Gesbit una especie de "Cron", una especie de "gestor de tareas", se me ha ocurrido algo muy sencillo, pero, que, no se me ocurrió en su momento, y es utilizar una variable de sesión para comprobar si ya hemos comprobado el contenido del caché expirado para una determinada sesión de usuario. Es decir, ahora no se comprueba la expiración del caché a cada petición de usuario, sino a cada sesión de usuario, quiere decirse, que nos ahorramos todas las peticiones del mismo usuario, aunque, por supuesto, otros usuarios podrán ejecutar la limpieza del caché, en otra sesión de usuario.</p>
<p>Además, he "movido" el punto en que se comprueba si existe contenido en el caché expirado o no. Efectivamente, este punto es justo el momento en que se va a proceder a enviar contenido cacheado al usuario, por supuesto, si antes ha sido guardado. El cambio consiste en comprobar el caché expirado sólo si la petición del usuario es "cacheable", lo que quiere decir que es posible que exista contenido cacheado para ella. Si la petición de usuario no es cacheable, tampoco se comprobará el caché expirado, y no como se hacía hasta ahora, que se comprobaba en todo caso.</p>
<p>La verdad es que apenas si se nota diferencia. Mejor dicho, no se nota, porque, como he dicho arriba, tampoco se notaba ninguna "perturbación" por comprobar el caché expirado a cada petición del usuario, pero, es de suponer (o al menos así lo he supuesto) que algo se habrá ganado con esta medida. Sobre todo, si llega el caso de que una determinada bitácora gestionada con Gesbit, y que use el caché de contenido integrado, cuenta con una cantidad de visitas formidable. Quizá hasta podría realizarse alguna prueba sobre este asunto, pero, de momento, quédese como está.</p>
<p>Ahora bien, acaso el egregio lector a que me he referido esté leyendo esto, y quisiera preguntarle, ¿qué te parece, maestro, esta solución "ad hoc"? ¿Puede valer o qué? ;-)</p>]]></description>
      </item>
      
      <item>
       <link>http://www.bitacora.gesbit.com/tenemos-nuevo-tema-kubrick/</link>
       <guid>http://www.bitacora.gesbit.com/tenemos-nuevo-tema-kubrick/</guid>
       <pubDate>Tue, 11 Nov 2008 00:57:52 +0100</pubDate>
       <title><![CDATA[ Tenemos nuevo tema: Kubrick ]]></title>
       <description><![CDATA[<p>Me complace anunciar que Gesbit cuenta con un nuevo tema: Kubrick, basado en el tema "Tradition" de Gesbit, pero, inspirado en uno muy popular de <a title="Wordpress.org" href="http://wordpress.org/">Wordpress</a>: Kubrick. Esta vez no se trata de un desarrollo propio, sino que Kubrick lo ha llevado a cabo mi amigo y compañero del <a title="ClubDelphi.com" href="http://www.clubdelphi.com">ClubDelphi</a>, <a title="Pabernosmatao.com" href="http://pabernosmatao.com/">Julián Torres</a>, tal como comenta en una reciente <a title="Comentario de Julián Torres en esta bitácora" href="http://www.bitacora.gesbit.com/gesbit-11-pink-floyd-estable/#comment-94">entrada de esta bitácora</a>. Lo cierto es que GbKubrick luce muy bien, incluso mejor que el tema "Tradition" que se encuentra en Gesbit de forma predeterminda, como alternativa al tema "Simple", también incluido en Gesbit "de serie".</p>
<p>Si quieres, puedes ver el tema Kubrick en el <a title="Blog de Julián Torres" href="http://pabernosmatao.com/blog/">blog de Julián Torres</a>, que, hay que decirlo, es la segunda persona de que tengo constancia que hace uso de Gesbit (*), además de yo mismo en esta bitácora y otras bitácoras que llevo a cabo. Espero que pronto Kubrick esté disponible en la <a title="Wiki del gestor de bitácoras Gesbit" href="http://www.wiki.gesbit.com/doku.php/es">wiki de Gesbit</a>, y, desde aquí agradezco de nuevo a Julián Torres que se tomara el trabajo en su desarrollo. ¡Muchas gracias Julián! Doblemente además, por confiar en Gesbit para tu blog, y por el desarrollo de Kubrick. Bueno, y, también por otras cosas, por estar ahí, simplemente, que no es poco. Qué pelota soy, je je je. XD</p>
<p>(*) En realidad me consta que otra persona ha hecho también algunos pinitos con Gesbit, y me hizo cierta ilusión saberlo. Pero el blog de esta persona no está publicado, y yo no debo tampoco, creo, darlo a conocer. Sea como sea, se trata de las únicas personas que yo conozco, casi personalmente, que se han dispuesto a usar Gesbit. ¡Ellos sabrán lo que hacen! :D</p>
<p><strong>Actualización:</strong> Ya es posible encontrar el <a title="Wiki del gestor de bitácoras Gesbit" href="http://www.wiki.gesbit.com/doku.php/es_downloads_plugins_kubrick">tema Kubrick en la wiki de Gesbit</a>.</p>]]></description>
      </item>
      
      <item>
       <link>http://www.bitacora.gesbit.com/consultas-sql-en-gesbit-y-wordpress/</link>
       <guid>http://www.bitacora.gesbit.com/consultas-sql-en-gesbit-y-wordpress/</guid>
       <pubDate>Sun, 09 Nov 2008 10:58:43 +0100</pubDate>
       <title><![CDATA[ Consultas SQL en Gesbit y Wordpress ]]></title>
       <description><![CDATA[<p>No soy muy de comparativas, a no ser que se hagan de una forma pormenorizada, lo más "científicamente" que sea posible, pero, este no es el caso de la especie de comparativa que quiero presentar en esta entrada. Si de algo me he preocupado en Gesbit, es de mantener el número de consultas SQL necesarias para conformar las distintas páginas de una bitácora, lo más bajo de que he sido capaz. Y aquí te presento una comparativa entre Gesbit y <a title="Wordpress.org" href="http://www.wordpress.org">Wordpress</a>, comparando eso, precisamente, el número de consultas SQL que cada uno de ellos lleva a cabo.</p>
<p>Antes de mostrar las cifras, me gustaría decir algo al respecto. Para la comparativa he utilizado versiones recién instaladas, tanto de Gesbit como de Wordpress, si bien he añadido ciertos "Widgets" a este último, como pueda ser el que muestra las últimas entradas en la "barra lateral", puesto que Gesbit lo muestra de forma predeterminada. Lo mismo cabe decir para los últimos comentarios, la "nube de etiquetas", la lista de categorías, fechas, etc. Es decir, he tratado de ambos sistemas muestren información similar en cada uno de sus apartados, de modo que la comparativa fuera, al menos en este punto, más o menos realista.</p>
<p>Otra cosa más me gustaría añadir. Las cifras que se mostrarán a continuación son para los usuarios sin autenticar, es decir, para los lectores de una bitácora, pongamos por caso. Porque, si se trata de usuarios autenticados, a las cifras que daré habrá que sumar dos consultas SQL, en el caso de Gesbit, mientras que, en el caso de Wordpress, no habrá que sumar consulta alguna. Ignoro ahora mismo porqué Gesbit hace las mismas consultas SQL para usuarios autenticados y no autenticados, pero, el caso es que las cifras muestran las consultas necesarias para usuarios sin autenticar, y, como he dicho, Gesbit realiza dos consultas más (en cada apartado) para los usuarios autenticados, precisamente, porque ha de obtener los datos de dichos usuarios.</p>
<p>Sin más dilación, he aquí la comparativa en cuestión, que, después de lo dicho, igual queda hasta un poco ridícula. Sin embargo, puede verse cómo Gesbit realiza menos consultas SQL para mostrar similar información, y, además, persigue el objetivo de hacerlo de este modo: usar las menos consultas SQL posibles, de modo que luego podré añadir algo más a este respecto. Ahora vengan las cifras en cuestión, comparando el número de consultas SQL necesarias para conformar los distintos apartados de una bitácora en ambos sistemas:</p><div class="gbhighlighcode"><div class="sourcecode"><pre class="text">Portada: GB 12 - WP 23
&nbsp;
Entrada: GB 10 - WP 16
&nbsp;
Página: GB 7 - WP 24
&nbsp;
Categoría: GB 14 - WP 23
&nbsp;
Etiqueta: GB 14 - WP 24
&nbsp;
Autor: GB 13 - WP 23
&nbsp;
Fecha: GB 12 - WP 23
&nbsp;
Feed RSS: GB 5 - WP 13</pre></div></div>
<p>¿Qué te parece? Como puede verse, en todos los apartados Gesbit realiza menos consultas SQL a la base de datos. A veces, como para el caso de mostrar entradas ("singles") la diferencia es de 6 consultas SQL, mientras que, para el caso de mostrar una página de la bitácora, Gesbit lo hace con 7 consultas SQL, mientras que Wordpress require 24. A todo esto he dicho que iba a añadir algo. Y es que, por ejemplo, esta bitácora que lees ahora, hace uso de varios plugins para Gesbit, empero, no suman en absoluto ninguna consulta más a la base de datos.</p>
<p>Efectivamente, dichos plugins hacen uso de las opciones "autoload", de modo que en una sola consulta se traen las opciones necesarias, tanto para Gesbit como para los plugins que lo requieren. Digo esto, porque, no ya sólo es que me he esforzado en mantener bajo el número de consultas SQL necesarias en Gesbit, sino que lo mismo he hecho mirando por los plugins y temas para Gesbit. En general, los plugins para Gesbit no suman consultas SQL a la base de datos de la bitácora, y tanto estos como los temas se pueden beneficiar del sistema de caché de consultas, que, hay que decirlo, creo que también existe en Wordpress.</p>
<p>Dicho todo esto, que conste que no sólo no tengo nada en contra de Wordpress, sino que, por el contrario, mucho que agradecer a sus autores, puesto que Gesbit utiliza prácticamente la misma estructura de base de datos que la de Wordpress (este asunto no es lo mío, desde luego), con pocos cambios, y también en Gesbit hago uso de ideas y hasta código fuente de Wordpress, algunas funciones, por ejemplo, están recogidas de este estupendo gestor de bitácoras, con el que acaso Gesbit no puede competir, no nos engañemos, ¡siempre que no hablemos del número de consultas SQL que ambos sistemas realizan!</p>
<p>De todos modos, para terminar, me referiré de nuevo a lo "científico" de la comparativa, que no tiene nada de esto. Por ejemplo, no conozco tanto Wordpress como para afirmar a ciencia cierta que estamos comparando cosas iguales. Dicho de otro modo, es posible que Wordpress cuente con alguna característica con la que Gesbit no cuenta, y es posible que dicha característica requierea el uso de la base de datos. En esta comparativa no he mirado estos "detalles". Me he limitado a hacerlo "por encima", porque, por encima, ciertamente, una portada es una portada, una entrada es una entrada, el archivo de etiquetas es lo que es, etc. Es por esto que considero esta comparativa como más o menos válida, pero, júzgalo tú mismo en todo caso. ;-)</p>]]></description>
      </item>
      
     </channel>
    </rss>