Varios cambios interesantes en Gesbit, a raíz de que mi compañero del ClubDelphi, xEsk (autor del estupendo programa xVideoServiceThief), se propusiera llevar a cabo un plugin para Gesbit. Lo particular de este plugin, lo que ha conllevado ciertos cambios, es el hecho de ser el primero que hace uso de la base de datos, para guardar sus propias opciones, configurables además por el usuario.
xEsk descubrió que los plugins no podían añadir según qué etiquetas y atributos de etiquetas HTML, precisamente, al querer filtrar el contenido de los cuerpos de entradas y comentarios. Esto era así, porque, el filtro de los plugins se llevaba a cabo antes de que Gesbit filtrara a su vez el HTML del contenido mencionado, de modo que "se cargaba" lo que el plugin había hecho.
La solución, por el momento, se basa en considerar a los plugins de Gesbit como "amigables", es decir, se les deja hacer, puesto que, si se notara algo "raro", siempre podrían ser desinstalados. De este modo, el filtro que Gesbit lleva a cabo se hace efectivo antes de que los plugins puedan a su vez filtrar el contenido. También porque el plugin de xEsk hace uso de la base de datos de Gesbit, concretamente, de la tabla de opciones, se han visto algunas macas aquí y se han hecho algunos cambios.
Básicamente, sobre esto, me percaté de que Gesbit no proporcionaba un modo de borrar varias opciones de una sola vez, es decir, utilizando una sola consulta SQL, lo que obligaba a hacer tantas consultas SQL como opciones se querían borrar. Actualmente ya se da la posibilidad de borrar varias opciones de una vez, utilizando una sola consulta SQL. Esto es ideal cuando se "desinstala" un plugin, puesto que, en el caso del que hablamos, este elimina sus opciones de la tabla correspondiente, dejando la base de datos tal como estaba antes de la instalación y activación del plugin.
Todo esto viene de mi obsesión (necesaria) de evitar consultas SQL, siempre que sea posible. El plugin de que hablamos necesita las opciones, y recurre a ellas varias veces en su "vida útil", lo que quiere decir que se realizaban varias consultas a la base de datos, tantas como veces se requerían dichas opciones. Ahora bien, la solución estaba en considerar las opciones del plugin como "autocargables", de modo que se cargan junto al resto de opciones de Gesbit, al iniciarse este, para que permanezcan disponibles en lo sucesivo, sin necesidad de volver a consultar a la base de datos.
Cualquier plugin que haga uso de la tabla de opciones, debería considerar que estas fueran "autocargables", siempre que se estime necesario, para evitar las consultas SQL. Dicho de otro modo, el plugin que nos ocupa no suma más consultas SQL a Gesbit, y este debe ser el objetivo, al menos hasta donde uno puede llegar ahora mismo. Claro que ahora queda ver de optimizar la "autocarga" de opciones, es decir, pensar en si la carga de N opciones resultaría contraproducente. Espero de veras que no, puesto que esto conllevaría cambios que no me he planteado siquiera.
En definitiva, esta entrada quiere decir lo que dije a su comienzo: que mientras Gesbit se mantenga "en mi mundo", este carecerá, o no se percatará de ciertas circunstancias, de ciertos problemas o posibles problemas, sin alguna que otra mejora, fruto de que Gesbit no se enfrenta a la realidad, por decirlo así, de que sólo lo revisa una persona, que lo utiliza para sus propias necesidades, que sin duda no son las mismas que las de otras personas, ni tienen que serlo, por supuesto.
Por otro lado, xEsk descubrió un par de errores en el método que valida la información de los plugins, informe que aproveché no sólo para solucionar este problema, sino para arreglar otro que se daba en el método que se encarga de validar la información de los temas de Gesbit. ¿Se entiende lo que quiero decir? Por eso le agradezco a xEsk su interés y el trabajo que se ha tomado y aún se toma con todo este asunto. Lo mismo que a cualquiera que se lo tomara también. He dicho.
Publicada el 15/6/2008 17:55 PM por David Esperalta
Suscribirse a esta entrada - URL para Trackbacks