Imágenes que no dicen onLoad

JavaScript y la etiqueta <img> siempre han sido buenos amigos, desde aquellos días que  gracias a un pequeño script se precargaban todas las imágenes de una página, como por ejemplo los rollovers de ciertos botones.

var preload_imgs = ["image1.jpg", "image2.gif", "image3.jpg"];
for(var i=0; i<preload_imgs.length; i++)
{
	var img = new Image();
	img.src = preload_imgs[i];
}

¿Pero que ocurre cuando se crean o se tratan imágenes dinámicamente, y se quiere controlar el preciso momento en que están son (des)cargadas? Continúa leyendo Imágenes que no dicen onLoad

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é