Web descentralizada para todos

Ya estuvimos hablando de la descentralización de la mensajería instantánea con XMPP. Hoy me alegro de poder decir que cada vez es más fácil tener tu propio rincón privado de Internet. Os presento 3 distribuciones a tener en cuenta:

FreedomBox

Un subproyecto de Debian, el más antiguo de todos, y curiosamente el que más lentamente está avanzando.

Buenas intenciones, aunque lamentablemente aún no hay mucho que usar.

arkOS

Es el que más está llamando la atención últimamente. Derivado de Arch, respaldado por The CitizenWeb Project, y diseñado para instalar en Raspberry Pi.

Genesis, la interfaz de administración de arkOS

Genesis, la interfaz de administración de arkOS

YunoHost

Mi favorita, y a día de hoy la más usable.

Explicación del nombre de YunoHost

Explicación del nombre de YunoHost

Está basada en Debian, así que lo puedes instalar prácticamente donde quieras: Máquina virtual, VPS, Cubieboard, Raspberry Pi, Docker, etc.

En lugar de poner una foto de la impecable interfaz, te invito a que pruebes la demo que hay en su web.

Fish Shell

Si bien siempre me ha encantado Bash, hay que reconocer que Fish es increíble:

No te tienes que complicar configurando absolutamente nada, por defecto ya viene coloreando tu terminal, auto completando tus comandos y permitiendo llevar todo esto de las configuraciones de manera muy simple e intuitiva mediante una interfaz web (local, claro está) en donde tendrás al alcance absolutamente todo lo que quieras modificar; desde el historial de comandos, hasta las funciones a ejecutarse por defecto, colores, autocompletado inteligente y/o personalizado, ¿Ya les dije que el auto completado es inteligente y simplemente aprende tus comandos? ¡No tienes que decirle que haga nada, él solito aprende!

Nano, Desde Linux.

Instalación

# yum install fish
$ chsh --shell $(which fish)

Y ahora reinicia la sesión.

Extras

Se llaman Oh My Fish. Instalación:

$ curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish

Compatible con Bash

Recuerda que, si usas el shebang correcto (#!/usr/bin/bash o #!/usr/bin/fish) al principio de cada script, no habrá problemas de compatibilidad entre shells.

El estándar ODF se hace obligatorio en Reino Unido

El titular ya lo explica todo. Esto obligará a la competencia a dar soporte completo al formato ODF que ya hace tiempo fue declarado estándar internacional, y para el que LibreOffice viene dando soporte desde hace años.

Me encantan los estándares abiertos, no sé si lo había mencionado…

Nota de prensa.

Cómo limpiar los restos de Docker

Normalmente, cuando descubres Docker, te pones a bajar y probar imágenes como loco, a construir algunas que no funcionan bien… Al final se te queda una caché de demasiados GBi sin usar.

Limpiar los contenedores detenidos

$ docker rm $(docker ps --all --quiet)

En realidad, le hemos dicho que los borre todos, pero los que estén en marcha no los borrará salvo que le hubiéramos pasado la opción --force.

Limpiar las imágenes sin etiquetar

docker rmi $(docker images --filter dangling=true --quiet)

Mercurial y Git pueden ser amigos

Si eres como yo, que me gusta Mercurial por encima de todos los demás VCS que he probado, pero te ves obligado a trabajar con Git muchas veces porque, aceptémoslo, es el más popular de todos, hay una herramienta que te hará feliz: Hg-Git.

Permite trabajar con Mercurial (y TortoiseHg, claro está) contra repositorios Git de forma casi transparente.

Las ramas locales de Git se traducen a bookmarks de Mercurial (que, por cierto, no conocía, y es un método fantástico para trabajar), y las ramas remotas de Git se traducen a etiquetas locales de Mercurial (bueno, algo parecido).

A la hora de hacer un clone, push o pull, debes indicar que se trata de un repositorio Git usando los protocolos git+https:// o git+ssh:// (también tienes git+file://, pero es innecesario ya que se detecta automáticamente), y el plugin se encargará del resto.

Debido a algún bug actual, puede que clonar un repositorio remoto te sea muy lento. Para esos casos, te recomiendo clonar a través de Git, y luego traspasarlo a Mercurial desde el clon local, que irá bastante rápido.

Por supuesto, lo mejor de todo es conocer y usar ambos sistemas, pero llevo un tiempo trabajando con esto y va francamente bien.

Cómo migrar un repositorio de Bazaar a Git

Recientemente hablábamos de cómo escoger un control de versiones. Suponiendo que hayas escogido Bazaar y luego hayas querido cambiar a Git, esto te será útil:

# yum -y install git bzr-fastimport
$ git init nuevo-repo.git
$ cd nuevo-repo.git
$ bzr fast-export ../viejo-repo.bzr | git fast-import

Por supuesto, si usas otra distro, cambia la primera línea por su instalador de paquetes correspondiente.

Cómo lograr que alguien te diga que el teclado y el ratón son mejores para jugar que un mando

Fácil: pregunta en un foro de Steam cómo arreglar un problema que tienes para configurar el mando en cualquier juego.

Videoconferencias estilo Hangouts y Skype, pero más fácil

Pruébalo: appear.in. Es tan simple que hace complicada cualquier alternativa, y encima su política de privacidad es muy amigable. De hecho, no necesitas ni abrirte una cuenta.

Su funcionamiento es:

  1. Eliges un nombre para tu sala, por ejemplo: recallstack.
  2. Entras en esa sala a través del link: appear.in/recallstack.
  3. Le mandas ese mismo link a los demás que quieras que entren en esa sala.
  4. Si quieres evitar que alguien adivine el nombre de la sala y os vea, puedes bloquearla, en cuyo caso quien quiera entrar tendrá que ser primero aprobado por los miembros.

Otra buena alternativa es Jitsi Meet, con la ventaja de ser libre, y con la desventaja de que aún no funciona en Firefox.

Por supuesto, si prefieres usar XMPP o SIPJitsi (versión escritorio) es una gran alternativa.

El problema de tener demasiadas redes sociales

Antiguamente, con una cuenta de e-mail podías hablar con el mundo entero.

Hoy necesitas cuenta en Skype, Google Hangouts, Facebook, Vine, WhatsApp, Twitter…

Movim

Muy a menudo me encuentro en la situación de querer enviar un mensaje a un amigo… ¡y no saber cómo! ¡Y eso que tengo el móvil lleno de programas para redes sociales y mensajería!…

Sobredosis de redes sociales

Sobredosis de redes sociales

¿Te pasa lo mismo? Entonces analicemos la causa de esta situación y la solución:

¿Por qué hay redes sociales?

Básicamente, porque cubren (o se aprovechan de) nuestra necesidad de estar en contacto con otras personas (o de alimentar nuestro ego).

Además, sirven para compartir cosas que nos gustan de forma no intrusiva. ¿Recuerdas que antaño recibías montones de PowerPoints de gatitos? Ahora aparecen en las redes sociales, un lugar más apropiado para ellos.

Pero… ¿por qué hay tantas redes sociales?

Por dos motivos: son monolíticas y usan protocolos privativos. ¿Te suena a chino? Me explico:

1. Son monolíticas

Una red monolítica, o centralizada, es la que no te permite comunicarte con el exterior.

Supongamos que Lechuga quiere contactar con Manzana:

Red social monolítica

Red social monolítica

Lechuga tiene que:

  1. Averiguar en qué red/es social/es tiene abierta su/s cuenta/s Manzana.
  2. Posiblemente, instalar un programa en su teléfono (o PC, tablet, etc.).
  3. Abrir una cuenta en dicha red social (previa aceptación de su presumiblemente abusiva política de privacidad).
  4. Averiguar cómo escribirle un mensaje a Manzana a través de ahí.
  5. Mandar el mensaje.

Lo dicho: un soberano lío.

2. Usan protocolos privativos

Un protocolo es una manera de comunicarse. Si es privativo, solo el inventor sabe cómo funciona; por lo tanto, solo él puede usarlo.

¿De verdad es tan importante que se usen protocolos estándares y abiertos?

Sí. Es imprescindible.

Imagínate un mundo en el que no existiera el USB. Pues algo parecido es lo que pasa ahora mismo con la famosa web 2.0. Sencillamente, si todas las redes sociales usaran el mismo protocolo, podrían comunicarse entre sí, y con una sola cuenta podrías hablar con todo el mundo… de nuevo.

Y si eso es tan sencillo…

¿Por qué las grandes redes sociales no corrigen esos problemas?

Porque entonces esas empresas dejarían de tener tantísima información, y…

La información es poder.

— Francis Bacon

Con el modelo monolítico, cuanta más gente usa mi red social, más gente quiere entrar en mi red social para hablar con esa otra gente, y entonces más, y más… ¡y así hasta el infinito!¿Qué se puede hacer con tu información? ¿Cuánto dinero vale? No lo sé, calcúlalo tú. Pero piensa que en esa información están:

  • Tus gustos, inclinaciones políticas, religiosas, etc.
  • Qué le escribes a tus amigos.
  • Las coordenadas exactas de tu ubicación en cada momento de tu vida (si tienes instalada su aplicación en el teléfono).
  • Quiénes son tus amistades.

Pero bueno, dejemos al lado las teorías conspiratorias conspiraciones y centrémonos en la solución.

¿Cuál es la solución?

Una red social que corrija los dos puntos en que fallan las actuales: debe ser federada (o descentralizada) y usar protocolos abiertos y estándar.

Volvemos al ejemplo del e-mail:

Red social federada

Red social federada

En el diagrama queda claro que ni a Lechuga ni a Manzana les importa lo más mínimo dónde tenga el otro su cuenta. Simplemente con saber la dirección de e-mail, se pueden comunicar, que es lo que les interesa.

De hecho, tampoco les importa qué programa usen para ver el correo: Outlook, Thunderbird, algún programa de webmail… Es irrelevante porque todos estos programas hablan los mismos protocolos, que son estándares y abiertos.

Pero, obviamente, el e-mail se nos queda corto para lo que queremos en una red social. Sin embargo, hay un protocolo similar que sí se puede usar:

XMPP, ese viejo amigo que no sabías ni que existía

XMPP (o Jabber) es un protocolo abierto que existe desde 1999, (oficialmente estandarizado en 2000) federado, y que solventa todos esos problemas de un plumazo.

Seguramente lo utilices a diario sin siquiera saberlo, ya que muchas redes sociales lo utilizan internamente (Whatsapp (ligeramente modificado), Tuenti, etc.) o permiten el acceso a través de él (Facebook, Google Hangouts, etc.), aunque suelen bloquearle la federación.

El protocolo es muy extensible, y cuando alguien propone una buena extensión, esta también acaba estandarizándose. Tanto es así que hasta se ha convertido en el favorito para el Internet de las Cosas, pero eso ya lo explicaré otro día.

Habiendo pasado tantos años, existen docenas de clientes para todos los sistemas operativos actuales. Ha madurado mucho, y es actualmente uno de los sistemas más seguros que existen cuando se utiliza en modo OTR.

Cómo empezar a usar XMPP

Para empezar, dejaré claro que un pod es un servidor en el cual puedes hacerte una cuenta, conectado a toda la red XMPP.

Mensajería básica

En su versión más básica, permite tener una lista de contactos, ver su estado de presencia, y chatear con ellos. Si no necesitas más, puedes usar cualquier pod público para empezar.

Redes sociales basadas en XMPP

Hoy en día ya tiene extensiones para que pueda usarse como red social básica, con características tales como:

  • Multiconferencias.
  • Chats de audio y/o vídeo.
  • Microblog.
  • Compartición de archivos.
  • Comentarios.
  • Publicar tu ubicación, estado de ánimo, etc.

Actualmente, hay tres proyectos que destacan bastante:

Jappix

Recomiendo empezar con esta, porque es bastante estable. Está enfocado a ser un chat con extensiones de red social. En su última versión incluye videoconferencias multiusuario.

Ofrece integración con Jappix Me, que sirve para crearte un blog personal basada en el perfil público de tu cuenta XMPP.

Movim

Todavía no es muy estable, pero ya es usable. El proyecto está enfocado más en ser una red social con chat integrado. Tiene un sistema de control de la privacidad de tus publicaciones más exhaustivo, pero sencillo. Compatible con Jappix, y también incluye un blog para tus publicaciones públicas.

Buddycloud

Es quizá el más ambicioso de los tres proyectos, ya que consiste en crear todas las extensiones necesarias para hacer de XMPP la completa red social que debería ser. La contrapartida es que, a diferencia de Movim y Jappix, se basa en extensiones que aún no están estandarizadas (aunque están en proceso) y por tanto no es compatible al 100% con las demás redes XMPP.

Programas para usar XMPP

Para chatear, también te dejo algunas recomendaciones:

  • Windows, Mac OS X, Linux: Jitsi.
  • Android:
    • Conversations, o su derivado FJS Messenger, por ser los más intuitivos.
    • El más completo parece ser Jitsi, pero aún está en desarrollo y no es demasiado intuitivo. Permite hacer videollamadas.
  • iOS: No lo he probado, pero aquí tienes una lista. Se aceptan sugerencias.
  • Firefox OS: Loqui.
  • Navegador web: Si usas Jappix o Movim, puedes chatear desde ahí. Si no, Converse.js parece lo más sencillo.

Corre la voz

Los programas están ahí, el protocolo está ahí. Lo único que les falta es publicidad y usuarios, así que la próxima vez que alguien se te queje de sobredosis de redes sociales, explícaselo y ayúdale a abrirse una cuenta XMPP, la última cuenta que tendrá que abrirse en su vida. Así ayudarás a tener una mejor web.

Cómo evitar que Firefox abra todo con Gedit

Un problema muy habitual al usar Firefox en Linux, sobre todo si usas GNOME, es que descargas un fichero de cualquier tipo, y siempre quiere abrirlo con Gedit.

Solución

  1. Crea el fichero ~/.local/share/applications/xdg-open.desktop con el siguiente contenido:
    [Desktop Entry]
    Name=XDG Open
    Comment=Open with default app
    Comment[es]=Abrir con la aplicación por defecto
    Exec=xdg-open
    Terminal=false
    Type=Application
  2. Edita el fichero ~/.local/share/applications/mimeapps.list.
  3. Busca la línea que pone application/octet-stream=gedit.desktop; y cámbiala por application/octet-stream=xdg-open.desktop;.

Explicación

Firefox no detectaba correctamente el tipo de fichero. Realmente, esto es problema del sitio web del que lo descargas, que no indica correctamente su Content-Type (MIME Type).

Como consecuencia, Firefox, en lugar de usar algún método inteligente para averiguar el contenido del fichero, usa el programa que use tu sistema operativo para abrir ficheros desconocidos, o sea el que esté indicado para el MIME application/octet-stream (fichero binario genérico). En GNOME, dicha aplicación es Gedit. Como resultado, da la impresión de que Firefox quiere abrir todo con Gedit.

Sin embargo, el comando xdg-open es un programa que abre cualquier fichero intentando detectar automáticamente su MIME antes de abrirlo. Al aplicar la solución, forzamos al sistema a tratar de averiguar el MIME cuando no se le dice explícitamente, lo cual funcionará bien en la mayoría de los casos.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.