Category: Desarrollo

Desafío de OCR: Digitalizando las Memorias de Saint-Simon

2024-12-17

El autor dedicó varias semanas a utilizar OCR para digitalizar una edición de finales del siglo XIX de las memorias francesas del siglo XVIII, *Les Mémoires de Saint-Simon*. Esta obra monumental de 45 volúmenes, con más de 3 millones de palabras, está disponible online en imágenes, pero resulta difícil de leer. El objetivo era crear una versión de texto legible, buscable y copiable. Los desafíos incluyeron la baja calidad de las imágenes y el análisis de las diferentes zonas de la página (encabezados, texto principal, comentarios marginales, notas al pie, etc.). Se utilizó la API de Google Vision para OCR, con un programa en Python que procesaba los resultados para identificar y separar el texto de las diferentes áreas. Aunque los modelos de lenguaje grandes (LLMs) no lograron gestionar de forma fiable las referencias a las notas al pie, el autor mejoró el programa e incorporó una revisión manual, lo que resultó en el lanzamiento del primer volumen.

PipeGate: Proxy ligero y autohospedado, tu 'ngrok' económico

2024-12-17
PipeGate: Proxy ligero y autohospedado, tu 'ngrok' económico

PipeGate es un proxy ligero y autohospedado, construido con FastAPI, diseñado como un 'ngrok' económico. Permite exponer tus servidores locales a internet, ofreciendo una forma sencilla de crear túneles desde tu máquina local al mundo exterior. Es una excelente herramienta para desarrolladores que quieren comprender cómo funcionan internamente los servicios de tunelización como ngrok o necesitan una alternativa personalizable alojada en su propia infraestructura. Sus características clave incluyen autohospedaje, conexiones únicas, personalización, diseño ligero y facilidad de aprendizaje. La instalación es sencilla, a través de git clone o pip.

Bruin: Crea pipelines de datos con SQL y Python

2024-12-17
Bruin: Crea pipelines de datos con SQL y Python

Bruin es una potente herramienta de pipeline de datos que combina la ingestión de datos, la transformación de datos con SQL y Python y las comprobaciones de calidad de datos en un único marco. Funciona con las principales plataformas de datos y se ejecuta en tu máquina local, en una instancia de EC2 o en GitHub Actions. Las características clave incluyen la ingestión de datos, transformaciones SQL y Python, comprobaciones de calidad de datos, plantillas Jinja, validación de extremo a extremo y soporte para varios entornos. Los pipelines se definen fácilmente mediante un simple archivo pipeline.yml.

Desarrollo pipeline de datos

SpiceNice: Se lanza una base de datos de especias culinarias de código abierto

2024-12-17
SpiceNice: Se lanza una base de datos de especias culinarias de código abierto

SpiceNice es un nuevo sitio web de código abierto que ofrece una base de datos completa de especias culinarias. Proporciona información detallada sobre cada especia, incluyendo su nombre botánico, usos culinarios y origen, junto con detalles sobre la planta correspondiente. Construido con Strapi (backend), PostgreSQL (base de datos) y Astro (frontend), SpiceNice pretende convertirse en un recurso central para cocineros, biólogos, agricultores y entusiastas de las especias. Los planes futuros incluyen una API web, soporte multilingüe y un foro comunitario.

Desarrollo especias

Discourse celebra una década fomentando comunidades online

2024-12-17
Discourse celebra una década fomentando comunidades online

Discourse, el software de foros de código abierto, celebró su décimo aniversario el 26 de agosto de 2024. Lanzado con la visión de elevar el estándar del discurso online, ha crecido de un pequeño equipo de cuatro a más de 100 empleados en 25 países. La plataforma cuenta con más de 20.000 comunidades, 107 millones de temas y casi 1.650 millones de publicaciones. El desarrollo continuo ha incluido la adición de 49 plugins, funciones de chat y herramientas con tecnología de IA para la moderación y la mejora de la experiencia del usuario. Este éxito es un testimonio de su naturaleza de código abierto, compromiso con la retroalimentación del usuario y la dedicación de su equipo.

Langfuse: Plataforma de ingeniería de LLM de código abierto agiliza el desarrollo

2024-12-17
Langfuse: Plataforma de ingeniería de LLM de código abierto agiliza el desarrollo

Langfuse es una plataforma de ingeniería de LLM de código abierto diseñada para simplificar el desarrollo e implementación de aplicaciones de modelos de lenguaje grandes (LLM). Ofrece funciones como observabilidad de LLM, métricas, evaluaciones, gestión de prompts, un entorno de pruebas y conjuntos de datos, integrándose perfectamente con herramientas como LlamaIndex, Langchain, OpenAI SDK y LiteLLM. Los desarrolladores pueden usar Langfuse para monitorizar el rendimiento de LLM, gestionar prompts, evaluar la eficacia del modelo y, en definitiva, acelerar el desarrollo de aplicaciones LLM.

Firmware de código abierto: necesidad y elecciones estratégicas

2024-12-17

Este artículo explora la necesidad del firmware de código abierto. El autor argumenta que el firmware, como software que controla el hardware, debería adherirse a los principios del software libre. Esto no solo se trata de libertad en sí misma, sino que también está directamente relacionado con los intereses prácticos de los usuarios. El firmware no libre puede restringir la funcionalidad del hardware, ocultar vulnerabilidades de seguridad e incluso impedir que los usuarios solucionen problemas de seguridad. El artículo analiza dos puntos de vista: uno considera el firmware de código abierto deseable pero no necesario; el otro aboga por que todo el software del sistema sea de código abierto. El autor se inclina por el primero, creyendo que priorizar la libertad del kernel del sistema operativo es más importante, pero al mismo tiempo enfatiza los beneficios del firmware de código abierto y discute cómo promoverlo mediante medios estratégicos.

Desarrollo software libre

Un equipo de desarrollo de una sola persona alcanza los dos millones de usuarios

2024-12-17

Nadia Odunayo, ingeniera de software, creó StoryGraph, una aplicación de comunidad de lectura con más de un millón de usuarios, como desarrolladora individual. StoryGraph ayuda a los usuarios a realizar un seguimiento de sus lecturas y recomienda libros en función de su estado de ánimo y preferencias. Esta historia inspiradora destaca la determinación, las habilidades técnicas y el 'marco de una sola persona' que Odunayo utilizó para lograr esta hazaña impresionante. Ofrece información valiosa para aspirantes a desarrolladores individuales.

El álgebra lineal impulsa el editor de diagramas interactivo

2024-12-17
El álgebra lineal impulsa el editor de diagramas interactivo

Ivan Shubin, al desarrollar su editor de diagramas interactivo Schemio, utilizó inteligentemente operaciones matriciales del álgebra lineal para resolver una serie de problemas desafiantes. Inicialmente, Schemio solo admitía la creación y manipulación de formas simples. Sin embargo, al introducir una estructura jerárquica, las transformaciones de coordenadas se volvieron complejas. El autor inicialmente utilizó un enfoque recursivo, pero encontró problemas con la escala y los puntos de pivote. Finalmente, Shubin utilizó matrices para representar transformaciones (traslación, rotación, escala), utilizando la multiplicación de matrices para la conversión de coordenadas y empleando ingeniosamente la inversión de matrices para resolver el problema de conversión de coordenadas del mundo a coordenadas locales. Además, las operaciones matriciales abordaron el ajuste preciso de la posición y rotación de un objeto al moverse dentro de la jerarquía, evitando saltos inesperados. El código fuente de Schemio es de código abierto y está disponible en GitHub.

Tig: Interfaz de modo texto para Git

2024-12-17

Tig es una interfaz de modo texto basada en ncurses para Git, que funciona principalmente como un navegador de repositorios Git. También ayuda a preparar cambios para confirmarlos a nivel de bloque y actúa como un paginador para las salidas de varios comandos Git. Hay disponibles instrucciones de instalación, notas de lanzamiento que detallan nuevas funciones y correcciones de errores, y recursos como la página de inicio, el manual y la sección de preguntas y respuestas en Stack Overflow. Los informes de errores y las solicitudes de funciones se pueden enviar a través del rastreador de problemas o por correo electrónico.

Programadores crean un juego de programación fantástico: Droste's Lair

2024-12-17
Programadores crean un juego de programación fantástico: Droste's Lair

Dos programadores pasaron dos semanas desarrollando Droste's Lair, un juego de entorno de programación fantástico. Los jugadores construyen y cuentan estructuras matemáticas mediante interacciones intuitivas de arrastrar y soltar, utilizando un mecanismo "amb" para la ejecución ramificada y la recursión. El juego, con temática de espadas y hechicería, presenta desafíos como invertir elementos de lista, generar todas las combinaciones de cartas y contar las maneras de cubrir un tablero de damas con fichas de dominó. Droste's Lair combina hábilmente elementos de programación y juego, ofreciendo una forma novedosa y atractiva de aprender conceptos de programación y matemáticas.

Valhalla: La Reestructuración Épica de Java se Acerca a su Finalización

2024-12-17

Después de una década de trabajo, el Proyecto Valhalla, la ambiciosa reestructuración de Java, se acerca a su finalización. Con el objetivo de cerrar la brecha entre clases y primitivos, Valhalla introduce clases de valor que ofrecen la comodidad de codificación de las clases con el rendimiento de los primitivos, lo que resulta en un diseño de memoria plano y compacto. En Devoxx 2024, el arquitecto de lenguaje Java Brian Goetz ofreció una actualización completa, destacando características clave como clases de valor, tipos con restricción de nulos, análisis de asignación definida mejorado e inicialización estricta.

Desarrollo Clases de Valor

El nuevo framework Forked de Swift simplifica la gestión de datos compartidos

2024-12-17
El nuevo framework Forked de Swift simplifica la gestión de datos compartidos

El desarrollador Drew McCormack lanzó Forked, un nuevo framework de Swift para simplificar la gestión de datos compartidos en dispositivos únicos y múltiples. Inspirado en el mecanismo de fusión de Git, Forked admite ramificación y fusión dentro de un solo archivo, logrando la consistencia eventual. No requiere un historial completo de cambios, solo las versiones suficientes para la fusión de tres vías. Forked utiliza structs en lugar de clases, admite Codable y se integra perfectamente con servicios en la nube como iCloud. Incluso aborda las condiciones de carrera del acceso concurrente y admite lógica de fusión personalizada o algoritmos CRDT integrados. La sincronización de CloudKit se logra con solo unas pocas líneas de código.

Nuevo compilador de CHICKEN Scheme: CRUNCH – Un compilador Scheme con tipado estático

2024-12-17

Este artículo presenta CRUNCH, un nuevo compilador para un subconjunto con tipado estático del lenguaje de programación Scheme. Construido sobre el sistema CHICKEN Scheme, compila código Scheme en código C99 portátil. CRUNCH busca proporcionar un compilador Scheme de alto rendimiento y ligero, abordando las deficiencias de los sistemas Scheme existentes en cuanto a rendimiento y portabilidad. Es especialmente adecuado para el desarrollo de juegos, la creación de máquinas virtuales y la programación de sistemas embebidos. Si bien CRUNCH tiene limitaciones en las características del lenguaje Scheme compatibles, logra una generación de código eficiente mediante la inferencia de tipos y varias optimizaciones, integrándose perfectamente con el ecosistema CHICKEN Scheme.

Desarrollo Tipado Estático

Microsoft lanza Multilspy: biblioteca Python para simplificar el desarrollo de clientes de servidores de lenguaje

2024-12-17
Microsoft lanza Multilspy: biblioteca Python para simplificar el desarrollo de clientes de servidores de lenguaje

Microsoft ha lanzado Multilspy, una biblioteca de Python diseñada para simplificar la creación de aplicaciones en torno a servidores de lenguaje. Con soporte para Java, Rust, C# y Python, Multilspy automatiza la descarga de binarios del servidor, la configuración/desmontaje y proporciona una API sencilla. Interactúa con los servidores de lenguaje para obtener resultados de análisis estático, como la finalización del código, las definiciones de símbolos y las referencias, esenciales para técnicas de generación de código asistidas por IA, como Monitor-Guided Decoding.

Mejores prácticas para representar la herencia en bases de datos SQL Server

2024-12-17
Mejores prácticas para representar la herencia en bases de datos SQL Server

Este artículo explora las mejores prácticas para representar relaciones de herencia en bases de datos SQL Server. Se presentan tres enfoques comunes: herencia de tabla única, herencia de tabla concreta y herencia de tabla de clase. Se detallan las ventajas y desventajas de cada uno. La herencia de tabla única es simple, pero tiene problemas de escalabilidad e integridad de datos; la herencia de tabla concreta resuelve estos problemas, pero las consultas son ineficientes; la herencia de tabla de clase equilibra la simplicidad y la eficiencia, lo que la convierte en la opción preferida en la mayoría de los escenarios. También se discuten enfoques alternativos que utilizan JSON para campos específicos de subtipo y el diseño de bases de datos normalizadas.

Haz que tu QEMU sea 10 veces más rápido con este extraño truco

2024-12-17

Mientras depuraba pruebas de NixOS, Linus Heckemann descubrió tiempos de copia de datos dolorosamente lentos (más de 2 horas) en una máquina virtual QEMU. El análisis de rendimiento con `perf` reveló que el servidor 9p de QEMU usaba una lista enlazada ineficiente (complejidad O(n)) para las búsquedas de archivos. Al cambiar a una tabla hash proporcionada por glib (complejidad O(1)), redujo el tiempo de prueba a 7 minutos y contribuyó con éxito a la optimización del proyecto QEMU.

Desarrollo

Advent of Code en Nintendo DS: Un desafío de programación Rust en un sistema embebido

2024-12-16

El autor abordó el Advent of Code 2024 usando Rust en una Nintendo DS. Este relato detallado describe el proceso, desde la configuración de un entorno de compilación cruzada y la escritura de código Rust para un sistema embebido sin tiempo de ejecución hasta la superación de desafíos en la gestión de memoria, las interrupciones y la salida de pantalla. El autor logró mostrar con éxito la solución del Advent of Code en la pantalla de la DS. El artículo muestra fuertes habilidades de programación y una profunda comprensión de los sistemas embebidos, destacando las técnicas y el disfrute de la programación en entornos con recursos limitados.

Desarrollo Sistemas embebidos

Principios del diseño de lenguajes de programación educativos: ¿Por qué la falta de consenso?

2024-12-16
Principios del diseño de lenguajes de programación educativos: ¿Por qué la falta de consenso?

Este artículo explora la evolución de los principios en el diseño de lenguajes de programación educativos a lo largo de varias décadas. Si bien el trabajo de Wirth y otros enfatizó principios como la simplicidad y la modularidad, persiste el desacuerdo entre los educadores sobre los lenguajes adecuados para programadores principiantes. El artículo analiza cómo la interpretación de estos principios cambia en el contexto de las tecnologías actuales y por qué no ha surgido un lenguaje de programación educativo común y ampliamente utilizado a nivel mundial. Los autores discuten los méritos relativos de los lenguajes pedagógicos frente a los lenguajes de la industria y argumentan que cada generación de estudiantes necesita su propio lenguaje.

Caída masiva de OpenAI: Un nuevo servicio de telemetría causa una interrupción importante

2024-12-16
Caída masiva de OpenAI: Un nuevo servicio de telemetría causa una interrupción importante

OpenAI experimentó una interrupción importante del servicio el 11 de diciembre, debido a un nuevo servicio de telemetría recientemente implementado. Con la intención de mejorar la confiabilidad, este servicio generó inesperadamente una carga masiva en los servidores de la API de Kubernetes, saturándolos y causando que el plano de control de Kubernetes fallara en la mayoría de los clústeres grandes. Esto llevó a la ruptura del descubrimiento de servicios basado en DNS. El incidente destaca las interacciones impredecibles dentro de los sistemas complejos y los desafíos de probar los modos de falla que solo aparecen bajo carga total. OpenAI restauró el servicio reduciendo el tamaño de los clústeres, bloqueando el acceso a la red a las API administrativas de Kubernetes y escalando los servidores de la API.

La nueva API opaca de Go Protobuf mejora el rendimiento y la seguridad

2024-12-16

El equipo de Go lanzó una nueva API opaca para Go Protobuf, que coexiste con la API de estructura abierta existente. Esta nueva API desacopla el código generado de su representación de memoria subyacente, lo que lleva a mejoras en el rendimiento, reducción de asignaciones de memoria y permite optimizaciones como la decodificación diferida. Al ocultar los campos de la estructura y acceder a ellos solo a través de métodos de acceso, evita errores relacionados con punteros y el intercambio accidental. La migración implica habilitar la API híbrida, usar la herramienta `open2opaque` y luego cambiar a la API opaca. La API de estructura abierta existente sigue siendo compatible.

(go.dev)
Desarrollo

Cambio incompatible con GRUB2 causa un bucle de arranque de la configuración de la BIOS

2024-12-16
Cambio incompatible con GRUB2 causa un bucle de arranque de la configuración de la BIOS

Los sistemas Debian y Kali Linux del autor experimentaron bucles de arranque después de una actualización de GRUB2 que agregó el comando `fwsetup --is-supported`. Las versiones anteriores de GRUB no reconocieron este parámetro. El problema surgió de un módulo `efifwsetup.mod` anterior, sobrante de una restauración de copia de seguridad del sistema, causando un conflicto entre la nueva configuración de GRUB y el módulo antiguo. La instalación del paquete `grub-efi-amd64-bin` resolvió el problema. Esto destaca la importancia de la compatibilidad con versiones anteriores en las actualizaciones de software y la necesidad de considerar los posibles efectos secundarios al realizar cambios parciales en software complejo como GRUB2.

Desarrollo bucle de arranque

Resumen de Conferencias Ruby: Visión General Global

2024-12-16

Ruby Video Talks es un sitio web que recopila información sobre conferencias de desarrolladores Ruby en todo el mundo. Desde eventos importantes como RubyConf 2024 (70 charlas) y Rails World 2024 (46 charlas) hasta reuniones regionales más pequeñas, el sitio proporciona un calendario completo. Destaca a oradores clave como Matz y ofrece funciones de búsqueda por fecha, ubicación y tema, lo que facilita la búsqueda de eventos relevantes. También se enumeran futuras conferencias en 2025, como Balkan Ruby y Friendly.rb, que prometen aún más oportunidades para la comunidad Ruby.

Emacs con Guile: Un ambicioso proyecto de reescritura

2024-12-16

El editor Emacs es conocido por su extensibilidad, pero enfrenta limitaciones de rendimiento y expresividad con su lenguaje principal, Emacs Lisp (Elisp). Para abordar esto, el proyecto Guile-Emacs pretende reemplazar Elisp en Emacs con Guile Lisp. Después de años de desarrollo e inactividad, Guile-Emacs ha sido revivido por los desarrolladores Robin Templeton y Larry Valkama. El proyecto busca aprovechar las ventajas del compilador y el rendimiento de Guile para mejorar la velocidad y la extensibilidad de Emacs, manteniendo la compatibilidad con Elisp. El objetivo final es reescribir una parte significativa del código C de Emacs en Lisp, mejorando significativamente su capacidad de personalización. A pesar de los desafíos técnicos y políticos, el proyecto presenta posibilidades emocionantes para el futuro de Emacs.

Desarrollo

Reescritura de SQLite en Rust logra una reducción de 100x en la latencia de cola

2024-12-16

Investigadores de la Universidad de Helsinki y Cambridge han reescrito SQLite en Rust, creando Limbo, un proyecto que aprovecha la E/S asincrónica y io_uring para mejorar drásticamente el rendimiento. Al utilizar E/S asincrónica y desagregación de almacenamiento, Limbo logra una reducción de hasta 100x en la latencia de cola, particularmente beneficioso en entornos serverless multiinquilino. La mejora principal proviene de reemplazar las instrucciones de bytecode sincrónicas por sus contrapartes asíncronas, eliminando bloqueos y mejorando la concurrencia. Las mejoras son más notables en los percentiles altos, lo que hace que Limbo sea ideal para aplicaciones que exigen alta fiabilidad.

(avi.im)
Desarrollo E/S Asincrónica

Converge Contrata Ingeniero Full-Stack Senior: Construye una Plataforma de Medición de Marketing de Millones de Dólares

2024-12-16
Converge Contrata Ingeniero Full-Stack Senior: Construye una Plataforma de Medición de Marketing de Millones de Dólares

Converge, una empresa respaldada por Y Combinator con más de $1 millón en ARR, está contratando un ingeniero full-stack senior. El pequeño equipo (solo 4 personas) atiende a más de 180 clientes, procesando miles de millones de dólares en ventas anuales y miles de millones de eventos por mes. Desarrollarás una pila unificada de medición de marketing, incluyendo la recopilación de datos de clientes, la resolución de identidad y la atribución de marketing, con interacción directa con el cliente y una propiedad significativa. La empresa valora la orientación a la acción, el aprendizaje continuo, las actitudes positivas y la simplicidad. Se requiere experiencia extensa en full-stack, dominio de React y desarrollo de back-end, y conocimiento de la implementación y escalado de software de producción.

Componente de Integración Xiaomi Home Assistant Lanzado Oficialmente

2024-12-16
Componente de Integración Xiaomi Home Assistant Lanzado Oficialmente

Xiaomi lanzó oficialmente el componente de integración Xiaomi Home Assistant, permitiendo a los usuarios integrar sus dispositivos inteligentes Xiaomi IoT en Home Assistant. El componente admite varios métodos de instalación, incluyendo clonación Git, HACS e instalación manual. Los usuarios deben iniciar sesión con su cuenta Xiaomi; se admiten varias cuentas y la selección de región. El componente admite la mayoría de los dispositivos domésticos inteligentes Xiaomi, pero actualmente excluye dispositivos Bluetooth, infrarrojos y virtuales. Los métodos de control incluyen control en la nube y control local (que requiere una puerta de enlace central Xiaomi o dispositivos con puerta de enlace integrada). Mapea MIoT-Spec-V2 a entidades de Home Assistant. El componente también admite varios idiomas y un modo de depuración, priorizando la privacidad y seguridad del usuario, pero requiere un almacenamiento cuidadoso de los archivos de configuración.

El error millonario de un programador: Un bug con un giro dramático

2024-12-16
El error millonario de un programador: Un bug con un giro dramático

Trey, un programador que trabajaba para una startup de telecomunicaciones 3G, escribió un programa de prueba de pago automatizado destinado a pequeñas transacciones de prueba. Sin embargo, tres errores en el código hicieron que el programa acreditara su cuenta de prueba con $100 cada cinco minutos. La falta de verificación de actividad significaba que, cuando una pasarela fallaba, el programa seguía ejecutándose durante horas, acumulando una suma sustancial. A la mañana siguiente, Trey se enfrentó a preguntas de la seguridad hasta que su jefe de departamento explicó la situación, pero el saldo de la cuenta de prueba se restableció a cero.

Asociación Modelica: Modelando Sistemas Complejos de Forma Eficiente

2024-12-16

La Asociación Modelica promueve el lenguaje Modelica y sus herramientas asociadas. Modelica es un lenguaje orientado a objetos para modelar y simular sistemas ciberfísicos complejos, particularmente hábil en la modelación acausal de componentes reutilizables regidos por ecuaciones matemáticas. La asociación proporciona especificaciones del lenguaje, herramientas, bibliotecas y soporte comunitario para permitir que los usuarios modelen sistemas de forma eficiente.

NAS minimalista: frood, un sistema Alpine initramfs

2024-12-16
NAS minimalista: frood, un sistema Alpine initramfs

El autor presenta frood, un sistema NAS construido como una única imagen initramfs grande que contiene un sistema Alpine Linux completo. Este diseño resulta en tiempos de arranque rápidos y una reducción del desgaste en los dispositivos de almacenamiento. La configuración es sencilla; los archivos residen directamente en la imagen, eliminando DSL complejas o herramientas de configuración. El estado del sistema se rastrea con Git, y cada arranque es efectivamente un nuevo comienzo, evitando la acumulación de desorden en la configuración. El artículo detalla el proceso de construcción del sistema, incluyendo el uso del script alpine-make-rootfs, la instalación de paquetes esenciales y la escritura de scripts de inicio. También se describen las pruebas con QEMU y el procedimiento de actualización de la imagen del sistema. En esencia, frood es un sistema NAS ligero, fácil de mantener e implementar, cuya filosofía de diseño simple merece ser emulada.

Desarrollo
1 2 207 208 209 211 213 214 215