Todas las entradas de: MD

Embark va por mal camino

Y quién lo dice, pues yo, Miguel, no soy nadie.

Pero esa empresa de Embark que empezó como intentando hacer las cosas bien que si Rust, que si Blender, que si tenemos una página con nuestras cosas de github.

Leí hace años su articulo Embark — our continued journey y ya ví que pincharon, porque si tanto hablan de la comunidad y de no reinventar la rueda, y que quieren hacer herramientas para «democratizar la creación de videojuegos»…..coñe, me siento como una madre cuando tiene que señalar y decir al crío/a «¿Es que no lo ves?¿Es que no lo ves?»…coñe…

Es que no veis Embark que tenéis Godot.

Y hasta ahí el tweet largo, que llegara tan lejos como la caída de una cereza de un almendrero, toma haiku que me he montado.

¡¡Oye que eso esta fuera de las coreutils!! Ahhh es en rust, oioioioi que bonicoooo

Un poco hasta los cojones de la tontería de que sean sustituciones no compatibles de las coreutils en Rust. Como por ejemplo Bat .

A ver me explico me encantan las mejoras, pero no me hagas el sistema lleno de incompatibilidades por ser guay….que esto no es un windoze.

Y si ahí esta el find que duele sus «long option» a lo «short» con:

$ find /tmp -type f -name "una_caca.txt"

Pero a mi lo que me ha «enfadado»…muy entrecomillas es que haya ido a preguntar al chat de de Libera Chat sobre como se usa bien bien getopt que no estoy hablando de getopts.

Pues macho se me han puesto con que eso no es parte de las coreutils, que si blablabla….señores que estoy en GNU/Linux y que lo quiero porque getopts no tiene soporte para las «long option».

Pero eso si, cuando es algo en un golang o rustlang y tiene muchos colorines, la gente se la suda los estándares.

Pues al final lo resolví y me hice un pequeño ejemplo con getopt:

#! /bin/bash

#~ get_opt.example.sh
#~ Copyright (C) 2022 Miguel de Dios Matias

#~ This program is free software: you can redistribute it and/or modify
#~ it under the terms of the GNU General Public License as published by
#~ the Free Software Foundation, either version 3 of the License, or
#~ (at your option) any later version.

#~ This program is distributed in the hope that it will be useful,
#~ but WITHOUT ANY WARRANTY; without even the implied warranty of
#~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#~ GNU General Public License for more details.

#~ You should have received a copy of the GNU General Public License
#~ along with this program. If not, see <http://www.gnu.org/licenses/>.

: '
Examples the calls:

$ ./getopt.example.bash --arg-b 111 -a 2222 3333
argA 1
argB 111
argC 
argD 0
unamedOptions 2222 3333

$ ./getopt.example.bash -a --arg-b=111
argA 1
argB 111
argC 
argD 0
unamedOptions 

$ ./getopt.example.bash -c abc def
argA 0
argB 
argC abc
argD 0
unamedOptions def
'

function help() {
    echo "$0 [(--arg-a | -a)] [(--arg-b | -b) <data_b>] [(--arg-c | -c <data_c>)] [-d] [(--help | -h)]"
}

LONG_OPTION_LIST=(
    "arg-a"
    "arg-b:"
    "arg-c:"
    "help"
)
SORT_OPTION_LIST=(
    "a"
    "b:"
    "c:"
    "d"
    "h"
)
# Read the parameters
opts=$(getopt -q \
  --longoptions "$(printf "%s," "${LONG_OPTION_LIST[@]}")" \
  --name "$(basename "$0")" \
  --options "$(printf "%s" "${SORT_OPTION_LIST[@]}")" \
  -- "$@"
)
eval set -- "$opts"

argA=0
argD=0
unamedOptions=()
# It it is same a queue (process the head) because $1 and $2
while true
do
    case "$1" in
        --arg-a | -a)
            argA=1
            ;;
        --arg-b | -b)
            argB=$2
            shift 1
            ;;
        --arg-c | -c)
            argC=$2
            shift 1
            ;;
        -d)
            argD=1
            ;;
        --help | -h)
            help
            exit 0
            ;;
        --)
            # End options now the unamed options
            ;;
        *)
            unamedOptions+=("$1")
            ;;
    esac
    shift 1
    if [ $# -eq 0 ]
    then
        break
    fi
done

echo "argA $argA"
echo "argB $argB"
echo "argC $argC"
echo "argD $argD"
echo "unamedOptions ${unamedOptions[@]}"

Te da asco twitch y quieres convertirlo en un La2

Desde hace 1 año o así estoy como prosumidor en Twitch, la red social de moda de videos (dejando de lado Tiktok y youtube).

La verdad es que es un basurero de videos:

  • de tías en bikini o poca ropa lamiendo y besando micrófonos con forma de orejas de plástico.
  • de traders que realmente son niñatos neoliberales pobres en el dormitorio de sus papas
  • de comentaristas de fútbol…por dios volador del espagueti que ya tenemos las teles, periódicos y las radios soltando todo el rato fútbol, fútbol…
  • de juegos comerciales e insulsos
  • de Andorranos que no pagan impuestos en España (ojala se pongan enfermos cuando estén USA no tengan dinero para pagarse el hospital privado y se MUERAN, si repito deseo que se MUERAN esos cabrones que NO PAGAN IMPUESTOS y cuales futbolistas que meten mierda en la cabeza a la gente joven diciendo que es guay ser cabrones). Es que, que hijos de puta mas egoístas y malas personas.

Pues gracias a Fanta que me pregunto por una extensión para navegador para bloquear cosas en twich…pues estaba con el runrun en la cabeza.

Y la encontré Unwanted Twitch:

Una vez instalado te saldrá en la barrita de arriba un botón con acceso al panel de configuración de Unwanted Twitch, el botón aparece gris cuando no estas navegando por la página de twitch, no es muy necesario entrar porque puedes hacerlo desde fuera todo:

¿Pero Miguel no me has dicho que hace plugin? ¿Hackea los drones de bastardos unidos para meterles un tiro en la frente a los twitcheros insolirarios que se han ido de España pero siguen vendiendo sus productos inculturales en España?

No, no…ya podía ser como el episodio de las abejas de Black Mirror…pero no.

Vas seleccionando la mierda que no quieras ver que puede ser:

  • twitcheros de mierda
  • etiquetas de mierda
  • categorías (o juegos de mierda)
  • regex (para casar titulos de emisones de mierda)

Lo que hace es quitarte de casi todos los sitios (del carrusel de vídeos de la home de twitch sale basura) pero de la página te limpia de mierda los:

  • Barra de la izquierda:
    • Canales que sigo, incluso sigues a un/a muchacho/a que hace videos de videojuegos retro o sigues a un pavo/a que hace videos de videojuegos de software libre, te desaparece de ahí si le da por hacer un video de mierda en una categoría/etiqueta/regex_titulo de mierda, lo siento mi tiempo es mas importante que el tuyo y mis pixeles de la pantalla también…si quieres emitir una partida del juego de futbol de mierda del Fifa lo siento «no existes».
    • Canales recomendados, sigue saliendo mierda…o eso creo.
  • Página de siguiendo, te limpia de mierda los canales recomendados. Y en directo también te limpia de mierda.
  • Página de explorar, ahí es una gran delicia en canales en directo te quita pero mierda, pero mierda, mierda a paladas, te queda una lista de canales mucho clara y encuentras cosas interesantes, por ejemplo yo he encontrado twitcheros que juegan al Wargames de los de cartoncitos de antes en mi querido pero viejo Vassal para jugar, o canales con partidas del ajedrez japones (o Shogi). Todas esas cosas buenas se perderán como lagrimas en el mar de mierda. En serio es un cambio brutal. Y también en la pestaña de Categorías también te limpia de tarjetas de categorías de mierda y juegos de mierda.

Un par de screenshots o capturas de pantalla del antes y después (ojo que son echas por la mañana en diario en España, porque en España cuando hay mucho jaleo y emisiones es por la tarde noche.

Y como es la página sin plugin o desactivado (OJO A LA CANTIDAD DE MIERDA):

Ahí esta el insolirario de elmorenus y una twitchera famosa que lame y besa orejas de plástico.

Para volver a sufrir en twitch en el icono de arriba de la barrita te sale un menú pues tan simple con darle al botón de deshabilitar:

¿Y como se saca la lejía para limpiar de mierda twitch?

Pues tan simple como según vas navegando darle al botón de la X que te aparece sobre las tarjetas de canales o categorias/juegos, y en etiquetas pero ojo abajo de la tarjeta del video que se ilumina en morado, la de arriba del buscador no esa es para quitar la etiqueta en el filtrado.

Aquí si es para eliminar mierda etiquetada con esa etiqueta:

Es curioso porque una vez aplicado Unwanted Twitch el twitch parece como sintonizaras La2 y vieras cosas interesantes…y eso que me queda mucha mierda que quitar y nueva mierda que aparece para eliminar.

El botón de Gestionar Lista Negra que esta en el menú que te lanza el icono de arriba de la extensión, te abre una pestaña interna de la extensión donde viene la lista de mierdas que limpias organizadas por cajas verticales:

Y en especial os enseño la lista de twitcheros de mierda bloqueados…que da un gustirrinin mandarlos a tomar por culo en el acantilado de no hacerles ni puto caso, no existen ese el castigo como un castillo (salvo en esta lista):

De momento solo hay 14 desgraciaos/as, los que han ido apareciendo delante de mi mirilla de francotirador, ya irán apareciendo mas, que me ha recordado buen temazo de DefConDos la de Blanco Perfecto.

Y a parte de la salud mental que te da este plugin para navegadores, ayuda a la sociedad, porque si no los ves a los twitcheros insolidarios de mierda que no pagan impuestos en España, pues ganaran menos dinero de la publicidad y menos impacto entre la gente porque no hablaran de ellos cuando vayas con el vecino desconocido en el ascensor. No sería gracioso ver en el burriquin o el WC Donalds ver detrás del mostrador a un twitchero andorrano volviendo a ser clase trabajadora preguntándote si quieres ketchup en la patatas.

Taller EsLibre2020: Creación de juegos 2D/3D con Godot Engine

Ya os escribí sobre una charleta que me encanto de la de la neoHispalinux con el nombre de EsLibre hace unos días en el articulo de Conferencia EsLibre 2020: Jesús García García «Comunicar el impacto social de la industria del software libre».

Pues he seguido escuchando las conferencias de ese año 2020.

Y he encontrado otra del mítico Godot un motor software libre para hacer videojuegos, la da Alvaro del Castillo San Felix que es otra figura del mundo del software libre aquí en España.

A parte de didáctica,  es super curiosa la charla porque es un poco ya retro-informatica (ya que habla del Godot de hace 2 años) y te quedas tonto porque ya estaba impactando, siendo canela fina, es un buen bizcocho que se esta haciendo a fuego lento en el horno.

También la he subido a la web de los compas de fediverse.tv :

Conferencia EsLibre 2020: Jesús García García «Comunicar el impacto social de la industria del software libre».

Estoy escuchando las conferencias del EsLibre 2020 (si, lo estoy haciendo en 2022 pero bueno) que el congreso de EsLibre es directo heredero de las viejas jornadas de Hispalinux.

Son todas espectaculares pero de momento recomiendo la de: Jesús García García «Comunicar el impacto social de la industria del software libre».

Que me ha encantado porque habla de los problemas que nos trae el capitalismo al software libre, mola porque deja unos chascarrillos muy interesantes mientras habla sin caer la trampa del kalimotxo, vamos que le podría escupir a la cara esta conferencia al puto de Amancio Ortega (o a su hija…que por meritocracia va ser la jefa ahora) y no poder rechistare nada ni que le ha hablado mal ni que le ha insultado.

Gracias a la gente del fediverse.tv por ofrecer esta manera de compartir videos, compartiendo los vídeos (si da la casualidad de que hay varias personas viendolo por websockets y P2P).

Jugando a Mindustry

Bueno una vez resuelto el entuerto con Twitch (tienen un bugillo con los emails para recuperar contraseña), bueno pues un año después lo he saltado y he recuperado la contraseña.

Y bueno pues al tajo, he vuelto hacer streamings jugando a videojuegos software libre.

Y gracias a la gente de fediverse.tv que nos da el servicio de subir videos (y streaming a lo twitch que he hecho una pruebilla).

Pues aquí están los vídeos de mis partidas de hoy, estoy enseñando a jugar al Mindustry comenzando el modo campaña ( o historia) de cero (limpiando todos datos de mi anterior partida).

Es un juegazo y con un musicote espectacular.

Primer video de 25 minutos y comenzado con 1º nivel o mapa.

Y segundo video ya de 1 hora (y 10 minutos de yo haciendo el tonto intentando dejar a la gente en otro canal).

Palabras que me encantan: «Singularidad» y «Emergente»

Singularidad: es el momento en que las maquinas la inteligencia artificial adquiera conciencia y sea capaz de mejorarse a si misma.

El videojuego en pygame mas mítico que trata este tema es Endgame: Singulary .

Sistema emergente: es un sistema que tiene reglas complejas a partir de reglas pequeñas.

Y el ejemplo mas espectacular es los automátas celulares.

Ya volvió a terminar (por un tiempo) mi obsesión por descompilar

Todos tenemos alguna obsesión que viene de vez en cuando (a mi me viene cada año mas o menos), no se si cuando consigues ganarla y salir victorioso ya no vuelve y te sientes bien, porque a mi cada vez que me viene me deja en un estado desolación y hundido.

No se cuando volverá la obsesión, se que empezó en tiempos universitarios y me viene de vez en cuando, lo único bueno que saco a esta mierda es que cada vez que salgo de una crisis de obsesión he aprendido algo nuevo de bajo nivel (de la informática de verdad, la baremetal donde te cortas y sangras con afilados trozos de ordenadores) y así voy juntando trocitos de sabiduría después de salir ahostiado cada vez que me obsesiono con esta mierda.

En mi caso, la obsesión viene por liberar viejos juegos de msdos que gracias a DosBox podemos seguir jugando, pero hablando con un amigo aunque suene a bravuconada solo existen dos tipos de juegos:

  • los que puedes liberar completamente, porque los ficheros o como se guarden de datos del juego (imágenes/sprites, músicas, sonidos, niveles/mapas, modelos 3D….) no tienen ningún peso en lo que define juego. Ejemplos de eso es el OpenTTD que es la versión libre del Transport Tycoon y ya tiene como dije hace años todo libre (en OpenTTD es libre desde hace 4 años ) no creo que haya ningún frikazo en la faz de la tierra que se queje de noseque tren de vapor no tiene un pixel de un color o al original o que la generación de mapas no es fiel a la original. Y otro que se libera o reimplementa libre fácilmente es el Tetris por mucho que le joda al cabrón de Alexey Pazhitnov que ya en el 2008 puso a parir al software libre (ni olvido, ni perdón Pajinov) porque quién se va quejar de que una ficha del tetris es de color amarillo en vez blanco como el original o mierdas parecidas.
  • los que no puedes liberar completamente, porque el código del juego no es lo que le da la entidad al juego y lo que lo hace recordado y que la gente dice es que el juego Piticlin es Piticlin porque tiene ese comienzo con ese nivel y ese personaje icónico. Y aunque es elogiable y espectacular la liberación del videojuego de la Nint€ndo (ya están sus jodidos abogados afilando cuchillos) del Mario64 en https://github.com/sm64pc/sm64ex y que ya hable de el en Vídeo de las instrucciones para compilar Super Mario 64 para GNU/Linux y es que si coges ese motor y le pones un pingüino en 3D rechulón y te haces unos niveles a cualquiera que se lo muestres va decir «pues eso no es el mario64» .

Y es que hay muchos juegos viejos de msdos que podrían liberarse y que se podrían sustituir los ficheros de datos del juego por unos libres y la gente seguiría sintiendo que es el mismo juego pero libre.

El problema es que le he añadido mas capas de complejidad a esta mierda de obsesión, y quiero hacerlo usando herramientas libres, nada de IDA Pro piratones.

Bueno vayamos por partes, ya ha pasado esta semana de obsesión y como siempre me acerco un pasito mas.

Descompilar, es la fantasía que antes salía mucho en las películas era como desencriptar al vuelo. Recuerdo en mis tiempos mozos que creía que podía ser posible, pero lo mas cercano a las pelis es si se han dejado muchos datos de depuración en el fichero binario o si es un lenguaje interpretado. Porque cuando me obsesione (en tiempos de win98) por primera vez, descubrí que los compiladores optimizan y cambian los nombres de variables, desenrollan bucles y incluso incrustan funciones y mil cosas mas que dejan el código ideal para la maquina. Entonces la fantasía de un programa que te unos ficheros C a partir de un binario no existe.

Desensamblar, es pasar un binario a un fichero en lenguaje ensamblador. Este es menos fantasía pero también algo porque ya en binarios que de winXX o GNU/Linux tienes librerías dínamicas y no van a caer dentro del fichero. Y luego no se si las mierdas raras que hagas en el código rollo interrupciones o partes ejecutables guardadas en forma de datos (en z80 se que se puede y creo que en 386 también después ya no) es capaz de encontrarlas.

Por desgracia mi obsesión cogió mas fuerza por culpa del OpenRCT2 que viví (uff hará años mas) en el viejo y desparecido git su liberación con una descompilación, y solo  han quedado los siguientes consejos Decompiling Tips IDA .

Pues hace un año me dio y probe con la mierda de IDA, nada.

Yo lo que buscaba esta vez es si existe una herramienta que te dado un exe viejote autocontenido de msdos te devuelva un puñado de ficheros .c/.h con nombre autogenerado, funciones con nombres autogenerados y variables con nombres autogenerados pero con un int main (int argc, char argv**) de mierda que pudiera compilar todo otra vez y te generada un exe que aunque tuviera distinto tamaño y CRC hiciera lo mismo que el original.

Esta vez incluso he disparado una pregunta infructuosa al stackoverflow de reverse engineering is there a tool to decompile old exe to C? lo peor es que me ha venido el autor del engendro llamado Reko (manda cojones porque no lo haces en un lenguaje de verdad en vez del puto mono/.net ) diciendo que podría valer su mierda, pues primero arregla tu mierda para que use la última versión estandar de mono  y después hablamos, porque lo único que he aprendido de ti es ha trabajar con distintas versiones de paquetes deb con apt en linea de comando.

Hace 2 años cuando me obsesione (junto con otra obsesión con tener un fichero plano para Goxel un editor libre 3D de voxels)  aprendi a usar y me molo mucho la herramienta Kaitai Struct que te permite definir como yml un formato de fichero binario y crear parseadores en lenguajes tan variados como Python y tiene inventos como un editor web para ir haciendo el famoso fichero para definir el tipo de fichero binario. Una delicia.

En mis pruebas he tirado un holamundo en C compilado con Turbo C dentro de un DosBox y el juego de Alley Cat.

Esta última vez me aventure a usar (dentro de una maquina virtual porque son los malos no de la peli si no del planeta Ghidra de la NSA supongo que incluso metido dentro de una maquina virtual ya me han visto hasta la talla de cazoncillos, pues no es tan bueno.

Y probé que tiene muy buena pinta Radare2, ese si que es el futuro.

Y gracias a Ru (Ruben Santos) y su repo de Ru me volvio abrir los ojos a otra forma de descompilar pasandome el link del subreddit https://www.reddit.com/r/REGames/ y ahí encontre un post/meneo sobre la descompilación de un ruso del juego de Tube de Bullfrog este te lleva a un github que tiene un link a un foro ruso en ruso sobre como ha ido haciendo la descompilación (benditos traductores).

No esta al detalle todo, pero habla de algo que yo también pensé un poquito, y es envolver en un C tuyo el juego para ir poquito a poquito quitando el ensamblador y que sea C puro.

Entonces como notas para el Miguel del futuro, tienes que volver al ASM que es otra de mis obsesiones, aprenderlo bien bien. Y darle vueltas a ver como puedo envolver un binario viejo en un C.

Creo que voy a volver a mi obsesión de picar un juego en Spectrum…la crisis de los 40 en el mundo friki…

Video muy divulgativo de «Con una raspberry y un pedal mi coche del GTA va a pedales»

Me han pasado este vídeo por un chat grupal en telegram, y lo iba a ver con asco pensando ya veras que tontada…pero no, es muy muy bueno y divulgativo. Y encima otro youtuber que no es un chillón y habla tranquilamente.

La pena que no es para algún videojuego libre…pero bueno…

Al rico hardware libre, una versión hipervitaminada del Power Glove

Hacia mucho que no me encontraba con un «proyecto maker» que me sorprendiera…porque últimamente el tema del cacharreo parece un hobby de warhammer o magic u otro modelo consumista friki…donde la única forma de hacer cacharros es comprar y comprar y comprar y después pegarlos con cinta de carrocero. Hace muchos años hice un articulo para los compas del proyecto colaborativo el binario con el nombre de Soy ateo Friki.

Pero buceando en los vídeos de la gente de Fediverse.tv he encontrado de un nodo federado (es lo que mola de las redes no centralizadas) un proyecto muy chulo tanto el software libre que mueve todo esto como el proyecto de los compas de fediverse…como el proyecto de hardware libre que os pongo el vídeo:

Así lo de pronto, lo que mas destaco…es primero los electrodos secos «caseros», si hijo si….yo también ando dándole vueltas al VR o a la AR, a los interfaces cerebro-maquina….y por eso conozco un poquito el mundo de las conexiones no invasivas y sin vaselina (en serio que hay unos húmedos que van con eso…no hablo de conexiones por el puerto de atrás) para que el ordenador te comprenda como una novia enamorada esos primeros meses de romance. Y lo siguiente que destaco es que la gente común esta aplicando ya las redes neuronales para hacer rápido y sencillo el trabajo de limpiar de ruido una señal. Finalmente lo mas destacable es que el vídeo es muy divulgativo (es que te enteras de como va el tinglado) aunque no tenga una voz en off…es como el de primitive technologies pero a lo cyberpunk.

Mis dudas es saber si los electrodos se ponen en una posición distinta del brazo, vamos se te mueven unos centímetros…es saber si la red neuronal entrenada sigue sacando mas o menos el impulso nervioso. Y si…el lag…que yo he sufrido un mando bluetooth para móvil con un emulador de gameboy y se nota el paso del tiempo.

Por cierto si has llegado a estas lineas y te preguntas ¿Qué coño es un power glove (link a la wikipedia inglesa)? Fue un mando de videojuegos que saco Mattel para la Nintendo de 8 bits justo en los 90 que detectaba cual WiiMote (si otro mando de Nintendo) la inclinaciones de la mano y como de doblados tenias los dedos (era curioso el mecanismo porque los artículos describen que era por fibras «opticas» y como perdían luz al doblarse). Es un invento muy muy curioso e iconico, que se comió un mojón….como casi todo lo revolucionario en tecnología…yo nunca lo vi en vivo…soñaba con el por el rollo VR (que los jóvenes flipamos con la pantalla táctil de los coches de Parque Jurásico) como el hexágono de Megadrive. Y poco mas que decir del powerglove mas que salio (con unos colores chillones y también salio un Arduino) en series de dibujos como Capitan N o en la pelí de serie B (serie B, te lo repito hipster de mierda que a todo lo que no es hollywood lo llamas Cine Indie…) Turbokid: