Se alínean los planetas para Linux

TuxEste será un breve apunte en el que esbozaré el por qué creo que últimamente le están yendo bien las cosas a todo el mundillo de Linux. La verdad es que últimamente no paro de ver buenos augurios allí donde poso la mirada: parece que los planetas se han alineado para el sistema del pingüino :) .

Aunque la noticia ya tiene más de un mes, la usaré como punto inicial de mi argumentación. Hace poco corrió por la red el rumor de que Linux había alcanzado una cuota de mercado del 1.41%, aunque pocos más han vuelto a escribir algo al respecto, un mes después podemos decir que se ha alcanzado el 1.56% (al menos según uno de los muchos barómetros existentes). Aunque soy consciente de que las medidas son falibles y que además hay quienes las contradicen con otros datos, quiero recalcar el hecho de que incluso si los números estuvieran mal, es muy probable que no lo estén tanto las tendencias representadas (en términos cualitativos).

Mi predicción es que la tendencia de crecimiento continuará, como mínimo, hasta finales de mayo. Y me apoyo en las siguientes premisas:

Tendremos que esperar para ver si me equivoco o no, a mediados o finales de mayo me podréis dar la vara si he pecado de optimista. Creo que hasta me atreveré a dar números: a finales de Abril se habrá llegado como mínimo a un 1.9% de uso (al menos con ese indicador). Para acabar, hay aun un factor que no he considerado todavía ¿qué pasaría si en esta crecida se consigue alcanzar la "masa crítica" que permita alargar el crecimiento unos cuantos meses más?

¿Y vosotros qué opináis?

Peleando con Internet Explorer

Go Out IE6

IE6 denial message for Momentile.com (by John Martz, CC)

[Actualizado el día 8 de Diciembre de 2011, añadiendo el punto 4]

Los que me conocen saben cuanto cariño siento por Internet Explorer, estoy orgulloso de quererlo tanto, y evidentemente no es suficiente para mí que lo sepan mis amigos, quiero gritarlo bien alto. Por eso hoy os brindo este artículo en el que cuento como darle una buena patada en el culo a este nefasto navegador.

Si más preámbulos, ahí van 3 ungüentos para aliviar el escozor que nos provoca a los desarrolladores:

  1. ie7-js : Una(s) librerías que nos ayudan a emular las características de las versiones más nuevas de IE en las más cochambrosas y antiguas. Yo particularmente uso la versión más nueva, ie9-js. Se nota, nos puede ahorrar unas cuantas horas creando horrendos hacks.
  2. Algo más drástico es dar un toque al oficinista cincuentón de turno indicándole que no estaría de más que cambiara su navegador, no es que sea complicado implementar un detector de navegadores... pero si ya está hecho ¿para qué perder el tiempo? http://www.devslide.com/labs/browser-detection . Con esta librería podremos mostrar un cuadro de diálogo a nuestro incauto usuario para sugerirle que jubile su viejo talismán antiprogramadores. Consejos respecto a esta librería: yo de vosotros no daría tregua a ninguna versión de IE excepto la 9 (se puede configurar el script para avisar con diferentes navegadores), en mi caso he llegado a modificar un poco el código para que no muestre la opción de descargar IE9 si se está en Windows XP (pues éste no funciona en Windows XP).
  3. Para los listillos de turno que instalaron IE9 y ya no pueden probar sus desarrollos en IE7 o IE8. Cuando se abre IE9, si se apreta la tecla F12 aparece un marco inferior (modo desarrollador) que permite cambiar 2 aspectos del navegador. En primer lugar permite que IE9 renderize las páginas web como si fuera IE7 o IE8, y en segundo lugar también permite engañar a las páginas web cambiando el userAgent, de forma que puedes comprobar también como reaccionan los sitios web con los navegadores IE7 e IE8 :D . Pocas veces diré esto, pero los de Microsoft tuvieron un detallazo implementando esta característica.
  4. Si queremos dar soporte a ciertas características de html5 en Internet Explorer podemos recurrir a htmlshiv. El código de esta librería también lo podemos encontrar integrado en Modernizr o jQuery 1.7 .

Y ya está, tampoco es que tuviera ninguna panacea, pero algo es algo! Por cierto, el segundo punto lo implementé entre ayer y hoy en una aplicación web que estoy desarrollando. El porcentaje de gente que usa al innombrable en mi aplicación es de un 60% (simplemente acojonante), supongo que en algunos días, o semanas talvez, escribiré un artículo analizando el impacto del aviso. Esperemos que sea efectivo!

Problemas con Ubuntu 11.10

Ubuntu Logo (Broken)No se puede decir que sea fan de Ubuntu (ni de ninguna otra distribución Linux), pero la verdad es que por lo general lo he estado prefiriendo durante los últimos años. Lo que ha hecho que prefiera Ubuntu por encima de otras distribuciones ha sido básicamente que está basada en Debian, usaban Gnome por defecto y han apostado decididamente por la simplicidad.

Pero... últimamente me estoy mosqueando. En primer lugar, Unity llegó 6 meses antes de lo que debería. Tengo que decir que adoro la característica del "global menu" que me permite aprovechar al máximo el tamaño de la pantalla, pero la lentitud general del entorno y la poca configurabilidad es desesperante, eso sin mencionar el caótico panel, que dificulta enormemente encontrar aplicaciones de forma rápida.

No he dicho nada nuevo hasta ahora, si fueran estas mis únicas quejas ni me habría planteado escribirlas. Pero hay más, y "nuevo". Aunque el primer defecto que mencionaré es de la versión 11.04 y no de la 11.10 creo que debe ser explicado.

  1. En Ubuntu 11.04 solía pasar que, de haber varios usuarios, multitud de veces GDM (la pantalla de login) sólo mostraba uno de ellos, el primero que se creó. No han llegado a solucionarlo nunca... en parte lo entiendo (iban a abandonar GDM en la próxima versión en pos de LDM, y el equipo de Gnome estaba trabajando en otra versión de GDM más nueva, dedicar esfuerzos a eso no resultaba rentable), pero no deja de ser frustrante.
  2. En Ubuntu 11.10 hay problemas parecidos, pero peores. No sé si solo me pasa a mi pero... si salgo de mi sesión sin cerrarla y vuelvo a entrar en ella (sin haber entrado en ninguna otra antes) entonces el equipo queda "colgado". Lo único que obtengo es una pantalla negra, no puedo ir ninguno de los terminales y lo único que se puede hacer es reiniciar. Podría ser que tuviera que ver con mi tarjeta gráfica (es una ATI), aunque la verdad es que me importa poco. Eso nunca había pasado, y es un fallo prácticamente imperdonable.
  3. Otro error que me ha dado muchos problemas (tanto en la versión 11.04 como en la 11.10) es el de las firmas de los repositorios. Por alguna extraña razón pasa que cada dos por tres tanto apt como aptitude me indican que las firmas de los paquetes son incorrectas (suele pasar en días que ciertos servidores de Ubuntu parecen colapsados). En general este error no debería causar problemas excesivos, le indicamos al sistema que instale el nuevo software aunque los paquetes no estén bien firmados... y listos. Ahora bien, eso se puede hacer desde la línea de comandos, pero no desde el entorno gráfico, lo que implica que los más perjudicados son los novatos (precisamente a los que Ubuntu se dirige en teoría).

Dicho esto, espero que para la versión 12.04 le den un repaso a todos estos incordios y los hagan desaparecer. Lo cierto es que probablemente me quede con ella durante unos años, tengo necesidad de estabilidad... al menos por un tiempo. Y lo vuelvo a decir, me he enamorado de la característica del "global menu", y estoy dispuesto a tragar Unity solo por eso (tampoco lo sufro mucho porque uso Synapse como lanzador).

Crisis y nueva oportunidades del software libre

Hoy en día el software libre se haya en un momento crucial, se están realizando grandes jugadas estratégicas por parte de algunos de los grandes actores del mundo tecnológico (Microsoft, Apple, Google, Oracle...), son tiempos complicados.

Desde Microsoft se dice que ya no consideran a Linux una amenaza, MS IE9 ha roto con años de mediocridad (aunque sigue estando por detrás de los demás navegadores) e IE10 "promete" ser un buen navegador, Windows 7 ha roto la maldición de Windows Vista (lo que supuso una ventana de oportunidad desaprovechada por el software libre), Apple domina (a nivel económico) los mercados de smartphones y tablets...

Como los problemas más o menos los conocemos todos (resumiré: los fabricantes de hardware no liberan sus drivers y en ocasiones ni tan siquiera desarrollan drivers compatibles con software libre, campañas de desprestigio, se tiene poco en cuenta a los usuarios inexpertos, falta de juegos, falta de alternativas para sofware privativo especializado [como software de diseño, de edición de vídeo o de sonido, software ingenieril...], ...), comentaré algunos puntos que a mi parecer pueden dar un vuelco a la situación y mejorar la posición del software libre en el panorama global.

A mi entender, programas como Gimp son piezas clave, como ya comenté en un artículo anterior, pero hay algunos otros que merecen especial mención. He aquí una pequeña lista de joyas (o no tan joyas, desgraciadamente) que deberían mimarse (más de lo que se hace hoy en día) para reflotar el ecosistema del software libre:

  • Gimp : al menos mientras Adobe no se digne a lanzar una versión de Photoshop para Linux, y aun que así fuera, lo mismo.
  • Ardour (y todo el subsistema de sonido de Linux) : Hoy en día editar audio en Linux puede resultar un auténtico infierno.
  • Base (de LibreOffice) : Como muchos otros, odio las bases de datos autocontenidas en ficheros, pero parecen ser uno de los obstáculos para que muchas empresas implanten OpenOffice o LibreOffice como sustituto de MS Office...
  • Interfaz de LibreOffice : Por motivos estéticos y funcionales, se tienen que aprovechar mejor las pantallas panorámicas y se tiene que aprender de las nuevas interfaces ideadas para otras suites ofimáticas.
  • Pidgin/Empathy/Telepathy-KDE (excluyo Kopete porque será sustituído por Telepathy-KDE) : mal que nos pese, MSN Messenger tiene mucha importancia todavía y Skype no para de crecer, se tienen que hacer grandes esfuerzos para soportar los cambios constantes en el protocolo de MSN y para implementar un buen sistema de videoconferencias.

Evidentemente hay muchas más cosas a mejorar, pero en parte por experiencia y en parte porque simplemente lo creo así, tengo la sensación de que mejorando sólo esos 5 puntos ya se tendría muchísimo ganado, se conseguiría ampliar la base de usuarios de forma sustancial.

En todo caso no era mi intención centrarme en piezas concretas de software existente, sino más bien en dos partes esenciales de la cadena: la producción y la distribución de software. Linux es un ambiente relativamente duro para quienes quieren distribuir su software ya que tienen que tener en cuenta multitud de plataformas (por tipo de procesador, por tipo de paquete [deb o rpm], por versión del sistema operativo...). ¿No sería ideal que existiera un IDE que simplificara (hasta la trivialidad) las tareas de compilación cruzada y de empaquetamiento? Eso sí que sería una jugada maestra, y más aún si se prescindiera de los lentos IDEs libres existentes hoy en día, léase Netbeans, Eclipse, Monodevelop o los engendros de Anjuta y KDevelop. Entiendo que no es nada fácil hacer algo así, pero la idea no deja de atraerme aun con ese pequeño obstáculo.

Respecto a la distribución de software quería comentar un detalle que siempre me ha llamado la atención de los sistemas de repositorios. Todos los repositorios son abiertos, parece que no se contemple la necesidad de usar usuarios y claves... esto tiene su sentido si se piensa que todo el software va a ser libre... pero no si se contempla la realidad al completo. Imaginemos que una empresa desarrolla un programa X privativo (y de pago), y al que le da soporte con actualizaciones para mejorar su estabilidad y seguridad. Este modelo es típico en el ecosistema de MS Windows, pero en Linux se hace complicado: las actualizaciones se tienen que hacer desde la propia aplicación (o peor, a mano), lo que supone tener que desarrollar un sistema de actualizaciones propio, así como tener avisar eventualmente al usuario (al margen de las actualizaciones generales del sistema) o esperar que este se acuerde si prefiere no ser avisado... es fácil ver que añadir la opción de repositorios con acceso restringido puede ser una sencilla medida que permita minimizar costos y simplificar la gestión de las actualizaciones de software privativo. ¿Por qué no se ha hecho todavía?

Sea como sea no todo es malo últimamente :) , parece que por fin ha calado lo de "release early, release often", se han empezado a lanzar versiones de forma mucho más regular (por ejemplo Chromium, LibreOffice, Firefox, Thunderbird...), se están aprovechando a la perfección las herramientas de gestión de versiones para mantener ramas estables a la vez que ramas con funcionalidades punteras (LibreOffice), la simplificación se ha transformado en un acicate para mejorar (Chromium, Firefox, Unity, Gnome Shell), y sobre el rendimiento... bueno xD, eso parece que siempre fluctúa, va a modas.

Gimp 2.8 a la vista, algunas reflexiones

Splashscreen de Gimp 2.8Leo hoy a través de [1] que alrededor de finales de este año o principios del siguiente se liberará por fin la versión estable de Gimp 2.8, después 3 años de lento desarrollo. Y no solo eso, parece que ya hay un roadmap establecido para Gimp hasta la versión 3.8 [2]. Según GimpUsers [2] , el tiempo entre lanzamientos se reducirá a partir de la versión 2.10, algo que será de agradecer :) .

¿Qué novedades nos esperan? De la versión 2.8 no se puede decir mucho ya, no hay sorpresas, tendremos el modo de ventana unificada (lo que supondrá más comodidad para muchos, me incluyo) y agrupación de capas (algo realmente útil, palabra de honor).

La versión 2.10 será algo más interesante, aunque a priori pueda no parecerlo si sólo se mira el roadmap. En primer lugar, se realizará una limpieza de código, incluyendo cambios en la API de registro de plugins. Aunque esto no suponga una mejora inmediata para el usuario puede redundar en una aceleración posterior del desarrollo, ejecutables más pequeños y menor consumo de memoria. Además de la limpieza de código se incluirán todos los proyectos del GSoC sobre Gimp realizados hasta la fecha, que son los siguientes:

  • Clonación adaptativa [4] : Facilitará el pegado de trozos de imagen procedentes de otras fotografías o ilustraciones de forma que no parezca tan antinatural por exceso de contraste o diferencias entre colores e iluminación.
  • Nuevo widget GimpSizeEntry [5]: Proveerá un nuevo selector de unidades de medida de longitud, y de paso se refactorizará algo ciertas partes de código para hacerlas más extensibles.
  • Filtro iWarp como herramienta [6]: Hasta donde he entendido, creo que se trata de una herramienta que permitirá aplicar ciertos filtros localmente como si estuviéramos trabajando con un pincel. Ya existe algo parecido en Krita, así que puede que se hayan inspirado en ellos.
  • Port de los plugins de Gimp a GEGL [7] : Un paso necesario para que Gimp dé el salto definitivo a GEGL, lo que permitirá un mayor rendimiento y facilitará la creación de nuevas herramientas de transformación.
  • OpenCL en GEGL [8]: Gracias a este proyecto la aceleración mediante GPU llegará a Gimp :D .

En la versión 3.0 se dará el salto a las bibliotecas GTK3, de forma que en entornos de escritorio dominados por aplicaciones del proyecto Gnome se podrá reducir el consumo de memoria (al tener que mantener un conjunto menor de bibliotecas en memoria, hoy en día coexisten GTK2 y GTK3). Otra mejora no menos importante será la posibilidad de tratar con imágenes con más profundidad de color (hoy en día solo trabaja con 32 bits de profundidad, 8 para canal, rojo, verde, azul y transparencia). Este lanzamiento será el que permita el salto definitivo a GEGL.

La versión 3.2 nos traerá detección automática de los límites de capa (con el consecuente ahorro de memoria gracias a la posibilidad de ajustar el tamaño de los mapas de bits), efectos de capa (bordes, relieve y muchos otros), y filtros de capa (poder usar ciertas capas a modo de filtro sobre otras capas). A mi entender esta versión será una de las más importantes, porque si Photoshop no mejora mucho en lo que sigue, Gimp habrá llegado por fín a su nivel.

Ya no describo las siguientes versiones porque puede que cambien objetivos, y sobretodo porque con lo poco que sé, soy incapaz de valorar qué nos aportarán estas.

Ahora me permitiré opinar un poco sobre todo esto. Es de suponer que, después de 3 años de desarrollo, la gente se tome a cachondeo el plan establecido por el equipo de Gimp... yo esta vez confío en ellos. ¿Por qué? Pues porque han aprendido de sus errores, y tuvieron muchos.

Hay varias razones por las que Gimp se ralentizó tanto. Una de ellas, la principal, es que el equipo de desarrollo es verdaderamente pequeño. Ahora cabe analizar el por qué es pequeño, un motivo esencial es la falta de financiación, la gente hace pocas donaciones a ese proyecto (y es entendible), otro está relacionado con la dificultad de desarrollar ese tipo de software. Los programas de tratamiento de imagen son difíciles de desarrollar y no todo el mundo tiene la habilidad suficiente como para aportar su granito de arena.

Ahora bien, hay otra razón esencial que explica esa lentitud que ha desesperado a tantos, se trata de un error que ha costado el desencanto de mucha gente: El equipo de Gimp empezó a desarrollar nuevas características a porrillo, todas en la misma rama, pero pocas de ellas se terminaban. En parte es normal, los programadores prefieren desarrollar su código a tocar el de otros. El caso es que esos desarrollos a medias sirvieron para bloquear otros, y finalmente para retrasar el lanzamiento de Gimp 2.8.

Por suerte ellos mismos se dieron cuenta y no creo que vuelvan a trabajar de la misma manera nunca más, se han empezado a organizar para trabajar en ramas diferentes y no bloquearse mútuamente. Eso permitirá una aceleración del desarrollo, y eso a su vez atraerá más donaciones y desarrolladores.

Para acabar trataré otro asunto relacionado. Sinceramente, creo que ciertas distribuciones (y en especial Ubuntu) deberían haberse implicado más en el desarrollo de Gimp, porque se trata de una de esas piezas clave que pueden suponer que la gente se acerque o salga huyendo de un sistema Linux. Aunque Gimp no reporte beneficios directos a empresas como Canonical o Redhat, sí que podría permitir un crecimiento sustancial de la base de usuarios de Linux, a la vez que un aumento potencial de ganancias para esas empresas. ¿Se darán cuenta? Esperemos.

  1. http://www.muylinux.com/2011/08/14/fugaz-repaso-a-los-planes-de-gimp-2-8-2-10-y-3-0/
  2. http://wiki.gimp.org/index.php/Roadmap
  3. http://www.gimpusers.com/news/00373-hw-accel-future-plans-aug-2011
  4. http://www.google-melange.com/gsoc/project/google/gsoc2011/lightningismyname/6001
  5. http://www.google-melange.com/gsoc/project/google/gsoc2011/enrico_schroeder/12001
  6. http://www.google-melange.com/gsoc/project/google/gsoc2011/michael_mure/5001
  7. http://www.google-melange.com/gsoc/project/google/gsoc2011/robert_sasu/17001
  8. http://www.google-melange.com/gsoc/project/google/gsoc2011/victor_matheus/8001