Archivos mensuales: agosto 2005

Mono+MonoDevelop

Últimamente estoy jugando con mono y monodevelop. Está bastante bien, aunque prefiero sharpdevelop (herramienta mucho más completa).

Las mayores desventajas que le veo a monodevelop es la automatización de tareas repetitivas y más herramientas (con esto último se arreglaría todo). Supongo que será cuestión de tiempo que se solucione.

Ventajas: es una herramienta libre que funciona en Linux . Tiene una gran cantidad de librerías con las que se puede hacer casi de todo.

Algún día tendré que probar a hacer un Add-in para monodevelop.

Esto empieza a funcionar

Después de mucho tiempo, he conseguido montar el cortafuegos del GUL. No es que sea ninguna maravilla, pero por lo menos no he roto nada.

Fue en noviembre del año pasado cuando entré en el GUL y me autoasigne la tarea de instalar el cortafuegos (vamos, hace 9 meses). Y por fin lo he parido.

De momento, que yo sepa todo funciona bien (bueno, el servidor de jabber es inaccesible). Si alguien tiene problemas con alguna cosa, ya sabe en el la lista de gul-root se lo solucionamos.

Ahora lo siguiente es instalar un IDS, ¿habrá que esperar otros 9 meses?

OpenGL y M$ Windows Vista

Según parece, los planes de Micro$oft con respecto a este estandar industrial es emularlo a través de Direct3D. Esto supondrá un funcionamiento degradado de las aplicaciones que utilicen dicho estandar.

Uno puede pensar que no importa mucho, que la mayor parte de las aplicaciones funciona con Direct3D, pero el caso es que no es así. La mayor parte de los videojuegos las utilizan, pero en el entorno profesional/industrial se prefiere OpenGL. Y es que OpenGL nació para la industria y, a diferencia de Direct3D, está pensado para entornos profesionales.

Esta decisión puede suponer que M$ Windows Vista simplemente no sea utilizado para el desarrollo profesional de 3D, pero supondrá todo un inconveniente para aquellos que no les quede más remedio que hacer aplicaciones profesionales en Vista.

Sobre la licencia GPL y LGPL (II)

Antes que nada, darle las gracias a David por su reconocimiento, pero… ¡No me las merezco! No he hecho más que copiar (espero que la licencia GPL sea GPL :P). Las partes en inglés son copiadas y las traducciones también (me voy yo a poner a traducir… ¡Anda ya!).

Lo de las licencias tiene su tema. Es complejo (sobre todo si no eres un chupasang… abogado). La verdad es que haría falta un estudio que comparase estos casos concretos (MySQL, QT y el resto que tengan dobles licencias). Por ejemplo, en las librerías QT (en el código) pone lo siguiente:

/****************************************************************************
**
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
**
** This file is part of the core module of the Qt Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
**   information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/

Que viene a decir que puedes elegir o QTL o GPL, pero no pone que si usas código cerrado debas utilizar QTL (y pagar). Aquí el problema es de interpretación de la licencia GPL (ver el artículo anterior).

La verdad es que se puede proponer a GUL-doc realizar el estudio.

Por ahora prefiero no tratar más este tema, al ser problema de interpretación, podríamos pasarnos toda la vida discutiendo.

Sobre la licencia GPL y LGPL

Para hacer un final contundente sobre lo de las dobles licencias y la posibilidad de hacer software propietario con la GPL, expongo a continuación un fragmento de la licencia GPL, para ser más exacto, el punto 2.b:

You must cause any work that you distribute or publish,
that in whole or in part contains or is derived from the Program
or any part thereof, to be licensed as a whole at no charge to all
third parties under the terms of this License.

Que traducido dice:

Debe hacer que cualquier trabajo que distribuya o publique y
que en todo o en parte contenga o sea derivado del Programa
o de cualquier parte de él sea licenciada como un todo, sin carga
alguna, a todas las terceras partes y bajo los términos de esta Licencia.

Como Programa se entiende (ver punto 0 de la licencia):

This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program",
below, refers to any such program or work, and a "work based on the
Program" means either the Program or any derivative work under
copyright law: that is to say, a work containing the Program or a
portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is
included without limitation in the term "modification".) Each licensee
is addressed as "you".

O dicho de otro modo, en la licencia GPL, Programa es toda aquella aplicación bajo los términos de la licencia.

Con esta información, se entiende que si se enlaza un programa propietario a una librería bajo los términos de la licencia GPL, este debe ser también GPL ya que utilizará partes con GPL.

Para salvar esta situación, se incluye en la licencia lo siguiente:

These requirements apply to the modified work as a whole.
If identifiable sections of that work are not derived from the
Program, and can be reasonably considered independent and
separate works in themselves, then this License, and its terms,
do not apply to those sections when you distribute them as
separate works. But when you distribute the same sections as
part of a whole which is a work based on the Program, the
distribution of the whole must be on the terms of this License,
whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it. 

Que traducido queda como:

Estos requisitos se aplican al trabajo modificado como un
todo. Si partes identificables de ese trabajo no son derivadas
del Programa, y pueden, razonablemente, ser consideradas
trabajos independientes y separados por ellos mismos,
entonces esta Licencia y sus términos no se aplican a esas
partes cuando sean distribuidas como trabajos separados.
Pero cuando distribuya esas mismas secciones como partes
de un todo que es un trabajo basado en el Programa, la
distribución del todo debe ser según los términos de esta
licencia, cuyos permisos para otros licenciatarios se
extienden al todo completo, y por lo tanto a todas y cada una
de sus partes, con independencia de quién la escribió.

De este modo, si enlazo con la librería, no hace falta convertir a GPL el programa, porque no es un todo… ¿O sí? Supongo que eso dependerá de varios fatores:

  • Si se enlaza estáticamente, si sería un todo, por lo que debe convertirse en GPL
  • Si se enlaza dinámicamente y si siempre distribuyes tu aplicación con dichas librerías, ¿sería un todo o solo la suma de las partes?

Este segundo punto queda un poco oscuro y supongo que dependerá de la interpretación de cada cual.

La licencia LGPL surgió como mecanismo para evitar problemas de este tipo. Con ella, se puede enlazar (siempre que sea dinámicamente) con librerías y nunca habrá problemas de licencia. Está pensada precisamente para ello.

Volviendo al punto que empezó esto, las QT: si la licencia es GPL (sin modificaciones), me da igual que mi aplicación sea o no propietaria, puedo enlazarla sin que tenga que pagar a trolltech. Igualmente pasa con MySQL. La única razón que estas (MySQL y Trolltech) tendrían para obligarte a pagar sería la interpretación del segundo punto anterior, ya que de otro modo, la licencia GPL te eximiría del cambio de licencia de tu aplicación.

De todos modos, esto creo que es mejor que nos lo explique un abogado o estudiante de derecho (Sergio, ¿te apuntas?).

Enlaces:

Sobre KDE y QT

No es por empezar un flame (nooooooooo :P), pero como no soy capaz de poner comentarios en las entradas de voiser, pues lo pongo como entrada en mi bitácora.

Lo primero es sobre la licencia de QT: es libre, tanto para MS Windows como para Linux, bajo los términos de la licencia pública GNU GPL). Por tanto, no es necesario pagar si tu aplicación es comercial. Esto pasaba con la antigua licencia. Entonces… ¿cuál es el problema? Que si quieres hacer una aplicación y no quieres publicar su código fuente, no la puedes enlazar a librerías con licencia GPL (en este caso deberás utilizar librerías cerradas o con licencia LGPL). Por tanto, no te queda más remedio que pagar por una licencia de QT comercial.

Probablemente el problema con la licencia QT sea más bien que se entiende que una aplicación comercial debe ser de código cerrado cuando esto no tiene porqué ser así.

Sobre el modelo de desarrollo de KDE-gnome hay poco que decir: si haces mal las cosas desde el principio, te tocará empezar de nuevo cada vez (¡pero qué malo que soy! :P). El mayor problema con el proyecto gnome es su total desintegración. Con esto me refiero a que no hay casi nada integrado, todo es diferente. Puede que a la mayoría de nosotros (programadores, administradores) no nos importe mucho, pero para el usuario final sí que es importante. De poco sirve añadir tecnología si eres incapaz de que nadie lo use. Esto ya lo decía hace unos meses el desarrollador principal de firefox (desgraciadamente no encuentro el enlace).

Sobre el desarrollo de KDE decir que se basa en QT, que lo desarrolla Trolltech. No puedo decir mucho más, ya que no tengo ni la más mínima idea de qué hacen estos.

De momento nada más, si se me ocurre algo ya lo pondré.