Category: Desarrollo

Un sitio web estático para la comunicación profesional

2025-02-13
Un sitio web estático para la comunicación profesional

Un nuevo proyecto de sitio web estático, "Cómo decirlo profesionalmente", ofrece frases alternativas para comunicaciones comunes en el lugar de trabajo para promover el profesionalismo y evitar malentendidos. Los datos provienen del creador de contenido de Instagram @loewhaley. El proyecto está en sus primeras etapas, y el autor busca la retroalimentación de la comunidad para refinar su contenido y hacerlo más ampliamente aplicable. El proyecto es de código abierto y se reciben contribuciones y sugerencias.

Desarrollo basado en trunk: Adiós a las ramas de larga duración

2025-02-13
Desarrollo basado en trunk: Adiós a las ramas de larga duración

El desarrollo de proyectos grandes a menudo sufre de largas fusiones de ramas y conflictos, lo que ralentiza los lanzamientos. Este artículo introduce el desarrollo basado en trunk, donde los equipos trabajan directamente en la rama principal, gestionando las funciones incompletas mediante flags de funciones. Las flags de funciones estáticas utilizan instrucciones if simples, mientras que las flags de funciones dinámicas ofrecen control en tiempo real a través de sistemas externos, permitiendo pruebas de producción y reversiones. Este enfoque, combinado con la entrega continua, permite iteraciones más rápidas y una entrega de software fiable, minimizando los riesgos y acelerando el bucle de retroalimentación.

La criptografía no se basa en problemas NP-completos

2025-02-13

Este artículo explica por qué la criptografía no se basa en problemas NP-completos. Si bien los problemas NP-completos son difíciles de resolver rápidamente, la criptografía necesita problemas que sean difíciles en promedio, es decir, una instancia seleccionada aleatoriamente es difícil de descifrar. RSA es un ejemplo; se basa en la dificultad de factorizar números grandes, lo cual es difícil en promedio. Los problemas NP-completos solo garantizan la dificultad en el peor de los casos, no la dificultad promedio, lo que los hace inadecuados para la criptografía.

Desarrollo

El Lado Oscuro de las Dependencias de Software: Una Crisis de Confianza y Riesgos de Seguridad

2025-02-13
El Lado Oscuro de las Dependencias de Software: Una Crisis de Confianza y Riesgos de Seguridad

El desarrollo de software moderno depende en gran medida de bibliotecas de terceros, lo que crea riesgos significativos de seguridad. Este artículo analiza los tipos de dependencias de software, el papel de los administradores de paquetes y los problemas resultantes, como los ataques a la cadena de suministro, el malware y las puertas traseras. El autor destaca la importancia de las auditorías regulares de dependencias, el uso de firmas y fuentes verificadas, la implementación de políticas de seguridad y el empleo del principio de menor privilegio. Se sugieren estrategias como minimizar las dependencias y utilizar bibliotecas estándar bien mantenidas, concluyendo que aislar y contener el software no confiable es crucial para mitigar los riesgos.

Acelerando el FFI de CRuby con Compilación JIT

2025-02-12
Acelerando el FFI de CRuby con Compilación JIT

Este artículo explora el uso de la compilación Just-In-Time (JIT) para mejorar el rendimiento de la Interfaz de Función Externa (FFI) de Ruby. Las pruebas de rendimiento muestran las desventajas de rendimiento de FFI en comparación con las extensiones nativas. El autor presenta FJIT, una solución que utiliza RJIT y generación de código de máquina personalizado para generar código de máquina en tiempo de ejecución para llamar a funciones externas, evitando la sobrecarga de FFI. FJIT supera a las extensiones nativas en las pruebas, ofreciendo una alternativa de alto rendimiento para los desarrolladores de Ruby. Actualmente un prototipo que solo admite ARM64, se espera que FJIT se expanda en el futuro a otras arquitecturas y llamadas de funciones más complejas.

Desarrollo

Reproducibilidad de compilación de NixOS: Mejor de lo que piensas

2025-02-12

La reproducibilidad de compilación de NixOS ha sido durante mucho tiempo un punto de controversia. Si bien su modelo de administrador de paquetes funcional contribuye a la reproducibilidad de compilación, no garantiza la reproducibilidad bit a bit para todas las compilaciones. Un nuevo artículo de investigación estudia empíricamente Nixpkgs (la colección de paquetes de NixOS) durante seis años, revelando una tasa de reproducibilidad en constante aumento: del 69% en 2017 al 91% en abril de 2023. El estudio también identifica las causas prevalentes de no reproducibilidad, como fechas incrustadas, salidas uname, variables de entorno e ID de compilación. Estos hallazgos demuestran que, si bien Nixpkgs ya logra altas tasas de reproducibilidad, todavía hay margen de mejora abordando estos aspectos. Esta investigación es crucial para aumentar la confianza en el protocolo de sustitución de Nix e impulsar el desarrollo de soluciones de caché distribuidas basadas en la reproducibilidad de compilación.

(luj.fr)

yknotify: Un indicador de toque para YubiKey en macOS

2025-02-12
yknotify: Un indicador de toque para YubiKey en macOS

yknotify es una herramienta de línea de comandos para macOS que monitoriza los registros del sistema en busca de eventos asociados a una YubiKey que espera un toque, y luego solicita al usuario. Es compatible con FIDO2 y OpenPGP, identificando mensajes de registro específicos para determinar si se necesita un toque. Si bien existen falsos positivos raros, no se han notificado falsos negativos. Los usuarios pueden instalarlo y ejecutarlo; se pueden presentar incidencias si surgen problemas.

Desarrollo

Imapsync: Tu solución para la migración y copia de seguridad IMAP

2025-02-12

Imapsync es una herramienta de línea de comandos para transferencias IMAP incrementales y recursivas entre buzones, en cualquier lugar de internet o en tu red local. Es compatible con Windows, Linux y Mac OS X, y maneja de forma eficiente las transferencias interrumpidas. Imapsync no migra contactos ni calendarios, pero ofrece alternativas y un sólido soporte profesional. Desde €60, incluye una garantía de devolución del dinero de 30 días. En 2024, procesó más de 200 millones de transferencias de buzones, demostrando su potencia y su extensa base de usuarios.

arXivLabs: Creando nuevas funciones de arXiv con la colaboración de la comunidad

2025-02-12
arXivLabs: Creando nuevas funciones de arXiv con la colaboración de la comunidad

arXivLabs es un marco experimental que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en el sitio web. Los participantes abrazan los valores de arXiv de apertura, comunidad, excelencia y privacidad de los datos del usuario. ¿Tienes una idea para mejorar la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Eficiencia vs. Escalabilidad Horizontal: ¿Una Disyuntiva Inevitable?

2025-02-12
Eficiencia vs. Escalabilidad Horizontal: ¿Una Disyuntiva Inevitable?

Este artículo explora la tensión entre la eficiencia del software y la escalabilidad horizontal. El autor argumenta que el software optimizado para la escalabilidad suele tener un rendimiento deficiente en entornos de máquina única, y viceversa. Esto se debe a la Ley de Amdahl, la sobrecarga de coordinación y las limitaciones en los recursos compartidos. Los algoritmos eficientes suelen depender de supuestos sobre el sistema y el problema que pueden dejar de ser ciertos al escalar horizontalmente. El autor también analiza factores culturales y tipos de tareas que influyen en las decisiones, ilustrando con ejemplos como la base de datos Tigerbeetle y el GIL de CPython. En definitiva, una comprensión profunda del problema y del entorno es crucial para lograr una alta eficiencia y escalabilidad.

Desarrollo

Plugin LLM para ordenar líneas semánticamente

2025-02-12
Plugin LLM para ordenar líneas semánticamente

Este plugin de línea de comandos utiliza un Modelo de Lenguaje Grande (LLM) para ordenar semánticamente líneas de texto. Similar al comando GNU `sort`, pero en lugar del orden alfabético, clasifica las líneas en función de la relevancia semántica a una consulta dada. La entrada puede ser de archivos o de la entrada estándar. Los usuarios pueden personalizar el método de ordenación, el límite de salida, el modelo y la plantilla de prompt. Se proporciona una plantilla de prompt predeterminada, pero se admite la personalización. La instalación es sencilla: clonar el código, crear un entorno virtual e instalar las dependencias.

Adiós, CleanMyDrive: Un práctico script xbar

2025-02-12
Adiós, CleanMyDrive: Un práctico script xbar

Tras la interrupción de CleanMyDrive, el autor buscó una solución alternativa para eliminar los archivos de metadatos de macOS (._ y .DS_Store) que pueden causar confusión en otros dispositivos. El resultado: un script xbar conciso que ofrece un elemento en la barra de menú para expulsar, desmontar o expulsar todas las unidades (con o sin limpieza). Una solución simple y funcional para una molestia común de macOS.

Las 100 mejores charlas de ingeniería de software de 2024

2025-02-12
Las 100 mejores charlas de ingeniería de software de 2024

Esta lista recopila las 100 charlas de ingeniería de software más vistas de casi todas las principales conferencias del mundo en 2024. Los temas abarcan desde aplicaciones prácticas de modelos de lenguaje grandes y técnicas de alto rendimiento en Rust y Java, hasta las mejores prácticas en desarrollo web moderno e ingeniería de confiabilidad. Las charlas destacadas incluyen la visión perspicaz de Jodie Burchell sobre los LLMs y la explicación de Martin Thwaites sobre OpenTelemetry, ambas con más de 130.000 vistas. Esta lista seleccionada ofrece un recurso valioso para los ingenieros de software que buscan ampliar sus conocimientos y habilidades.

Syd: Un robusto kernel de sandbox de Linux basado en Rust

2025-02-12
Syd: Un robusto kernel de sandbox de Linux basado en Rust

Syd es un kernel de aplicación sólido como una roca, con licencia GPL-3, escrito en Rust para aplicaciones de sandbox en sistemas Linux (5.19 y superiores). Evolucionando desde una herramienta para detectar errores de compilación de paquetes en Exherbo Linux, Syd ahora proporciona un límite de seguridad robusto. Aprovechando las API modernas de Linux, elimina las vulnerabilidades TOCTTOU. A diferencia de otras herramientas de sandbox, Syd funciona sin privilegios adicionales, ofreciendo una interfaz simple para mecanismos complejos de sandbox. Las funciones incluyen sandbox de ruta, control de ejecución, sandbox de red y funciones avanzadas como sandbox de bloqueo y sandbox de proxy. Está diseñado para un aislamiento y seguridad robustos de las aplicaciones.

Desarrollo

PgAssistant: Tu asistente de rendimiento para PostgreSQL

2025-02-12
PgAssistant: Tu asistente de rendimiento para PostgreSQL

PgAssistant es una herramienta de código abierto diseñada para ayudar a los desarrolladores a comprender y optimizar el rendimiento de su base de datos PostgreSQL. Ofrece análisis del comportamiento de la base de datos, optimización del esquema y gestión de la biblioteca de consultas SQL. La integración con OpenAI o LLMs locales ayuda a optimizar las consultas SQL. Una interfaz fácil de usar simplifica la operación, y un archivo JSON gestiona la biblioteca de consultas SQL. También integra PGTune para el ajuste de parámetros de la base de datos y la generación de archivos Docker Compose.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-02-12
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

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

Desarrollo

Compilar o no compilar consultas de bases de datos: una inmersión profunda

2025-02-12

Este artículo explora las compensaciones de compilar consultas de bases de datos. Los intérpretes de consultas tradicionales luchan con la velocidad de los modernos SSD NVMe, lo que lleva a importantes cuellos de botella de rendimiento. La compilación de consultas ofrece mejoras sustanciales de velocidad, especialmente para cargas de trabajo OLAP. Sin embargo, el tiempo de compilación y los desafíos de optimización crean acantilados de rendimiento impredecibles. Los intérpretes vectorizados, a la inversa, son más fáciles de construir, depurar y ofrecen un rendimiento más consistente. El artículo contrasta esto con los motores de navegador JavaScript/Wasm, que utilizan un enfoque de compilación por niveles (intérprete, compilador de línea base, compilador optimizador) para lograr una compensación de rendimiento suave. El autor propone un enfoque similar para las bases de datos, sugiriendo un compilador de línea base como componente clave. Se exploran varias estrategias de implementación, incluyendo 'copiar y pegar' y la compilación Wasm. En última instancia, el artículo argumenta que construir un compilador de línea base no es prohibitivamente difícil y ofrece perspectivas sobre las direcciones futuras.

La Trinidad de Unix: dmr, kt y bwk

2025-02-12

En la historia de Unix, las iniciales dmr, kt y bwk representan figuras legendarias: Dennis M. Ritchie (dmr), co-creador de Unix y del lenguaje de programación C; Ken Thompson (kt), co-creador de Unix junto a Ritchie; y Brian W. Kernighan (bwk), coautor de programas y libros influyentes de Unix, como "El lenguaje de programación C" y "El entorno de programación UNIX". Estos tres gigantes moldearon las bases de Unix e impactaron profundamente la ciencia de la computación moderna.

Desarrollo

Programación intencional en Joy: Introspección con un solo operador

2025-02-12

Este artículo explora la programación intencional en Joy, un lenguaje de programación funcional basado en pila. Joy en sí es extensional, sin la capacidad de 'diseccionar' bloques de código. El autor propone dos operadores intencionales: 'map' y 'quota', demostrando su expresabilidad mutua. Aunque son equivalentes en comportamiento, los programas intencionales pueden distinguir un solo operador de un subprograma con múltiples comandos. Esto abre caminos para explorar nociones más débiles de equivalencia en lenguajes intencionales y demuestra un enfoque robusto para introducir la intencionalidad en lenguajes minimalistas como Joy.

Mikey: Grabadora de Audio, Transcriptor y Generador de Notas de Reunión

2025-02-12
Mikey: Grabadora de Audio, Transcriptor y Generador de Notas de Reunión

Mikey es una aplicación para grabar audio, transcribirlo usando la API Groq y generar automáticamente notas de reunión. Su interfaz gráfica de usuario amigable con PyQt proporciona una experiencia fluida para administrar grabaciones, ver transcripciones y explorar sesiones guardadas. Utiliza pyaudiowpatch para la grabación de audio, la API Groq para la transcripción y un modelo conversacional para generar notas de reunión concisas. Se puede crear un ejecutable independiente para facilitar la distribución.

Skies-ADSB v2.0: Tráfico aéreo 3D en tiempo real en tu navegador

2025-02-12
Skies-ADSB v2.0: Tráfico aéreo 3D en tiempo real en tu navegador

Skies-ADSB transforma tu navegador en una pantalla de tráfico aéreo 3D en tiempo real. Usando datos ADS-B de un receptor RTL-SDR, puedes explorar el tráfico aéreo local, el espacio aéreo circundante y la geografía con mapas 3D personalizables. Construido con JavaScript, HTML5, CSS, Python 3 y WebGL (Three.js), se ejecuta en los principales navegadores modernos. La versión 2.0 incluye cambios importantes con respecto a la versión 1.x, lo que requiere una nueva instalación. Los usuarios pueden reportar errores, solicitar funciones y sugerir mejoras a través del rastreador de problemas. El proyecto agradece a Andre Thais CFI y Frank E. Hernandez por sus contribuciones y utiliza datos de mapas de dominio público de Natural Earth y OpenStreetMap.

El Nudo Gordiano de los Cambios de Esquema Online y las Claves Foráneas en MySQL

2025-02-12
El Nudo Gordiano de los Cambios de Esquema Online y las Claves Foráneas en MySQL

Esta publicación analiza los desafíos inherentes a realizar cambios de esquema online en MySQL, particularmente cuando se trata de tablas vinculadas por relaciones de clave foránea. El autor analiza las limitaciones de herramientas existentes, como pt-online-schema-change y gh-ost, destacando las complejidades y riesgos involucrados en la alteración de tablas padre. Alterar una tabla padre requiere alteraciones simultáneas de todas las tablas hijas, creando un proceso frágil con tolerancia mínima a errores. Un solo fallo puede provocar inconsistencias de datos o interrupciones. El autor concluye que los cambios de esquema online que involucran restricciones de clave foránea en tablas grandes son prácticamente inviables.

Guía Definitiva de Herramientas de Vigilancia de Archivos: Una Visión General Exhaustiva

2025-02-12

Este artículo proporciona una lista exhaustiva de herramientas de vigilancia de archivos, cubriendo diversos lenguajes de programación, licencias y funcionalidades. Desde antiguos envoltorios inotify hasta herramientas modernas en Rust y Python como watchexec, el artículo compara meticulosamente las ventajas y desventajas de cada herramienta, las dependencias y el soporte de paquetes Debian. El autor también comparte experiencias personales y desafíos encontrados, como el uso de unidades systemd .path y las limitaciones de watchman. Tanto desarrolladores como administradores de sistemas encontrarán este recurso invaluable para seleccionar la herramienta de vigilancia de archivos adecuada a sus necesidades.

Clones superficiales de Git: problemas de rendimiento y la optimización de profundidad 2

2025-02-12
Clones superficiales de Git: problemas de rendimiento y la optimización de profundidad 2

Los clones superficiales de Git (`--depth 1`) pueden afectar significativamente el rendimiento en el primer push. Esto se debe a que los clones superficiales marcan artificialmente algunos commits como commits raíz, lo que impide que el servidor utilice optimizaciones y requiere la transmisión de toda la instantánea del commit. Sin embargo, usar clones profundos (`--depth 2`) preserva un historial completo de commits, permitiendo que el servidor utilice optimizaciones incluso en el primer push, reduciendo la transferencia de datos y mejorando significativamente la velocidad del push. Los push posteriores no se ven afectados.

Desarrollo clon superficial

Arreglar errores de concurrencia en el plugin AWS SSM permite SSH remoto de VS Code

2025-02-12
Arreglar errores de concurrencia en el plugin AWS SSM permite SSH remoto de VS Code

Un recién graduado de Stanford en Formal, mientras solucionaba un problema de un cliente con la conexión SSH remota de Visual Studio Code a instancias AWS EC2 para aprendizaje automático, inesperadamente descubrió y corrigió varios errores de concurrencia en la biblioteca de referencia de AWS SSM. El problema surgió de la falta de soporte de reenvío de puertos TCP/IP en el Conector Formal, lo que impedía que VS Code inicializara correctamente el entorno de desarrollo remoto. La solución implicó inmersiones profundas en los protocolos SSH y SSM, resolviendo finalmente las carreras de datos y los problemas de numeración de secuencias mediante la modificación del plugin AWS Session Manager. Esto ahora permite conexiones SSH remotas seguras de VS Code a través del Conector Formal.

Comunidad Accidental: Cómo una Página Web Estática Desató el Movimiento Local-First

2025-02-12
Comunidad Accidental: Cómo una Página Web Estática Desató el Movimiento Local-First

Un antiguo ingeniero de Facebook, mientras navegaba por el mundo, desarrolló TinyBase, un almacén de datos local-first. Luego creó un sitio web estático simple, localfirstweb.dev, para organizar y promover el concepto. Inesperadamente, el sitio se volvió viral, atrayendo a desarrolladores y dando lugar a una próspera comunidad Discord creada por Yonatan, un graduado de la Harvard Business School. Esto demuestra cómo una acción aparentemente pequeña puede crear un poderoso efecto dominó, destacando el potencial del movimiento de desarrollo de software local-first.

Desarrollo

De HTML manual a Zola: Mi viaje de migración de blog

2025-02-12

Clayton Ramsey comparte su experiencia migrando su blog personal de HTML codificado manualmente al generador de sitios estáticos Zola. Inicialmente, encontró que la codificación manual de HTML era manejable, pero las tareas repetitivas de manejar fórmulas matemáticas (usando MathML), el resaltado de código y el mantenimiento de las barras de navegación se volvieron abrumadoras. Cambió a Zola, utilizando un script de Python para convertir LaTeX a MathML, automatizando finalmente el proceso de implementación. Si bien encontró desafíos con la configuración YAML de GitHub Actions, descubrió que la migración mejoró significativamente la eficiencia y redujo la barrera para escribir nuevas publicaciones.

Desarrollo migración de blog

Jujutsu: Un Sistema de Control de Versiones Revolucionario

2025-02-12
Jujutsu: Un Sistema de Control de Versiones Revolucionario

Jujutsu es un nuevo sistema de control de versiones que toma las mejores características de Git, Mercurial y Darcs, y agrega varias características innovadoras. Trata la copia de trabajo como un commit, simplificando el modelo de datos y los algoritmos; un registro de operaciones y la capacidad de deshacer facilitan la depuración; el rebase automático y la resolución de conflictos mejoran la eficiencia del flujo de trabajo; y admite la replicación concurrente, lo que lo hace seguro para usar con sistemas de archivos distribuidos. Si bien aún se encuentra en fase experimental, Jujutsu muestra un inmenso potencial para convertirse en un sistema de control de versiones líder de próxima generación.

Desarrollo

JetBrains cambia de rumbo en las herramientas Kotlin Multiplatform: Adiós al IDE independiente

2025-02-12
JetBrains cambia de rumbo en las herramientas Kotlin Multiplatform: Adiós al IDE independiente

JetBrains anunció un cambio de dirección para sus herramientas Kotlin Multiplatform (KMP). En lugar de un IDE independiente, se centrarán en mejorar el soporte KMP en la plataforma IntelliJ (IntelliJ IDEA y Android Studio). El soporte para KMP en su IDE Fleet se eliminará gradualmente en los próximos tres meses. Este cambio prioriza la retroalimentación del usuario y aprovecha los avances como la IA para mejorar la experiencia del desarrollador.

Migración de Compras de Cuenta Apple: Una Guía Completa

2025-02-12

Esta guía detalla cómo migrar aplicaciones, música y otro contenido comprado de una cuenta Apple secundaria a una principal. Se deben cumplir varios requisitos previos, incluyendo: ambas cuentas deben ser distintas, tener habilitada la autenticación de dos factores, estar configuradas en la misma región y la cuenta secundaria debe tener un saldo cero sin alquileres ni pedidos anticipados pendientes. El proceso de migración se realiza en la configuración de tu iPhone o iPad. Después de esto, la cuenta secundaria ya no podrá usarse para medios y compras. La guía también enumera varias razones por las que la migración podría fallar, como tipos de cuenta incompatibles o un estado de cuenta inusual, lo que la convierte en un recurso muy útil.

1 2 162 163 164 166 168 169 170 214 215