Category: Desarrollo

Long Polling vence a WebSockets: Una guía práctica para sistemas en tiempo real escalables

2025-01-05

El equipo de Inferable eligió long polling HTTP en lugar de WebSockets al construir un sistema en tiempo real escalable utilizando Node.js y TypeScript. Al enfrentarse a los desafíos de cientos de nodos de trabajo que necesitan actualizaciones de trabajo en tiempo real y agentes que requieren sincronización de estado en tiempo real, descubrieron que el long polling era sorprendentemente eficaz. Manteniendo las conexiones HTTP abiertas hasta que lleguen nuevos datos o se alcance un tiempo de espera, evitaron las complejidades de WebSockets, como la autenticación, la capacidad de observación y la compatibilidad de la infraestructura. El artículo detalla su implementación, incluida la optimización de la base de datos, el manejo de errores y las mejores prácticas, como el TTL obligatorio, el TTL configurable por el cliente y los intervalos de sondeo de la base de datos adecuados. La elección se debió a la necesidad de un control central del producto sobre el mecanismo de entrega de mensajes, cero dependencias externas y facilidad de comprensión y modificación. Se discuten brevemente alternativas como ElectricSQL, destacando escenarios en los que WebSockets podrían ser preferibles.

Herramienta interactiva de aprendizaje CSS Flexbox

2025-01-05

CSS Flexbox Playground es una herramienta de aprendizaje interactiva en línea que permite a los usuarios ajustar varias propiedades Flex para ver los cambios de diseño en tiempo real y copiar el código CSS generado. Cubre propiedades clave como flex-direction, justify-content, align-items y flex-wrap, proporcionando una comprensión visual del diseño Flexbox. La experimentación práctica permite a los usuarios dominar rápidamente Flexbox y mejorar la eficiencia del desarrollo web.

Desarrollo

La FSF pide presión continua sobre Microsoft

2025-01-05

La Free Software Foundation (FSF) publicó una entrada en el blog instando a ejercer presión continua sobre Microsoft para combatir sus prácticas contra el software libre. La entrada utiliza el Día Internacional contra las Restricciones Digitales (IDAD) de este año como ejemplo, destacando la actualización forzada a Windows 11 de Microsoft que requiere un módulo TPM, perjudicando la libertad del usuario y los derechos digitales. La FSF anima a cambiar al sistema GNU/Linux, evitar las nuevas versiones del software de Microsoft y trasladar proyectos fuera de Microsoft GitHub para apoyar el movimiento del software libre. Simultáneamente, la FSF está realizando su recaudación anual, buscando apoyo para combatir las restricciones digitales y promover la libertad del software.

Wildcard: Personalización de sitios web con hojas de cálculo

2025-01-05
Wildcard: Personalización de sitios web con hojas de cálculo

Wildcard es una extensión de navegador desarrollada por Geoffrey Litt, estudiante de doctorado del MIT, que permite a los usuarios modificar sitios web a su gusto utilizando una interfaz familiar de hoja de cálculo. El proyecto, detallado en varios artículos académicos y mostrado en videos de demostración (como agregar tiempos de lectura a Hacker News), se encuentra actualmente en desarrollo, pero ofrece una versión de desarrollo descargable. Explora su potencial para experiencias web personalizadas.

Comparativa de Algoritmos de Reintento: Retroceso Lineal, Exponencial y Exponencial con Límite

2025-01-05

Este artículo compara tres algoritmos comunes de reintento: retroceso lineal, retroceso exponencial y retroceso exponencial con límite. El retroceso lineal aumenta el tiempo de espera en una cantidad fija con cada reintento; el retroceso exponencial duplica (o multiplica) el tiempo de espera con cada reintento; el retroceso exponencial con límite es similar al retroceso exponencial pero con un retraso máximo. El artículo también analiza la adición de fluctuaciones aleatorias para evitar problemas de "efecto manada" cuando varios clientes reintentan simultáneamente.

MyST Markdown: Herramientas de código abierto que revolucionan la comunicación científica

2025-01-05
MyST Markdown: Herramientas de código abierto que revolucionan la comunicación científica

MyST Markdown es un ecosistema de herramientas de código abierto e impulsado por la comunidad, diseñado para transformar la comunicación científica. Admite la creación de blogs, libros en línea, artículos científicos, informes y artículos de revistas, ofreciendo potentes funciones como gráficos en vivo integrados, integración de Jupyter, exportación PDF y compatibilidad con cientos de revistas. Su núcleo es una extensión Markdown flexible que integra a la perfección código, resultados computacionales y elementos interactivos, creando documentos dinámicos e interesantes. Tanto si eres científico, ingeniero o redactor técnico, MyST te permite compartir tu investigación y conocimiento de forma más eficaz.

Cuarentena de Proyectos de PyPI: Un Nuevo Arma Contra el Malware

2025-01-05
Cuarentena de Proyectos de PyPI: Un Nuevo Arma Contra el Malware

El Índice de Paquetes de Python (PyPI) ha introducido una función de 'Cuarentena de Proyectos' para combatir el persistente problema del malware. Esta función permite a los administradores de PyPI marcar proyectos potencialmente dañinos, evitando su fácil instalación por parte de los usuarios y mitigando los daños. En lugar de la eliminación total, los proyectos se ocultan del índice simple, permaneciendo modificables por los propietarios (pero no lanzables), con los administradores manteniendo la capacidad de levantar la cuarentena. Los planes futuros incluyen automatizar la cuarentena en función de múltiples informes creíbles, mejorando la eficiencia y reduciendo el margen de tiempo para la propagación de malware.

Desarrollo

Simulación de Moho de Limo con WebGPU: Implementación con TypeScript y Shaders de Cómputo

2025-01-05
Simulación de Moho de Limo con WebGPU: Implementación con TypeScript y Shaders de Cómputo

SuboptimalEng ha creado una impresionante simulación de moho de limo usando WebGPU y TypeScript. Este proyecto recrea el trabajo clásico de Sebastian Lague, utilizando shaders de cómputo para simular eficientemente el crecimiento y movimiento del moho de limo. Se incluye una guía de configuración detallada, capturas de pantalla y enlaces a recursos, y el proyecto se ha implementado en GitHub Pages para facilitar el acceso. Este es un excelente ejemplo para aprender WebGPU y shaders de cómputo.

La Lucha por los Derechos de Autor en Código Abierto: ¿Quién Controla tu Código?

2025-01-04
La Lucha por los Derechos de Autor en Código Abierto: ¿Quién Controla tu Código?

Este ensayo profundiza en las complejidades de la propiedad de los derechos de autor en el software libre y de código abierto (FOSS). Tradicionalmente, muchos proyectos FOSS asignan los derechos de autor a organizaciones sin fines de lucro, pero esta práctica se ha vuelto controvertida. El autor argumenta que la mayoría de los contribuyentes de FOSS, en realidad, tienen sus derechos de autor en manos de sus empleadores, debilitando la protección ofrecida por las licencias copyleft. Cambiar la asignación centralizada de derechos de autor podría dejar a las empresas en control, dificultando potencialmente la aplicación del GPL. El artículo insta a los contribuyentes de FOSS a considerar cuidadosamente la propiedad de los derechos de autor, sugiriendo medidas proactivas para proteger sus derechos y mantener los intereses de la comunidad de código abierto, evitando que el copyleft se vuelva ineficaz.

Desarrollo

Labwc: Un Compositor Wayland Ligero y Sencillo

2025-01-04
Labwc: Un Compositor Wayland Ligero y Sencillo

Labwc es un compositor de ventanas Wayland ligero basado en wlroots, inspirado en openbox. Prioriza el apilamiento de ventanas simple y eficiente y las decoraciones de ventanas mínimas. A diferencia de muchos compositores, depende de los clientes para proporcionar funciones como paneles, capturas de pantalla y fondos de pantalla, manteniendo su naturaleza ligera. Adhiriéndose al estilo de codificación de wlroots y sway, Labwc admite exclusivamente protocolos Wayland, rechazando dbus, sway/i3-IPC, etc., para evitar la fragmentación de protocolos y promover la adopción de Wayland.

Desarrollo Gestor de Ventanas

Errores en ensamblador Go: Conflictos con el puntero de marco en dos casos

2025-01-04

Esta publicación analiza dos fallos en Go que provienen de un código ensamblador con errores que dañó el puntero de marco. Un error sobrescribió el registro del puntero de marco (BP en AMD64) en la biblioteca go-metro, el otro guardó incorrectamente el puntero de marco en la pila en el ensamblador ARM64 de Apache Arrow. El autor recomienda usar generadores de ensamblador como Avo para evitar la manipulación manual de registros y pila. El artículo profundiza en las ABI y las convenciones de llamada, ofreciendo información sobre cómo prevenir problemas similares, destacando la importancia de comprender y seguir las pautas de ensamblador de Go.

ELKS: Un subconjunto de kernel de Linux integrable para 8086

2025-01-04
ELKS: Un subconjunto de kernel de Linux integrable para 8086

ELKS proporciona un sistema operativo similar a Linux para sistemas basados en la arquitectura Intel IA16 (procesadores de 16 bits: 8086, 8088, etc.). Admite redes e instalación en HDD (sistemas de archivos MINIX y FAT), se ejecuta con tan solo 256 KB de RAM y funciona en antiguos PC IBM y SBC, SoC y FPGA modernos. Hay imágenes de disco descargables e instrucciones de compilación disponibles, junto con una demostración en línea.

Desarrollo

Efficient Recorder: Grabador de pantalla de código abierto con enfoque en la privacidad

2025-01-04
Efficient Recorder: Grabador de pantalla de código abierto con enfoque en la privacidad

Inspirado en un tuit, el desarrollador Jan Wilmake creó Efficient Recorder, un proyecto de código abierto que busca crear una alternativa a Rewind.ai centrada en la privacidad. Esta herramienta de interfaz de línea de comandos (CLI) graba simultáneamente la pantalla, el audio del sistema y el audio del micrófono, transmitiendo datos directamente a un bucket S3. Cuenta con grabación de audio inteligente (cambio de frecuencias de muestreo según la detección de voz), captura automática de capturas de pantalla y de la cámara web, y administración eficiente de recursos para minimizar la sobrecarga del sistema. Efficient Recorder permite personalizar configuraciones como los intervalos de capturas de pantalla y de la cámara web, y la calidad de la imagen.

MoonBit en la nube de Golem: Creando un editor de listas colaborativo

2025-01-04

Esta entrada de blog detalla la creación de un editor de listas colaborativo en la nube de Golem utilizando el nuevo lenguaje de programación MoonBit. El autor divide la aplicación en tres componentes de Golem: lista, archivo y notificador de correo electrónico. Se aprovechan las características de MoonBit para implementar la manipulación de listas, el archivado y las notificaciones por correo electrónico con tiempo de espera. La entrada explica detalladamente el uso de MoonBit, el diseño de la arquitectura de los componentes de Golem y el acceso a la hora del sistema y las variables de entorno mediante WASI. La aplicación se crea e implementa con éxito, mostrando el potencial de MoonBit en la plataforma Golem Cloud.

Desarrollo

Infisical, respaldada por YC, busca Ingeniero de Soluciones

2025-01-04
Infisical, respaldada por YC, busca Ingeniero de Soluciones

Infisical, una plataforma de gestión de secretos de código abierto respaldada por Y Combinator, está buscando un Ingeniero de Soluciones. Procesan más de 100 millones de secretos al día y atienden a clientes que van desde grandes empresas hasta startups de rápido crecimiento. El puesto requiere experiencia en desarrollo o ingeniería de sistemas y experiencia con clientes. Las responsabilidades incluyen asegurar el éxito del cliente, expandirse a nuevos casos de uso y mejorar el producto. Infisical ofrece un salario y acciones competitivos, además de beneficios.

Un perro vs. la pila de gráficos de Windows 3.1

2025-01-04

El autor intenta ejecutar Windows 3.11 en un netbook Asus Eee PC 1000H de 2008, encontrando problemas de salida de vídeo. El modo VGA predeterminado se ve pésimo en la pantalla de mayor resolución, y el controlador Super VGA incluido es incompatible. El artículo profundiza en las complejidades del modo mejorado de Windows 3.x, el hardware VGA, el estándar VBE y el parche SVGAPatch. Mediante ingeniería inversa y depuración, el autor analiza el controlador de pantalla y el Dispositivo de Visualización Virtual (VDD), mejorando el SVGAPatch para resolver algunos problemas de compatibilidad. Sin embargo, persisten los desafíos, lo que destaca la complejidad de los sistemas heredados.

Desarrollo

Magia de código abierto: Auto Smiley, el generador de sonrisas de visión por computadora

2025-01-04
Magia de código abierto: Auto Smiley, el generador de sonrisas de visión por computadora

El Laboratorio F.A.T. lanzó Auto Smiley, una aplicación de código abierto que utiliza la visión por computadora para detectar sonrisas. Cuando sonríes, inserta automáticamente ":)" en tu aplicación activa. Construido con openFrameworks y MPT, está disponible para Windows y Mac, mostrando la destreza en prototipado rápido y tecnología creativa del Laboratorio F.A.T. Este proyecto rápido destaca su compromiso con los recursos de código abierto y de dominio público.

Prettier ahora admite la formatación de archivos PGN

2025-01-04
Prettier ahora admite la formatación de archivos PGN

Se ha lanzado un nuevo plugin de Prettier, `prettier-plugin-pgn`, que agrega soporte para la formatación de archivos Portable Game Notation (PGN). PGN es un formato de texto estándar para registrar partidas de ajedrez. Este plugin maneja variaciones, anotaciones y varias partidas en un solo archivo PGN, facilitando el trabajo de ajedrecistas y desarrolladores. La instalación es sencilla, a través de npm o globalmente.

Desarrollo Formato de código

Finalizando Proyectos Paralelos con LLMs y Cursor

2025-01-04
Finalizando Proyectos Paralelos con LLMs y Cursor

Esta publicación de blog detalla cómo el autor mejoró drásticamente su tasa de finalización de proyectos paralelos utilizando LLMs y el IDE Cursor. Ante limitaciones de tiempo, recurrió a la IA para refinar las especificaciones del proyecto, iniciar la generación de código e iterar de manera eficiente. Un sitio web de seguimiento de hábitos sirve como caso de estudio, mostrando el proceso desde la especificación inicial (refinada con ChatGPT) hasta la implementación a través de GitHub Actions. Las estrategias clave incluyen el uso de Vite para la configuración del proyecto, el modo agente de Cursor para la generación de código, el desarrollo iterativo con un enfoque de dividir y conquistar y el suministro de un amplio contexto a los LLMs. El autor enfatiza la importancia de elegir el LLM y el modo Cursor adecuados para diferentes tareas, culminando en la entrega de una versión funcional v1 del rastreador de hábitos.

Beam: Herramienta de transferencia de archivos y pipes basada en SSH

2025-01-04
Beam: Herramienta de transferencia de archivos y pipes basada en SSH

Beam es una herramienta que utiliza el protocolo SSH para transferir archivos y pipes, requiriendo solo un cliente SSH; no se necesita instalación binaria. Admite la transferencia de pipes, ofrece alta seguridad con autenticación de clave pública y utiliza comandos SSH simples para enviar y recibir datos. Los nombres de canales aleatorios pueden mejorar la seguridad. Si bien el servidor Beam se encuentra en Alemania, las velocidades de transferencia pueden ser limitadas y no se admite el cifrado de extremo a extremo (los datos se descifran brevemente en el servidor), su naturaleza ligera y la sencilla auto-hospedaje lo convierten en una solución conveniente para la transferencia de archivos.

5 Formas de Representar Contornos en Unity

2025-01-04
5 Formas de Representar Contornos en Unity

Este artículo explora cinco técnicas diferentes para representar contornos de objetos en el motor de juego Unity: efecto de borde, extrusión de vértices, búfer difuminado, algoritmo de inundación de salto y detección de bordes. Cada técnica ofrece ventajas e inconvenientes en cuanto a rendimiento, fidelidad visual y complejidad de implementación. El efecto de borde es sencillo pero funciona mejor con objetos esféricos. La extrusión de vértices produce buenos resultados pero tiene problemas con los bordes afilados. El método de búfer difuminado es ideal para contornos suaves pero puede ser costoso en términos de rendimiento. El algoritmo de inundación de salto destaca por su eficiencia en la representación de contornos anchos. La detección de bordes proporciona un efecto de contorno en pantalla completa pero requiere un ajuste preciso para evitar artefactos. La mejor opción depende de las necesidades del proyecto y las limitaciones de rendimiento.

Bajo el Capó de ChatGPT: Una Perspectiva para Programadores

2025-01-04
Bajo el Capó de ChatGPT: Una Perspectiva para Programadores

Este artículo profundiza en el funcionamiento de ChatGPT, dirigido específicamente a programadores. Omitiendo conceptos generales de IA/ML, se centra en el modelo ChatGPT de OpenAI, explicando su arquitectura, el uso de redes Transformer y cómo el Aprendizaje por Refuerzo con Retroalimentación Humana (RLHF) lo ajusta para tareas conversacionales. El artículo también detalla la tokenización, el entrenamiento del modelo, la generación de respuestas y el papel del RLHF en garantizar respuestas precisas y contextualizadas.

Desarrollo

RailsConf 2025: Una despedida final y un nuevo comienzo

2025-01-04
RailsConf 2025: Una despedida final y un nuevo comienzo

Ruby Central ha anunciado que RailsConf 2025, que tendrá lugar del 8 al 10 de julio en Filadelfia, será la última. Después de casi 20 años, esta reunión final celebra el legado de Rails y su comunidad. Como un cambio estratégico, Ruby Central solo albergará RailsConf en 2025, posponiendo RubyConf para la primavera de 2026, donde se convertirá en el evento principal. Esto permite una experiencia de mayor calidad y un mayor apoyo para proyectos de código abierto como RubyGems y Bundler. Rails mantendrá una fuerte presencia en las futuras RubyConfs, junto con RailsWorld, creando un ritmo primavera/otoño para los principales eventos Ruby y Rails.

Desarrollo

¿Quieren los archivos ser actores? io_uring y la convergencia de paradigmas computacionales

2025-01-04
¿Quieren los archivos ser actores? io_uring y la convergencia de paradigmas computacionales

En aplicaciones Linux de alto rendimiento, io_uring está revolucionando la interacción con el SO. Utiliza colas de envío y de completado, permitiendo E/S asíncrona sin esperar a las llamadas al sistema. Simplemente coloque las operaciones en la cola y continúe con el cálculo. Esto se asemeja notablemente al modelo Actor: los objetos envían mensajes para realizar cálculos concurrentes. El envío de operaciones a descriptores de archivos y la recepción asíncrona de respuestas en io_uring es sorprendentemente similar. Esto sugiere un cambio hacia un comportamiento de SO asíncrono y autónomo; los métodos tradicionales de llamada al sistema podrían ser una abstracción obsoleta.

Desarrollo E/S Asíncrona

Desmitificando la Recursión: Un Enfoque Basado en Proyectos

2025-01-04

El libro "El Libro Recursivo de la Recursión" desafía la reputación intimidante de los algoritmos recursivos. Usando ejemplos en Python y JavaScript, explica progresivamente los fundamentos de la recursión, algoritmos comunes (factoriales, secuencias de Fibonacci, recorrido de árboles, resolución de laberintos, etc.) y técnicas de optimización (optimización de llamada de cola, memorización). Abarca temas avanzados como dividir y conquistar, permutaciones, combinaciones y programación dinámica, culminando en la generación de arte fractal. Basado en proyectos y altamente accesible, este libro es perfecto para principiantes y programadores experimentados.

Desarrollo

Lanzamiento de Wine 10.0-rc4: Estabilidad y compatibilidad mejoradas

2025-01-04
Lanzamiento de Wine 10.0-rc4: Estabilidad y compatibilidad mejoradas

Wine 10.0-rc4 candidato a lanzamiento, marca un paso significativo hacia la próxima gran actualización de esta capa de compatibilidad de código abierto. Esta versión se centra fuertemente en la mejora de la estabilidad y la compatibilidad, prometiendo una experiencia más fluida para ejecutar aplicaciones de Windows. El equipo de desarrollo ha invertido un esfuerzo significativo en la corrección de errores y en mejoras de rendimiento, preparando el camino para una versión final robusta. Espere mejoras interesantes en la versión final.

Rompiendo con las Tareas Largas: Dominando los bucles asíncronos para el rendimiento web

2025-01-04
Rompiendo con las Tareas Largas: Dominando los bucles asíncronos para el rendimiento web

Este artículo profundiza en la optimización de bucles JavaScript para evitar el bloqueo del hilo principal y mejorar el rendimiento web. El autor destaca que el uso de bucles `for...of` o métodos como `forEach` directamente en arrays grandes puede crear tareas largas, lo que lleva a una experiencia de usuario lenta. La solución implica el uso de `scheduler.yield` o `setTimeout(0)` con `async/await` para dividir las tareas largas en tareas más pequeñas, cediendo el control después de cada iteración para mantener la capacidad de respuesta. El artículo explora además estrategias de procesamiento por lotes y optimización de la velocidad de fotogramas para equilibrar la capacidad de respuesta y la eficiencia del procesamiento. En última instancia, se recomienda elegir un tamaño y una estrategia de lote apropiados en función de las necesidades específicas de la aplicación para una experiencia de usuario óptima.

Implementando un Generador de Números Pseudoaleatorios con XORSHIFT32

2025-01-04

Este registro de desarrollo detalla la implementación de un generador de números pseudoaleatorios (PRNG) utilizando el algoritmo XORSHIFT32. El autor utiliza 1804289383 como estado inicial, un número previamente utilizado en otras implementaciones de motor. La implementación es sencilla, involucrando desplazamientos de bits en el estado inicial. El código define el estado inicial e incluye una función `getRandomNumber()` que ejecuta el algoritmo XORSHIFT32.

Sintaxis Trascendental: Construyendo Abstracciones Lógicas desde un Lenguaje de Bajo Nivel

2025-01-04
Sintaxis Trascendental: Construyendo Abstracciones Lógicas desde un Lenguaje de Bajo Nivel

Este proyecto de GitHub implementa la 'Sintaxis Trascendental' de Jean-Yves Girard, un método para construir abstracciones lógicas a partir de un lenguaje de bajo nivel, agnóstico a la lógica. Utiliza un lenguaje base llamado 'resolución estelar', donde los objetos elementales (programas) son 'constelaciones'. Estas constelaciones se usan en un lenguaje de nivel superior, 'Stellogen' (un lenguaje de metaprogramación para constelaciones), para definir pruebas y fórmulas. El proyecto está en desarrollo, con la guía actualmente disponible solo en francés.

Desarrollo metaprogramación

Weird: Crea tu Hogar Digital

2025-01-04
Weird: Crea tu Hogar Digital

En la era digital, a menudo alquilamos espacio virtual en plataformas gigantes como Facebook y GitHub, perdiendo la verdadera soberanía digital. Weird tiene como objetivo cambiar eso ofreciendo alojamiento web gratuito, permitiéndote poseer tu propio dominio y sitio web, construyendo un hogar digital seguro y personalizado. Con simples listas de enlaces, puedes participar en el grafo de conocimiento social y establecer tu identidad digital. Aunque todavía está en fase de prueba inicial, Weird está mejorando constantemente y eventualmente ofrecerá funciones como Web Passports e inicios de sesión ATProto.

Desarrollo dominio
1 2 193 194 195 197 199 200 201 214 215