box.matto.nl
Enjoying Open Source Software

/Uses

This is a uses-page, see also uses.tech.

Daily driver

My daily driver is a refurbished classic Lenovo Thinkpad X201 from 2010 with 8 Gb RAM and 120 Gb SSD. It has a 1280x800 12.1 inch display and runs on a Intel Core i5 M 520 @ 2.40GHz.

Thinkpad X201

On this fine laptop, with its great classic Thinkpad keyboard and the famous Thinkpad Trackpoint, run some incredible pieces of open source software.

I own other, more powerful laptops, like a Lenovo Thinkpad X270 with a 1900x1080 display, but the X201 is my favorite. The keyboard makes it a joy to use.

The operating system is FreeBSD, used with the ratpoison window manager, the mother of all tiling window managers, together with ratmen.

My dotfiles are managed with GNU Stow.

GNU Emacs

GNU Emacs is like a rabbit hole. More and more parts of my workflow are moving into Emacs. About two times per month I build Emacs from the latest sources.

Below first follows a laundry list of all the things I do within Emacs. After that, the list of non-Emacs related stuff follows.

Org mode

Almost everything I write, I write in org mode:

  • Articles for the Dutch Linux magazine
  • Freelance technical writing
  • Personal notes
  • Gopher posts (see gopher://box.matto.nl)
  • Slides for presentations.

I use Vale with Flycheck for prose linting in org mode.

Org mode comes with a good export function to ODT.

I have written a small script that converts org mode to groff with mom-macros. Pdfmom converts the groff/mom file almost instantaneously into a PDF file that can be used as presentation.

I write the content for my website in Markdown, I still have to convert my static site builder to org mode.

Denote

I use Denote for my personal notes, as well as for my Gopher posts.

I use Denote together with consult-notes.

consult-notes has a minor mode, called "consult-notes-denote-mode". It lets you select notes very easily.

I still have about 800 pages in my personal wiki, but new material goes to Denote.

Gnus

I use Gnus in Emacs:

  • As email client
  • As Usenet news-reader
  • To follow mailing lists (through gmane.io)
  • As RSS feed reader (through gwene.org)

rcirc

rcirc is a default, simple IRC client in Emacs. I use it together with ZNC, which is running 24x7 on a server. ZNC is an IRC-bouncer, which stores any messages when you are off line.

The package rcirc-sqlite (in Elpa) --which I wrote with the help of Philip Kaludercic-- let rcirc log into a SQLite database and provides some methods for querying the database.

Jabber.el

Jabber.el is an XMPP client for Emacs.

Chat with Jabber from within Emacs!

Mastodon.el

Mastodon.el is an ActivityPub client for Emacs.

Follow your timelines, tags and more, and toot from within Emacs!

eww

eww Emacs Web Wowser (a backronym of "Eeww") is a lightweight web browser within the GNU Emacs text editor.

I have configured eww to work as a simple text browser:

  • default font
  • no colors
  • no images
  • 70 character text width

Elpher

Elpher is a fine Gopher and Gemini client for GNU Emacs.

Remember

M-x remember is an old addition to Emacs, created by John Wiegley.

org-capture is based upon remember.

M-x remember is the least intrusive way to capture thoughts, ideas, and anything else you want to jot down quickly.

It just puts your point in a new, empty buffer, called *notes*. When your note is ready, enter C-c C-c. The buffer is closed and your note is added at the bottom of a dedicated file.

You get an completely empty buffer to write in. After the C-c C-c command, remember adds a title to your note. The title is created from the current date and time, and the first line of your note.

M-x remember-notes opens the dedicated file.

I have bound remember to C-c r, and remember-notes to C-c C-R.

Webjump

Webjump is another old addition to Emacs, created by Neil van Dyke in 1996.

When you activate webjump, is shows a number of targets in the minibuffer. You pick a target with completion.

Webjump provides a method to perform simple queries. This is wonderful to search with DuckDuckGo, Wikipedia, and others.

I have configured it with a list of both websites and gopher burrows as jump targets.

To activate webjump, I use the key binding s-j, which means the super-key (the key with the ugly Windows logo) followed by the 'j'-key.

Magit

Magit is an Emacs package that provides a handy user interface for Git.

Common Lisp REPL

Emacs SLIME is a great REPL for Common Lisp. I use it for SBCL.

Dired

Dired is a very clever Emacs mode for file manager operations.

Elisp

I use some home grown Elisp scripts, for example to build my Gopher pages and Gopher map from Denote notes, the RSS feed of my Gopher burrow.

Another example is an Elisp script that converts the file with Kindle highlights into wiki pages.

I have written an Elisp script that, together with a template in Postscript, creates my customer invoices in Postscript. The standard ps2pdf utility creates the final PDF file.

Eshell

Eshell is a shell written in Elisp built into Emacs, that allows you to do all kind of CLI things from within Emacs.

GNU recutils

The GNU recutils is a set of tools and libraries to access human-editable, plain text databases called recfiles.

Ledger

Ledger is an open source powerful, double-entry accounting system that you access from the command line.

It is the origin of plain text accounting.

As I am working as a self employed freelance technical writer, I need a double-entry accounting system.

The Elisp script that creates my invoices also creates entries in a ledger journal. I have build a Perl script that converts the CSV file from the bank into another ledger journal.

I have to add just a few manual entries throughout the year.

Ledger, together with the org mode spreadsheet capabilities, allows me to fill my VAT tax returns, and to make my yearly balance sheet and profit and loss statement.

Awkawki

awkiawki is a lightweight wiki written in a few hundred lines of awk.

Because its light weight, it performs fine, even on an older Raspberry Pi.

I use awkiawki as my personal wiki.

Bepasty

The bepasty is a paste-bin server that only supports the use text snippets, but also all kinds of files, like PDF files, Epub files, images, and much more.

This support for files makes it easy to copy stuff to and from devices that lacks proper scp, like tablets and smartphones.

Linkding

Linkding is a self hosted bookmark manager. It is light weight and works great on a Raspberry Pi.

Prosody and mcabber

Prosody is an easy to manage Jabber/XMPP server. It works great on a Raspberry Pi and a BeagleBone Black.

I use mcabber as a text mode Jabber client. Mcabber supports both encryption using GnuPG as well as using the OTR protocol.

Recently I have been experimenting with jabber.el, a fine working Jabber client for Emacs.

RCS (Revision Control System)

RCS is an old (1982) revision management system.

It is very handy for configuration files, but I use it for a lot more.

Of course, I also use Git :)

dc (RPN commandline calculator)

dc is a fine command line calculator working with Reverse Polish notation.

It is versatile and easy to use.

ed, the standard text editor

ed is the standard text editor for Unix.

I love to use it for small edits.

Homegrown Common Lisp utilities

I have build some utilities with SBCL.

The most used is my static site builder, that creates this website.

Over time I have build and used several static site builders. I started with a script around a Vimwiki. I still use a Vimwiki directory as the basis, only now write the content in Emacs.

Perl, awk, m4, shell script

I love to create small (and sometimes not so small) scripts.

Whenever I have to so something for the second or third time, I am lured into scripting it.

t

If you are not into Emacs, and want a very simple and useful method to create small notes, take a look at t - a simple notes manager.

ZFS, also called the Z File System

ZFS is a wonderful, advanced file system. It has many features, too much to mention here.

Some highlights:

  • Volume management
  • Compression
  • Snapshots and roll-backs
  • Clones
  • zfs send and zfs receive

FreeBSD has been supporting ZFS for many years and can boot from a ZFS-only hard disk.

bhyve

Bhyve is the FreeBSD hypervisor. I use it to run virtual machines, even on my X201.

Combine bhyve with ZFS snapshots and clones, and you can set up a new virtual machine in less than a second.

When using a virtual machine for testing purposes, first make a ZFS snapshot of the machine before the testing operations.

When done, just roll back in less than a second to the snapshot you started with.

Jails

FreeBSD jails provides lightweight, kernel-level containers. This is a reliable, mature container technology.

Jails are lightweight, quick and easy to setup up and destroyed.

Just like bhyve, FreeBSD jails works wonderful with ZFS snapshots, roll-backs and clones.

qemu-system-i386

QEMU is a brilliant generic and open source machine emulator and virtualizer. One of its elements is qemu-system-i386.

You can have a lot of fun with qemu-system-i386. It provides an easy to use environment to run operating systems from the past.

Lynx and links

Lynx is the text mode web browser that used to be part of the standard install on many Linux distributions as well as on BSD.

It still is a fine text mode web browser and it still does support the Gopher protocol.

The key bindings make Lynx very suitable to visit a lot of Gopher burrows, starting from some phlog aggregator.

Links is a web browser that combines the features of a text mode web browser with the option to display images.

Most of the time I just use eww, but I still use both Lynx as well as Links.