• How to encrypt the NVS volume on the ESP32

    There has been a lot of discussion around embedded device security during the last few years especially after well-publicized DDoS incidents involving armies of hijacked IoT devices. The demand for higher levels of security has put pressure on manufacturers and software providers to adopt and support modern security protocols in order to mitigate the relevant risks especially given the widening spread of IoT devices.

    Read on →

  • Deploying a service using ansible and systemd

    You may be a sole developer or member of a small development team with no dedicated ops people. You will probably have a handful of small-ish services, perhaps a few cronjobs and a couple of VPSs to run them on. Or you may have one or more servers at home and would like to automate the deployment of custom or open source tools and services. What are your options?

    Read on →

  • A legit use case for the goto abomination

    Most programming educational material mentions, at some point, the goto keyword, usually as a despicable abomination that should not exist in the face of this earth. The general consensus is that the goto statement is considered harmful and the advice is to avoid the use of goto and to restructure the code so as to eliminate the need for using it. Of course this is sound advice, intended to discourage the creation of code in which a function’s control flow is heavily influenced by jumps to and from various points within its body, making the understanding, testing and debugging of the function really difficult.

    Read on →

  • Emacs on MacOS

    After almost 15 years of running emacs predominantly on linux in terminal mode, I am planning on switching my workflow completely to MacOS. At the same time, I have experimented with the capabilities of emacs running in a window/graphical system instead of the terminal interface. Both experiences have been pleasant so far, particularly the fact that I can now view images in emacs buffers :-O However, there have been some issues that I have had to address, so here it goes.

    Read on →