Adrianistán

El blog de Adrián Arroyo


¿Podemos perder tecnología?

Hace unos minutos he visto una noticia que decía que TSMC tenía que retrasar su fábrica de microchips en suelo estadounidense por falta de talento. Esto me ha recordado una cosa que llevo pensando un tiempo y es si podemos perder tecnología.

Seguir leyendo

¿Qué necesita tener un buen protector de pantalla de móvil?

Los que me conocen en persona saben que llevo varios años usando el mismo móvil, un Huawei P30 Pro. Se trata de un teléfono de gama alta que me regalaron y he de decir que me ha gustado mucho. Este teléfono me hizo cambiar mi percepción de la gama alta, ya que he visto que estos teléfonos duran bastante más que los gama baja que solía utilizar como smartphone.

Seguir leyendo

Sustituyendo Google Photos por mi propia solución local

Uno de los productos de Google que más he usado ha sido Google Photos. Se trata de un servicio donde podemos subir imágenes y vídeos personales, que se sincroniza con nuestro dispositivo. No obstante, cada vez intento depender menos de servicios de Google y encima, con Photos, me estoy quedando sin espacio. Así que vamos a construir una alternativa.

Seguir leyendo

Just, un sustituto de Make polivalente

Make es una herramienta común en los entornos UNIX. Se trata de una herramienta originalmente diseñada como un sistema de construcción de programas, principalmente en C, aunque lo suficientemente flexible para adaptarse a cualquier otro entorno. Y ese es uno de sus problemas, aunque sea muy poderoso, está pensado principalmente para construir programas y existen multitud de variantes (no es lo mismo GNU Make que BSD Make). Muchas veces no queremos eso, si no un command runner, donde tenemos comandos con dependencias entre ellos. Aunque Make soporta esto mediante targets PHONY, Just está diseñado desde el principio para esto.

Seguir leyendo

"¿Las inteligencias artificiales tienen derechos?" transcripción de Ernesto Castro

Hace poco vi esta interesante charla filosófica sobre la Inteligencia Artificial impartida por Ernesto Castro y compartida con un vídeo en YouTube. Me pareció interesante transcribir su contenido usando precisamente una IA. En este caso Whisper de OpenAI. También comparto el vídeo original. He hecho algunos retoques sobre todo para que sea más legible. Al final comparto el código Python que he usado.

Seguir leyendo

BQN: programación basada en arrays

Hoy vamos a ver un lenguaje de programación reciente pero con raíces en los años 60. Si has leído el título, se trata de BQN. Un lenguaje orientado a arrays. Dirás: "pero Adrián, prácticamente todos los lenguajes tienen arrays" y es cierto. Pero este lenguaje lo lleva a otro nivel. Además el lenguaje destaca por usar multitud de símbolos fuera del estándar ASCII, lo que dificulta un poco el aprendizaje. A mí me gusta ver BQN como una calculadora hipervitaminada.

Seguir leyendo

Usando NixOS como servidor en una Raspberry Pi

El otro día me llegó una VisionFive 2, una de las placas RISC-V con mejor relación calidad/precio del mercado. Sin embargo, antes de entrar en ello. Voy a volver con la Raspbbery Pi 3B un momento y es que, el otro día se corrompió la tarjeta microSD. Es algo muy habitual en estos dispositivos y siempre tengo backups y tarjetas de repuesto. Pero en esta ocasión quería probar algo nuevo. En vez de usar Debian dije, ¿y si uso NixOS?

Seguir leyendo

Strand, un lenguaje extremadamente paralelo

Strand es un lenguaje de programación lógico diseñado en 1988 por Ian Foster y Stephen Taylor. Se trata de un lenguaje diseñado desde para ser extremadamente paralelo. El lenguaje no tuvo mucho éxito, su página de Wikipedia en inglés es enana y muy poca gente lo conoce. No obstante, los autores de Strand llegaron a publicar un libro, Strand: New concepts in Parallel Programming. Además, gracias al trabajo de Felix L. Winkelmann, existe una implementación open source de Strand. En este post veremos algunos conceptos fundamentales de Strand.

Seguir leyendo

El camino a Prolog: parser y juntarlo todo (parte III)

Ya tenemos un sistema que es capaz de probar cosas mediante backtracking interactivo pero no podemos pasarle ficheros ni escribir queries de forma normal. Lo primero que tendremos que hacer será un parser de la sintaxis de Prolog a nuestras estructuras de datos y después lo juntaremos todo en un programa ejecutable. Veremos como resolver el problema de la cebra.

Seguir leyendo

El camino a Prolog: obtener soluciones y no determinismo (parte II)

En el artículo anterior dejamos un algoritmo de unificación escrito en Rust. Ahora, y siguiendo también el libro de Peter Norvig, debemos implementar algo que pruebe las reglas que tenemos definidas para la query que insertemos.

Seguir leyendo