Firefox 4, qué se cuece

¡Mucho tiempo sin escribir en el blog!

Y vuelvo con una entrada sobre los cambios que se están realizando en Firefox, en concreto para la futura versión 4 (la actual es la rama 3.6).

«Firefox es lento y usa mucha RAM»

Por eso dentro de Mozilla se están haciendo cambios para mejorar ambas cosas. Firefox 4 se abre mucho más rápido (y cuando digo mucho, es del orden de segundos en ordenadores no demasiado nuevos) y se cierra muchísimo más rápido (un cambio sobre la gestión de cookies permitió mejorar el tiempo de cerrado en más del 90%), y esto es debido tanto a los cambios con las cookies, como al uso de nuevas versiones de diferentes códigos que usaba Mozilla (como SQLite).

Aceleración por hardware

¿Lo qué? (ojo, comparación no muy buena) Pues eso, imagínate que tienes un coche, cuya aceleración es de llegar a 100km/h en 10 segundos. Tu motor no da más de sí, es un cuello de botella. Pero… ¿y si usamos algo para acelerarlo? Por ejemplo, ¿óxido nitroso? Ocurriría que igual en vez de en 10 segundos, tardas 5 y encima gastas menos gasolina.

Pues es lo que ocurre con esto, la aceleración de hardware usa las tarjetas gráficas (sí, esas que hace años todos queríamos la última para jugar a los juegos a más resolución, más antialising y más sombras y explosiones detalladas) para renderizar la página. Como las tarjetas gráficas son muy buenas en «crear» imágenes, ¿por qué no usarlas en el navegador? Libera carga al procesador principal y encima lo hace más rápido. Todo beneficios.

Esto está implementado ya en Firefox para Windows, usando Direct2D (una tecnología de DirectX, sí, la de los juegos), y se va a implementar vía OpenGL en Linux y Mac.

JavaScript: Tracemonkey, JaegerMonkey, SpiderMonkey

No, no va de miles de monos escribiendo a la vez alguno de ellos puede escribir en algún momento el Quijote… o sí.

JavaScript, nuestro querido JavaScript. El que hace que algunas páginas tengan unos menúes desplegables increíbles, el que hace que Gmail sea tan rápido y bonito. El que hace que Facebook tenga tanto dinamismo… Las páginas están usando cada vez más y más JavaScript, y de una forma muy muy intensa, lo que hace que cada vez queramos motores de JavaScript más rápidos.

En Firefox 3.6 el motor de JavaScript era TraceMonkey, pero, hay que admitirlo, fue barrido por la «competencia» (V8 de Google Chrome y Nitro de Safari). Ahora se está realizando otro motor, complementario a TraceMonkey y que unido puede mejorar muy sustancialmente el desempeño de Firefox en JavaScript. Es un tema muy técnico y tenéis referencias aquí.

Otras cosas…

Por ejemplo, se han separado los procesos de UI y de renderizado de páginas web, lo que hará que ahora el navegador no se quede congelado si una página falla.

Conclusión: más ligero y rápido.

«Firefox es feo»

Aquí te lo has ganado 😉 Firefox 4 va a cambiar su aspecto completamente. Sí, y digo completamente, atento:

¿qué te parece? Ese es el tema pensado para Windows Vista y Windows 7, pero también están para Mac y Linux.

¡Ey! ¿Has notado más cambios?

Pestañas en la parte superior (tabs-on-top)

Sí, se lo hemos copiado a Google Chrome. ¿Acaso es malo copiar cuando algo es bueno? Las pestañas ahora por defecto estarán situadas por encima de la barra de direcciones, pero se puede cambiar fácilmente haciendo clic derecho en cualquier parte de la barra de herramientas y seleccionando la opción «Pestañas en la parte superior».

App-tabs

Sí, se lo hemos copiado a Chrome. ¿Tengo que repetirlo? Es una fantástica idea para la web de estos días: tener abierta todo el rato una serie de páginas (que son como nuestras aplicaciones en la web) que más usamos: GMail, Twitter, Facebook… sólo mostrando el icono y sin el texto de la pestaña, porque nuestra memoria visual es mejor que la memoria que recuerda escritos y sabemos qué páginas son.

app-tabs.png

Menú Firefox

Ey, cómo te lo sabes. Con la misma idea de Ópera, o el menú de Chrome 6. Esto no es lo que está implementado ni se sabe qué es lo que se va a implementar completamente, pero es un acercamiento a qué es lo que será el botón.

FirefoxMenu.jpg

Gestor de complementos

Además, también hay cambios en el gestor de complementos (el que se abría vía el menú Herramientas > Complementos/Agregados), para que en vez de que salga en una nueva ventana, se abra en una nueva pestaña, por ejemplo…

fx4-complementos.png

Conclusión: más moderno.

«Firefox no es 64-bit»

¿Quién ha dicho eso? ¡Que levante ambas manos! Realmente… ¿Firefox necesitaría ser de 64 bits? ¿Necesitaría tanta memoria RAM que no cabe direccionamiento en 32 bits? Para la mayoría de las cosas no, pero por ejemplo para el vídeo (¿he oído instrucciones específicas de 64 bits para decodificar?) o JavaScript sí es necesario (de hecho, el nuevo motor hablado más arriba requiere instrucciones específicas x64 para funcionar a pleno rendimiento).

Así que Firefox 4 va a ser 32 y 64 bits, en todas las plataformas. Exceptuando que 64bit para Mac sólo funcionará a partir de Leopard (10.5).

Conclusión: más rapidez.

«Firefox no funciona con HTML5 en Youtube»

YouTube en su día usó (y sigue usando) el «estándar» (lo entrecomillo porque no es libre ni abierto, pero sí usado por mucha gente) H264. Y Firefox no lo implementó (ya se discutió sobre esto, pero básicamente porque su implementación no era libre y gratuita y requería pagar licencias anuales de unos 6 millones de dólares). Finalmente, Google (propietario de YouTube) liberó un nuevo formato de vídeo, con una calidad similar a la del cerrado H264 pero totalmente abierto, por lo que Firefox lo va a implementar en esta nueva versión (como ya lo hace Chrome 6, u Opera 10.6).

Así que a partir de ahora, si ves que en cualquier video de YouTube te sale esto en el reproductor

youtube-webm.png

(nota el HTML5 – WEBM) es que estás usando vídeo en formato WebM en HTML5 en Firefox 😉 Sin necesidad de plugins extras como Flash.

Conclusión: no Flash 😉

«Safari tiene unos demos increíbles que Firefox no es capaz de mostrar»

Es probable que hayas visto por ahí demos de HTML5 + CSS3 que funcionan maravillosamente bien en Safari y ni se ven en Firefox. Esto es debido a que CSS3 no está finalizado aún, y todos los navegadores implementan estas características de forma similar pero con nombre diferente. Pongo un ejemplo:

Imagínate que eres un robot, y que tus instrucciones son: «Si encuentras una caja azul, la coges, la abres, ves lo que hay y lo haces».

Por otro lado, a otro robot le dicen: «Si encuentras una caja naranja, la coges, la abres, ves lo que hay y lo haces». Exactamente lo del primero pero cogiendo una caja de distinto color.

Pero las cajas son idénticas en contenido, se abren igual… pero tienen distinto color.

El primer robot no cogerá la caja naranja pero sí la caja azul y lo contrario sucederá con el segundo: cogerá la caja naranja y no la caja azul. Pero… ¿qué pasa cuándo deliberadamente sólo se deja una caja azul y no se deja una naranja? Pues que el primer robot abrirá la caja y «parseará» su contenido (realizando la acción que ponga en su interior), mientras que el segundo se quedará de brazos cruzados esperando a «su» caja naranja.

Es lo que ocurre en algunas demos: -moz-muévete sería la propiedad en Firefox y -webkit-muévete sería la propiedad en Safari y Chrome. Si se ponen las dos propiedades en una página, perfecto, ambos navegadores se moverán, pero si sólo se pone -webkit-muévete sólo Safari y Chrome se moverán, mientras que Firefox no.

Obviamente, esta es una limitación temporal, en cuanto el estándar esté completo y terminado, los navegadores tienen que quitar sus sufijos («-moz» o «-webkit») para que la web sea estándar 😉

Por cierto, una vez finalizado y con nuestro ejemplo, habría una «caja» sin más, que todos los navegadores cogerían y la usarían, sin diferenciar por color (racista, que los navegadores son unos racistas).

Otro por cierto, mira este vídeo sobre tecnologías web a ver qué opinas:

«Firefox copia a Chrome»

Y Chrome copió el código de los marcadores de Firefox, y Firefox el de los plugins fuera de proceso a Chrome, y Firefox copió de Ópera las pestañas, e Internet Explorer copia la idea de motor de JavaScript, y Safari usa WebKit que fue una copia (fork) de KHTML de KDE… Por suerte las patentes de software no funcionan en todo el mundo, ni todo está patentado 😉

Conclusión: libertad creativa.

«Chrome mola, Firefox sucks»

Para gustos, los colores o navegadores 😉 Sólo te pediría que probaras Firefox 4 y que cualquier cosa que no te guste la pongas en los comentarios o en el botón «Opinión» en la parte superior derecha de las betas de Firefox, intentaré responder en la medida de lo posible 😉

Conclusión: abre tu mente y critica de forma constructiva.

Final

Como podéis ver, Firefox 4 va a ser un cambio muy radical en cuanto a lo que estábamos acostumbrados a ver. Nueva interfaz, mayor velocidad, mejor gestión de complementos, más seguro respecto a plugins y muchísimas más cosas que me he dejado en el tintero que intentaré escribir en otro post… si no se me olvida.

Etiqueta <video> en IE9, WebKit (Chrome y Safari), Opera y Firefox

Recapitulando:

  • Google Chrome soporta H264 y Theora
  • Safari soporta sólo H264
  • IE9 (futuro) soportará H264
  • Opera soporta sólo Theora
  • Firefox sólo Theora
1915AF1F-BB83-456C-B91C-2DE698A4D40C.jpg

Como vemos, los principales navegadores usan H264, al menos los que dan más del 75% de cuota total (si incluimos al futuro IE9, claro). La cuestión es que tenemos:

  • Theora: Opera y Firefox (y Google Chrome junto a H264)
  • H264: Safari, Chrome e Internet Explorer 9

Potencia económica por estándares:

  • Theora: Mozilla y Opera (junto a comunidad libre y Wikimedia principalmente)
  • H264: Patentado y usado por Apple, Google y Microsoft

Este es el primer argumento: potencial económico (y de imagen) de los navegadores que utilizan H264 frente a la «marginalidad» económica de los que no lo quieren utilizar, porque… no se puede negar que el poder de sólo uno de los contendientes del H264 es infinitamente mayor que cualquiera de los que pujan por Theora.

Y es que Theora es actualmente inferior técnicamente a bajos bitrates de codificación de video que H264, por lo que para muchos sitios es inusable, al contrario que H264. Además, a pesar de que H264 tiene patentes, la mayoría del contenido en vídeo que hay en la web (YouTube) está ya en H264 (servido en este formato para el iPhone y todos los terminales Android) y muchos de los servicios Flash codifican el vídeo que sirven en este formato.

Luego, podemos decir que Mozilla no se va a bajar del carro con el H264, por simple ética, sería traicionar a su idea de web abierta. Y me parece muy lógico. El problema vendrá cuando veamos IE9 usado mayoritariamente, Chrome con alta cuota y Safari (y Mac) con un número alto (y significante) de usuarios.

En ese caso los únicos perjudicados serán los usuarios de Mozilla que no podrán usar el «estándar» que se ha ido formando con H264 impuesto por los diferentes vendedores de navegadores.

Y sólo nos quedaría esperar a que haya un estándar de vídeo libre que mejore o equipare a H264, pero para entonces, ya será tarde…

Y que comience la enésima discusión…

Cómo acelerar Firefox fácilmente limpiando las bases de datos*

*aceptemos fácilmente el abrir una consola de comandos para configurarlo y otra cada vez que lo queramos hacer.

FX3.6_Logo+Wordmark_Ver.png

Bueno, sabemos que el nuevo Firefox 3.6 (si no lo tienes ya estás tardando en descargarlo) tiene una opción interna para hacer una limpieza de sus bases de datos de forma periódica (esto mejora el tiempo de arranque y de respuesta de la barra de direcciones, así como el espacio ocupado en disco), pero realmente sólo lo hace al archivo places.sqlite (el que tiene todas las direcciones de páginas visitadas… y muchas cosas más), pero realmente los perfiles en Firefox tienen muchos más archivos de bases de datos .sqlite, como por ejemplo:

webappsstore
urlcassifier3
signons
search
permissions
formhistory
downloads
cookies
content-prefs

y el ya mencionado places.sqlite.

Todos ocupan su respectivo espacio en el disco, normalmente los que más son places.sqlite (explicado anteriormente) y urlclassifier3.sqlite (contiene páginas de malware y atacantes, que se bloquean para no poder navegar por ellas).

Así que si queréis que se limpie cuando vosotros queráis, sólo tenéis que hacer lo siguiente en MACOS X (explico Linux más abajo)

  1. Abre una consola (Terminal). Escribe nano bin/limpiarFx.sh
  2. En lo que se abre, escribe:

    cd ~/Library/Application Support/Firefox/Profiles

    for i in */*.sqlite; do echo "VACUUM;" | time sqlite3 $i ; done

    (elimina el posible salto de línea, sólo puede haber dos líneas, una que empieza en cd… y otra que empieza en el for

  3. Cierra el archivo con Control-x y guárdalo (con la S o con la Y).
  4. Ahora escribe: nano .profile y en el archivo que se abre, baja hasta el final del mismo (con las teclas de dirección) y añade…

    export PATH=~/bin:$PATH

    Y ciérralo como anteriormente con un Control-x y guardando los cambios con S o Y.

  5. Ahora escribe chmod +x ~/bin/limpiarFx.sh

Ahora cada vez que quieras limpiar Firefox tienes que tenerlo cerrado (si no, no se podrá limpiar correctamente), abrir una consola de comandos y escribir:

limpiarFx.sh

¡Y listo! Tu Firefox se abrirá mucho más rápido.

Para Linux, simplemente cambia en el punto 2, la línea

cd ~/Library/Application Support/Firefox/Profiles

por

cd ~/.mozilla/firefox/

vacuum-example.png