agosto 14, 2006

SQL on Rails

¡¡ Quitando el VC del MVC !!

Echad un vistazo al link anterior. Una gracia :) sobre RubyonRails. Ultimamente en Theserverside se está discutiendo mucho sobre RubyonRails. Dos post en la portada han levantado por ahora más de 130 comentarios, sobre el agujero de seguridad que hace poco se encontró en el framework.
Hay un poco de todo. Gente que se burla de rubyonRails por su inmadurez y falta de preparación para el mundo empresarial y lo acusan de ser nada más que un "hype" o moda pasajera. Gente que lo defiende como el futuro de las aplicaciones web, por que Java es un lenguaje casi obsoleto o demasiado lento.
En fin, que siempre que aparece la posibilidad de un cambio en el horizonte, la gente se mueve de dos maneras: o movilizándose contra lo nuevo, o preparándose por si les toca. No creo que por ahora Rails vaya a oscurecer demasiado el panorama de Java como principal sistema utilizado en sistema empresariales, a mi lo que me parece interesante y creo que es el enfoque adecuado, es averiguar lo que las próximas versiones de Java o nuevos frameworks deben aprender de Ruby o de Rails. Algo deben tener de interesante cuando se habla tanto,... ¿o simplemente estabamos ya aburridos de Java, PHP, .NET, Python, PERL,...?

agosto 08, 2006

GPLv3. Mi opinión

Bueno, pues depués de ver la GPLv3 y el DRM, GPLv3 y las patentes y GPLv3 y los servicios, tengo una idea un poco más clara de que hay tras esta modificación de la licencia.
La modificación de la licencia es sin duda un paso adelante en una guerra contra lo que la FSF considera peligroso para la libertad de los usuarios. Parece que ha decidido no solo asegurar la libertad de quienes quieren mantenerla, si no además protegerla privando a los usuarios "malevolos" de las propias herramientas libres para coartar esas libertades. Desde luego, es una posición claramente consecuente con lo que predican. Bien por ellos.
El tema de las patentes es bastante obvio que cualquier software que quiera ser libre no podrá estar bajo la amenaza de un uso de patente, por lo que se finiquieta impidiendo que los programas bajo la licencia GPL puedan ser demandados por alguna patente. Si licencias software bajo la GPL debes comrpometerte a no denunciar a ningún receptor del sftware por ella.
Dónde parece que se le pide algo más a esta licencias es en el tema de los servicios web. Tim y su altavoz ya han hablado sobre la necesidad de proteger no solo el software, si no los datos que quedan distribuidos en los cada vez más numerosos servicios que usamos a traves de nuestro navegador. Personalmente creo que esto escapa a una licencia de software. Lee bien primero os términos del servicio, qué permisos te da sobre tus propia información y la privacidad, y si no te gusta no lo uses. Si a Tim le parece que falta una especia de " contrato de uso por la información libre" en los servicios: !que lo proponga!. Estoy seguro que existe ya alguna iniciativa por ahí. Y si no, que conste que he sido el primero en proponerla :P
La cuestión que veo más confusa es el tema del DRM. ¿y por qué? Por que me da la impresión de estar arrogándonos derechos que no nos pertenecen. ¿podemos exigir que un determinado fabricante de hardware nos deje ejecutar el programa que queramos en el mismo? Y si no permitimos ejecutar sw. libre en ese elemento, por que utiliza un sistema de DRM para comprobar que solo puede ser una versión suministrada por el fabricante, ¿no estamos infringiendo el espíritu de las cuatro leyes del software libre? ¿quién lo infringe más: aquel que no nos deja hacer lo que queramos con un hardware, o la licencia que no permite la ejecución de un software que es libre?
Me encantaría vuestra visión sobre este último punto. Quizás lo veo desde alguna perspectiva un poco confusa, por que no veo por donde decidirme.



agosto 04, 2006

GPLv3 y la licencia Affero (para servicios web)

El software cada vez "se vende" menos como producto y más como un servicio. Y pongo entre comillas lo de "se vende" por que claro, al proporcionar un servicio no es relevante el software que lo hace posible, si no otros parámetros para medir el servicio, como seguridad, robustez o privacidad. Aunque indudablemente, variables directamente proporcionales a la calidad del software que lo haga posible.
Para los servicios, se publicó en el año 2002 la licencia Affero, compatible con la GPL. La razón de esta licencia es proteger a las personas que creen un servicio en la red y publiquen su código, de manera que si otra persona publica un servicio basado en ese código esté obligada a publicar también sus fuentes, y no se pueda aprovechar sobre el servicio inicial, mejorándolo sin compartirlo.
Se creía que la GPLv3 iba a incluir estas clausulas de la licencia Affero, pero se incluyen como opcionales.

Otra cuestión interesante en este tema, que ha comentado hace poco Tim en " Open Source Licenses are Obsolete" (el título es simplemetne provocador, sería más bien indicar que son incompletas) es el sentido de la libertad no en el software si no en los servicios. Propone la creación de una especie de "definición de servicios libres" equivalente a la "definición de software libre" (bueno, el habla de abiertos, pero pongamos libres ;) ). ¿Te has planteado hasta que punto dependes hoy de servicios externos en los que no puedes controlar tus datos de manera total? Ya lo hablaremos.

agosto 03, 2006

GPLv3 y patentes

El peligro de las patentes de software sobre el software libre, es precisamente que este deje de ser libre por que alguien patente determinados algoritmos o código presentes en él. La licencia dice:

[...] To prevent this, the GPL assures that patents cannot be used to render the program non-free.


11.Patents : You receive the Program with a covenant from each author and conveyor of the Program, and of any material, conveyed under this License, on which the Program is based, that the covenanting party will not assert (or cause others to assert) any of the party's essential patent claims in the material that the party conveyed, against you, arising from your exercise of rights under this License. If you convey a covered work, you similarly covenant to all recipients, including recipients of works based on the covered work, not to assert any of your essential patent claims in the covered work.

If you convey a covered work, knowingly relying on a non-sublicensable patent license that is not generally available to all, you must either (1) act to shield downstream users against the possible patent infringement claims from which your license protects you, or (2) ensure that anyone can copy the Corresponding Source of the covered work, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

En resumen, según entiendo. si licencias un software bajo la nueva GPL v3 te comprometes a no demandar a nadie por algun supuesta patente que te pueda pertenecer. Y que si existe alguna patente conocida y aplicable, que se presta a todos los usuarios libremente y bajo los términos de la licencia GPL.. Supongoq ue es como decir: si liberas tu código en el que tienes patentes, olvídate de ellas. Y si tienes patentes que queires conservar, no podrás crear software libre con ellas.
Las patentes de software han sido ultimamente uno de los puntos en los que me parece que más activos han estado en la FSF. Y falta que hace.
 


agosto 02, 2006

GPL v3

Al fin he tenido un rato para leer sobre la nueva licencia GPL v3. He ido recopilando unos cuantos enlaces que me han parecido interesantes.
Primeramente hablemos de la polémica sobre el DRM. A Linus Torvald no le gusta nada este punto. ¿Qué es lo que no le gusta a Linus de la nueva versión? Parece ser que pone condiciones sobre el hardware que ejecuta el software bajo licencia GPL, y que le impone que no pueda poner limitaciones de DRM si está ejecutando software con licencia GPL v3. Es decir, que además de ejecutar el software suministrado (se supone claro que con el código fuente), sea capaz de ejecutar ese software modificado libremente, sin comprobar que sea el binario de los fuentes orginiales.
Dos fragmentos de la licencia GPLv3.

To protect your rights, we need to make requirements that forbid anyone to deny you these rights or to ask you to surrender the rights.

Some computers are designed to deny users access to install or run modified versions of the software inside them. This is fundamentally incompatible with the purpose of the GPL, which is to protect users' freedom to change the software. Therefore, the GPL ensures that the software it covers will not be restricted in this way.

Lo que argumenta Linus es que los desarrolladores de software no deben, ni tienen derecho a, poner restricciones sobre el hardware. Que eso no les atañe. Y aquí en cierto sentido creo que tiene razón. Si haces software, podrás poner restricciones sobre tu trabajo, no sobre el de los demás. Así que démosle la vuelta al sentido del párrafo anterior: no podrás ejecutar el software en un dispositivo que no permita ejecutar cualquier versión modificada libremente del mismo.
Aquí parece que se da una pequeña paradoja. Estás coartando libertades básicas del software libre, puesto que estás poniendo restricciones sobre la ejecución del programa. Pero la paradoja se solventa mirando desde el lado del usuario (premisa básica del sw. libre) , a quién es al que se le aseguran y permiten los derechos.
Un comentario en la versión actual de la licencia dice:

sepreece: [...]I believe these restrictions are NOT necessary to preserving the essential freedoms, but are brought in by an attempt to invent a new freedom (to run the software on a particular device) that I simply don't believe in.

¿se puede obligar a un fabricante de hardware permitir la ejecución únicamente de una determinada versión del software? En este caso, ¿cual es el mal menor? Es una situación dificil, pongamos el caso comentado recientemente en Barrapunto, el uso de Linux en un avión de Boeing. Si Linux tuviese la licencia GPLv3, Boeing debería permitir ejecutar en ese avión cualquier versión modificada de Linux. Pero parece lógico no permitir más que versiones ya verificadas, lo cual no estaría permitido por la licencia. Resultado, Boeing no podría utilizar un hipotético Linux con versión 3 de la licencia GPL.

Otro tema sobre el que hace referencia explícita esta nueva versión son las patentes de software. Lo dejo para otro post. Y también el tema del software como servicio, con estos recientes comentarios de Tim sobre si las licencias de software libre están obsoletas.