- ¿Qué es un algoritmo?
- Patentes
- El formato GIF
- El PNG, una alternativa libre al formato GIF
- Concluyendo
En los espacios antagonistas –de los cuales indudablemente forma parte — venimos heredando un sólido pack de antis (antimilitarismo, antifascismo, antirracismo, antipatriarcado…: para una lista más exhaustiva, ver ventana desplegable de la ACP). Por ejemplo, somos antifacistas prácticamente desde la cuna. Nadie tiene que explicarnos cuando entramos en un colectivo por qué hay que ser antifas. Viene de suyo.
Un asunto que evidentemente no recibimos en ese pack por defecto es el tema de las patentes. No somos "antipatentes", al menos no del mismo modo que somos antifascistas. O, como en el tema del anticopyright, lo somos mientras tenga que ver con los otros. Por ejemplo, existe la idea bastante asentada de que podríamos aceptar en ciertas circunstancias formatos de fichero patentados en las páginas de SinDominio. Incluso llega a mostrarse dubitativa gente que usa habitualmente sistemas operativos libres y que por tanto se beneficia de ese software libre de patentes.
Voy a cuestionar los argumentos que llevan a sostener que podemos aceptar patentes en ciertos casos cuando, por el contrario, no aceptaríamos bajo ninguna circunstancia publicidad de Micro$oft, Unisys, la BSA (Business Software Alliance, organismo de estilo mafioso y poderosísimo que persigue la piratería en el mundo entero) o cualquier otra corporación y menos aún una cruz gamada (a no ser para tacharla). Pues bien, resulta que para alguna gente las patentes son las cruces gamadas del siglo XXI o, al menos, una clara amenaza de control totalitario. "Aquí te has pasado", pensará más de uno y de una. Para quien crea que exagero o que hago demagogia con tal afirmación, recomiendo la lectura detenida del "Derecho a leer", que ilustra muy bien a través de un pequeño relato de política-ficción la posición de quienes ven en la lucha contra las patentes y contra la propiedad intelectual en general una batalla en la que nos jugamos una libertad fundamental. Una libertad fundamental es aquella que da pie a otras, como hace un siglo podía ser la lucha por la libertad de expresión o, más recientemente, la lucha contra la cruzada antidroga. No es es el software, no es el derecho a consumir drogas o a opinar libremente lo único que está en juego en esas luchas: es la capacidad de pensar sin ser tutelad@: la capacidad de ser libre y cooperar con otra gente, de conducirse de manera autodeterminada, requisito previo en cualquier perspectiva de "buena vida" (en el sentido clásico de "vida digna de ser vivida") o de emancipación social. En este caso como en tantos otros, es más cómodo lamentarse que luchar cuando aún estamos a tiempo de cambiar algo en nuestras vidas.
¿Qué es un algoritmo?
Un algoritmo es una idea, es un modo mecánico y formalizado de resolver un problema en un número finito de pasos generalmente bastante simples. Es como una receta de cocina. Por ejemplo, el modo de resolver una división larga es un algoritmo. Los métodos para obtener la raíz cuadrada de cierto número o para descomponerlo en factores primos son algoritmos. El sistema que nos permite ordenar alfabéticamente una lista de nombres o jugar bien al tres en raya son también algoritmos. Los algoritmos suelen relacionarse con las matemáticas, pero no se restringen a ellas: los algoritmos son mucho más frecuentes de lo que creemos y se dan también en la naturaleza –el mecanismo de la evolución biológica es un algoritmo– o en las actividades humanas –la técnica que usa un herrero para templar el metal es un algoritmo–. Hay algoritmos muy sencillos que los programadores usan constantemente y otros complejísimos y de factura brillante cuyo diseño solo está al alcance de dios, de la naturaleza o de cráneos privilegiados. Pero sea sencillo o complicado lo que produzcan (un cocido madrileño o la máquina de Turing), su ejecución debe ser siempre una tarea tonta, mecánica y simple, por lo cual se ajustan muy bien al modo de proceder de las máquinas. Sin el desarrollo que ha tenido en este siglo que se acaba la noción de algoritmo, los ordenadores simplemente no existirían.
Una patente es un título de propiedad industrial, que otorga todos los derechos sobre un nuevo invento a quien lo acredita. Hasta hace algún tiempo las patentes se concedían de un modo bastante restrictivo a las invenciones o las ideas que tenían visos de materializarse, lo cual había que demostrar fehacientemente con planos y demás documentación. Por ejemplo, no se podía patentar uno de esos objetos imposibles que diseñaban los surrealistas, ni menos objetos poéticos como una pistola que disparase endecasílabos (Gelman), un martillo de seda o un golpe de oreja (Neruda). Ahora sin embargo, en la era de la información, muchas cosas mercantilizables se sitúan en el plano de la inmaterialidad, y se está dando un paso más en las legislaciones, directo a privatizar las ideas: se patentan los algoritmos, que es como decir que se patentan las ideas (también el cuerpo: recordemos las patentes sobre cada secuenciación –o descripción— de un nuevo gen: equivalente a patentar la nariz, el dedo pulgar o el mismísimo orto). Como en las biotecnologías y en la ingeniería genética, la fiebre de las patentes en el software está llegando a extremos delirantes con el visto bueno de las autoridades: Amazon ha patentado un trivial método basado en cookies -riéndose de paso en la jeta de los pioneros que inventaron el web-, que ha dado pie a una campaña de boicot contra Amazon; incluso hay gente que ha intentado patentar el bucle for para recorrer un array, técnica que para un programador es tan básica y cotidiana que equivaldría a algo así como que un listo patentase la tabla de multiplicar, la micción antes de acostarse o la trempera matinera.
Una vez hecho este preámbulo, vamos al tema que nos (pre)ocupa: las imágenes en formato GIF. Para obtener y visualizar gráficos comprimidos con este formato es necesario utilizar un algoritmo de compresión conocido como LZW. El formato GIF (Graphics Interchange Format) se sigue usando mucho en Internet para mantener la compatibilidad con navegadores antiguos; suelen usarse para ilustrar las páginas web con pequeños gráficos (iconos, banners, etc.) por su reducido tamaño y su carga casi inmediata. También se pusieron de moda por la posibilidad de incluir pequeñas animaciones, por ejemplo los banners publicitarios suelen ser GIFs animados.
El algoritmo con el que se obtiene el formato GIF está patentado por Unisys desde hace quince años. Como la propia Unisys explica en sus FAQ, esto significa que para comprimir, copiar o mostrar cualquier imagen en formato GIF en tu página web, deberías ponerte en contacto con el propietario de la patente y cumplir sus condiciones de uso (satisfacer la módica cantidad de 5000$ USA, aprox. 850.000 ptas) o bien deberás atenerte a las consecuencias penales derivadas de violar la ley de patentes. No hay excepciones, y explícitamente menciona al "freeware" o software de dominio público como sujeto a las mismas reglas en el uso de los GIFs.
Unisys has frequently been asked whether a Unisys license is required in order to use LZW software obtained by downloading from the Internet or from other sources. The answer is simple. In all cases, a written license agreement or statement signed by an authorized Unisys representative is required from Unisys for all use, sale or distribution of any software (including so-called "freeware") and/or hardware providing LZW conversion capability (for example, downloaded software used for creating/displaying GIF images).
Creo que la cita, extraída de las actuales FAQ de Unisys, no necesita comentarios. El propietario de la patente fija esas reglas e incluso puede decidir en un momento dado cambiarlas -como así ha hecho, pues en 1995 permitía el uso de GIFs con fines no comerciales-
The company [Unisys] does not require licensing, or fees to be paid for non-commercial, non-profit offerings on the internet, including 'Freeware' (nota de prensa datada el 10 de enero de 1995)
Unisys puede cambiar de criterio las veces que quiera, puede incluso no licenciar su uso y que nadie más que él utilice "su" idea (cosa que lógicamente no le interesa). A algún usuario de sistemas GNU/Linux quizá le habrá llamado la atención cómo un programa libre de la calidad del GIMP, que no tiene nada que envidiar al carísimo y pirateado Adobe Photoshop, entre las decenas de formatos gráficos que soporta no se encuentra el formato GIF (si bien, existe un modulo extra no libre que le añade esta funcionalidad). Ahora ya sabe por qué es.
Como la patente sobre el formato GIF es estadounidense, se puede pensar que esto no nos afecta ni a Europa ni a Latinoamérica y por tanto no apoyar las campañas anti-GIF que provienen de EE.UU. Ciertamente, en Europa es más complejo este asunto y, según los pocos letrados avezados en estas lides, no está claro que las leyes europeas sobre patentes sean aplicables a los algoritmos tal y como lo hace la legislación USA. Sin embargo, tenemos un caso reciente, el del hacker noruego de 16 años Jon Johansen, detenido por una orden internacional cursada por un juzgado estadounidense y actualmente procesado. Se le acusa de violar las leyes internacionales que protegen la propiedad intelectual por haber publicado el algoritmo con el que se cifraban los discos DVD –el esquema de protección CSS, diseñado para evitar que la gente se haga duplicados de los contenidos digitales de los DVD– y que impide ver películas DVD-vídeo en sistemas basados en GNU/Linux o en zonas geográficas diferentes a donde fue adquirido el disco. Voy a referirme sólo a lo que aquí nos interesa, que es el tema de patentes y por tanto no voy ahora a discutir la legitimidad o no de los derechos de autor: nótese que Johansen y su colectivo MoRE (Masters of Reverse Engineering) no se pusieron a vender copias pirateadas de The Matrix ni nada parecido: simplemente puso en su web a disposición de todo el mundo el algoritmo CSS y una herramienta para utilizarlo (DeCSS). Ese fue su delito. Mientras tanto, la Unión Europea está "actualizando" su legislación sobre patentes y todo indica que van a equiparla a la estadounidense. La Free Software Foundation lleva algún tiempo llamando la atención sobre ello y proponiendo a los europeos que se opongan a una ley de patentes ahora que aún estamos a tiempo (http://www.freepatents.org/). Podemos seguir pensando que a nosotros no nos afecta, pasar del tema y poner GIFs tranquilamente "para hacer páginas curradas y que todo el mundo las vea bien" o bien podemos intentar hacer algo, realmente no demasiado costoso y que no impide visualizar bien la página.
En concreto, hay dos soluciones para sustituir los GIFs de nuestras páginas web, ambas muy sencillas, cada una con sus ventajas y desventajas:
1) Usar el formato JPEG, que está libre de patentes y se visualiza perfectamente con todos los navegadores. Es lo que hace, por ejemplo, la Free Software Foundation. Este formato es menos eficiente en cuanto a lo ratios de compresión que el GIF para pequeños gráficos, pero es perfectamente válido como solución menos comprometida.
2) Si somos técnicamente más exigentes y queremos un verdadero sustituto del GIF, podemos apostar por el formato abierto y libre de patentes PNG. Por ser menos conocido y por tratarse de un desarrollo que merece la pena apoyar, a él voy a dedicar las próximas líneas (el gráfico que encabeza este texto está en formato PNG).
El PNG, una alternativa libre al formato GIF
PNG es una especificación libre de patentes para definir un formato de archivo de imágenes. Este formato se ha desarrollado en los últimos cuatro años en respuesta a las limitaciones de diseño del obsoleto GIF y a su patente. Como su desarrollo es relativamente reciente, no lo soportan los navegadores de hace tres o más años, si bien a partir de las versiones 4.04 de Netscape y 4.01 de M$IExplorer ya lo soportan, al menos parcialmente. Puedes ver la lista detallada con las versiones de los navegadores que lo soportan y con qué limitaciones en:
http://www.libpng.org/pub/png/pngapbr.html
Como los navegadores antiguos no soportan PNG –por la simple razón de que el formato no existía por entonces–, hay gente que opina que, al usar gráficos en formato PNG, se desconsidera o se margina a quienes usan ordenadores reciclados con software antiguo. Me parece una objeción a tener en cuenta, pero muy discutible como veremos a continuación. Para empezar, que suceda esto no es nada nuevo, y es inevitable. Desde la primera implentación del protocolo http y de la especificación html que hizo Tim Berners-Lee en el CERN suizo ha llovido mucho. El W3C ha ido aceptando mejoras y nuevas características en sus estándares que los navegadores creados con anterioridad, lógicamente, no soportan. Una máxima que se mantiene desde el primer cliente web es que, lo que no está soportado, no impide (o no debe impedir) la carga de la página: que un navegador no soporte PNG lo único que produce es que no carga esa imagen, y en su lugar aparece un recuadro alternativo con un texto: no se impide pues visualizar la información. Una buena alternativa para ordenadores antiguos o reciclados son los navegadores en modo texto (como el clásico lynx, pero no es el único), que son muy ligeros, corren en cualquier ordenador y cargan mucho antes las páginas al prescindir de las imágenes. De hecho, hay mucha gente con ordenadores rápidos que utiliza el lynx, más ligero que cualquier otro y que ahorra la engorrosa carga de gráficos, animaciones, vídeo, sonido y demás parafernalia con que desde hace algún tiempo muchos webmasters se empeñan en llenar sus páginas. De este modo, creyendo hacerlas más atractivas, sin tener para nada en cuenta el consumo de recursos y de ancho de banda que producen en la red (no olvidemos que los recursos en Internet no son ni mucho menos inagotables y esos recursos no se administran solos, sino que siempre debe haber alguien en un lugar u otro que administre el tráfico que producimos).
Otro argumento que he leído –y que es una extensión del anterior– es que al usar PNG dificultamos el acceso a la gente a la información que colgamos en nuestra web, al fin y al cabo nuestra razón principal para publicar en Internet. Como ya he dicho, no se impide la visualización del contenido y sólo es cuestión de tiempo que todos los navegadores lo soporten. Pero, como siempre pasa con las propuestas de estándares abiertos, si no se apoyan con su uso y no se exige que los navegadores lo soporten es posible que nunca llegue a estandarizarse: hay bastantes intereses creados para que se siga usando GIF. O sea, PNG es una apuesta, y creo que deberíamos asumir sus "deficiencias", eso sí explicándolas. De ese modo un "defecto" del diseño currado podemos convertirlo en una explícita y autoexplicativa toma de postura en contra de las patentes del software.
En resumen: que no lo soporte un navegador no significa que esa página no pueda visualizarse con él: simplemente no cargará el gráfico, por lo cual conviene usar el atributo ALT del tag html que incluya la referencia a la imagen. En el tag se puede poner la descripción de la imagen y que no usamos GIFs por problemas de patentes. Así quedaría el tag:
<IMG SRC="foobar.png" ALT="logo de foobar – no usamos gifs – no a las patentes del software">
Se puede añadir una nota explicativa en la propia página de por qué se usa PNGs en lugar de GIFs y disculparse si eso causa alguna molestia –nunca dramática, pues en ningún caso va a impedir el acceso a la página ni la correcta lectura de su contenido o del resto de imágenes en jpeg– a quien use versiones antiguas de los navegadores más extendidos.
Otro argumento que se ha oído en SinDominio para no usar los PNG es la cuestión técnica: para tener "páginas curradas y salir del gueto" (sic!) necesitamos los GIFs. Dejando del lado lo del gueto (con ese razonamiento llevado al absurdo, deberíamos usar Micro$oft), reconozco que, a diferencia del anterior, para mí este argumento es irrelevante pues, aunque fuera cierta la superioridad técnica del formato GIF, prefiero a todas luces un formato abierto y libre de patentes. Pero entiendo que no todo el mundo tiene por qué compartir esta visión (como puede suceder con otras en las que SinDominio sí va contracorriente y no todo el mundo comparte). Lo que pasa es que esa afirmación no se ha fundamentado de ninguna manera y cae por sí sola si uno se documenta un poco sobre las características técnicas del formato PNG: resulta que supera en casi todo al formato GIF (compresión, profundidad y precisión del color, corrección gamma, extensibilidad…). Lo único que no tiene PNG son animaciones por la simple razón de que no fue diseñado para eso (hay otros desarrollos paralelos para cubrir esa funcionalidad, concretamente el MNG, formato multiimagen primo del PNG que se encuentra aun en fase temprana de desarrollo). A cambio se tiene un formato gráfico muy superior, que puede alcanzar niveles extremadamente altos de compresión sin perder calidad y que no está limitado a los 256 colores del GIF (8 bits), por lo que conserva todos los colores que queramos utilizar (hasta 48 bits). Las librerías de comprensión y las extensiones en que se basa PNG son públicas. La especificación en que se basa está libre de patentes, y a disposición de los programadores.
Recomiendo fervientemente a quien esté interesad@ de verdad en la cuestión técnica de este formato la lectura del libro PNG: The Definitive Guide. Permite conocer a fondo qué son los PNG, tanto a programadores como a diseñadores, ya que en el libro se discuten ampliamente sus ventajas y desventajas frente a otros formatos. Lo publicó O'Reilly & Associates en papel hace algunos meses y cuesta 26$ USA. Y si pese a todo lo dicho, no ves claro el uso de PNG para tus gráficos, siempre puedes usar el formato JPEG, que se visualizará correctamente en cualquier navegador por muy antiguo que sea. Y en la propia red puedes encontrar toda la información técnica acerca del formato PNG en http://graphicswiz.com/png/.
Evitar la exhibición de imágenes con algoritmos patentados en nuestras páginas no es un asunto de corrección política ni es algo que sólo incumba a los puretas del GNU. Tampoco es de recibo esperar "a ver qué pasa" o a ver si caduca tal o cual patente. No importa si no pagamos por usar esos algortimos en nuestro servidor: importa la apuesta ética, importa promover estándares abiertos y libres, gracias a cuya existencia cualquiera puede capturar tranquilamente el código fuente de una página web y adaptarla a su gusto. Con patentes esto no hubiera sido posible y es cínico aprovecharse sin hacer algo por la propia comunidad que tan generosamente ha puesto recursos tan increíbles a nuestra disposición de modo totalmente desinteresado. Patentar una idea tiene consecuencias reales (no sólo simbólicas) y es fascista stricto sensu: impide la transferencia de esa idea. Presuponer que las ideas pueden tener propietarios, ha sido y sigue siendo uno de los pilares de la propiedad privada capitalista –las leyes de copyright y de patentes nacen con el capitalismo–, que obstaculiza la cooperación sin mando y a menudo prohíbe la ayuda mutua entre la gente. Usar patentes y especificaciones sometidas a estándares cerrados es dar oxígeno a esas prácticas. Para mucha gente, la lucha contra las patentes es equivalente a la que hubo durante décadas por la libertad de expresión. Puedes leer la importancia que le da a este tema la Free Software Foundation en http://www.gnu.org/philosophy/GIF.html o, mejor aún, la web de la campaña contra los GIFs http://burnallgifs.org/ No nos merecemos las patentes, no hay ninguna obligación de apoyar su extensión pues disponemos de alternativas válidas. Es hora de "liberar" también nuestros sitios web. No usemos pues imágenes GIFs en nuestras páginas.
Lupus Yonderboy