lisp-mode

6 Jul 2025

I’m having an unexpectedly parentheses-heavy weekend. As well as experimenting with Acornsoft LISP on my newly-tricked-out Electron (more on that in a future post), I had a minor itch at work, and I decided to turn to Emacs to scratch it.

I wanted a quick tool to track what I’m working on, to get a clearer picture of where my time is going. Specifically, I wanted a list of tasks and time spent each day, in a form that I could collate and generate statistics from.

There are innumerable ways this could be done, and I have plenty of experience in quite a few of them. For something that’s just for personal use, a full application toolkit is almost certainly overkill. The last time I did this exercise I used Excel, which worked pretty well on the statistics side but left the entry of the data more manual than I wanted, so this time I wanted to try something else. I decided to return to an old staple.

Within about half an hour, I’d put together something serviceable — a new editing mode for an simple, ad hoc format that allowed me to quickly enter timestamped entries in a few keystrokes, while retaining all of Emacs’ more general editing facilities. Reading this into a Python notebook to analyse will be similarly easy when I get to it.

As mentioned, I could have done all of this in a more powerful and general application toolkit, but that would have probably taken longer than I could justify. The advantage of Emacs (and Excel, and a few other similar systems) is that they provide a rich structure to tweak to your specific needs. The interesting question is in the details; in this case, Emacs’ system of editable text buffers was a better fit that Excel’s grid of cells, but often the converse is true. It makes me wonder, are there other useful structures with similar properties? It’s a space that seems both fertile and under explored.

This site is maintained by me, Rob Hague. The opinions here are my own, and not those of my employer or anyone else. You can mail me at rob@rho.org.uk, and I'm @robhague@mas.to on Mastodon and robhague on Twitter. The site has a full-text RSS feed if you're so inclined.

Body text is set in Georgia or the nearest equivalent. Headings and other non-body text is set in Cooper Hewitt Light (© 2014 Cooper Hewitt Smithsonian Design Museum, and used under the SIL Open Font License). BBC BASIC code is set in FontStruction “Acorn Mode 1” by “p1.mark” (licensed under a Creative Commons Attribution Share Alike license).

All content © Rob Hague 2002-2025, except where otherwise noted.