Fix blinking WiFi LED on X200

Recently got my hands on a ThinkPad X200, the last model without the useless touchpad and with the awesome classic keyboard. A fine little machine that can easily be upgraded with an SSD disk and 8 GiB RAM!

I’ve set it up with Linx Mint (LMDE 4) which works great! :)

[Read More]

Fixing file sharing in Debian/Ubuntu

So file sharing with my ReadyNAS file server stopped working after upgrading to Ubuntu 20.04. (Update: same on Debian 11 (bullseye) Turns out there was a change in behavior in Sambva v4.11 that disabled SMB1 protocol by default. It’ll be interesting to see how this panes out in the rest of the Linux community …

[Read More]

HowTo: Install pre-built packages

Every now and then people ask me for pre-built packages of software I maintain. Up until today I’ve had to refer them to the cold hard build instructions for each of my programs.

[Read More]

Set up a Debian/Ubuntu APT Repository

How to set up a Debian/Ubuntu APT repository with GPG signing.

At first I tried to use Bas Wijnen’s mini-dinstall howto, but never managed to get it working. Probably due to problems with GPG. Then I went down the tried and true path of using reprepro.

I’ve tried to document my steps here, but I’ve very likely missed a few steps that a beginner admin may run into. YMMV B-)

[Read More]

Useful UNIX API:s

Had an interesting conversation with a buddy last night. It started out as a shift-reduce problem with Bison and ended up a ping-pong of useful UNIX API:s. We concluded that despite having worked professionally with UNIX for over two decades, it is still very satisfying finding gems like these.

Most people are completely unaware they exist and end up rolling their own (buggy) implementations. For instance, string manipulation and various forms of linked lists. Which is why I many years ago extracted the frog DNA from Finit to a separate library called libite, or -lite for short. It imports the OpenBSD strlcpy() family of API:s, up-to-date queue.h with the _SAFE iterators, and more. Some people like libbsd for this, but I’ve found many of the ports incomplete and unsafe and prefer to stay closer to the upstream *BSD versions.

Update: This post was originally written Nov 14, 2015. It was a Saturday and I remember being extremely inspired when I wrote it. I’ve continued adding to it over the years, and still do. So, as of Jul 2, 2017 I’m bumping the modification date each time I add something new :-)

[Read More]

BSD syslogd in Linux

modern syslog and standards

Some time ago now I was in a meeting with a customer where I first learned of the new syslog standard, RFC5424. I say “new” because, despite it being ten years old, it was new to me.

Three weeks ago I started updating my fork of sysklogd to be RFC5424 compliant. I ended up ripping out most of the old code and replacing it with fresh DNA strands from FreeBSD and NetBSD.

The result is a fully RFC compliant syslogd, and a libsyslog with a replacement syslog.h header for sending RFC5424 events from applications!

[Read More]

Controlling Display Brightness

... in Awesome WM

About a year ago I wrote about a way to control the brightness on my x250. I found a lot of tools, and at the time I saw a lot of potential in light, which I even contributed to a lot. However, I ended up not using the evolved versions myself, and it took me a while to digest why. I think the project just outgrew me and what I wanted in such a tool. [Read More]

HowTo: Set up Merecat with Let's Encrypt certificate

This is a HowTo for setting up Merecat httpd with Let’s Encrypt HTTPS certificates. The upcoming v2.32 release of Merecat supports HTTPS as well as serving more than one Internet port. This is highly useful for those who want to serve both HTTPS and HTTP content. To start with, you need the latest release of Merecat. Note, if you are reading this before Merecat v2.32 has been released you can use the latest software from the GitHub master branch. [Read More]