El primer verificador de tipos para principiantes: Una aventura Python de 350 líneas

2025-09-06
El primer verificador de tipos para principiantes: Una aventura Python de 350 líneas

Este artículo describe la creación de un verificador de tipos básico para Python en solo 350 líneas de código. El autor guía al lector a través del proceso, desde el análisis del código Python y la búsqueda de anotaciones de tipos hasta la verificación de compatibilidad de tipos, el manejo de llamadas a funciones y tipos de retorno, el soporte para listas, diccionarios y tipos de unión, y la implementación de la reducción de tipos. Si bien es limitado en alcance, el verificador de tipos resultante detecta con éxito varios errores de tipos en código Python del mundo real, proporcionando un ejemplo claro y accesible de cómo funcionan los verificadores de tipos.

Leer más
Desarrollo

La forma sorprendentemente rápida de encontrar vocales en cadenas

2025-06-13
La forma sorprendentemente rápida de encontrar vocales en cadenas

Este artículo compara once métodos diferentes para detectar vocales en cadenas, desde bucles simples hasta expresiones regulares e incluso un enfoque basado en números primos. Sorprendentemente, las expresiones regulares superan constantemente a otros métodos, incluso a los bucles simples, en varias longitudes de cadena. Una inmersión profunda en el bytecode de Python y el motor de expresiones regulares de CPython revela la razón de la velocidad de las expresiones regulares. El autor concluye que, si bien las expresiones regulares son las más rápidas en la mayoría de los casos, los métodos más simples son suficientes a menos que se esté trabajando con millones de cadenas.

Leer más

Adiós a las costosas APIs de geocodificación: Una biblioteca JavaScript ligera para la búsqueda de estados/provincias

2025-06-04
Adiós a las costosas APIs de geocodificación: Una biblioteca JavaScript ligera para la búsqueda de estados/provincias

Una startup gastaba miles de dólares anuales en la API de Google Maps para geocodificación inversa, solo para determinar los estados de los usuarios. Considerando esto un desperdicio, el autor creó `coord2state`, una biblioteca JavaScript ligera que identifica directamente los estados de EE. UU. a partir de coordenadas de latitud/longitud. Aprovechando los datos de límites del censo de EE. UU. y el algoritmo de Douglas-Peucker para la simplificación, alcanza una precisión del 99,9% con una tolerancia de 0,01°, con un peso de solo 260 KB. La biblioteca es de código abierto en GitHub y NPM, ofreciendo una alternativa económica para los desarrolladores.

Leer más

Una odisea de 25 años en IA/ML: De juegos a la síntesis de programas

2025-01-02
Una odisea de 25 años en IA/ML: De juegos a la síntesis de programas

Esta publicación relata un viaje de 25 años en IA/ML. Comienza con juegos simples en VB6, progresando al uso de máquinas de estado y funciones de orden superior para mejorar la dinámica de los juegos. Los estudios de posgrado introdujeron la lógica de primer orden, las máquinas de vectores de soporte y las redes neuronales, aplicadas a proyectos como el chat de video de bajo ancho de banda y el análisis de datos de registro de editores de código. Como profesor, el autor se centró en herramientas de desarrollador inteligentes, explorando modelos predictivos para identificar y corregir errores de los programadores. Su trabajo en el equipo de síntesis de programas de Microsoft involucró LLMs para mejorar la asistencia de código. El autor enfatiza la importancia de la aplicación cuidadosa de la IA, priorizando los problemas claros del usuario y evitando la dependencia excesiva de los LLMs.

Leer más