Category Archives: Technology

Tips and test on technological product and components. Operating system, networks, hardware, security…
Astuces et tests autour de produits et composants technologiques, systèmes, réseaux, hardware, sécurité …

SpringBoot – Mongo / Create a Mutex to synchronize multiple frontends

When deploying a API in a scalable environment we usually try tom implement a stateless solution to avoid parallelism conflicts between the different nodes.

This works well for event management synchronously executed. But in some case these event need to have a part of the work managed asynchronously. It was my was my case when I had to process alarm report potentially generating multiple communications with execution time not predictable. To manage this I decided to process theses operation asynchronously. There are multiple architecture for managing this like Queuing (my preferred) of dedicate asynchronous engine. I’ve in fact preferred another way to do it for keeping my infrastructure more simple : adding in all of my nodes a batch function processing the alarms asynchronously.

The alarm events are written into the database and processed by the first of the batch taking it. This allow to preserve a fully redundant and simple architecture. That said I need to ensure only one of the process will execute this process at a time and potentially split the work to do between all the nodes. For making this I had to create a mutex solution.

This post describes the way to create a Mutex solution based on MongoDB with Spring Boot.

Continue reading

Posted in Programming | Tagged , | Leave a comment

Getting started with Nucleo32 – STM32L031

I have this board in my stock since some months and never taken time to play with it. As I’m starting some developments with STM32 it’s time to do it. I’ve tried to do some stuff using it at reception but even if there is some kind of Arduino mentions on the package the start is not as easy as on Arduino. Not regarding coding (it is more complicated but it is not the problem) but regarding the development environment. You need to use different tools and find yourself the way to use each of them. In my point of view ST would do a good thing simplify all this stuff. So in this post I’ll describe how to get started by creating your first led blink project. Hope it will save your time.


Continue reading

Posted in Hardware | Tagged , , | Leave a comment

SpringBoot and JWT security

When creating an API you can manage a “session” with a JWT Json Web Tokens ensuring the user has login previously.

This post explains how JWT is working and how to implement it with SpringBoot using user identity stored in a Database.

This is based on a real implementation and is the sum of lots of search on Internet to make it correctly working.

Continue reading

Posted in Programming | Tagged , , | Leave a comment

The Sigfox radio protocol

Sigfox phase decoding

Sigfox is a LPWAn communication technology and network dedicated to IoT. The specificity of this solution is related to the LPWAn caracteristics : communicating Low Power (25mW) and Wide Area (60km).

This is possible thanks to particular radio characteristics and modulation. This post will describes how it works at radio level and protocol level.

Continue reading

Posted in sigfox | Tagged , , , | 12 Comments

Sigfox Radio Signal Analyzer

Sigfox just released publicly its Radio Signal Analyzer tool. This is a tool for the device & module maker to prepare the P1 certification : basically it checks the radio signal shape, power… and tell you if you are following the requirements.

The tool have to be used with the SIGFOX SDR dongle provided with the SNEK tool.

The software solution can be downloaded here :

Continue reading

Posted in sigfox | Tagged , , , | 2 Comments

SpringBoot webservices full example

SpringBoot is a really efficient framework for creating webservices and much more. For this reason I’m using it to design my backend applications.

This framework is also well referenced on Internet and many people are downloading it and using it. All of this sounds really good and you will see you can make a webservice in less than 5 minutes following the many examples existing on Internet. As usually in this kind of technology once you have made the classical HelloWorld and university classical practices you have a lot of difficulties to make your first real program coupling different simple use-cases. So As I spent a couple of hours searching solution on Internet, this post will give you a full example of a project getting data from a MongoDB instance to provide a simple webservice.

Continue reading

Posted in Programming | Tagged , , , | Leave a comment

The Sigfox Network Emulator Kit

Sigfox is a LPWA network using the free radio frequency to communicate. There radio frequencies are changing in the different zone (Europe, America, Asia…) When you are developing a device you need to test it but you are not authorized to use all these frequency from the country you are.

The Sigfox emulator is a solution for this : it allows to directly connect your device and analyze the transmission whatever the frequency you are using is. The Sigfox emulator kit is an SDR dongle with a Sigfox software for understanding, decoding the sigfox signals.

You can wire your transmitter to this receiver to not emit the signal over-the-air and legally use a non authorized frequency in your country. When you are using an authorized frequency you can simply communicate over the air.

Continue reading

Posted in Non classé, sigfox | Tagged , | 2 Comments

Gcc – wrap a function in a closed archive

Here is the situation : you have a function in an archive but you do not have the source code. And you would like to change the behavior of this function or intercept the call to this function.

This is possible with gcc and the -Wl,-wrap linker options. Thanks to this option you can create a new function starting by __wrap_ followed by the function name. This function will be called instead of the original one. In the function you can decide to call the original function by using its name starting by __real_

Continue reading

Posted in Programming | Tagged , | Leave a comment