@ agnasg

Por qué hacerlo fácil (versión 2021)

14-04-2021 5:36 AM

Suicidio es los opuesto de poesía
Anne Sexton

Ojalá yo no tenga que aprender Kubernetes o trabajar diariamente con docker

Mi relación con los contenedores es como cuando hoy en día alguien trata de aprender vi (o su moderna encarnación, vim): ¿cómo voy a aprender todo eso? Y más importante, ¿por qué? Tú entras en Notepad++, o Visual Studio, o Visual Code, y todo es fácil como pelar mandarinas.

Este es un artículo donde se explica lo simple que es Kubernetes, y cómo su configuración puede ser manipulada o visualizada con curl. Buena introducción, buena explicación, pero es increíble la rapidez como se te ensucian las manos. Ahí mismo estás enredado en decenas de archivos con cientos de líneas de código json con complicadas o desconocidas configuraciones cuyas repercusiones pueden cambiar tu vida. Claro, cualquiera de esas configuraciones te pueden hacer perder horas de trabajo!

Lo mismo sucede con docker. Hace poco tenía que hacer unas correcciones en un sistema java. Pues pasé el 90% del tiempo instalando/configurando docker. ¡Pero si es simple!:

docker-compose up -d --build
docker-compose up

¿Qué tiene de difícil eso?

En cambio, otro cliente tenía un problema con una base de datos, así que me envió un máquina virtual (virtualbox) con vagrant. En 15 minutos ya estaba trabajando el problema (esos 15 minutos los dediqué principalmente a descargar los archivos. Abrir el ambiente fue cosa de un comando vagrant).

Hoy en día que estamos en la era de los SAAS, los startup, me desordena los nervios ver las explicaciones de arquitecturas basadas en managed Kubernetes cluster, caching, load balancing, complicados cron, etc. Por otro lado remoteok es un index.php en cloudflare. Listo. Yo entiendo que manejar millones de requests por segundo requiere infraestructura, pero ¿por qué hacerlo tan complicado?, estamos aquí para divertirnos, ¿no?

Hay soluciones simples disponibles (con un costo por supuesto), Netlify + Google App por ejemplo. Lidiar con Docker, Kubernetes realmente no vale la pena a menos que seas un guru, lo cual solo se logra con un largo, penoso y doloroso camino de golpes y sufrimiento. Discusión en hacker news.

Enlaces de mitad de marzo

15-03-2021 8:19 AM

Counting the red stars and those of plum-colour.
The sun rises under the pillar of your tongue.
My hours are married to shadow.
No longer do I listen for the scrape of a keel
On the blank stones of the landing.

Sylvia Plath – The Colossus

El jurado mueve la cabeza en señal de reprobación

En chess.com, las jugadas están clasificadas con una notación propia del sitio (no reconocida por alguna organización de ajedrez). Hay el movimiento “inexacto” (“inaccuracy”), que no es el mejor movimiento que podemos hacer (hay otras mejores jugadas). Tenemos el “error” (“mistake”) que es una jugada que nos coloca en posición perdedora, y tenemos la “metida de pata” (“blunder”) que es la jugada por la que vamos a perder la partida de ajedrez.

Estaba pensando en esto, y se me ocurrió que sería interesante que un jurado evalue nuestras decisiones del día a día, indicando, con una bandera, cuando metemos la pata, con un movimiento negativo de la cabeza cuando cometemos un error, y frunciendo el entrecejo cuando tomamos una decisión “inexacta”. Nos ahorraríamos muchas molestias y años perdidos en nuestras vidas.

¿Quién utiliza sscanf () en estos días?

Hay varios artículos en internet en estos días (este por ejemplo) sobre los problemas que puede generar sscanf () al desempeño de una aplicación. Mi pregunta es, ¿quién utiliza sscanf () en estos días? Hace 30 años cuando lo estaba usándo por primera vez en un sistema de nómina, descubrí dolorosamente los bugs que puede generar. Un colega de aquellos tiempos descubrió viendo por encima de mi hombro, que mi solución fue reemplazar sscanf () por mi propio parser. “¿Y todo eso para no usar sscanf()?” Y sigo haciendo algo parecido hoy en día pero con la ayuda de C++ STL.

La anécdota es cierta, yo estaba haciendo un sistema de nómina y él uno de cuentas por pagar.

Sobre khpx y nuevas librerías

Llegó a mis manos raylib (discusión en hackernews) un game framework que permite hacer fácilmente prototypes. Es realmente sencillo, y viene integrado con notepad++ y macros para hacer la compilación y las pruebas en dos o tres simples pasos. Tiene soporte para Windows, Linux, MacOS, RPI, Android, HTML5, incluye todas las funciones básicas, 2d, Animated 3d models, audio, fonts, módulo para simulaciones de fisica cuántica (mentira, Newton solamente) y más. En la discusión algunos parecen indicar que Godot or love2d son mejores frameworks, y la documentación de raylib deja mucho que desear (“un canal en Discord no es sustituto para documentación”). Quizás lo utilice para la implementación de la parte física en khpx, pero lo demás lo voy a manejar con mi propia implementación y Imgui.

Febrero de 2021

16-02-2021 9:11 AM

¿Motor gráfico?

Para mi próximo juego quiero trabajar 3d así que SDL no es una opción. Mi respuesta para esto desde hace años es Irlicht como se puede ver, pero quise revisar qué otras opciones hay hoy en día:

Unreal y Unity

La razón por la que los descarto es porque la descarga es de más de 10gb (20gb en el caso de Unreal). Estoy huyéndole a esos paquetes tan grandes, porque paquetes grandes son grandes problemas y ya yo tengo suficientes.

Godot

El lenguaje de scripting es GDNative, algo parecido a python. No se puede hacer juegos usando directamente C++ lo cual lo hace inviable para mi. Al parecer hay varias y sólidas razones para eso como dice aquí, y dice que usar C++ es posible pero preparar el ambiente y linkear las librerías necesarias es demasiado trabajo Sin embargo, el artículo de Wikipedia dice lo contrario, o no lo menciona, lo cual me parece bien raro. Como al parecer hay polémica al respecto mejor paso.

Urho3D

He estado revisando sus características y luce bien. El único detalle es que no parece ser popular. Para usar una engine casi desconocida tengo con Irrlicht. Pero yo no la descartaría. La voy a colocar como un quizás por ahora.

Conclusión

El “deber ser” es seguir la corriente y utilizar Unreal o Unity , pero como cualquiera de esas alternativas me va tomar demasiado tiempo (meses) voy a dejar estos planes en suspenso por ahora. Aunque /r/playmygame hay historias todos los días de personas que dicen más o menos algo como esto: “jamás he programado, nunca he estudiado matemática, soy un perfecto idiota, y luego de 7 meses trabajando con Unity aquí está mi primer juego“. Y entonces un video de un juego con calidad AAA, que parece hecho por Blizzard en su tiempo libre. Y hay 100 comentarios y 200 upvotes. Por ejemplo. Como odio ese tipo de mercadeo.

Noy hay cambio de planes entonces, sigo con khpx, y en el tiempo libre trabajaré la nueva versión de tilemovers y el juego nuevo que tentativamente se llamará Carrusel, es 2.5 d y tiene elementos de arcade, platformer y puzzle, y lo voy a hacer con irrlicht (por ahora).

¡Patéame las pelotas!

Finalmente flash dejó de existir luego de que en diciembre su mortífero creador (Adobe) lo descontinuara definitivamente. Ha habido anécdotas y chistes sobre el hecho, como aquéllos cuentos que solemos narrar en los velorios. Pero el mejor que he oído es esta nota en slashdot donde nos cuentan que el sistema ferroviario de una ciudad china (Dalian) dejó de funcionar porque estaba escrito en flash!. ¿La solución? Pues consiguieron una versión pirata y lo pusieron andar de nuevo. Enlace. (En los comentarios podemos leer: Mi nombre es Zhang Wei, me gusta que me peguen pinzas en los pezones y que me pateen los testículos pero sobretodo me gusta escribir sistemas ferroviarios en flash!)

Enumeraciones caóticas

¿Alguien se ha dado cuenta que Rayuela, de Julio Cortázar es una inmensa lista de enumeraciones caóticas?

bastoncillos de marfil, plumas de pájaro lira, monedas rituales, fósiles mágicos, estrellas de mar, pescados secos, fotografías de concubinas reales, ofrendas de cazadores, enormes escarabajos embalsamados

Las nubes aplastadas y rojas sobre el barrio latino de noche, el aire húmedo
con todavía algunas gotas de agua que un viento desganado tiraba contra la ventana malamente iluminada, los vidrios sucios, uno de ellos roto y arreglado con un pedazo de esparadrapo rosa

quién sabe si Jelly Roll iba a estar en ese andén, en ese piano, en esa hora”

Epílogo

Así que ese es el reporte, la explicación, los detalles de la situación, el estatus, el avance de los proyectos, las actividades, las líneas de pensamiento de este convulsionado, inquietante, pertubador 2021 que parece ser la continuación, el epílogo, la elegía de un nefasto, terrible y odioso 2020. Se cansa, se agota, se obstina uno.

Un cuento no tan gracioso

03-02-2021 6:28 AM

Cosas graciosas que se encuentran al azar en Github

Como Go estaba destinado a reemplazar a C++…“. Sic. Enlace.

Hablando de cosas graciosas

Lo que me resulta gracioso de este juego, donde se debe jugar a través de los eventos del 2020, es que en las instrucciones, junto a los incendios de Australia y el Covid-19, aparece el ascenso de Tiktok. Clásico.

Un cuento no tan gracioso… para algunos

Lo que sucedió con las acciones de GameStop, el subreddit /r/wallstreebets y Robinhood es de antología. Es quizás uno de los eventos mas importante de los últimos meses en internet, por no decir de los últimos años. Mucha gente no le ha prestado atención basicamente porque no entienden de qué se trata. Inclusive si has visto las películas Wall Street (con Michael Douglas y Charlie Sheen) y El lobo de Wall Street (con Leonardo Di Caprio) todavía no vas entender nada. Lo explico rápidamente: dentro del arsenal de trucos de esta gente (la gente de Wall Street) hay un mecanismo que les permite vender acciones prestadas. Es decir, alguien, un banco por ejemplo, puede prestar acciones que tiene en su poder para que sean negociadas y con ello ganarse una comisión. Ey, esto es exactamente lo mismo que hacen los bancos con nuestro dinero, ellos prestan nuestro dinero se ganan una comisión y eso les permite sobrevivir. Así que prestar acciones no tiene nada de malo.

Ok, esas acciones prestadas entonces son vendidas digamos por $20, y deben ser devueltas en a lo sumo 2 semanas: aquí está el truco: los operadores de Wall Street escogen acciones que saben que van a perder valor, cuando llegan al precio que les conviene las compran, por ejemplo digamos $12, entonces regresan las acciones al banco y pagan una comisión de, digamos $1. Entonces al final de las 2 semanas cómo fueron las cuentas: vendí una acción en $20, las compré de nuevo por $12 y pagué $1 de comisión: $20 – $12 – $1 = $8 – $1 = $7. Me gané $7 sin hacer realmente nada. A este mecanismo se le llama short selling (compra corta).

Todo es una maravilla para los operadores de Wall Street (por ejemplo RobinHood, una compañía que tiene una aplicación mobile para compra y venta de acciones). Así que escogieron las acciones de Game Stop para hacer su short selling. Game Stop es una compañía al borde de la quiebra desde hace años porque básicamente se dedica a vender juegos usados o juegos en general en tiendas alrededor del mundo. Algo así como Blockbuster de los juegos, y así como Blockbuster debería estar quebrada, sobretodo después de un año de pandemia. ¿Quién va a ir a una tienda a comprar un juego hoy en día, si los juegos ahora se descargan o se pueden comprar online? Las acciones de esta compañía por supuesto que están bajando así que son ideales para un short selling.

Ups. El problema es que todas estas operaciones son públicas y están a la vista de todos así que cualquiera puede intervenir comprando las acciones. Los chicos de /r/wallstreebets (un subreddit de reddit) descubrieron la operación y comenzación a comprar las acciones de GameStop. ¿Se entiende cómo esto afecta la operación de short selling?. La clave es que el precio de la acción baje, pero si la gente comienza a comprar las acciones el precio sube. Ups. El grupo /r/wallstreebets tiene 4 millones de redditors. Doble ups. Subieron el precio de las acciones de $12 a $420.

Esta semana se cumplen las 2 semanas del short selling de las acciones y el resultado puede ser que los operadores de WallStreet pierdan millones (dicen que millardos) porque están obligados a comprar las acciones para devolverlas al banco. Por supuesto eso no va a suceder porque ellos hacen lo que les da la gana incluyendo forzar a los compradores a vender a un precio conveniente. Hoy 03-02-2021 el precio amaneció en $90. Y es de suponer que en el trascurso del día siga cayendo (o comience a subir de nuevo). El resultado seguramente será mixto, pérdidas y ganancias de ambos lados, y un buen susto para Wall Street. La próxima vez que traten de hacer un short selling con una acción demasiado visible lo van a pensar 2 veces.

Simplemente busca un Pet-rock proyect.

Yo recomiendo ampliamente leer a dvasallo, desde el punto de vista de negocios, estamos claros, él tiene razón. “No pierdas tiempo en complicados proyectos que tarden meses, porque no sabes si al final va a tener éxito o no. Lo más probable es que no, así que mientras más tiempo le dediques, más tiempo vas a perder“. Es decir, debemos seguir las probabilidades, y probar proyectos de 2-3 semanas, no más, y hacer un buen mercadeo, y usar al máximo la audiencia que hemos acumulado (la audiencia que hemos acumulado, eso es vital). Lo cual significa que mi proyecto de 4 años, khpx, un mmo del espacio con exploración y conquista, simulador universal de imperios, es, en definitiva, una apuesta arriesgada. Mucho. Pero el problema de buscar proyectos simples es que lo inverso te lleva a Gary Dahl con su pet-rock, el empresario que comenzó a vender rocas como mascotas, en cajas con ventilación. Tengo un problema ético para hacer ese tipo de cosas. Por otro lado, Kenneth Cassel está vendiendo cursos de vi (vim), y está bien. Hay en algún sitio aquí un equilibrio. ¡Sorpresa! ¡Hay que conseguir el equilibrio! ¿Dónde he oido yo antes? La solución es conseguir el equilibrio en tu vida. Impactante revelación (- sarcasmo -).