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 set it up with Linx Mint (LMDE 4), which worked great to begin
with, but there was some odd issue with X/Wayland that sometimes caused
the screen (only the screen) to freeze up and show random color patterns.
Only way to workaround it was to suspend, wait, and resume again. So
now I’m running Ubuntu 20.04 on it and everything seems to work a lot
better, this far.
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.
This is an SNMP server for small and embedded systems, currently Linux and FreeBSD are supported. It is easily portable to other UNIX systems since it’s written in C. The daemon is very small (~40 kiB) and does not have nowhere near the feature set of Net-SNMP, therefore it has a very low impact on system resources.
See my mini HowTo: Playing with SNMP for a quick introduction to setting up the SNMP tools and MIBs to avoid having to use numerical OIDs.
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-)
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 :-)
In-a-dyn is a small and simple Dynamic DNS, DDNS, client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet.
Presentation here.
Example The configuration file on most systems is in /etc/inadyn.
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!
Tired of confusing configuration files and security features you don’t need?
Try uftpd!
Supports FTP and TFTP No configuration file Defaults to port ftp/tcp and tftp/udp found in /etc/services, or custom port(s) Serves files from the ftp user’s $HOME, as specified in /etc/passwd, or custom path Can run from inetd(8) or as a standalone daemon Can be built and installed as a .deb file, with debconf support Can run as root, with chroot and privsep, or as a regular user Supports TFTP blocksize negotiation, RFC 2348 Basically, it just works!
Merecat started out as a pun at Mongoose, but is now useful for actual web serving purposes. It is however not a real Meerkat, merely yet another copycat, forked from the great thttpd created by Jef Poskanzer.
Merecat expands on the features originally offered by thttpd, but still has a limited feature set:
Virtual hosts Basic .htpassd and .htaccess support URL-traffic-based throttling CGI/1.1 HTTP/1.1 Keep-alive Built-in gzip deflate using zlib HTTPS support using OpenSSL/LibreSSL, works with Let’s Encrypt!