Archivo
Firefox OS, y expresiones de deseos más que realidades
Antonio Ortiz publicó en Xataka una entrevista a Carlos Domingo, CEO de Telefónica I+D. Por referencias, Carlos parece un ben profesional, pero critiqué en Twitter el lenguaje tan corporativo y vacío, en el sentido que se repite frases típicas, y no desvela nada interesante. A raíz de esos comentarios, tuve varias respuestas, repitiendo otra vez frases vacías y wishful thinking sobre lo que es Firefox OS, y su “innovación” en el mercado de móviles.
En primer lugar debo decir que me gusta mucho la creación de Firefox OS, por varios motivos.
Liberar código ¿es un deber moral?
El software libre es fundamental en nuestra vida, pilas completas basadas en él hacen funcionar a nuestros cacharros, desde el router Wifi o TV hasta el iPhone o iPad (también tienen mucho software libre, el navegador Webkit/Safari desarrollado desde el KHTML de KDE, o el Darwin desarrollado a partir de BSD y Mach). Cada mensaje, email, tuit, apunte en G+, cada foto, cada fotograma de vídeo, cada paquete TCP/IP es manipulado por millones de líneas de software libre.
Salvo excepciones, es el software libre el que hace funcionar a las empresas más grandes en Internet. ¿Sobre qué funciona Google? GNU/Linux, Python, MySQL. ¿Facebook? GNU/Linux, MySQL, PHP, Erlang, Cassandra. ¿Tuenti? GNU/Linux, PHP (se sabe poco más). ¿Akamai? GNU/Linux. ¿Amazon? GNU/Linux, Xen. ¿Y Android?
Defender lo que te ha dado tanto
Llevaba varios semanas muy estresado, con mucho trabajo (y lo que me espera). Hace unos 6 meses dejé de jugar al pádel (la crisis afectó hasta a eso, mis ex compañeros tienen que hacer horas extras), mi salud empezó a decaer. Me costaba respirar, dormia muy mal. Al final tomé la decisión, debo cambiar mi vida sedentaria, si no, acabaría muy pronto.
Me apunté hoy al gimnasio, fui a la primera sesión. Me dieron una caña de la buena, tras 45 minutos terminé con dolor en el pecho, la visión periférica borrosa (signo de la falta de oxígeno en el cerebro). Los 200 metros de regreso a casa me parecieron eternos, son esos momentos que sientes que acabará todo muy pronto.
Llegué a casa, me tiré unos minutos, de sentirme fatal me empecé a sentir muy bien (menos de dos horas después estoy como una moto, escribiendo este apunte a falta de no tener nada más urgente que hacer). Pensé, ¡hostia! tampoco era tan complicado, las cosas a veces pueden mejorar rápidamente, vaya suerte que tengo.
De ética
Hoy recibí la primera noticia y respuesta por parte de Alberto Garzón sobre netbook con software libre que instalé y envié personalmente el lunes de la semana pasada. No sabemos dónde está, ni si lo ha recibido, o si abrió la caja donde estaban los datos de contacto por si había algún problema, o si teníamos que hacer algún procedimiento legal para que se pudiese quedar él o alguien de su partido.
Me parece bien que lo rechace, era una posibilidad. Cada uno tiene derecho a aceptar o rechazar préstamos, donativos o regalos. Me alegra que lo haga por razones éticas, nada que objetar, yo también rechacé varias veces iPhones e Ipads de regalo por la misma razón. Sólo siento un poco de pena que me haya tomado el trabajo de prepararlo (hasta en el cifrado) pero que el ordenador no acabe siendo usado por la persona a la que iba destinado.
Como el fondo del tema es la ética, sólo acabaré con una muy breves reflexiones sobre la cuestión.
Lo que es ético
- Buscar el balance entre el interés social y el privado, de forma racional y lógica (es la definición muy breve de la ética filosófica).
- Ser coherente en el día a día con los grandes discursos y programas electorales.
- Es rechazar aquello que beneficia personalmente pero está radicalmente en contra de las ideas y esfuerzos que se proponen públicamente.
- Separar lo que son actos y actitudes privadas de las públicas y sostenidas por el público. Estas últimas sí exigen rigurosidad y coherencia.
- Enfrentarse y resolver los problemas más cercanos de forma coherente con las ideas que se proponen y prometen. No se puede exigir a los demás esfuerzos que somos incapaces de hacer nosotros mismos. Si el esfuerzo es pequeño, una razón más poderosa para hacerlo.
- Es respetar el trabajo de los demás, personal o a través de sus empresas, y no igualarlos a todos por debajo -como si fuesen todos “explotadores”- a la hora de justificar la necesidad laboral de un producto de moda y prescindible.
Lo que no es demasiado “ético” (o mejor dicho, lógico):
- Rechazar un préstamo o regalo o donativo a cargo de una empresa privada, pero aceptar para uso personal una herramienta muy cara, prescindible, y pagada con dinero público.
- Que un diputado justifique la imposición de una “herramienta” sólo porque lo decidió otro partido (fue el PP). Debería ser otra razón de fuerza para rechazarla, exigir cambios a los servicios informáticos del Congreso.
- Justificarse con un listado de iniciativas presentadas hace seis años sin haber colaborado en ninguna de ellas, hace sólo meses que se hizo candidato del partido (justo para las elecciones, y por su “participación en el #15m” [sic]). Y que además esas iniciativas anteriores amplifican la impostura de escribir un apunte racionalizando lo opuesto (hubiese sido mejor haberlas leído antes).
- Justificar al objeto de la contradicción con argumentos de temporalidad, “de lo tenemos que devolver”. La contradicción no queda anulada por su temporalidad. Tampoco es tan temporal, los hechos recientes nos dicen que casi todos los diputados se quedaron con los portátiles de la legislatura anterior (decisión tomada por la misma mesa que decidió la compra de iPads).
- Afirmar una y otra vez que es una herramienta necesaria, cuando su uso principal será leer periódicos, tuitear y ver vídeos en Internet de otras “empresas explotadoras” [sic]. El teclado de la pantalla no sirve para escribir textos -el trabajo fundamental de un legislador- de más de unos pocos cientos de palabras. Además, en el Congreso usan formato MS Office -algunos pocos usan Open/LibreOffice-, ninguna de esas herramientas está disponible en el iPad (no deberían permitir que sus documentos de trabajo -tan importantes- se almacenan en dispositivos, la nube, de empresas extranjeras).
- Rechazar un donativo de pocos cientos de euros (era obvio que no era para comprar favores) por razones éticas, pero regalar parte de su salario personal (miles de euros cada mes, pagado por la sociedad) para financiar a un partido político, que entre otras cosas también se dedica a hacer regalos “útiles” para dar “lecciones éticas”.
- Apoyar y casi erigirse en “portavoz” y conocedor de las revindicaciones de un movimento que en mayo gritaba que los partidos o políticos “no nos representan”, pero en diciembre pedir que la participación política se canalice a través de
suun partido. O cambiar el discurso y maneras “quincemayistas” a otras típicas de la partitocracia a que se criticaba hasta ayer mismo. - Recurrir continuamente a la palabra ética, pero justificar las contradicciones propias usando argumentos relativistas posmodernos, quizás influenciado por algunos autores de este tipo que todavía se toman en serio hasta al psiconálisis freudiano (quizás debería compensarse leyendo a otros pensadores o críticos con las imposturas intelectuales)
Nada más señor diputado. Buena legislatura (estoy seguro que en los grandes temas será más coherente que con las tonterías de software libre en las que le hago perder el tiempo), que aproveche del iPhone e iPad, no todos pueden permitírselo, muchos no pueden pagarlos, otros sólo por tonterías de principios. Sí, existen, me consta, aunque no voten a IU.
Haanga vs Django vs H2O
En mi apunte anterior conté que habíamos desarrollado y liberado Haanga, el sistema de plantillas de Menéame. Ahora acabo de hacer unos benchmarks comparándolo con Django y H2O. La intención fue medir el rendimiento del motor de plantillas de cada uno.
Los resultados se muestran en la tabla a continuación. La primera columna es el tipo de benchmark. La segunda, tercera y cuarta son el número de conexiones por segundo (más altas son mejores) de cada uno de los sistemas. Las dos últimas columnas indican cuantas veces más conexiones por segundo sirvió Haanga.
| Bench | Haanga | Django | H2O | vs Django | vs H2O |
| b1 (sin plantillas) | 3214.84 | 769.48 | 1447.68 | 4.2 | 2.2 |
| b1_tpl | 1031.57 | 203.28 | 273.24 | 5.1 | 3.8 |
| b2_tpl | 1944.41 | 270.96 | 240.55 | 7.2 | 8.1 |
| b2_filters | 1011.10 | 65.14 | 156.68 | 15.5 | 6.5 |
| header | 2365.59 | 185.69 | 273.61 | 12.7 | 8.6 |
Haanga saca mucha diferencia a los dos sistemas en cualquiera de las pruebas.
Explicación de los benchmarks
- b1 sin plantillas: Este es un programa simple que sólo ejecuta un bucle para imprimir la hora cien veces. No se usan templates, pero sirve para dar una referencia y notar la diferencia entre la inclusión de librerías entre Haanga y H2O (en la vistas de Django ya se incluyen).
- b1_tpl: El mismo resultado que el anterior pero llamándose al generador de plantilla para cada iteración.
- b2_tpl: Este es un caso más habitual. En vez de llamar cien veces al generador se guardan los resultados en un array y al final se genera el resultado desde el template (con el {% for o in objects %}
- b2_filters: Es el mismo programa que el anterior pero al template se le agregaron un par de filtros (La hora ({{ o.i|escape }}) en epochs es: {{o.epoch}} ({{ o.epoch|date:”r” }}).
- header: Este es un caso más real. Tomé una de las plantillas más complejas que usamos en Menéame, la que genera la cabecera HTML, logo y menú superior (header.html). Eliminé las etiquetas no compatibles con los otros dos (los exec y trans), se llama tres veces al generador de plantillas (me aseguré que el HTML era similar en los tres –había diferencia en los espacios en blanco que genera cada uno–).
Los códigos fuentes completos lo podéis bajar en un tgz.
Ejecución
Todas las pruebas fueron hechas sobre un Intel Quad de 2.40GHz con 4GB de RAM. No había otros procesos consumiendo CPU.
Los números de conexiones por segundo fueron obtenidos con el Apache Benchmark contra el servidor local (localhost). El comando fue «ab -q -S -c 2 -t 30 $url», podéis ver el script benchs.sh en el tgz mencionado antes.
Los PHP se ejecutaron en un Apache2 estándar de Ubuntu 10.4, con el PHP5 también estándar, el xcache (con su configuración por defecto). El único cambio que hice fue en la configuración del PHP5 (php.ini) para que sólo avise de errores (i.e. «error_reporting = E_ERROR»).
El Apache con el mod_python me daba resultados muy malos con el Apache 2, así que consulté a Antoni Aloy (un expertísimo en Django) y me recomendó hacerlo con el gunicorn. Este es el comando que utilicé: «python manage.py run_gunicorn -w 5» (el DEBUG del Django estaba deshabilitado).
Actualización: hice las pruebas como me indicó @Rolando con el tornado y su sistema de templates. Estos son los resultados.
| Bench | Tornado |
| b1 (sin plantillas) | 2988.29 |
| b1_tpl | 1111.82 |
| b2_tpl | 1802.91 |
| b2_filters | 613.54 |
| header | 2425.91 |
Haanga: plantillas “Django” para PHP, über eficiente
A mediados de mayo fui a Japón, la empresa de internet más grande de ese país estaba interesado en montar un Menéame en japonés. En junio las conversaciones estaban más o menos avanzadas y tenía la sensación que algo iba a salir. Sabía que si íbamos a mantener la versión sincronizada con la nuestra, íbamos a tener complicaciones. Así que empecé a pensar seriamente en que debíamos desarrollar o migrar a un sistema de plantillas.
Cuando empecé a desarrollar Menéame en noviembre de 2005 la única alternativa madura que había era Smarty. No me gustó nada, su lenguaje de macros era bastante complicado, además era muy ineficiente. Así, decidí hacerlo sólo en PHP y separar la generación de código en funciones específicas, de forma muy similar a como hace o hacía WordPress.
Mientras no teníamos que responsabilizarnos nosotros de mantener versiones sincronizadas iba muy bien. Como estaba separado por “módulos de interfaz” (cabecera, cajas, pie de página) y orientado a objetos (cada clase como Link, Comment, Post tiene su método print_summary() ) los cambios lo hacíamos rápido y sin complicaciones. Pero ya era hora de mejorarlo y modernizarlo.
Hace meses empecé a mirar si podía reusar el sistema de plantillas de Synfony, CodeIgniter, H2O. El que más se acercaba era H2O, pero no terminaba de convencerme, le faltaban características que necesitamos para Menéame, su rendimiento tampoco es tan bueno.
Primero pensé que sería mejor hacerlo con el API C de PHP, y así en junio tiré un globo sonda a César Rodas, un chaval de Asunción (Paraguay) que es un puto crack de PHP (desaprovechado, y se dedica a empezar decenas de proyectos al mismo tiempo
).
El globo sonda dio resultado, a los pocos días me dijo que lo estudiaría. Me propuso la alternativa, interpretar las plantillas con PHP, pero como resultado se generaría una función PHP que además se cachearía por el xcache (que es el que usamos en los servidores www de MnM) por lo que sería muy eficiente.
César lo siguió desarrollando, a finales de julio ya tenía una versión bastante madura, le llamó Haanga (en guaraní significa dibujo o figura). Después de una hora de conversación telefónica nos pusimos de acuerdo en qué es lo que faltaba programar, cuál era el fast path, cómo debería implementarlo, y cómo haríamos las pruebas con Menéame (también hablamos de dinero, pero esto no interesa a nadie
).
Las pruebas consistieron en instalarlo primero en sus servidores e implementar las plantillas para reemplazar el código HTML de print_summary() de las clases Post (las notas) y Comment (los comentarios). Una vez me confirmo funcionaban en su servidor, el viernes 6 de agosto (hace cinco días) lo instalamos en los servidores de Menéame para hacer las primeras pruebas con datos reales. Fueron sorprendentes.
A parti de ese momento se aceleró y en menos de dos días corregimos bugs, lo optimizamos aún más y en la madrugada del domingo al lunes creamos la versión 4 de menéame en el svn y migramos el servidor en “porducción” al sistema de plantillas. Por ahora sólo con esos dos templates, pero poco a poco vamos migrando a nuevos templates (ya tenemos seis).
Vale, vale ¿pero qué es el Haanga?
Un sistema de plantillas, software libre, con la conocida sintaxis de Django o I2O, con algunas extensiones necesarias para Menéame (como tratar uniformemente objetos y diccionarios, facilitar la traducción con el GNU gettext, ejecutar funciones de forma controlada, pre definir variables globales, eliminar los espacios de sangrados en la plantilla…). Está desarrollado por César Rodas a pedido nuestro para cubrir nuestras necesidades, pero se hizo de tal forma que pueda ser fácilmente integrado en cualquier proyecto PHP de la misma forma en que se integró en Menéame.
Por ese interés de que sea de uso genérico, se mantendrá como proyecto independiente, liderado por César y en su propio repositorio GIT.
Su funcionamiento es simple:
- Se llama a una función para inicializar variables básicas, como el directorio donde almacenará los ficheros PHP. Por ejemplo en Menéame:
/* Load template engine here */ $config = array( 'template_dir' => mnmpath.'/'.$globals['haanga_templates'], 'cache_dir' => $globals['haanga_cache'] .'/Haanga/'.$_SERVER['HTTP_HOST'], 'autoload' => FALSE, /* Don't use Haanga's autoloader */ 'bootstrap' => 'haanga_bootstrap', 'compiler' => array( /* opts for the tpl compiler */ 'if_empty' => FALSE, 'autoescape' => FALSE, 'strip_whitespace' => TRUE, 'allow_exec' => TRUE, 'global' => array('globals', 'current_user'), ), 'use_hash_filename' => FALSE, /* don't use hash filename for generated php */ ); require mnminclude.'Haanga.php'; Haanga::configure($config); - Se llama a la función para generar la salida en HTML:
$vars = compact('title', 'greeting', 'id'); return Haanga::Load('header.html', $vars); - Haanga::Load verifica si existe el fichero de caché PHP y si es más nuevo que la plantilla. Si no se así, carga el compilador, genera el PHP, lo almacena y lo evalúa.
El código generado es muy eficiente, elimina los espacios innecesarios, no hace cambios de contexto, usa el echo –es construcción del lenguaje–, no usa comillas dobles para los strings. El template más complicado y largo que tenemos por ahora es el header.html, genera las cabeceras XHML y el HTML de los menús superiores. Este es el código generado en PHP, se puede ver que es prácticamente imposible hacerlo más eficiente (diría que imposible, pero seguro se nos escapan algunos trucos que no conocemos).
Actualizado: la plantilla de “links” es la más complicada por ahora, el código generado.
Desde que está funcionando en Menéame no hemos notado variación considerable (es muy difícil medir con precisión tan fina) con el sistema sin plantillas. Hay un pequeño overhead en la verficación de fechas de los ficheros originales y el cache compilado, pero muchas veces se ve compensado porque el código generado es más óptimo que el original programado manualmente a base de echo.
¿Qué falta?
Faltan implementar algunos detalles que queremos para Menéame, como el include condicional de otra plantilla (será la etiqueta try_include), como no usamos en Menéame el sistema de herencia/bloques (para reducir latencias y consumo de memoria, eso da para otro apunte) no lo tenemos probados en “caso real”, pero están implementados y superan los unit tests.
Lo que sí falta es documentarlo y traducir esta documentación al inglés. Lo que queráis colaborar o probar, poneros en contacto con César: crodas en php.net.
Si tenéis sitios PHP con mucho tráfico/carga y probáis el Haanga, seguro que quedaréis muy contentos. En Menéame nos está cambiando la vida… bueno, es una exageración, pero nos divierte mogollón.
El software libre según el Govern de Balears y el proyecto de los 12 millones
Día 22 de octubre de 2007, como lo recoge Toni Roig (actual presidente director del iBit) en su blog, Antoni Manchado declara:
El director general de Tecnología y Comunicaciones, Antoni Manchado, manifestó hoy el compromiso del Govern de impulsar el uso del software informático libre por parte del Ejecutivo autonómico y también de fomentar el reciclaje de ordenadores para que sean utilizados en la propia Administración y otras entidades de las islas.
El iBit también usó las promesas del Govern, por ejemplo en el Cicle de Formació de Solucions de Codi Obert per a Pimes de enero de 2008:
En línia amb la decisió del Govern balear de promoure l’ús de programari lliure en tots els seus aspectes
El propio Antoni Manchado participó en algunas sesiones de software libre en noviembre del 2008, así lo comentaba en su blog:
Hoy hemos tenido un encuentro interesante con empresarios de estas islas que se dedican a fabricar, instalar y/o implementar y mantener software, mayoritariamente, libre y, en aplicaciones, casi exclusivamente, dedicadas a las empresas turisticas (hoteles, agencias, reservas, etc).
[...]
He escuchado ideas interesantes sobre un modelo de negocio alternativo y eficiente que puede dar rentabilidades aceptables a las empresas y los empresarios que opten por él, y que produce aplicaciones QUE FUNCIONAN Y SON FIABLES, al menos tanto como las basadas en software privativo
Por sus palabras parece que no conocía muy bien lo que había prometido un año atrás, pero al parecía que tenía las ganas de aprender y se dio cuenta que en las islas también hay empresas basadas y/o que desarollan software libre y que trabajan con empresas de turismo.
¿Qué más se podía pedir? De hecho me había ofrecido a colaborar sin esperar ninguna retribución (y debo aclarar que sólo me llamó Toni Roig, nos hemos reunido un par de veces, le comenté mis ideas… luego el contacto fue cero, tampoco he visto que se hayan tomado en serio ninguna de las ideas, como dejar disponible mucha información relevante para las empresas y emprendores turísticos –como la información GIS tan detallada que tenemos y donde también hay allí trabajo de la UIB–).
Pero no, una cosa son sus promesas y su discurso ante la galería. Otra cosa son los hechos.
El 26 de noviembre de 2008 nos enteramos de un convenio del Govern Balear con Microsoft: el Govern cede 200 m² de un edificio que costó más de 3 millones de euros (se habla de un aporte de 400.000 € anuales por parte del Govern), en un sitio muy demandado por las empresas locales… a cambio del compromiso de poner 4 personas a trabajar (la nota de prensa del Govern, en Diari de Balears). Por supuesto no faltaron las fotos de familia de tan espectacular acuerdo.
Aún así hace menos de un año nuestro presidente Antich seguía repitiendo sus promesas –ya incumplidas– de apoyar al software libre en un comunicado del PSOE en el “Día de Internet”:
El PSOE apostava ahir, Dia Internacional d’Internet, pel desenvolupament i la utilització del programari lliure a través d’un manifest en el qual també demana estendre la Societat de la Informació per a avançar en un model econòmic sostenible, ja que la xarxa genera “riquesa i ocupació”.
[...]
A ell ja s’han sumat la secretària d’organització del PSOE, Leire Pajín, la secretària d’Innovació i Noves Tecnologies, María González Veracruz, i els presidents de les comunitats governades pel PSOE, [...] També el president de Castella-La Mantxa, José María Barreda, l’andalús, José Antonio Griñán, el balear, Francesc Antich, el català, José Montilla, l’aragonès, Marcelino Esglésies i l’asturià, Vicente Álvarez Areces.
Pero la realidad es tozuda, y a pesar de las promesas y críticas (incluso desde el sector turístico) por las contradicciones, en mayo de 2009 se anuncia -con más fotos de familia- Microsoft anuncia la puesta en marcha del “Centro de Innovación Microsoft”:
El desarrollo de este Centro de Innovación parte del acuerdo firmado el pasado mes de septiembre entre Microsoft y el Govern Balear.
[...]
Microsoft Ibérica y el Govern de les Illes Balears inauguran hoy el primer Centro de Innovación en Tecnologías para el Turismo ubicado en el Parque Balear de Innovación Tecnológica (ParcBIT), dependiente de la Conselleria d’Economía, Hisenda i Innovació.
Al acto de inauguración, en el que se han podido visitar las instalaciones del Centro, han asistido el president del Govern, Francesc Antich i Oliver; el conseller d´Economía, Hisenda i Innovació, Carles Manera Erbina; Vicens Matas, director gerente del ParcBIT, el cual ha desarrollado un papel destacado en la puesta en marcha de este proyecto; la presidenta de Microsoft Ibérica, María Garaña y el recién nombrado director del Centro de Innovación en Turismo de Microsoft, Peio Oiz.
Ayer, sin saber nada qué resultados ha obtenido hasta ahora el “centro de innovación”, los baleares nos enteramos de un nuevo plan del Govern Balear que se sacó de la manga sin aviso previo:
El Govern creará una plataforma digital de las Islas Baleares, la primera a nivel mundial de sus características y que contará el apoyo de Microsoft, como medida para relanzar y reforzar el sector turístico, “un tema de estado en la Islas”.
[...] “es una apuesta por las nuevas tecnologías vinculadas con el sector y que facilitará las posibilidades comerciales”.
“Será una plataforma pionera a nivel mundial que permitirá ver toda la oferta turística de las Islas Baleares vía ‘online’ y que contará con la tecnología de la empresa Microsoft, lo que nos permitirá adelantar en el campo de la internacionalización de nuestros productos y nuestra oferta”, ha agregado Antich.
El presupuesto del proyecto rondará los 12 millones de euros [...]
También lo cuenta El Mundo.
El presidente del Govern, Francesc Antich, ha anunciado en la feria de turismo ITB de Berlín que creará una “gran plataforma digital” de turismo de Baleares, que costará a las arcas públicas 12 millones de euros.
Dicha plataforma permitirá “a todos los implicados en la cadena turística presentar su oferta de servicios y ventas vía online”.
[...]
El primero de dichos puntos es la propia plataforma digital, que aún no tiene nombre pero aspira a parecerse a la famosa web inglesa visitlondon.com. Dicha plataforma será desarollada por Turistec con la colaboración de Microsoft.
Nota: La web inglesa visitlondon.com corre sobre Apache-Coyote.
Básicamente, un [otro más] proyecto de “portal”, sobre la plataforma Microsoft y en el que trabajarán unas empresas ligadas a la “asociación Turistec”. Se sacan de la manga un proyecto, prometen 12 millones de euros, además sobre la plataforma de Microsoft.
Muchos no sabrán el significado de “plataforma”, pero se puede explicar en pocas palabras:
Plataforma: es el conjunto de programas que componen la herramienta perfecta de cautividad (lock in). Una vez seleccionada una plataforma, todos los desarrolladores y usuarios están atados a seguir desarrollando y usando sólo los programas desarrollados para esa plataforma. Por eso es que todas las grandes empresas (Microsoft, Sun, Google, Facebook…) desarrollan plataformas y es tan importante vender su plataforma, es asegurar un mercado cautivo por muchos años.
Si a la plataforma le sumamos además los millones de euros que van a gastar, en un proyecto que no se sabe nada, y que claramente continúa la línea de seguir dando ventajas a una empresa -a la que ya se le cedió espacio y publicidad, no sabemos si además dinero en efectivo- sólo se pueden decir unas pocas cosas de los responsables de este desaguisado que ya lleva mucho tiempo y dinero público invertido:
- Estupidez, ignorancia, incoherencia e hipocresía.
- Intereses económicos directos de los responsables/participantes.
En cualquier caso significa que nuestro sistema está corrupto, y así se lo transmití a Antoni Manchado por Twitter:
@antonimanchado Afirmar que se apoya al SL y hacer todo lo contrario, con mucho dinero público, sin concurso ni debate es simple corrupción
¿Cuál fue la respuesta de Manchado? A pesar que en su blog y twitter habla bastante de corrupción y de que la participación ciudadana es importante para luchar contra ella, en este caso disparó contra el mensajero:
@gallir vaya que contundencia para llamar corrupto al primero que pasa. Eso lo has pensado tu solo?
Nota: en aras del debate no toméis en cuenta su falta de tildes, signos de puntuación o apertura de interrogación, quizás es sólo el teclado de su Windows.
No acusé a nadie en particular, menos a Manchado. De hecho tenía buenas referencias de él, pensaba que en contra de la Conselleria d’Economía y la gestión del Parc Bit era un hombre que seguía apostando por el software libre. Pero dos de sus tuits en pocas horas me convencieron de lo contrario.
El primero es que me critica por usar la palabra “corrupción” tan fácilmente, y que además era como una acusación directa. Sin embargo en un tuit posterior escribe:
Si no te gusta como está la política en las islas Baleares, haz algo para cambiarla: no votes corrupción ni te quedes en casa.
Siguiendo con su lógica, ¿está acusando a la primera de corruptos a todos los políticos y/o partidos de la oposición? ¿acaso pide participación a la ciudadanía y luego machaca por sentirse víctima de las mismas palabras que él usa para calificar a los demás.
No es nada raro, ya he visto muchas veces esta costumbre de los políticos de insultar al contrincante y sentirse vilmente atacado ante la menor crítica.
Pero hay algo mucho más grave y que quizás demuestra que sólo se trata del caso de “estupidez, ignorancia e hipocresía”. Más o menos por la misma hora responde a Benjamí Villoslada:
@benjami en mi opinión, humilde pero tan valida como otra cualquiera, al propio proyecto. Creo q hoy las herramientas de SL no dan para eso
Nota: recordad que estamos en 2010, no en 1995. De nuevo, en aras del debate de fondo no toméis en cuenta la falacia de que “todas las opiniones son válidas”.
¿Qué quiere decir este buen hombre con eso que las herramientas de software libre no están preparadas? Sólo hay dos posibilidades:
- El software libre no puede competir con la “plataforma” Microsoft y sus herramientas de programación y producción.
- Que ya existen los programas que necesitan ejecutar sobre la “plataforma”, que son privativos y no existen programas libres equivalente.
La primera opción es imposible, ya sabemos todos (podría escribir un libro listando las que se usan y sus ventajas) pero basta con citar a las dos empresas de TIC en Internet más “grandes” Google y Facebook. Ambas usan masivamente software libre en toda su pirámide (sistema operativo, lenguajes, bases de datos, librerías/toolkits web, etc.), la razón fundamental es justamente evitar la cautividad a los sistemas de otra empresa. Sólo podría entender que estén convencidos que el proyecto del Govern es más complejo y sofisticado que los sistemas actuales de Google o Facebook. No es creíble.
La segunda opción podría ser más plausible, que ya existan programas que les implementa la “lógica” del proyecto. Entonces, ¿en qué programas van a gastar los 12 millones de euros? ¿qué empresas los desarrollaron? ¿quiénes lo usan que han demostrado que son mejores?
En realidad cualquiera de las dos interpretaciones son ridículas. La respuesta sólo demuestra que no tienen nada claro qué van a hacer (salvo que ya han elegido a Microsoft como “plataforma”), y que nuestro Director General de Tecnologías no sólo tiene problemas de lógica básica -sus respuestas son falaces-, tampoco tiene idea de software libre a pesar de sus promesas desde hace tres años, y que todavía sigue con los mismos argumentos que leyó de algún informe FUD de Microsoft en 1998.
Mires como lo mires, es tristemente incomprensible.
Cuando el Govern cambie de signo político ya nos enteraremos de los trapos sucios que están guardando ahora -como saben muy bien por lo que le está pasando al PP y UM- y el desastre de “portal de negocios” promovido desde la administración (como casi todos). Una pena que serán más años perdidos, más dinero tirado, más hipocresía gobernando.
Como los jueces y fiscales desconocen de los costes de las decisiones tecnológicas y sus consecuencias seguirán sin pagar como toca. Yo creo que lo saben, por eso siguen -como ya se hacía desde la Conselleria d’Economía del infausto Jaume Matas en los noventa- tirando el dinero en mastondónticos proyectos de TIC sin rendir cuentas a nadie.
Actualización: A raíz de este apunte me llegó información sobre los miniportátiles (netbooks) para los alumnos de 5to y 6to de las escuelas. Se esperaba en la Conselleri d’Educació que llegasen sólo con Ubuntu 9.10 Remix instalada. Después de “conversaciones” del Govern con Microsoft resulta que vendrán ahora con arranque dual com Windows XP, lo que supondría un gasto de 2 millones de euros en dos años. ¿Qué decían desde el PSOE cuando estaban en la oposición?
Es necessari que el Govern gasti 2.440.000 d’euros per a comprar 5.500 llicències de software?
Viaje al pasado, o como decir tonterías del software libre
Como un viaje al pasado, me encontré con el apunte 8 cosas (y mitos) que Linux y el Software Libre deben mejorar. Escribiré y contestaré rápido porque en unos minutos salgo hacia al aeropuerto.
Antes de iniciar, unas aclaraciones (o como dicen en inglés, un “disclaimer“): (1) Unas 2/3 partes del software que utilizo a diario es Software Libre, (2) mi máquina de trabajo principal es una MacBook con OS X, Windows XP y Ubuntu Linux. Hago estas aclaraciones porque cada vez que alguien escribe un artículo como este lo acusan de “winfanboy” o “macfanboy” y se olvidan que quizás quien escribe simplemente trata de ser objetivo, o incluso (como en este caso) simplemente querer ayudar.
Esta es una falacia de autoridad cansina y basado en una autoridad ridículo: soy más objetivo creíble porque instalé o uso un GNU/Linux. Es como ese que empieza su diatriba racista o xenófoba diciendo: “no soy racista, tengo un amigo gitano/negro…” Pero lo siento, se puede tener instalado una Ubuntu y ser un completo ignorante de cómo ha podido crearse esa empresa y y distribución, o de la historia y conceptos básicos.
Habiendo dicho eso, hoy quiero hablar de varios problemas que creo la comunidad deOpen Source (Software Libre)
La comunidad del software libre no es la misma que la del open source. Aunque se compartan licencias y proyectos, las motivaciones son muy distintas. En la primera es ética-filosófica, en la segunda puramente técnica (y desde mi punto de vista egocéntrica desde el punto de vista del programador).
1. El mito de que el Software Libre es gratis.
[...] En este caso creo que la comunidad del Software Libre debe tener un mensaje mas realista que el de “te va a salir todo gratis”
Jamás desde el software libre se afirma eso, fundamentalmente porque el precio no es una motivación ética. En todo caso cuando oye esas afirmaciones debería dudar de que el que lo dice sepa realmente de qué está hablando. Aunque también hay que decirlo, si no tienes costes de licencias iniciales, ya estás bajando el precio sin gastar una hora de trabajo. Empresas como Google o Facebook explicaron hasta el cansancio de que no hubiese sido posible para ellas comanzar si tenían que pagar las licencias de software privativo para todos sus servidores.
1. El mito de que puedes hacer lo que quieras con el Software Libre
En este punto lanza la mayor cantidad de afirmaciones falsas y sin tener idea. Por partes.
Una vez mas, esto es algo que termina disparando el tiro por la culata a muchos consultores, que sin saber las particularidades de las distintas licencias Open Source, implementan sistemas de Software Libre a clientes empresariales.
Critica a los consultores que has hablado, o menciona la empresa. En todo caso la culpa es de ellos, no del software libre, el open source o las licencias.
Sucede que irónicamente (dado el nombre de Software “Libre”), que el Software Libre en realidad no es libre bajo muchas licencias, ya que (como ejemplo) te quita una de las libertades mas básicas de la sociedad humana: La libertad de tu beneficiarte económicamente con el fruto de tu labor.
Ridículo. La primera libertad y más fundamental es la libertad del usuario para hacer lo que quiera con el software de su ordenador. Además ninguna licencia libre impide al autor de un código hacer lo que quiera con sus programas, puede publicarse sólo con licencia libre, o con varias, venderlo, o regalarlo. O puede trabajar modificando y desarrollando software libre cobrando por ello, o puede incluso vender software libre –como hacía Richard Stallman o la misma FSF– siempre y cuando respete la licencia de los trabajos de terceros.
Se bastante bien (y he escrito al respecto en eliax anteriormente) que “la manera” de hacer dinero con el movimiento Software Libre es cobrando por servicios, y no por el software, pero aquí olvidamos un componente bastante importante: Los que escriben ese software en primer lugar.
Puedes cobrar por el software, ninguna de las licencias de la FSF y compatibles impide la comercialización. Lo que quieres que respetar es la intención y autorización de los otros autores. ¿O pretender hacer negocio con el trabajo de otros sin respetar sus intenciones ni devolver nada a cambio?
Es fácil decirle a alguien “escribe 10,000 lineas de código que haga esto y aquello”, y después tomar el código de esa persona para tu propio beneficio sin darle un centavo, y decirle (mientras le das unas palmaditas en la espalda) “y ahora no te preocupes que harás dinero haciendo consultoría o dando algún tipo de servicio con esto que haz escrito”.
Contradictorio. Si puedes coger código de otra persona es porque el otro así lo ha querido. Y puedes venderlo si tienes mercado. Con el software privativo no puedes hacer nada de esto, ni siquiera usarlo como te apetece.
Uno de los grandes secretos ocultos del movimiento Open Source es que la mayoría de los que donan su tiempo al movimiento rara vez obtienen un beneficio económico de su esfuerzo. Noten que no estoy diciendo que eso sea algo malo, en el sentido de que quien quiera donar su tiempo que lo haga (yo mismo lo he hecho), pero sí me preocupa que una movimiento que haga tanto incapié en la palabra “libre” en realidad le quite una de las libertades mas importantes del ser humano, la de beneficiarse (y sí, de manera egoísta si lo quieren ver de esa manera) de los frutos de su talento.
Nadie está obligado a programar software libre, ni a usarlo, no entiendo que se preocupe por las intenciones de los demás. Y como dije antes, ninguna licencia prohíbe que el autor de programas haga lo que quiera con ellos, además no se puede, es imposible legalmente –por las leyes de copyright/derechos de autor–
Pero todo esto surge de una confusión más grande. Las cláusulas de entregar el código fuente de software libre sólo se aplican en caso de distribución a terceros (salvo licencias como la Affero GPL que también se “dispara” en ejecución remota) porque aquí entra en juego la libertad de los otros usuarios. Mientras no haya distribución tienes las libertades fundamentales que aseguran todas las licencias libres:
- Hacer con el software lo que quieras: ninguna licencia de software privativo lo permite.
- Modificarlo como quieras: ninguna licencia de software privativo lo permite.
- Libertad para distribuirlo: es una libertad, no una obligación. No tienes por qué publicar ni distribuir nada, pero si lo haces y es de software de terceros debes respetar la licencia que le han puesto.
3. El pensamiento radical de muchos en el movimiento Open Source
Otro punto que creo no favorece al movimiento Open Source en general, es la existencia de muchos radicalistas, que se comportan mas como sacerdotes fanatizados que como ingenieros o consultores.
Un ejemplo, el mismo Richard Stallman (fundador de GNU), a quien admiro por un lado (por sus destrezas técnicas), pero con quien tengo serias diferencias filosóficas sobre el Sofware Libre.
[...]
Richard Stallman no es del open source, está cansado de repetirlo y se conocen sus diferencias filosóficas profundas. Volver a repetir esto es no tener la mínima idea de lo que se está criticando.
Además sí, Richard Stallman es un radical, como toda persona que da prioridad a los valores éticos. Estos valores éticas son fruto de la reflexión lógica, no de religiones, que son todo lo contrario. Pero Richard Stallman es personalmente consecuente con lo que dice, no obliga –ni puede– a nadie a que sea igual que él, no demanda a nadie e incluso se toma a humor su propio radicalismo, por eso se disfraza de San Ignucio (es que todavía hay muchos que no captan la ironía).
O sea, el “radical Richard Stallman” vive acorde a su filosofía, renunció a todo poder como está claro en las licencias. Todo lo contrario que por ejemplo Steve Jobs, cuya empresa hasta demanda a otros porque arrancan Mac OS X en un hardware diferente al de Apple y así violan la licencia, o a escuelas por el logo de una fruta… pero resulta que el perjudicial para el software por su radicalismo es Stallman. Absurdo.
Esta vista radical en muchos casos se enfrenta directamente con varias empresas las cuales piensan (obviamente) en hacer dinero, y si una librería de código bajo cierta licencia implica que estos deban liberar todo su software propietario, o si en el mejor de los casos tengan que molestar a sus clientes diciéndoles que deben instalar esto o aquello ya que no lo pueden incluir en el binario para no arriesgarse a un proceso legal, ese tipo de cosas simplemente cierran muchas puertas.
¿Está defendiendo el “derecho” de una empresa de coger el trabajo de otros y venderlo sin respetar la licencia ni el trabajo de sus programadores que les han autorizado a usarlo de una manera? Seguramente Apple o Microsoft sí que lo permiten para sus programas y no demandarían a nadie si usan sus códigos fuentes sin autorización.
4. La confusión con las múltiples distribuciones del mismo software
Este tema lo vemos claramente en Linux, en donde la cantidad de distribuciones se acerca a 180 (no contando las distribuciones fuera de mantenimiento, que son un sinnúmero mas) [...]
Hablando tanto de libertad y ahora se queja de que haya libertad. ¿Qué pretende? ¿Que Richard Stallman u otro “radical” obligue a las empresas a que se fusionen? ¿a que creen más distros? ¿o que la licencia lo prohíba expresamente?
Quiero eso que fuma.
5. El tema de “El Programador Mas Macho”
Otro problema relacionado al punto anterior es que debido a que todo el mundo cree tener la “mejor” solución a un problema, que muchas veces esto conduce a anarquía, y división del software en cuestión. Linux es un excelente ejemplo, en donde podemos citar el eterno debate entre los gestores gráficos KDE y GNOME. Al final los usuarios finales tienen que decidir cual de los dos elegir, pero una vez mas, un usuario común no sabe cobre cuál base elegir, por lo que aunque esto sea bueno para usuarios técnicos que pueden elegir su favorito, para un usuario común y corriente es mejor decidir por ellos y darles un entorno estándar que puedan utilizar en cualquier versión de Linux.
De nuevo, ¿qué pretende? ¿que las licencias prohíban la diversidad? ¿que les impida a lso programadores iniciar nuevos proyectos? No entiendo absolutamente nada.
Además KDE y Gnome no tienen nada que ver con Linux (que es sólo un kernel) y se ejecutan en otros sistemas operativos que no son GNU/Linux.
6. La gran confusión entre todos los tipos de licencias
¿Cuántas personas técnicas conocen que pueden discernir entre los distintos tipos de licencias de Open Source? Muy pocas. Yo mismo acabo de contar 65 licencias diferentes en esta página.
Otra vez. Se queja de la diversidad ¿pretende prohibir que programadores o proyectos pueden elaborar sus propias licencias? ¿acaso se ha leído todas las licencias de software privativo? Cada programa tiene la suya, así que si las empieza a contar debe haber decenas de miles, que es mucho más que “65″.
Pero sí, es un problema, por eso la FSF pide que no se hagan tantas licencias que luego generan problemas legales. Pero el problema de fondo no es la licencia, sino las leyes de propiedad intelectual que obligan a elaborar textos muy complejos para la “autorización”, i.e. licencia.
¿Qué significa eso? Que antes de uno escribir una sola linea de código y reutilizar código Open Source, debe primero hacer una maestría en ciencias legales, o contratar un abogado experto en la materia (ahí van los ahorros del software “gratis”), para saber cuál licencia utilizar. Y eso es un grave problema.
Falso, para usar y modificar un programa internamente ni hace falta leer la licencia si es libre: puede estar seguro que tiene asegurada su libertad. Sólo debe estudiarlas si piensa distribuir un paquete con programas que usan licencias diferentes. ¿Pero acaso no se dió cuenta que con software privativo no lo hace porque ni siquiera tiene la opción? ¿O está defendiendo una especie de “no podemos permitir que la otra gente lo pueda hacer, no podemos permitir que sólo tengan que estudiar las licencias”?
Por cierto, ¿se ha leído y comparado una licencia de Mac OS X o la de Windows? ¿le permite combinar el código fuente con otros sin problemas ni necesidad de estudiar licencias o contratar abogados?
Para finalizar, la FSF y otras organizaciones hacen esfuerzos para compatibilizar licencias, se modifican para ello (como la GPL3 para que sea compatible con Apache) y hay guías. Además, no debe ser tan complicado, yo dedico una hora de una asignatura de un máster para enseñar lo fundamental de las licencias, ni tampoco se ven demandas por el uso indebido. De hecho hay más demandas de Apple o Microsoft por razones de las más variopintas que por problemas de licencias libres…
8. El mito de que Software Libre es utilizado en la mayoría de las empresas
De nuevo confunde la propaganda que pueda hacer una empresa con el uso real de software libre. Pero sí, cualquier empresa que esté en Internet, o tenga una conexión hacia Internet, seguro que usa mucho software libre:
- Navegador
- Buscadores como Google
- Routers
- Servidores webs
- DNS
- Todas las grandes “redes sociales” usan software libre: Facebook, Tuenti, Twitter, Digg, Reddit… Menéame mmm, no estoy tan seguro de esta última
- El blog de Eliax
No pensé que a estas alturas hubiese alguien mínimamente inteligente que pudise escribir tantas falsedades con argumentos con la falta de la mínima lógica para criticar al software libre, tema sobre el cuál manifiestamente desconoce. No es un problema ignorar un tema, todos ignoramos cientos de miles, pero escribir sobre lo que se ignora y además para criticarlo de esta manera es, como mínimo, un despropósito.
Por cierto, este señor hablando tanto de libertad y no veo que tenga ninguna licencia en su blog, lo que significa que no autoriza a nadie a re-usarlo. Cosas de la coherencia.
Salgo corriendo al aeropuerto…
¿”Ingeniería” del software? Ahora vienen los mea culpa
Los que leen habitualmente mi blog conocen mi opinión sobre la “ingeniería del software tradicional”, muchas veces hablé de ello y del “mal” que hacen en general a la profesión, y hasta como limitan la innovación.
Nunca me gustó que se llame “ingeniería” a un proceso que tiene poco que ver con los de las ingenierías tradicionales, entre ellas que las tradicionales poseen una serie de herramientas analíticas y cuantitativas para evaluar y estimar riesgos y tolerancias. En el desarrollo de software no tenemos esas herramientas, quizás nunca las tengamos: no es lo mismo trabajar en la construcción de elementos físicos, limitados por leyes fundamentales de la física, con pocas combinaciones posibles, con la construcción de programas informáticos que no tienen esas limitaciones físicas, ni en las combinaciones posibles.
Este tipo de visión propuesta desde el mismo nombre “ingeniería” nos lleva a errores muy importantes, por ejemplo el de suponer que las construcciones físicas y las matemáticas [los programas] son equivalentes. No sólo hace “daño” a los proyectos que nunca pueden cumplir plazos y presupuestos, sino también a la propia “ciencia” y profesión informática. Es un engaño, fundamentalmente a los propios profesionales. Así se cometen errores derivados como reclamar colegios, regulaciones y normas y procedimientos similares a otras ingenierías: las soluciones equivocadas son más perjudiciales que los problemas abiertos. Además es ponernos una venda en los ojos para no observar el verdadero potencial de la informática, ni para darnos cuenta de dónde está la innovación (que no es precisamente seguir haciendo el mismo software de siempre).
Escribí bastante sobre estos temas, fundamentalmente en apuntes críticos con la creación de los colegios oficiales informáticos. El núcleo de la argumentación es la que comentaba antes, incluso de crear una “pseudociencia” (p.e. en Recursividad, punteros, estadísticas y pseudociencia del software, Diseño, ingeniería, ágiles… y frameworks, Redescubriendo al Dijkstra provocador 18 años después), además enseñado en la universidad como si de leyes científicas se tratasen –quizás lo que más daño hace–.
También critiqué al establishment de la “ingenieria del software”, dominado por tecnológos pocos “científicos” –en su mayoría empleados de grandes corporaciones de desarrollo de software para empresa de Fortune 500– que en ninguna de sus publicaciones científicas presentan los datos para que puedan ser contrastados (algo inherente del software privativo) y sometidos al peer review (que no es aceptable en ninguna otra rama científica). Este mismo establishment ha ignorado durante muchos años al software libre con sus métodos de diseño y desarrollo completamente contradictorios con los propuestos por la “ingeniería tradicional” (muy bien expuesto en al “Catedral y el Bazar” de Eric Raymond).
Muchas de las respuestas que tuve –incluso entre supuestos reputados profesionales– es que “hago daño a la profesión” [sic].
Pero ahora está surgiendo el mea culpa de los gurús incondicionales de la “ingeniería del software”. El reconocido gurú Tom DeMarco (gracias Paco) que escribió el artículo de opinión Software Engineering: An Idea Whose Time Has Come and Gone? (algo así como “Ingeniería del software: ¿una idea de tiempos pasados?”) que es en gran parte una autocrítica a sus ideas y libro de referencia Controlling Software Projects: Management, Measurement, and Estimation.
Resumo sus ideas fundamentales con algunas de sus frases traducidas literalmente:
- Hoy en día todos comprendemos que las métricas de software cuestan dinero y tiempo, y que deben ser usadas con moderación.
- El desarrollo de software es inherentemente diferente de las ciencias naturales tales como las física, por lo que sus métricas son muchas menos precisas para capturar lo que deben describir.
- La frase más citada del libre es «No puedes controlar lo que no puedes medir». Esta frase contiene una verdad real, pero cada vez me sentía más incómodo con el uso que hice de ella. Está implícita en la frase (y en título del libro) que el control es un aspecto importante, quizás el más importante, de cualquier proyecto de software. Pero no lo es.
- Muchos proyectos se han realizado sin demasiado control pero han generado productos maravillosos tales como Google Earth o la Wikipedia.
- Esto nos lleva a la desagradable conclusión que el control estricto es algo que importa mucho en proyectos relativamente inútiles y mucho menos en proyectos útiles. Sugiere que mientras más te enfoques en el control aumenta la probabilidad de que estás trabajando en un proyecto que se esfuerza por generar algo de valor relativamente menor.
- ¿Estoy diciendo que está bien ejecutar proyecto sin control o con un control relativamente menor? Casi. Estoy sugiriendo que deberíamos seleccionar primero a los proyectos cuyo control preciso no importe demasiado.
- Estoy llegando gradualmente a la conclusión que el momento de la ingeniería del software vino y se marchó.
- En los últimos 40 años nos hemos torturado por nuestra ineptitud en acabar proyectos a tiempo y con el presupuesto previsto. Pero como sugerí antes, no debería haber sido el objetivo supremo.
- El objetivo más importante es la transformación, crear software que cambie el mundo, o que transforme una empresa, o la forma en que hace negocios.
- El desarrollo de software es y será siempre algo experimental. Lo construcción real de software no es necesariamente experimental, pero sí lo es su concepción. Allí deberíamos enfocar nuestros esfuerzos. Allí es donde deberíamos haberlo hecho siempre.
Está muy bien que por fin los gurús de la “ingeniería [tradicional] de software” comiencen a reconocer errores y dejar de ignorar a los métodos y filosofías tan habituales del software libre y de proyectos que han sido realmente innovadores desde el punto de vista de gestión de proyectos de software. Todavía se queda corto y esta opinión me deja la misma sensación de dejè vu que me produjo hace unos diez años la moda de lo métodos ágiles y la programación extrema: era algo que ya se veía hace tiempo en el software libre y de hecho era mucho más radical que las “radicales” nuevas metodologías y métricas. Por ejemplo.
Tom DeMarco cita a dos proyectos que le parecen notables para mostrar la contradicción con las ideas tradicionales: Wikipedia y Google Earth. Pero resulta que ambos tienen muy poco que ver y no han sido “seminales” en sus aŕeas.
El software de la Wikipedia [un wiki colaborativo] es muy sencillo y no fue el primero en hacer un programa de este estilo. el éxito e importancia social de al Wikipedia es el proyecto global, y cómo ha conseguido formar una enorme comunidad de gente que comparte valores de fomentar la divulgación libre del conocimiento. Poco tiene nada que ver con “desarrollo de software”, sino con valores y conceptos mucho más amplios.
Google Earth es un programa mucho más complejo pero que ya eran comunes desde principios de la década de los ’90, con el auge de las estaciones 3D (el líder indiscutible era Silicon Graphics, SGI) y la realidad virtual. De hecho Google Earth surge de la compra de una empresa (Keyhole) que a su vez se basó en otras ideas e implementaciones previas de 1994. El logro fundamental de Google Earth poder acceder a esa cantidad de datos y dejarlos a disposición de todo el mundo, algo que antes sólo podían hacer muy pocas empresas. (En todo caso yo hubiese mencionada a Google Maps, porque mostrar esa información usando sólo HTML y Javascript sí fue una innovación importante, junto con Gmail mostraron el camino del desarrollo de aplicaciones Web/Ajax complejas).
Si yo tuviese que elegir proyectos de software realmente indicativo de las contradicciones con las “métricas tradiconales”, por ejemplo:
- Núcleo Linux: Es muy complejo desarrollaro un núcleo de sistema operativo, la variedad de hardware es enorme, los bugs tienen consecuencias graves, se necesitan mucho conocimientos, tiene una enorme cantidad de elementos independientes, las combinaciones de caminos de ejecución de casi infinitas. Aún así se desarrolló uno que funciona desde los superordenadores más grandes del mundo a los teléfonos móviles, con el aporte de miles de programadores sin ningún tipo de reuniones, coordinación, diseño previo o siquiera documentación básica (ahora ya hay bastantes libros y documentos).
- KDE/Gnome: Dos proyectos complejos, independientes pero competidores e incluso “con esfuerzos inaceptablemente duplicados”, pero que cada uno aportó innovaciones en distintas áreas y se integran o usan en entornos diversos como escritorios completos a dispositivos móviles o multimedias (por ejemplo el Sfari/Webkit que se ejcuta en Mac, iPhones, Androids y Nokias es derivado directo del KHTML de KDE).
- Sistema GNU/Linux o BSD (+ X.org, +GNOME/KDE, +multitud de software): Ejemplo radical de cómo se pueden construir sistemas complejos muy completos basados sólo en una coordinación o consenso mínimó para las interfaces entre ellos. Estas interfaces además son muy simples y no han dejado de evolucionar sin necesidad de “cambios drásticos”.
Cualquiera de los tres proyectos es –en código fuente– órdenes de magnitud más grande que la Wikipedia o Google Earth, además ninguno de ellos dependió de una empresa o fundación, y tienen una complejidad y diversad de uso mucho mayor.
Por eso, está muy bien que empiecen a descubrir todo un mundo allí fuera, que creció y se desarrolló sin seguir las métricas y métodos “tradicionales”. Es aún una mejor noticia que los gurús de la ingeniería del software empiecen la autocrítica de las ideas erróneas que han fomentado durante 40 años.
Estaría ahora muy bien que los fanboys de esa “ingeniería” empiecen a aceptarlo. Pero sería mucho mejor que los responsables de planes de estudio y asignaturas de “ingeniería del software” en las carreras informáticas sean conscientes del problema, al menos ya tienen a uno de sus gurús poniendo en dudas los cimientos de su [pseudo] ciencia. Quizás así dejaremos de leer y escuchar falacias tales como “para ser buen director de proyecto no hace falta saber programar”, “un proyecto es malo si no tiene un diseño previo bien especificado y documentado”, o el mantra:
[...] podemos y/o debemos gestionar un proyecto de software de la misma forma que un proyecto de arquitectura.
Futurología: en unos pocos años veremos que el hot topic en las publicaciones de ingeniería del software serán estudios de caso de grandes proyectos de software libre. Nos hablarán de la radicalidad de los métodos ágiles usados, la coordinación debil, el software evolutivo, la complejidad de las relaciones sociales entre programadores y usuarios, la influencia del uso real de los usuarios para el diseño del software, la importancia del release often, del peer review, los casos reales de uso no previstos por los programadores… y volveré a sentir una sensación de dejà vu.
De software libre…
Escribo poco en el blog, como comenté antes le doy prioridad a cosas que son más fructíferas y divertidas que estar en constante discusiones en el blog: la familia, mi trabajo de investigación [*], programar cosas del Menéame… y en estas épocas corregir prácticas y examenes como loco. Pero además de ello hace tiempo no escribo sobre software libre.
La verdad es que se me secaron las ideas sobre el tema. Todo lo importante está dicho, el que tenía deseos de aprender ya lo sabe, los demás no habrá forma de explicarlos. No saldrán del eslogan “talibán”.
Pero en la conferencia de Carlos Almeida alguien del público comentó que era una pena que no hubiésemos hablado de software libre. Mi respuesta fue que ojalá el tema de la cultura, libre o encerrada, estuviese en la misma situación que el software libre:
- Se produce mucho software que se libera y se utiliza por individuos y empresas.
- Los programadores de software libre no reclaman que el gobierno les subsidie o les asegure ingresos a pesar que el númer de usuarios de software libre es infinitamente mayor de los que ven pelis españolas (sólo contando a usuarios de Firefox o los GNU/Linux en móviles y empotrados ya se gana por goleada).
- Se produce y divulga mucho conocimiento útil y de efectos prácticos inmediatos.
- etc. etc.
- Ganan dinero.
Pero lo mi respuesta fue que hace 15 años hubiese sido imposible imaginar que grandes corporaciones, competidoras entre sí, trabajasen de forma conjunta para desarrollar software que es fundamental para sus negocios, y que además lo liberasen.
A un no iniciado eso le sonará a utópico o exageración, pero a los hechos me remitiré. Cogiendo una pequeña parta de las cosas nuevas cool que se implementaron en la última versión del núcleo Linux (obvío las contribuciones personales):
- Contributor: NTT Labs (Nippon Telegraph and Telephone Corporation)
- Contributor: www.openfabrics.org (Particularly, Oracle)
- Contributor: Intel
- Contributor: Atheros
- Contributor: Red Hat
- Contributor: Panasas
- Contributors: Panasas, Netapp and IBM
- Contributor: Red Hat
- Contributor: NTT DATA CORPORATION
- Contributor: Michal Simek, with donations from PetaLogix and Xilinx
- Contributor: IBM
Luego se se ven los detalles de los commit de cada cambio se podrán ver las firmas de empleados de casi todas las empreas inportantes de hardware y software. Es casi un Who is who en informática.
Ojalá la “industria” cultural estuviese en la misma situación. El equivalente sería ver a los majors colaborando entre ellos, con productoras pequeñas y músicos de todo tipo, liberando todo con licencias libres, promoviendo el remix, con páginas webs para que cualquiera se baje la última versión de cualquier obra, organizando conferencias y conciertos para explicar el porqué es bueno compartir, sin SGAEs ni reclamando subvenciones y cánones, y además ganando dinero en el proceso.
Sí, quizás nunca lleguemos a esa situación. Pero si IBM, Oracle o Intel ya lo han tomado como parte natural de sus negocios no hay que perder las esperanzas.
Claro que la gente que suele dirigir empresas como IBM Oracle o Intel suelen ser muy listas, con doctorados o másters de universidades prestigiosas, y una larga experiencia en la empresa y el área. Aquí en cambio cualquier guionista de pelis subvencionadas puede llegar a ser ministro sólo por haber repetido una y otra vez lo de “la piratería de Internet nos está matando”. Vaya si hay diferencias.
Tant de bo! que a la cultura le pase lo que al software libre. A nadie se le hubiese ocurrido leyes hadopis y estupideces similares.
PS: Sí, hay contradicciones, doble juego y cosas no tan bonitas, pero cada año mejora la colaboración e igualmente –en el peor de los casos– no hay color en la comparación con la “industria cultural”, que son peores que el temido y odiado Big Brother de IBM en los 60-70.
[*] Estoy metido en dos cosas. Una que desarrollaré poco a poco y cuya idea surgió de la chapucilla rápida que hice para sindemocracia.net, técnicas de clustering para organizar noticias a partir de seguimineto en sitios sociales y de noticias a partir de palabras claves. La otra es muyteórica, coloreado de grafos con algoritmos polinomiales. El coloreado de grafos es un problema NP-Completo, es decir, puede ser resuelto por una máquina de Turing no determinística y se puede verificar la solución en tiempos polinomiales, pero no se conoce un algoritmo óptimo polinomial para hallar la solución. Para encontrar soluciones se usan heurísticas, por ejemplo ordenar los nodos y asignar colores con el [simple] algoritmo greedy. Ya desarrollé un algoritmo de ordenamiento que es no sufre los problemas de los conocidos –fundamentalmente con “prismas”– y que encuentra soluciones con menos colores, pero la diferencia es pequeña para que sea importante. Por ejemplo para grafos –de bases de datos de “grafos reales”– de 1.000 nodos y con 60 colores en su solución óptima asigna 121 colores, tres menos que el conocido smallest-last. Ahora estoy trabajando con heurísticas un poco más complejas, pero todavía sencillas y de tiempos de ejecución polinomiales, basadas en la freucencia de colores usados y las restricciones de nodos previos como “grados de libertad” para la asignación de los siguientes.
![Blog [no] premiado](https://gallir.files.wordpress.com/2013/03/premio-no-premio.jpg?w=200&h=261)

Comentarios recientes