Archivo de la etiqueta: software libre

Los vehículos nuevos que vienen en el Mindustry v6

Aunque el último cambio en esta versión en la campaña me ha matado un poco, me gustaba lo de ir conquistando los sectores y lo han quitado en la última revisión.

Pero bueno, vamos a esperar a ver que va pasando porque todavía no esta terminada la versión 6 de Mindustry.

No obstante algún youtuber (haciendo bien las cosas, sin poner su careto 2 horas hablando en vez de mostrar lo que buscas en el vídeo) ha hecho un vídeo de los nuevos vehículos que vienen, es espectacular y chungos las arañas robots, dan mal rollo.

Actualización: Han retomado la mecánica de juego de conquistar sectores del planeta desde Mindustry versión 6.0 Build 109 – Beta, en el anterior en el 108 lo quitaron.

Anti-NoCodeTools: Diagramas

Bueno aquí un templario que lucha contra la tontería de las no code tools con artículos como:

Porque niños, eso de usar productos comerciales es como ir a la trabajadora sexual mas enferma que encuentres en un sucio callejón a intercambiar fluidos corporales por una pequeña y mal pagada suma de económica.

Pues eso de perder el tiempo con el ratoncito, subiendo un chispi, un poquitin pa’arriba o pa’abajo una caja en un diagrama, pues no se…siempre hay gente en los curros que no son cooperativas que les pagan por perder el tiempo, pero a los demás, no. Y además como en la mierda de sociedad que vivimos que el 8+8+8 es una mentira «asin de gorda» porque no tienes 8 horas para ser un humano con tus aficiones y si tienes que hacer un diagrama para algo, no tienes tiempo para jugar con el ratoncito cambiado la fuente y su tamaño.

Por eso «everything as code» o en español «todo a código», porque perder tiempo y ganar miopías dejando un diagrama bonito, cuando mejor escribirlo y una vez hecho, si acaso darle después cariño vía configuración (o ficheros de estilos que tenga) al diagrama generado.

Bueno pues vamos a hablar de las alternativas en software libre para escribir diagramas.

Empezamos por el mas viejo:

Graphviz

Que comenzó como un proyecto interno de la AT&T y se libero hace 35 años (en 1991), escrito en lenguaje C. Es el mas viejo y el que podemos decir que es un Heartbleed del software libre, porque tiene un bug muy gordo para hacer diagramas verticales (que crezcan en vertical) y como es software libre…todo el mundo lo usa y nadie pone un mísero dolar, euro o peseta para arreglarlo, . Por eso veras en caras herramientas o empresas que ofrecen sus servicios en la nube con algunos diagramas «un poco feos»…pues ahí lo tienes.

Otra cosa que da un poco jaqueca es que tiene dependencias del sistema de X, por lo que si tienes un servidor ahí con poquitos paquetes y limpio, cuando metes graphviz te instala cosas muy bizarras.

No obtante le tengo cariño porque para hacer un diagrama es tan simple como (cojo el diagrama del artículo Tocate los pies: NoCode tools II ):

digraph La_felicidad_de_las_nocode_tools {
  // title
  labelloc="t";
  label="La felicidad de las nocode tools.";

  "Fichero\nproyecto" [shape=box];
  "NoCode\nTool" [shape=box3d];
  "Bonita\nAplicación" [shape=note];
  
  "Usuario feliz" -> "NoCode\nTool"
  "Fichero\nproyecto" -> "NoCode\nTool"
  "NoCode\nTool" -> "Bonita\nAplicación"
}

Y para generarlo es:

dot -Tjpg /tmp/diagrama.gv -o /tmp/diagrama.jpg

Saliendo este bonito diagrama:

PlantUML

El siguiente que mas me pegado en un curro (bueno con grapviz también lo he trabajado mucho en una empresa que perdió su espíritu…que destrozo humano fue para mucha gente) que estuve, allí aunque nos trataban como gallinas ponedoras de huevos hacían pero hacían muy bien metodología y usábamos muchos diagramas hechos en plantuml (embebidos en otra herramienta que le cogí cariño (pese a estar hecha en ruby) Redmine.

En si plantuml se invento para hacer los UML (que era la piedra filosofal de los comerciales, CEOs y demás gente que no trabaja directamente en los 90, que creían que a partir de los diagramas UML iba aparecer mágicamente el código sin necesidad de esos melenudos metaleros programadores) pero le han metido mas diagramas y formas de usarlo (hasta un sudoku y el juego de morirse de hambre en USA).

Picado en java, tiene muchas formas de usarlo (en su momento lo usábamos embebido en redmine como dije) desde linea de comando con su cli, ha lanzar un pequeño servidor web con un formulario pequeño para hacer el diagrama ahí en vivo. Tienen un docker para hacer fácil en plantuml/plantuml-server el server web.

Copio el código del articulo anterior que era para plantuml:

@startuml
actor "Usuario feliz" as usuario
file "Fichero\nproyecto" as fichero
node "NoCode\nTool" as nocodetool
artifact "Bonita\nAplicación" as aplicacion

title La felicidad de las nocode tools.

usuario --> nocodetool
fichero --> nocodetool
nocodetool --> aplicacion
@enduml

Y la ejecución en la linea de comando es:

java -jar plantuml.jar /tmp/diagrama.puml -tpng /tmp/diagrama.png

Ofreciendo el bonito diagrama de:

mermaid-cli

Es de los que menos me he pegado, usa un lenguaje de estos novedoso (vamos js con npm y tal), por lo que usarlo en web es relativamente fácil pero ademas tienen un cli.

Y el código del diagrama es:

graph TD

A[Fichero<br />proyecto] --> B{{NoCode<br />tool}}
C([Usuario feliz]) --> B
B --> D[[Bonita<br />Aplicación]]
Y para ejecutarlo…escribo el paso  de instalarlo localmente con npm (es un poco bestia por que instala un chromium headless, la instalación es 358mb en total …lo de siempre con la alegría de npm):
npm install @mermaid-js/mermaid-cli

npx mmdc -i /tmp/diagrama.mermaid -o /tmp/diagrama.png

Y da el siguiente y bonito diagrama:

ditaa

Gracias Swicher por darme lo a conocer, es de agradecer que gente buena lea el blog y encima te ayude a aprender.

Es curioso porque aquí los diagramas «los pintas» en ASCII y ya es algo «legible» para el que no conozca el código. Escrito en Java tiene su herramienta para hacerlo desde la linea de comandos.

Y como en las anteriores herramientas code (because code is the best) para diagramas, os muestro como es con ditaa (obra de Swicher en un gist):

La felicidad de las nocode tools.
+----------------+  +--------+
|👤 Usuario feliz|  |{d}     |
+------------+---+  |Fichero |
             |      |proyecto|
             |   /--+--------+
             |   |
             v   v
           +------+
           |{io}  |
           |NoCode|
           |Tool  |
           +--+---+
              |
              v
        +-----------+
        |Bonita   📜|
        |Aplicación |
        +-----------+

En muchas distribuciones de GNU/Linux que tienen ditaa pero voy a usar la versión jar (standalone ….lo que me costo encontrar una traducción a esta para los juegos libres que empezaron como un mod de quake3 y con la liberación del motor fueron juegos «independientes»).

Y para obtener la imagen es:

(actualmente hay un bug y para que salgan los emoji solo funciona si la salida es svg)

java -jar ditaa-0.11.0-standalone.jar diagrama.ditaa --svg diagrama.svg

Y para PNG (que no salen los emoji)

java -jar ditaa-0.11.0-standalone.jar diagrama.ditaa diagrama.png

Y nos sale el bonito diagrama:

Ya veis que con código se puede hacer casi todo, quizá por ser crítico, lo que echo de menos en muchas de estas herramientas es algún fichero tipo css para configurar estilos por si quieres afinar y sea mas limpio, en plan «fichero diagrama» + «fichero de estilos».

Por cierto mientras escribía estas lineas (que han sido varios días) en uno de los barrapuntos americano ha salido la noticia de graphviz:

Create diagrams with code using Graphviz

He añadido a la lista páginas Indie Libre

Algo que tenía pendiente desde hace meses (la tenía en una pestaña en el móvil) y lo que hay que hacer hay que hacerlo.

Indie Libre

Es un devblog de desarrollo de juegos indie con el genial Godot.

En donde podrás aprender mucho sobre esta herramienta libre y desarrollo de juegos.

Sinceramente le deseo lo mejor al señor Cesar León que no tengo el placer de conocerle.

Galería de los proyectos de videojuegos hechos con Godot en 2020

Que decir de Godot, mas que Un engine software libre de creación de videojuegos, nacido en la humilde Argentina que ha conquistado el mundo y «le da de sopapos» al asqueroso Unity3D (que se han bajado los pantalones y han sacado IDE para GNU/Linux…ahora buenas horas mangas verdes) y al maquiavélico UnrealEngine.

Han publicado su «showreel» de proyectos del 2020, vamos su galería de proyectos que hacen empresas de videojuegos usando este genial engine.

El de videjuegos para pc y consolas:

Y el de videojuegos para móvil:

Iba a sacarme la chorra…pero como dicen los geniales Lendakaris Muertos…chorra cacahuete, porque en google trends de este año nos sigue ganando de goleada en las búsquedas el asqueroso Unity3D:

¿Quién se cargo a Stallman en Docker?

Hay poca gente que niegue la revolución que esta siendo Docker en el mundo de GNU/Linux.

Después de la caza de brujas que paso a finales del año pasado contra el pobre Richard Stallman que resumo en el articulo de meneame:

Ahora que ha muerto Stallman quememos la Free Software Foundation

Pues sabia que habían quitado al pobre Stallman del generador de nombres de contenedores docker sin nombre. Fue en septiembre 2019.

El verdugo o nazi, porque para mi es como la quema de libros que hacían los nazis para borrar la historia es: hn3000

Todo esto siempre me trae a la memoria el poema de Primero vinieron… de Martin Niemöller

«Primero vinieron a buscar a los comunistas y no dije nada porque yo no era comunista.
Luego vinieron por los judíos y no dije nada porque yo no era judío.
Luego vinieron por los sindicalistas y no dije nada porque yo no era sindicalista.
Luego vinieron por los católicos y no dije nada porque yo era protestante.
Luego vinieron por mí pero, para entonces, ya no quedaba nadie que dijera nada»

Espero que tarde o temprano se restituya la memoria de Stallman antes de que muera y hagan los típicos rollos que suelen hacer con los Oscar a titulo póstumo…porque la ouija no tiene mucha cobertura wifi.

Por cierto un día me salio el primer cosmonauta humano (y soviético) Yuri Alekseyevich Gagarin, como «gagarin_algo» también esta Valentina Tereshkova…pero todavía no me ha salido esa combinación. Pero algún día los borrarán.

Manual en español de Libreoffice: Domando al Escritor

Gracias al comentario Swicher en un pequeño articulo que hago sobre lo que busca la gente: Ayudando a los que buscan: tutorial libreoffice

Y Swicher dijo:

Swicher
2020-02-11 a las 08:11

También esta Domando al Escritor enfocado en LibreOffice Writer y que podría interesarle a mas de uno.

Gracias por el comentario Swicher.

 

Chincha rabiña yo tengo una …Patreon

De esas cosas que lo piensas…y piensas…y piensas…y al final dices «¿Por qué no?».

Y ahí que me he metido, https://www.patreon.com/migueldedios .

¿Qué busco?

Pues a falta de trabajar en una cooperativa o en una fundación de software libre, voy a intentar que el trabajo voluntario que hago en el software libre tenga algo de colchón económico, mientras espero para dormir feliz cada noche.

Hombre en plan cuento de lechera he puesto el «goal» de 5000$ que no creo que nunca llegue, pero molaría ser un Icculus de la vida y vivir del software libre pero haciendo lo que te gusta.

Aunque el camino que he puesto es un poco GATO VIOLÍN , es porque creo que es el mas ético, ayudar a una persona a que siga haciendo lo que le hace feliz y además no es invadir Polonia, coño que es hacer cultura y software libre.

¿Y cómo será y en que dejará los tomates?

Pues creo que salvo que me den otros aires, sera como un blog de trabajo, poniendo artículos de las mierdas (de software libre o cultura libre) que estoy metido hasta el codo. Proyectos que quiero afrontar y también estaría bien un poco de comunicación por vuestras reales partes porque yo que se, no es solo el moni-moni es también decirme «oye Miguel porque no haces esto así o lo haces asa».

Y los tomates, pues creo que seguiré como hasta ahora un blog mas o menos personal…de los últimos que quedan, porque la gente por el dios google se han «especializado» y son monotematicos para conseguir mas pagerank y estar en en la primera página en google…pues no, paso…intentare no rozar la ilegalidad que no quiero ser un Cesar Strawberry de la vida. Pero ya esta.

Powerline Docker: Si existe y es fácil de instalar

De la saga peliculera: Powerline: configurandolo para Bash y GNU/Linux (of course) y mi duda si había un segmento para vigilar docker.

Pues si, lo hay y se llama: Powerline Docker

Y para instalarlo, primero tienes que tener instalado el Powerline (revisa el anterior link de arriba) y después instalarlo con:

$ pip install powerline-docker

Y después la coña marinera de añadir el juego de colores…debería ser distinto en plan cargarlo de un fichero que venga adjunto al plugin.

Añadir a:

/home/<usuario>/.config/powerline/colorschemes/default.json

    "docker":                    { "fg": "gray8",           "bg": "darkestblue", "attrs": [] },
    "docker_running":            { "fg": "green",           "bg": "darkestblue", "attrs": [] },
    "docker_paused":             { "fg": "brightestorange", "bg": "darkestblue", "attrs": [] },
    "docker_exited":             { "fg": "brightred",       "bg": "darkestblue", "attrs": [] },
    "docker_restarting":         { "fg": "gray10",          "bg": "darkestblue", "attrs": [] },
    "docker:divider":            { "fg": "gray4",           "bg": "darkestblue", "attrs": [] }

Añadir el segmento a vuestro fichero de configuración de shell:

{
	"function": "powerline_docker.docker",
	"priority": 30
},

Y después el típico replace del demonio:

$ powerline-daemon --replace

Y ya esta:

Y os saldrá el emoji de la ballenita con el contador de contenedores en funcionamiento en mi caso solo 1 y 13 contenedores parados.

Por cierto las frutitas que veis es un segmento que he hecho.

Powerline: configurandolo para Bash y GNU/Linux (of course)

No tengo tiempo para escribir, y estoy hablando del famoso powerline que ha habido mucho artículo en la blogosfera hispana estas últimas semanas.

Y paso como con SQLite la gente mucho hablar, que si tal que si cual, pero enseñame la mandanga, porque puedo hablar del espíritu de la gominola y pero si no me he manchado las manos es como ser «entrenador de fútbol de barra de bar», y tengo que reconocer que SQLite ha mejorado pero por ejemplo no trae comprobación de tipos por defecto y aquí te lo explicaba en Domesticando SQLite.

Hace unos años un excompa de curro que por desgracia usaba Apple, nadie es perfecto, puede que ya haya gente nativa digital en el mundo libre, pero muchos hemos usado cosas asquerosas como m$-win98 y andabas que si cygwin, dev c++ y al final decías «¡Que cojones! ¡¡¡Vamos a ser serios y valientes y ni particionar disco duro, ni ostias, todo para GNU/Linux!!!» Y pasado unos meses ya estas siendo libre. En mi caso la última vez que hice el gilipollas fue con WinXP haya por 2004, después, ya los discos duros están eticamente configurados.

Pues lo lamentable de los maqueros, es que no se si por secta o por gilipollez parecida a un adolescente que se gasta un pastizal en una zapatillas de marca o unos vaqueros (en mis tiempos mozos eso pasaba), o por economía porque tiene que ser muy vergonzoso gastarte un pastizal en portátil que le cambias el sistema operativo y ya no es elitista y encima ves que va mejor y que podrías haberte gastado menos dinero.

Pero bueno esta gente intenta acercarse a como vivimos bien la gente en GNU/Linux, pero sin dar el paso, y este excompa me enseño el rollito de que usaba mucho la terminal y tenia un invento que no se si sería powerline o algo parecido.

Pasaron los años. Y eso la blogosfera hispana empezaron a hablar de Powerline.

Pensé, voy a ponerlo y catástrofe, no funciona bien. Y a partir de este punto os voy a contar la mandanga de Powerline y como ponerlo rechulon y útil.

¿Qué es el powerline?: Es un script python para tener una linea de comandos hipervitaminada. Pasamos de:

A esto:

También se puede usar como barra de aplicaciones en I3 hasta barra de estado para Vim, entre otros. Pero en este articulo nos centramos en la shell de toda la vida.

El powerline se pueden configurar zonas/lados, en una shell típica tienes el prompt a la derecha. Pero el powerline soporta derecha, izquierda e incluso arriba.

Malas noticias, Bash no soporta lado derecho, solo lado izquierdo.

Instalar Powerline, puedes o instalarlo desde pip pero es mas recomendable (aunque no sera la última versión) instalarlo desde el gestor de paquetes del GNU/Linux en mi caso LinuxMint:

$ sudo apt install powerline fonts-powerline

Para activarlo en Bash tiene su miga porque tienes que editar tu fichero de configuración de usuario en:

/home/<usuario>/.bashrc

Añades al final el siguiente trozo de código que le dice que lance el demonio de powerline y ejecute el powerline

# Powerline
if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
	powerline-daemon -q
	POWERLINE_BASH_CONTINUATION=1
	POWERLINE_BASH_SELECT=1
	source /usr/share/powerline/bindings/bash/powerline.sh
fi

Y lo mejor salir y entrar de la terminal para que cargue la nueva configuración.

La configuración de Powerline por defecto es chula, pero se le puede dar mas cera, en la documentación dice que merguea el fichero de configuración por defecto del sistema con la que tengas personal en tu usuario ¡¡MENTIRA!! . La que tengas en personal te la machaca, sobre todo los segmentos. Los segmentos son los trozitos del separados del prompt. Solución al machaque insensible, pues copiarte el fichero de configuración del sistema y modificarlo a tu gusto.

Entonces tienes que hacer:

$ cd ~
$ mkdir -p .config/powerline/themes/shell/
$ cp /usr/share/powerline/config_files/themes/shell/default.json /home/<usuario>/.config/powerline/themes/shell/
$ <editor_favorito> /usr/share/powerline/config_files/themes/shell/default.json

Hay plugins para Powerline yo uso powerline-gitstatus, después os cuento como se instala, pero antes os muestro mi configuración, os explico cosas y tal:

{
	"segments": {
		"left": [
			{
				"function": "powerline.segments.common.time.date",
				"priority": 20,
                "args": {
					"format": "%H:%M"
				}
			},
			{
				"function": "powerline.segments.shell.mode"
			},
			{
				"function": "powerline.segments.common.net.hostname",
				"priority": 10
			},
			{
				"function": "powerline.segments.common.env.user",
				"priority": 30
			},
			{
				"function": "powerline.segments.common.env.virtualenv",
				"priority": 50
			},
			{
				"function": "powerline.segments.shell.cwd",
				"priority": 10
			},
			{
                "function": "powerline_gitstatus.gitstatus",
                "priority": 90
            },
            {
				"function": "powerline.segments.shell.jobnum",
				"priority": 20
			},
			{
				"function": "powerline.segments.shell.last_status",
				"priority": 20
			}
		]
	}
}

«Cosas» de la configuración:

  • Es un fichero json
  • Si necesitas saber si la configuración esta bien, Powerline te da un comando para probar si la configuración (usando la de sistema y la tuya a la vez que es como sera) es:
    $ powerline-lint

    Y te devolvera errores o mejor ninguno.

  • Como estamos en Bash, solo usamos el subarray «left«.
  • El orden es de arriba abajo, y en la pantalla saldran de izquierda a derecha.
  • Cada hash, dict, array asociativo o platanos con chocolate (aunque mas o menos se esta poniendo de moda lo de dict) es un segmento (un trozito del prompt), y es:
    • function: el segmento a poner, podeis ver que son en plan modulos de python, «modulo.submodulo.submodulo.funcion». Y por ver los que hay (hay muchos muchos y muy curiosos en el core y como plugin, que si batería, que si carga de cpu, metereología….) :
      • powerline.segments.common.time.date: segmento para poner fecha y tiempo. Si ya se que en el escritorio, en el movil y puede que en la muñeca tienes un reloj, pero es muy útil para ver a si a ojo cuando lanzaste un comando o cuanto tardo un comando en terminar.
      • powerline.segments.shell.mode: el modo de la shell, si esta en el normal no aparece.
      • powerline.segments.common.net.hostname: el nombre la maquina, solo sale si te conectas a ti mismo por ssh.
      • powerline.segments.common.env.user: el usuario que estas, junto con el anterior poco útil.
      • powerline.segments.common.env.virtualenv: si estas usando virtualenv te pone el nombre. En mi caso tampoco muy útil, todos estos inventos (venv, chroot…) con el invento de docker es el que mas juegas.
      • powerline.segments.shell.cwd: el path donde estas trabajando, vamos como el prompt normal (creo que se puede vitaminar con la configuración).
      • powerline_gitstatus.gitstatus: este es uno que me hizo ponerme serio con powerline, en el segmento te muestra muy resumido mucha información si el directorio es un proyecto git, desde la rama que estas, hasta los commits que tienes pendientes de subir, ficheros añadidos y sin añadir al siguiente commit. Este viene de un plugin externo, después os comento como se instala.
      • powerline.segments.shell.jobnum: no uso mucho el rollo de mandar trabajos a background, pero cuando lo uso mola saber cuando han terminado la ejecución, muestra en amarillo un contador de trabajos en background. También útil cuando se te escapa un & y no te has dado cuenta que has mandado a background una ejecución.
      • powerline.segments.shell.last_status: otro muy útil, ya sabéis que en GNU/Linux cualquier comando que lances devuelve 0 si ha terminado correctamente y un numero distinto si mal. Este segmento solo aparece cuando el ultimo comando ha salido mal y en un rojo alarma, muy útil porque hay comando que no devuelven ninguna salida de texto pero si petan.
    • priority: un valor numerico que dice la prioridad del segmento en mostrarse, se ocultan primero los que tienen los numeros mas grandes, cuando:
      • la linea de prompt es mas grande que el ancho de ventana/pantalla.
      • cuando supera un espacio para dejar el escribir al usuario, en principio se puede configurar pero no funciona creo que apesta a bug.
    • args: es un dict json donde pasarle parametros al segmento para personalizarlo, el único que tengo configurado yo es el del tiempo que le he puesto solo para mostrarme las horas y minutos, hay que mirar en la documentación del segmento que parametros acepta:
      "args": {
      	"format": "%H:%M"
      }

Y ya esta, no es muy complicado, después hay ficheros de configuración de powerline o para separar la configuración de los segmentos de la configuración de diseño, también hay un fichero de configuración de colores, pero con los que vienen por defecto a mi me sobran.

Aunque autocarga la configuración cada vez que se cambia (un hotreloader como dicen los modernos), algunas veces no lo hace y puedes forzar la recarga con:

$ powerline-daemon --replace

Instalar Powerline-gitstatus ,tiene su miga porque no es solo instalarlo hay que meterle configuración de color por defecto si no peta.

Instalarlo es:

$ pip3 install powerline-gitstatus

Y tienes que hacerte los directorios de las configuraciones de colores:

$ mkdir -p /home/<usuario>/.config/powerline/colorschemes/shell

Y después copiar los ficheros (ya sabes que el mergeo no funciona bien) de por defecto del sistema. El solarized no se si es un cargocult pero a mi me petaba el powerline-gitstatus aunque no usara ese esquema de colores, total no molesta mucho:

$ cp /usr/share/powerline/config_files/colorschemes/shell/default.json /home/<usuario>/.config/powerline/colorschemes
/shell
$ cp /usr/share/powerline/config_files/colorschemes/shell/solarized.json /home/<usuario>/.config/powerline/colorschemes
/shell

Y añadir el juego de colores de powerline-gitstatus, por no liar os pego los dos ficheros mios, pero basicamente son los valores para powerline-gitstatus:

default.json

{
	"name": "Default color scheme for shell prompts",
	"groups": {
		"hostname":         { "fg": "brightyellow", "bg": "mediumorange", "attrs": [] },
		"environment":      { "fg": "white", "bg": "darkestgreen", "attrs": [] },
		"mode":             { "fg": "darkestgreen", "bg": "brightgreen", "attrs": ["bold"] },
		"attached_clients": { "fg": "white", "bg": "darkestgreen", "attrs": [] },
	"gitstatus":                 { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch":          { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_clean":    { "fg": "green", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_dirty":    { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_detached": { "fg": "mediumpurple", "bg": "gray2", "attrs": [] },
    "gitstatus_behind":          { "fg": "gray10", "bg": "gray2", "attrs": [] },
    "gitstatus_ahead":           { "fg": "gray10", "bg": "gray2", "attrs": [] },
    "gitstatus_staged":          { "fg": "green", "bg": "gray2", "attrs": [] },
    "gitstatus_unmerged":        { "fg": "brightred", "bg": "gray2", "attrs": [] },
    "gitstatus_changed":         { "fg": "mediumorange", "bg": "gray2", "attrs": [] },
    "gitstatus_untracked":       { "fg": "brightestorange", "bg": "gray2", "attrs": [] },
    "gitstatus_stashed":         { "fg": "darkblue", "bg": "gray2", "attrs": [] },
    "gitstatus:divider":         { "fg": "gray8", "bg": "gray2", "attrs": [] }
	},
	"mode_translations": {
		"vicmd": {
			"groups": {
				"mode": {"fg": "darkestcyan", "bg": "white", "attrs": ["bold"]}
			}
		}
	}
}

solarized.json

{
	"name": "Solarized dark for shell",
	"groups": {
		"mode": { "fg": "solarized:base3", "bg": "solarized:green", "attrs": ["bold"] },
        	"gitstatus":                 { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch":          { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_clean":    { "fg": "green", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_dirty":    { "fg": "gray8", "bg": "gray2", "attrs": [] },
    "gitstatus_branch_detached": { "fg": "mediumpurple", "bg": "gray2", "attrs": [] },
    "gitstatus_behind":          { "fg": "gray10", "bg": "gray2", "attrs": [] },
    "gitstatus_ahead":           { "fg": "gray10", "bg": "gray2", "attrs": [] },
    "gitstatus_staged":          { "fg": "green", "bg": "gray2", "attrs": [] },
    "gitstatus_unmerged":        { "fg": "brightred", "bg": "gray2", "attrs": [] },
    "gitstatus_changed":         { "fg": "mediumorange", "bg": "gray2", "attrs": [] },
    "gitstatus_untracked":       { "fg": "brightestorange", "bg": "gray2", "attrs": [] },
    "gitstatus_stashed":         { "fg": "darkblue", "bg": "gray2", "attrs": [] },
    "gitstatus:divider":         { "fg": "gray8", "bg": "gray2", "attrs": [] }
	},
	"mode_translations": {
		"vicmd": {
			"groups": {
				"mode": { "fg": "solarized:base3", "bg": "solarized:blue", "attrs": ["bold"] }
			}
		}
	}
}

Y ya sabéis si un restart del powerline-daemon y ya esta.

Y bueno por finalizar el articulo, os pongo los segmentos que echo en falta y que creo que no existen:

  • Un segmento que muestre el estado del watson es un tracker/contador de tiempo desde terminal (escrito en python) para en el curro cuando te preguntan en que has estado trabajando decir pues «he estado X horas mierda que necesita este cliente» yo antes usaba Hamster Applet pero se han metido en una rescritura del proyecto y se han cargado el soporte para cualquier cosa que no sea Gnome3.
  • Un segmento que muestre estado del docker (actualización: si hay…os debo un articulo), rollo contenedores levantados, caidos y alguna cosa mas.
  • Un segmento que te avise que el directorio es un montaje sshfs o así.
  • Un segmento que muestre un cita rollo el fortune.
  • Un segmento que muestre un string desde un api web o así, para enganchar resultados deportivos, valores de criptomonedas o votos en meneame.
  • Lo mismo pero pasando como argumento un comando a ejecutar.
  • La tragaperras que se hizo años para elbinario .

Y falta un awesome_list de powerline en el m$-github.

Domesticando SQLite

Le tengo cariño a SQLite aunque no pase mucho con el, ni siquiera los findes vamos al parque a echar pan duro a los patos. Eso de tener una base de datos embebida en cualquier programa que piques o una base de datos tirando de un fichero y un cli es mágico en esta época de microservicios y apis y miles de capas.

Me recuerda también a Lua otro invento que también le tengo cariño pero menos tiempo paso con el, porque este es un lenguaje de programación para añadirlo a tus proyectos y tener un punto abierto para que la gente extienda y haga locuras con tu proyecto en forma de extensiones, plugins, mods…desde un entorno mas o menos seguro.

Pues parece que se ha vuelto a poner de moda SQLite, pero los tutoriales que he encontrado por ahí…y no quiero señalar a nadie, hablan de como instalarlo y lo bonito que es y tal.

Pero nadie habla de lo malo de SQLite, algo que descubres cuando pasas tiempo con el…y es que parece pregunta típica y tópica de entrevista de trabajo, «Del lenguaje PliPli….dime que cosas te gustan y que cosas no te gustan.».

Y una cosa que nadie trata es que SQLite es muy espartano en relación a un PostgreSQL o un MariaDB (MySQL como Belalugosi is dead), como simil o metafora, es como pasar de un Python o un lenguaje de muy alto nivel a ensamblador.

Ya que estamos hablando de Bela Lugosi is Dead, la mejor adaptación del tema original (salvo que Marilyn Manson haga una y sea decente porque últimamente el chico anda de capa baja) de Opera IX:

SQLite no trae chequeo de tipos de columnas

 

Puedes meter un entero en una columna de texto y al revés y se queda tan pancho el SQLite y no es un bug, aquí tenéis la explicación.: SQLite lets me insert a string into a database column of type integer!

Pero se puede arreglar con:

create table test (
   id integer check(typeof(id) = 'integer'),
   name "text" check(typeof("text") = 'text')
);

Y aquí, se acaba la lista de cosas….porque iba a hablar de las foreing keys, pero mira que soy perro viejo que recuerdo que hace unos años no tenía y he mirado se introdujeron en el 2009, espero que mi memoria no me falle y es porque no estaba esa versión en las distros hasta mas tarde.

Y por cierto otra cosa que me encanta de SQLite que cuando hace poco años, los SJW y demás calaña (pero en serio que calaña de gente, no hace nada mas que intoxicar los colectivos en vez de ayudar y si quiere poner su granito de arena de su ideología) se pusieron serios con mierdas de códigos de conducta, el creador D. Richard Hipp en vez de bajarse los pantalones, pues dijo «queréis código conducta, pues toma código conducta» y adopto para el proyecto las reglas de los templarios del siglo VI.