GNU software libre.

¿Qué es el Software Libre?

¿Qué es el Software Libre?

El software libre es un tipo de programas de ordenador que respeta nuestra libertad. Utilizar software libre es una decisión política y ética que nos permite ejercer nuestro derecho a aprender y a compartir lo que aprendemos con otras personas.

Es habitual que el software que compramos nos niegue dichos derechos. Eso es porque realmente no estamos adquiriendo la propiedad del software que compramos, sino una licencia sobre el uso del software. Y dichas licencias nos atan mediante numerosas y sutiles reglas acerca de lo que podemos y no podemos hacer con el programa.

Software libre (" free software" )
Software libre (” free software” )

Si hacemos una copia del programa y se la damos a un amigo, si tratamos de averiguar cómo funciona el programa, si tenemos más de una copia del programa en nuestro computador en casa… y nos sorprenden haciéndolo, podemos ser multados o incluso procesados. Eso es lo que pone en la letra pequeña de las licencias.

¿Y si hubiera un grupo a nivel mundial de programadores éticos con gran talento, dedicados a la idea de escribir y compartir software entre ellos, y con cualquiera que acepte compartirlo de igual forma? ¿Y si cualquiera pudiera formar parte de dicha comunidad, y beneficiarse de ello, sin necesidad de saber nada sobre programación? En ese caso no tendríamos que preocuparnos más acerca de ser sorprendidos copiando un programa para nuestros amigos… porque no estaríamos haciendo nada ilegal.

¿Qué es el software libre? Video.

El movimiento del software libre.

De hecho, tal movimiento existe, y puedes llegar a ser parte de él. El movimiento del software libre fué creado en 1984 por Richard M. Stallman, mediante la creaci ́on de un proyecto llamado GNU (que significa “GNU’s Not Unix”) para proporcionar un reemplazo del sistema operativo UNIX; un reemplazo que respete la libertad de quienes lo usen. Más tarde, en 1985, Stallman creó la Free Software Foundation, una organización sin ánimo de lucro con la misión de promover y educar al público de todo el mundo acerca del software libre.

Hoy, el número de gente que no es usuaria de computadores disminuye contínuamente, a medida que la tenología se asienta en todo el globo. Para que esta tecnología funcione son necesarios ciertos conocimientos. La gente que acapara dicho conocimiento, castigando y amenazando a los que tratan de obtenerlo y compartirlo, no lo hace para preservarlo, pese a lo que puedan decir. Muy al contrario, su objetivo es preservar su poder a expensas de la libertad de los demás.

Habiéndose dado cuenta de esto, millones de personas de todo el mundo (incluyendo gobiernos al completo) han decidido utilizar sólo software libre en sus computadoras. El hecho de que tanta gente esté dispuesta a tomar esa decisión (y ponerla en práctica) frente a las ofertas más y más baratas de Microsoft, Apple, y otras empresas que hacen softare privativo, prueba que esas empresas no están en lo cierto: no las necesitamos para hacer software.

GNU software libre.
GNU software libre.

Podemos hacerlo. Lo estamos haciendo.

¿Cómo funciona? ¡Copyleft!

En vista a que las leyes de copyright sobre el software suelen utilizar se para privarnos de nuestra libertad, Stallman y la FSF desarrollaron un documento legal llamado la “GNU General Public License” (GPL) para proteger dicha libertad. En lugar de restringir qué puede hacerse con el software, la GPL nos alienta a estudiar y compartir. Por eso es lo que denominamos una licencia “copyleft”. Miles de personas y negocios, desde amateurs a grandes compañías como IBM y Novell, desarrollan y distribuyen software bajo los términos de la GPL.

Pero qué software utilizar es una elección del usuario, no de la gente que lo programa y lo vende. Es fácil perder nuestra libertad al pulsar el botón “Aceptar” después de pasar rápidamente treinta páginas de restricciones. O podemos pulsar “Cancelar”, y buscar algún programa libre que haga lo que necesitamos.

Debemos pulsar “Cancelar” siempre que podamos, porque es la opción más ética. Hacerlo significa que tendremos que aprender a utilizar un nuevo programa, y algunas veces la alternativa libre quizás no funcione tan bien; la alternativa ética no siempre es la alternativa fácil.

¡Participa!

Puedes comenzar por prometerse a tí misma que buscará alternativas libres a los programas que utiliza. El Free Software Directory (http://directory.fsf.org) contiene una gran lista de programas, más de 5000.

Hay muchas otras formas en las que la gente (con o sin conocimientos de programación) puede ayudar a que el movimiento del software libre continue siendo un éxito. Vea las páginas web de la Free Software Foundation (http://www.fsf.org/es) y el proyecto GNU (http://www.gnu.org) para averiguar cómo.

Y por supuesto, ¡ haga copias de este documento y compártalo con otros!

Reconocimientos de autoría:

Tomado de la página web de la “Free Software Foundation” en asociación estratégica con el proyecto GNU.

 Copyright c© 2000, 2001, 2005, 2006 Free Software Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110, USA.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Humor: si no buscas al software libre…

Enlaces consultados:

Enlaces web relacionados (en inglés):

Git logo.

Git tutorial

Por medio de Twitter uno se entera de muchas cosas, dejando a un lado el maligno cotilleo, claro está. Una de esas cosas buenas es conocer que existe “Pro Git Book” el cual fue escrito por Scott Chacon (empleado hoy en día en la empresa GitHub) y Ben Straub (quien ahora trabaja en la empresa Zendesk) sobre el famoso sistema de administración (de versiones) de código fuente que tal como su nombre pomposo indica, es un software orientado a mantener en orden nuestros “apuntes” (ea , que estamos en el siglo XXI y ya debemos dejar de hacer esto, que yo también lo hacía, perdonadme Romero):

Git tutorial.

Introducción.

Esta entrada tiene como objetivo la instalación de Git en nuestros ordenadores y su aprendizaje básico teniendo como guía de escritura al famoso libro “Pro Git” 2° edición, osea un Git tutorial en toda regla. Luego veremos las opciones avanzadas, de las cuales muchos prescindiréis, especialmente la instalación de nuestros propio servidores de repositorios, pero no os quiero abrumar con más detalles, entremos en materia y recordad que si queréis ir más lentamente descargad y leed el libro (está escrito bajo licencia GNU General Public License) o mejor aún, compradlo y colaborad con los autores y además contribuid a otra buena causa.

Mini tutorial Git y chuleta de comandos.

Para aquellos de vosotros que os pasáis apurados todo el tiempo os recomiendo un resumen realizado por “El Baúl del Programador” el cual contiene, basado en el libro ProGit, los comandos básicos agrupados por similaridad de funciones junto con ejemplos prácticos de los escenarios que regularmente se nos presentan, he aquí el enlace al artículo y la cuenta en Twitter por si queréis seguirlos:

Brevísima historia de Git.

Git logo.
Git logo.

Ya en 1998 el equipo de desarrollo del sistema operativo GNU/Linux, encabezado por Linus Torvalds, observó lo difícil que era llevar bajo control el crecimiento (debido a que cada día se unían más entusiastas a la causa del software libre) del novedoso proyecto. Tanto es así que en 2002 se decide encomendar a la empresa BitMover -recién fundada dos años antes- la tarea de mantener “en custodia”, por medio de su producto estrella BitKeeper, las valiosísimas líneas de código del mayor emprendimiento hecho sobre software libre hasta la fecha. Al padre Richard Stallman por supuesto que no le gustó para nada este software “semi-privativo” (el adjetivo es inventado por nosotros, si es que no existía o existe ese concepto) ya que, si a ver vamos, era sin valor monetario para la comunidad en desarrollo a costa de comprometerse a no utilizar ninguna otro software para control de versiones -privativo o libre- mientras utilizaran BitKeeper e incluso un años más allá después de haberlo dejado de usar (menos mal tenían acceso al código fuente de BitKeeper). Tampoco podían participar en el desarrollo de algún software para control de versiones nuevo y como guinda para el pastel debían ser informados de manera automática de los cambios al GNU/Linux (con ayuda de los propios servidores de BitMover).

¿Qué es software libre? CTL2016 explica.
¿Qué es software libre? CTL2016 explica.

A muchos programadores esto no fue para nada de su agrado, una de las principales características de la filosofía del conocimiento abierto es precisamente la LIBERTAD. A pesar que el propio Linus Torvalds hizo llamados públicos y notorios a quien tuviera una alternativa totalmente bajo licencia GNU, nadie respondió ni ofreció ninguna herramienta de hecho, hay que tener cojones para desarrollar software para creadores de software: estaís en el ojo del huracán todo el tiempo. Mientras tanto intentaron edulcorar la agria relación con parches que hicieran compatible los servidores de BitMover con “Concurrent Version Systems” y “Subversion” pero el terrible cotilleo por internet que menciono al principio de este artículo echó por la borda cualquier intento de progreso.

En el año de 2005 la empresa BitMover amagó con empezar a cobrar por la licencia de uso pero Andrew Tridgell (padre también del rsync y Samba Server) ya estaba “prevenido al bate”: en aquella época él era empleado de “Open Source Development Labs” (OSDL) -predecesora de lo que hoy es “The Linux Foundation“- y tenía un as bajo la manga: “SourcePuller”.

Como mencionamos Andrew Tridgell fue padre del software Samba, el cual es basado -y ampliado- en el protocolo de recursos compartidos de la empresa Microsoft bajo su sistema operativo Windows –empresa que, por demás, nunca hizo queja alguna sobre ese invento hecho bajo software libre- y aplicó la misma técnica sobre el BitKeeper e inventó el “SourcePuller”. Pero se extralimitó ya que contrato leonino impuesto por BitMover sobre OSDL prohibía expresamente cualquier mejora (hasta el propio Linus Torvalds quedó salpicado en el asunto, al ser empleado también de OSDL tampoco podía participar en ningún desarrollo de software de control de versiones). Es de nuestra opinión que BitMover ya estaba ansiosa de obtener dividendos sobre su inversión y vieron en el trabajo de Andrew la excusa perfecta -violación de contrato- para cobrar por la licencia de uso y no al contrario -hay una extensa discusión sobre el tema (ver abajo enlaces de las fuentes) pero escapa de este humilde tutorial-.

Es por tanto que de todo lo anterior nace Git en el año 2005, y evidentemente que Linus Torvalds fue el titiritero detrás de todo el asunto: una vez le fue consultado sobre el origen del nombre “Git” a lo cual respondió (recordad que él es finlandés y por cercanía geográfica aprendió el inglés británico antes de ser ciudadano estadounidense; las fuentes coloreadas son mis observaciones):

  • Una combinación de tres letras impronunciables y que no son ningún comando en Unix. El hecho que provenga de una mala pronunciación de “get” (obtener) es irrelevante (deriva del inglés antiguo; “get” se pronuncia rápidamente mientras que “git” se alarga, es casi lo mismo pero a diferentes velocidades).
  • Estúpido. Vil y despreciable. Sencillo. Escoja usted del diccionario de jergas (de hecho en el inglés antiguo significaba “bastardo”).
  • “Información de Seguimiento Global”: si usted tiene un buen estado de ánimo, y realmente funciona para usted. Los ángeles cantan, y un resplandor llena de repente su habitación.
  • “Maldito camión cargado de mierda”: cuando se echa a perder (por las iniciales en idioma inglés “Goddamn Idiotic Truckload of shit”).

Como vemos el señor Linus Torvalds es lo que nosotros por acá llamamos una verdadera chupeta de ajo. Es por ello que tomamos aire y decimos a todo pulmón “VERGACIÓN LINUS ERES UNA PERSONA REALMENTE JODIDA” ja ja ja. 😉

Para que podáis entender el panorama infromático al momento del nacimiento de Git, en este mensaje de Linus Torvalds a al comunidad, fechado el miércoles 6 de abril de 2005 (en idioma inglés) están los detalles del punto de inflexión en la herramienta para desarrollar el kernel del GNU/Linux -y fue para mejorar, indudablemente-.

A partir del nacimiento de Git, Linus Torvalds designó al japonés e ingeniero en software Junio C. Hamano (濱野 純) el mantenimiento y desarrollo de Git. Hamano, quien es empleado de la empresa Google llevaba un blog hasta 2011 donde regularmente informaba amablemente al público en general sobre su trabajo pero luego decidió, para su paz mental, mudarlo al principal rival de WordPress: Blogspot (empresa comprada por Google en el año 2003).

El útimo anuncio en dicho blog describe el lanzamiento de la versión 2.5 de Git en julio de 2015 aunque a la fecha de escribir estas lineas están trabajando en la versión 2.8.

This is Git. It tracks collaborative work on projects on through a beautiful distributed graph theory tree model.
This is Git. It tracks collaborative work on projects on through a beautiful distributed graph theory tree model.

De la propia página personal de Hamano observamos una referencia a la anterior imagen, lo cual es una clara señal de que el hombre se toma las cosas con mucha, muchísima calma, a diferencia mayúscula de su jefe Linus Torvalds.

A la fecha se espera la llegada de la versión 2.9.1, según reseña la página web tutorial de LXALinuxAdictos y os adelanto, si queréis leer el reportaje, que allí expresan una muy resumida historia del Git, directo y al grano. Es bueno el artículo, pero nosotros aquí, como véis, somos de muchas más palabras 😉 .

 

Por otra parte, el protocolo Git se ha extendido a nivel mundial, tanto es así que el libro que vamos a estudiar ¡ha sido traducido al idioma coreano!

Presente y futuro de Git.

El primer caso de éxito para el protocolo y programa Git -y que ya lo hemos nombrado y referenciado bastante- es el caso de GitHub. Es tanto así que en el libro por el cual nos guiamos para esta enrada tiene su capítulo aparte y dedicado. La cuestión es simple: ellos dan alojamiento a proyectos cuyo control de versiones es manejado por medio de Git -por supuesto y lógico- y dicho alojamiento es libre y gratuito mientras sea público, allí está la “pega” del asunto. Si vosotros queréis llevar un proyecto privado y en azul celeste, pues que vuestro dinero os cueste, y por eso cobra y vive GitHub. Claro hay otros privilegios adicionales y se decide comprar alojamiento privado: total confidencialidad del proyecto, respaldos, páginas web, etcétera y cobran de acuerdo al tamaño del proyecto, esto es así porque nadie trabaja gratis, todos tenemos nuestros gastos.

Pero el asunto del GitHub va mucho más allá del ámbito de la programación. Desde escribir un libro (como el que comenzaremos a estudiar aquí) y gestionar su traducción a otros idiomas hasta leyes, control de planificación de ciudades o gente que programa drones, hay de todo un poco. Si queréis ahondar en los usos actuales (y tal vez veaís el futuro) os recomiendo leer el excelente reportaje en este enlace, gracias al sitio web “El Baúl del Programador”.

Instalación de Git en Ubuntu.

Superada la jocosa personalidad del padre de Linux, vamos a la parte seria del artículo: Git tutorial. Estamos aquí por instalar en nuestro ordenador con Ubuntu el programa Git. Esto vale también para la mayoría de distribuciones basadas en Debian. Abrimos una ventana terminal (si necesitan ayuda con esto pueden leer nuestro tutorial sobre bash) y tecleamos lo siguiente:

sudo apt-get install git-all

Introducimos nuestra contraseña para ganar acceso como usuario maestro “root” y podremos observar algo como esto (si desea haga click en la imagen para ampliarla):

sudo apt-get install git-all
sudo apt-get install git-all

Y listo, eso es todo, luego de descargar aproximadamente 30 megabytes y ocupar 139 megabytes en disco duro a la final se instalará un “gitdaemon”, es decir un servicio que estará siempre al pendiente de nuestro proyectos. Más adelante, en la sección avanzada, veremos y ahondaremos en este punto.

Características de Git.

Nuestro primer proyecto con Git.

Ramificaciones (avanzado de aquí en adelante).

Git en nuestro(s) propio(s) servidore(s).

Git en entornos distribuidos.

GitHub.

Herramientas en Git.

Personalización de Git.

Git en otros sistema de control de versiones.

Asuntos internos en Git.

Git en otros medioambientes.

Incrustando Git en tus aplicaciones por medio de la línea de comandos.

Humor.

 

Fuentes consultadas.

Artículos en idioma castellano:

Artículos en idioma inglés:

Enlaces mediante Youtube (en inglés):

Enlaces mediante Twitter (en inglés):

https://elbauldelprogramador.com/21-aliases-utiles-para-git/
https://elbauldelprogramador.com/como-usar-los-filtros-smudge-y-clean-en-git/
https://elbauldelprogramador.com/sincronizacin-de-proyectos-en-git-con-hooks-ganchos/
https://scotch.io/tutorials/contributing-to-open-source-software-with-git

VirtualBox logo

VirtualBox puerto paralelo.

VirtualBox puerto paralelo.
VirtualBox puerto paralelo.

VirtualBox puerto paralelo.

Introducción.

Con VirtualBox podemos crear máquinas virtual con diferentes sistemas operativos lo cual nos permite experimentar con las nuevas versiones que publiquen los desarrolladores de software. Mejor aún, también nos permite utilizar sistemas operativos antiguos para ciertos programas “obsoletos” debido precisamente a esa evolución de los sistemas operativos; el caso que me ocupa en esta oportunidad es simplemente un software de 16 bits que ya no corre de manera alguna en 64 bits.

De manera predeterminada al crear una máquina virtual se incluyen los puertos seriales (para las impresoras fiscales del SENIAT, por ejemplo) y uno marca casillas de verificación de 1 ó 2 puertos seriales (hay visores de precios fiscal que NO conectan a la impresora fiscal, de allí el uso de dos puertos seriales).

La impresora que intento utilizar en una computadora moderna con procesador de 64 bits era utilizada para imprimir facturas con la Providencia N° 0591 SENIAT y ahora usamos para imprimir órdenes de movilización del depósito de mercancías hacia el área de despacho (la Providencia mencionada arriba quedó derogada con la Providencia Seniat N° 071 y 078 SENIAT donde obligan a utilizar impresoras fiscales con puerto serial para ventas masivas -y permite facturas sin nombre de contribuyente, sin derecho a crédito fiscal y también con RIF y razón fiscal, dos únicos datos exigidos, para tener derecho a crédito fiscal-).

VirtualBox puertos seriales

Reconocimiento a Alexander Eichner.

Importante mencionar que VirtualBox ofrece soporte a los puertos paralelos desde el año 2007 gracias al trabajo del sr. Alexander Eichner así que aquí el rendimos un justo reconocimiento a su labor.

Antecedentes históricos.

El cable que comunica a la impresora es tipo Centronics , muy popular desde 1970 hasta 2000, cuando las impresoras con conexión USB comenzaron a fabricarse de manera masiva. La lucha en cuanto a hardware se refiere para las impresoras es, si se quiere, leve comparado con la lucha que obligó a Richard Stallman a crear el software libre. Por supuesto que hoy en día existen cables adaptadores de USB a puerto paralelo pero ¿para qué gastar más dinero si estamos completos en hardware? Aquí muestro la configuración del BIOS para dicha máquina real (“anfitrón” en la jerga de VirtualBox):

PhoeniX BIOS CMOS
PhoeniX BIOS CMOS

La tarjeta madre tiene su puerto paralelo incorporado y al exterior (ojo hay otras tarjetas madres que sólo tienen el conector interno y uno debe comprar un cable conector hasta el exterior del case) ya lo que debemos es echar mano de nuestro ingenio para alcanzar el objetivo deseado.

Línea de comandos: la orden VBoxManage.

Revisando la documentación que acompaña a VirtualBox, un archivo pdf en inglés bastante largo por cierto, anuncian el uso avanzado con el comando VBoxManage que nos permite modificar nuestras máquinas virtuales que estén “apagadas”:

VboxManage modifyvm option lptmode y lpt
VBoxManage modifyvm (el resaltado es nuestro).

Así que ejecuto las siguientes órdenes (con mis valores correspondientes a la máquina real) que ejecuto sin problema alguno:

VBoxManage modifyvm WinXP --lptmode2 "/dev/parport0"
VBoxManage modifyvm WinXP --lpt1 0x378 7

Línea de comandos: la orden rmmod.

El problema ocurre al tratar de ejecutar dicha máquina virtual, esencialmente sucede que el puerto paralelo está ocupado por algún proceso y ésa es la pega del asunto.

Error puerto paralelo ocupado.
Error puerto paralelo ocupado.

Imaginaba yo que quien ocupa el puerto paralelo es algúna aplicación, nunca pensé que era el propio sistema operativo a nivel de kernel. Cuando yo comienzo a hablar de kernels -de cualquier cosa- me miran de arriba a abajo y me dicen que soy un pobre loquito pero investigando y sin dejar de rendirme consigo que el comando que desocupa el puerto paralelo es el siguiente -que debe ser ejecutado justo antes de lanzar la máquina virtual-:

sudo rmmod lp

El comando sudo nos permite ejecutar tareas de Administrador o raíz -root- ya que necesitamos a rmmod, un simple programa para remover un módulo del kernel de Linux (“Simple program to remove a module from the Linux Kernel”). Dicho comando rmmod ya el sr. Alexander Eichner bien lo especifica en su mensaje de lista de correo a los desarrolladores de VirtualBox . Cualquier avezado lector que quiera ayudarme a establecer de manera permanente, osea, en cada arranque, la remoción del módulo lp agradezco me comente por vía de mi cuenta Twitter, mientras tanto yo utilizo este simple proceso por lotes -script bash- antes de lanzar la máquina virtual:

#!/usr/bin/sh
sudo rmmod lp
VBoxManage startvm "WinXP"
exit

Actualizado el día domingo 03 de julio de 2016.

Leyendo los excelentes tutoriales que anuncian por la cuenta Twitter de Linode.com observo que se puede agregar al usuario al grupo de “sudoers” con la consabida brecha en la seguridad que significa elevarle los privilegios a un usuario. No recomiendo esto, pero bueno, el software libre nos permite hacer todo lo que necesitemos -o queramos-, vaya hasta ustedes el comando necesario (conectado como usuario raíz root y sustituyan usuario_ejemplo con el nombre real del usuario a añadir):

add user usuario_ejemplo adduser example_user sudo

La primera línea adiciona al usuario en sí, la segunda lo agrega al grupo sudo con derechos administrativos.


Fuentes consultadas:

Enlaces en idioma inglés:

<Eso es todo, por ahora>.