Keep It Simple Stupid

Hace tiempo que no dedicamos una entrada al principio KISS y a su aplicación al mundo del software. En pocas palabras, software sencillo que hace una cosa y la hace bien. Optimizar recursos. Hacer más con menos. Minimalismo.

La filosofía KISS no implica renunciar, sino optimizar. Significa pensar en qué necesitamos y cómo podemos conseguirlo de la manera más eficiente posible. Un concepto muy extendido cuandose habla de minimalismo en el software es el de bloat o bloatware. El significado de bloated es “hinchado, inflamado” y en este contexto hace referencia a código que añade características o funciones innecesarias que incrementan el uso de recursos. Por supuesto, existe un amplio debate en torno a qué es y que no es bloatware, y se trata de una cuestión fundamentalmente subjetiva. A mi el sentido común me dice que si lo utilizas, no es bloatware. Y por tanto, desde el entorno de escritorio más pesado hasta el gestor de ventanas más minimalista pueden ser considerados bloated, o no. Quizá necesites todas y cada una de las funciones de un gestor de archivos con interfaz GUI o quizá te sirva con ranger. Puede que no necesites que tu gestor de ventanas organice tus ventanas automáticamente. O a lo mejor es algo fundamental para tu flujo de trabajo. Gnome puede ser bloatware, dwm puede ser bloatware.

Disertaciones conceptuales a parte, en esto de programar software sencillo, la gente de suckless hace un trabajo excelente. Entre sus herramientas más famosas se encuentran el gestor de ventanas dwm, la suite suckless-tools (con dmenu y slock a la cabeza), el emulador de terminal st (simple terminal) y el navegador web surf. Hoy vamos a echar un vistazo a dwm y a algunas aplicaciones ligeras que conjugan la mar de bien con un flujo de trabajo minimalista. Casi, casi nos lo podemos tomar como un “aplicaciones ligeras (III)”. Hay infinidad de sitios donde podéis encontrar información sobre dwm, así que no me voy a extender demasiado.

Conceptos básicos sobre dwm:

  1. Es un tiling window manager, organiza ventanas automáticamente según una distribución (“layout”) predefinida para ocupar el máximo espacio posible en pantalla.
  2. Es sencillo (menos de 2000 líneas de código) y modular (hay una buena colección de parches que permiten personalizarlo.
  3. Está escrito en C, y se configura editando un header file (config.h) y recompilando.
  4. En lugar de escritorios virtuales trabaja con tags: la principal diferencia es que una misma ventana puede estar etiquetada en varios tags.

Compilación e instalación

Descargamos el código fuente de la web de suckless:

wget https://dl.suckless.org/dwm/dwm-6.2.tar.gz

Accedemos al directorio y compilamos:

make clean install

Y listo, en 2-3 segundos tenemos dwm compilado con la configuración por defecto. Para personalizarlo, editamos el fichero config.h y recompilamos. Aunque es bastante intuitivo, siempre es recomendable consultar el manual antes de tocar nada.

Aquí os dejo el mío como ejemplo:

Parcheando dwm

La idea detrás de dwm es ofrecer un software sencillo, que hace una cosa y la hace bien. Sin embargo, hay un montón de parches que permiten añadir distintas funcionalidades a dwm. El procedimiento es sencillo:

patch -p1 < parche
make clean install

El parámetro -p se refiere al nivel de directorio en el que se encuentra el código a parchear. Por ejemplo, si estamos en el mismo directorio, utilizaremos -p1. Aviso de que parchear el código fuente de dwm puede romper cosas, si pensáis utilizar más de un parche idlos incorporando uno a uno (parchear, compilar, parchear, compilar…).

Iniciando una sesión gráfica sin gestor de inicio de sesión

a. Instalamos xinit.

b. Creamos el archivo .xinitrc en nuestra /home:

Aquí podéis lanzar los programas que necesitéis al inicio. Importante, la última orden debe ser el exec dwm que lanza el gestor de ventanas.

c. Tecleamos startx después de loguearnos con nuestro usuario y contraseña.

KISS software

Estas son las aplicaciones ligeras que utilizo normalmente:

1) Gestor de ventanas: dwm
2) Compositor: compton
3) Demonio de notificaciones: dunst
4) Lanzador de aplicaciones: dmenu
5) Capturas de pantalla: scrot
6) Terminal: st
7) Editor de texto: vim / nano
8) Editor de texto GUI: mousepad
9) Gestor de fondos de escritorio: nitrogen
10) Gestor de temas GTK: lxappearance
11) Herramienta de configuración de monitores: lxrandr + xrandr
12) Navegador de archivos: pcmanfm / ranger
13) Lector RSS: newsbeuter (debian stable) / newsboat (debian testing/sid)
14) Cliente IRC: irssi
15) Cliente FTP: ftp/sftp en terminal / filezilla
16) Visor de imágenes: viewnior
17) Visor de PDF: zathura + tabbed / qpdfview (tiene pestañas)
18) Gestor de portapapeles: clipmenu

Lógicamente, esto no es una lista exhaustiva de todo el software que utilizo. Faltan muchos imprescindibles (GIMP, Inkscape, Darktable, LibreOffice, Calibre…) que no son tan ligeros y que seguro que todos conocéis.

Dudas, sugerencias y/o críticas en los comentarios.

Happy desktop hacking!!

Entradas anteriores:

¿Alguien dijo tiling?

Aplicaciones ligeras

Aplicaciones ligeras (II)

 

Calibre congelado en Debian testing

Me he topado con este mensaje en mi último update en Debian testing:

calibre (4.0.0+really3.48.dfsg-1) unstable; urgency=medium

Due to the removal of Python 2 from Debian, support for necessary modules
to run Calibre >= 4.0.0 are not available.

We recommend users to use upstream Calibre packages to obtain new
features and security fixes, until upstream together with plugin
authors switch to Python3. Until that point Calibre in Debian will be
frozen at the last 3.NN version (3.48) and no further features or security
fixes can be applied
.

— Norbert Preining <[email protected]> Sun, 06 Oct 2019 09:31:44 +0900

Que viene a decir que dado que se va a eliminar Python 2 de Debian, no habrá actualizaciones ni parches de seguridad en Calibre, que queda congelado en la versión 3.48 hasta nueva orden.

Como alternativa, se pueden descargar los binarios de la web de Calibre (versión 4.1.0).

 

Tres lecciones que aprender del caso Huawei

Creo que a estas alturas nadie es ajeno al caso Huawei. Es un ejemplo tan bueno de porqué debemos utilizar software libre que me voy a permitir reproducir aquí, en castellano, las tres lecciones que podemos aprender de todo esto según la FSFE (el original es de la Newsletter Digest de la FSFE, Vol 98, Issue 1).

  1. El software libre permite controlar la tecnología: cuanto más importante es la tecnología en nuestras vidas, más importante se torna el uso de software libre.

  2. La Unión Europea confía en exceso en proveedores extranjeros de tecnología: la Unión Europea y sus estados miembros deberían invertir en el desarrollo de software libre y enfocarse en apoyar organizaciones y negocios locales que fomentan el uso de software libre.

  3. El software libre otorga independencia económica a las empresas: la empresa que utiliza software propietario depende del proveedor de software y por tanto del gobierno del país que lo regula. La mejor estrategia para evitar esta dependencia es utilizar software libre en el mayor número de puntos de la cadena de suministro.

Podéis leer más aquí.

 

[Short] FreshRSS: aloja tu propio servidor RSS

Como un soplo de aire fresco, llega FreshRSS un agregador de canales RSS libre y ligero donde mantener al día y sincronizados vuestros feed RSS. Es compatible tanto con Apache como con Ngnix, así que debería funcionar sin problema aunque vayáis un poco justos de hardware (RasPi calling!). El funcionamiento es simple, instalas un servidor web (guía aquí -de momento sólo está en inglés-) y accedes a él desde cualquier dispositivo, bien vía web o desde la aplicación android (la podéis encontrar en F-droid pero ojo que aún está en versión alpha).

Aquí podéis indagar un poco sobre el funcionamiento de la aplicación y aquí se explica como programar cron para que actualice los feeds automáticamente cada cierto tiempo.

Happy hacking!

 

[Truco] Convierte un vídeo en imágenes con ffmpeg

¿Pulsaste el botón de vídeo en lugar del de la foto en aquel lugar y momento difícilmente repetible? ¿Te gustaría tener una de las escenas icónicas de tu película favorita de fondo de pantalla? Con ffmpeg es muy sencillo. Imaginemos que necesitamos extraer los primeros 30 segundos de un vídeo en fotogramas. Basta con teclear:

ffmpeg -ss 00:00 -i video.mp4 -t 00:30 fotograma%05d.png

En detalle:

  • -ss indica el inicio temporal a partir del cual empezar a extraer fotogramas.
  • -t el intervalo de tiempo en el que queremos extraerlos
  • %05d es una wildcard que sirve para añadir el número de fotograma con 5 dígitos al final del nombre de cada .png generado

Fácil ¿verdad? Esta es solo una pequeña muestra del potencial de ffmpeg, os invito a echar un vistazo más detallado a esta navaja suiza del multimedia. Aquí os dejo el enlace a la lista de formatos de vídeo soportados.

¡Que aproveche!

 

DataDetox: controla tu presencia on-line

De la mano del Tactical Technology Collective y la Fundación Mozilla llega esta fantástica iniciativa que busca concienciar sobre privacidad on-line. Decenas de aplicaciones y sitios web rastrean a diario nuestra actividad, preferencias de navegación y gustos en busca de un trocito del suculento pastel del Big Data.

¿Conoces tu huella digital? ¿Qué saben las redes de ti? ¿Y qué sabes tú de lo que las redes hacen con tus datos?

DataDetox nos invita a indagar en nuestra huella digital, descubrir cual es nuestra identidad on-line y prevenir la fuga masiva de datos a la que estamos expuestos.

8 días, menos de media hora al día ¿te atreves?

Ahí va el programa:

Día 0.- ¿Por qué Detox? Nos vamos preparando.

Día 1.- Descubrir. ¿Quién eres según otras personas?

Día 2.- Todo en un mismo lugar. ¿Cuánto te conoce Google?

Día 3.- Ser sociable. Desintoxicando tus cuentas en redes sociales.

Día 4.- Buscar&navegar. ¿Qué estás compartiendo a través de tu navegador?

Día 5.- Conectando. ¿Con quién habla tu móvil?

Día 6.- Limpieza. Hora de limpiar nuestras aplicaciones.

Día 7.- ¿Quién crees que eres? Porqué crear perfiles no se trata simplemente de mostrarte anuncios.

Día 8.- Creando un nuevo yo. Convierte tu “data detox” en un nuevo estilo de vida.

 

Tip: Escalar un documento PDF con GhostScript

Pongamos que lleváis tiempo maquetando un documento de unos cuantos cientos de páginas y que a la hora de imprimir decidís que en lugar del clásico A4, preferís hacerlo en un formato más manejable, por ejemplo B5. Pongamos también que la pereza os ha vencido y no habéis utilizado LaTex para editar vuestro documento. Y que además tiene decenas de imágenes y tablas con sus respectivas leyendas. Remaquetarlo son unas cuantas horas de ingrato trabajo extra ¿por qué no redimensionar el PDF directamente?

Ghostscript funciona la mar de bien en estos casos, y pasar de un A4 a un B5, respetando márgenes, interlineados y demás es tan sencillo como ejecutar:

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dFIXEDMEDIA -sPAPERSIZE=isob5 -dPDFFitPage -sOUTPUTFILE=B5_file.pdf A4_file.pdf

Los curiosos podéis echar un vistazo al significado de cada parámetro en el man de gs.

Happy reformating!

 

Destilado de #Hackmeeting17

Ahí van unas pequeñas cápsulas de conocimiento concentrado, mensajes cortos y directos al hipocampo
para fijar ideas. Por supuesto, no están todos los que son ni son todos los que están, sois bienvenidos a
contribuir al destilado de #HackMeeting2017 en los comentarios:

… 

 

Mañana empieza el HackMeeting 2017

Aunque se le ha dado bombo y platillo en las redes libres (y en las no tan libres), no quería dejar de recordaros que mañana empieza el HackMeeting 2017: Ingoberhack en La Ingobernable, un escenario inmejorable para compartir y construir conocimiento abierto.

Empieza fuerte, con nodos prácticos sobre cifrado de datos, análisis de big data para controlar las corruptelas de la clase política y fabricación colaborativa; y otros algo más filosóficos como la propuesta de trasladar la GPL a objetos físicos. Y el patrón se mantiene a lo largo de los cuatro días con talleres y charlas sobre temas tan diversos como feminismo, criptomoneda, procomún, censura en la red o defensa de la privacidad, por mencionar algunos. Os dejo captura del calendario de nodos, os aseguro que no tiene desperdicio:

El pase de diapositivas requiere JavaScript.

El calendario es provisional, podéis ver los cambios en tiempo real aquí. Y los detalles sobre el contenido de cada nodo aquí.

Cambio y corto, pero no sin antes agradecer el currazo de las buenas gentes que han invertido tiempo, sudor y ganas, muchas ganas en organizar el evento.

¡Nos vemos mañana!