Google OS: ¿qué puede significar?

Hace escasos días Internet sufrió una convulsión por el anuncio inesperado de Google de ofrecer antes de final de año de un sistema operativo propio fuertemente ligado a su navegador Google Chrome, libre y sin prejuicios sobre el tipo de ordenador en el que podría ejecutarse.

Al parecer Google llevaba ya tiempo trabajando conjuntamente con destacados fabricantes de equipos hardware para encajar todas las piezas y producir un producto atractivo para la mayoría de consumidores.

La sorpresa venía sobre todo porque, aunque muchas voces ya habían avisado de que esto tarde o temprano sucedería, nadie se esperaba un anuncio tan pronto y tan decidido. Sin embargo, en realidad todo tiene bastante sentido si lo miramos con cierta perspectiva. Read the rest of this entry »

De vuelta de FOSDEM 2009

Este fin de semana pasado Angela y yo estuvimos en el congreso europeo de desarrolladores de software  libre, FOSDEM. Se celebraba, como todos los años, en la Universidad Libre de Bruselas.

Al contrario que otros congresos, éste apenas tiene presencia institucional o empresarial y todo lo llenan los propios desarrolladores o proyectos libres.

Read the rest of this entry »

FOSDEM 2009

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Angela y yo iremos este año al congreso europeo de software libre más importante. Nos hemos decidido este fin de semana, a sólo doce días del comienzo. Es en Bruselas, una ciudad desconocida para nosotros. Podéis ver el nivel del congreso echando un vistazo al panel de charlas.

Habrá que planificar bien porque una equivocación en una mañana puede tener consecuencias muy serias. Para ello, me temo, habrá que realizar un pequeño proceso de investigación de los ponentes y su capacidad de hablar en público.

Otros viajes que tenemos en mente son:

Aetherica, convención de fantasía en Inglaterra, en junio.

San Diego Con, posiblemente la mayor feria del comic del mundo, en julio.

Visión geek

Screenshot (using terminator)

Había oído hablar de una aplicación llamada “terminator” para sistemas GNU/Linux. Sin embargo,  no fue hasta hoy cuando la probé y me encantó combinar su potencia a la hora de crear miniterminales con el número de programas interesantes que no requieren otra cosa que una consola de texto para funcionar. Si pincháis en la imagen os llevará a la foto en flickr en donde hay más detalles.

El resumen es: monitor de cpu/ram/procesos, reproductor de música, cliente IRC, editor para programación, cliente de correo, navegador web y log de un servidor de pruebas.

Móvil libre Neo Freerunner: primeras impresiones

Si buscáis en el blog por posts relacionados con el móvil Neo Freerunner, veréis que llevo al menos un año esperándolo (en realidad, dos).

Llegó este lunes el paquete del Grupo de Venta de Madrid y como las entregas iban a ser poco predecibles (10 unidades) decidí sortear limpiamente cada uno de ellos y grabarlo en vídeo para que los que habían depositado su confianza (y dinero) en mí vieran que no había tratos de favor.

Actualmente sólo me queda por entregar uno de una persona que vive fuera de la Comunidad de Madrid.

Bueno, sobre el móvil en sí tengo los siguientes comentarios:

Read the rest of this entry »

Modelo abierto vs. Modelo cerrado (Neo Freerunner vs. IPhone)

Tenemos dos teléfonos móviles con características de PDA: el Neo Freeruner de la empresa OpenMoko y el IPhone 3G de la empresa Apple.

Como no pretendo ser un fanboy, reconoceré que el IPhone está claramente pensado para el usuario final y el Neo Freerunner es todavía un juguete para hackers o early adopters. Las características hardware son de la misma liga aunque con importantes diferencias:

Read the rest of this entry »

En la Euskal Encounter 2008

Este fin de semana largo me encuentro con tres colegas del trabajo en el Bilbao Exhibition Center (BEC) para participar en la Euskal Encounter 2008.

Se trata de pasar unos días abducido por hordas de aficionados a la informática. En la práctica, muchos de ellos vienen a jugar en red pero hay bastantes que dedican parte de su tiempo a cuestiones de mayor calado.

Entre ellos tengo intención de encontrarme yo y avanzar en un proyecto software personal.

Os dejo una fotografía tomada desde un punto alto y en donde sólo se puede ver un tercio de todo el recinto.

Aparte de esto, tres personas del departamento que dirijo en la empresa organizamos un concurso de programación rápida o Fast Coding. El ganador se llevará un Asus EEE PC y el finalista un robot programable. Todo bajo el lema del software libre, claro.

Python como organismo vivo

A estas alturas muchos lo habréis visto pero un tipo llamado Michael Ogawa ha combinado la historia de las contribuciones en el código fuente de algunos proyectos de software libre en una película original.

De entre ellas, destaco la del lenguaje de programación Python.


code_swarm – Python from Michael Ogawa on Vimeo.

Producir un banner Flash empleando sólo software libre

Afortunadamente, es posible imaginar una animación Flash compleja y llevarla a cabo utilizando exclusivamente software libre.

Este artículo no tiene la forma de un tutorial paso a paso pero sí quisiera dar unas directrices generales que a muchas personas pueden resultar útiles.

Read the rest of this entry »

Google App Engine: amor a primera vista

Google Appengine consiste en tres elementos fundamentales:

  1. Un SDK (cómo no) del estilo “aplicaciones web desarrolladas a toda velocidad”.
  2. Un panel de control web para monitorizar la aplicación (picos de CPU, errores, versionado, etc).
  3. La infraestructura distribuida de Google para almacenamiento, cálculo, escalabilidad, APIs, etc.

Hay una serie de vídeos muy ilustrativos en la página oficial de este proyecto de Google.

Preguntas que yo me hice y respuestas que obtuve:

  1. ¿A quién va dirigido?: A cualquier desarrollador web con cualquier nivel de experiencia. Lógicamente, a mayor experiencia, mejores resultados en menos tiempo.
  2. ¿Qué lenguaje de programación soporta?: Muchos en el futuro, actualmente python.
  3. ¿Usa algún framework preexistente por debajo del que podamos hacer uso?: Sí, Django ¡!
  4. ¿Cuánto cuesta el “hosting” de Google para tus aplicaciones?: No queda claro pero tiene pinta de que será gratis en una versión “normal” y si tienes una megaweb de millones usuarios tendrás que comprar espacio en disco, más CPU, etc.
  5. ¿Cómo se hace un deploy de tu aplicación web?: la idea es que usas el SDK en tu máquina local y en cualquier momento ejecutas una orden en consola que se conecta a Google y almacena la nueva versión de aplicación. Interesante saber que desde el panel de control web puedes reactivar una versión antigua de tu aplicación instantáneamente (por ejemplo, una que no contuviera un error malvado).
  6. ¿Limitaciones en la API?: tres: nada de abrir sockets alegremente, los encapsulan con una API de Google. nada de guardar archivos en el disco duro (no hay), usas su base de datos a través de la API. Nada de threads, la arquitectura hardware y el Django que hay por debajo ya se encargan de todo eso por ti. Así que son limitaciones pero Google te ofrece una alternativa adecuada.
  7. ¿Qué sistemas operativos pueden usar el SDK localmente?: GNU/Linux, Mac y Windows. En realidad, cualquier entorno que soporte Python nativamente.
  8. ¿Esto es una beta o qué?: Sí pero es bastante funcional y merece la pena probarlo.
  9. ¿Dónde puedo ver aplicaciones realizadas con GAE?: aquí.
  10. ¿Es otro paso para la dominación del mundo por Google?: es posible. Imagino que quieren crear una red de aplicaciones web fácilmente integrables con sus otros servicios (google maps y gmail son jugosos ejemplos) y quizá promuevan el uso de su programa AdSense de anuncios pero al final, viendo los vídeos de presentación y la gente involucrada (el propio Guido, creador de Python), es un conjunto de herramientas que facilitan la creación y mantenimiento de aplicaciones web complejas.

Personalmente, me encanta que hayan elegido Python como lenguaje inicial y Django como framework MVC en particular. Google es muy pro-python pero hasta ahora se circunscribía fundamentalmente a desarrollos internos. Con este paso promueven este lenguaje, muy maduro y flexible, para desarrollos de terceros.

ISO aprueba OOXML de Microsoft

ISO, el organismo internacional relacionado con estándares más citado y buscado, ha resuelto aprobar la propuesta de Microsoft para Office Open XML (OOXML) como estándar ISO 29500. Sin embargo, las bochornosas irregularidades que han acompañado al proceso ya desde su comienzo en septiembre con una primera votación en contra de la propuesta, hacen de este bautizo un escándalo relacionado con corruptelas, mala praxis, desinformación, FUDs varios y manipulaciones de los diferentes comités nacionales de ISO.

No es que esté decepcionado con la forma en que ISO ha gestionado este proceso, que lo estoy, ni sorprendido de que países con limpieza burocrática como Noruega votarán a favor con un 80% de votos del comité en contra, que también lo estoy, es que estoy directamente cabreado. Al parecer los estándares internacionales tan importantes para el consenso técnico. la interoperabilidad y la independencia de los fabricantes cuentan en sus filas con un nuevo miembro, OOXML, mediocre, mal documentado, con una nula intención de ser “multiplataforma” (tómate algo, MS!) y que viene a competir con ¡otro! estándar ISO, ODF, con especificaciones libres y que cumple con las mismas funciones sin levantar sospechas).

Hasta qué punto Microsoft ha “supervisado” el proceso de votación que sacó una nota de prensa oficial anunciando el resultado positivo antes que la propia ISO… Es un día triste para la transparencia en los procesos de aprobación de estándares y un insulto a la inteligencia a la comunidad de desarrolladores.

Naturalmente que habrá habido otros procesos dudosos en el pasado pero la cantidad de esfuerzo destinado a darle un vuelco a la votación inicial de septiembre es indicativa de hasta qué punto Microsoft quería que ISO aprobara OOXML costase lo que costase, algo que una propuesta seria de estándar no hubiera requerido.

Enlaces de interés:

Nota de prensa de ISO

20 razones por las que OOXML huele mal

Listado actualizado de irregularidades en el proceso de votación (por países)

Serie de artículos: «Aprender a construir páginas web: una guía práctica»

Resumen

Internet no es la web por mucho que escuchemos esta metonimia incesantemente pero es cierto que, aparte del correo electrónico, es lo que más identificamos con los recursos que nos proporciona estar conectados a la red de redes. En muchos casos, por cuestiones personales o laborales, hemos de participar en la construcción de portales o páginas personales y no disponemos de conocimientos suficientes de programación, HTML o diseño. Este artículo propone un camino óptimo para obtener un grado de soltura suficiente para embarcarnos en un desarrollo de complejidad similar a la de un blog o un pequeño portal. No se dan ejemplos ni se detallan los pasos técnicos. Tan sólo se ofrecen las herramientas y el orden idóneo para su uso. Corresponde al lector interesado su adquisición y aprovechamiento completo.

Nota: se presupone conocimiento de inglés técnico como para poder leer documentación en ese idioma y una dedicación aproximada de 100 horas para completarlo en su aproximación más rápida y 200 horas yendo más despacio o teniendo dificultades.

Primera parte: lenguaje de programación

No todos los lenguajes de programación sirven para desarrollar webs. Tampoco hay muchos que puedan resultar adecuados como primer encuentro con la programación más allá de las nociones básicas. Mi consejo es apostar por el lenguaje de programación Python.

Estimo entre 35 y 70 horas el paso por esta parte.

Read the rest of this entry »

svnalert: siempre al tanto de los cambios en el código de tus proyectos software

En un artículo que escribí hace seis meses hablaba de las herramientas que nos informan de la actividad de los repositorios de código fuente de los proyectos software. En aquel caso, podíamos ver estadísticas en la web o pequeños mensajes en un canal de IRC.

El otro día se incorporó una chica en mi departamento, a la que llamaremos Jean Mary Clockworth para respetar su deseo de ser anónima siempre que sea posible, y le pedí que nos hablara de proyectos en los que hubiera participado. Entre ellos destacaba uno relacionado con la descripción mediante XML de personas, proyectos, organizaciones, etc y su procesamiento por agentes externos (relacionado con la web semántica). Durante la conversación, mostré mi interés en que un sistema informara de manera sencilla a los desarrolladores de un equipo de los cambios en un proyecto efectuados por uno de ellos (nivel menos tres en web semántica pero bueno…). Para ello, se generaría un XML con los cambios y un agente externo lo procesaría e informaría. El tipo de XML más a mano que encontré fue RSS y configuré varios de mis repositorios Subversion para generar tales XMLs inmediatamente después de cada acción de modificación del código fuente. Después, programé una sencilla aplicación que, a intervalos regulares, comprueba si hay cambios en esos XML/RSS y avisa en forma de breve notificación.

svnalert_p.png

De esta manera, si estamos participando en un equipo relativamente grande de desarrolladores en diversos proyectos y es probable que vayamos a modificar los mismos ficheros en periodos de tiempo solapados, estaremos convenientemente avisados y se generará un clima de transparencia e información preventiva muy útil.

También, tras encontrar RSS de otros proyectos de software libre, me he suscrito y observo encantado como a horas intempestivas salta el popup de turno poniendo nickname y comentarios a los cambios realizados.

En realidad, la aplicación en su estado actual no se merece ni el título de alfa aunque es operativa y sirve a mis experimentos. Se podría decir que no es más que un feed reader de un changelog venido a más pero intentaré aprovechar el potencial del aviso que no reclama usar una aplicación y que se parece más a alertas de correo o mensajes de chat. Me atrae mucho dar protagonismo al momento exacto en el que la decisión de volcar cierta información a ua fuente común se produce. ¡Casi parece una especie de twitter pero de commits y no sé si me interesa esa analogía!

Lo que veo difícil es que funcione en MS Windows o Mac por una librería que empleo (python-notify) pero aún no lo he comprobado.

Regalo de Navidad adelantado

Greetings from Amazon.com.

We thought you'd like to know that we shipped your items, and that this
completes your order.

---------------------------------------------------------------------
Qty Item Price Shipped Subtotal
---------------------------------------------------------------------
Amazon.com items (Sold by Amazon.com, LLC):
1 The Definitive Guide to Django $29.69 1 $29.69

Shipped via Expedited Int'l Shipping (estimated arrival date:
18-December-2007).

Justo cuando se publica la noticia de que ya podemos descargarnos Ruby on Rails 2.0… :-) Llevaba desde agosto esperando este libro que ha sufrido continuos retrasos… Hmmm.. algunos días de vacaciones en enero, frío en la calle, calor en la casa, música que acompaña y un editor de programación que empieza con:

#!/usr/bin/env python

Actividad reciente

Estos últimos días he estado bastante liado.

  • Estuve en Plasencia, participando en un panel de «expertos» en iniciativas en torno al Software Libre relacionadas con el mundo empresarial. A mi lado tuve a Iván Forcada, de Caja de Guadalajara, Julio Yuste, de Vivernet y Eladio Nieves, de BBVA-Gobernalia. Los organizadores, FUNDECYT, nos trataron excelentemente y creo que la audiencia encontró nuestras minicharlas interesantes. Por cierto, al menos entre semana, en Plasencia no hay nadie por las céntricas calles nocturnas.
  • Me he encariñado con el reproductor de música GNOME-friendly (lógicamente en GNU/Linux) Exaile. De momento va por la versión 0.2.11, así que ya os podéis imaginar lo que queda aún por recorrer. Angela me dio una idea para un plugin relacionado con Youtube y tras codificarlo y hacerlo funcionar en la 0.2.10, dejó de hacerlo en la 0.2.11, así que he escrito a los desarrolladores preguntando sus planes de estabilización de la API para plugins.
  • Tengo muchas ganas de leer este artículo y hacer alguna curiosidad (resumen: GRID computing con software libre y un toque de Python).
  • Cuando el año pasado estuvimos en Japón, Angela y yo nos compramos (bueno, yo me compré bajo su mirada escéptica) el nuevo Lego Mindstorms NXT; un conjunto de piezas Lego técnicas, más una CPU y software de desarrollo. Con todo ello se pueden construir robots bastante complejos (testimonios rápidos en youtube: vídeo 1, vídeo 2 y vídeo 3). El problema es que la manera de programar fue inicialmente como su predecesor RCX, con una herramienta visual y que no funciona en GNU/Linux. Pasados un meses, ya se puede programar en NXC (Not eXactly C), un lenguaje de programación similar a C con el aroma característico de la programación de bajo nivel.
  • He estado jugando con la idea y el software alfa actual relacionados con GNOME Online Desktop. He seguido el CVS de cerca, compilando y empaquetando para mi Fedora 8 de pruebas. Lo cierto es que es bastante poco usable actualmente pero estoy intentando ver cómo contribuir porque la idea de mezclar aplicaciones instaladas con recursos en Internet me atrae mucho.
  • Ayudé un poco a Angela en su software de monitorización y cálculo de datos relacionados con satélites y su exposición a radiación solar. Su programa se ha vuelto un pequeño monstruo y yo sólo me veo capaz de reescribir algunas líneas al estilo Python o desarrollar un pequeño programita que monitorice los threads que lanza para que siempre estén activos y sanos.
  • Releí el libro «The principles of beautiful web design» para encarar el diseño de una nueva web para el smial de Hammo, la delegación en Madrid de la Sociedad Tolkien Española.

Aparte de esto, el trabajo ha sido bastante intenso, con reuniones de proyectos y planificación para lo que queda de año. El viaje a San Francisco de marzo está en el aire mientras no confirmen los de LugRadio las fechas y el lugar. Una pena porque tenemos pensado aprovechar el viaje y conocer el Laboratorio de Propulsión Jet de la NASA y hay que reservar con mucha antelación una visita guada.

GNOME cumple diez años

He leído esta mañana en OSNews que el entorno de escritorio para sistemas GNU/Linux (y otros *NIX), GNOME, ha cumplido diez años. El mensaje original anunciando el proyecto fue éste:
«We want to develop a free and complete set of user friendly applications and desktop tools, similar to CDE and KDE but based entirely on free software.» y lo escribió Miguel de Icaza, hoy un conocido gurú y hacker del software libre (GNOME, Mono, Novell).

Mi evolución en gestores de ventanas o entornos de escritorio ha sido algo similar a: Fwm2, WindowMaker, KDE, Enlightenment, FluxBox, KDE, GNOME, KDE, GNOME, KDE, GNOME. Por el camino empleé otros muchos como XFCE o BlackBox, pero los últimos años ha sido un vaivén entre KDE y GNOME.

Read the rest of this entry »

¿Adaptar o contribuir en software libre?

Desde hace más de una década se viene hablando de software libre en una u otra forma. Afortunadamente, cada vez es menos una cuestión de GNU/Linux y más de modelos de desarrollo o de negocio.
En las diferentes charlas a las que podemos asistir hoy en día se mezclan frases como «la economía de las personas», «web 2.0», «servicios de valor añadido», «desarrollo distribuido», «copyleft» o «dictadores benevolentes».

Todas parecen coincidir en que el software libre –la cultura libre– es una marcha imparable porque procede de los individuos exigentes y alfabetizados digitalmente. Esto es más una voluntad bienpensante que una realidad hoy en día, pero hay que reconocer que, de momento, no hay señales de alarma que ilegitimen ese sueño.

Sin embargo, en cuanto a los modelos de desarrollo referidos al software libre hay un exceso de confianza ciega en «los otros». Efectivamente, ya sea porque nos consideramos pequeños en la vorágine copyleftera o porque nos gusta descansar sin más en las espaldas de lo que los gurús comentan, caemos en el error de repetir como loros las siete maravillas del software libre.

Read the rest of this entry »

Ni aplicaciones pesadas ni AJAX: Mozilla XUL

Desde el año pasado se ha venido hablando de la Web 2.0 y las maravillas de AJAX (trasladar la sensación de una aplicación instalada en el PC a una página web) como la evolución natural de las aplicaciones informáticas.

Cualquier web que nazca bajo el paraguas de 2007 y no incorpore el stack completo de efectos AJAX es denigrada públicamente e ignorada al segundo día. Los usuarios quieren poder darse de alta con un clic, arrastrar objetos con el ratón y ver cómo se actualiza una sección de la web sin necesidad de recargarla entera. Todo esto aderezado con RSS y búsquedas inmediatas. Pues bien, hay otro camino que merece la pena estudiar hoy mismo.

Read the rest of this entry »

BluX – Respuesta automática a dispositivos Bluetooth

El otro día me dijo Alex que además de haber hecho funcionar el lector de huellas digitales en el IBM Thinkpad x60s que ahora tenemos de portátil de empresa, lo había configurado para que al detectar la pérdida de señal de su móvil con bluetooth se bloqueara la pantalla y al detectar de nuevo la señal se desbloqueara solo (pidiendo la huella digital previamente).

La combinación entre el uso del lector de huella digital con un detector del dispositivo bluetooth de tu elección es un combo demoledor, pero una vez encontrado el script que gestiona la parte bluetooth, pensé en mejorarlo un poco.

Read the rest of this entry »

Gobby y su relación con eXtreme Programming

Gobby es un sencillo programa para compartir la edición de ficheros de texto plano entre dos o más personas. Una de ellas se erige como «servidor» y permite las conexiones remotas de los demás. A partir de ahí, por cada sesión, los usuarios pueden crear ficheros de texto a los que invitan a participar (en Gobby se usa el término «subscripción»).

Aparentemente, parece un sistema de chat a lo IRC pero las diferencias se notan en seguida. La ventana de charla ocupa normalmente sólo un sexto del espacio vertical de Gobby, dejando los otros cinco sextos para mostrar el texto editable.

Read the rest of this entry »