Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

24 de febrero de 2013

Peaceful General Public License

El Soft es Libre... ¿Y Nosotros?

Las ventajas del software libre están a la vista, las desventajas..no tanto, tenemos mucho por pensar aún; en 2005 había preparado una reflexión sobre este tema en una página de geocities (que no existe más)... fue motivada por una charla en la lista de lugro ( un grupo muy amable dicho sea de paso ), el tema planteado era "el soft es libre..¿y nosotros?", pasaron varios años de esa pregunta pero creo que sigue siendo un tema actual, revivo aquí entonces algunas de esas palabras pensando que todavía tienen algo que decir.


Soft Libre...de Intención?

Libertad sin intención suena algo contradictorio, libre implica expresar intenciones, si se separa el software de las intenciones, no hay más libertad humana ahí, es sólo la libertad para el software en sí mismo. La licencia GPL ofrece libertades  y establece obligaciones. ¿Qué libertades ofrece y cuales son las obligaciones? ¿A quién?
Las "libertades" que ofrece son la de usar/estudiar/modificar/distribuir el software, y las obligaciones que implica, son justamente las que posibilitan esas libertades, es decir, el programador que quiera usar esa licencia o librerías que la usen, está obligado a entregar el código fuente de su algoritmo, es decir la receta de su programa, facilitando así la posibilidad de estudiar el funcionamiento y modificarlo. Esas obligaciones reflejan entonces la más profunda de las motivaciones de la licencia:   propagarse.

Algunos pensamos que la libertad es un concepto elevado, y no alcanzable mediante licencias ni leyes, porque atiende a una idea muy general e inaprensible, por eso a la palabra libertad se la puede (y suele) utilizar de las maneras más diversas: sea para mejorar la vida de las personas, como para justificar guerras, para hacer propagandas de gaseosas light, etc... Defenderla como palabra en sí, sin aclaraciones ni restricciones es defender a todos sus usos abusos, al menos habría que dejar claro cuál libertad se quiere, para quién o qué , hay que notar lo obvio, es una definición subjetiva, y que como otras palabras, ya ha sido adaptada para propiciar obras bellas y crueldades temibles. Es una pena que se le haya puesto ese nombre, pero no creo que sea casual, el software hoy en día es casi un ser vivo en simbiosis con nosotros, y es comprensible que esté yendo hacia una libertad.

En las obras bellas no suelen usarse las armas, y si la GPL no permite cerrar el código con el fin de auto-sostenerse y propagarse ¿Porque no resignar entonces otra libertad con algún fin más humano? ¿Valorar la vida?.

Como el Software Libre no le permite al programador decidir a quién entregar su código fuente una vez liberado, quien utilice la licencia GPL está obligado a perder el control sobre dónde, quién y para qué se utilizará su trabajo, su código fuente, para así dar libertad al software en sí mismo, y supongamos también quizás al usuario.. Se resigna cualquier intención original a cambio de que el código siga siendo abierto.

Podríamos preguntarnos, si el software puede copiarse de todas formas, y la licencia no es más que para declarar intenciones; (porque sabemos que una vez liberado un software, cerrado o abierto, nada se puede hacer con el uso que se le da, incluso un software cerrado podría reutilizarse) aún así, quizás la pregunta es entonces cuáles son esas intenciones nuestras, cuál es nuestra postura en esa declaración, ¿Es para nosotros más importante declarar nuestro apoyo irrestricto a la propagación de un código fuente y auto-sustentar una licencia, que contar nuestras intenciones sobre sustentar la vida y la paz , evitando así "ensuciar" la licencia con cuestiones humanas ?

Así puede ser para unas personas, pero no para otras. Por tanto, ya que hablamos de libertad, llevémosla al terreno de un programador que debe elegir su licencia, y por tanto se puede admitir la diversidad de opciones (cosa que no asegura la libertad pero al menos permite una parte). Lo que podemos proponer es que la GPL sea siempre opcional, y quien no quiera publicar su código tenga siempre la libertad de no publicarlo.
Que cada uno pueda decidir es poner por encima una libertad y un derecho humano a un derecho maquinal, una libertad para bits ( no sé por cuanto tiempo sean más importantes los humanos que las máquinas, pero podemos hacer algo mientras ).
Incluso puede que alguien quiera publicar su código, pero no para cualquier fin, lo cual es un poco paradójico porque al publicar ya dijimos no hay chance de controlar la finalidad del source, sin embargo, aún así se puede declarar una intención, y por ejemplo quien esté interesado en apuntar sus intenciones a la paz, puede publicar con una licencia "Peaceful" GPL en lugar de la GPL.
El software libre es muy importante, tanto como el software privativo. Creo entonces que no debería prohibirse ninguno.
No hay ninguna necesidad de discutir acerca de si hay fines bélicos correctos o incorrectos. Sencillamente hay gente que preferiría usar una PGPL (GPL Pacifica) y puede expresar su intención.

¿Queda claro que: "Por más que pongamos cláusulas, lo pueden igual usar ilegalmente...."? Clarísimo, pero las licencias libres también pueden ser usadas ilegalmente cerrando el código, sin embargo, sus cláusulas siguen ahí! (que obligan a entregar el código fuente)... Esto es porque las cláusulas así como las leyes de un país, no eliminan el delito, sino que representan una postura, una filosofía, un ideal al cual apuntar a que sea parte de la cultura. ¿Cuál es el ideal del software libre, y quién posee esa libertad además del mismo soft? Probablemente hay una comunidad que NO es representada por una GPL o cualquier licencia de soft libre a la que "le da lo mismo" si el código es utilizado para un juego que para matar personas. Y estos comentarios que estoy haciendo son un parche que se sabe poco útil de entrada porque no soluciona el problema, pero su objetivo es otro, es dejar bien clara una postura para invitar a la paz, y no a la indiferencia.

Agregado Pacifista :
"Esta prohibido utilizar el software que cubre esta licencia (source y binario) directa o indirectamente
o como parte de otro software con el objetivo de causar daño a seres humanos, la fabricación de armas o para ser usado en cualquier tipo de aplicaciones bélicas. Al autor de este software No le da lo mismo cualquier aplicación de su trabajo."
Este agregado es para hacer notar que la reutilización del código puede tener la finalidad más insospechada. Y si ya somos lo suficientemente inconscientes como para desarrollar tecnología, podríamos decir al mundo que se puede dar un mal uso, y si se da un mal uso : "No es nuestra intención", que si le dan un mal uso lo tendrán que hacer ilegal, para no ser cómplices porque lo rechazamos desde el origen mismo.
Que por otro lado, es quizás todo lo que podemos hacer...

Es adjuntar una propaganda pacífica, humana. Para que, cuando se reproduce el software, ya que está, se reproduzcan juntas.

Y ¿Qué pasa si se necesitan desarrollar armas para defenderse de "malos", extraterrestres, meteoritos, y otros etcéteras? En tal caso se puede usar soft con otra licencia, o se le puede consultar al autor si lo permite, o cambiar la licencia, o usarlo ilegalmente ¿ o qué tal joderse ? La paz no es gratis.

"Lo preocupante no es la perversidad de los malvados, sino la indiferencia de los buenos" Martin Luther King

3 de marzo de 2010

SOHT

Situación
Necesito acceder a un servidor a través de un puerto TCP.

Problema
No se puede acceder porque hay un proxy en medio que no permite conexiones de socket directas, sólo admite pedidos HTTP.

Solución
Un software, a instalar del lado del cliente y del servidor, que permite atravesar el proxy, transformando las conexiones de socket, en conexiones y pedidos HTTP, es decir, Socket over HTTP Tunneling.

Como me gustó, aquí dejo un diagrama funcional de ejemplo y lo básico del archivo soht.properties para configurarlo.


El SOHT cliente es una aplicación java (.jar) y se ejecuta directamente teniendo instalada la maquina virtual java, el SOHT servidor es un servlet (.war) y requiere por tanto un Servlet Container para ejecutarse (deploy), puede ser por ejemplo Tomcat (esta podría ser la parte más "difícil" de la instalación, o menos común, aquí dejo una página de cómo instalar tomcat en un Debian linux)

Se puede además utilizar GlassFish (es un servidor de Oracle también open source)

UPDATE:

Una vez funcionando el servidor podrá ingresarse mediante http://localhost:8080/soht/login.jsp y aparecerá una pantalla de administración, el valor por defecto de password es soht. El cual debería cambiarse luego.


Para los curiosos, el diagrama está hecho con yEd Graph Editor.

25 de septiembre de 2009

Hora en Debian Linux

Tenía un problema con el horario de un server
UTC vs Local Time

En la consola de linux con el comando

date

devolvía la hora correcta.

y desde Java, leía un horario incorrecto, con un source de este estilo:

..
Date fecha = new Date();
System.out.println(DateFormat.getDateTimeInstance().format(fecha));
..

Sucede que estaba viendo la hora UTC..

Estaba mal especificada la zona horaria,

Intenté cambiarla con el siguiente comando en linux

tzselect

pero obtuve este error

/usr/bin/tzselect: line 23: /usr/share/zoneinfo/iso3166.tab: No such file or directory
/usr/bin/tzselect: time zone files are not set up correctly


Instalé el paquete tzdata

apt-get install tzdata


y volví a probar con


tzselect

(
tambien puede ser
dpkg-reconfigure tzdata)


Ahí si me apareció una lista de paises, y pude setear correctamente la zona horaria!
y desde Java reportaba bien la hora.

Dejo entonces este log del asunto por si a alguien le ocurre,( o me vuelve a pasar).