This post has NOT been generated using AI. Like most of those who I believe would be reading this blog, I run my own home lab. My setup has, over the years, evolved from an old laptop running just my media centre, only accessible on my home network. Today, it is a more elaborate setup with containers running on two hosts on my local network, a third host running local LLMs, and a fourth (thin)…
This is the last of three posts on distributed consensus in the DevOps world. These posts are based on a presentation I gave to the Nairobi GNU/Linux Users Group. A video of the presentation can be found here . The first post in this series introduced distributed consensus and the second post introduced the Raft consensus algorithm. In this post, I’ll present common DevOps problem and show…
This is the second of three posts on distributed consensus in the DevOps world. These posts are based on a presentation I gave to the Nairobi GNU/Linux Users Group. A video of the presentation can be found here . The first post in this series introduced distributed consensus. I’ll introduce the Raft consensus algorithm in this post and try to explain how it handles distributed consensus. The…
This is the first of three posts on distributed consensus in the DevOps world. These posts are based on a presentation I gave to the Nairobi GNU/Linux Users Group. A video of the presentation can be found here . Consensus is when a group of individuals comes to an agreement, or a general agreement. A general agreement implies that not all individuals in the group need to agree with the decision.…
The ssh program on Linux allows you to specify a program or script from where it should get a passphrase when it needs one. This allows you to, for instance, hookup it up to your password manager to feed it the passphrase. You can do this by specifying the path to the program to execute in the SSH_ASKPASS environment variable. I use the pass password manager (which installs the pass command).…
I have removed the section on configuring git to auto-sign tags, since the configuration doesn’t work. Thanks Hannes Van De Vreken for pointing that out! Signing Git commits using GPG isn’t a requirement in most projects. It is however a nice to have feature, especially in cases where it is important for you to have your identity as the commiter verified. This prevents, for instance,…
I recently started working at a startup :). My first task there was to configure their new Linux server to host some live apps. I, professionally, haven’t done sysadmin work but since I’ve been configuring Linux VPSs to play with for some time now I figured it wouldn’t be that hard doing the initial setup. I did the usual; install and configure the necessary packages, firewall…
I have, for a year now, been trying to make an Opensource matatu transit application on Android for Nairobi. I must say, it has not been easy. I made some bad decisions. Some that have lead to me barking on the provabial wrong tree. I will, in this blog post, expound on one of the mistakes I made, my initial reasoning behind making this ‘silly’ decision and why I was wrong. The Android…
Localizing apps to languages that are officially supported in Android is a bit straightforward. However, for unsupported languages, it might be a bit tricky especially if there are special characters involved. I needed to translate my app to a bunch of local Kenyan languages. Adding support for these languages proved very easy (adding the translated strings to the strings.xml resource file).…
I work in a Research Institute. My job there involves making Software Systems that work with biological sample data. About six months ago, we started developing systems that involved doing high level searches on the biological sample data we have stored in numerous MySQL databases. These high level searches were being done directly on MySQL with the assistance of wildcards and a bit of cleaning.…
I love Kannel . Everybody who’s used It, loves It. And why wouldn’t you? It’s libre, it’s open and tt’s powerful. However, Kannel is hard to configure. Especially if Its your first time using It (let alone it being your first time using Linux). There are just too many variables you can tweak. My Use Case As I had mentioned in another post, I used Kannel to send and…
For some time now I’ve been working on an Android app that is going to be used by small scale farmers in East Africa. We expect that most of the farmers will not have an internet connection. Hell, most of them won’t have android phones. But that’s a story for another day. So, for a proof of concept, the app I’m making should roll back to sending data using SMS when no HTTP…