@ agnasg

agnasg


Tiempo de juego

15-10-2024 2:49 PM

En reddit alguien preguntó cuál es el juego que más has jugado, y para esa pregunta yo tengo una buena respuesta.

En wow no tengo idea cómo se busca el número de horas en la cuenta, sino que es por personaje, la imágen muestra el número de dias, horas, minutos jugados por cada uno de mis personajes principales. Eso suma algo así como 10452 horas, más otras 200 horas distribuidas en una chorrera de otros personajes. La verdad nunca había hecho esta contabilidad. Creía que era más tiempo. Estos son 16 años, desde 2008, Burning Crusade estaba candente en ese tiempo. Sin embargo, yo creo que he jugado más tiempo Rogue, el papá de todos los juegos roguelike, y todo el zoológico de juegos roguelike: Hack, Moria, Angband, Nethack, etc, pero no tengo idea cuánto tiempo puede ser.

De idiotas y farsantes

24-09-2024 2:16 PM

“Es más importante estar en lo correcto moralmente

que en los hechos”

(sic) alguien en el público

Idiotas

Se siente una especie de liberación, un alivio, cuando etiquetas a alguien de idiota, porque ya no te tienes que ocupar o preocupar por él (o ella), ya no le tienes que prestar atención y tratar de entenderlo, es un idiota, a nadie le importa. Eso se ha convertido en un hack para anular a una persona, un truco para ignorar a esa persona, lo clasificas como idiota y listo, está descartado. Pero como todo poder o habilidad tiene su sección de precauciones. Úsese con cuidado.

Gánate unos puntos eliminando MongoDB

Interesante este artículo sobre un Startup que decidió cambiar MongoDB a PostgreSQL. Hace años quise ver cuál era el revuelo sobre MongoDB y comencé a aprender cómo usarlo, he inclusive estuve viendo algunos proyectos que requerían su uso. 5 minutos después salí corriendo, como si mi vida dependiera de ello. Yo no soy muy dado a hacer algo simplemente porque está de moda, y la fascinación que había en los Startup’s con MongoDB siempre me pareció sospechosa. Era como el sushy: todo el mundo quería comer sushi, y era chic saber cuáles eran los mejores restaurantes sushi de la ciudad. Yo pasé años diciendo que eso era simplemente pescado crudo mal sazonado, y que no entendía la novedad. La gente me miraba con los ojos desorbitados. Bueno, lo mismo pasaba con MongoDB, era una blasfemia hablar mal de esa tecnología. Pues bien, aquí está un hilo en hn despotricando, e inclusive llegando a “los amigos no dejan que sus amigos usen MongoDB” (“Friends don’t let friends use MongoDB”). Imagínate cómo cambian las cosas.

Hemos confirmado que ahora somos un poquito menos ignorantes.

El pasado 22 de enero murió Arno Allan Penzias, físico y radio astrónomo, quien junto a otros confirmó la existencia de la nube de radiación cósmica de microondas, uno de los tantos pasos necesarios para entender mejor el cosmos. Lo desafortunado fue el titular del New York Time: “Muere Arno A. Penzias, 90 años; el Nobel de Física que confirmó la teoría del Big Bang”, y digo desafortunado por la supersimplificación de ese titular. Es como una vez que estaba dando una presentación de una de las herramientas de Business Intelligence, que permite hacer análisis sobre data multidimensional (cubos OLAP) y dos personas que estaban adelante comentaron entre sí, “es como un manejador de archivos”. No es un manejador de archivos, permite hacer análisis, y no son archivos, son estructuras de datos altamente optimizadas.

Otra cosa que me resulta extraña, es que en esta discusión en hacker news sobre el tema realmente nadie dice que buena parte de la comunidad científica ya no está segura sobre el Big Bang. Tanto es así, que recuerdo que vi una presentación (perdí el enlace) donde el presentador pregunta a una audiencia compuesta de astrónomos y cosmólogos, quiénes creen en la teoría del Big Bang, y solamente la mitad de la audiencia levantó la mano. Yo no se si esto es posible, y estoy seguro que me van a desmentir, pero dentro de la comunidad científica es como un tema tabú hablar sobre la posibilidad de que estemos equivocados sobre el Big Bang, porque, creo yo, si efectivamente nos equivocamos (lo cual científicamente es normal) sería un horror porque entonces tendríamos que reconocer que no sabemos cómo funciona el universo.

Algo bizarro que no signifíca nada

No se si ya había reportado que que la palabra bizarro fue aceptada por la RAE en su acepción de algo raro e inusual. En inglés esta palabra siempre ha tenido ese significado, pero en español no. Pues, otra palabra interesante que tiene un significado diferente en español que el significado en inglés es ostensible: en inglés es algo que puede ser falso o no, mientras que en español es sinónimo de notorio, visible, patente. Con esta palabra no tengo ningún problema. Tal como está me parece bien. Porque de hecho el significado en español es el correcto, en base a su raiz etimológica. En inglés, al parecer, se distorsionó, por razones que sería interesante descubrir.

Volví con los farsantes

“Tú formas parte del equipo”, “estamos buscando un aliado”, “contamos contigo”, “esperamos tenerte en nuestro equipo”. Cuando un cliente me habla con estos clichés, comienzo a sospechar. Tengo tantos años trabajando como freelancer, que ya detecto las señales rápidamente. Literalmente dejo pasar un proyecto cuando el lenguaje es demasiado dulce y cariñoso: lo que vienen después son problemas. Todo ese discurso edulcoradado significa una sola cosa: voy a trabajar mucho y ganar poco. Cuando este patrón se volvió más que obvio empecé a rechazar estos proyectos. Prefería proyectos cuyo líder fuera más imparcial, menos comprometido con su bolsillo y mejor pagador.

Entonces, los accidentes pasan. Desde la pandemia para acá, el mercado freelancer cambió, mucha gente aprendió las bondades de trabajar desde casa, remoto, en pantaloncillos y pantuflas. En realidad, la mayoría de los trabajos de oficina no requieren que estés en la oficina: el commuting (el tiempo y el esfuerzo que empleas en ir del trabajo a la oficina y viceversa) es innecesario. No hay cifras oficiales, pero hoy en día, 4 años después, todavía hay un buen porcentaje que se rehúsa a regresar a la oficina (Amazon acaba de ordenar a sus empleados a regresar 5 días de la semana en la oficina. Update 27-09-24: Dell exige lo mismo a sus cuerpo de ventas, oficina 5 dias a la semana desde el 30 de septiembre) . Esa invasión de mano de obra tomó por asalto todos los mercados freelancers: no solamente eso, el mercado ha madurado, las empresas ya saben cómo maximizar el tiempo de los freelancers, minimizar costos, cambiar de freelances como cambian de toalla sanitaria, etc. Eso, junto con la ChatGPT y el resto del zoológico IA (Inteligencia Artificial) ha hecho que los proyectos sean más retadores, diferentes, que cualquier oferta tenga más de 50 cotizaciones a los minutos de ser publicada, y conseguir que un cliente se comunique contigo a se ha reducido a 1/30 cuando antes (hace 4 años) era 1/5, es decir, de cada 5 cotizaciones que hacía, al menos me llamaba un cliente y en un 70% o 80% de los casos se convertía en negocio.

El otro frente, el de los clientes directos uno por uno ha ido desapareciendo y ahora es casi imposible reemplazarlos. Algunos freelancers han decido regresar y emplearse en trabajos de 9-5 porque han llegado a situaciones desesperadas. Todo este contexto me ha llevado a considerar clientes que en el pasado hubiera rechazado en los primeros 15 minutos: ya no puedo hacer eso, no me puedo dar el lujo de perder clientes. Pero eso ha ocasionado que comience a interactuar con los clientes a los que me refería al comienzo: “Tú formas parte del equipo”, “estamos buscando un aliado”, lo cual se traduce en que voy a tener que trabajar durísimo y la paga va a ser mala, muy mala.

Creo que es hora del famoso plan B del que todos hablan.

La IA no sabe razonar

29-08-2024 5:51 PM

We’re driving Cadillacs in our dreams

Estoy tratando de limpiar un poco la bitácora de khpx de bugs viejos a los que ya le he dedicado tiempo pero que siguen ahi, incólumes, reacios a ser eliminados.

El que comencé a trabajar hoy bien temprano es con el cursor del mouse. Cuando el juego está en windowed mode, es decir, no está en full screen, o dicho de otra forma, la ventana del juego tiene los íconos del sistema para minimizar, maximizar y cerrar la ventana, y abajo están los iconos de las aplicaciones de Windows, y movemos el cursor del mouse hasta arriba, saliendo del juego, el cursor se pierde y hay que mover el mouse hasta encontrar donde se metió. Esa implementación creo que es del 2021 (o quizás del 2020) y siempre ha tenido ese problema, a pesar de mis intentos por resolverlo. Mi primera presunción es que era un problema de resolución de pantalla pero lo descarté por alguna razón. Grave error, ya veremos por qué.

Esta mañana se me ocurrió revisar de nuevo el tema de las transformaciones de view, project y world, que son las tres transformaciones que DirectX utiliza para establecer los objetos en pantalla. Agregué inicializaciones de todas estas transformaciones a la matriz identidad para garantizar que todo estaba en su estado original. Pero nada, el problema continuaba.

Se me ocurrió entonces hablar con Gemini, el ChatGPT de Google a ver si se le ocurría alguna idea adicional. Me pasó una larga lista de posibilidades, incluyendo el tema de transformaciones. Todas ya las había revisado excepto el SCISSORs, así que lo inicialicé tambien. El código antes de hacer el DrawPrimitive de DirectX quedó así:

D3DXMATRIXA16 matProj, matView, matWorld;
D3DXMatrixIdentity(&matProj);
D3DXMatrixIdentity(&matView);
D3DXMatrixIdentity(&matWorld);
g_pd3dDevice->SetTransform(D3DTS_VIEW, &matView);
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
g_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);
g_pd3dDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, false);

Le formulé varias otras preguntas a Geminí pero se quedó ahí sugiriendo más o menos lo mismo. Así que no tuve más remedio que hacer lo que los humanos hacemos:

Pensar

Yo creo que no pasaron 5 minutos hasta que llegué a la conclusión de que tenía que revisar otra vez el tema de la resolución de la pantalla. Si la resolución de la pantalla no concuerda con la resolución interna de la aplicación, lógicamente cuando el cursor del mouse se mueve del juego al sistema y viceversa va a haber un cambio de posición, es decir no va a coincidir el posicionamiento. Si el juego está en resolución 1200 x 800 y mi pantalla está en 1910 x 1080, si el cursor está en 600,10 y sale al sistema va a aparecer en la posición alrededor del 33% de la longitud horizontal de la pantalla, mientras que en el juego, 600 corresponde al 50% de la pantalla: ¿cómo fue que no se me ocurrió eso antes? Peor, ¿por qué Gemini no me sugirió revisar la diferencia de resoluciones entre el juego y el sistema? La IA no sabe razonar, solo repite lo que encuentra en internet.

Ahora que corregí el bug me parece que era demasiado tonto y obvio. Sin embargo, estuve horas estancado dándole vueltas. Voy a tener que pensar con más frecuencia, y dejar de usar Gemini. Me aporta mejores dividendos.

Cómo migrar un juego desarrollado con SDL2 en Windows a Android: Parte 2

26-07-2024 11:13 AM

tilemovers es un juego de mover piezas tipo puzzle que tengo publicado desde hace 3 años en el Play Store con muy pocas ventas. Nunca lo he actualizado, ni agregado nuevos niveles, nada. Pero finalmente me vi obligado a hacerlo: Google me adviertió que si no lo actualizo lo van a remover del Play Store (breaking news: ya lo removieron. Actualización: ya lo publiqué de nuevo). Así que finalmente conseguí el tiempo para hacerlo.

Aquí está un largo post donde describo mis peripecias implementado el juego y todo el proceso para publicarlo: no fue fácil como se puede ver.

Lo estoy actualizando con varios detalles nuevos, cómo hacer para actualizar el último release, y algunos problemas que se pueden presentar. No voy a repetir aqui (en esta parte 2) esos temas porque ya es realmente complicado conseguir la información en ese post, el que urgentemente, requiere un índice. Coloqué las nuevas adiciones al final con la fecha. Otras correcciones quedaron sin marca alguna, para hacer más fluida la lectura (ya de por si llena de anécdotas, a veces irrelevantes, a veces impertinentes). Los nuevos visitantes lo agradecerán.

Saqué 4 versiones nuevas corrigiendo los distintos problemas. El detalle es que debes actualizar “compileSdkVersion” a 34 (hoy en día), “compileSdkVersion” lo puedes dejar por ahora en su valor actual (16, creo)

Pero todavía sigue un último error. En este momento me aparece este mensaje:

We will soon take action because your app does not adhere to Google Play Developer Program policies. [Pronto tomaremos medidas porque tu aplicación no cumple las políticas del programa de desarrolladores de Google Play.]

Esto se puede deber a que tienes una versión en alguna parte (producción o testing) que no has actualizado a la última version del API (hoy es 34). La respuesta es que no hay forma de remover este mensaje hasta que el alto concilio de Trento, el Sacro Imperio Google y demás instancias apropiadas lo decreten. Tanto en los foros de Google como en Stackoverflow se indica que no hay forma de hacer “delete” a las versiones viejas, solo se indica que puedes deshabilitar el “track” (a veces tampoco se puede deshabilitar el “track”, por ejemplo, yo no puedo hacerlo).

Así que hay que dejarlo así y que seas perdonado por la Inquisición Española y no te lleven a la hoguera.

Se cansa uno.