Mozilla Prism, «site specific browsers» ad hoc

La disyuntiva es de las que está marcando 2008: ¿aplicaciones web como hasta ahora o aplicaciones de escritorio (o para el móvil) conectadas? Parece claro, al menos de momento, que las modas actuales indican que la aplicación de escritorio «de toda la vida» ha muerto. Igual resucita con el próximo cambio de paradigma, pero parece que eso es algo que no va suceder a corto o medio plazo. Los datos viven «in the cloud» y una parte de la potencia de cálculo también.

Las ventajas de las aplicaciones web son bien sabidas: siempre corremos la versión más actualizada del software, no hay instalación (si la velocidad de nuestra conexión a internet es suficiente, que si no es como si instalásemos cada vez) y no importa en qué sistema operativo estemos: todos tienen un navegador lo suficientemente sofisticado como para actuar de máquina virtual. Ese último punto, además, es una bendición para el desarrollador, que programa una sola vez para todas las plataformas, gracias a las bibliotecas y frameworks que corren por ahí.

Las aplicaciones conectadas, por su parte permiten una riqueza en la ‘user experience’ y en la interacción con el sistema operativo que la capa del navegador limita muy seriamente. A cambio, cuanta más ‘lógica de programación’ viva en el cliente más nos tenemos que preocupar de múltiples versiones y de mantener una API que hable con todas ellas y, si queremos correr sobre múltiples sistemas operativos no nos queda (o no nos quedaba, mejor) más opción que, en el mejor de los casos, compilar múltiples veces…

El año pasado comenzamos a ver dos intentos de solución al problema. Por un lado, Adobe anunciaba Air, que permitía aprovechar las habilidades adquiridas en el desarrollo de aplicaciones AJAX/Flash/Flex y añadía unas cuantas APIs para hablar con el escritorio y un proceso de empaquetado que, vía máquina virtual, nos permitía hacernos un hueco en el escritorio (de momento Windows y MacOS, en breve Linux).

Por el otro, la Mozilla Foundation lanzaba a través de Mozilla Labs Prism, que toma un camino similar: quitemos al navegador todo lo que sobra para correr aplicaciones (barras de menú y navegación, para comenzar) y añadámosle las cosas que le faltan si es necesario (un motor de base de datos, por ejemplo) y obtendremos el mismo resultado. Más detalles aquí.

El viernes se anunciaba nueva versión de Prism (vía), con una novedad interesante: extensión para Firefox (solo funciona con la beta 3 de Firefox 3 y versiones posteriores) que permite a cualquier usuario empaquetar cualquier aplicación web para ejecutarla en el escritorio. Así, por ejemplo, podemos empaquetar el correo de GMail o el calendario de Airset:

Captura de pantalla de la aplicación Prism GMail

No vamos a conseguir funcionalidades que no estuviesen en la aplicación web original (que podrían añadirse, eso sí, mediante scripting y, como apuntan en Ars Technicacomo apuntan en Ars Technica, con los mismos privilegios que una extensión y pudiendo, por tanto, acceder directamente al sistema de archivos y otras actividades normalmente no disponibles desde una aplicación web), pero a veces va bien sacar determinadas aplicaciones del navegador.

El administrador de tareas muestra dos instancias de Firefox. La segunda, que consume 120 megas, es el navegador. La primera, que se queda en cincuenta y tantos, es la aplicación de GMail

De momento faltaría que las aplicaciones se identificasen mejor, al menos en Windows, que eso de tener dos procesos corriendo con el mismo nombre no es exactamente la mejor política…

Detección automática de buscadores en Firefox 3

La caja de búsqueda de Firefox 3 se da cuenta de que un sitio ofrece un formulario de búsqueda y nos permite añadirlo a los buscadores del navegador

Experimento para usuarios de la beta 3 de Firefox 3. Vayánse a The Hype Machine. O a la Wikipedia en español. Fíjense en el cuadro de búsqueda del navegador: ¿ven cómo le sale un puntito azul? Significa que Firefox se ha dado cuenta de que en la página hay un cuadro de búsqueda y nos da, automáticamente, la opción de añadirlo a su arsenal de buscadores.

A pesar de que es muy práctico, no funciona universalmente. Falla, por ejemplo, en la página de la RAE… y en este blog. ¿Alguien sabe cómo conseguir que el cuadro de búsqueda sea autodescubrible?

La beta de Firefox…

El administrador de tareas de Windows avisando que la beta de Firefox se está comiendo 400 megas de RAM

En defensa de Firefox diremos que justo después de hacer esa captura he cerrado una pestaña con un Flash bastante potente y el consumo de memoria ha bajado a unos razonabilísimos 75 megas. Y ahora, como una hora más tarde de intensa navegacion multipestaña, está en unos 135, que duelen pero no demasiado…

Y ya puestos, otra cosilla. Esto es una beta. Que existe para que un grupo numeroso de usuarios atrevidos, y conscientes de que es una beta, comprueben si se rompen cosas. Se me ocurre que no estaría mal que no avisase a las extensiones de que se trata de la versión 3, y así en vez de descativarse automáticamente, intentarían correr y veríamos si son o no compatibles con la nueva versión, ¿no?

Firefox+QuickTime == Agujero de seguridad

Disculpen si la entrada no me queda muy lucida (esto es, si me queda aún peor que de costumbre) pero es que aún estoy intentando cerrar la boca, que me acabo de quedar de piedra ante el agujero de seguridad más curioso que haya visto nunca. Y es que en una arquitectura de plug-ins cuanta más potencia (y el plug-in de QuickTime y Firefox son muy potentes juntos) más riesgo. Resulta que si el plug-in QuickTime abre un archivo cuya extensión reconoce (mp3, por ejemplo) y encuentra dentro código del estilo de

<?xml version="1.0">
<?quicktime type="application/x-quicktime-media-link"?>
<embed src="a.mp3" autoplay="true" qtnext="-chrome
javascript:file=Components.classes['@mozilla.org/file/local;1'].
createInstance(Components.interfaces.nsILocalFile);
file.initWithPath('c:\\windows\\system32\\calc.exe');
process=Components.classes['@mozilla.org/process/util;1'].
createInstance(Components.interfaces.nsIProcess);process.init(file);
process.run(true,[],0);void(0);"/>

(y se está ejecutando sobre Windows, y el archivo calc.exe está donde suele estar, se nos lanzará la calculadora de Windows. El potencial para hacer cosas más peligrosas es notable. Pero más que miedo, qué le vamos a hacer, lo que me provoca es sorpresa.

Sigo con la boca abierta…

Fuente, y más ejemplos y detalles: 0DAY: QuickTime pwns Firefox.

Firefox y el foco de las pestañas

Ojo, pataleta.

Firefox. Tres o cuatro pestañas abiertas. Control – tabulador para pasar a la siguiente. Avanzar página… y no pasa nada. La pantalla se ha desplazado en una pestaña que ya no veo. Control tabulador pasa saltar a Google Reader. R para refrescar la lista de canales. Y no pasa nada porque el foco está en una pestaña que ya no estoy viendo. Igual soy un poco puñetero, pero me pone de los nervios (sobre todo si estoy con el portátil y sin ratón). ¿Alguien sabe de alguna solución?