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.

La primera cámara de Bea

Ayer le regalé su primera cámara digital a Beatriz, una sencilla Canon PowerShot A460.

Hoy estuvo todo el día jugando con los controles de zoom, diferentes modos de escena y capturando objetivos con la regla de los tercios (la camarita permite activar una muy útil rejilla) pero no fue hasta que descubrió la función de vídeo que empezó realmente a divertirse.

El vídeo de la PowerShot A460 es básico pero resulta más que suficiente para algunos experimentos caseros. Aquí el primero de ellos.

Cómo actualizar PHP 4 a PHP 5 en CentOS 4

Actualizar CentOS 4 a PHP5No hay duda de que PHP 5 es ya lo suficientemente estable como para cualquier entorno de producción pero no fue hasta que empecé a desarrollar para Facebook que noté que ya no era una opción sino una necesidad. Hablar de PHP ahora es hablar de PHP 5 e incluso existen campañas para mudarnos completamente a PHP 5.

Había llegado el momento de deshacerse de PHP 4 en mi fiel servidor CentOS 4.3, donde corren Ventanazul, ¿Y si los matamos?, Mumobo, BlogsyCopy y otros experimentos. El único problema es que PHP 5 no aparece en los repositorios de CentOS 4 y mudarse a CentOS 5 involucraba demasiado trabajo, me pareció innecesario pues todo camina perfecto. Un típico caso de si no está roto no hay porque repararlo.

¿Qué hacer para correr PHP 5 en CentOS 4?

Esto podría salvarte el cuello: Copia /var/lib/mysql, tus bases de datos, y tus archivos de configuración para PHP, /etc/php.ini, y MySQL, /etc/my.cnf, a una ubicación segura en tu servidor o, mejor aún, a otro equipo.

Una rápida búsqueda me llevó a CentOS Web Stack, un conjunto de paquetes para actualizar Apache, MySQL y PHP en CentOS 4.

Las instrucciones son muy fáciles de seguir así que solo anotaré los cambios que necesité para que todo camine bien en mi servidor. No puedo garantizar que estos sean los mismos pasos que debas seguir para tu configuración pero estoy seguro que serán buenas pistas.

Luego de instalar el nuevo repositorio y yum-plugin-priorities, ver instrucciones en el enlace arriba, mi primera llamada a yum fue para remover php-domxml:

sudo yum remove php-domxml

Usé sudo para todos mis cambios pero si eres de los que prefiere su - dale.

A continuación ejecuté:

sudo yum --enablerepo=centosplus upgrade php*

Allí me topé con el primer problema, un error de memoria ocasionado por Python, yum es una aplicación Python. Para corregir el problema actualicé python-sqlite usando rpm.

sudo rpm -Uvh python-sqlite-1.1.7-1.2.1.i386.rpm

Al reintentar con yum y el upgrade php aparecieron errores de dependencia entre MySQL, perl-DBD-MySQL y perl 5.8.8. Decidí olvidar php-mysql por el momento y enfocarme solo en PHP 5:

sudo yum --enablerepo=centosplus install php

¡Voilá! Ya tenía PHP 5, aunque sin php-mysql no servía de mucho y todos los sitios en el servidor estaban detenidos. Estaba trabajando desde la cama en la madrugada así que había que pensar rápido. A investigar ese problema con MySQL y perl.

Al parecer necesitaba perl 5.8.8 pero por alguna razón yum no se daba cuenta de ello. Piensa tío.

sudo vi /etc/yum.repos.d/CentOS-Base.repo

¡Allí está! Las secciones [base] y [update] contenían exclude y eso no permitía ver actualizaciones de perl o perl-DBD-MySQL, estas líneas estaban allí por la instalación de CentOS Web Stack. Copié y comenté las líneas por seguridad y luego removí las referencias a perl y perl-DBD-MySQL.

Ahora volví a probar con php-mysql:

sudo yum install php-mysql

Todo funcionó bien ahora y no solo tenía un actualizado php-mysql sino que había pasado de MySQL 4 a MySQL 5. ¿Será cierta tanta maravilla? Vamos a ver:

sudo /etc/init.d/mysqld start

¡Ouch! MySQL no se inicia, hora de revisar logs:

sudo tail /var/log/mysqld.log

Aparecieron algunos problemas relacionados con los mensajes en inglés y juegos de caracteres, al parecer /usr/share/mysql tenía aún archivos de MySQL 4 creando conflictos. Primero intenté remover MySQL 5 y reinstalar:

sudo yum remove mysql
sudo yum install mysql mysql-devel mysql-server

Nada, seguía con el problema. Como en realidad no necesitaba MySQL 5 a muerte decidí regresar a MySQL 4 así que removí MySQL 5:

sudo yum remove mysql

Y volví a CentOS-Base.repo:

sudo vi /etc/yum.repos.d/CentOS-Base.repo

Esta vez removí las referencias a MySQL en las líneas exclude de las secciones [base] y [update] y activé enabled=0 en [centosplus], a continuación:

sudo yum install mysql mysql-devel mysql-server

Ahora sí, de regreso con MySQL 4:

sudo /etc/init.d/mysqld start

Todo caminando bien, y para comprobarlo unas cuantas pruebas desde la línea de comandos:

mysql -u usuario -p alguna-db

Ahora solo faltaba decidir los módulos que quería para PHP 5, a comentar ese enabled=0 en [centosplus] (CentOS-Base.repo, ¿recuerdas?), veamos que tenemos:

sudo yum list available | grep php

Y luego sal al gusto:

sudo yum install php-xml php-xmlrpc php-devel php-soap php-gd

Finalmente:

sudo /etc/init.d/httpd restart

Y ahora aplicamos el método científico: cruzar los dedos y a probar cada aplicación.

En mi caso todo funcionó, o no estarías leyendo esto, fueron aproximadamente 90 minutos de sudor frío con un ligero dolor de espalda pero valió la pena, damas y caballeros: PHP 5 en CentOS 4.

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í.

¿Cómo viste un geek mientras trabaja?

Pues lo más cómodo posible, y sí, cuando el clima lo permite simplemente calzoncillos.

como viste un geek

Y tú, ¿cómo vistes mientras desarrollas aplicaciones?

Gadgets que me quiero regalar el 2007

Sin pretender transformar esto en un meme, aunque obviamente me gustaría saber lo que otros bloggers quieren, aquí la lista de los regalos que espero poder hacerme en lo que queda del año:

  • El Reader de Sony, porque soy adicto a los libros, definitivamente debo probar un dispositivo E-Ink y siempre he tenido buenas experiencias con Sony (mi PDA Clie tiene más de 5 años y aún funciona igual que el primer día). Precio de lista: US$ 299.99.

    Sony Reader, libros digitales con E-Ink

  • Canon Digital Rebel XTi, porque quiero tomar verdaderas fotografías, obtener todos los beneficios de una DSLR y mi fiel Olympus D-320 ya merece descanso. Precio de lista: US$ 722.00 y al menos mil más para dos o tres buenos lentes.

    Canon Digital Rebel XT, fotografía digital de verdad

  • Nokia N800, porque un dispositivo móvil con Wi-Fi, que no pese tanto como Amber, la Pangolin, es vital en toda casa geek, corre Linux y mi linda esposa se adueñó de la TX. Precio de lista: US$ 359.00.

    Nokia N800, el compañero móvil ideal

Obviamente hay muchas otras cosas que quisiera incluir en la lista pero dudo que La Esposa me permita incluirlas, al menos por este año. Por cierto, se aceptan donaciones.

Google, ¿cuántos dólares hay en 150 euros?

Nada más fácil, escribe: 150 euros to dollars y presto.

Pero estoy seguro que ya sabías cómo usar Google como calculadora. Sí, estoy muy desactualizado.

Tomboy, notas para desarrolladores web

¿Te has encontrado con esas personas que pegan post-its alrededor de sus pantallas? La mayoría son usuarios ocasionales que hacen muy poco en sus computadoras e imagino que esta práctica les resulta normal. Sin embargo, como desarrollador web que pasa la mayor parte de sus dias trabajando con todo tipo de información, me parece un método cavernario que solo sirve para crear mayor desorden. ¿Porqué usar papelitos para tomar notas cuando existe software para ello?

Durante mis años como usuario de KDE utilicé Knotes, ahora parte de KDE Kontact, pero hace algunos meses pasé por completo de KDE sobre Fedora a Gnome sobre Ubuntu. Trabajar con una aplicación KDE no me parecía lo correcto así que decidí mover mis notas a Tomboy y vaya que fue una excelente elección.

Tomboy viene preinstalado en Feisty Fawn y se integra perfectamente al escritorio. Es muy sencillo crear notas, enlazarlas (al mejor estilo wiki) y buscar entre todas ellas.

Uso Tomboy todo el día, y todos los días, para guardar piezas de código, consultas SQL, sencillos recordatorios (por lo general temas que requieren inmediata atención, para todo lo demás está Evolution.) o cualquier otro asunto que normalmente requeriría de lápiz y papel, de los que espero algún día deshacerme por completo.

Gracias a Tomboy mi escritorio, me refiero al de madera, está siempre limpio de papeles, mas no de gadgets. Aquí una toma de como luce Woodcarver con Tomboy, el infaltable vim y una simpática señorita de fondo.

Tomando notas con Tomboy en Feisty Fawn

Snipplr: Un repositorio de código a lo del.icio.us

Hace poco, mientras buscaba algunas ideas para limitar el número de caracteres en un área de texto usando Javascript, encontré a Snipplr, un servicio que me recuerda lo simple y fácil de usar que es del.icio.us, sitio donde por estos días se trabaja en una nueva plataforma y mejoras a la interfaz (¿será posible?).

Snippler permite guardar, buscar y marcar aquellos fragmentos de código que usamos una y otra vez en nuestros proyectos, snippets.

Sé que no es el primer sitio que lo hace pero me ayudó cuando lo necesité así que dale un vistazo.

Como abrir ventanas en pestañas usando Firefox 2

Hace algunos días una falla eléctrica en San Francisco hizo colapsar a Rojo, mi agregador de noticias favorito, así que tuve que cambiar rápidamente a Google Reader, hasta ahora el segundo en mis preferencias.

La interfaz de Google Reader está muy bien pensada y sus teclas de acceso resultan de gran ayuda (especialmente para un usuario de vim), sin embargo, si quiero abrir un artículo en el sitio original, Firefox 2 abre una nueva ventana sin importar como lo haya configurado. Parecería que la opción correcta ha sido removida del menú de preferencias en Firefox 2.

Solución: visita about:config y filtra los resultados escribiendo link.open. Verás tres propiedades, haz clic en cada una de ellas y utiliza los siguientes valores:

browser.link.open_external 3
browser.link.open_newwindow 3
browser.link.open_newwindow.restriction 0

¡Voila! Ahora los sitios que quieran abrir nuevas ventanas, como Google Reader, utilizarán pestañas.