Category: Desarrollo

Ejecutando LLMs localmente: privacidad, costes y experimentación

2025-03-11
Ejecutando LLMs localmente: privacidad, costes y experimentación

Este artículo explora las ventajas y los métodos para ejecutar modelos de lenguaje grandes (LLMs) localmente. Si bien reconoce que los LLMs locales no igualarán el rendimiento de los servicios en la nube, el autor destaca sus beneficios para la privacidad, el control de costes y el desarrollo experimental. Se presentan tres herramientas: Ollama (fácil de usar, extensa biblioteca de modelos), Llama.cpp (multiplataforma, potente) y Llamafiles (ejecutable único, fácil de compartir). El artículo también cubre aspectos cruciales como la selección de modelos, los parámetros, la cuantificación y las capacidades del modelo, al tiempo que advierte sobre el tamaño de los archivos del modelo y la seguridad. En última instancia, ejecutar LLMs localmente ofrece a los desarrolladores un enfoque flexible y controlable para el desarrollo de IA.

UUIDv7: Un nuevo estándar de UUID basado en el tiempo

2025-03-11
UUIDv7: Un nuevo estándar de UUID basado en el tiempo

UUIDv7 es un nuevo estándar de UUID basado en el tiempo que combina los beneficios de los UUID tradicionales con los sistemas distribuidos modernos y escalables. A diferencia del UUIDv4 generado aleatoriamente, UUIDv7 ofrece identificadores globalmente únicos y ordenados por tiempo, lo que lo hace ideal para aplicaciones que requieren marcas de tiempo y unicidad. Aborda las preocupaciones de privacidad asociadas con UUIDv1 y mantiene la compatibilidad con las bibliotecas UUID existentes. Los casos de uso clave incluyen sistemas distribuidos, indexación de bases de datos, registro y monitoreo, y comercio electrónico.

Desarrollo

Reduciendo el tamaño de compilación de Godot: de 93 MB a 6,4 MB

2025-03-11
Reduciendo el tamaño de compilación de Godot: de 93 MB a 6,4 MB

Este artículo detalla cómo reducir drásticamente el tamaño de compilación de los proyectos del motor de juego Godot. El autor optimiza sistemáticamente un proyecto, comenzando por deshabilitar 3D, servidores de texto avanzados y módulos innecesarios. También se exploran técnicas como el uso de la herramienta de compresión UPX, la optimización de WebAssembly (wasm-opt) y la compresión Brotli. El artículo utiliza un sencillo juego 2D de rebotes como ejemplo, mostrando el impacto de cada paso con comparaciones claras de antes y después. Es una guía práctica que abarca varias estrategias de optimización y sus ventajas e inconvenientes.

Compilador TypeScript Nativo: Mejora del Rendimiento 10 veces mayor

2025-03-11
Compilador TypeScript Nativo: Mejora del Rendimiento 10 veces mayor

El equipo de TypeScript anunció un puerto nativo del compilador y las herramientas de TypeScript para mejorar drásticamente el rendimiento. Esta implementación nativa se proyecta para acelerar drásticamente el inicio del editor, reducir la mayoría de los tiempos de compilación en 10 veces y reducir sustancialmente el uso de memoria. Las pruebas iniciales muestran mejoras en la velocidad de compilación de más de 10 veces para varios proyectos grandes (por ejemplo, VS Code, Playwright). El futuro TypeScript nativo (previsto como TypeScript 7) admitirá refactorizaciones más avanzadas, análisis de código más profundo y sentará las bases para las herramientas de desarrollo de IA de próxima generación. TypeScript 6 (basado en JS) seguirá manteniéndose para garantizar una transición fluida.

Cinder JIT: Representacion eficiente de tipos usando conjuntos de bits y semirretículos

2025-03-11
Cinder JIT: Representacion eficiente de tipos usando conjuntos de bits y semirretículos

El compilador JIT Cinder emplea una representación de tipo inteligente, tratando los tipos como conjuntos (incluso retículos) y eligiendo una representación compacta de conjuntos de bits. Este artículo profundiza en cómo Cinder aprovecha los conjuntos de bits y las estructuras de semirretículo para el manejo eficiente de la información de tipo, cubriendo la representación de tipos básicos, las uniones de tipos y la especialización. Codificando la información de tipo en conjuntos de bits, Cinder representa eficazmente las uniones de tipo y permite distinciones de tipo más granulares. Además, Cinder introduce un mecanismo de especialización para rastrear el valor específico de los objetos individuales, mejorando aún más la eficiencia de optimización del compilador. El artículo también analiza el tipo Bottom y los detalles sobre la generación de la red de tipos.

Desarrollo Conjuntos de bits

Migración de base de datos con tiempo de inactividad cero verificada con PlusCal

2025-03-11

Esta publicación de blog detalla cómo el autor usó PlusCal, un DSL para TLA+, y la verificación formal para garantizar la corrección de una migración de base de datos con tiempo de inactividad cero. Se construyó un modelo PlusCal que simulaba las operaciones de usuario Insertar, Eliminar y Obtener en una base de datos, junto con un proceso de migración en segundo plano. Al simular un sistema sin migración y uno con migración, y verificar la consistencia de los resultados de la operación Obtener en todos los estados, el autor garantizó la corrección del algoritmo de migración. La verificación formal ayudó en la detección temprana de fallas, como el manejo inadecuado de TOMBSTONES, y destacó la importancia de las operaciones atómicas, como la atomicidad de la verificación e inserción de datos durante la migración.

Desarrollo

8 Patrones visuales para mejorar la legibilidad del código

2025-03-11
8 Patrones visuales para mejorar la legibilidad del código

Un programador que auditaba código se sintió mentalmente fatigado a pesar de la alta calidad del código. El culpable no era la complejidad ciclomática, sino la legibilidad. La investigación reveló ocho patrones visuales para mejorar la legibilidad: minimizar el recuento de líneas/operadores/operandos; evitar la novedad en las formas de las funciones, operadores o azúcar sintáctico; agrupar cadenas largas de funciones; mantener los condicionales cortos; evitar los gotos; minimizar la anidación; usar nombres de variables descriptivos y visualmente distintos; y acortar la duración de vida de las variables. Estos patrones ayudan a mejorar la legibilidad del código, reducir errores y aumentar la productividad del desarrollador.

Desarrollo

¡GCC 15 tendrá soporte para COBOL!

2025-03-11

Una gran actualización llega al compilador GCC 15: ¡se ha fusionado el soporte para el front-end del lenguaje COBOL! Este es un paso significativo para el soporte COBOL de GCC, facilitando la migración de aplicaciones COBOL heredadas de mainframes a entornos Linux y en la nube. Si bien la popularidad de COBOL ya no es lo que era, esta fusión sigue siendo una grata sorpresa. Los desarrolladores pueden usar el comando `gcobol` para invocar el front-end del compilador COBOL. Espere el soporte COBOL junto con muchas otras funciones en el lanzamiento estable de GCC 15.1 en las próximas semanas.

Desarrollo

Asistente de Investigación Profunda Local: Una poderosa herramienta de investigación de IA que combina LLMs y búsqueda web

2025-03-11
Asistente de Investigación Profunda Local: Una poderosa herramienta de investigación de IA que combina LLMs y búsqueda web

Un asistente de investigación potente basado en IA que realiza análisis profundos e iterativos utilizando múltiples LLMs y búsquedas web. El sistema se puede ejecutar localmente para proteger la privacidad o configurarse para utilizar LLMs basados en la nube para capacidades mejoradas. Admite el procesamiento local (utilizando modelos Ollama) y LLMs en la nube (Claude, GPT) y puede analizar el contenido completo de la página web, en lugar de solo fragmentos. Además, ofrece opciones de salida enriquecidas, que incluyen hallazgos de investigación detallados con citas, informes de investigación exhaustivos y resúmenes rápidos, y cuenta con búsqueda de documentos locales (RAG), lo que permite a los usuarios buscar y recuperar contenido de sus propias colecciones de documentos.

Sidekick: Una poderosa aplicación LLM local para macOS

2025-03-11
Sidekick: Una poderosa aplicación LLM local para macOS

Sidekick es una aplicación LLM nativa para macOS que se ejecuta completamente localmente, accediendo a tus archivos, carpetas y sitios web sin necesidad de software adicional. Utilizando tecnología RAG, maneja grandes conjuntos de datos, admite varios modelos de razonamiento, incluyendo un intérprete de código, genera imágenes y cuenta con funciones avanzadas de renderizado Markdown, además de herramientas de asistente de escritura integradas. Sidekick prioriza la simplicidad y la facilidad de uso, operando totalmente sin conexión, sin rastreo de conversaciones y con un enfoque de código abierto para la transparencia.

Desarrollo

Una Odisea de 9 Meses: Implementando Bel en Clojure

2025-03-11

Esta publicación detalla un viaje de nueve meses para implementar el lenguaje de programación Bel en Clojure. Inicialmente concebido como un proyecto de fin de semana, el autor encontró varios desafíos: crear un analizador personalizado para la sintaxis única de Bel; manejar el estilo de paso de continuación de Bel, lo que requirió una reimplementación de la pila de llamadas del intérprete para superar los problemas de desbordamiento de pila; y optimizar el rendimiento utilizando estructuras de datos de Java. El autor profundiza en las potentes funciones de Bel, como `lit`, `globe`, `scope`, `mac` y `err`, mostrando las capacidades habilitadas por las continuaciones. Si bien el proyecto aún está en desarrollo, el autor destaca las valiosas lecciones aprendidas a lo largo de esta experiencia desafiante pero gratificante.

Desarrollo

Automatizando Cambios de Dirección IP y Red en Kubernetes

2025-03-11
Automatizando Cambios de Dirección IP y Red en Kubernetes

El clúster Kubernetes del autor depende de direcciones IP asignadas dinámicamente, lo que crea vulnerabilidades en su configuración de red. Para solucionar esto, se creó una implementación de Kubernetes que verifica y actualiza periódicamente las direcciones IP públicas de su gateway Unifi utilizando la API de Unifi. Al detectar cambios en las direcciones IP o redes IPv6, actualiza automáticamente las reglas del firewall Unifi y los recursos del servicio Kubernetes (incluida la configuración de MetalLB), y notifica al usuario a través de MQTT. El programa está escrito en Python y utiliza las API de Kubernetes y Unifi para la automatización.

Shef: Crea recetas de shell sin el lío

2025-03-11
Shef: Crea recetas de shell sin el lío

Shef es una potente herramienta de línea de comandos que te permite crear flujos de trabajo complejos de shell sin el engorro de escribir scripts bash intrincados. Inspirado en CyberChef, Shef utiliza un formato YAML simple para encadenar comandos, incorporar indicaciones interactivas, implementar bucles y lógica condicional, y crear recetas reutilizables. Simplifica la creación de scripts de shell ofreciendo funciones como plantillas, transformaciones y un manejo de errores sencillo, lo que lo convierte en un cambio de juego para automatizar tareas y gestionar procesos complejos.

Desarrollo

El algoritmo de ordenación de iconos O(n²) del Explorador de Windows causa bloqueos

2025-03-10
El algoritmo de ordenación de iconos O(n²) del Explorador de Windows causa bloqueos

Un usuario de Windows experimentó bloqueos en el explorador de archivos, y el autor utilizó herramientas de análisis de rendimiento para identificar al culpable: un algoritmo ineficiente de ordenación de iconos. La complejidad temporal O(n²) del algoritmo resultó en tiempos de ordenación excesivamente largos con muchos iconos, incluso cuando estaban ocultos. El autor lo verificó experimentalmente, destacando la necesidad de que los desarrolladores eviten algoritmos tan ineficientes.

Desarrollo

Eres pésimo en CSS: Reseña del libro

2025-03-10

El libro 'You Suck At CSS' de Rex Riepe no se trata de evitar CSS, sino de dominarlo eficientemente. Está dirigido a principiantes y expertos, con el objetivo de ayudar a los desarrolladores a completar rápidamente tareas de front-end, enfatizando la eficiencia en equipo. Soporta el framework California Stylesheets y se centra en el desarrollo web rápido utilizando tecnologías modernas. También contextualiza por qué CSS y su ecosistema son como son.

Desarrollo

Repensando los rastreadores de errores: una separación de preocupaciones

2025-03-10

Después de años de usar varios rastreadores de errores, el autor identifica un fallo fundamental en su representación de datos, lo que lleva a frustraciones recurrentes. Se destacan tres problemas principales: un campo unificado de 'Versión de corrección' que confunde hechos y planes; un sistema de dos niveles de Estado y Resolución que desdibuja la línea entre la realidad del código y las intenciones futuras; y la confusión entre listas de errores y listas de tareas, creando dificultades para las tareas no relacionadas con errores. El autor propone un principio de 'separación de preocupaciones', sugiriendo una división en tablas de 'hechos' y 'planes'. La tabla de hechos registra información objetiva sobre errores (existencia, versión, gravedad), mientras que la tabla de planes rastrea intenciones, cronogramas y prioridades subjetivas. Esta separación simplifica el rastreo de errores, se adapta mejor a diferentes tipos de proyectos e incluso permite la omisión completa de la tabla de planes para proyectos centrados únicamente en la resolución de errores.

Desarrollador de 55 años enfrenta 10 años de prisión por sabotear la red de su antiguo empleador

2025-03-10
Desarrollador de 55 años enfrenta 10 años de prisión por sabotear la red de su antiguo empleador

Un desarrollador de software de 55 años enfrenta hasta 10 años de prisión por implementar código malicioso que saboteó la red de su antiguo empleador, causando supuestamente cientos de miles de dólares en pérdidas. Davis Lu, quien trabajó en Eaton Corp. durante aproximadamente 11 años, aparentemente se sintió descontento con una "reestructuración" corporativa en 2018 que "redujo sus responsabilidades". Sus esfuerzos para sabotear la red comenzaron ese año, y para el año siguiente, había implantado diferentes formas de código malicioso, creando "bucles infinitos" que eliminaban archivos de perfil de compañeros de trabajo, impidiendo inicios de sesión legítimos y causando fallas en el sistema. Un 'interruptor de apagado' llamado 'IsDLEnabledinAD', aparentemente una abreviatura de 'Is Davis Lu enabled in Active Directory', se activó automáticamente el día del despido de Lu en 2019, afectando a usuarios de Eaton Corp. a nivel mundial.

Desarrollo sabotaje de red

El Dilema del Mantenedor de Código Abierto: Cómo Ayudar Realmente

2025-03-10

Un desarrollador en Hacker News destaca los desafíos que enfrentan los mantenedores de código abierto. Las grandes organizaciones dependen de estos proyectos para ahorrar costes, pero rara vez contribuyen, dejando a los mantenedores abrumados. El problema principal es la mala comunicación: los mantenedores carecen de directrices claras de contribución, dejando a los contribuyentes inseguros sobre cómo ayudar eficazmente. El autor sugiere que los mantenedores indiquen claramente sus necesidades —si aceptan PR, cómo enviar informes de errores y si aceptan apoyo financiero— para mejorar la eficiencia y la colaboración.

Desarrollo mantenimiento

Libro de texto exitoso de aprendizaje por refuerzo: fundamentos matemáticos y videos complementarios

2025-03-10
Libro de texto exitoso de aprendizaje por refuerzo: fundamentos matemáticos y videos complementarios

Un libro de texto de aprendizaje por refuerzo que ha recibido más de 5.000 estrellas, ofreciendo una introducción matemática pero accesible a los conceptos fundamentales, problemas y algoritmos clásicos. El libro incluye numerosos ejemplos y va acompañado de videos de conferencias en chino e inglés (disponibles en Bilibili y YouTube). Desarrollado a lo largo de años de experiencia docente, es adecuado para estudiantes de grado, postgrado, investigadores y profesionales.

Desarrollo

Tres pasos para implementaciones con cero tiempo de inactividad en AWS EKS

2025-03-10
Tres pasos para implementaciones con cero tiempo de inactividad en AWS EKS

El ingeniero Jakob, de Glasskube, comparte su experiencia en el logro de implementaciones con cero tiempo de inactividad en AWS EKS. El artículo profundiza en el funcionamiento del controlador de equilibrador de carga de AWS, destacando dos posibles problemas de tiempo de inactividad durante las actualizaciones continuas: retrasos en la verificación de estado y retrasos en la terminación de pods. Se presentan tres soluciones: habilitar Pod Readiness Gates, implementar un apagado suave de la aplicación y usar un contenedor sidecar o agregar un retraso de terminación en la aplicación. Estos tres pasos previenen errores 502/504 durante las actualizaciones continuas, lo que resulta en implementaciones con un 100% de cero tiempo de inactividad.

¿El Visual Studio te pudre el cerebro? El lamento de un programador

2025-03-10

Este artículo explora el impacto de Visual Studio en la forma de pensar de los programadores. Si bien reconoce su utilidad, el autor argumenta que la fuerte automatización de Visual Studio, en particular IntelliSense, puede obstaculizar el desarrollo de habilidades de programación reales y la creatividad. El autor contrasta esto con la alegría pura de programar sin tales ayudas, enfatizando los beneficios mentales de un enfoque más práctico. La pieza también profundiza en la historia de las herramientas de programación y especula sobre los cambios futuros que traerán Avalon (WPF) y XAML.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-03-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

Rastros de Pila: Una Herramienta de Depuración Subestimada

2025-03-10

Este artículo destaca la importancia de los rastros de pila en la depuración. Usando un ejemplo en Python, demuestra cómo los rastros de pila señalan las ubicaciones de errores y las llamadas a funciones. Sin embargo, el artículo observa desafíos en la obtención y el mantenimiento de rastros de pila completos en lenguajes modernos como Go y Rust, y en arquitecturas de microservicios. Si bien existen soluciones alternativas, requieren esfuerzo adicional en comparación con la facilidad de uso de Python. El autor aboga por priorizar los rastros de pila, argumentando que sus beneficios superan cualquier sobrecarga de rendimiento.

Desarrollo rastro de pila

Aumento del Rendimiento de CPython: Una Historia de Giros Inesperados y Regresiones de LLVM

2025-03-10

Una fusión reciente de CPython introdujo una nueva implementación del intérprete de bytecode, mostrando inicialmente impresionantes mejoras de rendimiento del 10-15% en varios benchmarks. Sin embargo, esta mejora provino de la circunvalación inadvertida de una regresión de LLVM 19. Al compararse con una línea de base mejor (como GCC o LLVM 19 ajustado), el aumento de rendimiento real se reduce a solo 1-5%. Semanas de compilación, benchmarking y desensamblaje revelaron que las limitaciones de LLVM 19 en la duplicación de llamadas de cola causaron la regresión. Si bien el intérprete de llamadas de cola es una mejora valiosa, este incidente destaca los desafíos en el benchmarking, la ingeniería de rendimiento y la ingeniería de software, como la dificultad para elegir líneas de base y comprender las complejidades de las optimizaciones del compilador.

Desarrollo

Perforadora Virtual: Un Viaje Retro a la Era del 'Big Iron'

2025-03-10
Perforadora Virtual: Un Viaje Retro a la Era del 'Big Iron'

¿Recuerdas las tarjetas perforadas? Ahora puedes experimentar este método de programación retro con 'The Virtual Keypunch', una herramienta online gratuita. Escribe tu texto y generará una imagen de tarjeta perforada simulada, compatible con varios tipos de tarjetas (FORTRAN, COBOL, etc.) e incluso el modo binario. No es solo una experiencia nostálgica divertida; ofrece a los desarrolladores una forma única de aprender sobre programación antigua.

Desarrollo

Aplicaciones Android de código abierto: Privacidad, seguridad y personalización

2025-03-10

¿Cansado de anuncios intrusivos y preocupaciones sobre la privacidad en aplicaciones de código cerrado? Las aplicaciones Android de código abierto ofrecen una alternativa refrescante. El código fuente públicamente disponible garantiza transparencia y seguridad, permitiendo que usuarios y desarrolladores examinen el código en busca de vulnerabilidades y elementos maliciosos. Las aplicaciones de código abierto suelen priorizar la privacidad del usuario, recopilando menos datos y proporcionando una documentación clara sobre el uso de datos. Además, puedes personalizar la aplicación para que se ajuste a tus necesidades, y una comunidad sólida apoya el desarrollo y las mejoras continuas.

Free95: Sistema operativo de código abierto compatible con Windows

2025-03-10
Free95: Sistema operativo de código abierto compatible con Windows

Free95 es un sistema operativo de código abierto compatible con Windows. Ofrece un entorno amigable similar a Windows, con la seguridad y transparencia adicionales de la comunidad de código abierto. Tus juegos y aplicaciones favoritos de Windows deberían funcionar perfectamente. El proyecto tiene como objetivo eliminar el bloatware y las preocupaciones de seguridad a menudo asociadas con los sistemas operativos propietarios, ofreciendo una alternativa libre del control corporativo. La compatibilidad se logra mediante llamadas al sistema NT e implementación de la API Win32. Para contribuir, envía una solicitud de extracción o ponte en contacto con el desarrollador dripkap_19416 en Discord. Puedes compilar el sistema operativo desde la fuente o descargar un binario de la sección Lanzamientos.

Structured: Redefiniendo el Desarrollo de Aplicaciones de Datos

2025-03-10
Structured: Redefiniendo el Desarrollo de Aplicaciones de Datos

Structured está revolucionando la forma en que los desarrolladores construyen e implementan aplicaciones de datos, consolidando toda la pila de análisis en código. Para abordar la ineficiencia en la implementación de aplicaciones de datos intensivas en producción, Structured ofrece un SDK ligero que permite a los desarrolladores crear prototipos, implementar y gestionar aplicaciones de datos (tableros, herramientas internas) en horas. Buscan ingenieros full-stack experimentados para unirse al equipo y trabajar en la construcción del SDK principal, el diseño de componentes interactivos y la optimización del rendimiento. La pila tecnológica incluye Python, TypeScript, Next.js, React, Postgres, AWS/GCP.

arXivLabs: Experimentación con Colaboración Comunitaria

2025-03-09
arXivLabs: Experimentación con Colaboración Comunitaria

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

Desarrollo
1 2 141 142 143 145 147 148 149 214 215