30 de julio de 2009

El gran artículo que iba a escribir

La mala suerte existe. En el post de ayer mencioné que estaba preparando un artículo que yo pensaba que iba a gustar mucho. Ese magnífico post iba a ser una descripción detallada de cómo es y funciona btrfs a bajo nivel, que llevaba preparándo tan seriamente como si aquí me fueran a pagar por escribirle. Como nadie había escrito aun algo así (es lo que tienen las cosas nuevas), pensaba que tendría bastante éxito en la bloglucosa linuxera hispana. Ya andaba yo regocijándome por adelantado, como en el cuento de la lechera, de los dos regalices que iba a poder comprarme con lo que me diera adsense por las visitas. Asi que imagínense mi sorpresa hace apenas 15 minutos, cuando me pongo a leer la versión gratuita de "LWN weekly edition" liberada esta semana y llego a este artículo.

Un artículo en el que Valerie Aurora (la chica del artículo del otro día) no solamente da una descripción de como funciona btrfs internamente, tambien nos cuenta su historia, las diferencias de su diseño con el de ZFS (que son más importantes de lo que podría parecer) y las ventajas que implican, etc. Asi que les recomiendo que lo lean (ranking D'oh de 0-10: 11). Con lo cual el magnífico post que iba a preparar pierde parte de su gracia. Adios a los regalices. Sic transit gloria mundi.

Aun así, pienso escribir mi post, porque el artículo de LWN se limita a describir el b+tree, y hay muchos otros aspectos interesantes.

29 de julio de 2009

Clutter 1.0, virt-manager 0.8 y...Debian

Los blogs no son ajenos a la inactividad propia del verano (en parte, porque me estoy preparando para un artículo que creo que gustará mucho, y además hay que apoyar las terrazas de los bares en estos momentos de crisis para que no desaparezcan), sin embargo hoy parece ser un día noticioso apropiado para hacer lo que cualquier medio de comunicación: Mezcla indiscriminada de noticias irrelevantes.

La primera noticia es la publicación de Clutter 1.0.0. A diferencia de lo que pueda parecer viendo sus vínculos gnomitas, esta magnífica librería no está basada en GTK (existe código para "embeber" escenas de clutter dentro de aplicaciones GTK, pero tambien se ha hecho algo idéntico para QT), aunque si en GLib. A pesar de su juventud ya ha sido utilizada ampliamente en Moblin, y el Gnome Shell del futuro Gnome 3.0 tambien la utiliza, y tras llegar a la versión 1.0 no hay razón para pensar que su adopción no se va a propagar al resto de proyecto. Todo parece indicar que con el tiempo terminará siendo una librería clave para los escritorios Gnome (QT tiene sus propios inventos equivalentes en camino).

Otra noticia es la publicación de virt-manager 0.8. En esta versión se añaden wizards para añadir el puerto serie, paralelo, tarjetas gráficas a las VMs, rediseño del wizard de clonación de VMs, rediseño de partes de la UI incluyendo la ventana principal, icono en el systray, UI para manipular parámetros de seguridad y soporte para asociar una VM a una CPU concreta...en resumen: casi todo mejoras de UI. Algo que no es sorprendente, ya que virt-manager no es más que una UI para libvirt, pero no por eso es menos importante, de hecho es bastante importante. El código de todos estos proyectos, por cierto, al igual que el de libvirt, y muchas de las mejoras que se están añadiendo a QEMU sale en gran medida del bolsillo de Red Hat.

Por último, tenemos la noticia de que Debian va cambiar su ciclo de desarrollo para pasar a otro en el que la "congelación" se harán cada dos años. El propósito parece ganar "predictibilidad", yo lo llamaría más bien poner algo de orden, y no cabe duda que lo logrará Pero aunque sus enormes esfuerzos por mantener una gran distribución muy estable y muy segura -en ese aspecto no tienen envidia de las grandes distros comerciales- son loables y muy necesarios, incluso imprescindibles para un gran número de usuarios, Debian sigue con su eterno problema de ser demasiado antigua para el escritorio del geek linuxero medio.

La eterna respuesta de Debian a este dilema es: "usa testing". Y eso es lo que ha terminado siendo Debian: una gran masa de usuarios que usa stable en servidores, más una masa que usa testing o unstable para el día a día. A menudo no lo hacen por capricho, sino por obligación: sale hardware nuevo -en dos años sale mucho hardware nuevo, y además en stable nunca se utiliza la última versión stable de upstream, lo cual agrava el problema aun más- y el Linux/X.org de la última versión estable no lo soporta, asi que resulta más comodo arrancar directamente en testing que ponerse a utilizar backports que de todos modos introducen software nuevo e inestable equivalente al de testing. Allí, en testing, o en unstable se acaban usando sucesivas versiones upstream estables de Gnome/KDE/X.org/Linux antes de que Debian saque una sola de su stable. Pero testing no es equivalente a Ubuntu o Fedora, asi que la gente sigue utilizando y pasándose a otras distros, y Debian ha pasado a ser noticia una vez cada x años mientras que el resto de distros se llevan toda la fama y la mayoría de base de usuarios de escritorio. El contrato social de Debian dice en su punto 4:

"Nuestra prioridad son nuestros usuarios y el software libre: Nos guiaremos por las necesidades de nuestros usuarios y de la comunidad del software libre. Sus intereses serán una prioridad para nosotros. Daremos soporte a las necesidades de nuestros usuarios para que puedan trabajar en muchos tipos distintos de entornos de trabajo."

Sin embargo, viendo el comportamiento tradicional de Debian más bien parece que dijera "nos guiaremos por el ideal de construir la distribución más estable y segura de todas, todo lo demás es secundario". Como resultado, muchos de sus usuarios se han pasado a otras distros, en especial Ubuntu, en busca de una necesidad de modernismo que Debian se niega a cumplir tan bien como las cumplen otros.

En mi opinión, Debian infrautiliza estúpidamente su vasto potencial no haciendo, por ejemplo, lo que hace Canónical: nuevas versiones cada 6 meses y, de vez en cuando, una versión LTS que es estable, contiene software moderno y, al mismo tiempo, promete soporte a largo plazo. No es tan estable como una -stable de Debian, pero acaba siéndolo con el tiempo porque van incorporando las versiones bugfix de upstream que Debian stable incluirá de serie cuando sea publicada tiempo despues. El soporte de hardware de Ubuntu LTS es moderno e incluye siempre la última o penúltima versión estable del kernel, según coincidan las fechas: Debian 5.0 salió en Febrero de este año con Linux 2.6.26, una versión de Julio del 2008, Ubuntu 8.04 LTS salió en Abril del 2008 y su kernel era de Enero de ese mismo año. Y ni a los admins más conservadores les gusta empezar proyectos con versiones de, por ejemplo, PHP, anticuadas; ya que vas a hacer algo nuevo mejor empezar con la última versión estable más moderna y que se vaya ajando ella sola con el tiempo. Por eso no es ninguna sorpresa que cada vez más gente esté utilizando tambien Ubuntu LTS en servidores.

23 de julio de 2009

No fue por voluntad propia

Al final, me alegro de no haber escrito ese post donde decía que Microsoft había publicado drivers GPL para que Linux funcione en Hyper-V solo porque tenían la presión comercial de que Linux funcionara virtualizado en sus servidores. Porque al final se ha revelado que, en realidad, lo han hecho para no ser acusados de violar la GPL.

Resumiendo, parece ser que Microsoft ya tenía esos drivers, pero eran el típico blob binario + algo de código-pegamento para encajarlo en el kernel. Violaba, por tanto, la licencia, al igual que lo hace prácticamente todo driver binario, aunque hay casos que pueden escapar a la noción de "derivado" de la GPL. En cualquier caso, parece que se pusieron en contacto con Microsoft, y bien sea por miedo a que la prensa mundial les acuse de violar el copyright de Linux (¡Violadores!), o porque Greg Kroah-Hartman les ha aclarado las dudas que podrían tener respecto al software libre, o por una mezcla de ambas (personalmente siempre opto por las mezclas), se decidieron a liberar el código y, en una magnífica operación de marketing, han presentado esta liberación de código como una colaboración con el software libre. Y todos nos lo habíamos tragado.

Habría que preguntarse por los aspectos morales. ¿Debemos reprochar a Microsoft la violación de la GPL a pesar de todo? ¿Hay que ridiculizarles por haber montado esta operación de encubrimiento de un delito contra el copyright? ¿Debería Greg Kroah-Hartman haber dicho algo sobre el tema? Yo pienso que no: la GPL exije que se muestre el código, y aunque no lo hicieran al principio, parece que han accedido rápida y fácilmente a hacerlo -presionados o no-, asi que en la práctica ha cumplido. No se puede decir lo mismo de otras empresas.

Por otra parte, está claro que estamos ante una excepción. Microsoft tiene que tener cierto interés en que Linux pueda funcionar bajo Hyper-V correctamente tan solo para que la gente no se vea forzada a recurrir a Vmware/Xen/KVM (por cierto, ya que sacamos a KVM a la palestra, miren que bonita futura feature para virt-manager). Dudo que volvamos a ver cosas tan notables como esta.

16 de julio de 2009

Sobre ZFS y btrfs

No se pueden imaginar las horas que me he pasado googleando y leyendo en busca de las diferencias de btrfs respecto a ZFS y las ventajas o desventajas que tienen. Aparte de la idea de "punteros inversos" de btrfs, y su sfck, no parecía haber ninguna más. No es tan fácil encontrar datos, al ser tan nuevos aun no se ha escrito mucho en detalle sobre ellos. Por eso me ha agradado encontrar por fin algo leyendo esta entrevista a Valerie Aurora, desarrolladora de sistemas de archivos en la nómina de Red Hat, donde dedica un par de párrafos a describir esas diferencias. Pero lo más importante, y lo que la concede autoridad extra, es que tambien fue empleada de Sun y co-desarrolladora de ZFS durante dos años. Sabe, por tanto, de lo que habla, y su posición es más neutral que la de otros:

"ZFS and btrfs are similar in structure and goals in a lot of ways. Features they share are copy-on-write everything, checksums, writable snapshots, storage pooling, simple administration, ad nauseum. More interesting are the major differences in architecture. At the highest level, ZFS uses plain ol’ trees of pointers to blocks, FFS-style, and variable block sizes, inspired by the SLAB kernel memory allocator. Btrfs uses a specialized, COW-friendly form of b-trees (as presented by Ohad Rodeh at LSF ‘07) and extents. Btrfs is actually slightly more exciting than this: every single piece of data or metadata in btrfs is an item in a b-tree, and items are packed together indiscriminately, without regard to their types. ZFS reduced all file system metadata and data to objects and related operations; btrfs reduced them all to items in a b-tree. Now all the interesting decisions are about how to assign keys to items and order them inside the b-tree.

Now for personal opinion/zealotry time. Initially, I thought the ZFS approach was the simpler and cleaner - at the time, the code to manage b-trees and extents was complicated enough, and adding copy-on-write and checksums to that made your brain want to explode. It took Ohad Rodeh’s simplified, robust b-tree algorithms and Chris Mason’s everything-is-an-item insight to change my mind. I’m a convert."

14 de julio de 2009

¿Por qué tiene éxito Twitter?

No voy a esconder la cabeza, yo siempre pensé, y creo que lo he dicho aquí, que Twitter era una mierda pinchada en un palo, que iba a durar lo que durara la moda, y que en el remoto caso de que la gente fuera tan idiota como para querer usar algo así, los servicios de mensajería instantanea podían copiar la idea fácilmente y, ya de paso, subir el límite de caracteres. El tiempo ha probado que estaba equivocado. ¿Por qué ha tenido tanto éxito twitter, entonces?

Una de las claves es la que podría afirmarse que es su principal debilidad: la brevedad de los mensajes. Autolimitar la expresividad a un puñado de caracteres en principio es una limitación absurda, pero no lo es. En una entrevista, Borges contaba que podía parecer que el verso libre es más sencillo que el verso tradicional, pues evita la obligación de tener que encajar los versos en la rima y la métrica concreta de la versificación escogida. Sin embargo, aclaraba Borges que con el tiempo había llegado a la conclusión opuesta: El verso con una estructura definida es un recipiente que obliga al pensamiento a adaptarse a unos límites, a ir en una dirección definida, mientras que con el verso libre el poeta se enfrenta a las infinitas posibilidades del lenguaje y tratar de discernir en ese pajar inabarcable no ya una aguja, sino la mejor de todas las pajas (batalla inhumana). Con Twitter pasa algo parecido, la necesidad de limitarse a 140 caracteres obliga a los usuarios a prescindir de los malos usos que aparecerían de disponer de más espacio, incita a concentrar la máxima expresividad en el mínimo espacio, hace de cada algo interesante que merece la pena leer. Muchos de los Tweets ni siquiera alcanzan el límite ni parecen requerir más, pues los usuarios se adaptan mentalmente a él.

Además, la brevedad consigue que leer decenas de Tweets sea algo sencillo, empleando tan solo unos pocos segundos. Al aumentar la longitud de los mensajes el tiempo necesario para leerlos y contestarlos puede multiplicarse exponencialmente. La fluidez de las conversaciones en Twitter depende directamente del límite de caracteres.

La otra clave del éxito de Twitter sin duda son las posibilidades de comunicación entre usuarios, que se han logrado combinando elementos del IRC y del IM. Hay millones de personas, y puedes dirigir tus mensajes a cualquiera de los usuarios, que todo el mundo los lea, y que el mundo lea los tuyos. Es decir, las comunicaciones entre personas son fundamentalmente públicas, porque incluso cuando son entre dos personas la conversación es accesible a otros, y se escribe teniendo esto en mente (si, se pueden configurar las actualizaciones como privadas, pero la mayoría no lo hacen). Esta es la razón por la que ningún sistema de IM puede lograr el éxito de twitter implementado un "visor de cambios de estado" de los contactos (como ha hecho Messenger). El modelo IM es fundamentalmente de relaciones privadas y estancas, se requiere agregar al contacto y que él te acepte. Twitter permite comunicarse con cualquiera sin que él te acepte. Puedes seguir a alguien sin que él te siga a ti, y viceversa. Hay algo remotamente parecido a "canales". Mal visto, Twitter es un IRC con gestión de contactos adaptada al carácter público de las conversaciones, con almacenamiento persistente y con interfaz web.

Mirado así, está claro que Twitter no es ninguna moda, sino que es algo que va a durar. Eso si, tarde o temprano lo comprará alguien porque por muy útil que sea me parece dificil sacar un solo céntimo de beneficios al sitio. Y no esperen que yo lo use, me cree una cuenta hace dos años, puse un mensaje de prueba y no he vuelto a encontrar motivos para decir nada más.

8 de julio de 2009

¿Qué demonios ha anunciado realmente Google?

Todo el mundo lo está llamando cosas como "Chrome OS", "cloud-based operating system", "PC operating system", pero no habrá fuerza divina que me impida continuar utilizando las convenciones de toda la vida y denominar a lo que acaban de anunciar "distribución Linux". Otra distribución Linux más, pues no tiene nada que ver con Android.

La primera impresión que da este anuncio es que la comunidad Linux y del software libre se enfrenta a una nueva era. El apoyo de Google me parece que será tan importante y decisivo como lo fue en su día el de IBM. Al igual que en aquel caso, Google no parece sacar beneficio de este SO, al fin y al cabo sus ingresos vienen de la publicidad, el corazón real de su negocio son sus gigantescos clusteres. ¿A qué viene invertir tiempo, dinero y reputación en esto, si la interfaz de sus aplicaciones web funciona igual en IE que en Chrome, salvando las diferencias técnicas entre ambos? IBM confió en Linux no para ganar dinero con ello -no tiene su propia distro-, sino más bien como barrera contra Microsoft, parece aceptable pensar que Google esté haciendo exactamente lo mismo.

Pasando al SO en concreto, ¿qué anuncia realmente Google? En todos los sitios web donde se ha hablado, donde se está hablando de este anuncio, se ha dicho que la frase "los sistemas operativos en los que funcionan los navegadores fueron diseñados en una era en la que no había web" es una pulla hacia Windows. Mi opinión sin embargo es que tambien se refiere tanto a Linux como a Mac OS X. Y cuando dice que el nuevo SO Chrome es "nuestro intento de re-pensar como deberían ser los sistemas operativos", da la impresión de que no están hablando de crear la enésima distribución Linux, ni tan siquiera de ofrecer una distro con un nuevo sistema de ventanas, como afirman que han hecho, sino de algo diferente.

De momento solo sabemos de cierto que la descripción del stack de software de esta distro como "un sistema de ventanas nuevo sobre un kernel Linux" podría ser casi literal. Todo lo demás todo son conjeturas. Sin embargo, teniendo en cuenta la experiencia con Android, podemos decir que Google no tiene el más mínimo respeto a lo establecido; por ejemplo Android añade un nuevo subsistema de IPC en el kernel, y un nuevo modelo de seguridad, y muchos otros cambios (que, dicho sea de paso, han irritado a mucha gente, por considerarlos innecesarios y/o por haber sido hechos en sus oficinas, sin pedir opinión a nadie, sin esforzarse lo más mínimo por facilitar o incluso hacer posible que esas cosas pudieran ser incluidas en la rama principal del kernel).

Eso fue con Android, pero Android es Android. Cabe pensar que en este otro "Chrome OS" Google haya empleado a su mejor gente. La falta de respeto a lo establecido sería la misma, pero la genialidad de los programadores podría ser bastante más alta. Teniendo empleada a gente como Rob Pike, creador de Plan 9, ¿alguien cree posible que se dediquen a repensar "como deben ser los sistemas operativos" sin consultarle?

Cabría pensar, si se diera este último caso, que este nuevo SO fuera un gran proyecto de R&D, que incluso mandara a POSIX a tomar viento. O tal vez sea tan solo un envoltorio bonito de Chrome y un nuevo sistema de ventanas super-mega-guai. Me temo que para hacerse una idea real tendremos que esperar a que Google empiece a dar más detalles.

2 de julio de 2009

Valencia es la tierra del...sofware libre

Me acabo de enterar por LWN que Valencia (la comunidad autónoma) está aproximándose cada día más hacia el software libre, demostrando una vez más esas teorías del equilibrio entre el Bien y el Mal. Es decir, que el hecho de tener un gobierno autonómico que ha llevado a Valencia a ser proporcionalmente la comunidad con mayor deuda pública -a pesar de haber vivido una década de vacas gordas con boom inmobiliario que les permitia reducirla o al menos no aumentarla- no es obstáculo para que haya gente competente que tome buenas decisiones buena (para que no me llamen partidista añadiré que Castilla y León, que tambien ha estado gobernada por el mismo partido durante mucho tiempo, es la segunda menos endeudada, solo por detrás de Euskadi).

¿Por qué menciono todos estos datos económicos? Porque creo que son más importantes de lo que parecen, ¿se dedicaría Valencia a derrochar dinero en excentricidades de GNU/hippies con los tiempos que corren? Lo dudo (en realidad no lo dudo, los gobiernos derrochan dinero continuamente, pero sin falsas afirmaciones rotundas los posts quedan mucho peor).

La verdad es que tampoco es algo nuevo en la comunidad valenciana, hace tiempo que tienen su propia distro, y tambien tienen el aparentemente muy famoso gvsig, un programa cuya instalación en Linux es una tortura, por cierto (lo sé por experiencia propia, tuve que ayudar a alguien sin conocimientos de Linux a instalarlo). El proyecto de transición a software libre en realidad comenzó en 2003.

Los miembros del proyecto han escrito un magnífico informe sobre todo el proceso, donde se detalla los retos y dificultades a los que han tenido que enfrentarse. Y la verdad es que tras leerlo, da la impresión de haberse llevado el tema con mucha más seriedad que en Munich. Los dos principios sobre los que se basa todo el asunto son estos:

  • El proyecto no se financiará con recursos nuevos. Sólo se utilizarán los recursos ya asignados al Servicio de Organización e Informática.
  • Debe minimizarse la repercusión del proyecto en el trabajo diario del personal de la conselleria. Lo fundamental es el trabajo y no la herramienta

Como se puede ver, no se trata de ninguna guerra de religión, sino que se ha tomado como un objetivo dentro de las actividades del departamento, y al margen de intereses políticos. En el caso de Munich, no solo se ha enfatizado y publicitado exageradamente como "migración a Linux"; la decisión la tomó el ayuntamiento, no el departamento de informática, como consecuencia de ello se ha tomado como un proyecto ideológico de todo-o-nada, con un coste especial de 35€ millones, algo más que lo que hubiera costado mantenerlo todo con software propietario (esto lo han reconocido los propios promotores del proyecto).

Para que luego pensemos que en España no sabemos hacer las cosas bien cuando nos ponemos...