Adrianistán

Teletexto #012

03/04/2022

Ya iba siendo hora de otro teletexto, ¿no creéis? Pues sí, ha pasado ya un tiempo y mi lista de enlace ha crecido enormemente. Vamos con algunos de ellos.

Empezamos fuerte hablando de APL, uno de los lenguajes de programación que inventaron un paradigma, en concreto el de los Array Languages. Famoso por su código ultrabreve lleno de símbolos matemáticos (originalmente hacía falta un teclado especial para programar en él), este lenguaje de los años 60 tiene cosas que merecen la pena aprender. Es lo que explica Why APL is a language worth knowing. Si has usado R o Numpy, algunas cosas te sonarán, pero la sintaxis de APL es quizá la mejor para este tipo de programación, incluso a día de hoy.

En la Unión Europea se está trabajando en un nuevo reglamento que puede cambiar bastantes cosas del mundo digital, se trata de la Digital Markets Act. Una de los mayores cambios viene en que se exigirá a ciertos actores dentro de las aplicaciones de mensajerías interoperabilidad. ¿Cómo funcionará esto? En Matrix han hecho una FAQ para entenderlo mejor. Spoiler: no implicará que todos usen la misma API ni que se pasen a un estándar XMPP/Matrix.

Alguna vez he tratado de hacer un juego de mesa en ordenador. Y siempre está la parte de hacerlo multijugador online. Esta parte es compleja y se puede abordar desde diferentes estrategias. En este post, Longelwind nos explica las estrategias más comunes que pueden hacerse para implementar juegos por turnos online.

Hace ya bastante tiempo los programadores asumimos que los GOTO eran herramientas con más malos usos que buenos y su uso se redujo drásticamente, dando origen a la programación estructurada. Sin embargo, para tratar con concurrencia seguimos usando GOTO constántemente, el ejemplo más famoso es el GO del lenguaje Go. Una de las alternativas es la concurrencia estructurada que implementan Trio en Python o las corrutinas de Kotlin.

Los modas en diseño van y vienen. Lo que hace 10 años era feo ahora vuelve a considerarse. Aunque como siempre, hay ligeros detalles que lo modernizan. Algo así pasa con el claymorphism, el nuevo estilo para apps y webs que crece con fuerza. En Smashing Magazine nos hablan de como hemos llegado hasta aquí, que elementos lo distinguen de otros estilos y como lo podemos aplicar en nuestros diseños.

Hay muchas licencias dentro del mundo del software. Algunas privativas, otras de software libre, virales, ... Pero también las hay malas. Tan rematadamente malas que alguien las ha recopilado en un mismo sitio. Licencias que no deberías usar nunca. Algunas son irónicas, otras no.

Daniel Jakots quería tener una dirección IPv6 pero su ISP no se la asignaba. Sin embargo, pensó, pues me asigno una y la anuncio por toda la red, ¡como si fuese mi propio ISP! En su post cuenta lo que hay que hacer para lograrlo.

En este blog ya he hablado de Z3 y vimos como podíamos resolver un sudoku con este demostrador de teoremas. Otra aplicación, bastante práctica, es comprobar que los permisos RBAC funcionan como queremos.

Cuando he usado Gradle, siempre me ha parecido muy complejo. Sin embargo, gracias a este tutorial de fundamentales de Gradle, he podido descubrir como funciona por debajo y como su "magia" no es tal y en realidad, se trata de uno de los task runners más potentes y flexibles.

Se habla mucho de oligopolios tecnológicos. Un sector donde está dominado por ellos son las búsquedas. Las alternativas principales a Google en occidente son Bing de Microsoft y DuckDuckGo, pero este último tiene un problema... No usa su propio índice, depende de Bing también. En este artículo repasan todos los motores de búsqueda 100% independientes con su propio índice y la calidad de sus resultados. ¡Muchos no los conocía!

Un nuevo tipo de base de datos está surgiendo con el Machine Learning. Se trata de las bases de datos vectoriales, especializadas en almacenar vectores y matrices. Un ejemplo es Milvus. He aquí una introducción a ellas.

¿Qué inspiró la creación de Clojure? En esta presentación, ya clásica, Rich Hickey explica como Clojure era la solución a los problemas que veía en la programación.

frawk es un lenguaje muy similar a AWK implementado en Rust. No es 100% compatible a posta, para mejorar en ciertos aspectos pero la idea es muy similar. ¿Logrará reemplazar a AWK?

ichiban/prolog es una implementación de ISO Prolog hecha en Go preparada para ser empotrado en los programas. The only reasonable scripting engine.

Finalmente, he descubierto hace poco una de las pruebas más duras del ciclismo de montaña/gravel. Se trata de la Tour Divide, una carrera sin asistencia desde Canadá hasta México (4500km aproximadamente) y donde no solo hay que pedalear sino sobrevivir en la naturaleza. El récord está en 13 días y 22 horas, ¿alguien lo mejora?

Me despido con esta canción: Airport Lady de Toshiki Kadomatsu. Todavía me quedan muchos enlaces pero esa la dejaremos para la edición 12+1.

Tags: programacion prolog gamedev clojure kotlin gradle concurrencia apl teletexto z3 matrix