Introducción a StAX para Java

Para aquellos que desarrollamos con XML y Java, a veces nos surge un problema a la hora de tratar con XML. Si usamos DOM nos encontramos con que es lento, y si usamos SAX nos encontramos con que no es todo lo completo que queremos.
Algo intermedio entre ambos es StAX (Streaming API for XML), el cual usa tecnología Pull Parshing, para poder tratar los documentos XML de forma más rápida, con menor consumo de recursos y pudiendo saltar adelante/atrás y siendo igual para lectura y escritura.
BEA fue el primero en desarrollar unas librerías para usar StAX con Java, dando un paso importante en el tratamiento de este tipo de documentos. Para los interesados en desarrollar usando StAX os recomiendo esta introducción.
StAX’ing up XML, Part 1: An introduction to Streaming API for XML (StAX)
Vía / Digg

Tutoriales de Javascript

Está claro que tutoriales hay muchos, pero no todos son iguales, ni están enfocados para un mismo público. En este caso, yo creo que se trata de tutoriales sencillos pensados para empezar de cero, para quien no tenga ningún conocimiento de Javascript, incluso diría que para quienes el HTML es solo una forma de mostrar texto.
Empieza por lo más básico, luego nos introduce los objetos, funciones, tipos básicos, arrays, formularios y validaciones, trabajar con frames. Lo dicho, para empezar creo que es muy adecuado.
JavaScript Cake: Tutorials and Scripts
Vía / dzone

links for 2006-11-30

|

Incluye tus vídeos en tu web

si ya hace tiempo explicábamos cómo subir un vídeo en formato FLV a tu web y verlo mediante un visor incluido en la página web, ahora se trata de un artículo donde explican cómo hacer, de forma muy detallada, para casi todos los formatos de vídeo más comerciales, mostrar el vídeo en formato Flash (FLV).
En este caso se centran en los formatos de QuickTime, Windows Media y Abode Flash (aunque usando herramientas comerciales y no opensource como indicamos en el artículo anterior). Primero nos indican que debemos obtener la información del vídeo, luego codificarla y por último mostrarla.
Yo me sigo quedando con la alternativa opensource, pero es indiscutible que la explicación que nos ofrecen es de lo más completa.
The Rise of Flash Video, Part 3: Tackle your own project with this step-by-step primer

Identificar queries lentas en MySQL

Algo muy importante a la hora de desarrollar un proyecto es identificar los puntos que ralentizan la devolución de la página web. Algo que suele provocar esta demora son las sentencias SQL lentas.

En el artículo al que hacemos referencia, explica paso a paso cómo encontrar las queries más lentas. Para ello primero se comprueba si se muestran los logs de sentencias lentas y si no es así, las modificaciones que hay que realizar para que se muestren. Después nos explican el significado de los logs y una utilidad para tratarlos.

Estos consejos solo son válidos para Unix, los usuarios de Windows deberán usar los logs de la aplicación para detectar el punto donde tarda en ejecutarse y luego mediante la sentencia EXPLAIN
estudiar la ejecución de las consultas.

Identifying MySQL slow queries

Vía / dzone

links for 2006-11-29

Tail for Win32: utilidad para seguir los logs

Hablando del post anterior sobre cómo escribir en ficheros en XUL y la posibilidad de usarlo para logs, he pensado que tampoco estaría mal hablar del comando tail, el cual muestra el final de un archivo, y si se le añade la opcion -f, dejará abierto el archivo e irá mostrando las nuevas líneas que se vayan añadiendo al archivo.
Quienes sean usuarios de Unix, Linux y creo que de Mac, conocerán el uso de este comando y la ayuda que puede prestarnos a la hora de ver logs. Para los usuarios de Windows existen programas que imitan al tail y uno de ellos es Tail for Win32, el cual a parte de leer varios ficheros simultáneamente, permite crear filtros de palabras y resaltarlas, enviar e-mails con notificaciones, añadir plugins y permitir ficheros de cualquier tamaño.
tail.png

Tail for Win32

|

Escribir en ficheros mediante XUL

Leyendo la entrada de aNieto2K sobre logs en Javascript, me he acordado de que hace tiempo que quiero comentar cómo escribir en ficheros mediante XUL en extensiones para Firefox.

Aunque la principal función puede ser la escritura de opciones o ficheros de configuración o guardar datos, el motivo por el que yo lo busqué era para hacerme unos logs que me faciliten el trabajo del desarrollo de una extensión para Firefox (de aquí la asociación con el post de aNieto2K).

var savefile = "c:\\displaynotes.log.txt";
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to save file was denied.");
}
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( savefile );
if ( file.exists() == false ) {
alert( "Creating file... " );
file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
.createInstance( Components.interfaces.nsIFileOutputStream );
// Suponemos que existe una variable con el texto llamada content
outputStream.init( file, 0x04 | 0x10, 420, 0 );
var result = outputStream.write( content, content.length );
outputStream.close();

En el init del outputStream nos encontramos con una serie de flags para abrir el fichero que se usan como máscara. Estos flags tienen los siguientes posibles valores:

RDONLY         0x01
PR_WRONLY      0x02
PR_RDWR        0x04
PR_CREATE_FILE 0x08
PR_APPEND      0x10
PR_TRUNCATE    0x20
PR_SYNC        0x40
PR_EXCL        0x80

A parte, existe un parámetro para indicar el modo del fichero, válido únicamente para entornos Unix:

00400   Read by owner.
00200   Write by owner.
00100   Execute (search if a directory) by owner.
00040   Read by group.
00020   Write by group.
00010   Execute by group.
00004   Read by others.
00002   Write by others
00001   Execute by others.

No recuerdo de dónde saqué esta información, por lo que no os puedo poner la referencia.

links for 2006-11-28

5 razones por las que feeds RSS no son populares

En el artículo dicen que los RSS no son populares, yo no he hecho un estudio, ni soy un experto en la materia, pero creo que debo darles la razón, porque no he conocido a ningún usuario de Internet “normal” que los conozca. ¿Posibles motivos?:

  • RSS aún se desconocen: la mayoría de los usuarios de internet no conoce los feeds RSS. Si trabajas en algo referente a la informática te llevarás una sorpresa al darte cuenta de que son desconocido para mucha gente con la que trabajas.
  • Los feeds fallan con frecuencia: alguna que otra vez los feeds fallan y los autores no lo comprueban con la suficiente frecuencia para darse cuenta de ello.
  • Feeds no válidos: una de las causas que hacen que fallen los feeds es que son XML que tienen que ser válidos, y muchas veces se crean incorrectamente por tema de mayúsculas/minúsculas o espacios.
  • Feeds eliminados: aunque la web sea la misma, puede que la url de los feeds haya cambiado. También es típico el caso de pasar de un servicio de blogs a un dominio propio y encontrarte con que tienes la url anterior.
  • Sistema de notificación: que el dueño de la aplicación web reciba un aviso de que los feeds están mal, es algo que estaría muy bien tener de alguno de los servidores de feeds.

Actualización: SigT hace un gran análisis del artículo que es imprescindible leer.

5 Reasons Why RSS Feeds are Not Popular