<$BlogRSDUrl$>

Esos aparatos del demonio

Mis notas sobre lo que voy leyendo de ordenadores y periféricos

domingo, mayo 14, 2006

Escribe en tu blog en Word 


Cuentan en Ars Technica que la próxima versión de Word va a permitir publicar en blogs. La verdad es que yo, cuando hago entradas grandes, suelo escribirlas en el Word y luego pegarlas en esta caja de Blogger. Eso sí, he tenido que deshabilitar las opciones de corrección automática para que no me cambie las comillas normales por comillas inclinadas y no me haga otras guarradas.

Escribo en Word por la facilidad para guardarlo (aunque Blogger ahora tiene autoguardado) y, sobre todo, por la corrección ortográfica. Sin embargo, dicen que en Firefox 2 esto ya va a venir de serie, y no me extrañaría que hubiese ya una extensión que lo haga. De hecho, una de las mejores cosas de Thunderbird 1.5 es que ya tiene el subrayado de errores ortográficos.

Volviendo al Word, dicen que además va a generar HTML decente. Eso me cuesta más creerlo.

(Esta entrada está escrita en Blogger, así que ahí va, sin corrección ortográfica.)

Otro tipo de pista para el tenis 


Hasta ahora para jugar al tenis existían las pistas de tierra batida, las pistas de hierba y las pistas duras. Pero se ha desarrollado un nuevo tipo de pista: la pista Nintendo.

Impresionante este vídeo de Miyamoto jugando a la Nintendo Wii:


sábado, mayo 13, 2006

La Wikipedia española 


Me entero a través de Atalaya de que «Nos borran a PJorge», la última polémica en la Wikipedia española.

A mí me gusta mucho la Wikipedia y durante una temporada estuve colaborando asiduamente. Me parece uno de las grandes obras de la Humanidad y me causa mucho placer aportar mi pequeño granito, sintiéndome por un rato como Diderot o D'Alembert. Admiro a los que colaboran en ella todos los días y se meten en la difícil tarea de ordenar el caos, que es muy creativo pero necesita de esas pequeñas fuerzas para no desmadrarse.

Nunca he tenido problemas con mis ediciones en la Wikipedia, si bien es cierto que siempre he dedicado bastante tiempo a redactar los artículos y dejarlos ya desde la primera versión con cierto contenido y un aspecto presentable. Sin embargo, sí que he detectado a veces en la Wikipedia española más tendencia a borrar de la que yo considero necesaria. A mí no me parece que la Wikipedia tenga que tener contenido muy relevante: no me parece grave si tiene informaciones que sólo le importan a cincuenta personas en el mundo a lo largo de los años. Es información que está ahí y que no tiene por qué aumentar el ruido tampoco: de eso ya se encarga la relevancia de los enlaces. Es un poco como esto de los blogs: hay gente que se queja de que se escriben muchas tonterías; es cierto. Pero a veces hay una tontería que a alguien le viene bien (para pasar el rato o para aprender), ¿qué mal hay en ello?

Espero que la gente que he animado en otro de mis blogs a que participen en la iniciativa Multipliquemos la Wikipedia en español no se encuentren con que les borran sus entradas, que probablemente al principio no sean muy buenas, pero que lo serán con el tiempo si les dejan.

domingo, mayo 07, 2006

La actuación de Colbert 


Esto es casi ridículo: debo de llevar hora y media perdida enterándome de una polémica que ha aparecido en Estados Unidos y que tiene como protagonista a un cómico del que no había oído hablar nunca: Stephen Colbert. La semana pasada reddit tuvo unos cuantos artículos sobre ello; no les presté mucha atención y sólo saqué en conclusión que Colbert hizo un número de humor delante de Bush satirizándole, y que al Presidente de los Estados Unidos no le hizo mucha gracia. Pero ha sido esta noche, leyendo en Presentattion Zen y siguiendo sus enlaces cuando me he enterado más a fondo.

Los vídeos de la actuación de Colbert se pueden encontrar en el artículo enlazado. Se entiende bastante bien, aunque muchos de los chistes son incompresibles para los que no vivimos en Estados Unidos; así todo, yo me reí con algunos.

Intentando entender otros, leí la página de la Wikipedia dedicada al discurso (sí, una página para un discurso) y llegué a otras polémicas con respecto al cómico. En particular, es muy interesante la de truthiness, una palabra que inventó sobre la "última moda": lo que importa no es que los hechos sean verdad o no, sino que nos parezcan verdad. Algo similar a "verosimilitud", pero no con un relato de ficción, sino con la realidad.

Esto es totalmente irrelevante para este blog tecnológico... si no fuera porque nunca me hubiese enterado de no existir Internet y de no estar en estos tiempos de vídeos compartidos. Por enlazarlo de alguna manera, vamos.

sábado, mayo 06, 2006

Sobre el premio Príncipe de Asturias a Bill Gates 


Como todos en España sabemos, le han dado a la Fundación Bill y Melinda Gates el Premio Príncipe de Asturias de Cooperación Internacional. A mí me parece que en parte es un caso de premios intentando ganar prestigio con el premiado, y no al revés. El caso es que no veo que la noticia haya salido de los países de habla hispana: en Barrapunto hay ahora mismo 352 comentarios, pero no encuentro nada en Slashdot, reddit o digg.

Aprender 


Interesante entrada de Mark Shuttleworth (el de Ubuntu): «It’s the ability to learn tools, not the tools themselves». No es el típico «Hay que aprender a aprender» y ya está: también deja claro que hay que saber aprender cosas concretas, pero enfatiza la importancia de aprender cosas nuevas porque en este mundo no queda más remedio, y dentro de la informática no digamos. Como me comentaba ayer un compañero: enciendes un ordenador de hace 20 años y uno de ahora y casi no parecen la misma cosa.

Por otra parte, tiene también una llamada a aprender herramientas nuevas en plan experimental, como acabo de hacer yo hace poco con lo de la extensión, pero, al mismo tiempo, no intentar utilizar lo nuevo en un entorno de producción crítico:


There is some value in disposable knowledge. I like to hire guys who set out to learn a new programming language every year, as long as they are smart enough to stick to core tools for large scale productive work, and not to try and rewrite their worlds in the new language every year. The exercise of learning new API’s, new syntactical approaches, new styles is like jogging, it keeps you fit and energised. It’s useful even if aren’t a marathon runner by profession. But it should be kept in balance with everything else you have to do.


Son cosas de sentido común... Pero nunca está de más que nos las recuerden.

Icono de PDF en Firefox 


Últimamente he notado que, en el Firefox, al lado de los enlaces que llevan a un PDF me aparece un icono con el símbolo correspondiente. Creo que más o menos ha coincidido con la actualización a 1.5.03, pero no he visto nada en las Release notes relativo a ello. Por curiosidad y si alguien lo sabe: ¿es cosa de Firefox o de alguna de las 13 extensiones que tengo instaladas?

lunes, mayo 01, 2006

Cuatro días y una extensión 


Hace años ya que empecé a buscar una forma de sacar estadísticas de mi correo. Me parecía un complemento obvio para Thunderbird, pero no encontré ninguna extensión que lo hiciese. Me apetecía intentarlo a mí, pero teniendo en cuenta que no sabía nada de desarrollo de extensiones, suponía que me iba a llevar mucho tiempo, ese bien escaso.

Llevaba años con esa pequeña frustración, hasta que hace unas semanas vi esta historia: «How To Build a Game In A Week From Scratch With No Budget». El autor decidía que iba a dedicar 40 horas (el equivalente a una semana de trabajo) en desarrollar un juego completo, aunque sencillo, desde cero. Su conclusión es que había sido un ejercicio muy interesante que le había enseñado muchas cosas.

Inspirado por él, y ante la coyuntura de cuatro días de fiesta en los que podía escoger entre acudir a un Paso de Semana Santa en la A-6 o quedarme en casa haciendo algo interesante, decidí intentarlo: cuatro días para hacer una extensión que calculase estadísticas para mi correo.

Objetivos que me planteé:

1) Hacer una extensión completa, aunque tuviese muy poca funcionalidad, pero que lo que tuviese funcionase.

2) Publicarla como software libre, por si alguien quería utilizarla o incluso mejorarla.

3) Hacerlo en cuatro días.

Aunque podía haberlo dejado después de los cuatro días, cuando tenía una extensión funcionando, al final me di una extensión de tiempo y la semana siguiente estuve mejorando algunos aspectos de interfaz. Voy a contar un poco la historia del desarrollo, no hora a hora como el artículo original, pero con unos cuantos detalles de cosas que he aprendido y que pueden servir para otra persona que quiera hacer una extensión similar.

Día 1. Jueves Santo: Aprendiendo a programar extensiones

Empezaba de cero: no tenía ni idea de cómo funcionaban las extensiones para Thunderbird. Así que tirando de Google, llegué a dos recursos básicos: el tutorial de desarrollo de la extensión «Hola, mundo» y un blog en el que se cuentan detalles del desarrollo de extensiones para Thunderbird. El problema del primero, como ya conté en su momento, es que estaba dedicado a Firefox y me costó mucho conseguir el sencillo «Hola, mundo» en Thunderbid.

A media tarde del jueves mi extensión ya saludaba, así que mi siguiente paso fue conseguir aprender a recorrer las carpetas, para luego recorrer los mensajes y sacar las estadísticas. Ahí estaba peleándome sobre todo con dos entradas del blog antes mencionado: Navigating Folders y A Better Way to Navigate Folders. Con el primer método no me funcionaba, porque llama a la función GetDBView: yo la intentaba llamar desde la nueva ventana que estaba creando, pero la función está en el código de Thunderbird y sólo puede ser llamada desde un overlay. Con el segundo método tuve más éxito y me fui muy contento a la cama: había conseguido recorrer las carpetas. Ahora sólo era cuestión de recorrer los mensajes.

Día 2. Viernes santo: El mensaje

Lo de recorrer los mensajes, que parecía algo sencillo, se convirtió en algo muy difícil. Me estuve pegando mucho, buscando por Google, leyendo la incompleta documentación sobre XUL y bajándome otras extensiones para mirar su código. Casi ninguna hacía lo que yo quería, recorrer todos los mensajes, sino que se dedicaban a hacer pequeños cambios en el interfaz que solían actuar sobre el mensaje seleccionado. Al final me encontré con Quick File y, sobre todo, Remove Duplicate Messages, que hacía lo que yo quería. Mirando su código saqué la forma de recorrer todos los mensajes.

Una vez que conseguí este objetivo, ya sólo se trataba de sacar información sobre cada mensaje. Con un poco de XPCOM obtenido del propio código de Thunderbird, estuvo solucionado. Ahora ya parecía sólo cuestión de echar tiempo programando.

Día 3. Sábado santo: Refactorización, hilos e interfaz

El sábado, como ya he contado, me puse a hacer refactorización y a intentar poner una barra de progreso. Fue cuando me lié con el asunto de los hilos. Al final conseguí hacerlo con el setTimeout, aunque no de manera perfecta porque seguía apareciéndome el mensaje de «Unresponsive script», aunque sólo cuando tenía una carpeta muy grande.

Además del procesamiento de los mensajes, estaba también el asunto de generar los resultados. Opté por la solución que me parecía más sencilla: mostrarlos en un iframe dentro de una nueva ventana de Thunderbird. Como el iframe recibe código HTML, con unas cuantas tablas se solucionaba el asunto.

Día 4. Domingo santo: Intento de rematar

El domingo dediqué casi todo el tiempo (casi todo el tiempo que dediqué a la extensión, también hice otras cosas, como el resto de días) a mejorar la presentación de resultados. Para empezar, le puse un poco de estilo a las tablas. Hice unas cuantas refactorizaciones para hacer métodos genéricos que funcionasen con las distintas tablas que tenía y aprecié la potencia y la facilidad que ofrece el Javascript al no tener tipos estáticos.

Me planteé también hacer la salida a fichero, en formato HTML y en TSV. Lo de hacer la salida a disco me llevó a buscar una librería de Javascript que solucionase ese problema. Decidí utilizar el código de Robert Ginda.

El fichero en HTML parecía fácil: ya lo tenía en el iframe y sólo era escribirlo a disco. Me funcionaba cuando no tenía CSS, pero cuando lo metí, empezaron los problemas. Aunque sin estilo, el fichero con los datos estaba ahí, así que decidí dejar ese problema aparcado.

El fichero TSV no tuvo muchos problemas y permitió abrir los datos fácilmente en Excel y hacer gráficos con ellos: ¡guau! :-)

Después añadí soporte para localización: las cadenas que estaban metidas directamente en el código pasaron a ser parte de una especie de ficheros de recursos que tienen las extensiones. Rutinario.

Se acababa el domingo y llegaba el momento de publicar la extensión. Había dos inconvenientes: no tenía claro el nombre y no sabía dónde subirla.

Sobre lo primero, en principio la había llamado «Thunderbird Statistics», pero me hacía los nombres de las clases muy largos y, además, me fijé que las extensiones no solían tener lo de «Thunderbird» (o «Firefox») en el nombre. Algunas opciones que se me ocurrieron fueron «Thunderstats» (ya existe), «Mailstats» (ya existe), «Statszilla» (ya existe), «Statisticszilla» (no existe, pero no me extraña: no hay quien lo pronuncia ni quien lo escriba bien a la primera si no se tiene cuidado)... Al final me quedé con «tbStats». Da pocos resultados en Google (200) y no parece que nada tenga que ver con estadísticas de correo.

Para el problema de alojar la extensión, estaba buscando un sitio que ofreciese acceso al código fuente con Subversion y que permitiese también alojar una página para ella. Encontré esta comparativa y, echando un vistazo, el que más me convenció fue BerliOS. Intenté registrarme. Un par de veces: nunca me llegó el correo de registro. Así que, a última hora, me decidí por SourceForge. En principio no me gustaba porque creo que la página es un lío con tantas opciones, pero al darte la posibilidad de hacer tu propia página, se soluciona ese problema.

Me puse a registrarme y me encontré con un proceso muy cuidado: tienes que tener clara la licencia de tu código, cómo se va a llamar, cómo categorizarlo... Al final del proceso, tu solicitud queda pendiente de que la revise un humano, pero eso en horario laborable. Así que ahí se me acabó el domingo y sin haber conseguido publicar. Decidí darme una extensión del plazo

Extensión del plazo: Entre semana

Durante la semana, fui trabajando por las noches, algunas, porque con el trabajo normal no siempre tengo ganas de seguir peleando contra el ordenador cuando llego a casa.

El lunes me aceptaron el proyecto y estuve explorando un poco SourceForge. Subí el código por primera vez al repositorio Subversion. En teoría, ya podía hacer un lanzamiento y publicar la extensión, pero me parecía que sería conveniente tener una página web hecha para la gente que quisiera visitarla y, además, había algunos detalles (ausencia de gráficos, el mensaje del script que no responde, el estilo de los resultados no muy atractivo, tenía el icono por defecto...) que me parecía que había que trabajarlos un poco más.

Hasta el viernes me dediqué básicamente a aspectos de estilo: hacer un logo, la página web, cambiar colores y fuentes, hacer el icono... Las horas empleadas con el Photoshop fueron unas cuantas. Por cierto, me pareció que estaba muy mal explicado en SourceForge cómo subir la página web. Hay que hacer un SFTP a shell.sourceforge.net con tu nombre de usuario y contraseña, y luego el directorio es /home/groups/p/pr/proy/htdocs/, sustituyendo lo de p/pr/proy por la primera inicial de tu proyecto, más las dos segundas y el nombre.

Extensión de plazo: Segundo fin de semana

El sábado, otra vez con tiempo, decidí que había que ponerle unos gráficos a los resultados. Para ello cogí ideas de Apples to Oranges y, sobre todo, Standards Schmandards, pero ninguna de las dos me convencían porque utilizaban una imagen. Aparte de que yo no quería degradados ni efectos raros (perdí un par de horas probando distintos degradados, colores y bordes hasta que me convencí de que lo mejor era hacerlo con un relleno sólido), si metía una imagen no podía exportar a una página web HTML sin más. Al final modifiqué la técnica de Standards Schmandards para utilizar un div en vez de un img y quedé muy contento con el resultado. El proceso de desarrollo bajó de velocidad porque me dedicaba cada poco a abrir la ventana de estadísticas y quedarme extasiado de lo bonita que quedaba... ;-)

Una vez contento con las pintas de la extensión y el resto de la imagen de marca, decidí intentar arreglar algún problema serio. Empecé con uno que arrastraba desde el domingo pasado: el fichero HTML no tenía estilos. El problema es que los estilos los cargaba con un import de un url tipo chrome://tbstats/skin/tbstatsResults.css. Eso del chrome funciona dentro de Thunderbird, pero cuando genero a un archivo, no, claro. Así que tenía que sustituir la línea del import por el contenido del fichero. Estuve buscando varias alternativas: sacar del elemento correspondiente el estilo de alguna manera, una función que me permitiese leer el fichero a una cadena fácilmente (esto lo podría haber hecho yo y a lo mejor hubiese acabado muchísimo antes, pero me parecía algo tan obvio que no le encontraba sentido a hacerlo yo en vez de reutilizarlo)... Al final, mirando cómo hace Webdeveloper para mostrar el CSS de una página, encontré la solución: a través de un XMLHttpRequest. Y así, sin proponerlo, he entrado de lleno en la Web 2.0. ¿Puedo poner ya en el currículum que sé programar en AJAX? ;-)

Por último, me puse con el gran problema del «Unresponsive script». La solución me llevó media mañana del domingo (la otra media, para escribir esto y todo el asunto del setTimeout). Ahora ya consideraba que la extensión estaba lista para publicarse, así que hice la primera release, con su correspondiente anuncio.

Mostrando en público las vergüenzas

La publicación consistió en subir la versión a SourceForge y poner un mensaje en los MozillaZine Forums. Hubo una persona que probó la extensión e hizo unas cuantas críticas muy constructivas. Algunas son cosas que yo había visto que estaban mal, pero quería publicar ya. Como ya tenía un usuario quejándose, decidí arreglar las más importantes.

Por otra parte, me he encontrado con problemas con SourceForge: cuando saqué la primera versión, me escribió una persona diciéndome que el fichero que se bajaba estaba corrupto y ha vuelto a ocurrir con otro usuario en esta segunda versión.

En resumen, ha sido una experiencia muy interesante. Ah, si alguien está interesado, puede visitar la página web de la extensión: tbStats.

This page is powered by Blogger. Isn't yours?

Blogroll
Enlaces
Archivos

Licencia Creative Commons
Este trabajo tiene licencia Creative Commons License.