Libertad versus apertura en Silverlight (o II parte de No a OOXML)

No habia pensado ni planeado escribir algo sobre los licenciamientos, patentes ni nada por el estilo hasta que me dió por leer Planetalinux Mexico (ya que Planeta Linux Venezuela está “parado” desde hace algún tiempo) y me dí cuenta de la “campal batalla” que entre dimes y diretes se destapa en contra y a favor de Silverlight (y el port Moonlight para Mono.NET).

Creo que ha pasado lo mismo con OOXML; la discusión sobre si ser “libre” implica estar “libre de patentes” es incierta; claro está que podemos estar en contra del trato “preferencial” que recibe Novell por sobre otras empresas (Red Hat, Canonical) y fundaciones (Debian) en la obtención única y exclusiva del acceso a codigo fuente; procedimientos y herramientas de las tecnologías Microsoft; pero bueno, eso es otra historia.

Lo que nos compete aquí discutir es el hecho de si la actual licencia de uso de “Silverlight” es compatible con el procedimiento “habitual” de los modos de licenciamiento de *nix/BSD.

La razón de la discusión deviene del hecho que la implementación “moonlight” (para Mono) se basa en el acuerdo “comercial/tecnológico” entre Microsoft y Novell y por ende en “exclusividad” Microsoft cederá a Novell todas las especificaciones, codecs y demás artilúgios que necesita “moonlight” para parecerse a “Silverlight” más lo que algunos denominan “el trabajo sucio”; es decir, sacar las versiones para “otros sistemas” (incluyendo Linux) de sus tecnologías “punta” sin tener que ensuciarse las manos con codigo abierto.

Discuto en primera parte a los “demonizadores” de Microsoft; todavia en las mentes de muchos en el área de software libre no se nos ha olvidado la gran cantidad de “basura” que Steve Ballmer (actual CEO de Microsoft) ha lanzado en contra del movimiento de Software Libre; ahora que tienen un “nice guy” (Bill Hilf, aun cuando no tan bueno desde que dijo que “el Software libre está muerto, Linux no existe ya en el 2007”) y que han “comprado una cooperativa trasera” (Novell) para hacerles el trabajo de porting de sus aplicaciones a Linux, creo que mucha gente está “a la espera” de una imagen “retractada” de Steve Ballmer o al menos un acuerdo oficial de que “estaba equivocado” y que compartir en vez de demandar es la premisa.
Por ende solo falta “esperar” a lo que sucede; creo sensato entonces hacer lo que yo llamo “retar al destino”; es decir, que Canonical o alguna empresa grande “descargue, utilice y modifique” Silverlight o alguna tecnología de Microsoft marcada como “open source” y esperar a ver si Microsoft acepta con buen ojo el movimiento libre o en su defecto vuelve a la “old-school” y comienza a demandar.

Lo que pasa es que a veces da risa cosas como esta:

“Our customers have been asking for enterprise ready Open Source Software on Windows. We are pleased to be working with Microsoft and the Open Source community to deliver this choice to customers.”
â?? Ali Shadman, Vice President, Unisys

En la página web de OpenSource Microsoft; Unisys?, esa empresa infame que demandó a todo el mundo por su bendito algoritmo LZW para Gif y que planeaba “demandar a todos los web sites del planeta tierra” por usar Gif?, puede hablar Unisys de Software Libre? … o sea … sin comentarios ..

El otro inconveniente es que la “Open Promise”no es la panacea ni es refrescante agüita de coco;bajo ella no estan TODAS las tecnologías detrás de aplicaciones como .NET, .NET framework, Silverlight; todas ellas bajo el porting hacia Mono y programar en esas tecnologías “fuera de la open promise” te hace caminar en un limbo legal parecido al de la piratería.

Sin embargo, puede que estemos equivocados y que Microsoft esté “virando al camino correcto” del mundo del “shared source” (como prefiere llamar al Open Source) y creo que en el aspecto “politico” deberíamos dejar a Microsoft en paz un tiempo.

Donde no debemos dejar en paz y seguir luchando para que se tome en cuenta a la gente es en la parte tecnológica; no podemos seguir en el mismo jueguito de OOXML; 6000 páginas, como 15 formatos distintos; todos “sustituibles y reemplazables” por formatos ya existentes (y muy parecidos), estandares abiertos (algunos formatos ya ISO) y otras tecnologías ya implantadas que en vez de ser mejoradas son tomadas a la fuerza, re-convertidas en algo a gusto y criterio (re-invención de la rueda) y re-implementadas bajo otro nombre, otra licencia, otro estandar.

Y esto no hace más que levantar mis sospechas; no es ese el antiguo modus-operandi de Microsoft (Copiar, Cambiar, Aniquilar) de tomar cosas que ya existen, cambiarlas y ponerle otro nombre “mas comercial”, hacer que todos usen “su versión” en vez de la “oficial” y terminar adueñandose de la tecnología y aniquilando al contrario; esta vez el contrario es el Software Libre.

Ya en un post anterior habia hecho una comparativa entre MathML y SpreadsheetML; mostrando diferencias y semejanzas; en vez de hacer una “ampliación” de un estandar existente; a Microsoft siempre le parecerá mejor ser “el dueño de la torta” y no “un invitado más a la fiesta” y prefirió hacer uso de un lenguaje propio (spreadsheetML) para hacer “lo mismo” que un lenguaje que ya existia venia haciendo por años (MathML).

Ahora; ocurre lo mismo con Silverlight; pero esta vez se fueron “al techo” de copiones y deciden trabajar (supuestamente de cero) en una implementación de un “mejor y único” sistema de vectores, me imagino que combinado con el actual lenguaje de definición de interfaces XAML; es la “única coca-cola del desierto”; negando que desde hace mucho tiempo (y recuerdo que luego de 1200 días de estudios y correciones en ISO) existe SVG; por qué no usarlo?; nooo!, es que EL NUESTRO (XAML) es mejor … pero, en donde es mejor?, veamos:

Primero, veamos una Elipse:

Primero en SVG:

 

<ellipse cx="80" cy="80" rx="50" ry="50" style="fill:rgb(255,229,242); stroke:rgb(242,0,125); stroke-width:5"/>

Ahora en XAML:

 

<Ellipse CenterX="80" CenterY="80" RadiusX="50" RadiusY="50" Fill="PaleGreen" Stroke="DarkBlue" StrokeThickness="5"/>

Como vemos, simplemente se dignaron a “cambiarle el nombre” a los atributos; y crear “atributos propietarios” (como el conocido <body bgcolor=””> en vez de usar un lenguaje “ya existente” de atributos de estilo (CSS).

Ahora veamos una “shape” más compleja:

Primero en SVG:

<svg xmlns=”http://www.w3.org/2000/svg&#8221; viewBox=”0 0 105 95″>

  <path fill="#7B4" d="M106,13c-21,9-31,4-40-2l-10,35c9,6,20,11,40,2l10-35z"/>
  <path fill="#49c" d="M39,83c-9-6-18-10-39-2l10-35c21-9,31-4,39,2l-10,35z"/>
  <path fill="#E63" d="M51,42c-5-4-11-7-19-7c-6,0-12,1-20,5l10-35c20-8,30-4,39,2l-10,35z"/>
  <path fill="#FD5" d="M55,52c9,6,18,10,39,2l-10,35c-21,8-30,3-39-3l10-34z"/>

</svg>

ahora en XAML:

 <Canvas xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”&gt;

  <Path Data="M106,13c-21,9-31,4-40-2l-10,35c9,6,20,11,40,2l10-35z" Fill="#7B4"/>
  <Path Data="M39,83c-9-6-18-10-39-2l10-35c21-9,31-4,39,2l-10,35z" Fill="#49c"/>
  <Path Data="M51,42c-5-4-11-7-19-7c-6,0-12,1-20,5l10-35c20-8,30-4,39,2l-10,35z" Fill="#E63"/>
<Path Data="M55,52c9,6,18,10,39,2l-10,35c-21,8-30,3-39-3l10-34z" Fill="#FD5"/>

 </Canvas>


Las únicas evidentes “novedades” es llamar en una shape Data en vez de d (violando una norma de XML de uso de tag-elements y atributos en minuscula, pero bueno) y Fill en vez de fill; por lo demás, se nota “A leguas” que las Shapes de XAML son un simple fork de SVG y que Ian Griffiths (el creador de el “Avalon Vector Graphic”) lo que hizo fue comprarse un libro de SVG y hacerle un “porting” a .NET pero sin aceptar la autoría inicial.

Esto me recuerda a un episodio de la guerra fría; cuando la Unión Soviética denunció a Francia e Inglaterra por espionaje de su proyecto de avión supersónico comercial (conocido como “Tupolev 144” en Rusia y como Concorde en Francia) a lo cual los ingenieros Franceses contestaron:
“Cuando las grandes mentes piensan en grande, llegarán a las mismas conclusiones” … una burda excusa para decir que “se copiaron un trabajo” y no le van a dar crédito a verdadero creador de la obra.

Que Silverligh/Moonlight/XAML es más rápido que SVG?, bueno, si estas corriendo en tu propia “maquina virtual” (como flash o como java) en vez de “usar los recursos del browser” entonces EVIDENTEMENTE que XAML va a ser mucho más rápido que SVG; pero si SVG es TAN SEMEJANTE (por no decir igual) al sistema de shapes de XAML; por qué no aceptar tambien SVG dentro de Silverlight?; a la final son más las aplicaciones que guardan SVG (Corel, Painter, Photoshop, InkScape) que las que guardan en XAML (?)… veamos “la respuesta”:

On the face of it, it seems strange to invent a new way of representing vector graphics in markup when a standard already exists. However, the principal advantage of these shape classes is that they have been designed to integrate into the Avalon programming model. The vector drawing elements derive from the same FrameworkElement base class as all other XAML elements, and follow the same naming conventions…

By not using SVG, Avalon ensures that vector graphics can be mixed in with any other kind of markup in your XAML, and can take advantage of all of the same layout facilities.”

Notas:

  1. Claro que suena extraño!, crear un nuevo lenguaje de vectores (y algo TAN PARECIDO A SVG que abruma), más extraño suena viniendo de Ian Griffiths (sin siquiera mencionar que se basaron de SVG) que no le dijo a nadie que su “genial invento” era un simple fork de SVG.

  2. Han sido diseñadas para integrarse a Avalon Model?; y por qué no adaptaron a Avalon Model para que se “integrara” con el resto del mundo?, eso no lo hace más “universal y aceptable” por todos?, acaso no les enseñó Daniel Robbins nada cuando se fué para Microsoft a enseñarles XML?, parece ser que por lo visto … NO.

    Nota: luego de su “inmensa frustración” por no lograr hacer entender a Microsoft y poder utilizar su experiencia dentro del mundo corrupto y corporativo de MS; Daniel Robbins renunció solo un año más tarde, ahora trabaja para FSLabs.

  3. Etiquetas CamelCase, UpperCase y Capitalize son de las cosas que siempre se negaron de HTML y que XML quiso erradicar; a parecer, a los programadores de Microsoft les encantan los documentos XML mal formados y unas convenciones de nombres únicas para ellos solamente y por ende; necesitan re-escribir TODO para ser compatible con su motor XML incompatible con DOM, DTD, RelaxNG y otros schemas de la W3C (y por ende, no soporta XPATH, XINCLUDE, XLINQ, etc) (en vez de re-escribir su UNICO Y MAL FORMADO motor XML para aceptar documentos basados en las convenciones de nombres de la W3C).

  4. No usar SVG asegura el triunfo?, pero si su sistema de vectores es IDENTICO salvo el uso de esas convenciones extrañas de nombres (únicas de microsoft) y eso de que SVG no puede ser mezclado es otra falacia; acaso no existe XBL? (mezcla de SVG+javascript); acaso SVG en vez de usar atributos para cada cosa imaginable, usa CSS (otro lenguaje) que es más escalable?; sigo sin endender la filosofia Microsoft.

y con gentes como Ian Griffiths, Bill Hilf, Steve Ballmer y Brad Smith (el que dijo que linux violaba 235 patentes) es con las cuales Novell, el proyecto Mono, Gnome y Miguel de Icaza nos quieren casar?, o sea, por qué camino vamos?.

De hecho, creo que el permitir SVG se reduce simplemente a hacer un “Svg.load()” o algo por el estilo (mas una simple y sencilla transformación XSLT), en vez de cargar su “original” sistema; pero como ya estamos acostumbrados; Microsoft siempre “re-inventará la rueda”; para que podamos “olvidarnos” de los estandares existentes y “acogernos” a sus “nuevos, remozados y más prácticos” estandares.
Nota: tal vez microsoft considera a SVG un formato “de la compentencia” (algo asi como OpenDocument) y de hecho, NINGUNA de sus aplicaciones da soporte para apertura de SVG (y creo que en modo Export, solo Visio lo hace); Cuando una empresa confunde un “estandar abierto y aceptado” (SVG, XML DTD, openDocument) con un “estandar enemigo y de la compentencia” es cuando se demuestra que una empresa con una fuerte visión competitiva y corporativa NO PUEDE dedicarse al software libre y no de buenas a primeras.

Pero una cosa es la “visión corporativa” muy discutible pero a pleno derecho de tenerla y otra cosa muy distinta es que un proyecto de Software Libre como Mono, fork de un proyecto corporativo como lo es .NET; por qué si son proyecto libre en vez de seguir “las pautas corporativas” de una empresa se dedican a crear “el puente largo de la migración” entre una tecnología y otra?; lo digo porque:

    • Donde están los deseos del proyecto Mono de implementar SVG en Moonlight?

      SVG se caracteriza por utilizar solo “estandares existentes” (como casi todas las implementaciones de la W3C); no habia que re-escribir un nuevo core DOM/XML para que Firefox, Safari u Opera soportaran SVG; pero para Silverlight necesitaré Mono; es esa interesante caracteristica del “para usar esto debes tener lo otro” que siempre ha caracterizado a Microsoft; nada de estandares, todo yo.
      Mientras, el único Browser que queda sin soportar SVG es Internet Explorer.
      Por ende, aun cuando el uso de Cairo o AntiGrain les asegura la posibilidad de ser “independientes de lo que rasterizan”; es evidente que el no nombrar a SVG en ninguna parte de la pagina de Moonlight (http://www.mono-project.com/Moonlight) los hace sospechosos de todas las críticas (fundadas o infudadas) que reciben; que en vez de ser un proyecto “puente” para permitir la implementación de tecnologías Microsoft usando estandares libres (XAML=>SVG, MPEG=>Theora, MP3=>Ogg); son simplemente un proyecto de “marionetas” siguiendo las directivas de Microsoft.

      Por cierto, por qué no Ogg para la web?, el hecho que silverlight no lo soporte, no significa que Mono no pueda, por qué negar esa posibilidad?
      Update: Some folks are asking whether they could use OGG for the video rendering in Moonlight. Today this is already possible because the media engine we use to prototype is ffmpeg which has support for this. From the standpoint of a desktop developer this might be enough, but for the web, the problem becomes an issue of compatibility with the Microsoft Silverlight implementation.  (Miguel de Icaza’s Blog)

      Claro, la implementación de MS nunca aceptará OGG, como no acepta SVG; por qué no aceptarlas Mono?, van a seguir siendo los “imitadores” de oficio?.

      Claro, es que resulta ser, que de los “formatos soportados”; ninguno es libre  (a la vista, solo soportan WMA, WMV y MP3; de este último irónicamente (ya no tan irónicamente viniendo de Microsoft) dicen que no soportan el “free variable bit-rate” (ISO/IEC 11172-3 clause 2.4.2.3); eso no lo convierte entonces en un mpeg-layer II? (los que no soporta variable bit-rate de modo libre) pero se publicitan como un layer III?.)
      Bueno, eso último fue un chiste de mal gusto; pero bueno, es que las empresas “comerciales” te dicen “si soportamos mpeg-layer 3” y en unas clausulitas bien pequeñas dice “excepto aquellas partes de layer III donde somos incompatibles”; ¿en que proyecto de Software Libre se ve tal hipocresia de soporte?. Y donde quedan los otros formatos?, incluso aquellos que nacieron junto a él? (lease: ASF, ASX, AVI, mpeg-capa1, etc) …
      Y peor!, quien dijo que algún proyecto libre debería tener componentes “compatibles” con DRM?

      En conclusión a esto, Microsoft NUNCA ayudará (como ayudamos en el Software Libre los unos a los otros) a mejorar, ampliar o re-implementar tecnologías y estandares existentes (pasó con mathML/SpreadSheetML, XBL/VML, OOXML/OpenDocument, SVG/XAML, etc); el SIEMPRE se construirá un nuevo estandar, una nueva tecnología y una nueva forma de pensar; para siempre llevarnos a donde “ellos quieren” y no hacia donde “la libertad” nos debería llevar; o acaso con la “inutilidad suprema” de MonoDevelop para desarrollos serios y corporativos; no está llevando Mono a los programadores a usar MS VisualStudio?, una suite de desarrollo propietaria con miles de patentes y licencias detrás?, un proyecto libre llevandonos a usar proyectos y aplicaciones propietarias?; hay que ver hasta donde llega esto.

      y bueno, al final de cuentas decir que un “producto Microsoft” es “libre” porque le van a poner “una licencia MIT+GPL+Apache+de Conducir+de Matrimonio+X” es una completa falacia si tomamos en cuenta que todo software, contenido, emisión o aplicación desarrollada por Microsoft viene con sus licencias muy bien descritas, ejemplo:

      La licencia de Silverlight (uso el vinculo a la licencia Mac porque la licencia para usuarios PC no está disponible), dice que SOLO lo puedo instalar en los S.O y navegadores que ellos me indiquen (asi Epiphany queda completamente descartado, o Camino, o cualquier otro navegador); su licencia se parece a la de Oracle; “no puedo hacerle benchmarks, ni indicar si estos fueron desfavorables”; no puedo hacerle “forks (como otras aplicaciones libres” (a menos que trabajes para Novell ;)), no puedo “revelar bugs o fallos de seguridad”, no puedo “trabajar sobre ninguna limitación tecnica del Software”, no puedo “publicar el software para que otros lo copien” (pero si es gratuito, que hay de malo que lo ponga en mi server para que otros lo copien?) y además, todo lo que yo haga “con él” hereda sin excepción, las clausulas de la licencia.
      Pero como toda licencia Microsoft; por muy “GPL-Like” que sea; siempre empieza con una “hermosa clausula que dice” (dicha clausula puede ser encontrada incluso en sus clausulas “abiertas”):
      “EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see http://www.microsoft.com/exporting.&#8221;

      Las actuales licencias “libres” de Microsoft (Reference, Permissive y Community) dicen que “por encima de todo el palabrerio de abajo”; están las leyes de “copyright” de Estados Unidos y su sistema de patentes (“Under the U.S. copyright law”); por ende; no estan libres de patentes; simplemente sus patentes “podrian ser” royalty-free; pero reservandose el derecho Microsoft de cambiar esto cuando le dé la gana; y ya todos sabemos que no son “aceptadas Open-Source“; pero; puede un Venezolano programar con alguna aplicación licenciada bajo las normas de Microsoft?; si puede, ahora, si mudamos el caso a Cuba?, Iran, Bielorrusia, Corea del norte, Irak, Pakistan, Afganistan y otras naciones en conflicto, con bloqueos económicos, con cierres o embargos o en guerra o enfrentamiento, intervención armada o invasión de EUA u otra nación aliada que haga valer los privilegios norteamericanos sobre los de los paises intervenidos?; ciertamente NO; y aun cuando nos dé “pereza” de leer estos acuerdos y tratados de leyes de derechos de autor y patentes de USA; podemos leer cosas como esta:

      1. Ninguna tecnología MS (u otra que acepte las normas americanas, como el EAR, la OFAC y otros tratados de bloqueo) puede ser usada por “Ningun instituto de física, química, o de investigación de Rusia” (aun existe el temor de que renazca la URSS?).
      2. Los institutos Medeleyev y Kremlev y el Instituto de Energía Atómica de Rusia (aunque no creo que vayan a hacer páginas web con silverlight es bueno notar esto)
      3. La Universidad del Estado Báltico (en Krasnoarmeiskaya); tal vez la CIA la considera un nido infernal de hackers, crackers y pornógrafos de la Europa Oriental
      4. Aun cuando los USA es “supuesto” aliado de Pakistan, ninguna empresa de Islamabad (su capital) debería usar Windows; pues es blanco de Bloqueo por la EAR.
      5. Todos los grupos industriales Iraníes (incluyendo los de Shahid Bakeri, con los cuales Venezuela tiene convenios operativos e incluso algunas han construido industrias mixtas en Venezuela) quedan excluidos del uso de aplicaciones Windows.
      6. Me quedé sorprendido al saber que la Universdad “Ben Gurion” de Israel, está vetada por el departamento del Tesoro; Será que les deben plata?
      7. Las industrias físicas y aeronáuticas de la India y China (con las cuales Venezuela tiene convenios operativos y China es “dueña” de nuestro satelite Simón Bolivar”)
      8. Alguien me puede decir si las grandes narco-empresas “2000-DODGE S.L” (españa), “Café Andino” (españa) o “AG Representaciones” (Colombia) usan Windows?
      9. Yo recuerdo este caso; “C.A. V.J. CORPORATION”; es una empresa que existía en las cercanías de mi casa (Barquisimeto); fue cerrada por la DEA/FBI porque supuestamente era “fachada del Cartel de Calí”; habrán llevado su contabilidad con Microsoft Excel?.
      10. La empresa “COMPANIA FENIX INTERNACIONAL, S.A” de Caracas, Venezuela, no puede usar ningún software bajo leyes americanas por tener “posibles nexos con Castro y la Cuba Comunista” (y la hipocresía que?, por qué no bloquean entonces a PDVSA?)
      11. Sabian que colaborar con cualquier empresa, persona, entidad o nación bajo signo de bloqueo por ALGUNA de las dependencias del gobierno norteamericano es automáticamente penado con 5 años de prisión?

      Lo que trato de decir no es que USA no tiene derecho a bloquear supuestos “terroristas”, “narcotraficantes”, “criminales”, “hampa común” o “pro-comunistas”; son país soberano y tiene pleno derecho; lo que trato de decir con esto es que la Libertad de un software se puede comparar con la libertad de desempeño de un cuchillo; lo puedo usar para abrir una arepa (pan de maiz venezolano), untar mantequilla y cortar jamón; pero también lo puedo usar para matar; prohibir los cuchillos porque “posiblemente” pueden ser usados para el mal es como prohibir “los cifrados de alto nivel” solo porque “malvadas y siniestras naciones” pueden usar esos cifrados de alto nivel para ocultarnos información crítica y de vital importancia para la seguridad nacional o para la lucha anti-terrorismo.

      El software libre no debe ser en este sentido “político” (aunque es bastante político en el sentido de defender su plena libertad); decidir quien usa un software y quien no puede usarlo (a nivel mundial) es injusto y debería ser ilegal (pues viola la plena soberanía de las naciones); claro, las personas que vivimos en paises fuera de esas listas (creo que aun estamos fuera de esa lista …😉 ) ni nos preocupamos; pero esas otras naciones, que se encuentran bloqueadas por dichos tratados; ¿pueden acceder a software médico?, ¿de gestión administrativa?, ¿aplicaciones de conectividad?, son un pueblo igual que otros, ¿acaso no tienen pleno derecho?; dejemos las luchas políticas para el terreno político y hagamos que el software sea libre para todos.

      En conclusión, algo que nace “libre” en algún punto (pero no en todos); seguirá siendo “libre” (hasta cierto punto) y no puede ser catalogado “completamente” libre a nuestro antojo; solo porque se ve bonita la palabra “libre”; simplemente no lo és y punto.

      Acerca de phenobarbital

      http://about.me/phenobarbital

      Publicado el 9 septiembre 2007 en Cultura Libre, Linux, PlanetaLinux. Añade a favoritos el enlace permanente. Deja un comentario.

      Responder

      Introduce tus datos o haz clic en un icono para iniciar sesión:

      Logo de WordPress.com

      Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

      Imagen de Twitter

      Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

      Foto de Facebook

      Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

      Google+ photo

      Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

      Conectando a %s

      A %d blogueros les gusta esto: