Drupal

Temas en Drupal 6

Hay mucho que leer y absorber en el nuevo Drupal 6. Lo bueno es que para quien haya pasado buen tiempo programando con la versión 5 los cambios se pueden entender en muy pocos días.

Y hablando de cambios, uno de los que más me gusta es como se manejan ahora las plantillas (templates), cada módulo puede incluir sus propios archivos .tpl.php y basta con copiarlos al directorio de tu tema y modificarlos si necesitas algo diferente.

Mark Boulton y el rediseño de Drupal.org

Mark Boulton está trabajando en el nuevo diseño del sitio de Drupal, esas son muy buenas noticias. Sigo el trabajo de Mark desde hace mucho y no cabe duda que es uno de los mejores, sus serie de artículos sobre el uso de grids y tipografía son lectura obligada.

Pero lo que es mejor aún es que Mark y su equipo han decidido abrir su proceso de diseño, algo muy valiente y arriesgado, y lo han llamado: diseño por comunidad.

Aún está por verse si la experiencia funciona o no pero lo interesante será ver todo lo que podremos aprender de ella.

Promoción de Drupal en 15 gotas

Ya empecé a trabajar en mi próximo boogeek: Diseño con Drupal, y para animar el ambiente se me ocurrió ofrecer una fugaz promoción.

Del 21 al 24 de marzo de 2008 podrás comprar Drupal en 15 gotas por solo US$ 7.95.

Feliz fin de semana drupalero.

Una charla sobre Drupal y código abierto

logo DrupalHace algunas semanas recibí una invitación del Centro Fundación Telefónica para hablar sobre Drupal y código abierto, y aún cuando todos saben que no soy muy amigo de Telefónica, la compañía, esta me pareció una buena oportunidad para compartir algunas ideas con todos los interesados en el desarrollo de sitios web.

La cita es el martes 5 de febrero a las 7 de la noche en el Centro Fundación Telefónica. Av. Arequipa 1155. Para mayores detalles pueden llamar al teléfono 2101327.

Hablaré sobre el potencial de los sistemas de administración de contenido de código abierto, específicamente Drupal, cómo obtener el máximo beneficio de ellos, la tantas veces mencionada, o manoseada, Web 2.0 y el mercado de servicios para desarrolladores web profesionales.

Así que, salvo algún odioso ejecutivo de Telefónica opine lo contrario, nos vemos el próximo martes.

Theme Developer ayuda a crear temas para Drupal 6

Un buen amigo, Vladimir Prieto, llamó mi atención sobre un intersante módulo del cada vez más cercano Drupal 6: Theme Developer.

Theme Developer permite hacer clic sobre cualquier parte de una página generada por Drupal y ver un popup con información sobre el archivo tpl y las funciones que generan el HTML.

Aún cuando los que desarrollamos en Drupal desde hace varios años ya tenemos nuestra forma de descubrir qué archivos modificar para adaptar nuestros diseños (yo uso mucho grep y Firebug), un módulo como Theme Developer puede ahorrar mucho tiempo a todos los desarrolladores que trabajan con Drupal, sean novatos o experimentados.

Gracias por el dato Vladimir y suerte con tus proyectos con Drupal.

Aprendiendo alemán en Internet con Rosetta Stone

Rosetta Stone GermanUn nuevo y muy interesante proyecto con Drupal en Munich renovó mi interés en aprender alemán, una tarea que siempre he dejado pendiente pero que tenía que cumplir de una vez por todas.

Pero encontrar el tiempo y el profesor adecuado complicaba el asunto así que busqué un poco más en la Red. Ya había probado con varios opciones muy interesantes, incluyendo el simpático y divertido curso gratuito de la Deutsche Welle, pero ahora quería algo que me garantizara aprender el idioma en el menor tiempo posible y estaba dispuesto a pagar por ello.

Así llegué a Rosetta Stone, una compañía cuyo software ha sido utilizado por muchos en todo el mundo. El sistema es llamado Dynamic Immersion y es realmente fascinante pues te conecta con el nuevo idioma, Rosetta Stone ofrece más de treinta, desde el primer instante.

A través de fotografías muy bien pensadas, diferentes voces y una serie de ejercicios interactivos se va tomando confianza y entendiendo los conceptos básicos del idioma alemán. Ya tengo casi una semana siguiendo el curso y puedo decir sin lugar a dudas que voy por buen camino. El proyecto con Drupal salió muy bien y pude llegar al punto es que podía continuar con el diseño y la programación sin importar que todo estuviese escrito en alemán.

Adquirí la versión en línea de Rosetta Stone, poco más de US$ 100 por una suscripción de 3 meses, para evitar demoras en el envío del software en CD y el único punto en contra que encuentro hasta ahora es que requiere Adobe Shockwave, disponible solo para Windows y Mac OS, por lo que no puedo seguir mis lecciones desde Linux.

Obviamente este no será el final del camino para aprender alemán, planeo seguir otros cursos, posiblemente Berlitz Online, que cuesta mucho más y, obviamente, continuar escuchando Rammstein y Tokio Hotel.

Auf Wiedersehen!

Necesitamos estándares para el correo electrónico

Soy usuario de Campaign Monitor desde hace mucho y hace poco empecé a trabajar con ellos en mejorar el módulo para Drupal que escribí meses atrás.

Creo que David Greiner y todo el equipo en Campaign Monitor están haciendo un gran trabajo, en especial cuando se trata de promover el uso de estándares web para correo electrónico, y ese es el motivo de este artículo, generar conciencia entre los desarrolladores web y en las compañías que crean clientes de correo electrónico para que podamos utilizar HTML y CSS estándar sin importar que cliente se utilice.

Desde 456 Berea St. Roger Johansson apoya la idea y creo que todos los que estamos involucrados profesionalmente en el desarrollo de proyectos Internet debemos hacerlo.

No esperes más y participa de la iniciativa de Campaign Monitor ayudando a definir los requisitos para usar estándares web en correo electrónico.

Desarrollo en los tiempos de Facebook y Second Life

Llevo varios años participando en redes sociales y conozco el poder de conectarse con la gente correcta, me encanta ser parte de una muy activa sociedad en la Red, ¡diablos!, ¡tengo una buena vida gracias a ello!

Aún así, no le había dedicado tiempo a pensar en el gran impacto que está teniendo Facebook y en las muchas oportunidades que se abren para quienes desarrollamos en la Web hasta que empecé a trabajar con Facebook Platform.

Un muy entretenido proyecto en el que ya llevo algunos meses involucra conectar módulos de Drupal con Facebook y es una excelente forma de explorar nuevas formas de crear experiencias en Internet.

Como muchos de ustedes saben (imaginemos que eres un lector regular, si no lo eres ¿qué esperas para suscribirte?), soy un fanático de Second Life, así que encontrar un grupo de residentes en Facebook me pareció genial, acabo de unirme, y fue un claro indicio de lo que se viene.

No me queda duda que pronto veremos germinar muchos proyectos alrededor de metaversos como Second Life y plataformas de redes sociales como Facebook. Sí, plataformas, Facebook ha cambiado las reglas del juego por completo.

Definitivamente existen muchísimas opciones para quienes crean experiencias en la Red, y son buenos en ello, pero si creías que ya habían demasiadas especialidades en el cambo de desarrollo web piensa de nuevo pues pronto veremos expertos en aplicaciones de Facebook y diseñadores de Second Life trabajando con programadores de Drupal y arquitectos de información.

Epa, vivimos un período muy emocionante, ¿no lo crees?

Así que, ¿a dónde crees que te diriges como desarrollador web? Claro, si es que podemos seguir llamándonos así.

Mayor control sobre el orden en que corren los hooks y módulos de Drupal

Si llevas algún tiempo desarrollando en Drupal sabes que el orden en que corren los módulos de tu instalación depende del valor del campo weight en la tabla system. Puedes modificar esta tabla desde un archivo install para lograr que tu módulo corra exactamente cuando lo necesitas. Esto es lo que hace community tags para trabajar después de tagadelic y es el método que usé para ejecutar código de form_alter después de todo lo demás cuando necesité modificar formularios de eventos.

Pero cambiar el valor de weight para un módulo afecta a todos los hooks en él. ¿Qué sucede si necesitas controlar el orden de ejecución para cada hook en cada módulo? Esto es exactamente lo que necesitaba para correr algunas operaciones nodeapi en un módulo antes de event_nodeapi y cambios en form_alter, en el mismo módulo, después de event_form_alter. Aunque no lo creas, es posible que algún día necesites algo así (a menos que optes por una solución corriendo dos módulos, uno antes y el otro después).

Esta idea me inspiró a escribir código para reemplazar las operaciones de event_nodeapi una por una. Ahora puedo ejecutar load y view desde event_nodeapi y reemplazar insert y update con mi módulo.

El concepto es muy simple. Añadí una tabla event_nodeapi_overriders con dos campos: module y op. Mi modulo usa un archivo install para insertar valores en la tabla. Si quiero que mimodulo reemplace las operaciones insert y update en event_nodeapi debo insertar los siguientes pares de module/op en la tabla: mimodulo/insert y mimodulo/update.

Luego algunos campos de selección leen los valores de event_nodeapi_overriders y los muestran en la página de configuración de event para definir que módulos deben reemplazar que operaciones en event_nodeapi. Y finalmente algunas condiciones con variable_get() en event_nodeapi y mimodule_nodeapi me permiten decidir que código correr.

Talvez este concepto se pueda extender para eventualmente contar con una matriz de todos los hooks en todos los módulos o un parámetro hook_weight que permita a los desarrolladores decidir el orden de ejecución de cada hook en cada módulo. O talvez sea demasiado trabajo adicional para Drupal.

En todo caso, esto fue parte de un experimento y aunque luego de hablar con Gerhard decidimos que lo mejor era usar Form API para procesar el envío de eventos, talvez la idea de tener mayor control sobre el orden de ejecución de hooks merezca mayor análisis en la comunidad Drupal en el futuro.

Notas desde Flisol 2007 en Lima, Perú

Drupal en 15 gotasPocas veces te topas con tantas personas en un mismo lugar a quienes les puedas preguntar si "tienen root para montar tu iPod desde /dev/sdb2" sin que te miren con expresiones de ovejas a punto de ser trasquiladas. ¡Eso es lo que me gusta de los eventos como Flisol!

La densidad de geeks por metro cuadrado en Flisol es mucho mayor que en condiciones normales, y por condiciones normales me refiero a ese mundo en que vivimos cuando no estamos en World of Warcraft, Second Life o soñando en código.

Mi buen amigo Hernán Pachas me invitó a Flisol 2007 para hablar sobre Drupal en 15 gotas y diseño web con Gimp, así que llegué a eso de la 1 de la tarde del sábado a la facultad de Ingeniería de Sistemas de la Universad San Martín de Porres.

No fue muy dificil encontrar a los fanáticos del software libre, una bandada de polos blancos, con usuarios de OpenSuse dentro, marcaban el lugar.

Varios salones estuvieron dedicados a instalaciones de software libre, espero que reemplazando a software privativo, y al parecer Ubuntu fue la distribución elegida por la mayoría.

Algo que me parece ha pegado mucho es el uso de escritorios acelerados por OpenGL, como Beryl, ví muchas estaciones corriéndolo. Yo estoy usando Compiz en Fedora Core 5 hasta pasar a 6 o 7 y planeo correr Beryl en mis estaciones Debian y Ubuntu pronto.

Creo que Flisol 2007, al menos en la sede donde estuve, fue una muy buena oportunidad para reunir a muchas comunidades de usuarios. Estuvimos algunos miembros de la Asociación Nacional de Webmasters Perú, el PLUG, Linux Chix Perú y otras. Estoy seguro que el público en general se llevó una buena idea de lo mucho que se puede hacer con Linux y tantas aplicaciones de software libre.

No todo fue perfecto, tuvimos retrasos en el cronograma, especialmente por temas de configuración en algunos equipos, y lamentablemente no pude ofrecer mi charla sobre Gimp (quedará para un futuro evento), además el equipo de coordinación y los expositores no estuvimos del todo conectados en todo momento, lo cual hasta cierto punto entiendo, tanto ellos como nosotros estuvimos, y aún estamos, ocupados con otros temas y es de por si un gran esfuerzo el aportar tiempo para eventos totalmente voluntarios como Flisol.

Pero lo importante es que todos aprendimos un poco más y pudimos compartir mucho de nuestras experiencias con todos los asistentes.

Noté que algunas charlas fueron grabadas en vídeo y probablemente las tengamos disponibles en la Red en algunos días.

Solo tuve tiempo para asistir a otra charla, Jesús Castagnetto hablando sobre buenas prácticas de programación PHP. Jesús es definitivamente un experto en PHP y fue un gusto poder compartir algunos minutos con él luego de su presentación, estoy seguro que nos veremos pronto en otros eventos y reuniones.

Para quienes asistieron a mi charla, aquí está la presentación de Drupal en 15 gotas, además algunas fotos en Flickr.

Bravo para el equipo organizador de Flisol 2007, es maravilloso ver cuanta gente con pilas y buena vibra existe en el movimiento de software libre peruano. Muchas gracias por invitarme y cuenten conmigo para futuros encuentros muchachos.