Adrianistán

El blog de Adrián Arroyo


Artículos con etiqueta «programacion»

Pascal. Un homenaje a Niklaus Wirth

A principios de año tuvimos la triste noticia de la muerte de Niklaus Wirth, uno de los pioneros de la programación tal y como la conocemos. Wirth participó en muchas discusiones y debates que darían forma al mundo de la informática actual. Si bien no forma parte de la primera generación de informáticos (quizá eso sería más apropiado de Turing, Church o Von Neumman), sí lo es de la primera generación donde la informática empieza a ser algo independiente y separado de otras disciplinas.

Seguir leyendo

Curva de Hilbert en Prolog

La curva de Hilbert es una curva fractal descubierta por David Hilbert en 1891. Es un tipo de curva de Peano. Estas curvas tienen la peculiaridad de que cubren todo el plano de forma continua. Esto les otorga propiedades muy interesantes, una curva de Hilbert de nivel N es la aproximación enésima al límite de la curva, ocupando el mismo espacio pero cada vez rellenando más huecos, así hasta el infinito, donde sería un cuadrado sólido. El objetivo de este post no es entrar en detalle de sus propiedades matemáticas ni de sus aplicaciones, sino como podemos generar curvas de Hilbert bonitas usando Prolog.

Seguir leyendo

Diversión con shaders en WGSL

Estaba experimentando con Bevy, un motor de videojuegos muy prometedor, escrito en Rust, cuando me surgió la necesidad (o en ese momento lo creía) de tener que hacer un hack usando shaders. Los shaders son pequeños programas que se ejecutan en la GPU. Tras mis aventuras, he podido comprender como funciona, más en detalle, los gráficos 3D modernos. Una ventaja que tiene Bevy respecto a otros motores, es que, actualmente te permite acceder al nivel base WebGPU de forma muy rápida y cómoda, sin las complicaciones habituales de hacer todo el setup. Es por ello que usaremos Bevy, para tener acceso rápido a WGSL y poder programar en la GPU.

Seguir leyendo

Vídeo de mi charla de Strand

Hace unos días di una charla hablando de Strand, un lenguaje de programación del paradigma lógico y que actualmente está en desuso y muy poca gente conoce. El motivo de la charla fue revisar la historia de este lenguaje y cómo consigue que podamos escribir programas paralelos sin apenas darnos cuenta, ya que no incluye ninguna sentencia de fork/spawn o similar. Espero que os guste.

Seguir leyendo

Introducción a Apache Spark con datos de la Fórmula 1

Este post es una adaptación del taller que di en el VallaTech Summit 2023 organizado por el Google Developers Group de Valladolid

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