Adrianistán

El blog de Adrián Arroyo


Teletexto #012

- Adrián Arroyo Calle

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.

Comentarios

Rotietip
Dudo que algún día vaya a usar APL (no he visto proyectos que me parezcan interesantes hechos con este lenguaje y las matemáticas nunca fueron mi fuerte) pero por mera curiosidad, ¿como se colocan los símbolos?¿Hay combinaciones de teclas o te los tienes que ir copiando y pegando de otro lado? El enlace de la FAQ de Matrix esta repetido, en realidad es <a href="https://matrix.org/blog/2022/03/30/technical-faq-on-the-digital-markets-act/">este</a>. Es bueno saber que el diseño plano finalmente se esta comenzando a dejar de lado (no sabes cuanto odio esa mierda) aunque esto del "arcillamorfismo" no me termina de convencer tampoco. Algunas observaciones sobre las licencias: * Me parece raro es que no haya una versión en español de la licencia "Buena Onda" siendo que fue escrita por un argentino. Igual la idea en si no suena tan mal, al menos en teoría (también lo que propone la licencia JSON, Happy Bunny y No Harm). * He considerado licenciar bajo la WTFPL algunas chorradas de las que me da igual que hagan con el código, pero creo que eso ya lo cubriría el dominio publico. * La STRONGEST PUBLIC LICENSE pareciera algo salido de 4chan. Por ultimo, tendré a la mano lo de la lista de buscadores.
Adrián Arroyo Calle
Gracias Rotetip! Me alegro que los enlaces te hayan sido interesantes. Respecto a APL, es especialmente usado a nivel interno, no tanto en proyectos que se distribuyan. Quizá lo más popular ahora mismo sea Kx, un sistema muy usado en Wall Street para finanzas y que se basa en APL (en reliadad usa una versión sin símbolos raros llamada K). En APL antiguamente había que usar un teclado especial. Hoy se pueden usar IDEs que tienen asociadas combinaciones de teclas a esos símbolos. El tema de las licencias es problemático, porque en el fondo son documentos legales y muchas cosas que suenan bien son demasiado vagas o difíciles de argumentar en un juicio; aparte de los conflictos que puedan surgir al usar varias licencias entre sí.

Añadir comentario

Todos los comentarios están sujetos a moderación