2007-12-02

Último post en Blogger: me mudo.

Pues sí, me llevo mi blog a otra parte. No es que la gente de Blogger me haya tratado mal ni nada de eso. Es simplemente que hemos montado una plataforma de blogs en la Universidad y mudo allí mi blog.

Aprovechando que hemos puesto Wordpress-MU, que iba a llevar otro blog allí junto con un par de compañeros y que la versión que hemos montado importa completamente el blog de Blogger sin ningún problema, he dado el salto.

Así que si algun despistado tenía sindicado este blog, que actualice su lector de feeds. La nueva dirección es http://iarenaza.blogs.mondragon.edu/

Saludos. Iñaki.

2007-11-09

¡Free Krusher!

Via Deusto Software Libre (gracias Txipi) me hago eco de la noticia. Como creo que no soy capaz de expresarlo mejor que él, pero no quiero dejar de unirme al grito, cito (casi) textualmente:

Toda la blogosfera hispanohablante repite hoy lo mismo. Arturo Quirantes lo ha resumido en su blog, pero todo el mundo grita hoy Free Krusher!:

Quizá alguien piense que no tiene mucho que ver con la temática del blog. Para ellos este verso de Bertold Bretch Martin Niemöller:

“Primero vinieron por los comunistas y no dije nada porque yo no era comunista.
Luego vinieron por los judíos y no dije nada porque yo no era judío.
Luego vinieron por los sindicalistas y no dije nada porque yo no era sindicalista.
Luego vinieron por los católicos y no dije nada porque yo era protestante.
Luego vinieron por mí, pero para entonces ya no quedaba nadie que dijera nada.”

Saludos. Iñaki.

2007-10-27

Drivers Linux para la webcam de los portátiles Sony Vaio VGN SZ

Esta mañana me he levantado con ganas de cacharrear y me he dedicado a instalar todo el sofware y los drivers necesarios para poder usar, entre otras cosas, la cámara USB que viene integrada en mi portatil Sony VAIO VGN-SZ4MN/B.

Gracias al blog de david (lo siento, pero no da más detalles que su nombre de pila) he podido ahorrarme buena parte del trabajo de investigación necesario para hacerlo (Sony no da soporte en absoluto para Linux en este modelo de portatil). El asunto es que existe el driver en cuestión (¡por suerte!), pero el enlace que proporciona al código fuente del mismo ya no es operativo. Así que dando una vuelta por google he acabado cayendo en una página que tiene una copia de la última versión del driver que se puede descargar sin problemas.

He querido poner un comentario en el blog de david para mencionarlo, pero me ha sido imposible. Tienen un sistema de captchas que no deber funcionar demasiado bien, porque no me aparecía la típica imagen distorsionada, pero sin embargo sí me obligaba a teclear lo que supuestamente aparecía.

Así que para que no se pierda la referencia y google la pueda indexar y le sirva a más gente estoy redactando esta entrada. Y para facilitar la búsqueda voy a poner algunas palabras clave que ayuden a google a indexar mejor la página: linux driver sony vaio vgn sz4 ricoh webcam driver ry5u870 r5u870 source code download from http://avilella.googlepages.com/r5u870-0.10.0.tgz http://avilella.googlepages.com/vaiosz

Saludos. Iñaki.

2007-07-08

En que gasto mi tiempo últimamente: Moodle, LDAP, PHP y C.

Aviso: esta entrada contiene jerga tecnológica a raudales y es uno de esos artículos que suele escribir la gente que usa pantalla negra y escribe palabras ininteligibles para el común de los mortales. Así que si el cuerpo te pide otras cosas, te puedes saltar el resto del artículo :-)

La última semana he dedicado una buena cantidad de horas de mi tiempo libre a programar. Y a programar en C. Hacía tiempo ya desde la última vez, casi dos años, y para intentar hacer más o menos lo mismo que esta vez, sólo que la cosa no llego a buen puerto. En los últimos años he dedicado una parte de mi jornada laboral a la administración de los sistemas y las comunicaciones de la Facultad de Empresariales de Mondragon Unibertsitatea, con lo cual la programación que hacía era básicamente de scripts para automatizar tareas (en lenguajes de scripting varios) y bastante PHP para retocar o desarrollar aplicaciones Web.

Vamos, pequeñas minucias cuando hablamos de programar. De vez en cuando me da la fiebre de la programación y durante unas semanas me centro en algún problema que me interesa (siempre dentro del ámbito del software libre) y dedico unas cuantas horas a tratar de resolverlo. Y como en los últimos 2 dos años he entrado a tope en el proyecto Moodle y hay un problemilla que afecta a quienes lo usan en entornos de muchos usuarios cuando utilizan validación de usuarios con un directorio LDAP, ahí he estado pasando unas cuantas horas (intempestivas).

La cosa empezo hace casi dos años (septiembre de 2005) cuando pusimos en producción la instalación de Moodle de la Facultad de Empresariales. Se decidió que los usuarios serían los mismos que los del Directorio Activo de Windows, así que tuve que ponerme las pilas en el tema de LDAP y todos sus entresijos. Y una de las cosas que descubrí en los foros de Moodle, porque alguien lo sufrió en sus propias carnes, es que hay algunos límites impuestos en el servidor que hacen que no se puedan recuperar más de N resultados en una consulta, aunque en realidad haya más de esa cantidad. Hay razones de peso para que sea así, por ejemplo que no dejemos sin recursos de memoria al servidor si lanzamos varias consultas simultáneas que tengan que devolver miles de resultados.

No es que nosotros tuviésemos ese problema (por la forma en que configuramos nuestra instalación no se daba ese tipo de consultas), pero me picó la curiosidad y empecé a investigar el tema. Y así me sumergí en las procelosas aguas del protocolo LDAP y sus entresijos. Y acabé llegando a una extensión opcional del protocolo que permite paginar los resultados, es decir, pedir que los envíe en lotes de un cierto tamaño (definible por quien hace la consulta) y te los vaya pasando de lote en lote, lo cual evita la situación potencialmente desastrosa mencionada arriba.

Claro, que las cosas no son nunca tan sencillas. Moodle está desarrollado en PHP, y para utilizar el protocolo LDAP hace uso de una extensión desarrollada por los propios creadores de PHP que permite tender un puente entre PHP y las bibliotecas que incorporan la funcionalidad del protocolo LDAP. Y la extensión en cuestión está escrita en C. Así que el siguiente paso era bucear en las entrañas de la extensión LDAP. Un poquito de C, un poquito de API de Zend para el desarrollo de extensiones de PHP, un poquito de API de LDAP para lenguaje C, ... Vamos, unas cuantas horas de diversión asegurada para los tipos de las pantallas negras y palabras ininteligible :-)

El resultado tras un par de semanas de búsqueda de información, estudio del código de la extensión LDAP, el API de Zend y demás parafernalia es un parche bastante primitivo, pero funcional, que incorporaba la funcionalidad de paginación al módulo estándar de LDAP para PHP. Un par de discusiones y un mes después, un parche como Tux manda que permitía usar la funcionalidad con comodidad y garantías. Envié el parche a las listas de desarrollo de PHP y al encargado de mantenimiento del módulo de LDAP para ver si lo podían incorporar, pero no hubo suerte.

Así que durmió el sueño de los justos durante unos cuantos meses hasta que decidí volver a intentar que lo incorporaran. Unos cuantos intercambios de email con uno de los desarrolladores de PHP para añadirle una serie de pruebas unitarias, y volvimos a la situación de partida: se siguió quedando guardado en el armario. Hace unos pocos meses lo intenté de nuevo, con idéntico resultado.

Y hace unas tres semanas me volvió a dar la fiebre. Y he vuelto a la carga. Y para darles más razones para que lo incorporen, me he liado la manta a la cabeza y he cogido un parche algo más completo que el mío, desarrollado por Pierangelo Masarati (desarrollador de OpenLDAP, lo que le da más empaque al parche) y que andaba dando tumbos por ahí más o menos desde las mismas fechas que mi parche original. Le he dado un lavado de cara, lo he actualizado para que se aplique limpiamente a la versión actual estable de PHP, le he corregido una fuga de memoria que tenía, le he añadido las pruebas unitarias de rigor y lo he enviado a la lista de nuevo.

Ha sido más fácil de lo que esperaba, pero me ha costado más tiempo de lo previsto. Todo compilaba bien, se lanzaba sin problemas y de repente ¡zas! el programa se moría con un bonito error: "Segmentation fault. Core dumped", que traducido al castizo vendría a ser: "me he dado una castaña como un piano y hasta aquí hemos llegado". Así que me dije: nada, esto lo arreglo yo en un periquete con mi debugger preferido. Y allá fui tan ufano. Y después de varias dos horas aquello seguía igual, y encima el programa se estaba muriendo en una función interna dentro de la biblitoteca, cuatro niveles de profundidad más abajo de la función a la que yo estaba llamando. De locos.

Y todo por una de esas cosas que nunca te esperas, pero que cuando todo falla y después de pegarte con el debugger un rato y no ver nada mal, es de lo primero que sospechas (sobre todo si ya te ha mordido el trasero alguna otra vez en el pasado): tienes varias versiones de la biblioteca de funciones que necesitas y estás usando la única que no te sirve (el linker, que es un tío muy simpático, ha decidido usar justo esa versión, en lugar de la que tu quieres). Claro que de eso te das cuenta a las tantas de la madrugada. O al menos así es en mi caso, ya que son un programador mayormente noctámbulo :-)

Pero bueno, la cosa ya está en marcha, funcionando 100%, testeada con al menos dos implementaciones de directorio LDAP diferentes, y enviada a las listas de desarrollo de PHP y al mantenedor de la extensión LDAP. Aunque 24 horas depués aún no han dicho nada, lo cual no es muy buena señal en este caso, ya que la lista es muy dinámica y los tiempos de respuesta, aunque sea para decirte que tu código es una porquería (que si lo es, te lo dicen sin ningún reparo :-), suelen ser cortos.

Así que ya veremos como se desarrollan los acontecimientos. Por si acaso, no voy a contener la respiración mientras espero.

¡Ah, sí! Se me olvidaba. Por si alguno está interesado o necesita la extensión se puede descargar en http://www.eteo.mondragon.edu/descargas/php-ldap/

Saludos. Iñaki.

2007-05-17

I Jornadas de Intercambio de Experiencias Moodle 2007-MoodleMoot Euskadi

Cito textualmente de http://covcell.sc.ehu.es/ikide/:
La Vicegerencia de las TIC y el grupo iKide de la Universidad del País Vasco/Euskal Herriko Unibertsitatea organizan las I Jornadas de Intercambio de Experiencias de Moodle: MoodleMoot Euskadi'07.

La plataforma de aprendizaje Moodle se está difundiendo con rapidez en la comunidad educativa-formativa del País Vasco, por lo que ha surgido la necesidad de compartir experiencias y conocimientos, tanto en lo referido a la implementación de asignaturas y cursos como en lo relacionado con estrategias institucionales de difusión y formación del profesorado.

[....]

Estas jornadas tienen como objetivo ofrecer la oportunidad a los diversos agentes de encontrarse para intercambiar experiencias y debatir acerca de los usos y desarrollos posibles de Moodle.

Como estoy metido a fondo en este sarao (aunque oficialmente lo organice la UPV/EHU, tanto la gente de Deusto como la gente de Mondragon Unibertsitatea estamos colaborando en el asunto) aprovecho para darle difusión. Especialmente por si estás interesado en acudir, y más aún por si estás interesado en participar con una comunicación o poster. Las fechas importantes en este caso son:

  • Límite para la recepción de trabajos: 31-05-2007
  • Notificación de aceptación/rechazo: 07-06-2007
  • Celebración de las jornadas: 27 y 28 de junio de 2007

Se puede encontrar más información actualizada en: http://jmoodle07.ehu.es/

Sólo me queda por añadir que nos vemos allí ;-)

Saludos. Iñaki.


2007-04-22

Y otro año igual: el IRPF sólo es cosa de MS Windows

Y no sé cuantos años van ya, pero ya empiezo a estar cansado. Y es que el hecho de que la administración pública me haga pagar por un producto concreto de un fabricante determinado para poder ejercer mi derecho a realizar la declaración de la renta en formato digital me toca las narices (por decirlo suavemente).

Es como si me obligaran a comprar el bolígrafo de un frabricante determinado porque los impresos de papel que me facilitan sólo se pudieran rellenar con ese tipo y modelo de bolígrafo. ¿Pondríamos el grito en el cielo en ese caso? Puede que más de uno y más de dos sí. Pero como la mayoría somos unos borregos que no levantamos la voz ante este tipo de cosas, así nos va.

Sé que más de uno dirá: coño, pero si es que el Windows es lo que usa todo el mundo, menos los cuatro chalados que usáis esas cosas raras. Y seguro que es cierto. Pero si aplicamos esa regla de tres, puede que las carreteras del estado (o de mi comunidad automónoma, o de mi territorio histórico -que lo de las competencias está muy complicado en este país-) sólo dejen circular coches de los modelos más comunes de los fabricantes más populares. Así que vete olvidándote de circular con tu maravilloso Audi A3, o tu flamante Ferrari, por poner un par de ejmplos. O usas un Clio, o un Ibiza, o no puedes usar las carreteras públicas. ¿Cómo se te quedaría el cuerpo?

Joder, que estamos en el año 2007 y hay tecnología más que de sobra para desarrollar con un esfuerzo equivalente (en personas y dinero) una solución multiplataforma y abierta. Y no hablo sólo de Linux. Hablo de cualquier sistema operativo mínimamente usado y vivo en la actulidad (no vaya a ser que ahora la gente pida el programa del IRPF para un sistema PDP-10 con ITS ;)

¿Para cuando el que la administración respete nuestros derechos como ciudadanos? (y además en este caso paganos)

Saludos. Iñaki.

2007-03-17

Vamos avanzando (áéíóú)

Después de leer un poco de documentación [1] parece que ya estamos en marcha. Con las pistas que he sacado de toda esa lectura y un par de parches al código de lisp para que genere todo en el juego de caracteres ISO-8859-1 (tanto en la petición HTTP como en la cabecera XML de la entrada Atom) parece que ya tenemos juego de caracteres latino completo, con sus eñes, sus vocales acentuadas (áéíóú) y toda la parefernalia.

Lo suyo sería hacerlo con UTF-8, pero el parser XML de Google (parece ser que usan SaX por los errores que me 'escupe' de vuelta si le envio las cosas en UTF-8) se atraganta y me devuelve unos errores de los más 'significativos' (por no utilizar una palabra malsonante en un lugar público como este :-)

Saludos. Iñaki.

[1] Nada serio, menos de 90 minutos hora para leer la guía de desarrolladores para el API de Blogger
(http://code.google.com/apis/blogger/gdata.html), la referencia del API de Blogger (http://code.google.com/apis/blogger/reference.html), la especificación del formato de sindicación Atom (http://www.atomenabled.org/developers/syndication/atom-format-spec.php) y el RFC de especificación de juegos de caracteres y codificación de los tipos MIME de XML (http://www.ietf.org/rfc/rfc3023.txt).

Vamos, nada que cualquier mortal común no se leería como simple entretenimiento para pasar un rato agradable mientras desayuna :-)

2007-03-04

Primer envio desde Emacs

Pues sí, parece que al menos publicar ya deja. Lo demás lo miraré con más calma otro rato, porque ahora ando pillado de tiempo con cosas del trabajo y aquí estoy haciendo el tonto con estas pijadas (más procrastinación aún).

El asunto es que para poder manipular el contenido en remoto (incluyendo añadir nuevo contenido), pide una URL. Así, a secas, sin dar más detalles de qué URL es esa. Y no tenía ni idea de que URL darle, así que no acertaba ni de casualidad.

Luego he gastado 5 minutos que no tengo para mirar el API de Datos de Blogger (http://code.google.com/apis/blogger/gdata.html) y he visto que hay que darle la dirección del feed de los posts (intuitivo a más no poder, ¿no?), que en mi caso es http://iarenaza.blogspot.com/feeds/posts/default. Y con eso, a funcionar.

De hecho, este envío lo hago desde el propio Emacs. A ver que tal queda el formateo.

[Actualización: El formateo queda hecho unos zorros. Parece ser que hay que enviar todo en UTF-8 (tampoco la documentación lo dice) y el conversor de texto a html es una porquería por decirlo suavemente. He tenido que reformatear todo a mano desde dentro de blogger para que tenga un aspecto medianamente decente. Seguiremos probando.]

Saludos. Iñaki.

Publicar en Blogger ¡¡desde Emacs!!

Estaba dando una vuelta por los servicios de Google asociados a mi cuenta y he caido en la página de Blogger que te enseña la lista de tus blogs y debajo ponen noticias "corporativas" sobre el propio Blogger (cosas que están mejorando, etc.).

Y cual es mi sorpresa cuando bajo la vista un par de líneas y leo:
"From The Everything Can Be Done In Emacs Dept...

Blogger exposes a clean API based on Atom Publishing Protocol (APP) and Google Data APIs (GData). This Emacs module leverages this functionality to enable one to blog from within the comfort of a full-featured editing environment."
Que básicamente viene a decir que han publicado una serie de módulos de Emacs que permiten publicar tus entradas de Blogger desde Emacs.Para los que son tan especiales como yo, que opinan que un buen editor es algo fundamental para editar texto, y que los editores usados en la práctica totalidad de las aplicaciones web son una castaña (como le gusta oir a algún compañero de trabajo mío), esto es una gran noticia.

Seguramente para el común de los mortales que con teclear el texto y poder poner una negrilla o un subrayado es suficiente, Emacs es una cosa del pasado y matar moscas a cañonazos. Pero por suerte, aún es posible elegir en este mundo, y yo elijo Emacs :-)

Así que me voy a poner con ello de inmediato, a ver que posibilidades ofrece el invento. En todo caso, no creo que eso haga aumenta mi ritmo de publicación demasiado (las causas son otras, especialmente la procrastinación ;-)

[Actualización: parece ser que el código está aún en desarrollo y quedan cosas por pulir. Por ejemplo, cuando intento publicar me da un bonito error 405 Método no permitido, y no se publica nada. Habrá que seguirle la pista al asunto]

Saludos. Iñaki.