Recomendación del articulo «Introducción a los “roguelikes”» de Laertes

Gracias a un canal de un podcast (la gente del ACHUS) el señor Laertes nos ha recomendado un articulo que escribió hace casi 10 años sobre ese género de videojuego que tanto me gusta, los roguelikes .

Bueno sin mas el link donde esta el artículo:

Introducción a los “roguelikes” por Laertes | El Cedazo

Lo que mas me ha gustado del articulo ha sido que se nota que esta escrito desde el corazón porque tiene mucho mimo por explicar bien bien las cosas para que la gente entienda de que va el género de los Roguelikes y da pequeños datos para picar a la gente, como lo de partidas de años. Además es curioso porque es como una foto fija de hace 10 años de como estaba el género, curioso es que ya nombra al padre del Cataclysm DDA por ejemplo o que ya existia el wiki Roguebasin.

Juegos cerrados pero buenos en formato Shareware/Donationware en Steam

Que te cuente en pleno 2020 (bueno 2021) que existe juegos shareware aunque ahora los llaman donationware. Pues si en Steam he encontrado 2 muy buenos juegos que son gratis y completos …pero no son software libre…

El primero, es el típico juego que en España descubrimos de rebote en esos CDs repletos de roms, y te encontrabas con un juego llamado mariopicross.gb y pensabas…bueno pues voy a probar este juego raruno…y no salía el Mario saltando como otras veces era un juego en puzzle…y lo que enganchaba el cabroncete que gran juego que nunca llego por los cauces comerciales.

Cuando triunfo el sudoku (recuerdo cierto blog que lo puso de moda, pero que ahora es un innombrable porque se siguen llamando blog y no tienen comentarios, los quitaron y no volvieron) pues recuerdo que en los primeros sudokus en papel que compre venia….coño venia el Mario Picross creía que lo había inventando Nint€ndo pero no…como la buena Di$ney copia todo y denuncia a todos, al igual que los abueletes aqui llevan su revistilla de crucigramas por las tierras del sol naciente tienen los nonogramas, sudokus y demás cosas curiosas.

Pasaron los años, intente y lo deje a medias un TuxPicross con mi querida librería libre de videojuegos SDL y C, después nuestro amigo del Putty, si ese software que usan los desgraciados que van de «admin de sistemas» pero no son capaces de tener un GNU/Linux en la computadora…en serio he visto desgraciaditos así y lo peor en empresas que en su momento hacían software libre (después solo era un trueque de dinero por sufrimiento de los trabajadores), yo los hubiera despedido, no sabes hacer un ssh porque no sabes instalarte un GNU/Linux a la puta calle.

Pero eso en el pasado muy muy pasado (cuando no había internet en el bolsillo ni en las casas) pasado los años gracias a CDlibre el señor del Putty, que tiene nombre impronunciable nos obsequio con su suckless y simple (recomendanble en Android) Simon Tatham’s Portable Puzzle Collection y ahí estaba mi queridos Nonogramas con el nombre de Pattern los cuales eran generados procedualmente y en vez de sprites del lore del Mario, eran «manchas de rochas» que podían sacar traumas o enfermedades mentales escondidas en el subsconsciente.

Por cierto ahora que lo pienso gracias al Netflix, es fácil de hacer regla nemotécnica para el apellido del señor Simon, la musiquilla del Netflix el «seeegaaaa» de los 90, que es el tambor ese de ta-tammm, si algún día lo conozco y no es muy sieso, se lo diré que me aprendí su apellido con el ta-taaaam del netflix.

Bueno pues el shareware de picross que es gratis y recomiendo de Steam.

Picross Touch en Steam para GNU/Linux

Cosas malas, ojala me leyera el autor, que muy bien que sea nativo para GNU/Linux pero esta programado en el asqueroso Unity3D en vez del Godot.

Y el otro juego es de una empresa que a parte también se pronuncia y se recuerda muy mal como Simon Ta—tammmm es la gente de Zacatronic….no no escribe así con lo fácil que hubiera sido, se llaman Zachtronics .

Esta gente los tengo en un huequito en el corazón junto con Introversion Software, por las mismas razones, porque son gente muy muy libres, solo les faltaría ser cooperativa para ser ya un dejarme que os envié un jamón majetes, son libres porque hacen lo que le sale del culo y molan mil sus juegos y además los tienen nativos de GNU/Linux de antes de Steam y todo, ya para que les enviara 2 jamones si liberaran código….

Bueno pues los de Zachtronics (o para nosotros con cariño zacatronic) a parte de inventar el Minecraft y el cabrón del Notch copiarlo, han vuelto a traer con mucha fuerza el género videojueguil que estaba a la sombra de videojuegos de programación como el mítico corewars, pues este año 2021 sacaron un trailer de su nuevo videjuego….y….era un solitario multijugador….¿Pero?¿Pero? Que son zacatronic como les ha dado por hacer un solitario…serán vagos.

Pues es un juegazo, se basa en una forma de jugar al solitario con varios jugadores que se llama Nerfz, ha sido probarlo y encontrar un juego ultrarápido que te hace engrasar las neuronas. Cuentan que en la hora de la comida en el curro dentro de Zacatronic les daba por jugar al Nerfz en físico y así a los meses pensaron…pues porque no hacemos nuestro propio juego con casinos y furcias.

Como otras veces, los videos no hacen justicia a la jugabilidad, fue un día aburrido que me dio por buscar que juegos gratis había en Steam y saque este, el de Picross también y mucha basura.

Nerts! en Steam para GNU/Linux

Una cosa curiosa es que no tiene ningún chat, mucho hipster del videojuego hablaba de un juego de Play3 o 4 no recuerdo de unos como fantasmas sobre el desierto que se jugaba online y que eran mudos y que era una experiencia, pues aquí lo tienes mas y mejor (porque funciona nativo en GNU/Linux) con punteros de ratón de colores de los contrincantes.

Música para concentrarme programando o haciendo alguna otra labor en el ordenador

Antes cuando era un mozo de pelo largo y camisetas metaleras, me ponía super místico con bandas de ethereal como Arcana. o rollos mas animados como Lacrimosa.

Pero desde hace unos años me pongo el video falso de la peli de pokemon que tiene una canción rollo el programa de gimnasia y aerobic  ochentero de TVE1 que da buen rollete y ánimos para estar picando código hasta altas horas de la noche sin café y sin infusión de mate  (una mentira de los hackers argentinos…las distintas prueba que he hecho han terminado en grandiosas siestas después de comer en algún restaurante argentino y pedir una infusión de mate):

Lo mejor de todo es como cuando en mis tiempos mozos en Retecal TV lo ponía de fondo el canal Calle13 el programa de CementerioTV que nunca pasaba nada y te acompañaba, pues aquí igual, pasados los primeros minutos no hay nada mas que música y en bucle, por lo tanto no te pierdes nada y entras en trance.

Odio Postman: Alternativas en software libre (de verdad) al asqueroso Postman

¿Por qué odio Postman?

  • Porque no es software libre de verdad. Nada mas abrirlo te pide registrate en su servicio online, si no viene capado de serie. Hay otros proyectos de software libre como NextCloud que te dan la alternativa de usar «su nube» o no, pero estos no, son rollo JetBrains de repartir droga a la puerta del colegio en busca de nuevos jonkis.
  •  Bloadware, ya sabéis y no lo sabéis ahora os lo digo, soy fan de la filosofía kiss y suckless. Y el puñetero Postman es un bicho de casi 200 mb (porque tiene Electron dentro) para un interfaz incomible.
  • No es fácil de usar. ¿Cómo se hace para meter un JWT de forma fácil y automática? Supongo que tendrá algo parecido a pipelines pero no lo he encontrado. Y lo peor, te obliga (porque es Electron) a usar javascript si quieres scriptarlo.

Alternativas CLI a Postman

Dicho esto, que soluciones tenemos para jugar con API RESTFul y cositas en swagger en GNU/Linux. Ya sabéis, es lo que toca cuando eres fullstack engineer o un doctor brown.

OJO aviso (para evitar sustos): La lista de alternativas son CLI por que, digan lo que digan con un –help y autocompletado (usa tu amiga la tecla tabulador) cualquier herramienta CLI le da mil vueltas en facilidad a cualquier herramienta de botoncitos y dando vueltas con el ratoncito, además menos es mas, y cuanto menos CPU, RAM y disco duro te consuma la herramiento mejor.

  • Curl : el viejo y confiable curl te saca de un aprieto como netcat  o telnet sin pedirte nada a cambio, es que son un primor.
    • (ventaja/pro) viene en todas las distribuciones de GNU/Linux de base sin instalar nada y en casi todos los lenguajes de script python, etc. Entonces es un estándar.
    • (desventaja/contra) es un caos los parámetros…aunque cuando te haces un par de snippets o recetas con los que mas usas, vives feliz…el problema cuando quieres hacer algo raro. Truco: Firefox o Chromium si no conoces el panel de depuración web…ya estas tardando, porque en la pestaña de «network» puedes ver las llamadas al API y copiar/guardar «as Curl».
  • HTTPie : Le tengo mucho cariño a esta herramienta porque con cuatro lineas de bash puedes hacer cualquier cosa contra un API.
    • (ventaja/pro) es muy muy fácil de usar, la descripción del proyecto es «CLI, cURL-like tool for humans».
    • (desventaja/contra) bueno para algunos es que «es python» pero bueno estreñidos hay por el mundo además en Debian hay paquete httpie y si hay paquete en Debian es un estándar y punto.
  • HTTP Prompt: Es un subproyecto de la gente de HTTPie, la pena es no le dan muchos mimos a este proyecto y tiene fallos, pero es super curioso como plantea el API como si fuera un árbol de directorios.
    • (ventaja/pro) es muy fácil de usar y puede comerse el «spec» del API para autogenerar el CLI.
    • (desventaja/contra) esta un pelín verde y tiene fallos.

Como usar HTTPie

Primero hay que instalarlo, puedes o desde pip :

$ sudo pip3 install -U httpie

O desde (si es Debian o alguna derivada como Ubuntu o Linux Mint):

$ sudo apt install httpie

Hay un plugin muy interesante para soportar jwt que mas o menos es un estándar de login y mantenter sesión para comunicarse con APIs aunque hay plugins para mas estándares como Oauth2 y así. Para instalarlo, este si es necesario de momento pip porque no esta empaquetado en Debian:

$ sudo pip3 install -U httpie-jwt-auth

Aunque en algún ejemplo siguiente te enseñare que casi no es necesario mas que para ahorrase unas lineas en bash.

Por cierto la combinación httpie + jq es mucho mejor que el melón con jamón. Si no conoces jq ya estas tardando porque es el como un grep hipervitaminado de los json.

la sintaxis de httpie es:

http <verbo POST|PUT|GET> <url_endpoint> <parámetros header|get|post> <opciones_httpie>

Ejemplos con HTTPie

Usando como base publicapis.org que es un proyecto muy interesante que guarda y lista APIs públicas de muchos tipos.

Vamos a poner un par de ejemplos reales:

Sacar las categorías de publicapis

Tan simple como lanzarle un get a la enpoint de categorías

$ http get https://api.publicapis.org/categories
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 716
Content-Type: application/json
Date: Sun, 17 Oct 2021 21:22:49 GMT
Server: Caddy
X-Rate-Limit-Duration: 1
X-Rate-Limit-Limit: 10.00
X-Rate-Limit-Request-Forwarded-For: 89.219.91.239
X-Rate-Limit-Request-Remote-Addr: 172.17.0.1:49224

[
    "Animals",
    "Anime",
    "Anti-Malware",
    "Art & Design",
    "Authentication",
    "Blockchain",
    "Books",
    "Business",
    "Calendar",
    "Cloud Storage & File Sharing",
    "Continuous Integration",
    "Cryptocurrency",
    "Currency Exchange",
    "Data Validation",
    "Development",
    "Dictionaries",
    "Documents & Productivity",
    "Entertainment",
    "Environment",
    "Events",
    "Finance",
    "Food & Drink",
    "Games & Comics",
    "Geocoding",
    "Government",
    "Health",
    "Jobs",
    "Machine Learning",
    "Music",
    "News",
    "Open Data",
    "Open Source Projects",
    "Patent",
    "Personality",
    "Phone",
    "Photography",
    "Science & Math",
    "Security",
    "Shopping",
    "Social",
    "Sports & Fitness",
    "Test Data",
    "Text Analysis",
    "Tracking",
    "Transportation",
    "URL Shorteners",
    "Vehicle",
    "Video",
    "Weather"
]

Y por ejemplo usando jq para sacar la lista de API relacionados con la música los parámetros get se ponen como == :

$ http https://api.publicapis.org/entries category=="Music" | jq ".count"
31

Guardar el json de los API relacionados con la música

$ http https://api.publicapis.org/entries category=="Music" > /tmp/music.json

Y revisando el listado me fije que teniamos a mi querido jamendo pero también se puede filtrar con ayuda de jq la entrada de este proyecto de música libre:

$ http https://api.publicapis.org/entries category=="Music" | jq '.entries | .[] | select(.API=="Jamendo")'

Y para hacer un post de un formulario los parámetros se separan con = , la gente de httpie tiene un api simple para hacer pruebas:

$ http --form POST pie.dev/post name='John Smith'
HTTP/1.1 200 OK
CF-Cache-Status: DYNAMIC
CF-RAY: 69fd13e64d786611-MAD
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Sun, 17 Oct 2021 22:49:01 GMT
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=FhO29LNgr1Dn0bY%2FDOESxrq5o%2BR5tePJpkCOElIS0asl4hDNC6uhN%2F8EYa4NU37kSUEqfMrHvKt6OMJh4s4rZ4BCSPQawxVVpT%2FQ0Q1KJAfq%2FcIG0yn01Zop"}],"group":"cf-nel","max_age":604800}
Server: cloudflare
Transfer-Encoding: chunked
access-control-allow-credentials: true
access-control-allow-origin: *
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443"; ma=86400

{
    "args": {},
    "data": "",
    "files": {},
    "form": {
        "name": "John Smith"
    },
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip",
        "Cdn-Loop": "cloudflare",
        "Cf-Connecting-Ip": "87.219.94.239",
        "Cf-Ipcountry": "ES",
        "Cf-Ray": "69fd13e64d786611-FRA",
        "Cf-Visitor": "{\"scheme\":\"http\"}",
        "Connection": "Keep-Alive",
        "Content-Length": "15",
        "Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
        "Host": "pie.dev",
        "User-Agent": "HTTPie/2.6.0"
    },
    "json": null,
    "origin": "87.219.94.239",
    "url": "http://pie.dev/post"
}

Hacer un post de un json a un API, yo lo hago en dos partes para trabajar tranquilamente en el terminal:

$ json="{\"name\": \"pepito\", \"description\": \"El pinocho.\", \"color\": \"shitbrown\"}"
$ echo "$json" | http POST http://127.0.0.1:8080/api/v1/prueba

Y subir un fichero es tan simple (en comparación con curl) como, donde fichero es nombre del parámetro de fichero:

$ http POST "http://127.0.0.1:8080/api/v1/uploads/" fichero@"file.png"

Si necesitas cookies o guardar algún tipo de sesión, lo puedes hacer como por ejemplo:

$ http --session=/tmp/caca.json POST http://127.0.0.1:8080/api/v1/auth

Y después el típico jwt lo puedes hacer a mano con por ejemplo:

user="usuario"
password="mi voz es mi pasaporte, verifícame"

$ passhash=$(echo -n "$password" | sha256sum | cut -d" " -f1)
$ jwt=$(echo "{ \"username\": \"$user\", \"password\": \"$passhash\" }" | http POST http://127.0.0.1:8080/api/v1/auth | jq .token -r)

En este ejemplo ya con ayuda de jq he metido en la variable $jwt el token para usarlo por ejemplo en las siguientes llamadas:

$ http GET http://127.0.0.1:8080/api/v1/caballos Authorization:"Bearer $jwt"

El parámetro Authorization es un parametro del header que le mandamos, httpie lo detecta por el : .

Y ahí le metemos tal cual dice el estandár de jwt el token de autorización.

Pero también se puede hacer con el plúgin httpie-jwt-auth mas sencillo y con menos lineas:

$ http GET http://127.0.0.1:8080/api/v1/caballos --auth-type=jwt --auth="$jwt"

O metiendo la variable como variable de entorno

$ export JWT_AUTH_TOKEN=$jwt
$ http GET http://127.0.0.1:8080/api/v1/caballos --auth-type=jwt

Y los script en bash es que son tan legibles con httpie, porque empiezas con un login y después con la ristra de acciones que tienes que ir haciendo.

Zorb.io una versión libre y en 3D del Agar.io

Agar.io es un juego online que tuvo su momento de fama hace unos años, era divertido jugar a simular una célula comiendo otras en una especie de placa de petri visto desde un microscopio.

Pero el problema es que no era libre.

Ahora la gente de RedHat ha iniciado un pequeño proyecto llamado https://arcade.redhat.com/ no se si esta en pañales o que porque es una página web con un puñado de juegos libres hechos para que funcionen en navegador usando variadas tecnologías desde Godot ha javascript y muchas librerías. Me gustaría saber que tienen pensado con este «subproyecto».

El que mas me ha gustado ha sido https://github.com/ScriptaGames/zorbio (actualización: antes tenía web pero esta caída, pero este es repositorio del proyecto) que es eso el Agario pero en 3D y libre como dice el título.

Aquí al ser esferas (ojo al skin de la esfera de la demo famosa de Amiga) da la sensación que es la lucha interplanetaria entre planetas comiendose unos a otros, o engordando de forma vegana comiendote las constelaciones de símbolos de vida que hay en el espacio.

El control es simple, te mueves cual FPS con el ratón y el botón izquierdo sirve para acelerar (perdiendo masa del planeta y haciéndote mas pequeño), y el botón derecho para frenar y poder hacer giros mas cercanos.

Los planetas con aro rojo son mas gordos que tu y te pueden comer, los amarillos si empujas te los puedes comer tu, y finalmente los verdes son bocadillo de chorizo fácil de incar el diente.

Pero cuanto mas gordo mas lento (como el Agario).

El juego es online, pero hay planetas controlados por inteligencia artificial de distinto tamaño que van apareciendo en el espacio, de vez en cuando se conecta alguna persona humana, yo habré visto en estos 2 días que he jugado un par de horas 4 personas en total en ese periodo.

Curioso y recomendable.

WikiIndex: Una gran iniciativa que esta muerta

Da penita ver grandes ideas tiradas y agonizando sobre la red de redes. WikiIndex es de esas, la idea es cojonuda, un wiki que liste los wikis que hay por ahí en internet (señores se puede salir de la 1º página de resultados de búsqueda del google y usar listados confeccionados por otros humanos).

Pues navegando por los distintos wikis de la categoría de cultura libre, muchos de ellos apuntan al triste fósil en archive org

Mean.tv una cooperativa de streaming de video

En este mundo del netflix, amazon prime, disney y miles mas….que cada vez es mas difícil ver películas y series, salvo que pagues por todas….ríete tu de tener un video beta en los ochenta e ir al videoclub, porque esto es un infierno. Y luego el rollo de que las pelis o series caducan y si no tienes el momento (como la vida es tan pausada) para verlo, desaparece y no vuelve. Normal que la gente este volviendo a las redes P2P para ver cine y series.

Pues ahora tenemos también una cooperativa de cine/series indie nacida en el Detroit americano postcapitalista de 2019.

https://means.tv/

Un touch pero que también me cree todo el path

Es de esas cosas tontas que haces con dos comandos primero un:

$ mkdir -p <path>

Y después un:

$ touch <fichero>

Pero se puede hacer del tirón como:

$ install -D /dev/null /home/md/.config/nvim/init.vim

Donde -D es para hacer que cree todo el path. Y el /dev/null para que copie el fichero mágico de los Unix y los GNU/Linux de tamaño 0.

Lo encontré buscando como crear el init.vim para neovim de un tirón en: mkdir -p for files

Neovim pre 0.5 LSP o como mandar a tomar por culo a los cabrones de JetBrains

Me gustaría decirlo para Vim fue mi primer amor, no acabamos de entendernos pero nos queríamos mucho, paso el tiempo y nos separamos, pero me quise en serio y después descubrí NVim o NeoVim y en ese estoy…de casualidad coincidió con la famosa versión 0.5 …pero claro como buen usuario perro viejo, no voy navegando la cresta de la ola porque no me gusta darme la hostia y por ejemplo en Debian Testing la versión de neovim es:

$ apt list neovim
Listing... Done
neovim/testing 0.4.4-1 amd64

Y con eso me remangue las manos y  a base de muchos cabezazos le metí soporte de LSP.

«¿Pero…qué es LSP Miguel?»

LSP con mucha mucha desgracia es un puto invento de Micro$oft, aunque no lo parece, pero porque funciona bien, y es un protocolo basado en JSON RPC en plan anillo único, porque intenta estar entre medias de los editores y los «programas que ayudan a programar».

Normalmente los IDE son monolíticos y vienen todo metido, y este invento separa el IDE por un lado, entre medias el LSP y por el otro el servidor de lenguaje. Y esto ayuda a que se puedan hacer potentes servidores de lenguaje (como la gente de Rust) y no hacer un invento para cada IDE. Es muy disruptivo porque ya no sería necesario usar IDE piticlin para programar en algún lenguaje asqueroso de esos que es verboso y con mas capas de de lasaña..porque la gente hace las cosas tan difíciles adrede….

Por cierto hablando de IDEs, hay mucho desgraciado (he conocido mucho con portátil de manzanita) que no sabe mergear un branch de git a mano sin un IDE de jetbrains, y es una pena que gente así sea tan dependiente de la magia de un IDE y lo peor que sean tan arrogantes cuando no son nadie sin la magia que no viene de sus propias manos.

«¿Pero…cómo Miguel?»

  • Instalar nvim por ejemplo:
    $ sudo apt install neovim
  • Instalar un gestor de paquetes para vim/neovim (si hijo si, hasta los platanos van a tener gestores de paquetes…bueno en este caso es útil), hay varios famosos, yo elegí vim-plug (no recuerdo porque) pero en la sección de Install vim-plug neovim tienes la linea de código de curl para instalarlo, que básicamente es ponerlo en los scripts autoload de neovim.
  • Editar el fichero init.vim, ojo que no esta de creado por defecto puedes probar su existencia con el comando :checkhealth  …una vez que tengas el fichero de configuración de neovim, añadir los siguientes plugins en el bloque de plugins de plug, te quedará mas o menos que así:
    "PLUGINS
    call plug#begin()
    <otros_plugins_tuyos>
    Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'do': 'bash install.sh',
    \ }
    Plug 'ncm2/ncm2'
    Plug 'roxma/nvim-yarp'
    <otros_plugins_de_tu_perro>
    call plug#end()
  • Explicación de los plugins:
    • autozimu/LanguageClient-neovim: es el plugin (escrito en Rust) que te da soporte para LSP para versiones pre 0.5 de neovim, creo que hay mas plugins…no recuerdo porque riguroso estudio elegí este plugin frente a otros, creo que porque era el mas optimizado (había otro en python y la gente se quejaba de que comia mucha memoria e iba muy lento, pero este al ser rust…).
    • ncm2/ncm2: este plugin complementa al anterior porque aunque ya tienes LSP solo con el anterior…oye un poco de ayuda visual con popups y mensajes en colorines ayuda mucho, este te lo da.
    • roxma/nvim-yarp: plugin  necesario para ncm2, le da soporte para que el otro haga llamadas remotas.
  • Una vez añadidos, y recargada la configuración (ahora no recuerdo el comando) o reiniciado el neovim, los instalas con:
    :PlugInstall
  • Y ahora te falta ir instalando los servidores de lenguaje, uno a uno, cada uno tiene su forma, te pongo un par, puedes encontrar una lista de lenguajes y proyectos de servidor de lenguajes en https://langserver.org/ pero te pongo los mios:
  • Y después los configure en el init.vim así:
    let g:LanguageClient_serverCommands = {
    \ 'python': ['/usr/local/bin/pylsp'],
    \ 'rust': ['rls'],
    \ 'javascript': ['typescript-language-server', '--stdio'],
    \ 'typescript': ['typescript-language-server', '--stdio'],
    \ 'javascript.jsx': ['typescript-language-server', '--stdio'],
    \ 'typescript.tsx': ['typescript-language-server', '--stdio'],
    \ }
  • También añadí las lineas estas de configuración necesarias para mejorar el funcionamiento de ncm2:» enable ncm2 for all buffers
    autocmd BufEnter * call ncm2#enable_for_buffer()
    » enter inserts newline when completion window is open
    inoremap <expr> <CR> (pumvisible() ? «\<c-y>\<cr>» : «\<CR>»)

    » tab completion
    inoremap <expr> <Tab> pumvisible() ? «\<C-n>» : «\<Tab>»
    inoremap <expr> <S-Tab> pumvisible() ? «\<C-p>» : «\<S-Tab>»

    » IMPORTANT: :help Ncm2PopupOpen for more information
    set completeopt=noinsert,menuone,noselect

  •  Y ya esta.

Tienes funcionalidades iguales a los asquerosos IDEs de JetBrains ocupando megas de memoría frente a Gigas de memoria y kilos de falsedad e hipocresía porque son de los mejores ejemplos de droga a la puerta del colegio porque van del rollo open source cuando su core es privativo y asqueroso para enganchar a los desprevinidos infantes a la siguiente dosis de su droga.

Nota final: Puede que este mintutorial te valga para vim pero no lo he probado. Para 0.5 nvim, ya trae soporte, pero todavía no he tenido el momento de ponerme a probarlo. Y como siempre agradecer a Victorhck por sus tutoriales de vim/neovim que tanto me han ayudado.

Mindustry, mod para tener trucos y cheats

Mindustry es de esas joyas que hay en el software libre, es un videojuego espectacular de estrategia, del subgénero tower defense pero tiene su salsa para no ser un aburrido juego de esos que había en flash.

Originalmente el juego era un demake , si no conoces la palabra es un remake (si no conoces esta, un homenaje o copia del original) pero o para una consola vieja retro, o es actual quitando cosas pero guardando el espíritu y la jugabilidad, pues Mindustry era al principio un demake del Factorio, pero con cada nueva versión nueva mas y mas cosas han cambiado y es un juego muy muy diferente al Factorio pero con cosas en común.

Pues con la salida de la versión 6 con su modo campaña con el famoso planeta divido en hexágonos, vino la dificultad, en serio que he estado semanas (y diría que meses) peleando, buscando y pensando como ganar el modo campaña.

Y me cansé, porque los territorios conquistados que tenías cerca de territorios con base enemiga (sobre todo en el polo norte de ese planeta) eran cada dos por tres atacados, e intentar entrar a esas bases enemigas era misión suicida, centenares de intentos, pero es que las plataformas de lanzamiento son muy lentas para abastecer la maquinaria de guerra cuando estas metido en un fregado de estos, lo he intentado en serio y he sufrido una amarga derrota, una y otra vez.

Y como me cansé, empece a buscar trucos para Mindustry….y por desgracia no hay….pero hay mod (un mod es un parche o script q para activar cheats.

CheatMod

Para instalarlo es tan simple como abrir en el menú de la derecha la sección de Mods .

Y después hay que hacer click en el botón de Importar mod .

Te saldrá otro menú, clicka en el botón Importar Mod de Github.

Te sale una cajita de texto que tienes que copiar y pegar o escribir paulieg626/Cheat que es la dirección del mod en github.

Le clickas en OK y te saldrá la siguiente pantalla con el icono del gatete:

Y pulsas en el botón de Atrás y te dirá que tienes que reiniciar el juego para que se active el mod de los trucos.

Y cuando activas, el título cambiara diciendo que ya tienes los trucos activados:

¿Qué te da este mod?

Pues te da un buen puñado de cosas para construir entre las destacadas:

  • Killing turret: una torreta de coste gratis, con un alcance espectacular una velocidad de tiro exageada y cuando finaliza la trayectoria la bala explota en fragmentos y estas al final también en fragmentos llenando la pantalla de mortiferos fragmentos…ojo que puede ralentizar tu ordenador.
  • Item source: un pozo de los deseos por 0 euros, de ahí salen todos los elementos que elijas hasta el infinito, ya podía haber uno de dinero en la vida real para dejar de tener que pagar un alquiler por un piso para vivir a los asquerosos parásitos de los caseros.
  • Liquid source: igual que item source pero para todos los líquidos que tiene el juego, petroleo, agua, liquido criogénico, magma…vamos una fuente infinita exactamente como dicen la palabra.
  • Energy source: otro edificio espectacular y al igual que los anteriores es una fuente infinita de energía…como las pilas de aquel conejo de juguete de los ochenta.
  • Super protection: no no es un condón para tener sexo con una niña pija del territorio cacerolo, cayetano o simplemente pijofacha. Es un escudo gigante e imposible de romper que se despliega cubriendo una gran superficie de donde pongas el edificio, y sin gastar energía y a coste gratis.
  • Filler: es un edificio que al construirlo, automáticamente en tu contador de minerales y otros elementos se ponen todos 900 millones. Para hacerlo funcionar otra vez, tienes que volver a construirlo.
  • Magic workbench: y por último (hay mas edificios pero para mi estos son los destacados) este edificio que te permite desplegar cualquier unidad y casi cualquier cantidad (tiene un limite de unidades el juego y si lo superas explotan según salen) que te da el juego, ver meganaves disparar rayos en las Puerta de Tannhäuser eso nunca se perderá en tu recuerdo.

    Cuando la tienes construida, al hacer click en este edificio con diana azul, te sale el menú que pongo en la captura de pantalla.

    Te salen las unidades organizadas de menor nivel a mayor (de izquierda a derecha) y agrupadas por tipos, haz click todas las veces que quieras en cada una (es decir si pulsas 5 veces en la araña robótica gigante de último nivel y después 2 al soldado raso, te aparecerán esas unidades), y si después le das al botón de play aparecen al en donde este el cuadrado rojo, Con las flechas mueves el cuadrado rojo. La calavera explota todas tus unidades. Y cada vez que le des al play tienes que darle otra vez repetidos clicks a las unidades que quieres que salgan antes de volver a darle al play, si no no sale nada.

Y hasta ahí el mod para tener trucos en el Mindustry. Pero OJO «un gran poder lleva una gran responsabilidad.» Y te recomiendo no usar trucos hasta que no estés hasta los huevos, porque es la manera mas triste de romper un juego y yo ya he roto así muchos juegos en el pasado, no porque dejen de funcionar si no porque ya no me apetecía jugarlos.

Lo siento solo es un blog.