Category: Desarrollo

ISO 8583: El lenguaje secreto de las tarjetas de crédito

2024-12-18
ISO 8583: El lenguaje secreto de las tarjetas de crédito

Cada vez que usas tu tarjeta o pagas en línea, estás interactuando con el protocolo ISO 8583. Este estándar, definido en 1987, define el formato de los mensajes de transacción en tiempo real entre las redes bancarias. Incluye campos principales como indicadores de tipo de mensaje, mapas de bits y elementos de datos, pero las redes varían en sus extensiones y métodos de serialización, lo que lleva a desafíos de compatibilidad. Este artículo analiza las complejidades de la estructura del ISO 8583, la codificación de campos, el manejo de mensajes anidados y demuestra cómo construir un analizador ISO 8583 robusto para manejar variaciones de red y escenarios de error.

Actualización de Castle Game Engine: Objetivo web, compatibilidad con IFC y colaboración con mORMot

2024-12-18
Actualización de Castle Game Engine: Objetivo web, compatibilidad con IFC y colaboración con mORMot

El equipo de Castle Game Engine anunció actualizaciones que incluyen un objetivo web (usando JS+WebAssembly para la ejecución de juegos en el navegador), compatibilidad con el formato IFC (Industry Foundation Classes) y edición colaborativa usando mORMot2. El objetivo web actualmente maneja funciones básicas y se está mejorando el soporte WebGL. La compatibilidad con IFC permite cargar, modificar y guardar modelos, con mejoras futuras planificadas. La edición colaborativa aún está en desarrollo, pero ya permite la modificación del mundo 3D y la sincronización del servidor.

Brisk: Un framework GUI C++20 multiplataforma para renderizado de alto rendimiento

2024-12-18
Brisk: Un framework GUI C++20 multiplataforma para renderizado de alto rendimiento

Brisk es un framework GUI C++20 moderno y multiplataforma diseñado para crear aplicaciones receptivas y de alto rendimiento con facilidad. Aprovechando una arquitectura MVVM y capacidades reactivas, Brisk cuenta con renderizado escalable acelerado por GPU, lo que lo hace ideal para proyectos con uso intensivo de gráficos. Admite varios backends (D3D11, D3D12, Vulkan, OpenGL, Metal, WebGPU) y presenta GUI declarativa, hojas de estilo y soporte completo para Unicode. Actualmente en desarrollo activo, se agradecen las contribuciones.

Desarrollo Framework GUI

Hadrius busca Diseñador/a UI/UX fundador/a, hasta US$ 150.000

2024-12-18
Hadrius busca Diseñador/a UI/UX fundador/a, hasta US$ 150.000

Hadrius, una startup fintech respaldada por Y Combinator, busca un Diseñador/a UI/UX fundador/a. Están utilizando IA para automatizar la administración interna de empresas financieras, previniendo futuras crisis financieras. El puesto es a tiempo completo en la ciudad de Nueva York, ofreciendo un salario de US$ 80.000 a US$ 150.000 y opciones sobre acciones del 0,01% al 0,15%. El candidato ideal es un diseñador altamente cualificado con experiencia en una empresa tecnológica centrada en el diseño, experto en Figma y apasionado por la misión de Hadrius. El equipo cuenta con ingenieros de Google, Chime y otras empresas líderes, y la empresa está experimentando un crecimiento hiperacelerado, duplicando sus ingresos cada tres meses.

Desarrollo Diseño UI/UX

Herramientas de Poder para el Liderazgo: SQL, Estadística y Decisiones Basadas en Datos

2024-12-18
Herramientas de Poder para el Liderazgo: SQL, Estadística y Decisiones Basadas en Datos

Este artículo explora cómo los líderes de ingeniería pueden aprovechar SQL y métodos estadísticos para la toma de decisiones basada en datos. El autor destaca que muchos líderes de ingeniería no se sienten cómodos extrayendo e interpretando datos, recomendando aprender SQL (por ejemplo, usando DuckDB) y herramientas estadísticas. El artículo abarca estadísticas descriptivas, distribuciones, intervalos de confianza y razonamiento bayesiano, demostrando cómo calcular intervalos de confianza analizando datos de seguimiento de errores de Firefox, usando simulaciones de Monte Carlo para la estimación del tiempo del proyecto y aplicando inferencia bayesiana para actualizar las probabilidades de finalización del proyecto. El artículo enfatiza la importancia de las habilidades de análisis de datos para los líderes de ingeniería, permitiendo predicciones y decisiones más precisas.

Canva reduce los tiempos de compilación de CI de horas a menos de 30 minutos

2024-12-18
Canva reduce los tiempos de compilación de CI de horas a menos de 30 minutos

El equipo de ingeniería de Canva redujo drásticamente los tiempos de compilación de integración continua (CI), de una media de 80 minutos a menos de 30 minutos, a veces incluso a 15. Esto se logró mediante un enfoque multifacético. Identificaron y resolvieron problemas de caché de Bazel, optimizaron las estructuras de pipeline, mejoraron los checkouts y el caché del repositorio Git y utilizaron la ejecución remota de compilación de Bazel (RBE). Experimentaciones extensas, incluyendo pruebas de diferentes tipos de instancias y ajustes en la configuración de Bazel, jugaron un papel crucial. Una serie de mejoras incrementales aumentaron significativamente la eficiencia de la CI, redujeron costos y mejoraron la experiencia del desarrollador.

Proyecto GitHub ted: Un editor de archivos basado en Máquina de Turing

2024-12-18
Proyecto GitHub ted: Un editor de archivos basado en Máquina de Turing

ted es una herramienta de línea de comandos escrita en Go que permite a los usuarios editar archivos según las reglas de una máquina de Turing proporcionada. Inspirada en la necesidad del autor de procesar archivos de registro, ted utiliza máquinas de estado para extraer precisamente la información deseada. Admite varias operaciones, incluyendo la coincidencia de expresiones regulares, la ejecución de comandos sed, la asignación de variables, la captura y el control de salida, y ofrece funciones como la captura de varias líneas, grupos de captura de regex y el movimiento de cabeza/cola de archivo.

Aplicación Homescreen: Redefiniendo la experiencia de la pantalla de inicio

2024-12-18

Homescreen es una aplicación diseñada para revolucionar la experiencia de la pantalla de inicio de tu teléfono. Rompiendo las limitaciones de los escritorios tradicionales de teléfonos, ofrece a los usuarios una forma más personalizada, eficiente y conveniente de interactuar con sus dispositivos. Los usuarios pueden personalizar widgets, temas y diseños para crear una pantalla de inicio única, aumentando la productividad y el disfrute. Homescreen no es solo un simple reemplazo del escritorio; es un enfoque renovador de cómo usamos nuestros teléfonos.

Recuperando Datos del Sensor: Liberándose de la Nube

2024-12-18
Recuperando Datos del Sensor: Liberándose de la Nube

Este artículo describe cómo un ingeniero de software embebido recuperó el control de los datos de un sensor de radón conectado a la nube, eludiendo los servidores del fabricante. Al analizar el tráfico de red, el ingeniero descubrió una vulnerabilidad donde el sensor no validaba correctamente los certificados del servidor. Utilizando un servidor DNS local y un servidor web Python personalizado, el ingeniero interceptó y leyó con éxito los datos sin procesar del sensor. Esto otorga acceso programático y asegura la continuidad del funcionamiento incluso si los servidores del fabricante fallan. El artículo destaca la importancia de la seguridad de red y los riesgos de privacidad asociados al tráfico DNS.

Extensión de navegador 'refoorest' acusada de esquema fraudulento de plantación de árboles

2024-12-18
Extensión de navegador 'refoorest' acusada de esquema fraudulento de plantación de árboles

Una investigación sobre la extensión de navegador refoorest y el SDK Impact Hero, de Colibri Hero, revela un esquema engañoso de marketing de afiliados disfrazado como una iniciativa de plantación de árboles. La extensión tergiversa el número de árboles plantados, explota datos del usuario mediante reseñas y compartidos incentivizados, y el SDK obtiene permisos excesivos del usuario sin la debida divulgación, violando las políticas de la Chrome Web Store. El artículo expone un patrón de prácticas opacas, incluyendo testimonios falsos, secreto financiero y vulnerabilidades de seguridad de datos, generando serias dudas sobre las afirmaciones de la empresa sobre responsabilidad ambiental.

Desarrollo fraude de datos

Optimizando el JSON de Ruby: Parte 1

2024-12-18

Esta entrada de blog detalla cómo el autor optimizó la gema `json` de Ruby para convertirla en uno de los analizadores y generadores JSON más rápidos. En lugar de técnicas complejas, se aplicaron optimizaciones sencillas basadas en el perfilado, como evitar comprobaciones redundantes, priorizar las condiciones más baratas, reducir los costes de configuración y utilizar tablas de búsqueda. Estas mejoras se aplican tanto al código C como al código Ruby. Las optimizaciones aumentaron significativamente el rendimiento de la gema `json`, haciéndola competitiva con alternativas como `oj`, reduciendo la necesidad de parches de mono y solucionando problemas de estabilidad y compatibilidad asociados con `oj`.

ImPlot3D: Biblioteca de Trazado 3D de Modo Inmediato de Alto Rendimiento Basada en Dear ImGui

2024-12-18
ImPlot3D: Biblioteca de Trazado 3D de Modo Inmediato de Alto Rendimiento Basada en Dear ImGui

ImPlot3D es una biblioteca de código abierto basada en Dear ImGui, que ofrece a los desarrolladores una forma fácil de usar y de alto rendimiento para crear gráficos 3D. Independiente de ImPlot, ImPlot3D admite varios tipos de gráficos 3D, incluyendo gráficos de líneas, gráficos de dispersión, gráficos de superficie y gráficos de malla, con rotación, panorámica y zoom interactivos. Su API intuitiva, similar a Dear ImGui e ImPlot, permite una integración rápida y la personalización de marcadores, líneas, superficies y estilos de malla, con opciones para mapas de color integrados o personalizados. Una aplicación de demostración completa ayuda a los usuarios a aprender y utilizar sus funciones.

Desarrollo trazado 3D

Intérprete Metacircular Python: Implementando un Intérprete Python en Python

2024-12-18

Este artículo muestra cómo crear un intérprete metacircular Python (MCI) usando Python mismo. Un MCI es un intérprete escrito en el lenguaje que interpreta, permitiendo la implementación de un subconjunto o superconjunto del lenguaje anfitrión. El autor detalla la implementación del MCI, cubriendo el análisis del código fuente Python, la construcción de un Árbol de Sintaxis Abstracto (AST), el recorrido del AST y la ejecución de instrucciones, y conceptos cruciales como el ámbito, las tablas de símbolos y el manejo de instrucciones de flujo de control (por ejemplo, bucles while e instrucciones if). Este ejemplo proporciona una comprensión profunda de la mecánica del intérprete y muestra cómo aprovechar el módulo AST de Python y las funciones integradas para construir intérpretes más complejos.

Notebooks Jupyter: Pruebas de extremo a extremo y documentación en uno

2024-12-18

Durante el desarrollo de una biblioteca de computación cuántica, el autor aprovechó los Notebooks Jupyter como guías de usuario y pruebas de extremo a extremo. Al leer variables de entorno (como SERVER_URL) dentro de los notebooks, logró la parametrización, permitiendo la ejecución por usuarios y pipelines de CI/CD automatizados. Se exploraron dos métodos para ejecutar notebooks: nbclient por simplicidad, y nbconvert/jq para mayor control pero mayor complejidad. El autor optó por la facilidad de uso de nbclient, integrando eficazmente el mantenimiento de la documentación y las pruebas de código, asegurando la integridad de ambos con cada solicitud de fusión.

Domando el Caos: Centralización y Estructuración del Manejo de Errores en Go

2024-12-18
Domando el Caos: Centralización y Estructuración del Manejo de Errores en Go

Este artículo describe el proceso del autor para abordar los crecientes problemas de manejo de errores en un proyecto Go en expansión. Inicialmente, el enfoque simple para el manejo de errores se convirtió en un caos con registros confusos y errores intratables. Para solucionarlo, se diseñó e implementó un nuevo marco de manejo de errores. Este marco emplea un sistema centralizado y estructurado que utiliza códigos de espacio de nombres para hacer que los errores sean significativos y rastreables. El núcleo es una declaración centralizada de códigos de error; cada capa de servicio devuelve solo sus propios códigos de espacio de nombres, enriquecidos con información de contexto. El artículo explica a fondo las decisiones de diseño, la implementación, las lecciones aprendidas y la estrategia de migración, ofreciendo una valiosa experiencia práctica.

Ergo: Un Servidor IRC Moderno Escrito en Go

2024-12-18
Ergo: Un Servidor IRC Moderno Escrito en Go

Ergo es un servidor IRC moderno escrito en Go, diseñado para ser fácil de configurar y usar. Combina las características de un ircd, un framework de servicios y un bouncer (gestión de cuentas integrada, almacenamiento de historial y funcionalidad de bouncer). Cuenta con soporte de vanguardia para IRCv3 y es altamente personalizable a través de una configuración YAML rehashable. Las características clave incluyen servicios integrados (NickServ, ChanServ, HostServ), soporte nativo para TLS/SSL, autenticación SASL, soporte para LDAP y características avanzadas de seguridad y privacidad.

Desarrollo

Lanzamiento del ecualizador de 5 bandas de código abierto a5eq.lv2

2024-12-18
Lanzamiento del ecualizador de 5 bandas de código abierto a5eq.lv2

ashafq ha lanzado a5eq.lv2, un plugin de ecualizador de 5 bandas LV2 de código abierto. Este plugin incluye una repisa baja, tres filtros de pico y una repisa alta, diseñados para la escultura de audio precisa tanto para ingenieros de audio aficionados como profesionales. Cuenta con coeficientes de filtro de alta precisión, procesamiento estéreo y una interfaz fácil de usar. Es compatible con cualquier software host que admita LV2, como Ardour y Audacity, y se instala y utiliza fácilmente mediante la línea de comandos. Los usuarios pueden enviar incidencias o contribuir con código a través de GitHub.

Editor de Texto Adaptable 'ad': Combinando Vim y Acme

2024-12-18
Editor de Texto Adaptable 'ad': Combinando Vim y Acme

ad es un editor de texto novedoso que combina la interfaz de edición modal de Vim y Kakoune con el enfoque de extensibilidad de Acme de Plan9. ad permite a los usuarios ejecutar texto y sirve como un entorno de pruebas para experimentar con la implementación de diversas funciones de editores de texto. Actualmente, ad es lo suficientemente estable y completo como para probarlo, aunque la documentación es escasa y pueden existir errores. La filosofía de diseño de ad combina la edición modal de Vim, el mini-buffer de Emacs y los comandos de edición y extensibilidad de Acme, con el objetivo de crear un entorno de edición cómodo que admita la interacción directa con herramientas y programas externos.

Generación rápida de texturas: un tutorial sobre texturas XOR

2024-12-18

Este tutorial explica cómo generar una textura XOR, una textura simple creada mediante la operación XOR de las coordenadas x e y de cada píxel. Si bien no es ideal para juegos o arte, es perfecta para probar mapeadores de texturas. El artículo detalla la operación XOR, analiza el efecto del tamaño de la textura en el brillo del color y muestra cómo generar texturas similares utilizando los operadores AND y OR. También se presenta un ejemplo de textura 3D utilizando XOR.

dLine: Herramienta de calendario en terminal para una gestión eficiente de la agenda

2024-12-18
dLine: Herramienta de calendario en terminal para una gestión eficiente de la agenda

dLine es una herramienta de línea de comandos que presenta datos importantes en formato de calendario directamente en su terminal. Monitoriza fechas críticas, simplifica la adición de eventos a través de APIs y calcula periodos de tiempo para varios tipos de eventos. Diseñada para desarrolladores, dLine agiliza la gestión de eventos y la navegación de la agenda sin salir del terminal. Cuenta con vistas dinámica y estática, una calculadora de eventos y sólidas capacidades de gestión de datos, incluyendo añadir, eliminar, ver y limpiar eventos. dLine también admite esquemas de color personalizados, traducciones de usuarios e integración con Google Calendar.

OpenAuth: Servidor OAuth 2.0 universal y autohospedado

2024-12-17
OpenAuth: Servidor OAuth 2.0 universal y autohospedado

OpenAuth es un proveedor de autenticación universal, basado en estándares y de código abierto. Se puede implementar como un servicio independiente o integrarlo en aplicaciones existentes; es agnóstico de framework y funciona en Node.js, Bun, AWS Lambda o Cloudflare Workers. Cumpliendo con la especificación OAuth 2.0, OpenAuth ofrece una IU personalizable y con temas. A diferencia de la mayoría de las soluciones de autenticación de código abierto que son bibliotecas, OpenAuth es un servidor centralizado diseñado para facilitar el autohospedaje en su infraestructura. Intencionalmente omite la gestión de usuarios, proporcionando en su lugar callbacks para la búsqueda/creación de usuarios personalizados. El almacenamiento de datos es mínimo (tokens de actualización, etc.), utilizando un almacenamiento KV simple (Cloudflare KV, DynamoDB). Una IU preconstruida está disponible, pero puede personalizarla o reemplazarla totalmente. Creado por el equipo SST, OpenAuth simplifica la autenticación para sus aplicaciones.

IncludeOS: Ejecuta aplicaciones en la nube con cero sobrecarga

2024-12-17

IncludeOS es un sistema operativo ligero que permite ejecutar tu aplicación en la nube sin un sistema operativo tradicional. Integra la funcionalidad del sistema operativo directamente en tu aplicación, creando máquinas virtuales de alto rendimiento, seguras y eficientes en recursos. Las aplicaciones IncludeOS se inician en decenas de milisegundos y requieren solo unos pocos megabytes de disco y memoria. Las herramientas simples de línea de comandos facilitan la construcción e implementación, y hay muchos ejemplos y documentación para ayudar a los desarrolladores a comenzar rápidamente.

SeleniumBase: Un potente framework de automatización web

2024-12-17
SeleniumBase: Un potente framework de automatización web

SeleniumBase es un robusto framework en Python para automatización web, pruebas y elusión de detección de bots. Construido sobre Selenium WebDriver e integrado con herramientas de prueba como pytest, ofrece una sintaxis limpia y amplias funciones, como esperas automáticas para elementos de la página, generación de informes de pruebas, un panel y soporte para múltiples navegadores y sistemas operativos. SeleniumBase también incluye modos como el Modo UC y el Modo CDP para una mayor discreción y fiabilidad, junto con ejemplos y documentación exhaustivos para una rápida adopción.

Cerbos utiliza CRDT para un Playground colaborativo

2024-12-17
Cerbos utiliza CRDT para un Playground colaborativo

Cerbos ha creado un entorno de IDE y pruebas colaborativo, el "Playground", para simplificar la lógica de autorización compleja. Para habilitar una colaboración perfecta, utilizan Tipos de Datos Replicados sin Conflictos (CRDT), que resuelven automáticamente los conflictos en sistemas distribuidos. El artículo explora los CRDT, comparando bibliotecas populares como Yjs y Automerge, y analiza los desafíos y las posibilidades de construir un CRDT personalizado. Cerbos integra los CRDT con una arquitectura de back-end para front-end (BFF), utilizando WebSockets para la transferencia de datos e IndexedDB para la persistencia local, creando una plataforma colaborativa robusta. También se abordan los desafíos de la colaboración global y la persistencia de datos.

Haciendo el Rust Inseguro un Poco Más Seguro: Herramientas para Verificar Código Inseguro, Incluyendo Bibliotecas en C y C++

2024-12-17
Haciendo el Rust Inseguro un Poco Más Seguro: Herramientas para Verificar Código Inseguro, Incluyendo Bibliotecas en C y C++

La popularidad de Rust se debe a su capacidad para eliminar errores de memoria y concurrencia en tiempo de compilación, pero sus bloques de código `unsafe` pueden eludir estas comprobaciones. Este artículo explora herramientas para verificar código Rust inseguro, incluyendo código llamado desde bibliotecas C o C++. Presenta herramientas de detección de errores en tiempo de ejecución —sanitizadores— y Miri, un intérprete que encuentra comportamientos indefinidos de forma determinista. Los sanitizadores detectan accesos de memoria fuera de límites, carreras de datos y más, mientras que Miri proporciona informes de errores más precisos con fragmentos de código. Sin embargo, Miri actualmente no admite código llamado a través de FFI desde C/C++, siendo necesario el uso de sanitizadores de compilador C/C++ en esos casos. Estas herramientas mejoran la seguridad y confiabilidad del código Rust, incluso al tratar con código `unsafe` o interactuar con bibliotecas C/C++.

Desarrollo Errores de Memoria

BYOJS: Abrace JavaScript nativo para el desarrollo web

2024-12-17

El proyecto BYOJS defiende la construcción de aplicaciones web con JavaScript core, en lugar de depender de frameworks pesados. Si bien los frameworks y lenguajes como TypeScript son populares, BYOJS argumenta que construir aplicaciones web eficientes usando el lenguaje JS core es un arte perdido. Incentiva el uso de bibliotecas débilmente acopladas en lugar de frameworks fuertemente acoplados, abogando por elegir la herramienta menos potente que realice la tarea y priorizando el código conciso. El proyecto proporciona utilidades útiles, como una API simple de almacenamiento clave-valor, un emisor de eventos asíncronos, un contenedor modal y más. Todo el código tiene licencia MIT.

Desarrollo Bibliotecas ligeras

Avance en Seguridad de Red: Atrapar Intrusos en una 'Red del Infierno'

2024-12-17
Avance en Seguridad de Red: Atrapar Intrusos en una 'Red del Infierno'

Investigadores del equipo SensorFu de la Universidad de Oulu han desarrollado un nuevo sistema de defensa de seguridad de red inspirado en la técnica LaBrea tarpit. El sistema intercepta solicitudes ARP y retrasa las respuestas SYN-ACK, creando multitud de dispositivos virtuales en la red para confundir a los intrusos. Esto obliga a los atacantes a perder un tiempo significativo identificando dispositivos reales, proporcionando a los administradores tiempo crucial para solucionar vulnerabilidades. Las pruebas demostraron que el sistema extiende los tiempos de escaneo a horas, reduciendo drásticamente las tasas de éxito de los ataques. Ligero, eficiente y fácil de implementar, este sistema ofrece una protección robusta de red para organizaciones de todos los tamaños.

Surfer Protocol: Framework de código abierto para el control de datos personales

2024-12-17
Surfer Protocol: Framework de código abierto para el control de datos personales

Surfer Protocol es un framework de código abierto que permite a los usuarios exportar y construir aplicaciones basadas en sus datos personales. Abordando el problema de los datos aislados en múltiples plataformas, Surfer Protocol ofrece una solución. Incluye una aplicación de escritorio para exportar datos de varias aplicaciones y servicios, y un SDK de Python para construir aplicaciones usando estos datos. Los usuarios pueden aprovechar Surfer Protocol para crear modelos de IA personalizados, recuperar el control de sus datos de las grandes empresas tecnológicas o dejar un legado digital.

Hooklistener: Herramienta de depuración y prueba visual de Webhook

2024-12-17
Hooklistener: Herramienta de depuración y prueba visual de Webhook

Hooklistener es una herramienta online para visualizar, depurar y probar webhooks. Ofrece inspección de carga útil en tiempo real, capacidades de prueba local, programación personalizada, alertas accionables y funciones de colaboración en equipo. Los usuarios pueden configurar fácilmente puntos finales, recibir y analizar webhooks y automatizar flujos de trabajo con tareas programadas. Hooklistener ofrece planes gratuitos y de pago para satisfacer diversas necesidades, lo que permite a los desarrolladores gestionar y depurar webhooks de forma más eficiente.

Desarrollo Depuración Prueba
1 2 206 207 208 210 212 213 214 215