Dude, where's my Emacs?

It had been 3 years since I had to setup a new laptop. Past Murat had left me helpful instructions, but I got a bad surprise while configuring my Emacs setup. My beloved starter-kits, which worked smoothly under Emacs 27, stopped working under Emacs 29. I tried to fix the errors, but this proved futile due to my limited elisp/emacs skills. 

I explored alternative starter-kits to configure Emacs. Doom emerged as the dominant choice, but it appeared large, bloated, and complex for my liking. I tried a couple small starter kits, but I faced other problems and was unable to integrate my customizations and get to a reasonable setup. 

I am an Emacs user for 25 years, and I know a thing or two, but it seems everyone's now an Emacs pro. I don't get how people are able to accept and work with those complicated config files/directories. I started to speculate. Maybe the ordinary users left, leaving behind the proficient Emacs enthusiasts, who kept writing more and more intricate config files/directories. They got radicalized, man! That is why there are no user-friendly starter kits anymore. 


My Emacs needs

I hate Emacs yak shaving, so I despised wasting several hours on this. Nevertheless, configuring Emacs to a decent functional state is essential for my productivity. I have two top priorities in my Emacs setup.

The first is the org-mode for todo scheduling/tracking and for hierarchical note-taking. I rely on org-mode for taking meetings notes, writing long form text like blog posts, and in general thinking through writing. I even use it for literate programming for developing programs/protocols, and writing TLA+ models. Those org-mode files get pretty long, exceeding 10K lines, filled with many hierarchical tasks and todo lists.  

I use global-hi-lock-mode in Emacs to introduce color-highlighting into my notes using special punctuation. For instance, when I use "??", it renders the line yellow, signaling outstanding questions. "@@" transforms the line into green, emphasizing noteworthy ideas or observations. Finally, "!!" marks the line as red, indicating a warning or an important point. This system significantly enhances my writing/thinking workflow.

My second top priority is the crafting of plain text presentations using org-mode, compiling them with LaTeX into beamer-pdf slides to achieve polished results. This proved invaluable in times when I needed to quickly put together a presentation or customize an existing one. I hate the constant fiddling required by graphical presentation software like Keynote and Powerpoint. Writing presentations in org-mode is significantly more convenient and faster. It provides a frictionless experience, allowing me to concentrate solely on content without being distracted by formatting, yet producing visually appealing presentations. Content is king.


Back to the future

After investing additional hours, I got my Emacs setup to function well. I reverted to my approach from eight years ago, using a single bare-knuckle init.el file instead of starter-kits. Surprisingly, Emacs defaults improved in recent years, and encouraged by this, I adopted this minimalist approach. I made minimal customizations in the init.el file, specifically for org-mode, and I also incorporated the "leuven" theme and the "Monaco" font.

Having installed Emacs via homebrew, I leveraged Elpa for package management. With mactex installed through homebrew, I used Elpa to install auctex, and this sufficed for successful LaTeX compilation and smooth beamer-pdf generation from org files.

I decided the adopt the default mainstream shortcuts in org-mode for task transitions and date manipulation, as they have improved significantly. Although it took time for my fingers to adjust, I am happy to avoid overly customized shortcuts to prevent potential issues in the future. My goal was to get a usable setup, prioritizing practicality over super-optimization. Premature optimization is the root of all evil.


Reflections

Losing my Emacs setup would have been a significant blow to my productivity. Without those capabilities, I'd struggle with note-taking, thinking through writing, blog post creation, presentation writing, and task/project management.

I remember reading about McPhee's experience using an old text Unix-based editor. The discontinuation of the editor led him to continue on old computers and eventually enlist a developer to adapt it to his new computer.

Similarly, some colleagues heavily reliant on vcc for proofs faced challenges when it wasn't supported in recent OS versions. They had to use docker containers to recreate that environment.

It's unsettling how fragile systems become and how dependent we become of our tools. Losing them almost amounts to a loss of memory.

Comments

Chris Done said…
I’d recommend checking in all your Emacs packages and config into a git repo. That way you can treat Emacs as an unchanging platform. As I get older I find myself moving off of any tools that I can’t lock in place. It’s not that my world would be over, it’s that I’m prioritizing how I spend my time.

Mine https://github.com/chrisdone/emacs-config

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Understanding the Performance Implications of Storage-Disaggregated Databases

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Designing Data Intensive Applications (DDIA) Book