No son propósitos de año nuevo…

…son cosas que tengo a medias o quiero empezar.

A medias:

Quiero terminar de hacer la cuadratura del circulo…bueno tengo dos círculos:

Goxel |–exportar/importar–> json |–pintar–> sprites voxels |–comenzar–> spriteset «programático» para Cataclysm DDA

Porque pensar primero pasar de esto (si nos ponemos en lo peor porque hay muy buenos spritesets para CCDA):

A esto (que no es mio ni de coña y no es de ningún videojuego…creo que es un diorama 3D de alguien):

Y ya veras como alguien se me pone pesado…así que imaginemos una posible conversación:

– ¿Pero Miguel?

– ¿Qué!!?

– Nada…nada…bueno si…¿Por qué Goxel?

– Por qué es software libre y me parece el mejor editor de voxels que hay exceptuando algún plugin en Blender que ni conozco….por cierto ¡¡¡¿Te tengo que explicar las ventajas del software libre??!!! ¿O te caíste de bebé de los brazos de tu madre?

– ¿Pero Miguel porque te pones pesado con que tiene que ser json?

– Pues mira, es fácil el tema es tener todo en ficheros planos para poder vigilar/tracear los cambios en un repositorio git por ejemplo, es parecido a usar ficheros yml para definir despliegues de entornos que usar ficheros binarios de suputamadre que los puedes guardar en gif pero no los puedes ver fácilmente las diferencias….lo suelen llamar Infraestructure as code. Y en el caso de por ejemplo zombies para el juego, pues sería que de una versión a otro por ejemplo le pones el ojo izquierdo rojo sangre, pues mas o menos puedes ver que ha habido unos cambios de color en un grupo de voxels.

Y a partir de aquí suelto mi mitin de 30  horas cual Fidel Castro:

Además al tener el personaje en un fichero json es muy fácil de «programar» con scripts o herramientas como jq . Y además Goxel tiene capas (al estilo de Blender) por lo que podrías con con cuatro scripts…en teoría…»vestir un personaje» para sacar los distintos sprites…imaginar el siguiente diagrama en 3D…

http://himeworks.com/blog/wp-content/uploads/2014/11/compositeCharacterSprites1.jpg

Y viendo la cantidad de sprites necesarios para CataclysmDDA intentar este «approach» puede ser interesante.

Ahora mismo ando atascado con este bug:
A goxfile that fails with gox_to_json.py

Es un autoissue de un fallo que he encontrado en el exportador que he hecho gracias a Kaitai  (que es como una herrramienta de alto nivel para descodificar archivos binarios), pero que cuando los voxels están fuera hacía atrás se raya, Si consigo arreglarlo, estaré mas cerca de exportar a json.

Los que no he empezado son:

Saber manejarme bien bien en vim y en Tmux para empezar a ser mas independiente…aunque ya con I3 me voy sintiendo cada vez mas suelto (siempre me atasco con algo…pero bueno dicen que es bueno ejercitar el cerebro).

Y relacionado con CDDA tengo otro arco de iglesia que ando también casi por empezar (aunque algún palo de ciego he dado):

CDDA (versión terminal puro) –analiza–> datos de la partida –envía–> Godot –muestra–> frontend en 3D (pero 3D) del CDDA

En donde me he atascado es en los códigos de escape ansi pero me gustaría llegar a algo como Necklace of the Eye .

Trucos: Debugger de js/ecmascript en los navegadores

Al final siempre te despiertas y aprendes algo nuevo, o el refrán al revés.

El console.log es nuestro amigo desde hace años, no se si existió antes de otro viejo amigo que se fusionó Firefox, el plugin Firebug.

He encontrado hace unos días este listado de trucos (escrito en el idioma de «chespir«):

JavaScript developer must know these Console methods.

Hay cosas curiosas que no sabía cómo:

console.table(tabledata, tablecolumns)

Para pintar un objeto o un array en una tabla en log del debugger.

console.time(label) & console.timeEnd(label)

Para pintar cuanto tarda en ejecutarse un trozo de código encerrado entre ellas.

console.assert(expression, message)

Rollo como cuando metes ese unicornio que no existe en las putas empresas españolas, tests. Pues te hace lo mismo, te muestra el mensaje si se cumple la condición.

Ya veis, el tonto afirma, el sabio duda.

Las pelis de DivX

Otro articulo de abuelo cebolleta, vivir el boom, la explosión de la democracía cultural fue espectacular, vivir como la gente elegía su propia música e incluso en esas decada (la de los dosmiles 2000) pillo a traspies a las industrias músicales que estuvimos un par de veranos sin el cáncer de «La canción del verano» pero que actualmente por la fuerte de los billetes de la industria músical ha vuelto a jodernos cada verano.

Recuerdo mi comienzo, fue la peli de Matrix en mpeg en 2 CDs, parece profetico, la enseñabas en el ordenador a los amigos y familiares, no por la peli que nos la sabiamos de memoría, si no por lo novedoso de ¡¡Una pelí completa en CD!! …bueno en dos CDs.

Y vinieron los famosos codecs de divx en win98 (todos tenemos un pasado oscuro), era un infierno y empezaban los barrocos reproductores de video BSplayer y demas basura que no se quién te decía instalo que va mejor que el reproductor de windows, aunque yo creo que por el 2007 o así pase a mi querido VLC simple (y espartano), ligero como un anorexica emborrachada con chupitos de fairi, filosofía suckless antes de que la conociera.

Las pelis no las descargabamos, las pasabamos de mano en mano, como en los ochenta la gente con las cintas cassette.

Y de esas primeras pelis que recuerdo con cariño, porque aunque ya había un primitivo internet, no conocías todas las pelis que existian y te venían peliculas que dejaban con el culo torcido, pensabas que grande es el cine y que asquerosos son las televisiones o los cines que vale si te ponían un Cuervo pero por ejemplo las que os repito recuerdo con cariño, ni las conocías:

Y después el famoso videocd, un paso atrás en pos de la comodidad pero también memorable, porque básicamente la pelis en un solo cd en formato mpg2 para los primitivos reproductores DVD que solo cogian DVD y eso mpg2. Tambien tengo pelis que recuerdo con cariño como:

Y que os voy a decir de nuestra querida mula y después el descafeinado torrent…que por desgracia se impuso frente a tecnologías «mas descentralizadas».

Mucha gente (típico tópico que se suele hablar en los podcast de cine retro) habla de hubo mucho buen cine que no salio en la gran pantalla y que acabo en el videoclub, pero en los dosmiles tuvimos otra época dorada de sacar pepitas de oro, ahora que la gente tiene catálogos inmensos y pocas sorpresas, hecho de menos esa epoca, ahora un poquito la tenemos con los podcast porque gracias a Satan que existen, aunque sea irse por las ramas, todavía estoy esperando que la tele tradicional tenga un buen programa de videojuegos (y ya han hecho muchos y muy cutres desde hace 30 años), pues en el tema de cine «alternativo» (no alternativo de una peli afgana de un pastor de cabras detective subtitulada al frances…si no de lo que nos gusta) en radio y televisión no hay pero en podcast, si.

Para cerrar este articulo de cebolleta, hay que poner la famosa charla que hizo en los Premios Goyo del presidente en el 2011, el señor Alex de la Iglesia…que en la butacas estaba la infame Angeles Gonzalez Sinde, una persona denezlable que lucho por acabar con la democracía cultural de la gente, una misera persona que fue ministra del PSOE (ni olvido ni perdón que un supuesto partido de la clase obrera se volviera a poner del lado de los empresarios), bueno volviendo al bueno de la película, dio una charla que agradeceremos siempre.

Recomendación de 2 articulos: sobre dmesg y sobre la historia de *BSD

Mucho rollito había hace años en twitter con el «follow friday», pero el ADN de internet (pese a que se quiera mutilar y cercenar por parte de las corporaciones nacidas en el) es COMPARTIR…no recuerdo hace años ni nada cuando de una página personal ibas a otra con un mágico LINK.

Examinar mensajes de log del kernel Linux con dmesg: me ha gustado porque el dmesg lo uso con poca frecuencia y ni sabía que es un visor y que como otras cosas en Unix/Linux hay un fichero detrás, y no es un fichero de log normal es un ring buffer que es parecido al log.

Sistemas operativos BSD, los ‘primos’ menos conocidos de Linux… entre los que se encuentra Mac OS X: una minihistoria de BSD, que yo creo que es o me apuesto que el 3º mas usado, el primero es GNU/Linux, 2º por desgracia m$-windows y el 3º los BSD.

Tips/Trucos: Para diferenciar un producto de una tecnología

Vamos a ser didácticos, porque si no trabajas en una cooperativa las «mentes pensantes» que tienes por encima en las reuniones de proyectos y sprints y mierdas similares, se llenan la boca con «vamos a usar la tecnología X y la tecnología Y y usaremos un desarrollo agile y blablablaba.».

O las psicópatas de recursos humanos (aka reclusos humanos) que normalmente son psicólogas con ínfulas de guardiana de campo de concentración…estoy esperando que en una entrevista de curro me pregunten «te encuentras una tortuga boca arriba en el desierto…». Son gente que trata a la gente como recursos y que se la suda despedir a personas con sus cosas humanas si no rinden en determinado momento concreto pese a ver salvado docena de veces el culo a la empresa, ojala haya un infierno para ellas y sea un diablo que les haga picar piedra con las manos desnudas y les haga un cuestionario cada 2 horas de su valor en la infierno.

Pues esta gente psicópata normalmente en la entrevista de trabajo te sueltan una batería de preguntas sacada de «las 10 tecnologías del año según forges/sección_tecnología_el_mundo/yahoo/o_su_puta_madre_en_bragas» pasando cosas tan curiosas como en mis tiempos mozos ver ofertas de trabajo en el tablón de anuncios de mi universidad que pedían «3 años de experiencia en puto-asqueroso M$-.Net» cuando lo habían empezado a vender ese mismo año.

Lo primero es lo primero…¿Qué es una tecnología?

Pues lo siento hijo mio, pero una tecnología puede ser cualquier cosa, y ya me he adaptado a este pseudolenguaje y también digo tecnología a todo, porque puedes decir:

  • en el proyecto X usamos tecnologías json
  • en el proyecto X usamos tecnología Python
  • en el proyecto X usamos tecnología Flake8
  • en el proyecto X usamos tecnología Django
  • en el proyecto X usamos tecnología BigData
  • en el proyecto X usamos tecnología MariaDB
  • en el proyecto X usamos tecnología git
  • en el proyecto X usamos tecnología teclados de membrana para joderle las articulaciones a los programadores
  • en el proyecto X usamos tecnología Blockchain

Y te quedas tan pancho, nadie te va mirar raro en la reunión, o nadie te va contestar al email intentando aclarar que eso no es una tecnología…salvo pedantes y pimpollitos recien salidos del FP/Univesidad….¡¡OJO!! FP o Carreras técnicas (o gente que se a pelado el  porque los que salen de ADE o Empresariales o Económicas esos te miran ojos de salmón de la pescaría encima del hielo y si ven que pueden chupar bien al jefe si esta en esa reunión…se apuntan al carro diciendo «si, si la tecnología PITICLIN es muy puntera he visto proyectos de Google que la usan».

Vale ahora vamos a ver cuando una tecnología es un producto.

Pues como todo es una tecnología. Vamos con una lista de checks para saber lo que es un producto:

  • ¿No es algo físico que puedas coger con las manos? Entonces es software, documentación, etc. ¿Es libre (software libre, o CC by-sa o similares)? NO, es un producto.
    • Ejemplos:
      • (antiguo por suerte) Microsoft Visual Basic 6, tienes que comprarlo.
      • APIs a online resful a por ejemplo datos de resultados deportivos, que a parte de pedirte un registro, te cobran por el uso, frente por ejemplo el API de Wikipedia u Openstreetmap que es de acceso libre.
      • Las API a servidores de software privativo, puede que en la siguiente versión les salga de los cojones cambiarla y te jodan medio proyecto.
      • Mierdas de IDEs como PyCharm que la versión «libre» es una mierda pinchada en un palo, y los cabrones te venden una versión privativa con lo que le da valor al puto IDE.
  • ¿Es un estándar? ¿Quién lo mantiene? Si lo mantiene solo 1 empresa o un conglomerado de empresas camuflados bajo una fundación…es un producto. Y ellos son los dueños y cuando quieran cambian. El contra ejemplo es cuando el estándar esta bajo una fundación y ves que en ella hay asociaciones, fundaciones, ongs, empresas variadas e incluso enemigas, como por ejemplo OpenGL.
    • Ejemplos:
      • Cualquier estándar de la industria de la automoción, son sus gatos y se los ****. Y no hablo solo de los protocolos de comunicación, imaginad un mundo en que se obligara a estandarizar las piezas de los coches como mas o menos se hace las de PCs y así.
      • Lenguajes de programación de mentira o productos como m$-.Net o Kotlin o Objetive C que solo lo lleva una empresa.
      • Las clavijas de los productos de Apple.
  • ¿Si es algo físico? ¿Se basa en estándares de verdad (ver anterior punto)? NO, un producto. ¿Lo fabrican muchas empresas la misma cosa física? NO, un producto.
    • Ejemplos:
      • CUALQUIER PRODUCTO DE APPLE
      • Muchas videoconsolas, salvo las que estanhechas con Android.
    • Corolario
      • Y por contra, ya para que «eso físico» reciba el calificativo de una tecnología DE LA HOSTIA….¿Lo puedes mas o menos fabricar tu (tanto en garaje o mandarlo a que te hagan las placas)? Si, entonces es una tecnología DE LA HOSTIA. Y  como superlativo para que sea una tecnología DE LA REHOSTIA. ¿Puedes fabricarlo de cero tu? Si es SI, es una tecnología de la REHOSTIA…cosa que Arduino solo es una técnologia de HOSTIA y no es un tecnología DE LA REHOSTIA porque la CPU que es una atmega xxx no es hardware libre, es un producto que si o si debes comprar a Atmel o sus copias chinas. Macho David Cuartielles a ver si le metes caña al Arduino con Risc V.
  • ¿El software no es software libre y solo es open source? Entonces es producto.
    • Notas:
      • Ocurre como PyCharm y asi que la «version libre» no es un versión completa y «lo enterprise» son añadidos, si no es una «versión mutilada».
      • Cuando el proyecto no acepta contribuciones (o pull request o ranas en sidra) que «no sean buenas» para la empresa que lo lleva.
      • Hay que sospechar cuando el proyecto lo lleva solo una empresa y encima es de las que llamamos «empresas malvadas», aunque a veces no influye.
      • También hay que sospechar cuando pese a ser un proyecto viejo, ninguna distribución lo tiene empaquetado, sobre todo si es Debian.
      • Cuando el código fuente lleva blobs o código cifrado u ofuscado.
      • Cuando tiene una licencia anti GPL.
      • Cuando los assets (rollo músicas, gráficos, videos) o ficheros no de codigo fuente, no son libres. Ejemplo claro el típico videojuego que va de libre pero no tiene ni siquiera libres un pack de gráficos y niveles de demo, lo que buscan son tontos que les mejoren el motor de gratis.
      • Cuando no existe documentación, o la documentación es una puta mierda pinchada en un palo, o para poder usarlo de verdad son cursos pagando.
      • Sospecha el proyecto esta overengining o tiene complejidad artificial.
      • Cuando le falta algo esencial para que funcione, ejemplo anterior los assets de videojuegos.
      • Cuando no compila, despliega el proyecto desde las fuentes.

Y consejo del día, por tu bien intenta en los proyectos usar tecnologías en vez de productos, porque quien sabe que vueltas da la vida y cuando te van a dejar tirado el que te ofrece el API y te quedas sin esa importante funcionalidad, y como era un producto de mierda pues no puedes decir pues «me voy a montar el API que ha desaparecido en un server mio con casinos y putas.» y buscate la vida.

 

De joven creía que los lenguajes de programación no deberían tener versiones

Vaya título mas largo que me he marcado, nota todavía me siento joven, pero si un día un psicópata no religioso me apuñala espero que no pongan en las noticias de la tele «el psicópata en su camino asesino a varias víctimas entre ellas un joven de 40 y pico años….».

Pues eso que gracias al comentario de Rotietip en Cosas que odio de los lenguajes de programación, releerme lo que escribí hace 3 años y los links que me ha puesto,  me ha venido a la memoria mis recuerdos mozos, de cuando llevaba el pelo largo y camisetas metaleras, ahora…camisetas metaleras.

Y en aquellos tiempos, pensaba «¿¿Cómo un lenguaje puede tener versiones??», pensaba que un lenguaje debe ser sagrado y perpetuo como las tablas de la ley escritas en piedra, y a parte de por ser una puta mierda y solo productos comerciales y no tecnologías, las mierdas de lenguajes de programación que inventaba Micro$oft, porque que si había m$-visualbasic5, m$-visualbasic6….

No se en que momento cambio mi pensamiento, porque también recuerdo ver con cara-asco lo de la fiesta de javascript y sus versiones y su «live standard» que se basa en que toda la azúcar sintáctico e inventos varios se transpila a versiones mas antiguas de javascript.

¿Y ahora en que piensas Miguel?

Pues he matizado ese pensamiento, y pienso que UN LENGUAJE ES UNA PUTA MIERDA SI NO ES DE LA COMUNIDAD Y NO SE ESTANDARIZA POR UN COMITÉ .

Si el lenguaje se lo inventa una empresa y hace  con el lo que le sale de los cojones y con cada cambio de versión destroza las cosas porque le sale de los cojones…porque algunas veces los destrozos son necesarios para evitar canceres…pero no porque te sale de los cojones. Y ya para mas inri, si no es un estándar abierto y libre, y necesitas por cojones su compilador de pago o no pero no libre, pues ojalá te pongan una bomba en la empresa cuando no este ni el personal de limpieza, ni los trabajadores mal pagados, solo los putos comerciales y jefes y demás gente que chupa del bote sin dar palo al agua y que solo jode la marrana. Y reviente pero no os mate instantáneamente y os de tiempo a saber que vais a morir y que la mierda de vuestros intestinos desparramados os haya salpicado la cara siendo el sabor a mierda último que saboreareis en vuestra puta vida.

Me «quedaó» agusto con la maldición gitana.

Dicho esto, me acuerdo del caso Perl 6 cambio de nombre a Raku básicamente porque cambia tanto de Perl 5 a 6 que se vuelve incompatible y para que andar fastidiando.

O el rollo de C++ y sus versiones que mas o menos lo que hacen es ir adoptando lo que avanzando las librerías boost que te dan cosas de los lenguajes modernos de programación.

Por cierto a Python2 le quedan 18 días vida según la fecha de publicación de este articulo. Aunque queréis que os cuente un secreto…es mentira, python2 le quedan mínimo 10 años de vida en las cárnicas de mierda que por hacerse los modernos dejaron de un lado la mierda de java con spring para sus proyectos de bancos o de entidades públicas a golpe de sobre y abrazaron python2. Y después en las distribuciones de GNU/Linux 5 años o así seguirá vivo porque hay mucho proyecto legacy que lo usa…como paso con librerías GTK2 o SDL1.

Y os dejo con un consejo niños, no ejecutéis los scripts bash como:

$ sh mi_rechulon_script_en_bash_porque_me_siento_un_juaker.sh

Si no:

$ chmod 700

$ ./mi_rechulon_script_en_bash_porque_me_siento_un_juaker.sh

O

$ bash mi_rechulon_script_en_bash_porque_me_siento_un_juaker.sh

Salvo que el shebang lo tengáis como:

#! /bin/sh

Os lo digo porque hace unos meses me encontré a UN SENIOR DEVELOPER PRO OPEN SOURCE PERO QUE USO WINDOWS (podía ser peor y usar Mac) que no tenía ni guarra y se quejaba de los scripts bash no le funcionaban…no te jode…si los lanzas con sh pierdes toda la compatibilidad de bash porque:

bash != sh

Our Robocop Remake

Relacionado con Kung Fury doblado al español me acorde de una genialidad que se hizo por un montón de gente juntando trocitos de cada uno para hacer una «versión Suecada« de la pelí de Robocop. Porque mucha gente que amaba la peli original de los ochenta de Paul Verhoeven tenia y teníamos miedo de que hicieron una mierda pinchada en un palo….Sinceramente el principio de la peli es muy bueno pero después no tiene ninguna escena memorable. En el comienzo el momento cuando lo desarman a Murphi para que vea que no es nada es sin la empresa. Y el escapar de la fabrica que ve estados unidos ya tampoco es nada y esta en un país tercermundista asiatico como cualquier fabrica de iphones. Vamos una peli mediocre.

Pues eso aquí tenéis Our Robocop Remake completa (en ingles):

Kung Fury doblado al español

Aunque el vídeo es de 2015 me he enterado hoy, la genial peli Kung Fury que hace unos años nació de un crowdfunding en su momento la disfrute en ingles, pero alguien la a doblado con mucha profesionalidad.

Que grande fue el cine de ninjas de los 70 y 80 con las pelis como Ninja americano y tal.

Os dejo la peli completa para vuestro disfrute.