FOTW episodio 5: herramientas para resolver dependencias circulares, JMeter, Microsoft Clarity y BYTETrack

Flux IT
Flux IT Thoughts

--

Refes, experimentación y cosas nuevas van y vienen entre fluxers como parte de nuestra rutina diaria. Fluxers on the Watch es la forma en que compartimos esas refes con vos. Conocé la quinta recopilación de nuestra comunidad de watchers!

Herramientas para resolver dependencias circulares

En cualquier tipo de desarrollo de software (front end, web, back end, mobile, embedded, etc.), usamos SDKs/libs como dependencias, tanto de terceras partes (para no reinventar la rueda) o propias, para modularizar y reutilizar piezas de software preexistentes. Sin embargo, a medida que un proyecto crece y necesita cada vez más dependencias, pueden generarse interdependencias circulares, lo cual trae consigo problemas.

Les compartimos algunas herramientas para visualizar dependencias de proyectos que, entre otros features, permiten detectar y corregir estas dependencias circulares:

Para aplicaciones basadas en Node/NPM:

Con Madge se puede armar un gráfico de dependencias entre módulos y también detectar fácilmente si hay alguna dependencia circular.

Por ejemplo:

❯ madge — circular .

Processed 19 files (7.5s) (3 warnings)

✖ Found 1 circular dependency!

1) Algebra.js > Calculus.js

Y cuando lo resolvés…

Processed 19 files (8.5s) (1 warning)

✔ No circular dependency found!

Surfear más:

https://github.com/pahen/madge

Para proyectos mobile nativos iOS:

iOS Objective-C:

https://github.com/PaulTaykalo/objc-dependency-visualizer

Swift:

https://github.com/PrzemyslawCholewaDev/swift-dependency-visualizer

También Periphery:

https://github.com/peripheryapp/periphery

Para desarrollos en Python:

Pydeps:

https://github.com/thebjorn/pydeps

JMeter: un aliado para asegurar la calidad

JMeter es una herramienta de prueba de software de código abierto que nos permite simular escenarios de personas usuarias concurrentes, evaluar el rendimiento de las aplicaciones e identificar cuellos de botella. Se puede usar para probar una amplia gama de aplicaciones ya sean web, APIs, mainframes, entre otras, sin comprometer la velocidad y la eficiencia.

Es compatible con múltiples protocolos, como HTTP, HTTPS, FTP, JDBC, SOAP, REST, entre otros, y, además, permite analizar los resultados de las pruebas con informes detallados (hasta con gráficos) e identificar puntos de mejora.

Surfear más: https://jmeter.apache.org/

Colaborador: Javier Marchesini

Microsoft Clarity para análisis de comportamiento de personas usuarias

Microsoft Clarity es una herramienta que proporciona información sobre la interacción de las personas usuarias, tanto en sitios web como en aplicaciones web. Desde mapas de calor hasta grabaciones de sesiones, nos permite entender mejor el comportamiento y tomar decisiones para mejorar la usabilidad y la experiencia en general. Además, ofrece otras funcionalidades:

  • Métricas de rendimiento.
  • Detección de errores y problemas técnicos en tiempo real.
  • Análisis avanzado del User Journey.
  • Integración con otras herramientas para optimizar la experiencia y el rendimiento del sitio web.

En nuestra experiencia, la integración es muy sencilla y fluida gracias a la documentación clara y las herramientas proporcionadas por Microsoft. Con unos pocos pasos, pudimos incorporar el script de Clarity a la aplicación en la que estábamos trabajando y comenzar a recopilar datos de manera rápida y segura.

Como bonus track, si te interesa integrar Microsoft Clarity a tu proyecto, te dejamos los pasos a seguir:

  1. Crear proyecto en https://clarity.microsoft.com/projects.
  2. Descargar código JavaScript para incluirlo en tu proyecto (en index.html).
  3. Listo! Ahora a navegar para ver comportamientos y resultados.

ByteTrack para tracking de objetos

El seguimiento de objetos en la visión artificial evolucionó significativamente, siendo ahora posible no sólo detectar objetos en movimiento, sino también rastrear su trayectoria a lo largo del tiempo. Sin embargo, la principal problemática es la necesidad de mantener la identidad de un objeto a medida que se desplaza en una escena, enfrentando desafíos como la oclusión, la superposición y la transformación.

ByteTrack es un modelo de computer vision que, en particular, usa un enfoque innovador porque considera tanto las detecciones de alta como de baja confianza, lo que permite mantener trayectorias incluso cuando los objetos están parcialmente ocultos o su detección es incierta.

El funcionamiento de ByteTrack se basa en la separación de las detecciones en categorías de alta y baja confianza, seguido de un proceso de asociación de trayectorias utilizando el filtro de Kalman para predecir la ubicación de los objetos en cada frame del video. Este enfoque ha demostrado ser eficaz en la práctica, logrando un equilibrio entre la velocidad de detección y la precisión del seguimiento.

En cuanto al estado del arte, ByteTrack ha sido uno de los principales algoritmos para el seguimiento de objetos hasta principios de 2022, superado posteriormente por otras técnicas como BoT-SORT y SMILETrack.

Surfear más: www.datature.io/blog/introduction-to-bytetrack-multi-object-tracking-by-associating-every-detection-box#what-is-bytetrack

Watchers de este episodio: Alejandro D’Ambrosio, Andrés Milla, Francisco Montaldo, Javier Marchesini, Omar Jeremías Palacios, Andrés Frigo, Darío Aguiar, Hugo Folonier.

Conocé más sobre Flux IT: Website · Instagram · LinkedIn · Twitter · Dribbble · Breezy

--

--

Flux IT
Flux IT Thoughts

Desarrollamos soluciones de alto voltaje que transforman la realidad tecnológica de grandes empresas.