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.

Netbook

I attended the 2024 edition of the Old Computer Challenge with an old netbook, the Acer Aspire One 522 POVE6.

This is a laptop from about 2011. It has an 10.1 inch display with a resolution of 1280x720. It runs on an AMD C-60 APU with Radeon HD Graphics. After the challenge this netbook got upgraded, it now has 4 Gb RAM and an SSD.

Even after the upgrade, it still is a slow machine.

It runs FreeBSD 14.1, with the ratpoison window manager.

After installing the full Emacs package it showed that this laptop can't handle such a workload. It now runs Emacs-nox.

I use this netbook for writing phlogs and blogposts, reading mail with Gnus and some Common Lisp programming.

Next to Emacs-nox, I installed the TUI web browsers Lynx and Links on it, tmux, RCS, as well as Clozure Common Lisp (a.k.a. CCL).

Photo of the Acer Aspire One next to a ThinkPad X201
Photo of the Acer Aspire One and the ThinkPad X201

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.

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-denote.

consult-denote integrates consult with denote. It lets you select notes very easily.

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

Denote and Gopher

My Gopher phlog posts start their life as a note in Denote using the org format

An Elisp script converts the Denote note to my phlog post format. Another Elisp script creates the RSS feed for the phlogs.

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.

Paredit

Paredit turns your editing into structured editing.

This post of Sandra helped me to get started and I have become a great fan of Paredit.

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.

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.

Hunchbin

Hunchbin is a self hosted snippet service, and file dropper, aimed at textmode browsers. It also features temporarily bookmarks.

I created Hunchbin as a replacement for Bepasty, to be able to use the functionality in a TUI web browser, like eww, lynks and links.

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.

Bepasty

The bepasty is a paste-bin server that not 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.

I have used Bepasty for many years, but as I am moving away from Firefox I have replaced it by Hunchbin.

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.

pass

pass --the standard unix password manager is the standard password manager for Unix-like workstations.

It uses GnuPG to securely store your passwords and Git to manage your collection. Each password is stored in its own GnuPG encrypted file.

By grouping accounts you create your own structure. Pass makes this visible in the form of a directory tree.

Changes are automagically committed to Git. You only have to push to your central repository, and pull on your other workstations to keep in sync.

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.


Made with ♥ by a human - Proud member of the 250kb.club and the Blogroll.Club.