Ruby Blue, o como crear temas para FlashDevelop

Quién haya programado algo en ActionScript o HaXe seguramente conocerá el programa FlashDevelop, un editor de código open source bastante completo y potente para Windows (creo que para Linux y Mac hay una versión con MonoDevelop).

El único inconveniente que le veo (que más quieres, es gratuito) es que no hay ninguna manera evidente de cambiar el theme – los colores de la ventana de edición de código. Otros entornos como Eclipse permiten muy fácilmente cambiar el tema de colores (gracias al plugin Eclipse Color Themes), y después de haber probado combinaciones de fondos oscuros como Oblivion o Solarized Dark una ventana de edición en blanco quema mis retinas.

Pantalla de edición de FlashDevelop
Una página con fondo blanco, el horror…

Así, para cambiar el theme a FlashDevelop es necesario obtener un archivo .FDZ (que no es más que un archivo comprimido ZIP con otra extensión), ejecutarlo y aceptar la instalación. La próxima vez que se lance FlashDevelop habrá cambiado de colores, probablemente a mejor.
(Puedes probar con éste archivo FDZ basado en Ruby Blue, creado por mismamente yo.)

Ahora que sabemos como alterar la combinación de colores, crear un tema nuevo será igual de sencillo. Continúa leyendo Ruby Blue, o como crear temas para FlashDevelop

gettext y la caché

Siguiendo con el tema del día anterior, que versaba sobre la internacionalización en PHP y la herramienta GNU gettext, nos dejamos en el tintero el problema de la caché.

Cada vez que una aplicación PHP pide amablemente a la extensión gettext que establezca un nuevo dominio, indicando la ruta a los archivos de traducción MO, con un código como el que sigue:

// Especifica la ruta a los catálogos de traducción:
// /locale/<lang_COUNTRY>/LC_MESSAGES/mydomain.mo
bindtextdomain("mydomain", "./locale");

gettext en respuesta lee esos archivos MO según el código idioma/país del usuario y los carga en memoria, para disponer de su contenido a voluntad sin necesidad de leerlos de nuevo con cada petición de traducción. Continúa leyendo gettext y la caché

Raohmaru Toolkit

Aprovecho que el blog es mío para presentar Raohmaru Toolkit, una librería programada en ActionScript 3 para ayudar en el desarrollo de aplicaciones Flash o Flex, en la medida de lo posible claro.

¿Flash? ¿Pero no estaba muerto?

Muerto, lo que se dice muerto, no. Ni siquiera malherido. Aunque parece que la tendencia es de ir abandonando lentamente la tecnología Flash en el desarrollo de sitios, para hacer la web más accesible (hablamos sobretodo de dispositivos móviles, tablets, lavadoras, y otros cacharros donde no habrá más soporte para Flash Player en sus navegadores), esto no ha sido óbice para que siga presente en aplicaciones, juegos, allá donde todavía no llega HTML5 o para mantener la compatibilidad con los viejos navegadores.

Continúa leyendo Raohmaru Toolkit

Internacionalización en PHP

En el desarrollo de un sitio web muchas veces nos hemos encontrado con el desafío de la traducción, servir páginas en diferentes idiomas sin que esto suponga un calvario por duplicar contenidos y/o hacer el código más difícil de mantener (y como consecuencia romper una de las reglas básicas para el buen mantenimiento del código). En informática de software el proceso de llevar a buen término esta tarea se conoce como Internacionalización: diseñar un programa capaz de adaptarse a distintas lenguas sin realizar cambios en el código.

Si hablamos de un microsite sencillo de páginas estáticas, una opción rápida y barata es utilizar el Traductor de sitios de Google, un fragmento de JavaScript de esos plug-and-play que hace todo el trabajo por nosotros sin tocar el codigo HTML. La parte negativa es que la traducción no es muy fiel, y además hacemos publicidad gratuita a los de Mountain View.

Continúa leyendo Internacionalización en PHP

Default Gravatar Sans, un plugin para WordPress

Tras actualizar la bitácora a la plataforma WordPress, el siguiente paso ha sido descubrir y jugar con la configuración hasta quedar satisfecho, o al menos casi satisfecho: no me acaba de convencer el sistema para mostrar los avatares de los usuarios. Por imperativo del CMS las imágenes son “filtradas” por el sitio Gravatar.com aun cuando éstas sean archivos locales sin ninguna afiliación a tal sitio.

Así, si yo quiero mostrar una imagen para los usuarios que comentan sin estar identificados, por ejemplo

http://raohmaru.com/blog/wp-content/uploads/2012/04/default_avatar.png

la dirección URL se convierte en

http://1.gravatar.com/avatar/f944229af6b258c09f105781f66ef3e5?d=http://raohmaru.com/blog/wp-content/uploads/2012/04/default_avatar.png

Ésta acción puede provocar dos situaciones:

  • En el caso de sobrecarga de los servidores de Gravatar.com, puede ralentizar la carga del blog y demorar la ejecución de scripts mientras se espera la respuesta del servidor.
  • El e-mail del usuario va codificado en la petición:http://1.gravatar.com/avatar/f944229af6b258c09f105781f66ef3e5y esto no acaba de ser del todo seguro (en este enlace explican el problema de privacidad que supone).

Mi solución ha sido programar un plugin para WordPress (¡el primero!) en PHP, que inhabilita por completo las redirecciones a Gravatar.com, y que añade también una opción para utilizar una imagen cualquiera como avatar por defecto.

Continúa leyendo Default Gravatar Sans, un plugin para WordPress