24 de junio de 2012

¿Que hay debajo de la "Superficie"?

Microsoft ha anunciado la tableta Surface, y el día del anuncio la prensa y toda la gente no dejaba de ponerlo por las nubes, algo comprensible que lo hagan porque parece un buen aparato. Sin embargo, se hace obvio que no es especialmente rompedor. Su gran aportación al mercado es un teclado de 3mm que por su finura puede integrarse en la propia funda, de modo que puede transportarse y utilizarse como portátil en cualquier lado

Es un buen invento, no cabe duda. Pero los chinos ya lo venden por 39€ con gastos de envío gratuitos para el iPad2, que de paso protege contra golpes, y les hay más baratos. Vale, el de Microsoft es mejor, pero quiero decir que tampoco es una algo revolucionario. Pero seamos justos, el hecho de ser una tableta convencional tampoco supone un fracaso. De hecho, el Surface parece una magnífica tableta convencional, capaz de venderse bien. Además, hay mucha gente que no conoce la existencia de los fundateclados opcionales, y debido a ello han seguido utilizando sus portátiles habitualmente. Creo que no me equivoco si pienso que a Apple le hubiera gustado ser el primero en vender algo así.

El asunto interesante es lo que esta tableta implica en el negocio de Microsoft, una compañía que solía dedicarse a hacer software que los fabricantes y ensambladores de hardware preinstalaban. Es obvio que a esa gente no les hace ni puñetera gracia que Microsoft intente competir contra ellos en su propio terreno. Ser "partner" de Microsoft implica algo más que usar sus productos y conseguir descuentos, también incluye colaboración plena a la hora de desarrollar nuevas versiones de Windows. Con el Surface, sin embargo, parece que Microsoft ni tan siquiera les ha avisado de su existencia y presentación.

Esta ocultación plantea unas cuantas incógnitas. Bien podría ser, como sugiere el artículo anteriormente enlazado, una especie de aviso a sus partners para que se pongan las pilas, una forma disimulada de decirles con arrogancia "esto es lo que tenéis que fabricar, merluzos". Es una posibilidad, aunque me parece muy poco probable que Microsoft tenga que recurrir a esto para comunicarse con ellos. Hay otra, que es la que más se ha mencionado, y es que Microsoft se está planteando en serio convertirse en un vendedor de hardware más.

Esta opción es particularmente interesante, porque significaría que eso de una empresa haciendo software y otra integrando hardware se ha acabado, nos estaríamos adentrando en una nueva era en el que las únicas empresas relevantes son las que saben juntar hardware y software. En otras palabras, significaría que el modelo de Apple de integrar hardware y software ha pasado de ser una excepción en la informática de consumo, de la que se hablaba hace no tantos años como una reliquia histórica destinada a desaparecer, a convertirse en el modelo a seguir.

Si esa es la intención de Microsoft, no cabe duda que nos esperan tiempos interesantes en el sector. Un sector donde el protagonista no es el hardware, sino el software y cómo se integra ese software con el hardware, con la nube, con otros equipos con el mismo software, y con las necesidades e intereses de los desarrolladores de aplicaciones. El hardware ha pasado a ser una función residual externalizada a Asia, y precisamente por ser algo residual y fácil de contratar, sólo las empresas con software y programadores capaces de darle vida podrían tener éxito en él. Si queremos un "año del escritorio Linux" antes de irnos a la tumba, quizás deberíamos prestar atención a estas tendencias.

18 de junio de 2012

El renacer de XFS

La vida de XFS da para muchas curiosidades. La publicación de su código con licencia GPL y port fue uno de los hitos fundamentales de la historia de Linux, uno de esos cambios cruciales que permitieron a Linux empezar a ser tomado muy en serio. XFS puede considerarse como el mejor sistema de archivos hasta la aparición de ZFS.

Sin embargo, la relación entre XFS y la comunidad linuxera han tenido varios altibajos. Nunca fue capaz de reemplazar a los Ext como sistema de archivos por defecto, tal y como cabría esperar en un principio. Su uso en los instaladores siempre estuvo considerado como algo alternativo, no ya respecto a la familia Ext sino incluso respecto a Reiserfs. A este confinamiento a un papel secundario contribuía mucho, en mi opinión, la falta de apoyo de un comunidad muy importante, la del kernel.

Y es que durante mucho tiempo, SGI intentaba mantener sincronizadas las bases de código de Linux e Irix, lo cual impedía una transición completa y hacía que XFS fuese un "ciudadano incómodo" que no se integraba muy bien con Linux. Estos problemas han sido solucionados poco a poco hasta quedar bien resueltos, pero el otro gran problema era que si bien XFS era muy bueno "con archivos grandes", como se solía decir, no lo era para otras cosas.

En concreto, XFS era verdaderamente malo con cualquier uso extensivo de metadatos. Pero malo, malo. Ext4 puede ser 20-50 veces más rápido en operaciones con metadatos, una descompresión de un .tar que en Ext4 toma 3 ó 4 segundos, en XFS tarda 60, según palabras de los desarrolladores de XFS. Y si bien mucha gente utilizó XFS para su ordenador de escritorio creyendo (erróneamente) que era más rápido, la gente del kernel no se dejaba engañar, ni tampoco los mantenedores de las distribuciones.

Para entender por qué XFS era tan lento, hay que recordar algo que se ha repetido aquí varias veces: al igual que hay navegadores lentos y rápidos para ejecutar el mismo código javascript, en un sistema de archivos lo fundamental es su implementación, mucho más que su formato de disco. El código de Ext3 y 4 tienen una optimización que permite unir varias transacciones que estén en memoria antes de ser escritas a disco en una sola, de modo que son registradas en el journal y posteriormente al disco simultáneamente. Al descomprimir un .tar se crean miles de archivos, cada uno de los cuales es internamente una transacción, y Ext4 las unifica de modo que se convierte en una sola.

XFS no tenía esa clase de optimizaciones, pero finalmente la han implementado. Y además, unas cuantas mejoras más de escalabilidad y rendimiento, todo ello sin haber modificado el formato del disco (que sigue siendo excelente). El resultado de todo este trabajo sitúa a XFS en un lugar muy interesante: un sistema de archivos de mejor diseño que Ext4, un código de igual o mejor calidad, un rendimiento igual o superior en cualquier situación (muy superior, cuando hablamos de muchos discos y CPUs), igual de bien integrado con el resto del kernel que Ext4, y tan bien mantenido como Ext4 (Red Hat ha contratado a varios desarrolladores históricos de XFS)...la conclusión obvia parece ser: ¿para qué seguir usando Ext4?

Esa es la atrevida propuesta que hace un desarrollador de XFS en este vídeo (que es la motivación de este post), y que viene a resumirse en que el futuro de los sistemas de archivos en Linux será usar Btrfs por defecto, y XFS para quien necesite rendimiento y escalabilidad extra. Esta última distinción, que indica una discapacidad de Btrfs, puede sorprender, pero tiene algo de cierto: XFS no duplica los metadatos por defecto, ni los comprime, ni provoca fragmentación masivama debido a copy-on-write, lo cual le permite ser más escalable en situaciones extremas, y por tanto le permite tener un futuro sólido en grandes servidores, a pesar de no ser un sistema de archivos "de última generación". Además, están planeando un cambio de formato de disco en el cual piensan incluir checksums de metadatos, añadir información extra para facilitar la tarea del fsck, e implementar la capacidad de hacer un "scrubbing" online; es decir, intentarán implementar algunas de las ventajas de Btrfs, todo ello con vistas a seguir siendo un buen sistema de archivos en el futuro, algo que Ext4 no podrá hacer con facilidad.

Mi veredicto personal es que probablemente tiene razón, y que a medida que Btrfs reemplace a Ext4 como sistema de archivos por defecto, XFS lo acabará superando también como sistema de archivos alternativo.

7 de junio de 2012

Chris Mason se va de Oracle

Hoy es noticia linuxera que Chris Mason, creador y principal programador de Btrfs, anuncia que se va de Oracle, la compañía en la que trabajaba. Y como el autor de este blog piensa que los programadores y sus circunstancias son muy importantes, hay que mencionarlo. Empecemos diciendo que para la comunidad linuxera es sin duda un gran alivio que un programador tan importante para Linux abandone una compañía que pretende que las APIs puedan ser copyrighteables. Para nuestra desgracia, no se tienen noticias de que Chris Mason haya prendido fuego a Oracle a su salida.

Como cuenta en el propio anuncio, no hay nada que temer por Btrfs, seguirá manteniéndolo y desarrollándolo como siempre. Sin embargo, algunos hemos notado desde hace un tiempo que Chris Mason no escribía tanto código como solía (el retraso del fsck es un ejemplo de esto), ni estaba tan presente en el día a día. Que estaba ocupado con otras cosas, vaya. Y aunque no era una alarma crítica para Btrfs, puesto que ya tiene programadores de sobra, era desde luego una situación poco deseable (el retraso de fsck es, de nuevo, una prueba de ello).

La nueva compañía en la que trabajará será Fusion IO. De este compañía se pueden decir varias cosas. La primera, que se dedica a desarrollar memoria flash para almacenamiento SSD. La segunda, que esta compañía ya tiene en su nómina a Jens Axboe, el principal programador y mantenedor de la capa de bloque de Linux (con el objetivo evidente de que Linux funcione muy bien con SSDs). Y la tercera, que es donde trabaja Steve Wozniak como "chief scientist".

Si, ese Wozniak.

Cabe decir, por tanto, que Chris Mason está en un buen lugar y que puede que incluso sea mejor para Btrfs y Linux en general.

5 de junio de 2012

Elementary OS

Elementary OS es una distribución a la que merece la pena hacer mención. Su particularidad se debe a que no es tan sólo una distribución, sino un proyecto-escritorio-distro-plataforma. Un cosa difícil de explicar, vaya.

Empezando por el principio, Elementary es y ha sido durante mucho tiempo un conjunto de iconos y un themes para Gnome con un estilo muy OS X, obra inicial de un tal Daniel Foré. Esto de hacer un theme clon de OS X parece (y es) poco novedoso, pero no lo era tanto la buena calidad que tenía y la fama que alcanzó. Sin embargo, las ambiciones de Daniel Faré y demás miembros del proyecto no se quedaron ahí, un theme no era suficiente. Así que iniciaron un proyecto de distro, "Elementary OS", cuya esencia es un repositorio PPA con una serie de paquetes a instalar sobre una Ubuntu tradicional. Los paquetes contienen un Gnome 2.x modificado a su gusto, un dock (docky), y una serie de aplicaciones alternativas a las oficiales de Gnome/Ubuntu.

Y eso es en lo que consiste la primera y de momento única versión de Elementary OS, la versión 0.1 "Jupiter", lanzada a finales de Marzo del año pasado, del cual muchos se burlan, y no sin cierta falta de razón, de ser un "clon de OS X". Sin embargo, lo interesante está en la próxima versión (0.2, "Luna"), que contiene el trabajo de más de un año, y sus ambiciones de futuro.

Un Gnome 2.x modificado y un docky tampoco son suficientes para ellos. Así que para la citada versión 0.2 "Luna", han reescrito de cero (están escribiendo en estos momentos) un entorno de escritorio al cual llaman Pantheon, que hasta tiene su propio gestor de inicio de sesión X. Además han escrito varias aplicaciones propias de cero, como un programa para escuchar música, un editor de texto, un terminal, gestor de archivos, panel de control del sistema, y aplicacioncillas de ese estilo, y cabe esperar que sigan desarrollando más. Usan, además, los programas del proyecto Yorba (Shotwell), y en ese caso no se han molestado en reescribirlos porque han hecho la elección de desarrollar todo el proyecto usando el lenguaje Vala. Como navegador, usan Midori, un navegador basado en webkit afín a XFCE.

Quizás piensen ustedes que un proyecto así, que pretende rehacer el mundo de cero no se puede esperar gran cosa, y tendrían razón, las aplicaciones apenas tienen características y de momento sólo sirven las necesidades más básicas. Sin embargo, hay cosas que en mi opinión hace a Elementary OS diferente. Una de ellas es el de cuidar el aspecto gráfico y la interfaz de usuario bastante bien. Además de copiar el estilo de OS X, también parecen haber copiado el estilo de desarrollo "top-down" de Apple, donde los diseñadores son dioses y dicen qué quieren, y los desarrolladores obedecen. A Daniel Foré, que aun lidera el proyecto, desde luego parece que lo de diseñar se le da bien (los iconos oficiales de Ubuntu son derivados de los de Elementary). Unas capturitas de ejemplo donde pienso que se nota las obsesiones con el detalle más que con la funcionalidad:






Si bien pueden ser acusados (hace falta recalcarlo) de imitar a OS X descaradamente, también es cierto es que probablemente sean los que mejor están haciéndolo. Mientras que unos se obsesionan con clonar Cocoa, usar Objective-C y construir frameworks potentes (Etoile/GNUStep) y otros tratan de imitar a OS X con themes, Elementary se a desarrollar su propio camino siguiendo el estilo OS X pero sin obsesionarse con ser clones exactos, centrándose en la apariencia sin obsesionarse con las tecnicidades (por Dios, usan Vala), y desarrollando sus propias aplicaciones en lugar de conformarse con ser un simple shell que ejecuta aplicaciones de otros.

El proyecto está hecho por gente que no tiene mucha experiencia (el tipo que comenzó el framework para aplicaciones Granite tiene 17 años), pero tiene algo que es más importante: una idea clara y mucho entusiasmo para hacerla realidad. Sin duda, es un proyecto que corre el riesgo de no llegar a ningún lado y acabar muriendo de inanición por abandono de algún programador importante. Los snapshots de 0.2 "Luna" muestran un escritorio inusable que tiene fallos y carencias por doquier, están aun muy lejos de sacar algo útil y estable, pero si lo logran no cabe duda que puede ganar muchos adeptos.