Vi(m)taminando el editor de texto

Vimlogo

Esta entrada no pretende ser una guía rápida, ni extensiva, ni para novatos, ni para profesionales de VIM. De esas las hay a cientos por la web, basta hacer una búsqueda rápida desde el pato para encontrarlas de todos los tipos. Esta entrada pretende tan sólo compartir una configuración personal que a mi me resulta útil en el día a día y de paso desmitificar el concepto de que configurar VIM es complicado. De hecho, veréis que con la ayuda de unos cuantos plugins mi .vimrc es más espartano que el mismísimo Heracles. Por supuesto, como para tantas otras cosas, el grado de complejidad de la configuración probablemente dependa del uso que penséis hacer del editor, pero se pueden cubrir muchas situaciones de manera óptima con una configuración relativamente sencilla. Mi caso de uso es muy sencillo: necesito un IDE para escribir código en Bash y Perl (para R el magnífico Rstudio no tiene rival; para LaTex afortunadamente existe Lyx) y un editor de textos multiusos.

Veamos cómo hacerlo:

Instalando plugins para VIM

Existen varias maneras de gestionar los plugins en vim. Mi favorita, por su sencillez, es pathogen. Instalarlo es tan sencillo como descargar el script pathogen.vim y copiarlo en el directorio .vim/autostart. Una vez instalado, editamos el archivo .vimrc y añadimos:

execute pathogen#infect

A partir de ahora añadir nuevos plugins para vim es tan sencillo como copiarlos a la ruta .vim/bundle. Por ejemplo, para instalar uno de mis plugins favoritos, vim-perl basta con teclear:

cd .vim/bundle
git clone https://github.com/vim-perl/vim-perl

Por supuesto, existen varias alternativas a para gestionar los plugins en vim:

  1. Vundle
  2. NeoBundle
  3. VimPlug

Vim is (fucking) awesome

Y sino que se lo digan a David Hu , Ben Alpert y Emily Eisenberg, creadores de VimAwesome, fantástica y extensa web con un índice de casi 13000 plugins clasificados por categorías y accesibles mediante un buscador integrado en la propia web. Para cada plugin hay instrucciones de instalación (para pathogen, vundle, neobundle y vimplug), documentación y un enlace directo al
repositorio en Github y/o a vim.org. Una auténtica joya de web: sencilla, funcional y con un diseño impecable.

vimawesome2

Vitaminando Vim

Como os decía al principio de la entrada, mi configuración es bastante sencilla. Gracias a i3, suelo trabajar con varias terminales abiertas de forma bastante cómoda, por lo que no necesito añadir demasiados plugins a mi configuración (ni utilizar un IDE complejo para escribir código). Básicamente trabajo con tres terminales abiertas, a la izquierda Ranger, ocupando la mayor parte de la pantalla Vim, y debajo una terminal para pruebas/debugging.

Los plugins que utilizo son:

(1) [Disclaimer] El uso de este plugin puede causar adicción de acuerdo a su creador 😉

me: Hi everyone, my name is Franco and I’m addicted to colorschemes
everyone else: Hi Franco

Los que no utilizo, pero pueden ser muy útiles cuando editáis código:

Para escribir, nada mejor para mantenerse concentrado que una terminal a pantalla completa y el plugin vim-markdown a cargo de nuestros ficheros markdown:

vim-md

Por último, aquí os dejo el contenido de mi .vimrc, más simple que el mecanismo de un botijo (no llega ni a las 10 líneas):

“Pathogen installation
execute pathogen#infect()

“General settings
syntax on
filetype plugin indent on
set number
set wrap
set nofoldenable

“Colorscheme
colorscheme Monokai

Happy hacking!

 

Donad, malditos, ¡donad!

donate

Si utilizáis software libre en el día a día, puntualmente o incluso si pensáis que no lo habéis utilizado jamás (porque probablemente no sea cierto). Si creéis en la cultura libre y en el desarrollo colaborativo y abierto de ideas. Si defendéis que el acceso a la cultura debe ser universal y no el perverso feudo de multinacionales sin escrúpulos y delincuentes varios. Si queréis mostrar vuestro agradecimiento a los miles de autores que invierten tiempo, esfuerzo e ilusión en compartir su obra bajo licencias libres, por el bien común, porque difundir cultura genera cultura.

Libre no significa gratis. Libre significa que no hay barreras para acceder, modificar o compartir cultura. Sea software, una canción, un libro o una fotografía. Libre en muchos casos significa que el autor deja en vuestras manos que valoréis y recompenséis su obra.

Donad trabajo, donad dinero o criptomoneda pero donad. A vuestro sistema operativo libre favorito, a ese software que os ha sacado de apuros una y mil veces, al músico o escritor que cuelga su trabajo en la red tan pronto ha terminado de editarlo o al bloguero que tanto os ha enseñado (y no, nosotros no aceptamos donaciones, no seáis malpensados :P).

Donad malditos, ¡donad!

 

LinuxBBQ: barbacoa linuxera

Linuxbbq

Legendaria la distro que se han sacado de la manga los creadores de LinuxBBQ. Una Debian SID minimalista que en su edición LinuxBBQ cream cuenta con la friolera de 76 gestores de ventanas distintos incluidos, todo empaquetado en una ISO de unos 500Mb, ideal para llevar en un pendrive o para grabar en uno de esos CDs que ya creías obsoletos ante la avalancha de imágenes de giga y pico que reina entre las distribuciones linuxeras hoy día.

El leit motif de LinuxBBQ no podía ser otro que “Roast your own”: coge el sistema base, añade lo que necesites y genera una iso para compartir con el resto de usuarios. Siguiendo esta filosofía, la distribución cuenta con un número record de más de 100 ediciones diferentes. Sobra decir que el concepto que esconde su nombre hace referencia a la esencia misma del software libre, el espíritu colaborativo que se genera en torno a un interés común (ya sea carnaza, código o cultura :P).

Si estás pensando en dejar de lado al gigante tragarecursos que ocupa tu máquina por una opción más liviana y personalizada no se me ocurre mejor forma de empezar. Aquí tienes una galería con capturas de pantalla de los 76 gestores de ventanas incluidos en LinuxBBQ cream. Y aquí el foro de la distro, donde la gente comparte sus creaciones.

Sino, te aseguro que la estética ochentera de la web merece que al menos te des una vuelta por el sitio.

¡Buen provecho!

 

Happy data privacy day!

lock

Pues resulta que hoy es el día de la privacidad de los datos y yo me entero a través del paripé de los de la G azul y su hashtag. Manda huevos. Sea como sea, aprovechemos la oportunidad para recordar que el derecho a la privacidad es un derecho fundamental e inalienable recogido, entre otros, en la Declaración Universal de los Derechos Humanos:

Nadie será objeto de injerencias arbitrarias en su vida privada, ni su familia, ni cualquier entidad, ni de ataques a su honra o su reputación. Toda persona tiene derecho a la protección de la ley contra tales injerencias o ataques.

O en el artículo 18 de la Constitución Española:

1.- Se garantiza el derecho al honor, a la intimidad personal y familiar y a la propia imagen.

2.- El domicilio es inviolable. Ninguna entrada o registro podrá hacerse en él sin consentimiento del titular o resolución judicial, salvo en caso de flagrante delito.

3.- Se garantiza el secreto de las comunicaciones y, en especial, de las postales, telegráficas y telefónicas, salvo resolución judicial.

4.- La ley limitará el uso de la informática para garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos.

Y que sin embargo nos toca defender con uñas y dientes, ante la insaciable voracidad de las grandes multinacionales, gobiernos y lobbies.

Que no te pillen desprevenido.

 

#SaveTheOpenmailbox

2016-01-16-215032_935x236_scrot

Porque Google te espía y ellos no. Porque es fundamental que haya un servicio alternativo a las grandes corporaciones para preservar nuestro derecho a la privacidad. Porque lo están haciendo mejor que bien y mantener un servicio de esa talla y calidad cuesta dinero.

Porque lo merecen.

(Más info aquí)

 

Aplicaciones ligeras (II): gestiona tus recursos

apps_ligeras_2

Pues al final tarde, pero bueno, más vale tarde que nunca, reza el refranero popular. Ahí van unas cuantas aplicaciones ligeras para empezar el 2016 livianos y con recursos de sobra para emprender tanto como se os pase por la cabeza:

1.Calcurse: Una agenda con calendario en ncurses tremendamente práctica. La única pega es el tema de la sincronización entre distintos dispositivos (móvil, tableta…) , pero podéis apañarlo como enseñan aquí o cron mediante, o de la manera que se os ocurra, al final se trata de exportar/importar calendarios en los intervalos de tiempo que os resulten más útiles.

2.Newsbeuter: Lo descubrí gracias al blog de Joe Di Castro y desde entonces no he dejado de utilizarlo. Un lector de feeds ligero y funcional. De nuevo en ncurses, ¡a darle a la terminal!

3.Nitrogen: Para gestionar fondos de escritorio, eso es todo. Hace una sola cosa, pero la hace bien. Apostaría una espiral a que este ya lo conocíais todos.

4.Slock: Un screenlocker, punto. Para desbloquear, introducid la clave de usuario y no os asustéis si no véis nada en la pantalla, no tiene cuadro de texto. De las suckless tools, garantía de éxito.

5.Gsimplecal: Un sencillo calendario en gtk, útil para consultas rápidas.

Y como huevo de pascua, screenfetch, para imprimir alguna información útil en la terminal acompañada del logo de vuestra distro favorita.

¡Buen provecho!

 

¿Alguien dijo tiling?

pseudotiling_schema
Ya sabéis por entradas anteriores que a pesar de que he sido fiel usuario de Gnome durante muchos años, desde que dio el salto a la rama 3.x he estado dando tumbos entre diversos gestores de ventanas y/o entornos de escritorio. El primero de ellos fue Fluxbox que aún sigue siendo mi floating window manager favorito y sobre el cual publicamos un podcast en su momento. Tras utilizarlo durante un par de años más o menos, cambié mi sobremesa por un portátil y volví a probar con Gnome. Demasiado pesado, demasiado lento, demasiado farragoso por esas épocas (era una de las primeras versiones y estaba hasta arriba de bugs). De ahí, me lié la manta a la cabeza y me metí de lleno al mundo de los tiling window manager. Sí, esos gestores de ventanas que te organizan las ventanas automáticamente aprovechando todo el espacio de pantalla disponible. Las razones principales eran dos, por una parte, necesitaba aprovechar al máximo las muchas veces escasas 14″ de mi portátil; por otra, echaba de menos el alto grado de configurabilidad de Fluxbox.

El primer intento fue con DWM, esa pequeña joya de los chicos de suckless. Me gustaron mucho la sencillez para configurarlo (un sólo archivo en C que compilas cada vez), su infinita ligereza y las opciones para manejar ventanas (los diferentes layouts, el sistema de tags…). Filosofía KISS, escribe software que haga una cosa y que la haga bien. Eso quiere decir que DWM es exclusivamente un gestor de ventanas, tienes que construir todo lo demás a su alrededor, incluso algo tan básico como un systray. Perfecto si tienes el suficiente tiempo libre, pero no era mi caso. Así que tras unos meses de ciberasceta, vuelta a las comodidades de los entornos de escritorio. El elegido esta vez, XFCE. En ese momento, en la versión cuatropuntoalgo, era una muy buena demostración de cómo hacer un entorno de escritorio práctico, configurable y ligero. Una grata sorpresa, desde luego. Lo puse a punto en poco más de media hora y a funcionar.

El pase de diapositivas requiere JavaScript.

Pero pronto me descubrí configurando decenas de atajos de teclado para esto y aquello, tratando de organizarlo todo en distintos escritorios virtuales y desesperado por arañar unos píxeles verticales a la pantalla de mi portátil (hasta el extremo de eliminar la decoración de las ventanas de xfwm). Volví a interesarme por los tiling WM, y i3 estaba pegando fuerte entonces. Contaba con la sencillez de DWM, pero con una barra mucho más funcional (con systray incluído, facilidad para acoplarle conky mediante JSON…) y un sistema de organización de ventanas sencillamente genial. Sólo dos modos, floating y tiling y todo lo demás a merced del usuario. La forma de trabajar con las ventanas se basa en ir generando contenedores que a su vez puedes ir diviendo horizontal o verticalmente y redimensionando (o moviendo) a golpe de tecla. Lo más dinámico que haya pasado por mis manos jamás. Y conservando un par de layouts tremendamente útiles, stacking (¿os acordáis de wmii?) y tabbed (análogo a las pestañas de Fluxbox para organizar ventanas por grupos). Una maravilla. La configuración es aún más sencilla que la de DWM, con un fichero de configuración que por defecto viene comentado, indicando qué es lo que hace cada pedazo de texto, y una de las documentaciones más completas y organizadas con las que me haya topado nunca. A lo wiki de Arch, no os digo más.

“Sí, lo que tú digas debish, pero anda que no son feos los “tailing” esos…”

¿De verdad?

El pase de diapositivas requiere JavaScript.

Pronto (o tarde, que ya sabéis cómo nos las gastamos aquí) os cuento algunas de las nuevas aplicaciones ligeras que he descubierto últimamente y que vienen de perlas para este tipo de configuraciones.

Happy hacking!

 

[tip] Cambia el fondo por defecto de tus aplicaciones GTK

GTK+_logo

No sé si a vosotros os ocurre, pero a mi me resulta muy molesto cuando un tema GTK deja el fondo de las ventanas (en el explorador de archivos, por ejemplo) completamente en blanco. Acostumbrado al tono predominantemente gris del terminal, el cambio entre ventanas se hace realmente molesto para la vista. Pensaréis que la opción fácil es buscar un GTK de tonos oscuros, pero tampoco me resultan cómodos para trabajar muchas horas. Para mi la solución ideal es mantener el GTK tal cual (resaltado, menús, etc) y cambiar la única parte que no me convence, el fondo.

Para eso, basta con acceder al gtkrc del tema en concreto (si el tema da soporte a gtk2 y gtk3 tenéis que cambiarlo dentro de ambas carpetas) y buscar la línea:

gtk-color-scheme: "base_color:#ffffff" (…)

Una vez localizada, cambiad el blanco por el color que más cómodo os resulte:

before

after

¡Y listo!

Fuente

(¡Mil gracias a Judith por el soplo!)

 

Escapa a la vigilancia masiva

Stop watching

Facebook te espía. Google también. Apple, Microsoft, Yahoo, AOL, PalTalk y otras tantas hacen lo propio. El negocio de los datos se ha vuelto tan suculento que el beneficio de este tipo de empresas se cuenta por miles de millones al año. A cambio de tus gustos, preferencias de navegación o patrones de compra on-line. Y sin pedir permiso, claro. Especialmente grave es la estrecha colaboración de estas empresas con algunos gobiernos para poner en marcha la mayor red de espionaje y recogida de datos de civiles de la historia. Programas como PRISM, XKeyScore o Tempora, desvelados por el ya mítico Edward Snowden, ponen de manifiesto que el Gran Hermano predicho por Orwell en los años 50 es hoy día una realidad. Tu vida privada, a golpe de un click ¿lo vas a permitir?

Si la respuesta es no, el primer paso lógico es proteger tu ordenador personal. Encripta tus discos duros, utiliza un sistema operativo libre, cifra tu e-mail con GPG y elige bien tu proveedor de correo (o monta tu propio servidor). Anonimiza tus conexiones con Tor y si utilizas mensajería instantánea, que sea Jabber con OTR o alguna solución similar. Prescinde de la nube salvo que confíes en tu hospedador, métela en tu bolsillo o alójala en tu propia máquina. Y cuando navegues por la red, evita los sitios que te rastrean, usa https siempre que sea posible y sé cuidadoso con los scripts que se ejecutan en tu navegador. En Firefox/Iceweasel tienes plugins que te pueden ayudar a conseguirlo fácilmente.

El siguiente paso es proteger tu otro ordenador personal. Sí, ese que llevas siempre en el bolsillo y desde el que sincronizas todas y cada una de las cuentas con las que te comunicas en el día a día. Tu móvil. Aquí los principios son exactamente los mismos, aunque la forma de aplicarlos es un poquitín más compleja. Por supuesto, evita los sistemas operativos móviles de Microsoft y Apple. Y respecto a Android, desconfía de Google. Replicant y CyanogenMod probablemente sean las mejores opciones ahora mismo. Y F-droid el market que nos permitirá independizarnos del universo de la gran G. Veamos cómo hacerlo.

Disclaimer
Estas cosas se deberían dar por hecho, pero por si acaso, aviso de que ni yo, ni mis compañeros de Debian Hackers nos hacemos responsables de cualquier daño que pueda sufrir vuestro dispositivo durante el proceso. Tampoco los desarrolladores de muchas de las herramientas que vamos a utilizar. La responsabilidad es únicamente vuestra. Mi recomendación es que si no sabéis lo que hacéis, mejor no hagáis nada. Informaos primero o pedid ayuda. Todo está en la red, es cuestión de tiempo y paciencia. La finalidad de este artículo no es hacer un tutorial que seguir al pie de la letra, sino poner a vuestra disposición los recursos necesarios para que seáis capaces de entender el cómo y hacerlo por vosotros mismos. Por supuesto, y esto también debería ser obvio, haced backup de todo lo que consideréis importante antes de comenzar.

Primeros pasos: instalando lo necesario

En mi caso, lleve el proceso completo a cabo desde Debian. Tan sólo necesitaremos un par de herramientas: fastboot y adb

aptitude install android-tools-adb android-tools-fastboot

Yo trabajé con las versión 4.2.2 de ambas, están en repositorios en Jessie.

Y para comunicarnos con el teléfono, los paquetes de Media Transfer Protocol (MTP) -versión 1.1.8-:

aptitude install mtp-tools

Quede claro que esto es sólo válido para dispositivos flasheables mediante flashboot.

Root y recovery

El tema root depende mucho de cada terminal y de la versión de Android que estéis utilizando. Para el Nexus 4 funciona perfectamente la herramienta autoroot de Chainfire. Basta con descargar los archivos específicos para vuestro teléfono (y versión de android) de la web y ejecutar el .sh que viene en el paquete. Si sois un poquitín curiosos, podéis abrir el script y echar un vistazo a cómo funciona. Básicamente lo que hace es desbloquear el bootloader (ojo, que esto borra todos los datos del teléfono) y después cargar una imagen con la herramienta de root. Si lo preferís, desde el terminal podéis lanzar:

fastboot oem unlock
fastboot boot /ruta_a_la_imagen/CF_autoroot.img

Paso a paso sería algo así:

  1. Activa la depuración USB en el menú Ajustes > Opciones de desarrollo
  2. Reinicia el terminal en modo bootloader/fastboot. En el Nexus 4 lo puedes hacer presionando la tecla de encendido y vol down a la vez con el teléfono apagado o usando el comando adb reboot bootloader
  3. Ejecuta el script root-linux.sh (o lanza los comandos manualmente).

En este punto es importante señalar que ser root no es imprescindible para poder instalar Replicant o CM. Simplemente es una cuestión de libertad, de que seas tú quien tiene el control absoluto de tu hardware. Si decidís que no necesitáis root, recordad siempre desbloquear el bootloader antes de continuar.

Respecto al ROM manager/recovery como todo en esta vida, para gustos, colores. Yo siempre utilizo ClockWorkMod, pero existen unos cuantos más. Una vez descargada la imagen para tu dispositivo:

  1. Comprueba que la depuración USB sigue activa.
  2. Reinicia el móvil en fastboot mode.
  3. Comprueba que tu ordenador reconoce tu móvil tecleando fastboot devices
  4. Flashea la imagen del recovery fastboot flash recovery /ruta_a_la_imagen/CWM_recovery.img

Backup: agenda, contactos y más

Una vez tenemos el recovery instalado, hacemos copia de seguridad de la instalación actual por si algo fuera mal:

  1. Reiniciamos el móvil en fastboot mode y entramos al recovery.
  2. Backup and restore > Backup
  3. Elegir el destino del backup (la SD o la partición que actúa como tal en el Nexus son buenas opciones)

También es importante que hagamos copia de nuestros contactos y calendario, ya que no vamos a sincronizar más con los servidores de Google. Desde la aplicación contactos en el menú está la opcion Importar/Exportar > Exportar a almacenamiento (guarda un .vcf que luego podréis importar de nuevo). Y para el calendario en Ajustes > Exportar (genera un .ics).

Flasheando CyanogenMod

Para instalar CM, lo mejor es que sigáis las instrucciones de la wiki para vuestro teléfono. En el caso del Nexus:

  1. Descargar la imagen de CM (stable es lo más fiable, aunque si queréis Android 5 os la tendréis que jugar con las nightlies…)
  2. Copiar la imagen de CM a /storage/sdcard0. Podéis hacerlo con el navegador de archivos que utilicéis o con adb adb push CM.zip /storage/sdcard0
  3. Comprobar que la depuración USB está activa
  4. Reiniciar el teléfono y entrar al recovery
  5. Wipe data > factory reset
  6. Menú principal > install zip > /ruta_a_la_imagen/CM.zip
  7. Esperar a que termine la instalación y seleccionar “reboot system now”

El primer inicio siempre tarda unos minutos, sed pacientes. Una vez dentro de CM, podéis activar root dentro de Opciones de desarrollo > Acceso administrativo.

Líbrate de GooglePlay: utiliza F-droid

Ya tenemos un sistema libre de Google en nuestro teléfono. Ahora sólo falta instalar las aplicaciones necesarias para las tareas del día a día. Para ello, basta con instalar F-droid, un market con aplicaciones libres y open source para Android. Aquí os dejo algunas recomendaciones:

  • Navegador de archivos: Amaze
  • Gestor de correo: K9 Mail
  • GPG: GnuPrivacyGuard / APG
  • Navegador: Firefox
  • Mapas: OsmAnd
  • Feed reader: Flym
  • Notas: Swiftnotes
  • Contabilidad: Presupuesto/Budget (básico) / GNUCash (avanzado)
  • Visor de PDF: MuPDF
  • Visor de documentos: LibreOffice
  • Multimedia: VLC
  • Microblogging: Twidere
  • Terminal: Android terminal emulator
  • Tor: Orbot
  • Mensajería: Telegram / Yaxim (Jabber)

Por supuesto hay otras opciones, así que daos una vuelta por el market y elegid a vuestro gusto.

Happy hacking!

 

Cinco años de Debian Hackers

cumple_debian

Vuela el tiempo entre los quehaceres del día a día y aquí no iba a ser menos. Este imparable tránsito vital nos ha deslizado suavemente hasta el que es el quinto aniversario del sitio. Ya un lustro difundiendo las bondades del Sistema Operativo Universal, se dice pronto.

Aunque ha habido algunos cambios, la esencia se mantiene. Seguimos escribiendo cuando y como nos parece, seguimos compartiendo lo poco que sabemos con la mejor voluntad y sobre todo, seguimos disfrutando. Es cierto que muchas veces se nos quedan cosas en el tintero, pero afortunadamente en este mundillo el conocimiento fluye libre y las fuentes son innumerables.

Una vez más queremos daros las gracias por estar siempre ahí. Por nuestra parte queda el compromiso de extender este pequeño homenaje a los verdaderos Debian Hackers tan lejos como nos sea posible.

A ver si son, al menos, otros cinco.