Lecciones de Software Libre

Angel E. Mendoza

Comunidades de Software Libre en Venezuela

Comunidades del Software Libre en Venezuela.

Tratando de ubicar un listado de las principales comunidades de Software Libre en Venezuela, me tope con este listado que quiero compartir con uds:

SOLVE



VELUG




Grupo de Usuarios de GNU/Linux de Portuguesa

Grupo de Usuarios Valencia/Venezuela Software Libre


BolivarLUG

Grupo de Usuarios de Software Libre GNU/Linux del Estado Bolívar x





Activistas por el Software Libre



Ubuntu Venezuela





UNPLUG
G
rupo de usuarios de GNU/Linux


GULIP



GUSL




Mundo Accesible









GULPF Grupo de Usuarios GNU/Linux de Punto Fijo



GULUP Grupos de Ususarios GNU/Linux Caracas (UNEFA)



Fuente: http://teletriunfador.wordpress.com/2009/12/20/comunidades-del-software-libre/


¿Qué es una Comunidad de Software Libre?

Una Comunidad de Software Libre es un grupo de personas que cooperan entre sí en distintas áreas relacionadas con el Software Libre. Estas personas pueden ser usuarios, desarrolladores, distribuidores, personal de soporte, traductores entre otras cosas. Las comunidades pueden abarcar todas estas áreas, o enfocarse en algunas específicas.
Así, dependiendo del área de la comunidad, sus objetivos van a variar. Pero todas tienen en común el espíritu cooperativo, la búsqueda continua del mejoramiento y difusión del software libre y del conocimiento, y que su principal interés es la libertad de los usuarios.
Entre las actividades comunes que realiza una Comunidad de Software Libre están conferencias, festivales de instalación, capacitaciones y un largo etc.
Si tenés alguna duda relacionada con el software libre, puedes unirte a alguna Comunidad, y sus miembros harán todo lo posible para ayudarte.

Fuentes: http://www.softwarelibrecr.org/faq/comunidad

Mapa Mental del UML

Mapa Mental Del UML
























Fuente: http://lebiram89.blogspot.es/img/UML-MapaMental.JPG

Diagramas UML.

UML se compone de muchos elementos de esquematización que representan las diferentes partes de un sistema de software. Los elementos UML se utilizan para crear diagramas, que representan alguna parte o punto de vista del sistema.

Son 13 los diagramas definidos en la especificación de UML 2.0 de Grupos de Desarrollo de Objetos.

Hay dos grupos principales:
Diagramas Estructurales los cuales muestran una vista estática del modelo; y Diagramas de Comportamiento los cuales muestran una vista dinámica del modelo. Veamos a continuación, la lista de diagramas que componen cada grupo:

Diagramas Estructurales: representan elementos componiendo un sistema o una función. Estos diagramas pueden reflejar las relaciones estáticas de una estructura, como lo hacen los diagramas de clases o de paquetes, o arquitecturas en tiempo de ejecución, tales como diagramas de Objetos o de Estructura Compuesta.
  • Diagrama de Clases: captura la estructura lógica del sistema, las clases y cosas que constituyen el modelo. Es un modelo estático, describiendo lo que existe y qué atributos y comportamiento tiene, más que cómo se hace algo.
  • Diagrama de Objetos: está relacionado de cerca con un diagrama de Clases, con la diferencia de que éste describe las instancias de los objetos de clases en un punto en el tiempo.
  • Diagrama de Componentes: ilustra los fragmentos de software, controladores embebidos, etc. que conformarán un sistema. Un diagrama de componentes tiene un nivel de abstracción más elevado que un diagrama de clase; usualmente un componente se implementa por una o más clases (u objetos) en tiempo de ejecución.
  • Diagrama de Estructura Compuesta: refleja la colaboración interna de clases, interfaces o componentes para describir una funcionalidad. Los diagramas de estructura compuesta son similares a los diagramas de clase, a excepción de que estos modelan un uso especifico de la estructura.
  • Diagrama de Despliegue: muestra cómo y dónde se desplegará el sistema. Las máquinas físicas y los procesadores se representan como nodos, y la construcción interna puede ser representada por nodos o artefactos embebidos. Como los artefactos se ubican en los nodos para modelar el despliegue del sistema, la ubicación es guiada por el uso de las especificaciones de despliegue.
  • Diagrama de Paquetes: se usan para reflejar la organización de los paquetes y sus elementos, y para proveer una visualización de sus correspondientes nombres de espacio.
Diagrama de Comportamiento: Los diagramas de comportamiento describen las características de comportamiento de un sistema o proceso de negocios.
  • Diagrama de Interacción: Una interacción es una generalización para un tipo de diagrama de interacción. Los diagramas de interacción pueden ser: de secuencia, de tiempos, de comunicaciones y de descripción de la interacción.
  • Diagrama de Secuencia: es una representación estructurada de comportamiento como una serie de pasos secuenciales a lo largo del tiempo. Se usa para representar el flujo de trabajo, el paso de mensajes y cómo los elementos en general cooperan a lo largo del tiempo para lograr un resultado.
  • Diagrama de Tiempos: define el comportamiento de los diferentes objetos con una escala de tiempo. Provee una representación visual de los objetos cambiando de estado e interactuando a lo largo del tiempo.
  • Diagrama de Comunicaciones: muestra las interacciones entre los elementos en tiempo de ejecución en forma semejante a un diagrama de Secuencia. No obstante, los diagramas de Comunicación se usan para visualizar relaciones inter-objetos, mientras que los diagramas de Secuencia son más efectivos para visualizar procesamiento a lo largo del tiempo.
  • Diagrama de Descripción de la Interacción: muestran la cooperación entre otros diagramas de interacción para reflejar el flujo de control que responde a un propósito abarcativo.
  • Diagrama de Actividades:se usan para modelar el comportamiento de un sistema, y la manera en que éste comportamiento está relacionado con un flujo global del sistema. Se usan los caminos lógicos que sigue un proceso basado en varias condiciones, concurrencia en el proceso, los datos de acceso, interrupciones y otras alternativas del camino lógico para construir un proceso, sistema o procedimiento.
  • Diagrama de Casos de Uso: describen las relaciones y las dependencias entre un grupo de casos de uso y los actores participantes en el proceso. Describe los requisitos funcionales del sistema, la forma en la que las cosas externas (actores) interactúan a través del límite del sistema y la respuesta del sistema.
  • Diagrama de Máquina de Estados: modela el comportamiento de un solo objeto, especificando la secuencia de eventos que un objeto atraviesa durante su tiempo de vida en respuesta a los eventos. Ilustra cómo un elemento (a menudo una clase) se puede mover entre estados, clasificando su comportamiento de acuerdo con los disparadores de transiciones y las guardas de restricciones.
Fuente: http://www.sparxsystems.com.ar/download/ayuda/index.html?umldiagrams.htm

UML Basics.

¿Que es el UML?

Lenguaje Unificado de Modelado (LUM) o (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group).

Es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software. Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.

UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

UML capta la información sobre la estructura estática y el comportamiento dinámico de un sistema. Un sistema se modela como una colección de objetos discretos que interactúan para realizar un trabajo que finalmente beneficia a un usuario externo.

UML está diseñado para su uso con software orientado a objetos, y tiene un uso limitado en otro tipo de cuestiones de programación.

¿Que no es UML?
  • No es un método de desarrollo, lo que significa que no sirve para determinar qué hacer en primer lugar o cómo diseñar el sistema, sino que simplemente le ayuda a visualizar el diseño y a hacerlo más accesible para otros. UML al no ser un método de desarrollo es independiente del ciclo de desarrollo que vayas a seguir, puede encajar en un tradicional ciclo en cascada, o en un evolutivo ciclo en espiral o incluso en los métodos ágiles de desarrollo.
  • No dice cómo pasar del análisis al diseño y de este al código.
  • No es una serie de pasos que te llevan a producir código a partir de unas especificaciones.

Objetivos del UML
  • UML es un lenguaje de modelado de propósito general que pueden usar todos los modeladores. No tiene propietario y está basado en el común acuerdo de gran parte de la comunidad informática.
  • UML no pretende ser un método de desarrollo completo. No incluye un proceso de desarrollo paso a paso. UML incluye todos los conceptos que se consideran necesarios para utilizar un proceso moderno iterativo, basado en construir una sólida arquitectura para resolver requisitos dirigidos por casos de uso.
  • Ser tan simple como sea posible pero manteniendo la capacidad de modelar toda la gama de sistemas que se necesita construir. UML necesita ser lo suficientemente expresivo para manejar todos los conceptos que se originan en un sistema moderno, tales como la concurrencia y distribución, así como también los mecanismos de la ingeniería de software, como son la encapsulación y componentes.
  • Debe ser un lenguaje universal, como cualquier lenguaje de propósito general.
  • Imponer un estándar mundial.

Arquitectura del UML.

Arquitectura de cuatro capas, definida a fin de cumplir con la especificación Meta Object Facility del OMG:
  • Meta-metamodelo: define el lenguaje para especificar metamodelos.
  • Metamodelo: define el lenguaje para especificar modelos.
  • Modelo: define el lenguaje para describir un dominio de información.
  • Objetos de usuario: define un dominio de información específico.

Fuentes:
McGill Polanco Lozano, ULM
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-basics.html

Decreto 3390. Parte 2

La segunda entrega del artículo:

Decreto 3.390 (Migración a Software Libre) For Dummies - Segunda Parte

Bien, en la primera parte de esta serie de artículos sobre el Decreto 3.390 (3390) que establece la Migración a Software Libre por parte de los organismo de la APN (Administración Pública Nacional) arrancamos con el Artículo 1. Para después darnos un recorrido práctico por los antecedentes del concepto de Software Libre: El Free Software de la FSF, y el Open Source de la OSI, imposibles de mezclar como el aceite y vinagre, pero si la cosa funciona bien para las ensaladas aquí no podemos estar tan fregados.

En este punto alguno de mis lectores habrá llegando a la conclusión de que esto del Software Libre es una especie de “Comunismo* del Software“, realmente no tengo ni idea de si eso es verdad porque mi formación política es igual de mala que mis habilidades de cocinero. Así que mejor centrémonos es los aspectos prácticos por el momento, para después volver sobre los elementos del Decreto 3.390 ¿Ok?

Una de las primeras preguntas que hace el neófito es ¿Y eso funciona? La respuesta corta es , eso funciona. La respuesta larga, es a veces sí y a veces no, pero con “atenuantes”. Así que vamos a revisar algunos casos exitosos…

Si usted está leyendo este artículo por internet tal vez le sorprenda saber que según la gente de NetCraft, para la fecha en que escribo este post, casi el 70%Apache, mientras que un 20% corresponde a diferentes versiones de servidores Microsoft, en términos de Software Libre la compañia nombrada anteriormente es el equivalente “al que no debe ser nombrado” de Harry Potter ;-) de los servidores encargados de servir los contenidos de internet son instalaciones de

Apache Software FoundationApache es un programa que se encarga de servir páginas, imágenes y muchos otros contenidos que típicamente usted busca en internet digamos con Google, o algún otro buscador. Además de hacer ese trabajo extremadamente bien, usted no tiene que pagar ni una puya por descargarlo, instalarlo en su máquina (inclusive si esta corre Windows) y usarlo.

Lo anterior es completamente en serio, más aún, eres libre ¿recuerdas las libertades de las que hablamos antes? de descargar los fuentes de este programa desde su sitio en internet, revisarlos y modificarlos, si es que tienes la suficiente experticia técnica para eso.

¿Por qué este fulano Apache es Software Libre? Bueno, principalmente porque la Licencia Apache, que es la licencia bajo la que este software se distribuye, satisface las condiciones expresadas en la definición de Software Libre que es parte del Artículo 2 del Decreo 3.390, y además está basado en Estándares Abiertos aspecto que también es parte del decreto y que revisaremos después.

En este punto la gente que comulga con los principios del Free Software (y muy posiblemente tamben los del movimiento Open Source ;-) estará negando suavemente con la cabeza, pensando la forma de descargarme por simplificar esto en un sencillo cumplimiento de condiciones de una licencia de de un software. Pero no, tranquilos que no voy a cometer ese error ¿Ok? Así que vuelvan a colocarle el seguro a las armas por favor…

Antes de entrar en el detalle del proceso mediante el cual es posible crear software exitoso, que se distribuye bajo unas condiciones que nos harían pensar en que es mucho más seguro vender ropa interior femenina que desarrollar software, vamos a revisar algunos otros éxitos claros del Software Libre para estar seguros de que el tal Apache no fue suerte de principiantes.

FireFoxAsí que podemos ver por ejemplo FireFox, el browser que usted debería estar usando si es que aún utiliza Internet Explorer en Windows ¿Que por qué? Bueno, hay muchos buenos motivos para esto pero como “administrador” de la computadora de la casa puedo decirles que desterrar a Explorer y darle un caramelo a los niños cada vez que usan FireFox te ahorra muuuuuuchas horas de lucha con virus, troyanos, spyware y ventanitas pop-ups de esas que dicen “Su computadora no está optimizada, vaya a este sitio y compre tal producto… ” o que ofrecen algo que es igual de bueno que la Viagra pero a una fracción del precio, ustedes ya saben como es.

FireFox tiene una historia interesante, ya que como software es una especie de descendiente de los restos chamuscados de lo que hace muchos años fue el mejor y más popular navegador para internet: Netscape Navigator, producto al que Microsoft se llevó por los cachos mediante el sencillo expediente de no cobrar su propio producto.

Es posible que ustedes sean muy jóvenes como para recordar una internet incipiente que se navegaba “graficamente” con Mosaic. Si ustedes hacen click en el “acerca de” en Internet Explorer van a encontrar esto fosilizado por ahí:

Based on NCSA Mosaic. NCSA Mosaic(TM); was developed at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign.**

Total que del código del Mosaic salieron Microsoft Internet Explorer y Netscape Navigator, dando lugar a una lucha estilo Mortal Kombat por el dominio del mercado. Microsoft opta por no cobrar su producto (lo que no lo conviente en Software Libre, sino en gratuito, que es diferente) y la gente de Netscape ve su negocio irse al pique.

Pero ahí no termina la historia, sino que en una jugada que daría nacimiento al término Open Source, un grupo de personas, entre los que estaba Eric Raymond logran convencer a la gente de Netscape de liberar los códigos fuentes de Navigator. Después de muchas vueltas, reescrituras del código y grandes peleas, casi una saga épica, finalmente hoy tenemos un browser que en mi apreciación le lleva una morena a Internet Explorer. Pruébenlo, se los recomiendo, definitivamente no es perfecto, pero está en constante mejora y es muy fácil de extender en beneficio de los usuarios.

TuxFinalmente no podemos terminar esta segunda entrega sin mencionar Linux, sin duda alguna el proyecto de Software Libre que tiene mayor difusión y cobertura en los medios, ya que es el David contra en Goliat de Microsoft, en el mercado de los sistemas operativos.

Linux nace como un hobby de Linus Torvalds a principios de los años noventa, básicamente el tipo quería ejecutar algo como el Unix que usaba en la universidad en el PC que tenía en su casa, y si bien iniciamente peló por un Sistema Operativo de corte educativo llamado Minix, sin embargo este se le quedó corto.

Total que lanza el proyecto a internet, la cuestión gana funcionalidad y popularidad, y entonces pela por las herramientas que había desarrollado la gente de la GNU (Free Software a efectos prácticos) que tenía sus propio proyecto para desarrollar un sistema operativo con el espíritu de Unix, pero que por supuesto fuera libre.

En este punto es bueno aclarar que Linux es el Kernel (núcleo) del Sistema Operativo, algo así como la funcionalidad básica y de muy bajo nivel que “habla” con los componentes de la computadora. Mientras que el propio Sistema Operativo es una colección más amplia de programas, librerias y herramientas que permite a los usuarios interactuar con la computadora.

Total que como la gente de la FSF tenía el desarrollo del Kernel muy crudo, pero si tenía el resto de las librerías y herramientas desarrollados bajo un esquema de Free Software, estas se juntaron con el Kernel de Linus & Co dándo génesis a lo que particularmente la gente de la FSF insiste en llamar GNU/Linux.

Es posible que usted haya oído utilizar la palabra distribución, o el horroroso término distro refiriéndose a Linux, pues no se enrrolle. Una distribución linux no es más que el “combo” que incluye el Kernel Linux, más las herramientas y librerías de la GNU más otro poco de software que permite a los usuarios instalar y administrar el sistema operativo en una forma más sencilla y conveniente. Todo esto sin costo o a un precio muy bajo en comparación con los sistemas operativos tradicionales.
Yo recuerdo hace muuuchos años cuando Linux empezaba a aprecer en la escena pública, que instalarlo y administrarlo era cuesta arriba, por decirlo de alguna manera, ahora he de reconocer que el camino andando es inmenso y que este Sistema Operativo ha ganado muchísimo al punto de que la instalación y administración de algunas de las distribuciones son prácticamente equivalentes a las de Windows para un usuario típico de un desktop.

Debian¿Cuál distribución es mejor, más fácil de usar, más estable, etc? Yo diría que eso una cuestión de gustos, de hecho les recomiendo que no discutan ese tópico con alguien que ya tenga su favorita porque es algo así como cuando en las comiquitas alguien prende un fósforo y alrededor todo lo que hay son explosivos ;-) Mi gurú personal de Linux, Jose recomienda Debian o Ubuntu dependiendo del uso que se le va a dar y del tipo de usuario, pregúntenle a él. O si quieren sacarle la piedra, por pura diversión díganle que FreeBSD rulez :-p

Bueno, los tres casos anterior son unos clásicos a estas alturas,ahora ¿Son todos los proyectos de Software Libre tan existosos? Claro, que no. Hay miles de proyectos que “murieron al nacer”, o que nunca pasaron de ser una idea interesante o que produjeron unos códigos espantosos, a pesar de ser muy utilizados por la comunidad. Hay de todo en la viña del señor, el punto es que inclusive empresas como Oracle hacen afirmaciones del tipo “El Open Source está aquí para quedarse“, lo que es un reconocimiento tácito al éxito de proyectos en esta área.

Ahora ¿Cómo es esto posible? ¿Cómo es que un poco de gente alrededor del mundo se ponga de acuerdo para hacer cosas como estas cuando es imposible poner de acuerdo a más de dos personas para salir a comer? La respuesta a estas preguntas, y las otras que quedaron por ahí “guindando” en nuestra próxima entrega.

*
Otra ventaja de usar el término es que uno se asegura que la audiencia va a arrugar la cara y se va a enganchar a leer el artículo ;-)

** Creo que de esos mismo lares salió HAL 9000 :-D


Decreto 3390. Parte 1

Revisando artículos relacionados con el decreto 3390, me topé con este artículo de Aníbal Rojas, donde recorre los principales aspectos relacionados con el Software Libre de una manera muy particular.

Decreto 3.390 (Migración a Software Libre) For Dummies - Primera Parte
El Decreto N° 3.390 (3390) establece que “La Administración Pública Nacional [venezolana] empleará prioritariamente Software Libre desarrollado con Estándares Abiertos, en sus sistemas, proyectos y servicios informáticos” ni que decir que este decreto ha generado toda una secuela de confusiones, malos entendidos, carreras y expectativas entre los empleados de los departamentos de informática de organismos del estado, y en general en el sector de Tecnologías de Información (TI) de Venezuela.

Esta serie de posts pretende ser una especie de “guía no oficial” al proceso de migración a Software Libre por parte del estado venezolano. Si usted:

  • Cree que el Software Libre es sencillamente gratis y lo venden los buhoneros (sonido de chicharrita de los que pierden en los concursos de tv)
  • Trabaja en una dirección o departamento de Informática de un organismo del estado, y parece un ventilador porque ya no sabe para donde voltear para que le explique que es lo que está pasando.
  • Desarrolla o vende software y tiene al estado entre sus clientes, y le gustaría seguirlo teniendo.
  • Alguna vez ha invertido muchos dólares en un software y lo han dejado “guindando” con el mismo.

Entonces es posible que aquí pueda aclarar algunas dudas o terminar de confundirse por completo, sencillamente siga leyendo ¿Ya qué va a hacer?

La primera vez que tuve noticia del Decreto N° 3.390 fue a finales del año 2004, y la primera impresión que tuvimos en la oficina fue “No está mal“. Y es que si bien somos desarrolladores de software que trabajamos con tecnologías de punta, desde hacía varios años todas nuestras soluciones estaban basadas en código Open Source (el porque de esto más adelante), cosa que nos ha funcionado a nosotros y a nuestros clientes.

Ya vá ¡Alto! ¿Open Source, Free Software o Software Libre? ¿No son la misma cosa? Pues no amigo mío, ni se comen igual, una clara distinción de estos tres términos es fundamental para entender el Decreto N° 3.390 y el proceso de migración.

Free Software: Nada que ver con las rebajas de Enero

El movimiento del Free Software no tiene nada que ver con el precio del mismo, y está signado por el hecho de que en inglés la palabra Free se utiliza tanto para Libre como para Gratis. El slogan que pretende aclarar esta confusión semántica es ‘Free software’ is a matter of liberty, not price. To understand the concept, you should think of ‘free’ as in ‘free speech’, not as in ‘free beer’ (El ‘Software Libre’ es un asunto de libertad, no de precio. Para entender el concepto, debes pensar en ‘libre’ como en ‘libertad de expresión’, no como en ‘cerveza gratis’)

El núcleo práctico del Free Software se encuentra en las cuatro libertades, por favor no confundir con las Tres (+1) Leyes de la Robótica de Asimov:

  • La libertad de usar el programa, con cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.
  • La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
  • La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.

Cualquier software que satisfaga las cuatro condiciones anterior califica como Free Software, en lo que a la Free Software Foundation (FSF) se refiere. Y sí, es extraño pero las numeraron empezando en cero siguiendo la costumbre de los programadores en lenguaje C, eso definitivamente no ayuda…

Veamos algunas consecuencias prácticas de la aplicación de estas libertades:

  • Puedes usar el software para hacer bombas atómicas o planear atentados terroristas, la libertad 0 te consagra ese derecho. No importa si eres chino, surafricano o polinesio, si eres comunista o derechista, o si desayunas con cochino frito en vez de cereales, siempre puedes usar el software con el fin que tu quieras.
  • ¿Se colgó el programa y el soporte técnico no responde? No hay rollo, puedes obtener los fuentes (generalmente de internet) revisar el programa y corregir el error ¿Cool no? Esa es la libertad 1 en acción.
  • Tu programa favorito lo puedes instalar en todas las computadoras que se te atraviesen: en la tuya, la de la casa y la del trabajo ¿Y lo mejor de todo? Hacerlo es legal. Mejor todavía, consigues un programa buenísimo y lo empiezas a vender, y como la libertad 2 te da el derecho de distribuir copias ¡Sigues legal, pero ademas ganas algún dinero!
  • Finalmente te gusta tanto esto del Software Libre que te fajas a modificar un programa desarrollador por otro, y lo distribuyes para que los demás se beneficien de tu genio, te admiren y puedas disfrutar de tus 5 minutos de fama. Lo mejor de todo es que quien originalmente creó el programa no puede chistar dada la libertad 3

Llegado a este punto mucha gente pone cara de haberse intoxicado con camarones y empieza a preguntarse cosas como:

  • ¿Y se puede vender? Sí, si se puede.
  • ¿Pero cuál es el modelo de negocio? Buena, pregunta
  • ¿Y ese software es bueno? Si usas internet ya tienes la respuesta, sí es bueno.

Estas preguntas son totalmente válidas, sin embargo vamos a esperar un poquito antes de intentar responderlas en mayor extension. Por que ¡En la otra esquinaaaaaaa! está:

Open Source: Los códigos fuentes me nutren

No hay que ser miembro de MENSA para entender que la FSF comporta una filosofía y valores bien particulares, más allá de simples criterios para las licencias bajo las que se distribuye el software. En contraposición con esta postura aparece la Open Source Initiative (OSI) a los que la gente identificada con el movimiento del Free Software ve como el Lado Oscuro de La Fuerza, musiquita de Darth Vader incluida. Según la OSI:

La idea básica alrededor de Open Source es muy sencilla: Cuando los programadores pueden leer, redistribuir y modificar el código fuente de un software, este software evoluciona. La gente lo mejora, lo adapta y le corrige los errores. Y este proceso sucede a una velocidad tal, que si uno está acostumbrado al lento ritmo del desarrollo tradicional de software, este es sorprendente.

Lo primero que se hace obvio es que para la OSI lo central es el proceso del desarrollo de software, y la forma en que el código abierto permite obtener mejores productos a una gran velocidad. Por este motivo la gente que se identifica con esta tendencia es vista como “pragmáticos”, la FSF tiene un documento completo al respecto: ¿Por qué “Software Libre” es mejor que software de “Código Fuente Abierto”?.

La OSI tiene su propia definición de Open Source que consta de 10 puntos, que en forma mucho más explícita coinciden en buena medida con muchos de los postulados del Free Software más allá de las 4 libertades. Les recomiendo que revisen ambos, y saquen ustedes sus propias conclusiones.

Free Software vs Open Source

Si bien el debate y la controversia entre los que apoyan el Free Software y el Open Source tiene años, y no tiene pinta de que vaya a terminar pronto, ambos equipos se han anotado sus buenos puntos (en mayor o menor medida dependiendo de a quien le pregunten) a favor de los usuarios finales y/o de los desarrolladores de software.

Inclusive existe una propuesta de “integración”, si es que se le puede decir así, FLOSS: Free/Libre Open Source, que intenta ser “neutral” pero a la que yo no le he visto mucha vida.

¡Ajá! ¿Y que tiene que ver el Software Libre con el Free Software o el Open Source?

La respuesta es fácil, sólo tenemos que tomar la definición de Software Libre que está en artículo 2 del Decreto N° 3.390:

Software Libre: Programa de computación cuya licencia garantiza al usuario acceso al código fuente del programa y lo autoriza a ejecutarlo con cualquier propósito, modificarlo y redistribuir tanto el programa original como sus modificaciones en las mismas condiciones de licenciamiento acordadas al programa original, sin tener que pagar regalías a los desarrolladores previos.

Y nos damos cuenta de que lo que está reflejado ahí es sospechosamente parecido a las cuatro libertades propuestas por el movimiento de Free Software, más un puntico de aliño que después vamos a revisar.

Bueno, esto está “mas largo que un suspiro de culebra”, como decimos en Venezuela, así que mejor dejarlo hasta aquí por hoy. Tenemos muchas preguntas por contestar entre ellas, ¿Qué es esa famosa GPL de la que tanto hablan? ¿Cómo escojo una licencia para que mi software sea libre? ¿Es negocio hacer software bajo estos términos? ¿Podrá el Escuadrón Mete La Pata salvar a Penélope?


Aplicación práctica de una licencia libre

Veamos como aplicar concretamente la licencia en nuestro software, no todas se aplican exactamente de la misma forma, pero en general el procedimiento es similar. A modo de ejemplo se explicará cómo licenciar software bajo GNU GPL 2.

En cada archivo que compone el código fuente de nuestro software deberemos agregar la nota del Copyright, algo como: “Copyright 2007 Pedro Pérez”. Al respecto, debemos tener en cuenta:

  • Siempre debemos usar la palabra “Copyright”, nunca alguna de sus “traducciones” (como “Derecho de Autor” o “Derecho de Copia”). El símbolo “©” puede estar incluido si así lo deseamos, no es obligatorio, también podríamos usar “(C)”.
  • El año especificado debe ser aquel en el que liberamos dicha versión. A medida que vamos liberando nuevas versiones en los años siguientes, la nota legal deberá hacer referencia a cada uno: “Copyright 2007 2008 2009 Pedro Pérez”.
  • También debemos agregar en cada archivo fuente una nota estableciendo que esta permitida la copia bajo los términos de la GNU GPL. Este es el texto a incluir.
  • Junto con el código fuente debe incluir una copia de la licencia completa, en nuestro caso la GNU GPL. Este archivo debe ser texto plano y usualmente es nombrado como LICENSE o COPYING. El texto de la licencia debe ser en inglés (las traducciones no son oficiales).
  • Como lo dicho al comienzo del artículo, no hay ninguna necesidad legal de registrar el software en la entidad de Copyright o Derechos de Autor de su país. La sola distribución hace que su software “obtenga” Copyright. El registro ante la entidad solo cobra sentido ante una confrontación legal o violación de la licencia de su software.
  • En el caso de la GNU GPL, la FSF nos ofrece nombrarla como titular de nuestro Copyright. De esa forma ellos se encargan de hacer valer la licencia en caso de violación, sobre todo en el contexto legal de los Estados Unidos. Esta posibilidad es muy usada por aquellos desarrolladores que no tienen posibilidades, conocimiento o interés en hacerse cargo de las cuestiones legales de su software, pero quieren hacerlo libre.
Fuente: http://www.maestrosdelweb.com/editorial/licencias-libres-de-software-ii/

Licencias de Software Libre

A continuación veremos algunas de las licencias de software más comunes y sus principales características:

Licencias GPL
Una de las más utilizadas es la Licencia Pública General de GNU (GNU GPL). El autor conserva los derechos de autor (copyright), y permite la redistribución y modificación bajo términos diseñados para asegurarse de que todas las versiones modificadas del software permanecen bajo los términos más restrictivos de la propia GNU GPL. Esto hace que sea imposible crear un producto con partes no licenciadas GPL: el conjunto tiene que ser GPL. Es decir, la licencia GNU GPL posibilita la modificación y redistribución del software, pero únicamente bajo esa misma licencia. Y añade que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada uno de los códigos "A" y "B", debe estar bajo la licencia GNU GPL.
Su propósito es declarar que el software cubierto por esta licencia es software libre.


Licencias AGPL
La Licencia Pública General de Affero (en inglés Affero General Public License, también Affero GPL o AGPL ) es una licencia copyleft derivada de la Licencia Pública General de GNU diseñada específicamente para asegurar la cooperación con la comunidad en el caso de software que corra en servidores de red. La Affero GPL es íntegramente una GNU GPL con una cláusula nueva que añade la obligación de distribuir el software si éste se ejecuta para ofrecer servicios a través de una red de ordenadores.

LGPL (Lesser General Public License o Library General Public License)
Permite la utilización simultánea de software con este tipo de licencia en desarrollos libres y/o privativos (no libres). Es por tanto mucho menos restrictiva que la GNU GPL. Lo único que impide o protege esta licencia es a realizar versiones comerciales del producto en cuestión, pero no a realizar versiones comerciales con el producto como una herramienta (librería o biblioteca). También obliga a registrar todos los cambios realizados por terceros, de manera que no afecten a la reputación del autor original del software.

Licencia BSD
Llamadas así porque se utilizan en gran cantidad de software distribuido junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación, incluso si dichos trabajos tienen propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser mezcladas con la licencia GNU GPL con quienes son compatibles. Puede argumentarse que esta licencia asegura “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre.

Mozilla Public License
Esta licencia es de Software Libre y tiene un gran valor porque fue el instrumento que empleó Netscape Communications Corp. para liberar su Netscape Communicator 4.0 y empezar ese proyecto tan importante para el mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos de software libre de uso cotidiano en todo tipo de sistemas operativos. La licencia MPL cumple completamente con la definición de software de código abierto de la Open Source Initiative (OSI) y con las cuatro libertades del software libre enunciadas por la Free Software Foundation (FSF).

Copyleft
Es usado para modificar el derecho de autor de obras o trabajos, tales como software de computadoras, documentos, música, y obras de arte. Representa una alternativa a las restricciones que imponen las normas planteadas en los derechos de autor, a la hora de hacer, modificar y distribuir copias de una obra determinada. Se pretende garantizar así una mayor libertad para que cada receptor de una copia, o una versión derivada de un trabajo, pueda, a su vez, usar, modificar y redistribuir tanto el propio trabajo como las versiones derivadas del mismo. Así, y en un entorno no legal, puede considerarse como opuesto al copyright o derechos de autor tradicionales.

Creative Commons
Creative Commons está inspirada en la licencia GPL (General Public License) de la Free Software Foundation. La idea principal es posibilitar un modelo legal y ayudado de herramientas informáticas para así facilitar la distribución y el uso de contenidos para el dominio público. Ofrece una serie de licencias, cada una con diferentes configuraciones o principios como el derecho del autor original a dar libertad para citar su obra, reproducirla, crear obras derivadas, ofrecerlo públicamente y con diferentes restricciones como no permitir el uso comercial o respetar la autoría original.


Fuentes: http://es.wikipedia.org/wiki/Software_libre
http://es.wikipedia.org/wiki/Copyleft

http://www.josedomingo.org/web/course/view.php?id=42

¿Que es una licencia de Software?

La Open Source Initiative, la define como un contrato entre el desarrollador de un software sometido a propiedad intelectual y a derechos de autor y el usuario, en el cual se definen con precisión los derechos y deberes de ambas partes. Es el desarrollador, o aquél a quien éste haya cedido los derechos de explotación, quien elige la licencia según la cual distribuye el software.

Wikipedia presenta dos definiciones:
  1. Una licencia de software es un contrato entre el licenciante (autor/titular de los derechos de explotación/distribuidor) y el licenciatario del programa informático (usuario consumidor /usuario profesional o empresa), para utilizar el software cumpliendo una serie de términos y condiciones establecidas dentro de sus cláusulas.
  2. Una licencia es aquella autorización formal con carácter contractual que un autor de un software da a un interesado para ejercer "actos de explotación legales". Pueden existir tantas licencias como acuerdos concretos se den entre el autor y el licenciatario. Desde el punto de vista del software libre, existen distintas variantes del concepto o grupos de licencias.
Según el site educativo PLEDIN Una Licencia de software (en inglés software license) es la autorización o permiso concedida por el titular del derecho de autor, en cualquier forma contractual, al usuario de un programa informático, para utilizar éste en una forma determinada y de conformidad con unas condiciones convenidas.


Licencias de software libre para Mirar

En un intento por tratar de explicar las características más relevantes de las licencias de Software Libre, la Free Software Fundation ha realizado la siguiente iconografía, que ayuda a entender mejor el asunto:




Retos y oportunidades del Software. Parte 3

Ámbito Legal

El uso apropiado de Software Libre, anula el problema legal con el Copyright. Es decir, no hay posibilidades de infringir la ley por plagio o distribución ilegal del Software, ya que el Software Libre, es perfectamente distribuible sin autorización alguna. Aquí se presenta la oportunidad de orientar y educar, a los usuarios con respecto a la ley y el uso adecuado del software, sobre todo en un país como el nuestro, donde comprar copias legales de software, resulta tan costoso y complicado, tanto por las políticas cambiarias, como por la cultura de uso de software que tenemos, abriendo un ancho camino para el uso y comercialización de copias ilegales de software (actividad ya aceptada como normal y prácticamente no penalizada, aunque la ley dice lo contrario.)

Ámbito social

Los aspectos filosóficos del Software Libre, resultan ampliante beneficiosos para la sociedad. Primeramente, modifica el entendimiento y comportamiento ético de los personas, respecto al uso del Software, lo cual inevitablemente tiene un efecto similar en otros ámbitos. Hacer las cosas bien, con calidad, compartir responsabilidades y beneficios, respetar y comprender la ley y la libertad son algunos de los principios promovidos por el movimiento del Software Libre.

Voluntariado

La cooperación para el logro de los objetivos, es uno de los principios que apalancan a este movimiento. Los más importantes proyectos de Software Libre, se han construido siguiendo una metodología de cooperación voluntaria, donde muchos participan para crear, modificar, mejorar, detectar y corregir errores generando productos de muy buena calidad. Esta metodología de desarrollo y el crecimiento del SL en nuestro país, crean una grandiosa oportunidad para crear aplicaciones que hagan eco a nivel mundial y demostrar que tenemos profesionales muy bien preparados y motivados.

Ámbito Institucional

Venezuela representa un reto interesante para el Software Libre. Es un país donde hay que romper tanto barreras políticas, como tecnológicas.
Lo primordial, al igual que en otros ámbitos, es lograr la confianza y aceptación del Software Libre como una solución que realmente funciona, y no como una imposición del Estado o un capricho personal de un tercero.
Por otra parte, se hace necesaria, una adecuada lectura del decreto 3390, que indica el uso PRIORITARIO, más no exclusivo de aplicaciones de Software Libre en las instituciones públicas. También es fundamental la orientación, respecto a las implicaciones de la migración de plataformas de software privativo a software libre. Hay que entender que no es sólo cuestión de desearlo, sino que implica un complejo trabajo, que requiere de mucha atención.
Las oportunidades que se plantean en este ámbito, son fundamentalmente las siguientes:
• Poseer soluciones mucho más confiables, seguras y transparentes (ya que al tener acceso al código fuente se pueden hacer mejores auditorias de los sistemas)
• Mayor control de la información. Para instituciones públicas es indispensable que la información pueda ser compartida por diferentes entes, siempre garantizando su integridad. Los estándares abiertos y las aplicaciones de Software Libre, hacen esto posible.
• Los costos se ven reducidos por no ser necesarios el pago de licencias. Este ahorro se traduce en inversión en otras áreas de interés.
• La independencia de los proveedores. Al usar Software Libre, es posible realizar modificaciones, sin necesidad de un proveedor específico, solo se requiere personal con conocimientos en el tema. Así, si un proveedor, no funciona o incumple por cualquier motivo, puede ser cambiado con facilidad, sin tener un impacto tan grande.
• La posibilidad de desarrollar, mejorar e integrar las aplicaciones de software en un tiempo mucho menor. Todo gracias al uso de estándares abiertos y a la posibilidad de reutilizar aplicaciones o modulo de aplicaciones desarrolladas por otros, sin necesidad de reinventar la rueda.

La situación política de nuestro país sugiere unos retos muy particulares para el Software Libre, que para superarlos hace falta un esfuerzo extra y la cooperación de todos.
Las oportunidades son claras, y nos dan ciertas ventajas competitivas respecto a otros países, colocándonos en una posición favorable para hacer cosas realmente interesantes, en cuanto a tecnología y negocios.

Retos y oportunidades del Software. Parte 2

Ámbito técnico.

Un reto importante, desde el punto de vista técnico, que tiene el Software Libre, es lograr aplicaciones mucho más amigables y “familiares” para los usuarios, principalmente a nivel de Sistemas operativos, para computadores de escritorio y laptops. Es importante entender, que no todos los usuarios son grandes conocedores de la informática, y para captar a este tipo de público, es fundamental brindarles algo que ya tienen: facilidad de uso y amigabilidad, y sumarles la gran cantidad de ventajas que el SL provee.

Otro reto importante, es lograr la consolidación de sus métodos y técnicas de desarrollo, seguimiento de proyectos, estimación, etc., que son fundamentales a la hora de desarrollar proyectos de calidad. Muchas de estos métodos y técnicas ya son ampliamente aceptadas y se ha comprobado su efectividad, pero falta algo muy importante, lograr la confianza plena y aceptación por parte de las instituciones, sobre todo las privadas.

Técnicamente son infinitas las oportunidades que brinda el Software Libre. La facilidad para la creación, modificación, mejoramiento, innovación, estudio y distribución de las aplicaciones, lo hacen un duro competidor para las empresas productoras de software Privativo. Por otro lado, abre el camino hacia la innovación tecnológica, lo que permite el surgimiento de nuevas y mejores aplicaciones y tecnologías, que serian imposibles de crear en ambientes privativos. Todo esto con la más que comprobada calidad que caracteriza a las aplicaciones de SL.

Ámbito estratégico

Estratégicamente, el Software Libre se puede convertir en un importante aliado en el desarrollo las empresas. Por un lado, permite la evolución de aplicaciones, mejorandolas y adaptándolas a las necesidades particulares sin necesidad de partir desde cero, lo que significa un considerable ahorro de tiempo, dinero y esfuerzo, incrementando las ganancias. Por otro lado, representa una importante oportunidad de negocio, particularmente en nuestro país, donde el estado tiene preferencias por las aplicaciones de Software Libre y una fuerte participación en el mercado de tecnología.

Hay varios aspectos que, a mi parecer, hacen del software libre una excelente oportunidad de negocio en nuestro país:
  • Un gran número de instituciones en manos del Estado Venezolano.
  • El decreto 3390, que impulsa el uso prioritario de Software Libre.
  • El estado actual de las instituciones, que atraviesan una etapa de crecimiento tecnológico que ha originado gran demanda de soluciones de software.
  • Lo poco explotado que ha sido este mercado por parte de organizaciones privadas. La competencia es poca.

Retos y oportunidades del Software. Parte 1

Retos y oportunidades del Software Libre en el ámbito académico, técnico, estratégico, legal, social, del voluntariado e institucional.

El dinamismo de la tecnología, su acelerada evolución y su alcance cada vez más global, han permitido el surgimiento de nuevos paradigmas, que han cambiado por completo las ideologías sobre muchas temáticas del área. Uno de los paradigmas más popularizados en los últimos años y que más ha llamado la atención, por el gran número de seguidores y detractores que tiene, ha sido el referente a la libertad, introducido por el movimiento del Software Libre. El Software Libre, se define (según GNU Operating System) como la libertad de los usuarios de ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Esto es, el respeto y aseguramiento de las cuatro (4) libertades esenciales para los usuarios:
Libertad Cero: La libertad de ejecutar el programa, para cualquier propósito.
  • Libertad Uno: La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera. El acceso al código fuente es una condición necesaria para ello.
  • Libertad Dos: La libertad de redistribuir copias para que pueda ayudar al prójimo.
  • Libertad Tres: La libertad de distribuir copias de sus versiones modificadas a terceros. Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.
Ahora bien, analicemos los retos y oportunidades que, por definición, el Software Libre tiene en el ámbito académico, técnico, estratégico, legal, social, del voluntariado e institucional venezolano.

Ámbito Académico.

En la actualidad la educación venezolana, se caracteriza, por tener una gran influencia del Estado. Esto independientemente si la educación es pública o privada, sin embargo la mayor influencia está, obviamente, en el sector público.

En cuanto al sector de tecnología se refiere, el Estado venezolano, ha tomado como una de sus prioridades, la implantación de tecnologías libres en todas sus áreas, impulsado por el decreto presidencial 3390. Esta acción, ha sido determinante y muy positiva para el crecimiento del movimiento del Software Libre en nuestro país.

Al considerar los puntos, arriba mencionados, se genera un ambiente propicio para que el Software Libre se asiente y se consolide como ideología predominante en nuestro país.

Ahora bien, esta consolidación no es tan fácil ni tan inmediata, y es aquí donde surgen los principales retos del Software Libre en el ámbito académico, que a mi parecer, son principalmente dos:

El primero, lograr la aceptación de usuarios acostumbrados al uso de Software Privativo (que viene por defecto con los equipos que adquieren, resuelven sus necesidades básicas y no requieren de mayor entrenamiento para aprender a usarlo) y demostrar sus ventajas con respecto a este.

El segundo y el más complejo, es superar las barreras políticas, que ciegan las acciones y decisiones de los involucrados en un país con una fuerte crisis y división política; es decir, lograr que aquellos que no estén a favor del Estado y sus decisiones, acepten y entiendan que el Software Libre, trae consigo un sinfín de ventajas y oportunidades reales, independientes del ente impulsor del mismo. En pocas palabras es lograr una abstracción de la situación política del país, para ver con claridad los beneficios que el SL aporta.

Si hablamos de oportunidades, Richard Stallman, afirma que lo más importante es tener en cuenta al estudiante como un ser integral y hacerle entender la importancia de hacer uso de la libertad, de las ventajas y responsabilidades que sugiere. Por otro lado, tenemos la cuestión del ahorro de costos por conceptos de pagos de licencias; las posibilidades de tener estudiantes mejor preparados, con mayor conocimiento de la tecnología, gracias a que pueden estudiar más a fondo las aplicaciones (acceso al código fuente) y se estimula la innovación tecnológica (libertad de modificar y compartir.) También se considera como una oportunidad, la facilidad y capacidad para adaptar las aplicaciones para que cumplan con las necesidades particulares de las instituciones. Esta última es una ventaja que es aplicable a todos los ámbitos. Otra importante oportunidad, es lograr el uso de un mayor número de aplicaciones, sin incurrir en violaciones, muchas veces involuntarias o inocentes (por desconocimiento), de los derechos de autor y al mismo tiempo se orienta a la comunidad, sobre los aspectos legales relacionados a la utilización del software.

Translate

Seguidores