21 de Febrero, 2012

»¿Algo más que un bookmark? · La verdad es que no tengo claro la utilidad de la Chrome Web Store. Me recuerda a un directorio web, e instalar las aplicaciones es algo así como un añadir un bookmark, pero en bonito. En cualquier caso, parece que hay mercado, así que ahora puedes hacer crucigramas en español. Total, han sido 20 minutos (y $5) lo que me ha costado publicar la aplicación.

Hay 0 comentarios, anotación clasificada en: internet.

15 de Febrero, 2012

»Clients from Hell · Si pensabas que las historias de los BOFH eran divertidas, es porque no conoces Clients from Hell. Demasiado real, demasiado divertido, si visitas el enlace... cuidado que engancha :). Aunque esté en inglés, aseguro que algunas de esas cosas me han pasado.

Hay 2 comentarios

14 de Febrero, 2012

»El modelo CADT · Algo así comentaba sobre los problemas del escritorio en Linux, pero no sabía que el genial Zawinski ya le había puesto nombre hace casi 10 años: the CADT Model (¿jóvenes con déficit de atención en cascada?); y sigue en total vigencia. No hace mucho tenía mi propio mosqueo con Evolution precisamente por eso: notifico un error, y la siguiente noticia que recibo es 4 años después preguntando si todavía puedo reproducirlo en la última versión del software.

Hay 0 comentarios, anotación clasificada en: software libre.

12 de Febrero, 2012

Nautilus Flickr Uploader 0.11 y OAuth

Esta semana pasada he estado trabajando un par de ratos con el API de Flickr, para que Nautilus Flickr Uploader siga funcionando pasado el 31 de Julio, que es cuando Flickr retira el sistema viejo.

Pasar a OAuth ha sido más complicado de lo que me esperaba, principalmente porque la documentación de Flickr deja mucho que desear :S.

La parte de la autenticación con OAuth es fácil de seguir, pero las referencias a cómo firmar las llamadas al API apuntan a la especificación vieja, con lo que no responden a la pregunta de cómo firmar las peticiones al API para subir ficheros.

Autenticando
El proceso de autenticación es casi igual, solo añade un código de verificación.

Al final, gracias a que se utiliza la especificación OAuth (oh, estándares), junto a algunos ejemplos de terceros, he conseguido hacer funcionar Net::OAuth y hoy he publicado la versión 0.11 ;).

Desde el punto de vista del usuario no hay cambios importantes, solo que al usar OAuth la autorización que tenemos de la versión anterior no funcionará, así que habrá que repetir el proceso (muy similar al anterior, he grabado un vídeo mostrando los pasos; disculpas por el idioma :D).

Los cambios en el proceso de autenticación requerían cambiar un par de textos, así que ahora algunas de las traducciones están incompletas (las que sí lo están son: en, es, ca y fr; que es lo que se habla en casa). Si alguien se anima, que me envíe un correo electrónico y le doy detalles sobre cómo ayudar.

Como siempre está disponible el código fuente y los paquetes para Fedora, y los paquetes para Ubuntu/Debian tardarán un poco (pero estarán antes de que la versión 0.10 deje de funcionar, seguro :P).

Hay 0 comentarios, anotación clasificada en: nautilus-flickr-uploader, perl, software libre.

6 de Febrero, 2012

»Ethan of Athos · Hace unos años que leía El aprendiz de guerrero, y creo recordar que en el prólogo de aquella novela se comentaba que Lois McMaster Bujold publicó varias novelas a la vez para ver cuál funcionaba mejor y desarrollar más esa linea argumental y su personaje protagonista. Entiendo porqué no ganó Ethan, que se ha quedado como una anécdota comparada con toda la saga de libros de los Vorkosigan. No he podido con la novela, pese a que empieza con ideas interesantes, y aunque lo he intentado varias veces.

Hay 1 comentario, anotación clasificada en: lecturas.

31 de Enero, 2012

Mi web para hacer crucigramas

Hace ya algún tiempo que buscaba crucigramas en español, y no encontré nada que realmente me gustara.

Sin estar muy convencido empecé a jugar con algoritmos para generar mis propios crucigramas, hasta que hace dos días hice pública mi web para hacer crucigramas en español (¡ta-daaa!).

Aún quedan cosas interesantes por añadir, y algunas por mejorar, pero la base está ya ahí: se pueden hacer crucigramas (¡oh!).

El proyecto consta de 3 elementos diferenciados:

  • El backend sobre MySQL donde se generan los crucigramas. He usado el ORM de Django, aunque esta parte corre desde cron y no es visible para el usuario.
  • El frontend, sobretodo la administración, en Django. Es lo que uso a diario en mi trabajo, y la verdad es que es la parte más sosa y menos divertida de desarrollar :).
  • Un cliente web hecho en Javascript y jQuery.

Precisamente esa última parte es lo que me ha llevado más tiempo, pese a que en realidad es muy sencilla. Digamos que no me queda tan claro que Javascript tenga alguna parte buena, y ha sido todo un reto dedicarle tiempo libre a esta parte :(.

A destacar que casi he conseguido que el cliente funcione al 100% en dispositivos con pantalla táctil (sin teclado), aunque no era una prioridad. Esta es una de las cosas que quiero mejorar el las próximas semanas.

Otra parte que debería mejorar es la generación de los crucigramas. Sobretodo porque en mis pruebas partía de unos datos de entrada reducidos, y en el entorno de producción los datos son distintos, sobretodo en lo que se refiere al volumen de los mismos :D.

Porque esa es la parte interesante de todo el proyecto: he pre-procesado alrededor de 30.000 definiciones de Wikcionario (un proyecto similar a la Wikipedia), y utilizo dichas definiciones para generar los crucigramas de una forma automática :).

Las definiciones se distribuyen bajo una licencia Creative Commons, y lo mismo he hecho yo con los crucigramas.

El diseño de la web es muy sencillo, así como su mecanismo: un crucigrama al día, y un navegador basado en un calendario para poder ir a los crucigramas de días anteriores.

Hay programados crucigramas para las próximas dos semanas (incluyendo unos especiales para los sábados :P), así que ese es el plazo que me doy para mejorar el algoritmo de generación y (quizás) las cosas que faltan en el proyecto :).

No está nada mal que mi primer proyecto personal del año venga tan pronto, que desde los motivadores del año pasado, no le había dado suficiente continuidad a ninguna idea.

Hay 2 comentarios, anotación clasificada en: python, django.

29 de Enero, 2012

Hay que parar ACTA

ACTA

Después de que el congreso de EEUU aplazara SOPA/PIPA gracias a las protestas en Internet, los grupos del presión tras la propiedad intelectual siguen con su agenda, esta vez con un viejo conocido: Anti-Counterfeiting Trade Agreement (ACTA).

El principal objetivo de ACTA es obligar a los países firmantes a implementar políticas contra compartir ficheros en Internet mediante el uso de duras sanciones penales y ejerciendo presión legal sobre los proveedores de servicios y contenidos para que persigan a sus usuarios.

Además el proceso está siendo completamente opaco, buscando la mínima resistencia civil evitando el debate democrático. Por lo que parece, la estrategia está teniendo un éxito retundo :(.

Ya se ha firmado el tratado por la mayoría de los países de la EU (aunque solo hubo protestas en Polonia), incluyendo a España, y ahora debe ratificarlo el parlamento europeo.

Si quieres saber cómo actuar en contra de este tratado, puedes consultar este extenso dossier sobre el tratado, o echarle un vistazo a este wiki sobre como actuar contra ACTA.

Si Internet pudo detener una amenaza como SOPA/PIPA ¿por qué no parar ACTA?

Hay 0 comentarios, anotación clasificada en: internet.

21 de Enero, 2012

Cambios en la autenticación de Flickr

El 31 de Julio de este año, OAuth sustituirá a FlickrAuth como mecanismo para autenticar aplicaciones que utilicen el API de Flickr. Esto implica cambios en Nautilus Flickr Uploader, que utiliza Flickr::API (implementa el sistema que desaparece).

En principio la aplicación no debería cambiar mucho desde el punto de vista del usuario, porque OAuth surgió tras FlickrAuth y se nota la influencia (positiva) del arte previo.

Internamente ya es otro tema, como se puede ver en esta comparativa por Jef Poskanzer.

He contactado con el autor de Flickr::API para ver qué planes tiene (ya intercambié correos con él al empezar el desarrollo porque la licencia no era lo suficientemente clara como para incluir el paquete en Fedora). En cualquier caso, creo que OAuth no es tan complicado y me parece una ocasión excelente para aprender cómo funciona.

La única pega de todo esto es que las versiones viejas de NFU dejarán de funcionar pasada la fecha (espero que los token viejos sigan siendo válidos, aunque no se puedan conseguir nuevos); y la única solución va a ser instalar la nueva versión :(.

Hay 0 comentarios, anotación clasificada en: nautilus-flickr-uploader, perl.

15 de Enero, 2012

Problemas con Javascript

Una de las (¡muchas!) cosas que no me gustan de Javascript es que no parece haber suficiente consistencia entre las diferentes implementaciones que encontramos en los navegadores.

No es nada positivo cuando los detalles del lenguaje te distraen de lo que estás programando, pero ¿qué pasa cuando una funcionalidad se comporta de forma distinta dependiendo del navegador?

Por ejemplo, en el trabajo tuve que pelear con un bug bastante complicado de localizar porque hay características de substr que no están disponibles en la implementación de Microsoft Internet Explorer.

Al final un x.substr(-1) se debe expresar x.substr(x.length-1), o no será portable. Algo que debes de saber y solo da la experiencia, y que convierte a una funcionalidad en inútil (a no ser que no quieras soportar IE, claro :P).

Ah, pero no siempre es IE el problemático. Aquí hay otro caso, para el que incluso di de alta un bug para Firefox:

// constructor usando milisegundos
var a=new Date(0);

// ¿cuál es el resultado? :D
console.log(a.getHours() + ", " + a.getMinutes() + ", " + a.getSeconds());

El resultado en Firefox es 1, 0, 0 mientras que en Chromium/Chrome es 0, 0, 0.

La vedad es que la explicación no es nada sencilla, pero Firefox es el que muestra el resultado correcto: el segundo 0 corresponde con 00:00h UTC del 1 de Enero de 1970, y como mi huso horario es Europa/Londres, en ese día se aplicaba el horario de verano y... la hora era 1am y no medianoche.

Al final con usar los métodos UTC (por ejemplo, getUTCHours), el problema se soluciona y podemos seguir adelante con nuestro trabajo... y mejor no pensar en el tiempo perdido :).

Actualización: parece que mi informe de error ha sido aceptado y hay un problema en la implementación de Firefox :).

Hay 0 comentarios, anotación clasificada en: javascript.

7 de Enero, 2012

»Gnome shell, o cómo aprendí a dejar de preocuparme y a amar a la bomba · Hace ya algo más de un mes que actualicé a Fedora 16 y me metí de cabeza en Gnome 3. Primero lo ignoré, usando el teclado como se viene haciendo ya desde hace 10 años, y luego empecé a encontrar algunas funciones interesantes y otras completamente rotas; pero para ser justos ahora no puedo negar lo evidente: es mucho más estable que Unity (uso Ubuntu 11.10 en el trabajo, plagado de bugs nuevos y viejos; launchpad on fire!). Es cierto que Gnome ha sufrido una pérdida de funcionalidades, pero al menos lo que trae la versión 3.2.1, es estable.

Hay 0 comentarios, anotación clasificada en: gnome.

Entradas antiguas