Practical Local Email Backups With Dovecot and imapsync
Digital resilience is mentioned a lot these days, and while I thought I was well-prepared I realized that I had a blind spot: my emails. The problem is that I have lots of them (> 50.000) and neither do I want to stop hoarding or pay an enterprise-tier service at a provider that I trust (I do pay the private-tier, though 🙂). For me, this meant to create a local backup but I still want it to behave like a standard email server which you can connect to with your favorite client. What behaves like an email server? An email server!
Meshtastic – Testing the Mesh Network on the Swedish Countryside
I have been curious about Meshtastic for a while. Now that c’t Magazin (a popular German computer magazine) had a good cover story on it, it was finally time to test it. In the following, I will briefly introduce Meshtastic, present ready-to-go node alternatives, and report on my off-grid node including unexpected messenges from an airplane.
Meshtastic
Meshtastic is “An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices”. It can be used for messaging – including outdoor, emergency, or blackout preparedness use cases – as well as remote monitoring or sensing applications.
Managing Rust Dependencies for Supply Chain Security
As this post got a bit dense, these are my main takeaways for reducing supply chain risks:
- Reduce dependencies by adding only essential features and exploring lighter alternatives.
- Use lib.rs including
cargo audit,cargo crevandcargo vetresults to vet trustworthiness. - Implement CI checks using
cargo denyto automate policy enforcement. - For high-risk projects, consider vendoring dependencies with
cargo vendor.
Managing dependencies is hard in any software project: Which dependencies should you choose, and when is it worth pulling in an external crate? How to keep track of updates, vulnerabilities, or a dependency ending up unmaintained? When building a product, this is not only a quality issue but with EU regulation like NIS 2 or CRA this even becomes a liability issue. This is not only about vulnerabilities that need to be fixed, but dependencies have become a direct cybersecurity target where malicious code is somehow injected into the software “supply chain”. This is a known problem, especially for languages with thriving package ecosystems.
Rust Progress, if let and simple-ssg-rs
I am slowly but consistently learning Rust, reserving approximately an hour each day since my last post almost six weeks ago, and I think I am progressing OK.
What follows is a recap of my learning path which might help, especially if you are experienced in C++ and contemplating learning Rust.
I will also briefly talk about if let and introduce simple-ssg-rs, a static site generator (like Jekyll, Hugo or Zola) but much simpler and which I created for the sole purpose of exercising Rust.
Learning Rust
I have always had an interest in programming languages and concepts, mostly related to systems programming. That’s pretty much why I studied computer science. Even if I have never been employed as a programmer, I have created and contributed to several bigger projects during my time as a researcher (e.g., WayWise is a more recent open one). My goto language is C++ (11 or later), often paired with the Qt framework. Having worked with safety-critical systems during the last years, I have often thought that it is far too easy to introduce hard-to-debug bugs in C++ if you do not enforce certain rules (say MISRA C++) and wondered about alternatives.
- 1
- 2