Desencadenando el GitKraken

En el pasado he hablado de Git para gestionar las versiones del código, pero hoy voy a volver al tema para hablar del cliente que estoy usando de forma regular: GitKraken. La interfaz gráfica de la casa siempre dejó que desear y he paseado por unas cuantas, habiendo estado durante mucho tiempo con SmartGit, pero recientemente me dió por probar esta no solo porque había leído buenas referencias, sino porque también me hizo gracia el nombre.

Desencadenando el GitKraken

Las ventajas de usar un cliente gráfico son obvias (aunque obviamente la línea de comandos consume menos recursos y una vez se tiene el vicio es rapidísima):

  • es mas fácil de usar, pues no hay que memorizar comandos, además de que ver el resultado en una imagen es mas sencillo de procesar, pues “una imagen vale mas que 1000 palabras”.
  • la posibilidad de condensar procesos en un par de clicks, ahorrándose muchas líneas complicadas.
  • la posibilidad de tener cómodamente almacenadas las credenciales.

Cada uno tiene sus gustos, pero para mí este cliente supera a SourceTree (que es el referente clásico) por su claridad de visualización de las ramas, lo que lo pone a la cabeza de todos los que usado hasta ahora en este terreno… y además es multiplataforma, asi que funcionalmente hay poco mas que se pueda pedir… La única lástima es que aunque su base sea de código abierto, no comparte esa filosofía.

La decadencia de Sourceforge

Para los que nos gusta el software libre, SourceForge siempre ha sido una lugar de referencia. Una enorme cantidad de proyectos se almacenaban y mantenían allí, de forma que siempre contó con una buena comunidad de programadores. Sin embargo, algo ha cambiado en los últimos años. Es cierto que GiHub se ha convertido en el nuevo lugar de referencia de los grandes proyectos colaborativos, y BitBucket responde muy bien para proyectos pequeños, pero tener allí la comunidad siempre daba una ventaja competitiva… así que algo gordo tuvo que pasar, y ese algo es que SourceForge jugó con principios básicos del software libre.

La decadencia de Sourceforge

Cuando almacenas un proyecto en un repositorio, lo pones a disposición de la comunidad diversos formatos, y ofreces la posibilidad de bajar fragmentos individuales de código o documentación, compartir tus modificaciones, y puede que se incluyan versiones ya compiladas de la aplicación preparadas para la instalación por la propia plataforma, cosa que depende del lenguaje en el que se hayan codificado estas. Y justo ahí es donde esta gente metió la pata: si ya molestaban los iconos de descarga que no descargaban la aplicación sino otras cosas (proporcionados “generosamente” por Google Adsense en un intento de monetizar el sitio), repentinamente los instaladores de SourceForge comenzaron a aparecer modificados para incluirse la instalación de programas de tercera partes no solicitados (que puede ir desde el omnipresente Google Chrome a la insufrible barra de Ask en el navegador) por el usuario, sin consentimiento, o siquiera conocimiento, de los programadores que crearon el código de lo realmente buscabas instalar. Esto que acabo de describir no es algo que pasase con un proyecto pequeño, sino con GIMP (programa de manipulación de imagen de software libre, que para quien no esté muy puesto, es un Photoshop de andar por casa francamente icónico), Nmap (programa para auditar redes) y VLC (famosísimo y maravilloso reproductor vídeo).

Evidentemente esta situación les ha hecho perder la confianza de los programadores, por lo que ya muchos están preparando su salida. Los primeros son evidentemente los afectados por esta manipulación, pero otros muchos mas van detrás, como por ejemplo WINE. En consecuencia, quienes picamos código recomendamos evitar descargar de SourceForge en el futuro, porque a saber qué mas le habrán añadido en un intento de sacar tajada del trabajo ajeno.

Repositorios y control de versiones

Repositorios:

Un repositorio es un depósito donde se almacena información digital, como bases de datos o archivos informáticos. Pueden ser de acceso público o estar protegidos mediante un sistema de  credenciales de identificación. Algunos ejemplos pueden ser:

  • Los depósitos de carácter académico e institucional, que a diferencia de los ordenadores personales o de escritorio, suelen contar con sistemas de respaldo y mantenimiento.
  • Los archivos personales de paquetes (PPA), que son repositorios APT generados con Launchpad, que almacenan programas y actualizaciones de Ubuntu.

Los depósitos se utilizan de forma intensiva en Linux, almacenando, en su mayoría, paquetes de software disponibles para su instalación mediante una aplicación de gestión de paquetes. De esta forma permiten acceder a cientos de aplicaciones para instalarlas y actualizarlas de forma fácil y cómoda. Además, se pueden seleccionar únicamente los repositorios que sean interesantes para un equipo, de forma que el sistema operativo revise únicamente las fuentes que realmente vaya a usar.

Iconos de actualizaciones UNIX
Iconos de actualizaciones UNIX

Control de versiones:

Una versión, revisión o edición de un producto, es el estado en el que se encuentra dicho producto en un momento dado, luego el control de versiones define los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo.

Aunque un sistema de control de versiones puede realizarse de forma manual, se aconseja disponer de herramientas que faciliten esta gestión dando lugar a los llamados sistemas de control de versiones o SVC (System Version Control), para facilitar la administración.

Gestión de versiones mediante repositorios en sistemas UNIX:

Una de las mayores ventajas de los sistemas Unix es la gestión integrada de las aplicaciones. Ya sea mediante la tienda de aplicaciones o “Store” en caso de OSX, iOS y Android, o el gestor de actualizaciones de Linux, hay un proceso del sistema operativo que revisa periódicamente la versión del software instalado, e informa de cuando se puede actualizar tanto el sistema en sí como las aplicaciones instaladas con un solo click. También se puede acceder a esta opción desde el menú raíz del sistema (el icono de la manzana, el de play de Android o en el inicio de Linux).

En Windows esto no es posible: hay que realizar el proceso tedioso de revisar manualmente las aplicaciones una por una, y en la mayoría de los casos descargar la siguiente versión, desinstalar la anterior e instalar la nueva.

Instalando Oracle Java 7 en Ubuntu 12.04

Logotipo de Oracle Java
Logotipo de Oracle Java

Ubuntu 12.04 emplea OpenJDK y el plugin IceTea, su propia implementación libre de Java. Sin embargo, para el correcto uso de algunos programas y plugins, como puede pasar al instalar algunas versiones del IDE Eclipse, necesitaremos la implementación original  de Oracle Java.

El paquete Java se compone de 3 elementos que se instalan juntos para mantener mayor coherencia entre instancias:

  • Java Development Kit (JDK), para desarrolladores.
  • Java Runtime Enviroment (JRE), para usuarios.
  • Java Virtual Machine (JVM), donde se ejecuta el código Java.

Podemos instalar Oracle Java mediante repositorios para que se actualice con facilidad. Para ello debemos acceder a la consola (el atajode teclado  por defecto es Ctrl + Alt + T) e introducir:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer