Firefox 3 permitirá trabajar con GMail offline

Durante estos últimos meses se están ultimando los detalles de lo que será el nuevo Firefox 3 versión final. Entre las novedades se encuentra el desarrollo de nuevas funciones en el API que permitirán a las aplicaciones web que lo deseen poder funcionar offline (sin conexión a Internet). Un ejemplo especialmente útil y práctico sería por ejemplo el poder indicar a nuestra cuenta GMail que en los próximos minutos vamos a coger un avión y que por tanto vamos a estar sin conexión durante unas cuantas horas. Sentados, con el portátil y sin conexión. ¿Podríamos pulsar algún botoncito para decirle a GMail, además, que sea tan amable de descargar automáticamente los nuevos mensajes de tal forma que estén disponibles offline? Y ya puestos, ¿podríamos leer y responder esos mensajes, borrarloso etiquetarlos y cuando volviéramos a tener conexión, sincronizar el estado? Sí a todo. Con el nuevo API de trabajo offline de Firefox 3.

Ya existen algunas pruebas de concepto. Incluso Zimbra, el gestor de trabajo en grupo (correo electrónico, agenda, documentos) que está haciendo eclipsar a Exchange, ya dispone de un cliente offline aprovechando esa tecnología.

Las características Firefox usadas para conseguir el soporte de aplicaciones offline son:

  • Una implementación de la especificación WHATWG : DOM Storage (para almacenar en local emails e información de carpetas)

  • Offline Cache. Un parche disponible para Firefox que añade una zona de cache específicamente para dar soporte a aplicaciones web que quieran poder trabajar offline (de tal forma que les permita almacenar datos como imágenes, páginas HTML, etc). Los elementos son cargados en la cache usando una etiqueta especial:

  • Protocolo para dar soporte a ficheros JAR . Firefox acepta URLs que hagan uso del protocolo JAR. Esto permite guardar múltiples objetos en un único fichero .jar y que el navegador pueda referenciar de forma inequívoca aquel recurso que necesite en cada momento.

Por ejemplo, para referenciar el fichero /core/AjxCore.js en el fichero ajax.jar, la URL sería: jar:/zimbra/js/ajax.jar!/core/AjxCore.js

* Eventos Offline. El navegador dispondrá de eventos  "offline" y "online" que serán lanzados cuando el usuario elija trabajar sin conexión a través del menú o cuando se pierda la conexión a Internet. 

Macros, CustomShapes y OOo 2.2

Tengo un problema a la hora de importar algunas presentaciones de PowerPoint en Impress. Muchos de los textos acaban con un tamaño 4 o 6 puntos superior al original. A veces se puede arreglar simplemente cambiando el estilo, pero otras veces, los textos tienen distintos estilos y no es posible. Este fin de semana he estado peleándome con una macro en Impress que me permita rebajar en 2 pixels cada texto de una diapositiva Impress. Estará integrada con la barra de herramientas, para que sea fácilmente accesible. Tras varias horas de debugger, no he conseguido acceder al texto de algunos cuadros (los que el usuario puede crear a su gusto y que OOo denomina CustomShapes). He estado rebuscando en OOoForums.org una forma de resolver ese problema que parecía trivial y no he encontrado nada. Finalmente, en la lista api.openoffice.org he encontrado la causa de mi problema: UN BUG en el API de la versión 2.2 de OOo. En concreto, está documentado en el bugzilla, y se supone corregido en la versión 2.3: Contrary to ordinary shapes, the API does not give access to the text of a CustomShape. You cannot use .getText() or .getString() because interfaces com.sun.star.XText and com.sun.star.XTextRange are missing. ....how to verify.. create new impress document with one slide and add only a single customshape to it. add text to that custom shape. .... create the following basic macro for the document and execute it .... Sub Main xDoc = thiscomponent xPage = xDoc.getDrawPages.getByIndex(0) xObj = xPage.getByIndex(0) print xObj.getString() End

MD5 no es efectivo para la firma de aplicaciones

Leo en Slashdot: Marc Stevens, Arjen K. Lenstra, y Benne de Weger han publicado un paper bajo el título ‘Vulnerability of software integrity and code signing applications to chosen-prefix collisions for MD5’. Describe un ataque que puede ser reproducido contra el algoritmo MD5 para falsificar resúmenes criptográficos generados por el mismo. Los investigadores en sus ejemplos parte de dos ficheros ejecutables simples para Windows: HelloWorld.exe y GoodbyeWorld.exe. El ataque consiste en añadir un prefijo que haga que el valor md5() de ambos ejecutables (con código distinto) sea idéntico. Los investigadores advierten no obstante de que para poder lanzar este ataque basado en añadir prefijos a un fichero para que genere el mismo valor md5 que otro fichero distinto es necesario, lógicamente, tener acceso al código antes de que éste sea firmado (o pasado por md5).

Referencias cruzadas en OpenOffice

Escribimos un texto en OOo Writer que consta de varios capítulos. En uno de esos capítulos queremos hacer referencia a otro. Es decir, queremos insertar una referencia cruzada, de tal forma que al pinchar en dicha referencia, el lector salte directamente al capítulo referenciado. Incluso nos podría interesar escribir algo como: «si quieres saber más sobre esto, no te olvides de revisar el capítulo X en la página Y». El capítulo X es una referencia (un enlace interno en el documento) y la página Y es dinámica, es decir, queremos que si la página en la que hemos escrito el capítulo X cambia (porque hemos añadido por delante una nueva página, por ejemplo), el número Y se actualice automáticamente. ¿Cómo conseguir ese efecto en OpenOffice? Muy fácil, sólo has de seguir las instrucciones de este vídeo tutorial sobre referencias cruzadas en OOo.

La FSF quiere soporte completo de PDF en C

gnupdf-wiki.pngLa FSF quiere implementar una librería que dé soporte al formato PDF. Otra más. No entiendo del todo este último movimiento de la FSF, programar otra librería más de soporte al formato PDF. La razón aducida para no reutilizar poppler (biblioteca base usada por Evince y oKular) estriba básicamente en que poppler está programado en C++ y la FSF quiere programar la librería en C (razones de portabilidad y facilidad de reutilización de la librería por otras aplicaciones GNU también programadas en C,dicen). Como ejemplo de problema de portabilidad indican que si no se hace en C, es difícil que la librería sea utilizada en dispositivos empotrados. Analizan también por qué no quieren reutilizar Ghostscript como base (demasiado orientada al soporte PS y complejo código para modificar). MuPDF tampoco les convence. Así que… van a crear otra librería más de soporte al formato PDF