Software Libres y Derechos de Autor

(Publicado originalmente en Opinión->Cartas al Director, de La Nación).

En el artículo “Softwares con licencia y abiertos disputan mercado local y el combate contra piratería“, publicado el día 9 de febrero de 2011, se señala implícitamente, al indicar oposición entre software con licencia y software abierto o libre, que el Software Libre no es licenciado. Esto es un error no menor. El Software Libre sí posee licencias, aunque menos restrictivas que el software privativo o no libre.

Quizá sea conveniente definir qué es el Software Libre. Según la Free Software Foundation (FSF), el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado. Lo anterior no indica que no existan derechos de autor. El autor del software distribuye su creación con una licencia que permite ciertos usos, pero sigue siendo una obra protegida y, al igual que el software propietario o privativo, puede ser víctima de la “piratería”.

La licencia de Software Libre más común es la licencia GPL (http://www.gnu.org/licenses/gpl.html). Otras licencias son la BSD, Apache, X11, MPL (de Mozilla), entre otras. En general, estas licencias establecen que se conservan los derechos de autor (copyright), y se permite la redistribución y modificación bajo ciertos términos. Si se quiere hablar de software sin licencia, entonces el término correcto es Software de Dominio Público.

Muchas empresas, grandes y pequeñas, han ignorado las licencias del Software Libre, distribuyendo modificaciones de este sin liberar el código fuente y sin reconocer la autoría del software original.
Esta mala práctica atañe, principalmente, al sistema operativo Linux (o GNU/Linux para los más puristas), que se incorpora en muchos sistemas, como tablets o teléfonos móviles, consolas de entretenimiento, sistemas automatizados de atención al cliente, etc.

El Software Libre no necesariamente es gratis, aunque la mayoría de las veces sí lo es.

Publicado en Español,Linux,Software Libre | Sin comentarios

Ejecución indirecta/remota de aplicaciones Java

Exception in thread “main” java.lang.InternalError: Can’t connect to window server – not enough permissions.

El error anterior, oculto en el log de Apache HTTP Server, generado al intentar ejecutar Apache FOP desde PHP para generar informes para un proyecto que estoy desarrollando con Cx Networks, me mantuvo varios minutos preocupado y buscando soluciones para el problema.

Al principio parecía un simple problema de permisos de archivo. Pero tras tomar las acciones comúnmente necesarias (el ya conocido modo diabólico), todo parecía ir de mal en peor. Y es que estaba por maldecir a Steve por hacerme perder el tiempo; ya que en los servidores de Cx Net (Linux) todo funcionaba bien, pero en mi Macbook sólo veía el error en cuestión.

Tras investigar un rato en la Internet (por estos días Google), encontré que el problema se generaba por la imposibilidad de la máquina virtual de Java de acceder a ciertos dispositivos de interfaz humana como el mouse, el display o el teclado. Al parecer esto ocurre cuando llamamos indirectamente a la aplicación Java. Por ejemplo con un usuario que no tiene acceso a una shell como www de Apache (o _www en Mac OS X). También podríamos enfrentarnos a esta situación cuando ejecutamos un proceso Java de manera remota a través de SSH.

La solución es más simple de lo esperado. Al ejecutar el proceso Java, debemos indicar que estamos en un ambiente headless (sin mouse, teclado o pantalla). Para lo anterior, utilizamos el siguiente argumento:

-Djava.awt.headless=true

Para más información sobre el modo headless, les invito a visitar el siguiente enlace:

http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html#headless

Publicado en Español,Java,Linux,Mac,PHP 5,Programación | Comments off

Sitios de interés