Category: Desarrollo

Bun: ¿Por qué la instalación de paquetes es 7 veces más rápida que npm?

2025-09-11

El gestor de paquetes Bun es conocido por su velocidad impresionante, siendo de media ~7 veces más rápido que npm, ~4 veces más rápido que pnpm y ~17 veces más rápido que yarn. Esto no es magia; Bun trata la instalación de paquetes como un problema de programación de sistemas, no un problema de JavaScript. Lo consigue minimizando las llamadas al sistema, almacenando en caché los manifiestos como binarios, optimizando la extracción de tarballs, aprovechando la copia de archivos nativa del sistema operativo y escalando entre núcleos de CPU. El artículo profundiza en cómo Bun, escrito en Zig, elude las limitaciones de Node.js (pool de threads, bucle de eventos) para lograr instalaciones de paquetes increíblemente rápidas.

Desarrollo

Fallecimiento de Gregg Kellogg, Prolífico Contribuidor del W3C

2025-09-11

El W3C anuncia con tristeza el fallecimiento de Gregg Kellogg, un prolífico Experto Invitado, el sábado pasado. Durante más de 13 años, Kellogg realizó contribuciones significativas, especialmente como copresidente del Grupo de Trabajo JSON-LD y liderando varios Grupos de la Comunidad centrados en datos. Su trabajo incluyó la coedición de numerosas recomendaciones y especificaciones del W3C, además de proporcionar implementaciones de código abierto y conjuntos de pruebas. Sus contribuciones fueron instrumentales para el éxito de JSON-LD. El W3C está planeando un homenaje para honrar su memoria y celebrar sus contribuciones amigables y brillantes.

Desarrollo

Módulos C++20: Mejoras en el tiempo de compilación y experiencias prácticas

2025-09-11

Este artículo comparte la experiencia práctica del autor utilizando módulos C++20, cubriendo las opciones de sistemas de compilación (Bazel, XMake, Build2, etc.), las mejoras en el tiempo de compilación (25% - 45%) y las diferencias con respecto a PCH. El autor también discute los escenarios adecuados para los módulos C++20, los costos (refactorización de código, estabilidad del compilador, soporte de finalización de código, etc.), los wrappers de módulos (estilos export-using y extern "C++") y las técnicas para mezclar import y #include. El artículo concluye con las futuras direcciones de mejora para los módulos C++20, como mejorar los sistemas de compilación, mejorar la inteligencia de código, resolver problemas de compatibilidad entre plataformas y destacar el potencial de la IA en el desarrollo de herramientas de conversión de módulos.

Desarrollo

Piramidal Contrata Ingeniero de Backend para Plataforma de Datos Neuronales

2025-09-11
Piramidal Contrata Ingeniero de Backend para Plataforma de Datos Neuronales

Piramidal busca un ingeniero de software para construir y mantener la infraestructura y los sistemas de backend de su plataforma principal de datos neuronales. El candidato ideal tendrá 3+ años de experiencia en empresas orientadas a productos, dominio de Python y otros lenguajes de backend, tecnologías de contenedores y orquestación (por ejemplo, Kubernetes), bases de datos relacionales (por ejemplo, Postgres/MySQL) y tecnologías web (por ejemplo, JavaScript, React). El puesto implica una estrecha colaboración con ingenieros de ML para iterar en la aplicación de los modelos más recientes y trabajar con el equipo de producto y clientes internos para comprender sus necesidades e implementar soluciones efectivas. Piramidal se dedica a reorientar la tecnología para maximizar el potencial humano, con una misión central de apoyar la libertad cognitiva.

Desarrollo datos neuronales

pgEdge lanza sus componentes principales como código abierto, abrazando el ecosistema PostgreSQL

2025-09-11

pgEdge, una empresa centrada en PostgreSQL distribuido, anunció que ha vuelto a licenciar sus componentes principales, incluyendo el motor de replicación Spock, el generador de secuencias Snowflake y la extensión de replicación lógica de objetos grandes Lolor, bajo la Licencia PostgreSQL, ¡convirtiéndolos en código abierto! Este movimiento demuestra el compromiso de pgEdge con el código abierto y su deseo de contribuir más al ecosistema PostgreSQL. Los desarrolladores ahora pueden acceder al código fuente de estos componentes en GitHub y participar en su desarrollo. pgEdge también ofrece opciones de implementación en la nube, contenedores y máquinas virtuales para facilitar el acceso del usuario.

Reshaped: Un viaje de cinco años hacia el código abierto

2025-09-11
Reshaped: Un viaje de cinco años hacia el código abierto

Después de cinco años de desarrollo, la biblioteca de componentes Reshaped ahora es completamente de código abierto. Inicialmente un proyecto personal que abordaba la necesidad de bibliotecas de componentes consistentes para React y Figma, Reshaped cubre el 80% de las prácticas principales de diseño web, priorizando la alineación entre diseño e ingeniería. El autor primero hizo el paquete React gratuito y ahora publica todo el código fuente, con el objetivo de fomentar las mejores prácticas en diseño e ingeniería. Los planes futuros incluyen componentes premium avanzados.

Desarrollo sistema de diseño

Ingeniería Pura vs. Impura: Por qué los desarrolladores independientes chocan con las grandes empresas de tecnología

2025-09-11

Este artículo explora la diferencia entre la ingeniería de software 'pura' e 'impura'. La ingeniería pura se centra en la perfección técnica, similar al arte o la investigación, mientras que la ingeniería impura prioriza la eficiencia y la resolución de problemas del mundo real. Las grandes empresas de tecnología necesitan ambas, pero el mercado actual favorece la ingeniería impura, lo que lleva a conflictos entre ingenieros puros e impuros. El desarrollo asistido por IA beneficia más a la ingeniería impura, ya que ayuda a abordar problemas menos novedosos y con plazos ajustados, mientras que la ingeniería pura depende más de la experiencia individual. El autor argumenta que ambos tipos requieren habilidades elevadas, solo con un enfoque diferente.

Desarrollo Tipos de Ingenieros

Deep Code Bench: Un nuevo conjunto de datos de referencia para la recuperación de código

2025-09-11
Deep Code Bench: Un nuevo conjunto de datos de referencia para la recuperación de código

Qodo ha lanzado Deep Code Bench, un nuevo conjunto de datos de referencia de preguntas del mundo real derivadas de grandes repositorios de código complejos. A diferencia de los benchmarks existentes, estas preguntas requieren la recuperación de varios archivos, lo que refleja escenarios reales de los desarrolladores. El conjunto de datos, generado utilizando LLMs a partir de datos de solicitud de extracción, proporciona una evaluación sólida de los sistemas de recuperación de código. El agente de investigación profunda de Qodo supera a los demás en la recuperación de hechos, logrando aproximadamente un 76% de precisión.

Sumérgete en la base de datos tz: Crea tu propia zona horaria

2025-09-11
Sumérgete en la base de datos tz: Crea tu propia zona horaria

Mientras trabajaba con Ruby, el autor encontró un problema de zona horaria, lo que le llevó al descubrimiento de la base de datos tz. Este artículo proporciona una explicación clara de la base de datos tz, incluyendo sus componentes principales: el compilador zic, la herramienta zdump y los archivos fuente de zona horaria. El autor demuestra cómo personalizar las reglas de zona horaria creando una zona horaria ficticia, Hi_No_Kuni/Konoha, dentro de una imagen Alpine Docker. El proceso se ilustra con ejemplos prácticos, verificando los resultados. Este artículo es adecuado para desarrolladores y proporciona información sobre la complejidad y la estandarización detrás de las zonas horarias.

Desarrollo base de datos tz

BCacheFS deshabilitado en kernels openSUSE 6.17+

2025-09-11

El equipo de openSUSE anunció que el sistema de archivos BCacheFS se deshabilitará en los kernels 6.17 y posteriores. Esto se debe a que BCacheFS se mantiene externamente desde la versión 6.17, y openSUSE ya no mantendrá ni realizará backports de parches downstream. Actualmente, las versiones 6.16 y anteriores no se ven afectadas. Los usuarios deben seguir las instrucciones de upstream de BCacheFS para la instalación y el uso, o preparar un KMP por sí mismos. BCacheFS se volverá a habilitar una vez que su mantenedor reanude el mantenimiento de upstream.

Desarrollo

Superando el Obstáculo de 10.000+ LOC: Un Flujo de Trabajo Estructurado para LLMs en Proyectos Grandes

2025-09-11
Superando el Obstáculo de 10.000+ LOC: Un Flujo de Trabajo Estructurado para LLMs en Proyectos Grandes

Este artículo detalla un flujo de trabajo exitoso para usar LLMs en proyectos grandes, con más de 10.000 líneas de código. El autor descubrió que generar un sistema entero directamente con un LLM es caótico y propenso a errores. En cambio, se presenta un enfoque estructurado: escribir manualmente documentos de diseño y arquitectura primero, luego usar el LLM como una herramienta de generación y transformación de código, iterando en tareas pequeñas, revisando y corrigiendo sistemáticamente el código y actualizando continuamente la documentación y las pautas de codificación. Este método evita con éxito las limitaciones del LLM en proyectos grandes, manteniendo la mantenibilidad y la consistencia.

Desarrollo

Dotter: Un potente gestor de archivos de configuración y motor de plantillas en Rust

2025-09-11
Dotter: Un potente gestor de archivos de configuración y motor de plantillas en Rust

Dotter es un gestor de archivos de configuración (dotfiles) y un motor de plantillas escrito en Rust, diseñado para simplificar la gestión e implementación de dotfiles. Resuelve muchos inconvenientes asociados con la gestión manual de dotfiles, como el seguimiento del origen de los archivos, la configuración tediosa en nuevas máquinas y el manejo de las diferencias de configuración entre máquinas. Dotter automatiza la gestión de dotfiles mediante una configuración flexible y la creación de plantillas o enlaces simbólicos automáticos. Admite la instalación a través de Homebrew, AUR y Scoop, y también proporciona binarios e instalación a través de Cargo. Dotter también ofrece amplias opciones de línea de comandos y funciones de gancho para flujos de trabajo definidos por el usuario.

Desarrollo

Ordenación por Radix supera a las Tablas Hash: Una Batalla de Rendimiento para Contar Valores Únicos

2025-09-11
Ordenación por Radix supera a las Tablas Hash: Una Batalla de Rendimiento para Contar Valores Únicos

En el problema de contar valores únicos en un array grande de uint64s mayormente únicos, el algoritmo de ordenación por radix, cuando está bien ajustado, suele ser más rápido que las tablas hash. Al utilizar el ancho de banda de memoria de manera eficiente y fusionando hábilmente el hash con el proceso de ordenación, la ordenación por radix logra una aceleración de hasta 1,5 veces en comparación con las tablas hash ajustadas para conjuntos de datos superiores a 1 MB, e incluso hasta 4 veces más rápido que las excelentes tablas hash "Swiss Table" de Rust. Sin embargo, el rendimiento de la ordenación por radix disminuye con distribuciones de datos no uniformes; el uso de una función hash invertible preprocesa los datos para mantener la eficiencia. El artículo compara ambos métodos en diferentes tamaños de datos y frecuencias de acceso, y analiza la estrategia para elegir entre ellos en aplicaciones del mundo real.

Desarrollo

Solución Elegante de Clojure al Problema de la Expresión

2025-09-11
Solución Elegante de Clojure al Problema de la Expresión

En la conferencia Strange Loop, Chris Houser presentó dos enfoques de Clojure para resolver el problema de la expresión: multimethods y protocolos. La presentación profundizó en los pros y los contras de cada método, mostrando su implementación en Clojure. Houser, coautor de "The Joy of Clojure" y contribuidor principal del lenguaje, demostró poderosamente la flexibilidad y expresividad de Clojure.

Caída masiva de asistentes de codificación de IA destaca los crecientes riesgos de dependencia

2025-09-11
Caída masiva de asistentes de codificación de IA destaca los crecientes riesgos de dependencia

Una reciente caída en los asistentes de codificación de IA, como el Claude Code de Anthropic, expuso la gran dependencia del desarrollo de software moderno en estas herramientas. Los desarrolladores recurrieron a alternativas, incluso a Stack Overflow, subrayando los peligros de la sobredependencia. La tendencia emergente de 'codificación por vibración' (vibe coding), usar lenguaje natural para generar código sin comprender la lógica subyacente, llevó a resultados desastrosos, incluyendo corrupción de archivos por el Gemini CLI de Google y eliminación de bases de datos por el servicio de IA de Replit. La caída sirve como un claro recordatorio de las potenciales consecuencias de la dependencia de la IA y provocó reflexiones sobre el equilibrio entre la vida laboral y personal.

Desarrollo

TailGuard: Conectando WireGuard a Tailscale con un contenedor Docker

2025-09-11
TailGuard: Conectando WireGuard a Tailscale con un contenedor Docker

TailGuard es una aplicación sencilla de contenedor Docker que permite conectar servidores WireGuard existentes a la red Tailscale, incluso en dispositivos bloqueados o que no admiten binarios Tailscale. Funciona ejecutando un contenedor en un VPS, creando un puente entre WireGuard y la red Tailscale, lo que simplifica la administración de claves y permite cambiar fácilmente entre dispositivos. Los usuarios descargan una configuración de WireGuard, ejecutan un comando Docker y se conectan. Los parámetros personalizables y la compatibilidad con IPv6 facilitan la conexión a las redes Tailscale y WireGuard.

Desarrollo

Despacho múltiple en C++: Desafíos y soluciones

2025-09-11

Este artículo explora los desafíos de implementar el despacho múltiple en C++. El despacho múltiple permite la selección dinámica de funciones basada en los tipos de tiempo de ejecución de múltiples objetos, útil al manejar interacciones entre objetos de diferentes tipos, como calcular intersecciones de varias formas. El artículo compara varios enfoques, incluyendo el patrón visitor y las comprobaciones if-else por fuerza bruta, analizando sus pros y contras. El patrón visitor, aunque eficiente, es intrusivo y difícil de mantener; la fuerza bruta es mantenible pero verboso e ineficiente. El artículo también menciona brevemente un intento de estandarización de C++ que propone el despacho múltiple y previsualiza artículos posteriores que exploran su implementación en otros lenguajes de programación.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-09-11
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en nuestro sitio web. Tanto las personas como las organizaciones que trabajan con arXivLabs han adoptado y aceptado nuestros valores de apertura, comunidad, excelencia y privacidad de los datos de los usuarios. arXiv está comprometido con estos valores y solo trabaja con socios que los respeten. ¿Tiene una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Desktop-TUI: Un entorno de escritorio sin gráficos

2025-09-11
Desktop-TUI: Un entorno de escritorio sin gráficos

Desktop-TUI es un entorno de escritorio similar a tmux, pero sin interfaz gráfica. Analiza archivos de acceso directo para iniciar aplicaciones y comandos, con soporte para mover y cambiar el tamaño de ventanas, opciones de mosaico y manejo de errores de aplicaciones y fallos de aplicaciones GNU. Los usuarios pueden seleccionar archivos o carpetas como argumentos de aplicaciones o comandos. Actualmente utiliza ncurses (con problemas de color), planea cambiar a Crossterm. Instala mediante `cargo install desktop-tui` y ejecuta con `cargo run -- `. Los archivos de acceso directo (ej: helix.toml) usan el formato TOML para definir nombres de aplicaciones, comandos y argumentos.

Desarrollo

JiraTUI: Gestión de tareas de Jira desde la línea de comandos

2025-09-11

JiraTUI es una potente herramienta de línea de comandos que simplifica la gestión de tareas de Jira. Crea nuevas tareas de Jira directamente desde tu terminal, especificando fácilmente detalles como el título, la descripción y la prioridad. Dedica menos tiempo a navegar por las interfaces y más tiempo a trabajar. También permite comentar tareas directamente desde el terminal, mejorando la comunicación y la colaboración del equipo.

Desarrollo

DataFrame ligero en MicroHs: Una aventura Haskell 2010

2025-09-11

Comenzando con un proyecto Android en Frege (Haskell en JVM) en 2015, el viaje de programación funcional del autor lo llevó a una búsqueda para desacoplar su biblioteca DataFrame de GHC para compatibilidad con MicroHs. Esta publicación detalla la implementación de la funcionalidad principal de DataFrame: construcción, expresiones básicas, `filterWhere`, `derive` y renderizado Markdown, en Haskell 2010, sin GADTs, familias de tipos o reflexión. El experimento demuestra que, si bien es verboso, la funcionalidad principal sigue siendo viable, ofreciendo portabilidad entre MicroHs (para CLIs pequeños o contextos integrados) y GHC (para velocidad y acceso al ecosistema). Los binarios de MicroHs son aproximadamente 100 veces más pequeños, pero de 5 a 10 veces más lentos; una compensación que vale la pena para muchas tareas de manipulación de datos, permitiendo un backend GHC para tareas intensivas.

Desarrollo

KDE presenta la versión alfa de su propia distribución Linux: KDE Linux

2025-09-11

En Akademy 2025, el Proyecto KDE lanzó una versión alfa de KDE Linux, una distribución construida para mostrar lo mejor de las ofertas de KDE usando tecnologías avanzadas. Basado en Arch Linux, pero sin usar Pacman, emplea KDE Builder y Flatpak para la instalación de software. Si bien apunta al uso doméstico, comercial y OEM, la versión alfa aún está en desarrollo. Los planes futuros incluyen ediciones de prueba, entusiastas y estable, con un posible plan de fin de vida que implica la migración a otra distribución.

Desarrollo

¡Ejecuta cualquier aplicación GUI en tu terminal: term.everything❗!

2025-09-11
¡Ejecuta cualquier aplicación GUI en tu terminal: term.everything❗!

¡Imagina jugar juegos y ver películas directamente en tu terminal! term.everything❗ es un ejecutor de GUI basado en Wayland que renderiza aplicaciones GUI dentro de tu terminal. La calidad depende de la resolución de tu terminal, con resoluciones más altas (como kitty o iterm2) proporcionando mejores resultados. Aunque todavía está en beta, algunas aplicaciones pueden fallar, pero ya admite juegos como Doom. Está construido usando TypeScript y Bun, con un toque de C++.

Desarrollo

Mux: Infraestructura de vídeo para desarrolladores

2025-09-11
Mux: Infraestructura de vídeo para desarrolladores

Mux democratiza el vídeo abordando los difíciles problemas que enfrentan los desarrolladores al crear aplicaciones de vídeo: codificación, streaming (Mux Video) y monitorización (Mux Data). El equipo cuenta con experiencia en empresas como Google, YouTube y Twitch, y está respaldado por inversores de primer nivel como Coatue, Accel y Andreessen Horowitz. Han creado una plataforma robusta utilizada por empresas que van desde startups hasta gigantes como Reddit, Vimeo y Robinhood, con el objetivo de mejorar la experiencia general de vídeo.

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-09-10
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en nuestro sitio web. Tanto las personas como las organizaciones que trabajan con arXivLabs han adoptado y aceptado nuestros valores de apertura, comunidad, excelencia y privacidad de los datos de los usuarios. arXiv está comprometido con estos valores y solo trabaja con socios que los respetan. ¿Tiene alguna idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

La Experiencia Corporal de la Programación: Una Sinestesia del Programador

2025-09-10
La Experiencia Corporal de la Programación: Una Sinestesia del Programador

El autor describe las sensaciones viscerales evocadas por diferentes lenguajes de programación: los paréntesis anidados en lenguajes similares a C se sienten como caminar por una cuerda floja, la programación funcional como gatear por cuevas, y escribir firmware como un trabajo preciso y constreñido. Usar Copilot y TypeScript es como volar, mientras que volver a Python sin tipo es como tropezar borracho. El autor argumenta que esta sinestesia de código, aunque sutil, es común e influye en la comprensión del código y el diseño del sistema. Si bien esta sensación puede no mejorar directamente la eficiencia de la codificación, es increíblemente útil para comprender cómo funcionan las startups, ayudando al autor a identificar partes críticas y conexiones faltantes. El autor concluye sugiriendo que los excelentes editores de código deberían aprovechar las intuiciones sensoriales de los excelentes ingenieros, mejorando la forma en que se muestra el código para mejorar la experiencia de programación.

La pieza que falta en PKM: Resurfacing el conocimiento olvidado

2025-09-10
La pieza que falta en PKM: Resurfacing el conocimiento olvidado

El autor utiliza varias aplicaciones de PKM como Obsidian y Things para gestionar grandes cantidades de información digital, pero encuentra una característica crucial que falta: ayudar a los usuarios a volver a interactuar con la información capturada pero olvidada. Incluso consultas simples de bases de datos podrían lograr esto, como mostrar tareas de más de seis meses. El autor insta a los desarrolladores de aplicaciones PKM a agregar estas funciones, quizás inspiradas en la página de inicio de Spotify, para que los usuarios vuelvan a interactuar con notas antiguas, tareas, etc., evitando que la información se convierta en un "agujero negro de conocimiento."

Desarrollo

git-down: Descarga eficiente de directorios de repositorios Git

2025-09-10
git-down: Descarga eficiente de directorios de repositorios Git

¿Cansado de descargar directorios individuales de repositorios Git? ¡git-down está aquí para ayudarte! Esta sencilla herramienta de línea de comandos te permite descargar uno o más directorios de un repositorio Git sin clonar todo el repositorio. Es compatible con GitHub, BitBucket, GitLab y SourceForge, y ofrece accesos directos para facilitar su uso. A diferencia del engorroso proceso de descargar archivos comprimidos, clonar superficialmente y mover archivos, git-down aumenta significativamente la eficiencia y ahorra tiempo. Si bien requiere compilación propia (se necesita un entorno Rust), su velocidad y conveniencia lo convierten en una herramienta indispensable para los usuarios de Git.

Desarrollo

Saltos de Línea Semánticos: Escribir una Mejor Prosa

2025-09-10
Saltos de Línea Semánticos: Escribir una Mejor Prosa

Este artículo presenta la especificación de Saltos de Línea Semánticos (SemBr), una convención para mejorar la estructura del texto añadiendo saltos de línea después de cada unidad de pensamiento sustancial. SemBr recomienda saltos de línea después de las oraciones, cláusulas independientes y antes de las listas, mejorando la legibilidad y la edición sin afectar la salida renderizada. El autor analiza la aplicación de SemBr en varios lenguajes de marcado ligeros y cómo migrar texto existente a esta convención, destacando los beneficios para escritores, editores y lectores.

De Bash a Go: Una Guía Práctica para Crear Herramientas de CLI

2025-09-10
De Bash a Go: Una Guía Práctica para Crear Herramientas de CLI

Este artículo es la segunda parte de una serie que introduce a los programadores de Bash a Go, centrándose en la creación de herramientas de línea de comandos. Comenzando con un ejemplo simple de "hola mundo", cubre progresivamente la escritura de pruebas, el manejo de entrada/salida, el uso de la interfaz io.Writer, la prevención de las trampas de las variables globales y el uso de patrones de opciones y el paquete `flag` para manejar argumentos y banderas de línea de comandos. El artículo culmina en una herramienta CLI más práctica: contar líneas duplicadas en texto de entrada.

Desarrollo
1 2 6 7 8 10 12 13 14 214 215