Internet explorer 7

Ha aparecido ya el Internet Explorer 7, se descargará por el Windows Update o aquí.

Algunas funcionalidades ¿nuevas?:
Navegación por pestañas.
Lector de feeds RSS.
Cuadro de búsqueda instantánea.
Una herramienta para impresión mejorada
Y al parecer se podrán crear plugins para el navegador.

Esperemos que a nivel de seguridad y de soporte de estándares haya mejorado mucho, que tiempo han tenido...

ResourceBundle para leer un fichero .properties en un paquete de la aplicación

Intentando leer un fichero .properties donde quería guardar algunas configuraciones, para tenerlas separadas del código.

Estuve googleando bastante hasta que encontré en este foro de javahispano (sí, lo sé, debería haber empezado por ahí). Utilizando la clase ResourceBundle que está en java.util

El ResourceBundle lee dentro de la estructura de paquetes, sino recuerdo mal leyendo código alguna vez, lo he visto con las clases File y Properties y así es BASTANTE más sencillo.

Y el código es el siguiente:


//El archivo .properties se llama conf.properties
//Está en el paquete co.paquete
ResourceBundle rb = ResourceBundle.getBundle("co.paquete.conf");//Sin la extensión .properties
//te devuelve rb nulo si no existe.
//Para obtener una clave se utiliza asi.
String valor = rb.getString("clave");

Si estuviera en la raíz sería simplemente:


ResourceBundle rb = ResourceBundle.getBundle("conf");

Conocer el último id insertado de un campo serial con PostgreSQL y adodb

Me he encontrado con un problema respecto al tipo de datos serial de PostgreSQl utilizando el framework de acceso a datos adodb para php.

El método Insert_ID() no funciona como esperaba con el tipo de datos serial, al haber utilizado este framework siempre con Mysql y para los id's suelo utilizar tipos int con auto_increment.
Así el método siempre devuelve el último id insertado.

El caso es que al final, buscando en la documentación de adodb en español he encontrado el método GenID($seqName = 'adodbseq',$startID=1), que lo que hace es generar un número de secuencia, y si no existe lo creará.

$seqName, es el nombre que tiene la secuencia del tipo serial.
$startID=1, es el primer número de la secuencia si la secuencia no existe y la debe crear, por defecto 1.

Según la documentación:
Funciona para interbase, mysql, postgresql, oci8, oci8po, mssql, y los drivers basados en ODBC.

Uuuupss actualización:

Se me había olvidado... GenId() genera el siguiente número de la secuencia, y no el último número de la secuencia insertado.

Para que su función sea como la de Insert_ID():

GenId(seqName)-1

Test de rendimiento javascript para navegadores

Vía el blog de Javier Gutiérrez (Guti), he encontrado un test de rendimiento de Javascript para navegadores.

Lo he probado con Firefox 1.5 y Iexplorer 6.0, y estos han sido los resultados que me ha dado al pasar el test:


Firefox:

Try/Catch with errors 188
Layer movement 296
Random number engine 282
Math engine 328
DOM speed 266
Array functions 156
String functions 78
Ajax declaration 204
Total Duration 1798ms


Iexplorer:

Try/Catch with errors 47
Layer movement 500
Random number engine 78
Math engine 172
DOM speed 391
Array functions 31
String functions 31
Ajax declaration 344
Total Duration 1594ms

En este test, Explorer gana por bastante diferencia en todas las pruebas excepto en el Layer movement, pero al parecer en este test Opera les gana con mucha diferencia como podéis ver en la misma web del test, sería interesante conocer datos de otros como Safari o Konqueror.

Actualización 24/08/2006:

Konqueror 3.5.2: (Sobre Kubuntu)

Try/Catch with errors 37
Layer movement 295
Random number engine 383
Math engine 447
DOM speed 116
Array functions 92
String functions 62
Ajax declaration 225
Total Duration 1657ms

Curioso el Konqueror... esto es en la primera ejecución pero si lo vuelves a ejecutar varias veces, a ratos bajan los tiempos muchísimo (unos 700ms en total).


Otra ejecución con Konqueror:

Try/Catch with errors 17
Layer movement 127
Random number engine 163
Math engine 191
DOM speed 50
Array functions 39
String functions 27
Ajax declaration 98
Total Duration 712ms