8 Take Me Down To The Paradise City Where The Grass Is Green And The Girls Are Pretty 8

jueves, noviembre 17, 2005

Mis herramientas para ganarme el pan

Pues así, haciendo el vago un poco, he intentado recordar esta tarde cuando fue la última vez que hablé de algo técnico... y casi he tenido que destriparme el cerebro. Claro, que publicitar esto como un blog con las vivencias de un informático y no hablar de lo que se hace tiene tela. Asi que voy a explicar -tampoco voy a entrar en demasiados detalles- lo que es Zope y Plone.

Porque, claro, todo el mundo sabe que estoy trabajando de desarrollador Zope/Plone (más de lo segundo que de lo primero, pero en fin...). A algunos le sonará de haberme escuchado acordarme de ello (ya se sabe, hardware = todo lo que puedes golpear con un hacha, software = aquello que solo puedes maldecir), otros (Txus, Jon, Pablo, Borja o Nando) puede que encuentren este texto poco divulgativo o incluso, equivocado, para que engañarnos, pero tampoco pretendo dar una charla hiper-exacta sobre porqué esto, porqué lo otro. Así que pido comprensión y una lectura un poco "por encima".

Logo Zope

Zope: El entorno de publicacion de objetos Zope (Zope Object Publish Enviroment) es un CMS (Sistema de gestión de contenidos, Content Management System) libre (free as a bird, not as a beer) basado en python. Vale. La primera en la frente. Toma definición formal. Voy a intentar simplificarlo. Un poco al menos.

Zope es un motor de base de datos transaccional. (Pues sí que lo arreglo, ¿verdad? Seguimos bien)

No un motor de base de datos unicamente. También es el entorno de gestión y el de seguridad, pero teniendo en cuenta que de por sí mismo, no tiene compatibilidad con las BD transaccionales o relacionales más utilizadas. Olvidarse de SQL, Oracle o Access. Existen productos que permiten hacer "trampa" en las conexiones, pero no es el caso más habitual. ¿Cual es el truco entonces? Pues que es una base de datos tan alejada de cualquier estandar que se conozca/estudie, que funciona. Y funciona bien. Pero es tan rarita, que los objetos (contenidos, datos, plantillas de HTML dinámico, scripts python, ...) que la componen se llaman Objetos Zope. Y nosotros podemos jugar con ellos.

Como he dicho antes, Zope es un motor de base de datos, entorno de gestión y de seguridad. Pero ofrece también un motor de búsqueda y código. También ofrece un sólido modelo de desarrollo EXCLUSIVAMENTE a través de un interfaz web, que permite actualizar y modificar el sitio web desde cualquier lugar. Para permitir esto, Zope también implementa un sistema de seguridad integrado construido partiendo del concepto de “delegación segura del control”: La arquitectura de seguridad de Zope permite dar acceso a ciertas partes de un sitio web a otras organizaciones o personas.

El modelo transaccional no solo se aplica a la base de datos de objetos de Zope, sino a muchos otros conectores de la base de datos permitiendo una mejor integridad de datos. Este modelo de transacción es automático, asegurando que todos los datos de conexión son almacenados correctamente a la vez que se devuelve un response al navegador web u otro cliente.

Claro, muy bonito. Pero yo quiero tener un blog. O un wiki. O un foro. Y para Apache existen miles de extensiones que me ofrecen lo que quiero. Y Zope tambien: existen numerosos productos (una especie de componentes tipo "bajar-colocar-reiniciar servicio" para Zope) disponibles para descargar con el objetivo de mejorar y extender el juego básico de utilidades. Estos productos incluyen nuevos objetos contenedores; nuevas bases de datos y otros conectores para fuentes externas de datos (las trampillas estás para conectarse con BD más habituales, LDAPs, etc, ... ), herramientas más avanzadas de gestión de contenidos (mi querido Plone) y aplicaciones completas para comercio electrónico, manejo de contenidos y documentos o búsqueda y notificación de fallos.

Para acabar, Zope incluye sus propias capacidades de servicio HTTP, FTP, WebDAV y XML-RPC, además de poder mantener la interoperabilidad con otros servidores como Apache. Bueno, hasta cierto punto y sabiendo que se toca en la configuración de ambos sistemas. Nota al pie. Zope puede parecer la panacea, la repanocha y la pera limonera, pero sé por experiencia (y Nando y Jon, más aún) que chupa. Pide recursos como un cabróncampeón. Así que yo aconsejaría que se probasen otras soluciones. Solo si no funcionan como queremos, entonces es hora de valorar lo que supondría un desarrollo Zope.

Logo Plone

Plone: ¿Y qué es Plone? Pues un producto (también libre) para Zope que permite la creación de portales gestionando el estado de visibilidad de los contenidos (privado, visible, publicado) multi-idioma, con control de acceso por usuario a dichos contenidos, utilizando como base Zope.

En teoría es un producto accesible (ja!) que aprovecha las ventajas de estar maquetado en CSS2 (y tan bien maquetado que hasta a veces tira de 5 - si, CINCO!! - hojas de estilo diferentes) y tiene la característica (o dolor de cabeza, según lo mire el programador -el menda- o el cliente y el jefe) de estar construido como un puzzle.

Existe una estructura general a la que vas añadiendo o quitando cosas. El problema es que muchas veces no puedes sacar un caso general a esos elementos y te acabas perdiendo. Pero tiene la ventaja de que salen cositas muy chulas, con un montón de funcionalidades .... cuando salen.

Me ha quedado un poco hermosote de tamaño, ¿no? Bueno. Serían las ganas de escribir sobre algo técnico. En fin, que lo disfruteís.

P.D.: Suena Kiss, Heaven's on Fire