FOTW Episode 5: Tools for Fixing Circular Dependencies, JMeter, Microsoft Clarity, and ByteTrack

Flux IT
Flux IT Thoughts
Published in
4 min readMar 15, 2024

--

References, experiences, and new stuff come and go among fluxers as part of our daily routine. Fluxers on the Watch is how we share those references with you. Check out the fifth compilation from our community of watchers!

Tools for Fixing Circular Dependencies

In any type of software development (front end, web, back end, mobile, embedded, etc.), we use our own SDKs/libs as dependencies or the ones from third parties (to avoid reinventing the wheel) so as to modularize and reuse pieces of pre-existing software. However, as a project grows and needs more dependencies, circular interdependencies can arise, thus bringing problems along with them.

We share some tools for visualizing project dependencies which, among other features, make it possible to detect and correct these circular dependencies:

For Node/NPM-based apps:

With Madge, you can build a module dependency chart and also easily detect if there are any circular dependencies.

For example:

❯ madge — circular

Processed 19 files (7.5s) (3 warnings)

✖ Found 1 circular dependency!

1) Algebra.js > Calculus.js

And when you fix it…

Processed 19 files (8.5s) (1 warning)

✔ No circular dependency found!

Learn more:

https://github.com/pahen/madge

For native iOS mobile projects:

iOS Objective-C:

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

Swift:

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

Also, Periphery:

https://github.com/peripheryapp/periphery

For Python development:

Pydeps:

https://github.com/thebjorn/pydeps

Poetry (comes with a dependency manager):

https://ealizadeh.com/blog/guide-to-python-env-pkg-dependency-using-conda-poetry/#show-package-dependencies

JMeter: An Ally for Ensuring Quality

JMeter is an open-source software testing tool that allows us to simulate scenarios of concurrent users, evaluate app performance and identify bottlenecks. It can be used to test a wide range of apps, such as web apps, APIs, mainframes, among others, without jeopardizing speed and efficiency.

It supports multiple protocols such as HTTP, HTTPS, FTP, JDBC, SOAP, REST, among others, and it also enables users to analyze test results with detailed reports (even with charts) and to identify areas for improvement.

Learn more: https://jmeter.apache.org/

Collaborator: Javier Marchesini

Microsoft Clarity for User Behavior Analysis

Microsoft Clarity is a tool that provides information about user interaction on websites and also on web apps. From heatmaps to session recordings, it allows us to better understand behavior and make decisions to improve usability and overall experience. It also possesses other features:

· Performance metrics.

· Real-time error detection and technical issue tracking.

· Advanced user journey analysis.

· Integration with other tools to optimize website experience and performance.

In our experience, integration is very simple and smooth thanks to clear documentation and tools provided by Microsoft. With just a few steps, we were able to incorporate Clarity’s script into the app we were working on and to start collecting data quickly and securely.

As a bonus track, if you are interested in integrating Microsoft Clarity into your project, we share with you what steps to follow:

1. Create a project at https://clarity.microsoft.com/projects.

2. Download JavaScript code to include it in your project (in index.html).

3. Done! Now browse to see behaviors and results.

ByteTrack for Object Tracking

Object tracking in computer vision has evolved significantly, thus making it possible not only to detect moving objects but also to track their trajectory over time. However, the main issue is the need to track an object as it moves through a scene while facing challenges such as occlusion, overlap, and transformation.

ByteTrack is a computer vision model that particularly uses an innovative approach because it considers both high-confidence and low-confidence detections, thus making it possible to track the object over time even when objects are partially hidden, or detection is uncertain.

ByteTrack’s operation is based on separating detections into high-confidence and low-confidence categories, followed by a trajectory association process for which the Kalman filter is used to predict the location of objects in each video frame. This approach has proven to be effective in practice, thus striking a balance between detection speed and tracking accuracy.

Regarding the state of the art, ByteTrack has been one of the leading algorithms for object tracking until early 2022, later surpassed by other techniques such as BoT-SORT and SMILETrack.

Learn more: www.datature.io/blog/introduction-to-bytetrack-multi-object-tracking-by-associating-every-detection-box#what-is-bytetrack

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

Know more about 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.