La crisis de replicación en psicología: Estudios de la ciencia cognitiva desmentidos

2025-09-17
La crisis de replicación en psicología: Estudios de la ciencia cognitiva desmentidos

La década de 2010 presenció una 'crisis de replicación' en la psicología, donde muchos resultados ampliamente aceptados no pudieron ser reproducidos. Esta publicación recopila una lista de estudios prominentes de la ciencia cognitiva que no se han replicado, incluyendo el efecto del agotamiento del ego, el efecto de la pose de poder, el priming social (efecto de las palabras de personas mayores) y el efecto del priming del dinero. Estos hallazgos, alguna vez populares, han sido cuestionados o completamente desmentidos desde entonces. El objetivo es ayudar a los lectores a discernir investigaciones creíbles de resultados poco fiables, evitando la desinformación.

Leer más
Varios

Muchos problemas difíciles de LeetCode son simplemente problemas de restricción fáciles

2025-09-12
Muchos problemas difíciles de LeetCode son simplemente problemas de restricción fáciles

El autor relata una experiencia frustrante en una entrevista donde un problema aparentemente simple de cambio lo dejó perplejo debido a su falta de habilidades de programación dinámica. Argumenta que muchos problemas desafiantes de LeetCode son, de hecho, fácilmente solucionables usando solucionadores de restricciones como MiniZinc, Z3 o OR-Tools. El artículo presenta varios ejemplos, incluyendo maximizar el beneficio de las acciones y encontrar el rectángulo más grande en un histograma, demostrando la elegancia y el poder de los solucionadores de restricciones, especialmente al manejar restricciones complejas.

Leer más
Desarrollo

Cómo RSS venció a ICE: La simplicidad triunfa sobre la complejidad

2025-09-08
Cómo RSS venció a ICE: La simplicidad triunfa sobre la complejidad

Este artículo narra la batalla entre RSS e ICE, dos protocolos de sindicación de contenido en competencia. Respaldado por gigantes como Microsoft y Adobe, ICE ofrecía una funcionalidad superior, pero era excesivamente complejo y cerrado. RSS, originario de Netscape, era simple, fácil de usar y prosperó debido a su naturaleza abierta. En última instancia, la simplicidad de RSS y las contribuciones de numerosos blogueros y desarrolladores llevaron a su victoria sobre el ICE más poderoso, convirtiéndose en el estándar de la industria para la agregación de contenido. Esto refuerza el dicho de internet: la simplicidad triunfa sobre la complejidad.

Leer más

Por qué prefiero reStructuredText a Markdown

2025-08-18
Por qué prefiero reStructuredText a Markdown

Esta publicación detalla por qué el autor prefiere reStructuredText (rST) a Markdown para escribir libros técnicos. rST, al ser una representación de peso medio de un árbol de documentación abstracto, ofrece una extensibilidad y personalización superiores en comparación con el enfoque ligero de Markdown. El autor lo ilustra con ejemplos de creación de imágenes y manejo de ejercicios, mostrando cómo las directivas personalizadas y las transformaciones del árbol de documentos de rST permiten estructuras de documentos complejas y funcionalidades difíciles de lograr en Markdown. Si bien reconoce la sintaxis potencialmente menos intuitiva de rST, el autor defiende su potencia para la documentación a gran escala, especialmente cuando se necesitan extensiones y transformaciones personalizadas, como se demuestra en su libro, "Lógica para Programadores."

Leer más
Desarrollo Escritura Técnica

La Explosión de Entornos de Ejecución de JavaScript: Una Década de Innovación

2025-07-28
La Explosión de Entornos de Ejecución de JavaScript: Una Década de Innovación

La última década ha sido testigo de una explosión de nuevos entornos de ejecución y motores de JavaScript, permitiendo la ejecución de JavaScript en diversos contextos con una notable optimización específica para cada tarea. Esto ha impulsado a JavaScript a la nube, la computación perimetral, los Smart TV, los dispositivos móviles e incluso los microcontroladores. Este artículo explora los factores que impulsaron esta diversidad y por qué un solo entorno de ejecución o motor no satisface todas las necesidades. Desde el auge de la computación perimetral y los motores de bajos recursos para microcontroladores hasta los motores políglotas que facilitan la interoperabilidad con otros lenguajes y el uso generalizado en el desarrollo de aplicaciones nativas, los entornos de ejecución de JavaScript demuestran una increíble adaptabilidad y un crecimiento vibrante. El artículo detalla varios entornos de ejecución y motores como Node.js, Deno, Cloudflare Workers, Bun, React Native, NativeScript y más, describiendo sus tecnologías subyacentes y su evolución.

Leer más

Caché: Abstracción, no optimización

2025-07-04
Caché: Abstracción, no optimización

La sabiduría convencional dice que el caché acelera el software. El autor argumenta que esto es solo parte de la historia. Después de trabajar con el movimiento de datos entre almacenamiento de objetos, disco y memoria, el autor propone que el papel más crucial del caché es simplificar el software. El artículo explora las limitaciones de los algoritmos de caché predefinidos (LRU, LFU, etc.) y sugiere que el caché actúa más como una capa de abstracción, ocultando los detalles de almacenamiento subyacentes, liberando a los programadores de la preocupación por la ubicación del nivel de datos. Los mecanismos de caché de bases de datos y SO ejemplifican esta abstracción. Aunque el caché puede presentar problemas, como el mal uso del caché de páginas del SO y fsync, esto no significa que deba abandonarse el caché, sino que debe entenderse y utilizarse mejor.

Leer más
Desarrollo

La Epidemia de la Soledad: Un Llamado a Salir de Casa

2025-06-29
La Epidemia de la Soledad: Un Llamado a Salir de Casa

Este artículo aborda el problema generalizado de la soledad en la sociedad moderna, argumentando que salir de casa es crucial para combatirla. El autor utiliza su experiencia con un perro y el compromiso comunitario en un parque para perros como un ejemplo principal de cómo construir conexiones. Destaca la importancia de la infraestructura urbana, como las aceras, para fomentar la comunidad. La pieza critica al capitalismo tardío por beneficiarse y exacerbar la soledad, instando a los lectores a participar activamente en la vida comunitaria y experimentar la conexión humana.

Leer más
Varios

Resolviendo el Problema de las Reinas de LinkedIn con SMT: ¡Más fácil que SAT!

2025-06-12
Resolviendo el Problema de las Reinas de LinkedIn con SMT: ¡Más fácil que SAT!

Esta publicación detalla cómo resolver el rompecabezas de las 'Reinas de LinkedIn', una variación del clásico problema de las N-Reinas con restricciones regionales adicionales, utilizando el solucionador SMT Z3. El autor demuestra que expresar el problema en SMT, utilizando variables enteras y restricciones, es significativamente más simple que la formulación SAT equivalente, que requiere muchas cláusulas booleanas. Si bien los solucionadores SMT pueden ser más lentos que los solucionadores SAT altamente optimizados como Glucose, la facilidad de codificación hace que SMT sea preferible para muchos. La publicación incluye código completo y útiles comprobaciones de cordura para verificar la corrección del modelo. Esto proporciona una explicación convincente de la preferencia de la industria por herramientas que compilan a SAT en lugar de usar SAT directamente.

Leer más
Desarrollo solucionador SMT

Indecibilidad: La caja de Pandora de los programadores

2025-05-28
Indecibilidad: La caja de Pandora de los programadores

Este artículo explica con claridad el concepto de "indecidibilidad" en la ciencia de la computación. Usando un lenguaje accesible y ejemplos concretos (como determinar si un número es la suma de dos números primos), el autor explica los problemas de decisión y el papel de las máquinas de Turing. La conclusión principal es que la indecidibilidad no significa que sea imposible saber si un programa se detendrá, sino que no existe un algoritmo universal para determinar el comportamiento de detención de todos los programas. Esto hace que muchos problemas (como verificar las propiedades de los programas) requieran un esfuerzo significativo y pueden ser insolubles, destacando la necesidad de campos como la verificación formal y el análisis de programas.

Leer más
Desarrollo indecidibilidad

Pruebas basadas en propiedades: Por qué superan a las pruebas unitarias para entradas complejas

2025-05-21
Pruebas basadas en propiedades: Por qué superan a las pruebas unitarias para entradas complejas

Este artículo debate los méritos de las pruebas basadas en propiedades (PBT) frente a las pruebas unitarias tradicionales. El autor argumenta que si bien las pruebas unitarias son suficientes para funciones con entradas únicas, la explosión combinatoria de casos límite en funciones con varias entradas hace que PBT, con su generación de entradas aleatorias, sea superior en la detección de errores de límite ocultos. Sin embargo, PBT tiene una curva de aprendizaje; dominar estrategias complejas de generación de entradas es crucial. La mayoría de los ejemplos de PBT son demasiado simplistas para mostrar su verdadero poder en el manejo de espacios de entrada complejos.

Leer más

La apuesta del Servicio Postal de EE. UU. al correo electrónico: El auge y la caída de E-COM

2025-05-14
La apuesta del Servicio Postal de EE. UU. al correo electrónico: El auge y la caída de E-COM

Ante la amenaza del correo electrónico, el Servicio Postal de EE. UU. lanzó E-COM en 1982, un servicio que imprimía correos electrónicos y los entregaba a través de carteros. Inicialmente exitoso, E-COM finalmente fracasó en 1985 debido a los altos costos, los procesos engorrosos y la falta de flexibilidad, lo que resultó en pérdidas superiores a los 40 millones de dólares. Sin embargo, E-COM popularizó inadvertidamente el término "correo electrónico" y destacó los intentos del servicio postal por adaptarse a los cambios tecnológicos.

Leer más
Tecnología Correo electrónico

Seguridad alimentaria en Estados Unidos: Una batalla contra las mentiras y la historia

2025-04-30
Seguridad alimentaria en Estados Unidos: Una batalla contra las mentiras y la historia

Este artículo entrevista a la periodista científica Deborah Blum, explorando el estado actual y la historia de la seguridad alimentaria en los EE. UU. Blum destaca que, en medio de la proliferación de desinformación y la desregulación gubernamental, los ciudadanos estadounidenses enfrentan riesgos para la seguridad alimentaria, con problemas similares a la adulteración de alimentos del siglo XIX que resurgen. Ella utiliza su libro, "The Poison Squad", para ilustrar el nacimiento de la Ley de Alimentos y Medicamentos Puros de 1906 y cómo el químico Harvey Wiley expuso problemas de seguridad alimentaria mediante un experimento con un 'escuadrón de veneno'. Blum pide atención pública a la seguridad alimentaria y critica el enfoque individualista que culpa a los consumidores por las enfermedades transmitidas por los alimentos, enfatizando la responsabilidad del gobierno de garantizar los derechos básicos.

Leer más

Los requisitos cambian hasta que dejan de hacerlo: Métodos formales y evolución del sistema

2025-04-28
Los requisitos cambian hasta que dejan de hacerlo: Métodos formales y evolución del sistema

Este artículo explora cómo manejar los requisitos en constante cambio en el desarrollo de software. Si bien el modelado formal extenso por adelantado puede ser poco práctico con cambios frecuentes, el autor argumenta que los métodos formales se vuelven cruciales cuando los sistemas alcanzan una escala o sufren cambios arquitectónicos (transiciones de fase). La especificación y verificación formales garantizan que las mejoras no rompan la funcionalidad existente. Usando el ejemplo del cambio de actualizaciones síncronas a asíncronas, el autor demuestra cómo los métodos formales pueden verificar si un nuevo sistema satisface los requisitos antiguos, destacando la importancia del mantenimiento de software y previniendo el fallo silencioso de las funciones.

Leer más

Resolviendo el rompecabezas del salón proposicional del Príncipe Azul con lógica

2025-04-21
Resolviendo el rompecabezas del salón proposicional del Príncipe Azul con lógica

Este artículo detalla cómo resolver automáticamente un rompecabezas lógico del juego Príncipe Azul usando lógica proposicional. El rompecabezas involucra tres cajas (azul, blanca, negra), cada una haciendo afirmaciones, y reglas que afirman que al menos una caja es totalmente verdadera, al menos una es totalmente falsa y el premio está en exactamente una caja. El autor modela el problema en lógica proposicional, usa un enfoque de fuerza bruta para encontrar todas las asignaciones satisfactorias y, así, determina la ubicación del premio. El artículo incluye una implementación en JavaScript y discute la optimización del código.

Leer más

AMP para Email de Google: Un fracaso audaz

2025-04-18
AMP para Email de Google: Un fracaso audaz

Google intentó revolucionar el correo electrónico con AMP (Accelerated Mobile Pages), permitiendo experiencias interactivas como reservar hoteles o responder a comentarios de Google Docs directamente en los correos electrónicos. Sin embargo, esta iniciativa fracasó. El artículo analiza las razones detrás del fracaso de AMP para Email, incluyendo la alta complejidad de desarrollo, la compatibilidad deficiente y los conflictos con las propiedades inherentes del correo electrónico. La desconfianza de los desarrolladores hacia la imposición de Google contribuyó significativamente a su desaparición. Si bien los correos electrónicos interactivos no son imposibles, deberían priorizar la compatibilidad y la permanencia, no a expensas de la simplicidad y la fiabilidad. El éxito duradero del correo electrónico radica en su simplicidad y descentralización.

Leer más
Tecnología

Más allá de NP: Un Problema de Complejidad Más Intuitivo

2025-04-17
Más allá de NP: Un Problema de Complejidad Más Intuitivo

El autor cuestiona el uso del Problema de la Parada como el ejemplo canónico de un problema más difícil que NP-completo, argumentando que es confuso e intuitivamente poco claro. Si bien es indecidible, la verificación de una respuesta "sí" para el Problema de la Parada se puede hacer ejecutando el programa durante un número finito de pasos. Se presenta una alternativa más fácil de entender: mover una ficha en una cuadrícula infinita para alcanzar un punto objetivo. Este problema es PSPACE-completo en dimensiones inferiores, pero su complejidad explota al aumentar las dimensiones, llegando eventualmente a la completitud de ACKERMANN, demostrando visualmente una complejidad mucho mayor que los problemas NP.

Leer más

Resolviendo un rompecabezas de Layton con elegancia usando Prolog

2025-04-08
Resolviendo un rompecabezas de Layton con elegancia usando Prolog

El autor reescribió el capítulo sobre lenguajes de programación lógica en su libro "Lógica para Programadores", mostrando el poder de Prolog con un rompecabezas al estilo 'Layton'. El rompecabezas implica deducir la puntuación del cuarto estudiante en base a las puntuaciones de los tres primeros. Usando un código Prolog conciso (¡solo 15 líneas!), el autor resuelve elegantemente el problema, aprovechando la coincidencia de patrones y la bidireccionalidad de Prolog para encontrar todas las posibles claves de respuesta, determinando finalmente la puntuación del cuarto estudiante como 6. Se hace una comparación con una solución más larga y menos eficiente. Aunque el autor argumenta en contra del uso de rompecabezas para la enseñanza, este ejemplo demuestra el potencial de aplicación práctica de Prolog.

Leer más

Es hora de dejar de construir bases de datos KV

2025-03-25
Es hora de dejar de construir bases de datos KV

El autor critica las bases de datos Key-Value por ser excesivamente simplistas y carecer de poder expresivo, lo que las hace difíciles de usar. Si bien son populares entre los proveedores de motores de almacenamiento, las bases de datos KV son simplemente bloques de construcción para modelos de datos razonables, obligando a los usuarios a construirlos desde cero, a menudo con resultados subóptimos. El autor propone un término medio: una base de datos integrada con registros tipados, separando los esquemas lógicos y físicos, pero escribiendo consultas contra el esquema físico. Esto evita los planificadores de consultas complejos, admite cambios de esquema asíncronos e intercambio de diseños. Este enfoque equilibra la independencia de datos con la simplicidad necesaria para los sistemas integrados, ofreciendo una alternativa convincente tanto para las tiendas KV simples como para las complejidades de las bases de datos relacionales completas.

Leer más
Desarrollo

Desarrollo Primero la Verificación: Más Allá del Desarrollo Guiado por Pruebas

2025-03-18
Desarrollo Primero la Verificación: Más Allá del Desarrollo Guiado por Pruebas

Este artículo explora el Desarrollo Primero la Verificación (VFD), un paradigma que enfatiza el establecimiento de mecanismos de verificación antes de escribir código. Esto puede implicar escribir pruebas, definir invariantes de tipo, agregar contratos u otros métodos. El VFD difiere del Desarrollo Guiado por Pruebas (TDD), que es un caso específico del VFD y se centra en el uso de pruebas para dirigir el diseño del código. Las ventajas del VFD incluyen la reducción de la probabilidad de omitir la verificación, la detección temprana de errores y la mejora de la calidad del código. Sin embargo, el VFD también tiene inconvenientes: puede ralentizar el desarrollo, dificultar la codificación exploratoria y los métodos de verificación pueden influir en el diseño del código. El autor argumenta que el VFD, como técnica y no como paradigma, es más flexible y se integra fácilmente con otros enfoques.

Leer más

Cinco Tipos de No Determinismo: Perspectivas Prácticas de los Métodos Formales

2025-02-20
Cinco Tipos de No Determinismo: Perspectivas Prácticas de los Métodos Formales

Este artículo explora cinco tipos de no determinismo en el modelado de sistemas: aleatoriedad verdadera, concurrencia, entrada del usuario, fuerzas externas y abstracción. El autor explica cada tipo claramente con ejemplos prácticos. La aleatoriedad verdadera, aunque a menudo se simula con generadores de números pseudoaleatorios, generalmente se trata como una elección no determinista en el modelado. La concurrencia es una fuente principal de no determinismo, que requiere un manejo especial debido a la explosión del espacio de estados. La entrada del usuario y las fuerzas externas se tratan como influencias externas no deterministas. Fundamentalmente, la abstracción simplifica los procesos deterministas complejos en elecciones no deterministas, simplificando los modelos y aumentando la sensibilidad a los errores potenciales. Esto proporciona información valiosa para comprender el no determinismo y sus aplicaciones en el desarrollo de software.

Leer más

Eficiencia vs. Escalabilidad Horizontal: ¿Una Disyuntiva Inevitable?

2025-02-12
Eficiencia vs. Escalabilidad Horizontal: ¿Una Disyuntiva Inevitable?

Este artículo explora la tensión entre la eficiencia del software y la escalabilidad horizontal. El autor argumenta que el software optimizado para la escalabilidad suele tener un rendimiento deficiente en entornos de máquina única, y viceversa. Esto se debe a la Ley de Amdahl, la sobrecarga de coordinación y las limitaciones en los recursos compartidos. Los algoritmos eficientes suelen depender de supuestos sobre el sistema y el problema que pueden dejar de ser ciertos al escalar horizontalmente. El autor también analiza factores culturales y tipos de tareas que influyen en las decisiones, ilustrando con ejemplos como la base de datos Tigerbeetle y el GIL de CPython. En definitiva, una comprensión profunda del problema y del entorno es crucial para lograr una alta eficiencia y escalabilidad.

Leer más
Desarrollo

La curiosa historia de los anclajes de expresiones regulares: ¿Por qué `$` y `^`?

2025-01-21
La curiosa historia de los anclajes de expresiones regulares: ¿Por qué `$` y `^`?

Esta publicación profundiza en los orígenes históricos del uso de `$` y `^` como anclas de línea en las expresiones regulares. Remontándose al editor de texto QED, `$` inicialmente representaba el final del búfer, posteriormente adaptado por Ken Thompson para significar el final de una línea en regex. La elección de `^` probablemente se debió al conjunto de caracteres limitado de la máquina de escribir Teletype Model 35, con `^` ya presente en ASCII-67. No fue una elección de diseño brillante, sino una consecuencia de las limitaciones de hardware y el conjunto de caracteres de esa época, convirtiéndose en una convención en las expresiones regulares.

Leer más
Desarrollo

La modelación matemática revela lo malo que es el juego del Dreidel

2024-12-18
La modelación matemática revela lo malo que es el juego del Dreidel

El año pasado, el autor usó el lenguaje de modelado probabilístico PRISM para modelar el juego tradicional de vacaciones Dreidel, demostrando su falta de diversión. Este año, refinó el modelo para simular todo el juego hasta su conclusión. El nuevo modelo corrige el fallo anterior de simular solo la eliminación del primer jugador y mejora la lógica de cálculo para las apuestas y la eliminación de jugadores. Mediante simulación de modelos, el autor descubrió que, en promedio, un juego de cuatro jugadores tarda 760 giros en terminar, y el más largo puede incluso superar las 6 horas. Esto demuestra completamente que el juego Dreidel es largo, tedioso y frustrante.

Leer más