Ir al contenido

Blog

Historias

Otra extensión para Firefox: Taboo

Cada cierto tiempo me gusta mencionar algunas extensiones que hacen mejor mi experiencia de navegador y esta vez le toca a una que acabo de instalar estos días: Taboo.

Se trata de una especie de gestor de marcadores pero que muestra unas pequeñas capturas y permite navegar por las fechas. La diferencia con los marcadores es que está pensado para usar y tirar, ya que agregar un enlace es cuestión de hacer click en el icono adecuado y el borrado está a un click también Ya ha empezado a utilizarlo para guardar enlaces para leer en el futuro.

Así es Taboo

Personalmente incluiría a Taboo en la misma categoría que Scrapbook, un gestor ‘offline’ de favoritos que permite capturar, editar y ordenar páginas y sitios web.

Etiquetado

Prism, acercando la web al escritorio

Desde hace algunas semanas estoy utilizando Prism, uno de los proyectos de Mozilla con el objetivo de trabajar de una forma distinta con las aplicaciones web. Se trata de una sencilla aplicación que ejecuta un navegador empotrado, con las características de que se trata de una versión muy reducida ya que no tiene los controles habituales (ni barra de dirección, ni botón atrás/alante).

Prism intenta satisfacer a todas aquellas personas que utilizan aplicaciones web con frecuencia y permite integrarlas de forma que parezcan una aplicación web. En un futuro quizás ofrezcan más funcionalidades como archivo de datos local, posibilidades de trabajo sin conexión o uso de componentes de escritorio, pero por ahora es una aplicación bastante sencilla.

El uso que le doy principalmente es separar alguna aplicación web del resto de la navegación y trabajo que pueda hacer en el navegador. De esta forma consigo que en caso de malfuncionamiento del navegador (nada excepcional hoy en día) puedo reiniciar o colgar el navegador con la tranquilidad de seguir teniendo la aplicación web corriendo en otro sitio.

Además ahora es más fácil instalarlo ya que en la reciente Ubuntu 8.04 está el paquete Prism (e incluye otros como Google Analytics, Twitter y más).

Etiquetado ,

¿Se merecen los ciegos más esfuerzo?

En Slashdot publican un artículo titulado “Do the Blind Deserve More Effort on the Web?” en el que se plantean los problemas que tienen las personas con problemas de visión para usar la web. Desgraciadamente parece ser que la Web 2.0 no le da importancia a la accesibilidad, una gran mayoría de sitios se usa AJAX sin ofrecer una alternativa y Flash sigue teniendo gran terreno (sobre todo en el vídeo, sin ofrecer subtítulos ni transcripciones).

No voy a pretender dar lecciones de nada a nadie, ya que a pesar de mi interés por la accesibilidad todavía no he conseguido que la accesibilidad forme parte de mi proceso de trabajo cuando lo hago en la web, y realmente es complicado, pero quizás es bueno preguntarse ¿estamos haciendo lo suficiente?.

Etiquetado

Jeremy Zawodny quiere probar Vim

Acabo de leer que Jeremy Zawodny quiere volver a probar Vim, y pregunta por consejos para volver a retomarlo. Para un usuario de vim convencido como yo es agradable leer esto en una época en la que tanta gente pasa a editores como TextMate.

Etiquetado

Libros de algoritmia y estructuras de datos

En Reddit se preguntan sobre libros de estructuras de datos y algoritmos y en las respuestas podemos encontrar varios enlaces a muchas obras, algunas más conocidas otras menos pero desde luego es algo interesante. Por supuesto mencionan The Art of computer programming de Knuth y enlazan a una serie de libros muy interesantes: Data Structures and Algorithms with Object-Oriented Design Patterns in Python, que además tiene versiones para C++, Java, C#, Ruby, Lua, Perl, PHP.

Etiquetado , ,

Piwik: estadísticas web 2.0

A través de WebAppers he descubierto Piwik, un sistema de estadísticas de visitas. Está escrito en PHP (necesita PHP 5.1) y tiene una licencia GPL, y entre sus funcionalidades hay una API y la posibilidad de desarrollar plugins para él. Todavía está en un estado temprano de desarrollo, pero como puede verse en la demo resulta bastante prometedor.

Todavía tengo que mirarlo en detenimiento, aún no he echado ni un primer vistazo, pero parece tener un funcionamiento similar al de Google Analyticis y utilizar un código Javascript remoto en vez de analizar los logs como otras herramientas. Por cierto, hace no mucho hablé en Barrapunto sobre el tema de las herramientas para estadísticas de visita y me ha parecido curioso descubrir ahora aplicación que parece ajustarse tanto a lo que preguntaba.

Etiquetado , ,

Presupuestos, dinero y PYMES

Vía Slashdot encuentro “Establishing an IT Budget for a Small Business?” donde se plantea cómo debe calcularse y presentarse el presupuesto en tecnologías para una pequeña empresa.

Relacionado con pequeñas empresas he recordado algunos artículos que pueden ser de cierto interés publicados en Barrapunto, especialmente si nos pasa por la cabeza trabajar como autónomo o iniciar nuestro proyecto empresarial.

Y no es de Barrapunto pero también interesante el artículo de Joel Spolsky sobre cómo poner precio. Aparte, para reflexionar un poco sobre distintas formas de ganar dinero, también está “Guía de modelos de negocio con el software libre“.

Etiquetado , ,

Odiad UTF-8

Una breve historia

Podemos remontarnos a ASCII-7, una tabla de caracteres de 7 bits que representaba los carácteres más usuales del mundo anglosajón. Sin embargo ¿qué pasaba con los carácteres extranjeros? Para solucionarlo se creó ASCII extendido, esta vez con 8 bits y 256 carácteres disponibles, pero aún así no era suficiente para contentar a todo el mundo, porque entre tildes, letras raras, signos y demás no podiamos meter todos los caracteres no-ingleses que necesitabamos en 128 carácteres que eran lo que nos dejaba ASCII extendido. Así que la solución fué crear distintos ASCII
extendidos, las famosas iso-8859. Cada tabla de carácteres iso-8859 especificaba distintos carácteres, así cada país podía utilizar el juego de carácteres que mejor se adaptara a su grafía. En el caso español usábamos iso-8859-1 que incluía la mayoría de carácteres europeos occidentales.

Problema resuelto ¿no? Pues puede que sí, al menos parcialmente. A menos que necesites escribir un texto con ñ (iso-8859-1) y un carácter arábico (iso-8859-6) pero tampoco es para tanto, vamos digo yo. Aunque ahora que lo pienso, si alguien me envía un texto con carácteres extendidos ¿cómo se que tabla está usando? Vaya, no puedo descubrirlo… pero tampoco es tan grave, ya lo resolverán las aplicaciones: los servidores web envían la codificación del fichero, y lo mismo ocurre en casi todas las demás cosas. Aunque todavía me queda saber cómo hace el servidor web para saber qué tipo de codificación utiliza un fichero HTML o .txt determinado. ¿Quizás no puede adivinarlo? Vaya, entonces tenemos un problema. Empiezo a pensar que esto de ASCII no es tan buena idea… 128 carácteres fijos y 128 que pueden cambiar y no se cuándo se usa cual no me parece divertido.

Ya hemos descubierto el problema, ahora la solución

Nos ha quedado claro que el problema que nos encontramos es que no podemos limitarnos a tener 128 carácteres fijos y luego que cada documento tenga un juego de 128 carácteres extendidos, porque no soluciona el problema del intercambio de documentos ni permite usar los carácteres que necesitemos en cada momento, nos vemos limitados a un juego.

Así que como solución surge Unicode. Un juego de carácteres universal capaz de identificar 2^32 carácteres (4.294.967.296), y en tantos carácteres pueden codificarse todas las grafias del mundo (incluso se intentó codificar la grafía Klingon :) ), presentes y pasadas. Así que genial, ahora tenemos un sistema de codificación que nos permite utilizar cualquier carácter y nuestros documentos podrán ser leidos por cualquiera. Si es que ya les pasó cuando hicieron ASCII extendido para ampliar ASCII-7, que se conformaron con duplicar las opciones y tendrían que haber ido a lo grande, pero nunca es tarde si la dicha es buena.

Los peros

Así que tenemos claro que usaremos Unicode para representar cadenas de texto, con sus 32 bits nos permiten codificar cualquier texto imaginable aunque esto tiene 2 graves consecuencias. El primero y más obvio es el tamaño de las cadenas. Este texto tiene unos 6.700 carácteres, lo que codificado como ISO-8859-15 son 6.700 bytes, sin embargo en Unicode eso serían casi 27.000 bytes, y aunque el ancho de banda y el espacio en memoria cada vez es menos problemático para almacenar texto, sigue siendo multiplicar por cuatro.

El otro inconveniente viene de utilizar un sistema de codificación nuevo y totalmente distinto. Hay que reescribir todas las funciones que estén relacionadas con las cadenas: medir el tamaño de una cadena, representarla, leerla, partirlas, unirlas, ordenaralas…. nada de lo que teniamos sirve y todo hay que reescribirlo.

Y a todo esto podemos tener una idea de lo engorroso que es mantener al mismo tiempo texto en Unicode y otros formatos, aunque tampoco es demasiado distinto a tener que trabajar con distintas codificaciones.

Así que como solución a parte de los problemas se crearon UTF-16 y UTF-8. El primero es una representación en palabras de 16 bits de los carácteres, de forma que la mayoría de carácteres puedan ser representados en 16 bits. Pero sigue teniendo la pega de que nos es necesario tener código capaz de trabajar, representar y leer esas cadenas. El otro invento fue UTF-8, que codifica los carácteres más utilizados en 8 bits y ahorra mucho espacio, y la realidad nos demuestra que vino para quedarse.

Y el enemigo número 1: UTF-8

UTF-8 no es tan malo: nos permite utilizar Unicode y ahorramos espacio ¿no? Sí, eso es verdad. Pero eso son efectos colaterales del verdadero objetivo del uso de UTF-8 que podemos descubrir recurriendo a un poco de historia.

Se supone que el primer email de la historia fue un texto de prueba, algo como QUERTYIOP y que tras
esa prueba se enviaron otros mensajes. Ese primer mail se envió en 1971 y podriamos apostar a que estaba escrito en ASCII (que se presentó en 1967). Así que imaginad que cogemos todos esos mails que se enviaron hace más de 30 años en ASCII y que causaron tantos problemas de intercomunicación entre distintos idiomas, que dieron tantos quebraderos de cabeza (todo el que haya tenido que configurar consolas sabe de que estoy hablando) y de repente por arte de magia ¡son textos internacionales¡ ¡bendigamos a UTF-8!

Unicode pretende ser la respuesta a un problema complejo que se vió acentuado por el intercambio de información en a las redes informáticas. Solucionar el problema es engorroso: durante un periodo se producirán incompatibilidades entre programas y usuarios de Unicode y aplicaciones y usuarios que siguieran con juegos de caráceteres variados e incompatibles.

Si Unicode y todos los iso-8859 conviviesen existirían problemas en los que los textos serían totalmente incompatibles: una herramienta que no soporte Unicode mostrará un montón de basura ilegible y no podrá hacer nada con él, y lo mismo ocurriría en el caso contrario. Sin embargo UTF-8 surge como un intento de camuflar ese problema, de repente la solución es “compatible hacia atrás” y todos los textos escritos en ASCII-7 son también Unicode (UTF-8, pero Unicode a fin de cuentas). Y las rutinas de clasificación, de partir cadenas, los filtros, todo funciona perfectamente. Siempre y cuando sea ASCII-7, suficiente para los anglosajones.

En resumen, con UTF-8 se consigue adaptar una solución y degradarla para que no resulte demasiado molesta. Para que sólo “los que tienen el problema” tengan que lidiar con ella, con una solución intermedia, para no tener que saltar todos al tren del Unicode.

Por eso odio UTF-8. Porque es el mal menor y lo han hecho a posta.


PS: Un excelente artículo sobre esta historia es “Characters vs. Bytes“.

Etiquetado , ,

Rails, ese objeto de deseo

Desde hace ya mucho tiempo estoy utilizando Ruby on Rails para aplicaciones internas y para probar. Realmente tiene cosas muy buenas, y muchas sus características principales se debe al lenguaje que utiliza: Ruby. Resulta bastante refrescante utilizar un framework tan opinado como puede serlo Rails, aunque hay que admitir que en ocasiones puede llegar a complicar algunas cosas.

Este pequeño párrafo sólo pretende ser un pequeño comentario sobre un futuro artículo que me gustaría escribir contando mis opiniones y experiencias sobre esta plataforma.

Etiquetado ,