Replacing cron jobs with systemd timers

systemd has a timer function that can be used to run tasks periodically — yes, like cron. There’s nothing really wrong with cron, but have you ever tried to debug a cron job on a server? The script runs fine from the command line, but nothing seems to happen when it runs from cron. You […]

BRCK in violation of the GPL

Update (2015-05-19): BRCK has responded and put up an open-source compliance page on their website. During a recent meeting of the Nairobi GNU/Linux Users Group we discussed BRCK, the Kenya-based makers of a slick, “rugged”, battery-powered-GSM-router thing of the same name, and their apparent violation of the GNU General Public License (GPL). The lively discussion […]

Simultaneously pushing to two remotes in a git repository

Sometimes you need to push commits to two remotes in a git repository — either for a cheap “backup” of sorts, or for some public / private repository scheme you may have in your organization, etc. Let’s say you have a repository hosted on GitHub and BitBucket (hey, GitHub is king today, but you never […]

Ramping up the Ethiopia LUG

Today I had the pleasure of participating in a rare meeting of the Ethiopia GNU/Linux Users Group at the iceaddis co-working space in Addis Ababa. In all the years I’ve lived in Kenya, and all the times I’ve been to Ethiopia, I’ve never heard anything about Linux or open-source software groups in the community. But […]

Finding the nginx gzip_comp_level sweet spot

When a web server creates a web page it generally pulls loads of crap from the database/disk and stitches together some ginormous hodgepodge of raw markup hundreds or thousands of kilobytes in size. As HTML is literally just a heap of embarrassingly compressible plaintext, turning on nginx’s gzip compression filter is a no-brainer. gzip on; […]