Tetris: El truco matemático para vencer a un experto

Este artículo explora una estrategia poco convencional para 'hacer trampa' en Tetris, aprovechando las complejidades matemáticas del juego para asegurar la victoria. La premisa es simple: tú eliges las piezas que tu amigo, un jugador experto, debe colocar. Para ganar, tu amigo debe sobrevivir a 100.

orígenes del código: los 'ur-lenguajes' revelados

Este artículo explora un concepto fundamental en el desarrollo de software: los "ur-lenguajes" (lenguajes ancestrales). La idea central es que, aunque existen miles de lenguajes de programación, muchos comparten patrones básicos de construcción y organización, agrupándose en familias o "ur-lenguajes

Comparar floats: ¿evitamos el problema o lo empeoramos?

Un artículo en lisyarus.github.io cuestiona la práctica común de evitar la comparación directa de números de punto flotante utilizando un valor 'epsilon' para la tolerancia. El autor, con más de 15 años de experiencia en programación que involucra geometría, gráficos y física, argumenta que esta prá

Orden en matemáticas: más allá de la secuencia

Este artículo de 'Category Theory Illustrated' explora el concepto de 'orden' en matemáticas y programación, más allá de la simple idea de secuenciación. Un orden, en su forma más básica, es un conjunto de elementos con una relación binaria definida que los conecta. La forma más común que solemos pe

Simula Klondike: Analiza estrategias en solitario

El proyecto Klondike3-Simulator, desarrollado por Dacracot y alojado en GitHub, es una herramienta para simular partidas del juego Klondike (Solitario). Su objetivo principal es analizar la probabilidad de éxito en diferentes estrategias de juego, algo crucial para optimizar la jugabilidad y entende

Algoritmos de Red: Más Allá del Transporte

Algoritmos de Flujo de Red: Una Visión General. ¿Qué son y por qué son importantes? Los algoritmos de flujo de red son una herramienta matemática poderosa que permite modelar y resolver problemas que involucran el movimiento de algo a través de una red. Originalmente concebidos para optimizar el tra

Pratt Parsing: Analizando código de forma intuitiva

Este artículo explica el 'Pratt Parsing', una técnica ingeniosa para analizar expresiones matemáticas o código, especialmente útil en compiladores. La idea central es que, tradicionalmente, las expresiones (como `a + b * c + d`) se representan en un árbol de sintaxis abstracta (AST) donde los operad

Monuses optimizan búsqueda en montículos

Este artículo explora una estructura algebraica llamada 'monus' y su aplicación en algoritmos de búsqueda y ordenamiento, particularmente en el contexto de montículos (heaps). Un montículo es una estructura de datos en forma de árbol donde el valor de cada nodo es menor o igual que el de sus hijos,

Dither: Nueva técnica para simular más colores

El artículo "Estudios sobre el Dither" de Daniel Temkin explora y presenta un sistema de 'dither' sin contenido. Para entender esto, primero debemos definir qué es el dither. En términos simples, el dither es una técnica utilizada en procesamiento de imágenes y audio para simular una gama de colores

Rob Pike: 5 Claves para Programar Mejor

Las '5 Reglas de Programación' de Rob Pike, un ingeniero influyente en Google y creador de lenguajes como Go, ofrecen una guía valiosa para el desarrollo de software eficiente y mantenible. Estas reglas, que se basan en principios establecidos por otros grandes de la informática, enfatizan la import

Fallece Tony Hoare: Legado de un pionero de la informática

Este artículo conmemora la vida y obra de Tony Hoare, un pionero de la informática, fallecido recientemente a los 92 años. Hoare no solo fue un académico brillante, sino también un programador y gerente con experiencia en la industria, lo que influyó en su enfoque práctico y elegante de la resolució

Matemáticas visuales: crea sandpiles gigantescas

Este artículo del blog de Eavan explora el cálculo de 'sandpiles de identidad', estructuras matemáticas visualmente impresionantes que surgen de un proceso de estabilización de granos de arena en una cuadrícula. Inicialmente, el objetivo era generar imágenes atractivas, pero la búsqueda de eficienci

Matemáticas en Python: Descifrando los 'thinnings'

Este artículo explora el concepto de "thinnings", una herramienta matemática que, aunque a menudo vista como compleja en contextos como la teoría de tipos dependientes, puede ser aplicada y comprendida en lenguajes de programación más comunes como Python. En esencia, un thinning es una forma de test

Lenguaje online: humanos y algoritmos en evolución

Este artículo explora cómo la evolución del lenguaje en internet se ve influenciada por dos fuerzas principales: la propia naturaleza humana y los algoritmos de las plataformas de redes sociales. Tim Bray, un experto en tecnología, revisa dos libros clave: *Because Internet* de Gretchen McCulloch y

find: El comando de Linux esconde una potencia inesperada

El comando `find`, una herramienta fundamental en sistemas Unix y Linux, es a menudo uno de los primeros comandos que aprenden los usuarios. Sin embargo, un nuevo estudio revela una faceta sorprendente: `find` es, de hecho, Turing completo. Esto significa que, teóricamente, puede ejecutar cualquier

Contratación en software: ¿evaluaciones erróneas?

Las prácticas de contratación en la industria del software están siendo cuestionadas debido a lo que se conoce como la “falacia del green lumber” (madera verde), un término acuñado por Nassim Nicholas Taleb para describir la confusión entre conocimiento irrelevante y esencial. El problema radica en

Preservar redes sociales: un reto para las instituciones

El almacenamiento de redes sociales presenta desafíos únicos para las instituciones, más allá de la simple recolección personal como un 'scrapbook'. Este artículo explora estos desafíos, contrastando la informalidad de una colección personal con las rigurosas necesidades de una institución que busca

Difuminado no es censura: la información se recupera

El artículo explora la falacia común de que difuminar imágenes es una forma efectiva de censura o redacción de información. Si bien es cierto que el difuminado básico, como el promediado de píxeles, parece destruir la información original, el artículo demuestra que esta información puede ser recuper

Kolakoski: La secuencia que se define a sí misma

La secuencia de Kolakoski es una secuencia infinita de números 1 y 2 que posee una propiedad fascinante: su descripción se encuentra codificada dentro de sí misma. Esto significa que la secuencia está formada por las longitudes de las 'carreras' (secuencias consecutivas del mismo número) que la comp