Category: Desarrollo

Linus vs. Tanenbaum: Un Choque de Filosofías de Diseño de SO

2025-02-08

Este hilo captura un debate acalorado entre Linus Torvalds, creador de Linux, y Andrew S. Tanenbaum, autor de Minix. El desacuerdo central gira en torno a la filosofía de diseño de sistemas operativos: Linus abogaba por aprovechar las fortalezas de hardware específico (como el 386), mientras que Tanenbaum priorizaba la portabilidad y la operación en hardware de gama baja. Linus criticó las limitaciones de diseño de Minix en términos de rendimiento y funcionalidad, mientras que Tanenbaum respondió que Linux era demasiado dependiente del hardware. Este debate destaca enfoques contrastantes de diseño de SO y refleja el impacto de las limitaciones de hardware en el desarrollo de software en esa época.

Docker Bake GA: Simplifica las compilaciones complejas de Docker

2025-02-08
Docker Bake GA: Simplifica las compilaciones complejas de Docker

Docker anuncia la disponibilidad general de Docker Bake en Docker Desktop 4.38. Esta potente herramienta de orquestación de compilaciones simplifica las compilaciones complejas de Docker mediante un archivo de configuración declarativo. Bake gestiona varias imágenes, la paralelización y el almacenamiento en caché para tiempos de compilación más rápidos, abordando desafíos como la gestión de comandos largos y dependencias. Es compatible con Docker Compose y ofrece funciones avanzadas como compilaciones de matriz y funciones personalizadas. La versión GA incluye mejoras como transferencias de contexto desduplicadas, derechos para una seguridad mejorada, atributos componibles y validación de variables, lo que mejora la eficiencia y la facilidad de uso.

Hotline Renacida: Una Resurrección Swift para Sistemas Apple Modernos

2025-02-08
Hotline Renacida: Una Resurrección Swift para Sistemas Apple Modernos

Un proyecto está en marcha para resucitar el clásico software de comunidad online Mac de 1997, Hotline, recreándolo completamente en Swift y SwiftUI para sistemas Apple modernos (iOS, macOS, etc.). Actualmente, es una aplicación del lado del cliente para conectarse e interactuar con servidores Hotline, ofreciendo funciones como chat estilo IRC, mensajes privados, noticias similares a foros, publicación de tablón de anuncios y transferencias de archivos estilo FTP. El objetivo es un cliente Hotline moderno de código abierto, con el objetivo de revivir esta querida marca para una nueva generación.

Desarrollo

RubyBoy: Un emulador de Game Boy en Ruby, ¡ahora con WebAssembly!

2025-02-08
RubyBoy: Un emulador de Game Boy en Ruby, ¡ahora con WebAssembly!

El autor creó un emulador de Game Boy llamado RubyBoy en Ruby y lo lanzó como una gema. Este artículo detalla el proceso de desarrollo, cubriendo la implementación de la IU, la carga de ROM, el soporte de chips MBC, la implementación de CPU y PPU y las estrategias de optimización del rendimiento. Para mejorar el rendimiento, el autor utilizó YJIT, evitó la creación innecesaria de Hash, optimizó los cálculos de bucle y aprovechó las mejoras en Ruby 3.3, lo que resultó en mejoras significativas de velocidad. Finalmente, RubyBoy se ejecuta con éxito en el navegador gracias a WebAssembly, permitiendo la ejecución multiplataforma.

Desarrollo

Edición remota de VS Code: ¿Invasión a gran escala o desarrollo conveniente?

2025-02-08
Edición remota de VS Code: ¿Invasión a gran escala o desarrollo conveniente?

Esta publicación analiza las implicaciones de seguridad de la función de edición remota de VS Code. Si bien VS Code ofrece edición remota similar a Tramp de Emacs, difiere significativamente. En lugar de una conexión ligera, VS Code descarga un agente que ejecuta un programa Node.js en el servidor remoto, otorgándole un acceso extenso: navegación por el sistema de archivos, edición de archivos, inicio de procesos de shell y autopersistencia. El autor argumenta que este enfoque es excesivamente 'invasivo' y presenta riesgos de seguridad, especialmente en servidores de desarrollo o producción. Si bien el equipo del autor encontró una solución alternativa, la publicación sirve como una advertencia sobre las posibles vulnerabilidades.

(fly.io)
Desarrollo Edición Remota

Manifest V3 de Chrome: ¿Una pesadilla para los desarrolladores de bloqueadores de anuncios?

2025-02-08
Manifest V3 de Chrome: ¿Una pesadilla para los desarrolladores de bloqueadores de anuncios?

La revisión de la arquitectura de extensiones de Chrome Manifest V3 (MV3) de Google continúa causando problemas a los desarrolladores de bloqueadores de anuncios, filtros de contenido y herramientas de privacidad. Si bien Google afirma que MV3 tiene como objetivo mejorar la seguridad y el rendimiento, desarrolladores como los que están detrás de AdGuard y uBlock Origin encuentran sus restricciones mucho más severas de lo previsto, limitando o incluso impidiendo la funcionalidad principal. Los desarrolladores se quejan de que MV3 aumenta la dificultad de desarrollo y acusan a Google de respuestas lentas a los comentarios de los desarrolladores, incluso socavando sutilmente las extensiones mediante cambios en la interfaz de usuario. Esto plantea preguntas sobre las verdaderas intenciones de Google: ¿se trata de mejorar la seguridad y la privacidad, o de limitar sutilmente las capacidades de las extensiones?

Los LLM fallan en OCR complejo: Por qué los grandes modelos de lenguaje tienen problemas con los PDF

2025-02-07
Los LLM fallan en OCR complejo: Por qué los grandes modelos de lenguaje tienen problemas con los PDF

Pulse, una empresa que busca extraer datos de hojas de cálculo y PDF, descubrió una limitación crítica en el uso de Grandes Modelos de Lenguaje (LLM) para OCR. Si bien los LLM sobresalen en la generación de texto y el resumen, fallan significativamente al tratar con PDF y tablas complejas. La naturaleza probabilística de los LLM y su procesamiento abstracto de imágenes conducen a alucinaciones, pérdida de datos e interpretaciones incorrectas, lo que representa riesgos significativos, especialmente con datos financieros y médicos. Además, los LLM son vulnerables a los ataques de inyección de prompt, lo que genera preocupaciones de seguridad y éticas. Pulse finalmente abandonó los LLM para OCR y está desarrollando una solución personalizada que integra algoritmos tradicionales de visión artificial y transformadores de visión.

Cómo la IA está cambiando la entrevista técnica

2025-02-07
Cómo la IA está cambiando la entrevista técnica

La creciente competencia de la IA en tareas complejas como la codificación está desafiando los métodos tradicionales de entrevista técnica. El autor relata su experiencia, destacando las deficiencias de las entrevistas de LeetCode y diseño de sistemas: énfasis excesivo en algoritmos y enfoques formularios, desconexión con el trabajo del mundo real. La IA ahora puede pasar fácilmente algunas entrevistas técnicas, lo que obliga a las empresas a repensar sus procesos. El autor propone incorporar revisiones de código, ya que evalúan mejor la capacidad de los candidatos para evaluar la calidad del código, la seguridad, el rendimiento, etc., crucial en la era de la IA.

Desarrollo

ExpenseOwl: Un sistema minimalista de seguimiento de gastos

2025-02-07
ExpenseOwl: Un sistema minimalista de seguimiento de gastos

¿Cansado de aplicaciones complejas para controlar tus gastos? ExpenseOwl ofrece una solución minimalista. Usa un simple archivo JSON para almacenar datos, proporciona una visualización moderna en gráfico circular de los gastos mensuales y cuenta con interfaces de línea de comandos y web. Sin configuraciones complicadas ni funciones innecesarias: solo agrega, elimina y visualiza gastos para administrar tus finanzas fácilmente. ExpenseOwl también admite categorías y monedas personalizadas y se implementa fácilmente en Docker.

Herramientas Emerge: Proyecto de ejemplo de prueba de rendimiento de aplicaciones Android e iOS

2025-02-07
Herramientas Emerge: Proyecto de ejemplo de prueba de rendimiento de aplicaciones Android e iOS

Este proyecto de código abierto demuestra cómo aprovechar el conjunto de herramientas Emerge para el análisis de tamaño, las pruebas de instantáneas, la detección de código muerto y las pruebas de rendimiento utilizando aplicaciones de ejemplo de Android e iOS. Las aplicaciones están disponibles en la App Store y Google Play, y el repositorio incluye documentación completa y ejemplos de configuraciones de Gradle/fastlane.

Zep AI: Construyendo la Capa de Memoria Fundamental para Agentes de IA de Próxima Generación

2025-02-07
Zep AI: Construyendo la Capa de Memoria Fundamental para Agentes de IA de Próxima Generación

Zep AI está construyendo la capa de memoria fundamental para la próxima generación de agentes de IA. Su tecnología de grafo de conocimiento en aprendizaje continuo permite que los sistemas de IA construyan una comprensión rica y temporal a partir de las interacciones del usuario y los datos comerciales. Con la confianza de líderes de la industria como Mattel y WebMD, Zep mejora la personalización y la precisión de las aplicaciones de IA. Están buscando un Ingeniero Senior para construir soluciones innovadoras y escalables y dar forma a la estrategia técnica junto con el fundador, trabajando en infraestructura, API y tecnologías front-end. El candidato ideal tendrá más de 7 años de experiencia práctica en ingeniería de software, experiencia en al menos dos de Python, TypeScript o Go, y un historial comprobado en arquitectura de sistemas, software a escala de producción y liderazgo de equipos.

Desarrollo

20 Años de Firma de Código de Firefox: De Manual a Automatizado

2025-02-07

Este artículo describe la evolución de la firma de código de Firefox en Mozilla durante los últimos 20 años. Inicialmente, el proceso era extremadamente manual, requiriendo máquinas físicas, llaves USB y numerosos pasos manuales. Gracias a los avances tecnológicos, Mozilla automatizó la firma, pasando de scripts mejorados a servidores de firma dedicados, y finalmente adoptando Taskcluster y el servicio Autograph. Hoy en día, la firma de código de Firefox se realiza miles de veces al día, mejorando significativamente la seguridad del software.

Desarrollo

Pantograph: Un editor de estructura fluido y tipado

2025-02-07
Pantograph: Un editor de estructura fluido y tipado

Pantograph es un editor de código estructurado revolucionario que opera directamente sobre un árbol de sintaxis tipado, a diferencia de los editores tradicionales que analizan el texto y luego comprueban el tipo. Al introducir el concepto de selección de árbol y "edición de cremallera", Pantograph simplifica la edición de programas existentes, permitiendo a los programadores realizar modificaciones de código complejas más fácilmente, manteniendo la seguridad de tipos. Maneja inteligentemente las diferencias de tipo y permite la existencia de algunos errores en el programa, facilitando la depuración gradual. El diseño de Pantograph es genérico para el lenguaje, permitiendo a los desarrolladores definir nuevos editores basados en su marco.

Los Cinco Sombreros del Programador: Estilos de Codificación Basados en el Contexto

2025-02-07

Un programador experimentado reflexiona sobre años de experiencia, describiendo cinco "sombreros" de codificación distintos: Sombrero de Capitán (cuidadoso, deliberado, para sistemas críticos), Sombrero Desaliñado (prototipos rápidos, ceremonia mínima), Sombrero MacGyver (experimentación rápida, código desordenado aceptable), Sombrero de Chef (enfoque en la estética del código) y Sombrero de Profesor (priorizando la claridad y comprensión del código). El autor argumenta que elegir el estilo de codificación correcto según el contexto es crucial, evitando la adhesión dogmática a una única forma "correcta" para una eficiencia óptima.

LOD Dinámico en Three.js: Inspirado en Nanite

2025-02-07
LOD Dinámico en Three.js: Inspirado en Nanite

Este proyecto intenta reproducir un sistema de LOD dinámico en Three.js, similar al Nanite de Unreal Engine 5. Comienza agrupando una malla en meshlets, agrupando meshlets adyacentes, fusionándolos (vértices compartidos), simplificando la malla usando meshoptimizer (reduciendo a la mitad los triángulos, máximo 128) y finalmente dividiéndola (actualmente en 2, con el objetivo de N/2). El proyecto está en una etapa temprana; el trabajo futuro incluye mejorar los LOD, los cortes DAG y la transmisión de geometría a la GPU. La investigación incluye Nanite, estructuras de multirresolución y multi-triangulaciones por lotes.

Desarrollo

Ingeniero Fundador: Construye los Sistemas de Datos Impulsados por IA en PropRise

2025-02-07
Ingeniero Fundador: Construye los Sistemas de Datos Impulsados por IA en PropRise

PropRise, una plataforma de datos inmobiliarios de rápido crecimiento, busca un Ingeniero Fundador senior para diseñar y construir su arquitectura de datos central. Trabajará con una pila tecnológica que incluye TypeScript, Next.js, React, Postgres y GCP, manejando millones de registros de propiedades. Las responsabilidades incluyen la construcción de pipelines de datos robustos, sistemas de garantía de calidad que aprovechan la IA y herramientas internas para una detección más rápida de valores atípicos. Esta es una oportunidad de construir desde cero, reportando directamente al CTO con una participación significativa, ideal para ingenieros apasionados por resolver problemas complejos, entusiasmados con la intersección de la IA y la calidad de los datos, y deseosos de desempeñar un papel clave en una startup de rápido crecimiento.

TRRE: Expresiones Regulares Transductivas – Más Allá del Regex Clásico

2025-02-07
TRRE: Expresiones Regulares Transductivas – Más Allá del Regex Clásico

TRRE es una extensión experimental de las expresiones regulares diseñada para una edición de texto y una coincidencia de patrones más intuitivas. A diferencia del regex tradicional, TRRE usa el símbolo `:` para definir transformaciones, simplificando la sustitución, inserción y eliminación de texto. Proporciona una herramienta de línea de comandos similar a `grep` para tareas eficientes de manipulación de texto, como la sustitución de palabras, la inserción/eliminación de caracteres e incluso el cifrado/descifrado simple. Si bien todavía es un prototipo, TRRE muestra potencial, especialmente para tareas complejas donde su rendimiento puede incluso superar a `sed` en ciertos casos.

Desarrollo

El Auge del Software Personal: Impulsado por la IA

2025-02-07

Después de una década desarrollando software para otros, el autor experimentó agotamiento. La llegada de la IA ha hecho que crear software personal sea más fácil que nunca. Esto llevó al autor a abrazar el concepto de software 'personal' o 'egoísta' – enfocándose en resolver sus propios problemas y haciendo los proyectos de código abierto. Este enfoque reaviva la pasión, permite una iteración más rápida y utiliza la IA para aprender y resolver problemas de manera eficiente. Incluso pequeños scripts únicos se vuelven agradables, promoviendo un nuevo sentido de propósito en el desarrollo.

Desarrollo software personal

El inevitable verificador de préstamos en Inko: Una compensación entre la asignación de pila y las comprobaciones en tiempo de compilación

2025-02-07

El diseñador del lenguaje Inko explora soluciones óptimas para la asignación de pila y la verificación de préstamos. Por defecto, los tipos Inko se asignan en el montón, ofreciendo flexibilidad pero incurriendo en sobrecarga de rendimiento. Para mejorar el rendimiento, se introduce un modificador `inline` para admitir la asignación de pila, pero esto plantea nuevos desafíos: cómo manejar los préstamos y la semántica de movimiento garantizando la seguridad de la memoria. El artículo explora varias soluciones, incluyendo permitir asignaciones de campo, introducir tipos únicos y análisis de escape, concluyendo que la verificación de préstamos en tiempo de compilación es el mejor enfoque, pero su complejidad de implementación es alta y no se implementará a corto plazo. Actualmente, Inko todavía utiliza una estrategia que no permite la reasignación de campos de tipos inline.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-02-07
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. ¿Tienes una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Modelo LLM de menos de 100 MB ahora instalable con pip: Presentamos llm-smollm2

2025-02-07
Modelo LLM de menos de 100 MB ahora instalable con pip: Presentamos llm-smollm2

Un nuevo plugin, llm-smollm2, incluye un modelo LLM SmolLM2-135M-Instruct cuantizado de menos de 100 MB, lo que lo hace instalable con pip. El autor detalla el proceso de creación, desde encontrar un modelo adecuado de menos de 100 MB (limitado por las restricciones de tamaño de PyPI) hasta suprimir los registros detallados de llama-cpp-python y empaquetarlo para PyPI. Aunque las capacidades del modelo son limitadas, se presenta como una herramienta de aprendizaje valiosa para comprender la tecnología LLM.

Generación de Terreno e Hidrología Realistas con Erosión Hídrica Basada en Partículas

2025-02-07

Este artículo presenta una técnica de simulación de erosión hídrica basada en partículas capaz de generar terrenos realistas con ríos, lagos y otras características hidrológicas. Al extender un modelo anterior de erosión basado en partículas e introducir 'mapas de ríos' y 'mapas de charcos' para rastrear el flujo y la acumulación de agua, el sistema simula la migración de ríos, la formación de cascadas, llanuras de inundación y otros fenómenos geográficos. El método es simple, eficiente y está fuertemente acoplado al terreno, produciendo paisajes altamente realistas que permanecen suaves incluso durante el renderizado en tiempo real.

Kubernetes: Una Analogía Sorprendente con los Sistemas Entidad-Componente

2025-02-07

Este artículo revela una sorprendente similitud entre el modelo de gestión de recursos de Kubernetes y el patrón Entidad-Componente-Sistema (ECS) comúnmente usado en el desarrollo de juegos. Los objetos de Kubernetes reflejan las entidades de ECS, poseyendo identificadores únicos; las secciones `spec` y `status` corresponden a los componentes, representando el estado deseado y el estado observado respectivamente; mientras que los controladores, programadores y el Kubelet actúan como sistemas, reconciliando las discrepancias entre el estado deseado y el estado real. Esta similitud arquitectónica aclara el diseño de Kubernetes y ofrece nuevas perspectivas sobre su naturaleza declarativa.

Desarrollo

El mantenedor del kernel de Linux, Hector Martin, renuncia

2025-02-07

Hector Martin, un destacado desarrollador del kernel de Linux, ha anunciado su renuncia al mantenimiento del kernel, retirándose específicamente como mantenedor de la plataforma Apple/ARM. Citó una pérdida de confianza en el proceso de desarrollo del kernel y en la gestión de la comunidad. Si bien puede enviar parches de forma independiente en el futuro, su partida genera un debate sobre la gestión de la comunidad del kernel de Linux.

Google reCAPTCHA vs. GDPR: Riesgos de privacidad y soluciones

2025-02-07

La tecnología reCAPTCHA de Google, utilizada para identificar a los visitantes de sitios web como humanos, entra en conflicto con el GDPR. reCAPTCHA analiza el comportamiento del usuario (movimientos del ratón, pulsaciones de teclas, etc.) y recopila datos personales como direcciones IP e información del navegador para evaluar la identidad del usuario. Como no se obtiene el consentimiento explícito, los operadores de sitios web deben justificar el uso de reCAPTCHA, lo cual es difícil debido a las prácticas de datos opacas de Google y a los riesgos de privacidad incalculables. El artículo recomienda el uso de alternativas más respetuosas con la privacidad y enfatiza la transparencia, la obtención del consentimiento del usuario y la minimización de datos.

Desarrollo

El 'Recolector de Basura Nulo' en el Software de Misiles: ¿Fugas de Memoria? ¡No es un Problema!

2025-02-07
El 'Recolector de Basura Nulo' en el Software de Misiles: ¿Fugas de Memoria? ¡No es un Problema!

Un desarrollador relata una aplicación inteligente de un 'recolector de basura nulo' en el software de misiles. Debido al tiempo de vuelo limitado y a la abundante memoria de hardware, las fugas de memoria en el programa no eran una preocupación. Los ingenieros calcularon el potencial de fuga de memoria durante el vuelo y agregaron el doble de esa cantidad de memoria para garantizar que el programa no se bloqueara antes de la finalización de la misión. Este enfoque aprovechó inteligentemente las restricciones de tiempo de ejecución del programa, resolviendo eficazmente el problema de las fugas de memoria: una especie de 'recolección de basura definitiva'.

Espacios en blanco en HTML: Una inmersión profunda en el lío y posibles soluciones

2025-02-07
Espacios en blanco en HTML: Una inmersión profunda en el lío y posibles soluciones

Este artículo profundiza en las complejidades del manejo de espacios en blanco en HTML. A través de numerosos ejemplos, el autor revela las diversas reglas que gobiernan el tratamiento de espacios en blanco en HTML, incluidas las diferencias entre elementos en línea y de bloque, etiquetas `

` y la propiedad CSS `white-space`, y cómo conducen a resultados de renderizado impredecibles. El artículo también analiza los desafíos que enfrentan las herramientas de formateo automático, los sistemas de gestión de contenido y las herramientas de minificación al tratar con espacios en blanco en HTML. Se propone una solución potencial: usar una sintaxis de comillas para distinguir entre espacios en blanco de código y espacios en blanco visibles para el usuario, aunque se reconoce que esto sería un cambio radical importante. Finalmente, el autor sugiere consejos prácticos para mitigar los problemas que surgen del manejo de espacios en blanco en HTML y propone agregar una nueva entidad HTML `&ncsp;` para representar un espacio no colapsable.

Desarrollo espacios en blanco

Acceso a la cámara de Google Android XR: tan fácil como en tu teléfono

2025-02-07
Acceso a la cámara de Google Android XR: tan fácil como en tu teléfono

Este artículo revela el enfoque de Google para el acceso a la cámara en su sistema Android XR. Similar a los teléfonos, los desarrolladores pueden acceder a los datos de la cámara con el permiso del usuario, utilizando las API de cámara estándar de Android (como CameraX) para los flujos de imagen. Si bien la cámara frontal es accesible (mostrando un avatar del usuario), la cámara trasera proporciona una imagen reconstruida, no el flujo de datos sin procesar. Esto refleja la estrategia de Apple Vision Pro, asegurando la portabilidad perfecta de las aplicaciones de Android a los dispositivos XR y manteniendo solicitudes de permisos consistentes entre teléfonos y auriculares. Android XR se encuentra actualmente en vista previa, por lo que son posibles cambios futuros.

Experimento de Respuestas de IA de Stack Overflow: ¿Una Receta para el Desastre?

2025-02-07
Experimento de Respuestas de IA de Stack Overflow: ¿Una Receta para el Desastre?

El experimento planeado de Stack Overflow para incorporar respuestas generadas por IA ha provocado una fuerte reacción negativa de la comunidad. El autor argumenta que el experimento se basa en una premisa errónea: intentar sustituir respuestas de alta calidad de expertos humanos por IA. Esto no solo desperdiciará tiempo y dinero, sino que también dañará el valor central de la plataforma: respuestas fiables de expertos. El artículo detalla los posibles impactos negativos del experimento, incluyendo: aumento de la carga de trabajo de los moderadores, disminución de la participación de expertos, incapacidad para garantizar la precisión de las respuestas y posible éxodo de usuarios. El autor concluye que las ganancias potenciales del experimento son extremadamente bajas, mientras que los riesgos son muy altos, lo que en última instancia resulta en un resultado contraproducente que perjudica la reputación y la vitalidad de la comunidad de Stack Overflow.

Desarrollo

arXivLabs: Colaboraciones comunitarias para nuevas funciones de arXiv

2025-02-07
arXivLabs: Colaboraciones comunitarias para nuevas funciones de arXiv

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. ¿Tienes una idea para un proyecto que aportará valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo
1 2 166 167 168 170 172 173 174 214 215