Bad Daemons

Cómo diseñar un rol de ansible - 1

He empezado una serie de videos en Peertube en los que explicaré como diseñar un rol de ansible. El fin no es tanto cómo hacer un rol, ya que hay mucha documentación sobre el tema, sinó intentar mostrar el hilo del pensamiento cuando te encuentras con la necesidad de automatizar algo que tal vez no conozcas mucho y diseñar como será la interfaz para el usuario. Peertube es compatible con cualquier implementación del fediverso, por lo que se puede suscribir al canal desde el botón de “Subscribe”.

Gestión de paquetes y dotfiles en arch

TL;DR Prólogo Diferencia entre herramientas imperativas y herramientas declarativas Aconfmgr y brew Dotfiles Empaquetado TL;DR Antes usaba ansible para gestionar los paquetes de mi SO y mis dotfiles y no me gustaba. Cambié de ansible a aconfmgr, brew y stow. Aquí se puede ver lo viejo y aquí lo nuevo. Prólogo Hace tiempo me di cuenta de que me le dedicaba mucho tiempo a personalizar mi ordenador. Configuraciones varias, scripts, alias, programas, etc.

Antisocial - Analizar datos del fediverso

Disclaimer: Este artículo se ha escrito del tirón con cosas que tengo en mente desde hace mucho. Es posible que no sea del todo riguroso en algunos aspectos y que en alguno exagere. Intento simplificar cosas que son complejas de explicar, por lo que seguro que hay cosas que no son exactas. Tabla de contenido Prólogo De quién nos protegemos? Definiciones de seguridad y anónimato Matriz para decidir como protegerte Antisocial: Qué datos se pueden sacar de las redes sociales libres?

Estandarizar commits en Magit con commitizen

Quién trabaje o contribuya a proyectos de software con otras personas sabrá que a veces el tiempo se va discutiendo chorradas. Un ejemplo típico son las convenciones del código. Por ejemplo, en python lineas más largas de 79 carácteres (como el pep8 define) o más (ya que no estamos en los 90 y tenemos pantallas de más de 8 pulgadas)? Una lista debería estar en una sola línea o en varias?

Gomic y primeras impresiones sobre Go

Go, también llamado golang, es un lenguaje de programación diseñado por Google. Es de tipado estático, compilado y similar a C. Algunas diferencias con este son que tiene protección de memoria, recolector de basura y concurrencia nativa. Este articulo tiene dos fines, enseñar lo bonico que me ha quedado un programa que he hecho en go y plasmar mis impresiones sobre mi primera incursión en este lenguaje. Empecemos por el principio.

Doom: un framework para configurar emacs

Emacs es seguramente la tecnología a la que más tiempo de estudio le he dedicado (y dedico) desde que empezó mi interés por los ordenadores. Y si algo he sacado en claro es que, dado mis otros intereses, nunca le dedicaré el tiempo a mi configuración personal que se merece. Lo he hecho durante mucho tiempo y lo seguiré haciendo, pero he decidido que no lo haré “a pelo”, sino que usaré ciertas facilidades que da doom.

BadUsb para joder ordenadores sin vigilancia (más rápido)

Seguimos en la linea de joder a la gente cercana. BadUsb es el nombre que se le da a un tipo de ataque en el que una placa, en apariencia un pendrive, se comporta como un teclado. TL;DR Para tener un equivalente al Rubber Ducky, compra una placa ATMEGA 32U4, enchúfala y ejecuta lo siguiente: wget https://downloads.arduino.cc/arduino-1.8.7-linux64.tar.xz -O /tmp/arduino.tar.xz cd /opt/ tar xvf /tmp/arduino.tar.xz cd ~/ git clone https://git.daemons.it/drymer/badusb --recursive cd badusb/ducky_interpreter/ducky_interpreter sudo apt install arduino-mk export ARDUINO_DIR=/opt/arduino-1.

Como joder ordenadores sin vigilancia

Les desarrolladores tienen la excusa de “está compilando” para perder el tiempo en chorradas, les sysadmin ahora tenemos el “el pipeline se está ejecutando”. Por ello, a veces me encuentro con tiempos muertos y me da por pensar como joder a les compañeros de trabajo que se dejan el ordenador desbloqueado. Cuando me encontraba uno lo que hacia era ponerle un par de alias tontos, en el momento no daba la cabeza para mucho más.

Como loguear todo lo que lees y por qué

Desde hace un tiempo intento que toda la lectura de articulos que hago, pase por un sitio, que es wallabag. Para quien no lo conozca, es una alternativa libre de Instapaper o Pocket. El objetivo de este tipo de aplicaciones es guardar el contenido de una web para consumirlo más tarde. Pero además de ello, tiene otras ventajas: Etiquetas Búsquedas Visionado offline Visionado sin anuncios Una interfaz limpia y clara Escoger temática según contexto Cacheo: Si el origen se borra, lo sigues teniendo en tu “read it later” El flujo que suelo seguir, tanto cuando miro el TL del fediverso y leo mis feeds en el transporte público como cuando llego al trabajo y reviso IRC, XMPP, slack, hangouts y correo es el mismo.

Como hacer imágenes de docker lo mas pequeñas posibles

TL;DR Problema Imagen demasiado grande = mayor superficie de ataque y mayor tamaño Herramientas de debugueo = n dockerfiles Solución Dockerfile Multistage Un dockerfile con muchos pasos o stages, es uno en el que, dicho mal y rápido, se crean varias imágenes en vez de una y todas menos la ultima son temporales. FROMalpine:3.7 as builderRUN apk add -U curlRUN curl -Lo checkup.tar.gz https://github.com/sourcegraph/checkup/releases/download/v0.2.0/checkup_linux_amd64.tar.gzRUN tar -xzf checkup.

Mejoras en el blog: Hugo, ox-hugo y drone

Hace un tiempo que no actualizo el blog. Pensaba que es por que ando a otras cosas, pero reflexionando me di cuenta de que me daba pereza. No por escribir en general, sino por que el flujo de publicación que tenia en mi blog no me gustaba. Debido a que odio todo lo que tenga que ver con diseño, en vez de hacer las modificaciones del blog en la plantilla, me dediqué a hacer scripts que modificasen el HTML generado de forma dinámica, lo que iba bien al principio, pero luego tardaba hasta medio minuto en construir.

Charla: Emacs no necesita esteroides

Este miércoles 25 de abril, a las 20:00, daré una charla sobre emacs en la Brecha Digital. Veremos, a grandes rasgos, qué es exactamente emacs, sus orígenes, comparación con vim para darle emoción, que posibilidades de uso tiene y cómo empezar a usarlo. El nivel de la charla será introductorio, pero si ya conoces emacs siempre puedes aprovechar la ocasión para ver la Brecha Digital, un grupo que se reúne en La Brecha, un centro social alquilado, en el que nos untamos habitualmente para dar charlas y aprender tecnologías molonas en común.

Visualizar y controlar un Android desde el ordenador

Hace unos días vi en Menéame que alguien había hecho un programa para controlar un móvil Android desde el ordenador, y justo coincidió con que me había comprado un móvil nuevo. Si hay algo que odio es usar el móvil, y más aún para configurarlo. El motivo es que me resulta muy incómodo tener que estar escribiendo con un teclado táctil. Así que este programa parece caído del cielo para mi.

Modificar la salida de una función de emacs lisp sin redefinirla

Casi es más largo el título que la definición o solución del problema. Por mostrar un caso real explicaré el problema que tenia. Uso el paquete Projectile, que sirve para gestionar proyectos en emacs, recomiendo fuertemente que le echéis un ojo. Cuando se han abierto unos cuantos proyectos puede usarse la función projectile-switch-project, que permite cambiar el proyecto. El tema es que muchos directorios de mi home son en realidad enlaces simbólicos a otros sistemas de ficheros.

Torificar ssh automáticamente

El archivo de configuración del cliente de SSH permite cosas muy chulas. Las más conocidas son las de asociar una clave ssh y un usuario a un host. Por si alguien no lo conoce, en el fichero ~/.ssh/config se pone: host daemons user drymer IdentityFile ~/.ssh/drymer-daemons host daemons.it Al ejecutar ssh daemons iniciará sesión en el servidor definido en host con el usuario definido en drymer usando la clave definida en ~/.

Como gestionar las configuraciones y programas de tu ordenador con Ansible

Hace relativamente poco abandoné Slackware por Debian por dos motivos. Uno fue que mi ordenador no tenia mucha potencia y me cansé de compilar y el segundo que quería automatizar la gestión de todo lo que tuviese que ver con mi ordenador, tanto la instalación de paquetes del sistema operativo, paquetes pip y paquetes compilados, como la configuración de ciertos programas. Así que me puse a ello y creé unos cuantos roles.

Múltiples cursores en emacs

Este es un paquete al que cuesta cogerle el punto. Pisa un poco las funcionalidades de las macros, es un poco especialito y hay que tener un poco de imaginación al usarlo, pero una vez le pillas el truco es muy útil. El paquete que muestra el siguiente gif es de multiple-cursors, y hace exactamente esto, abrir múltiples cursores en emacs. Lo he estado usando últimamente que he tenido que he estado usando Terraform en el trabajo, y se presta al uso de este paquete.

Reseña: Learning docker

Últimamente estoy empezando a tocar bastante docker, tanto en el trabajo como en La Brecha Digital (certificado incorrecto temporalmente) y he pensado que aunque soy más de darme de ostias con las cosas hasta que las entiendo, leerme un libro al respecto no haría mal. Y por ello me leí el libro de Learning Docker. No lo escogí enfrente a otros por ningún motivo en concreto, simplemente lo tenia a mano.

Cutrescript para mostrar posts de tags de GNU social

A este cutrescript, que no merece ni estar en un repositorio de git, se le pasa el parámetro del servidor y el parámetro del tag y imprime todas las noticias de ese servidor que tengan ese tag: #!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests import son import sys server = sys.argv[1] tag = sys.argv[2] nota = 1 posts = requests.get('https://' + server + '/api/statusnet/tags/timeline/' + tag + '.son?count=200').text posts = son.

Alternativas a grep

Desde hace un tiempo me he ido encontrando con la necesidad de buscar cadenas de texto (sin regex, solo palabras simples) en ficheros muy grandes o muchos ficheros pequeños. Para ello, siempre habia usado grep, pero a la fueron subiendo los GB en los que buscar, fue subiendo el tiempo que tenia que esperar, hasta niveles absurdos. Y de casualidad me encontré con un par de alternativas a grep mucho más rápidas.