Category: Desarrollo

Extensión maliciosa de VS Code utiliza typosquatting para distribuir malware multietapa

2025-02-10
Extensión maliciosa de VS Code utiliza typosquatting para distribuir malware multietapa

Los investigadores descubrieron una extensión maliciosa de VS Code, `truffelvscode`, que utilizó typosquatting en la popular extensión `truffle`. Esta extensión actúa como un caballo de Troya para un malware multietapa. El malware descarga y ejecuta varias etapas de código malicioso, culminando en la instalación y configuración de la herramienta de acceso remoto ScreenConnect, lo que otorga a los atacantes control remoto del sistema comprometido. Se utilizaron técnicas de ofuscación para ocultar el código malicioso, pero los investigadores utilizaron desofuscamiento y análisis de sandbox para revelar toda la cadena de ataque. Este incidente destaca la importancia de la precaución al instalar extensiones de VS Code y subraya la creciente amenaza de los ataques a la cadena de suministro de software.

Desarrollo

Conjetura de 40 años destrozada: La nueva tabla hash supera las expectativas

2025-02-10
Conjetura de 40 años destrozada: La nueva tabla hash supera las expectativas

El estudiante de posgrado Krapivin (Universidad de Cambridge), junto con Farach-Colton y Kuszmaul (Universidad de Nueva York), han refutado la conjetura de Yao, una creencia de larga data en la informática. Su nueva tabla hash alcanza una complejidad temporal en el peor de los casos de (log x)², significativamente más rápido que la x considerada óptima anteriormente. Esta investigación innovadora no solo resuelve un problema clásico en el diseño de tablas hash, sino que también mejora drásticamente la eficiencia del almacenamiento de datos, generando un gran interés en la comunidad académica.

Desarrollo tabla hash

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

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

Desarrollo

Los asistentes de codificación con IA necesitan más contexto: experimentos e ideas

2025-02-10
Los asistentes de codificación con IA necesitan más contexto: experimentos e ideas

Los asistentes de codificación con IA tradicionales, aunque son proficientes en la generación de código, a menudo carecen de contexto crucial sobre el entorno del sistema más amplio. Esto lleva a los desarrolladores a dedicar más tiempo a cerrar la brecha entre el código y varias fuentes de información. Este artículo detalla experimentos que integran el contexto operativo (gráficos de llamadas, métricas, informes de excepciones) en los asistentes de IA para mejorar la precisión de la depuración. Los resultados muestran que los datos de rendimiento estructurados y los informes de errores mejoran el análisis de la IA, pero la representación eficiente de grandes cantidades de contexto sigue siendo un desafío. El futuro reside en un grafo de conocimiento que abarque el comportamiento de la producción, las métricas del sistema y mucho más, permitiendo que los asistentes de IA comprendan el comportamiento del sistema de forma holística.

Reconstruyendo el renderizador de ProseMirror en React: Una historia de dos bibliotecas

2025-02-10

El autor relata su experiencia trabajando en el editor de texto enriquecido del New York Times, Oak, construido con React y ProseMirror. La integración, sin embargo, resultó problemática, llevando a errores persistentes. Después de cuatro años de lidiar con las complejidades de ambas bibliotecas, el equipo optó por reescribir el renderizador de ProseMirror en React. Esto resolvió problemas como el desgarro del estado, resultando en una nueva biblioteca, @handlewithcare/react-prosemirror, con un rendimiento y compatibilidad mejorados.

Desarrollo

Los LLM explican los programas lineales: De proyecto paralelo a investigación de Microsoft

2025-02-10

En 2020, mientras trabajaba en la cadena de suministro de Google, el autor desarrolló un proyecto paralelo para ayudar a comprender los programas lineales (PL). Cuando los PL se vuelven complejos, comprender sus resultados es un desafío incluso para expertos. El enfoque del autor consistió en modificar interactivamente el modelo y comparar los resultados para explicar el comportamiento del modelo, descubriendo que agregar metadatos semánticos simplificaba el proceso. Recientemente, investigadores de Microsoft publicaron un artículo que utiliza modelos de lenguaje grandes (LLM) para traducir consultas en lenguaje natural a consultas estructuradas, logrando un resultado similar. El autor cree que los LLM son una excelente opción para traducir la ambigüedad humana a consultas estructuradas, procesadas por un sistema de optimización clásico robusto, con los resultados resumidos por el LLM. Si bien el trabajo anterior del autor no se publicó, argumenta que comprender las explicaciones de sistemas más simples es crucial para explicar sistemas de IA más complejos.

PDFSyntax: Una herramienta de visualización de PDF en Python sin dependencias

2025-02-10
PDFSyntax: Una herramienta de visualización de PDF en Python sin dependencias

PDFSyntax es una biblioteca Python independiente, sin dependencias, que visualiza la estructura interna de archivos PDF como HTML interactivo. Analiza, descomprime y formatea datos PDF, añadiendo hipervínculos e índices para permitir una navegación lógica por el PDF, incluyendo el recorrido de objetos y el seguimiento de revisiones. Una simple operación de línea de comandos genera HTML estático visualizable directamente en un navegador sin necesidad de JavaScript. Las características incluyen indexación inversa, indexación de páginas, un mapa de miniaturas, extracción de flujos de objetos, descompresión de flujos y resaltado de sintaxis. Los archivos encriptados aún no son compatibles.

Desarrollo

Python 3.14: Evaluación diferida de anotaciones y un nuevo intérprete

2025-02-10
Python 3.14: Evaluación diferida de anotaciones y un nuevo intérprete

Python 3.14 llega con emocionantes actualizaciones. Los PEP 649 y 749 introducen la evaluación diferida de anotaciones, mejorando el rendimiento y simplificando la escritura de anotaciones. Un nuevo intérprete basado en llamadas de cola ofrece mejoras significativas de velocidad (media geométrica de 9-15% en pyperformance) en compiladores y arquitecturas específicas. Finalmente, el PEP 741 refina la API C de configuración de Python, preparando el camino para futuras mejoras. ¡Estas actualizaciones se combinan para hacer Python más rápido y potente!

Desarrollo Anotaciones

K: Un lenguaje de programación conciso, rápido y orientado a vectores

2025-02-10

La familia de lenguajes K es una serie de lenguajes concisos, rápidos y orientados a vectores diseñados por Arthur Whitney. No se trata de una única versión, sino de una secuencia en evolución de iteraciones ligeramente incompatibles. Este libro se centra en las implementaciones de código abierto del lenguaje K y en la comunidad que las rodea, incluyendo ngn/k (k6) y oK (k5/6). Explora las características del lenguaje K, la curva de aprendizaje y su relación con APL y J. Si bien es conocido por su concisión y velocidad, K tiene una curva de aprendizaje pronunciada que requiere práctica dedicada.

Rust intentando alcanzar a Ada: Una batalla en la programación de seguridad crítica

2025-02-10
Rust intentando alcanzar a Ada: Una batalla en la programación de seguridad crítica

Ada ha dominado el ámbito de la programación de seguridad crítica durante más de cuatro décadas. En los últimos diez años, Rust ha intentado competir, con resultados variados. Esta charla explorará las potentes características de Ada para garantizar un código sin errores, en particular sus robustas declaraciones de subtipos y facilidad de uso, y las comparará con las capacidades de Rust, destacando dónde Rust se queda corto y su progreso para alcanzar a Ada.

El Arte de las Variables Globales en C++

2025-02-10

Este artículo explora técnicas efectivas para usar variables globales en C++. El autor argumenta que las variables globales no son intrínsecamente malas; la clave reside en su uso adecuado. El artículo presenta ventajas y desventajas, describiendo cuatro reglas: 1. Hacer difícil su mal uso; 2. Restaurar los valores originales después de cambiar los estados observables; 3. No devolver referencias o punteros al estado interno; 4. No hacer que el código sea difícil de probar. A través de ejemplos de código, el autor demuestra el uso correcto y las posibles trampas, recomendando variables locales de hilo para multithreading.

Desarrollo Variables Globales

Sandbox basado en procesos de Verona: Ejecutando código no confiable de forma segura

2025-02-10
Sandbox basado en procesos de Verona: Ejecutando código no confiable de forma segura

Este proyecto describe un mecanismo de sandbox basado en procesos para Verona, diseñado para ejecutar de forma segura código externo no confiable. Aprovechando el aislamiento de procesos, no requiere modificaciones del SO, ejecutando bibliotecas no confiables en una región de memoria compartida y comunicándose con un proceso padre confiable a través de un IPC cuidadosamente diseñado. El mecanismo admite funciones de devolución de llamada y emulación de llamadas al sistema, lo que garantiza la seguridad del proceso padre; incluso si se ve comprometido, el sandbox no puede acceder a la memoria del padre o a los recursos del sistema. Actualmente, admite las tecnologías de sandbox Capsicum y seccomp-bpf, y tiene como objetivo mejorar la eficiencia y la compatibilidad.

Desarrollo

Rust vs. Ada: Un Enfrentamiento por la Seguridad de Memoria

2025-02-10

Este artículo compara la eficacia de Rust y Ada en la prevención de errores comunes relacionados con la memoria. Rust sobresale en la prevención directa de errores, pero la omisión de la asignación dinámica de memoria por parte de Ada y el soporte para la prueba formal de corrección ayudan a evitar completamente muchos errores comunes. El artículo profundiza en errores comunes de memoria como fugas, desbordamientos de búfer, uso después de liberar, liberación doble y condiciones de carrera, comparando cómo cada lenguaje los maneja. Si bien Rust cuenta con comprobaciones más estrictas en tiempo de compilación, las capacidades de análisis estático de Ada y el control más estricto de punteros ofrecen una alternativa convincente. En última instancia, el autor concluye que ambos lenguajes ofrecen fortalezas únicas: Rust prioriza la seguridad en tiempo de compilación, mientras que Ada enfatiza la prevención de errores desde el principio.

Desarrollo

Siete Pecados Capitales de los Diagramas de Arquitectura Técnica

2025-02-10
Siete Pecados Capitales de los Diagramas de Arquitectura Técnica

Este artículo describe siete errores comunes que se deben evitar al crear diagramas de arquitectura técnica, ofreciendo soluciones para cada uno. Estos errores incluyen: crear diagramas teóricos en lugar de concretos; mezclar niveles de abstracción; incluir demasiadas preocupaciones superpuestas; flechas sin etiqueta; composición engañosa; contexto faltante; y texto explicativo faltante. El artículo enfatiza la importancia de transmitir información del sistema de forma clara y precisa, sugiriendo el uso de varios diagramas para abordar la sobrecarga de información y agregar etiquetas y texto explicativo para mejorar la comprensión y la eficacia de los diagramas de arquitectura.

Frupidity: El asesino silencioso de la productividad y la innovación

2025-02-10
Frupidity: El asesino silencioso de la productividad y la innovación

La frugalidad es una virtud, pero la frupidity —la búsqueda imprudente de recortes de costos a expensas de la productividad— es un asesino silencioso. Este artículo utiliza el ejemplo de una empresa ficticia, PennyTech, para ilustrar cómo el ahorro en herramientas, infraestructura y viajes lleva a pérdidas significativas en eficiencia y moral. El autor argumenta que la verdadera eficiencia radica en el gasto inteligente, no en los recortes de costos ciegos, y enfatiza la importancia de valorar el tiempo de los ingenieros y evitar decisiones a corto plazo que, en última instancia, cuestan más de lo que ahorran.

Desarrollo

Adiós, Generadores de Sitios Estáticos: Mi Blog Ahora Es HTML Puro

2025-02-10

Cansado de las constantes actualizaciones y problemas de compatibilidad con los generadores de sitios estáticos, mi blog ha pasado por numerosas iteraciones, finalmente estableciéndose en HTML puro, usando md-block para Markdown y highlight.js para resaltar la sintaxis. Los reproductores de audio y video integrados en el navegador y la longevidad del HTML me liberan de los dolores de cabeza de compatibilidad de temas y garantizan la disponibilidad del contenido a largo plazo.

Desarrollo

Gracias, Bootstrap: Oda de un Desarrollador

2025-02-10

El autor usa Bootstrap extensamente para CSS en sus proyectos personales, como Anki Books y Larder. Elogia la facilidad de Bootstrap para crear widgets de IU interactivos. Un ejemplo clave detalla la personalización del tema de Larder usando las variables de color de Bootstrap, adoptando los colores de la bandera transgénero. El autor expresa satisfacción con el resultado y destaca la eficiencia de Bootstrap para propagar cambios de color en todo el sitio web, ahorrando tiempo de desarrollo significativo y simplificando el complejo diseño de color.

Desarrollo

py3-TTS-Wrapper: Biblioteca unificada de texto a voz multiplataforma

2025-02-10
py3-TTS-Wrapper: Biblioteca unificada de texto a voz multiplataforma

py3-TTS-Wrapper es una biblioteca de Python que proporciona una interfaz unificada para la integración sencilla con varios servicios de texto a voz (TTS), como AWS Polly, Google TTS y Microsoft Azure TTS. Admite SSML para un control mejorado, permitiendo la personalización de voz, idioma, volumen, tono y velocidad. Las funciones incluyen streaming, salida de archivos y soporte para motores sin conexión (eSpeak-NG, PicoTTS). Tanto si necesitas TTS en tu proyecto como si quieres explorar diferentes motores TTS, py3-TTS-Wrapper simplifica el proceso.

Desarrollo

arXivLabs: Proyectos experimentales con colaboración comunitaria

2025-02-09
arXivLabs: Proyectos experimentales 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. 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 una idea para un proyecto que agregará valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Puntos débiles del usuario de terminal: incluso los expertos tienen dificultades

2025-02-09

Una encuesta a 1600 usuarios de terminal revela frustraciones persistentes, incluso entre usuarios experimentados (40% con más de 21 años de experiencia). Los problemas principales incluyen recordar la sintaxis de los comandos (awk, jq, sed, etc.), los atajos de teclado (tmux, editores de texto) y navegar por las inconsistencias entre sistemas (diferencias de SO, variaciones de editores). La configuración de colores, copiar/pegar (a través de SSH, tmux, etc.), la dificultad para descubrir herramientas útiles, una curva de aprendizaje pronunciada, la administración del historial del shell y la documentación deficiente también surgieron con frecuencia. Los resultados destacan las dificultades continuas que incluso los usuarios experimentados enfrentan con los detalles minuciosos del terminal, enfatizando la necesidad de una experiencia de usuario mejorada.

Tres días de infierno: De utilidad Python a aplicación web

2025-02-09
Tres días de infierno: De utilidad Python a aplicación web

El autor pasó tres días intentando convertir una sencilla utilidad de Python en una aplicación web. Los intentos iniciales usando los frameworks Flask y Bottle fallaron debido a problemas de CORS y a las complejidades de las solicitudes asíncronas. Una incursión en la API Fetch de JavaScript y una API REST de Node.js resultaron demasiado engorrosas de mantener. Finalmente, el autor volvió a la aplicación Bottle original, aceptando el tiempo de espera del usuario para la finalización de la solicitud a cambio de un código más simple y fácil de mantener. Esto destaca la importancia de las elecciones tecnológicas: a veces, la solución más simple es la mejor.

Desarrollo

Mejores Prácticas de PostgreSQL: Construyendo una Base de Datos Robusta y Confiable

2025-02-09
Mejores Prácticas de PostgreSQL: Construyendo una Base de Datos Robusta y Confiable

Este artículo describe las mejores prácticas para bases de datos PostgreSQL, cubriendo el diseño de bases de datos, la optimización del rendimiento, la seguridad, el respaldo y la recuperación, el mantenimiento y la monitorización, y las prácticas de desarrollo. Desde convenciones de nomenclatura y diseño de esquemas hasta estrategias de indexación, optimización de consultas, control de acceso, políticas de contraseñas, estrategias de respaldo y métricas de monitorización, el artículo proporciona una guía detallada con ejemplos de código para ayudar a los desarrolladores a construir un sistema de base de datos PostgreSQL robusto, eficiente y seguro. También se destacan las configuraciones de alta disponibilidad, incluida la configuración de replicación y el equilibrio de carga, para garantizar la fiabilidad y la escalabilidad del sistema de base de datos.

Desarrollo

¡Anunciados los premios Ada/SPARK Crate of the Year!

2025-02-09
¡Anunciados los premios Ada/SPARK Crate of the Year!

¡Ya se conocen los resultados de los premios Ada/SPARK Crate of the Year 2024! Lionel Draghi gana el premio Ada Crate of the Year con BBT, una herramienta de línea de comandos que utiliza especificaciones de comportamiento en Markdown fáciles de entender para pruebas automatizadas. Kevin Chadwick se lleva a casa el premio SPARK Crate of the Year con elogs, una biblioteca de registro segura en memoria (certificada en Nivel Plata SPARK) que permite a los usuarios especificar la longitud máxima del mensaje. Finalmente, el intérprete Lisp integrable de Brent Seidel, bbs_lisp, gana el premio Embedded Crate of the Year, mostrando las fortalezas de Ada en sistemas integrados.

Desarrollo

La larga guerra de Rust por el kernel de Linux

2025-02-09
La larga guerra de Rust por el kernel de Linux

Rust está avanzando en el kernel de Linux, pero la transición será larga y contenciosa. Si bien Rust ofrece ventajas significativas en seguridad de memoria y cuenta con el respaldo de empresas como Google, su adopción enfrenta una fuerte resistencia dentro de la comunidad del kernel. Las preocupaciones sobre su curva de aprendizaje pronunciada y los desafíos de integración con el código C existente han generado debates acalorados, incluso descritos como una “guerra religiosa”. Sin embargo, los defensores argumentan que Rust mejora la estabilidad y la seguridad del kernel, atrayendo a más desarrolladores. En última instancia, el reemplazo completo de C por Rust depende de la madurez tecnológica y del consenso de la comunidad.

Desarrollo

Domando el sistema de archivos inmutable de Steam Deck con Nix y Home Manager

2025-02-09
Domando el sistema de archivos inmutable de Steam Deck con Nix y Home Manager

El sistema de archivos inmutable de Steam Deck dificulta la instalación de paquetes que persisten entre actualizaciones del sistema. Esta guía muestra cómo usar Nix y Home Manager para resolver esto de forma elegante. Nix es un gestor de paquetes declarativo; simplemente lista los paquetes deseados en un archivo de configuración, y él se encarga de la instalación. Home Manager simplifica el uso de Nix. La guía detalla la instalación de Nix y Home Manager en tu Steam Deck, la gestión de paquetes (instalación, eliminación) y ofrece consejos como crear accesos directos en el escritorio y ejecutar la recolección de basura.

Desarrollo

arXivLabs: Creando nuevas funciones de arXiv con colaboradores de la comunidad

2025-02-09
arXivLabs: Creando nuevas funciones de arXiv con colaboradores de la comunidad

arXivLabs es un marco que permite a los desarrolladores colaborar con la comunidad de arXiv para crear y compartir nuevas funciones directamente en el sitio web de arXiv. Los participantes deben adherirse a los valores fundamentales de arXiv de apertura, comunidad, excelencia y privacidad de los datos del usuario. Si tienes una idea para un proyecto que agregará valor a la comunidad de arXiv, obtén más información sobre arXivLabs.

Desarrollo

Firma de solicitudes de API: inconvenientes y mejores prácticas

2025-02-09

Este artículo profundiza en los desafíos de seguridad de la firma de solicitudes de API, especialmente las dificultades de firmar objetos JSON. El autor señala que, si bien la firma HMAC simple es segura, firmar directamente dentro del objeto JSON puede provocar varios problemas, como múltiples representaciones equivalentes de JSON que provocan fallos en la validación de la firma. El artículo compara y analiza varios métodos de firma, incluida la canonización de JSON, la adición de datos de firma redundantes y el uso de formatos alternativos. Los ejemplos de los esquemas de firma de AWS y Flickr ilustran los riesgos de seguridad de las implementaciones defectuosas. En última instancia, el autor recomienda priorizar TLS y evitar la firma en línea de JSON, optando por una firma externa para garantizar la seguridad de la solicitud de la API.

Escalando PostgreSQL: Problemas extraños y soluciones para startups de alto crecimiento

2025-02-09
Escalando PostgreSQL: Problemas extraños y soluciones para startups de alto crecimiento

Esta publicación aborda los desafíos comunes de escalamiento de PostgreSQL que enfrentan las startups de alto crecimiento. Cubre problemas como la contención de bloqueos, la hinchazón de índices, las ineficiencias de almacenamiento TOAST y las complejidades del escalamiento vertical versus horizontal, las tablas de solo anexión versus las tablas con muchas actualizaciones y la multitenencia. Para cada problema, se ofrecen soluciones prácticas, que van desde ajustes de parámetros de la base de datos y herramientas de concurrencia hasta repensar los patrones de acceso a datos y utilizar funciones como bloqueos consultivos. El autor también explora temas avanzados, como las migraciones de esquema bajo carga, las actualizaciones con tiempo de inactividad cero y las estrategias eficientes de consultas COUNT. Este es un recurso valioso para los ingenieros que se esfuerzan por optimizar el rendimiento de PostgreSQL en entornos exigentes.

Kanata: Remapeador de teclado multiplataforma para mayor comodidad

2025-02-09
Kanata: Remapeador de teclado multiplataforma para mayor comodidad

Kanata es un remapeador de teclado multiplataforma para Linux, macOS y Windows. Permite múltiples capas de funcionalidad de teclas y personalización avanzada (mantener pulsado, macros, Unicode). Inspirado en kmonad pero desarrollado en Rust, Kanata ofrece soporte para más plataformas y una interfaz más amigable. Su objetivo es llevar la potente personalización de QMK a cualquier teclado, independientemente del hardware, mejorando la comodidad y la productividad.

Desarrollo

El Desempeño Desconcertante de la Recolección de Basura Generacional

2025-02-09

El autor realizó experimentos para verificar los beneficios de rendimiento de la recolección de basura generacional. Sorprendentemente, los resultados mostraron que la recolección de basura generacional tardó más que la recolección de basura de montón completo en varios puntos de referencia. El artículo explora varias causas potenciales, incluida la sobrecarga de la barrera de escritura, la selección del tamaño de la guardería, la representatividad del punto de referencia y la frecuencia de recolección. El autor concluye que se necesitan investigaciones adicionales para determinar la causa raíz.

Desarrollo recogida de basura
1 2 164 165 166 168 170 171 172 214 215