Another Mu4e Workflow

It’s been a long time since I’ve written about my Mu4e configuration. Back in 2015, I read Ben Maughan’s post on his system for achieving Inbox Zero with Mu4e. I was immediately taken with the idea and although it took me some time, I eventually implemented his ideas at Irreal. For the last ten years I’ve been using Maughan’s system which requires that every email be dealt with immediately by either acting on/answering it, deleting it, or generating a TODO to deal with it later. In any event if the email isn’t deleted, it’s saved in a single directory relying on Mu4e’s excellent search ability to retrieve it if necessary

My system differs slightly from Maughan’s in that I have a temporary directory to save emails that I want to save for a short while but then delete. The main example is notices from Amazon that they’ve shipped some order. When it arrives, I delete the entry but in the meantime I have the details saved if I need them.

James Endres Howell has a very nice post that describes his Mu4e workflow. He uses his email provider to sort incoming email into work, personal, and a few other low priority mailboxes. His system views emails in two states: waiting to be acted on or irrevocably consigned to a permanent resting place that he dubs “the archive”.

He has Mu4e set up so that messages that he’s sent or that are in the archive are shown newest first because they are the most recent and apt to be what he’s looking for and those in the other mailboxes oldest first on the grounds that have been hanging around the longest and need to be dealt with before the more recent ones.

Howell has code implementing all this that you can examine if your interested. Although I like his post and code, the minions have been tugging on my sleeve insisting that I mention that his horrible Emacs theme makes the code virtually unreadable. Protip: Don’t put darkblue text on a black background. Your over forty self will thank you.

Posted in General | Tagged , | Leave a comment

Casual HTML/CSS

I hardly ever write directly in HTML anymore. For a long time my only use was adding links and emphasis markup in WordPress comments but Disqus no longer accepts HTML so even that use has atrophied. Nevertheless, the need sometimes arises to insert a bit of raw HTML and that’s where Charles Choi’s latest Casual app, Casual HTML & CSS comes in.

The less you use HTML, the less likely you are to remember the details of its XML-like syntax, so a menu driven aid like Casual can be a real help. Choi’s Casual HTML & CSS leverages the builtin Emacs HTML and CSS modes so what you get is menu driven versions of HTML mode and CSS mode.

Because of the type of my work, I don’t think I’ve even written a single character of CSS mode although I can read and understand it but I’m sure there are lots of occasional CSS users who could benefit from Choi’s app.

If you’re a user of the Casual App Suite, you’ll get Casual HTML & CSS automatically on your next package update and you’ll only need to enable it. There are a lot of useful apps in the suite so if you don’t already have it installed, you might want to consider doing so.

Posted in General | Tagged | Leave a comment

Bending Emacs 9: Time-zones

I’ve written before about Álvaro Ramírez’s time-zones app. It’s sort of like the builtin Emacs app world-clock but easier to configure and you can move the times forward and backward, which is useful for setting up remote meetings in several locations.

Now, in the latest video in his Bending Emacs series, Ramírez talks about the time-zones app and gives a demonstration of it. It’s a really nice app and although I no longer have to set up remote meetings, I do find it useful to know what time it is in various places in the world. Even relatively obscure places like Shawnee, KS pop right up without a problem.

You can turn on extra details to see things like the number of hours different from your home location, which is, of course, easily settable.

I downloaded the app before I started to write this post and it couldn’t be easier. There’s no configuration necessary and it works just like in the video. As I said in my original post about time-zones, these days a world clock is no longer an oddity but a necessity.

The video is only 6 minutes, 31 seconds so it’s easy to fit in. Take a look and I’m sure that you, like me, will download a copy.

Posted in General | Tagged | Leave a comment

Twenty One Lessons From Google

Addy Osmani has been working at Google for about 14 years. During that time, he’s learned a few—basically non-technical—lessons about life as a software engineer. His post, 21 Lessons From 14 Years at Google, lists some of the things he learned along with a bit of commentary about each one.

There’s probably not anything in the list that will surprise you but it’s instructive to see them written down. My favorite is the (slightly) ironic “Abstractions don’t remove complexity. They move it to the day you’re on call.” If the meaning of that isn’t clear to you, take a look his accompanying commentary.

It’s a nice list and worth taking a look at. It’s a fairly short read so it won’t take you long.

Posted in General | Tagged | Leave a comment

A Paean To Dumb Jump

I’m a long term user of Dumb Jump. According to this Irreal post, I’ve been a devoted fan since 2017. As I’ve said many times in my several posts about Dumb Jump—search for “dumb jump” on Irreal if you’re interested—I’ve never been able to warm up to TAGS systems because they require so much maintenance and LSP systems have always seemed like too much work for what I want them for.

It turns out that I’m not the only fan. Ruslan Bekenev has a lovely paean to Dumb Jump. He, like me, says it has completely eliminated his need for TAGS or LSP. For all the things that I use it for it’s instantaneous. That can be difficult to believe when you learn how it works but it’s true. You can get the details from Bekenev’s post or the Dumb Jump site but the TL;DR is that it uses grep to search for the desired target. I use ripgrep with it so it’s fast with even big repositories. Bekenev has an animated GIF showing how it works for him.

If you haven’t tried Dumb Jump, I join with Bekenev in urging you to try it out. It’s small, doesn’t require a complicated installation and is easy to configure. If you don’t like it, you can simply delete the package and remove it from your init.el.

Posted in General | Tagged | Leave a comment

How We Know C++ Is Too Complicated

Although I am a huge fan of C and have written thousands—maybe millions—of lines of C code, I’ve never warmed up to C++. Every time I’ve had to write in it, I’ve ended up muttering things like, “this is a stupid language”.

You know who else isn’t a fan? Ken Thompson. His, Rob Pike’s, and Robert Griesemer’s dislike for C++ famously led them to develop the Go language.

As part of his oral history, Thompson recounts his impetus for starting the Go project. The TL;DR is that Google’s representative to the C++ standardization committee gave an hour talk at Google about the upcoming changes to C++. Thompson says,

In my opinion, the new stuff was bigger than the language. I didn’t understand most of it. It was an hour talk that was dense on just the improvements to C++.

Did you get that? This is Ken Thompson, who Wikipedia reports is considered one of the best programmers of all time, saying that C++ had become too complicated for him to understand.

You’d think that would be the end of the story but the ankle biters in the comment section explain at length all the things Thompson, et al, got wrong and why Go isn’t a good language. Mostly those reasons boil down to the lack of some feature that the commenter thinks is essential. That’s particularly ironic given that the three originators had a strict rule that all of them had to agree on each feature. The rule was specifically to prevent the inclusion of some pet feature of one of the developers.

I have to admit that I find the comments annoying. I know all about the fallacy of appeals to authority and agree that it is a fallacy. At the same time, I think people like Thompson, Knuth, Pike, Ritchie, and others who have proven their expertise deserve our respect and that if you decide to call them out, you should realize that your opinion doesn’t count as much as theirs and it’s up to you to rigorously prove your assertions. Needless to say, none of that was apparent in the comments.

Update [2026-01-05 Mon 10:35]: Wifipedia → Wikipedia.

Posted in General, Programming | Tagged | Leave a comment

Fixing My Feed From Sacha

I’ve been following Sacha Chua for a long time. I think I started while she was still at University but it was certainly shortly afterwards at the latest. She’s been at it for about 25 years so it’s hard for me to remember. During that time I’ve had her in my RSS/Atom feed and read her posts in various feed readers.

These days, of course, I’m using Elfeed but she still pops up regularly in my feed. The other day, I was reading her post on Emacs People for the latest Emacs Carnival and I noticed that she wrote in both French and English. That seemed new so I poked around a bit a discovered that it’s another of her ongoing projects, just like my learning Spanish1. The thing is, I had never seen any other posts in or about French from her. Then I realized that all the posts I’ve been seeing from her were actually coming from Planet Emacslife. What was going on? I checked and, sure enough, her blog was in my feed list. After fiddling around for a bit I tried following the link I had for her in my feed and got a 404 but I had no problem finding the feed directly from her site. I checked it against what her site had and it seemed the same. Then I noticed that on the 404 page there was a %20 at the end of the URL. Aha! There was a space at the end of the URL I was using. I wouldn’t think that would matter but when I removed it, things started working again.

So the moral of this long story is that if you’re having trouble getting the RSS/Atom entries from some site, check to be sure you don’t have a space at the end of the URL. It’s easy to see how it could happen even if you know what you’re doing, and once made, it’s hard to see with a casual glance at things.

Anyway, I’m back to getting all Sacha’s posts now. Too bad that I don’t remember a lot of the French I learned as a result of one of those annoying foreign language requirements in graduate school.

Footnotes:

1

Except that I’m not brave enough to try writing a post in Spanish.

Posted in General | Tagged , | Leave a comment

🥩 Red Meat Friday: Reclaiming The Em-Dash

Irreal is, of course, an em-dash friendly site. We’ve extolled the mighty em-dash and our love for it many times. Recently, an odious meme has arisen claiming that “real” people don’t use the em-dash and that its use is a sure sign of AI generated text.

I wasn’t even aware of this silliness until my pal Watts Marten wrote about it back in April. Needless to say, we here in the Irreal bunker have nothing but disdain for the people making this claim. Among other things, they reveal their lack of understanding of how LLMs work and are trained as well as their complete unfamiliarity with good writing.

This nonsense has gone so far that ChatGPT is letting users disable it use. What’s happening here is that good writers are being pressured, by what can only be described as the rabble, to stop using useful punctuation or be accused of outsourcing their writing to AI.

Some, like the Irreal Bunker residents, have dealt with this by simply ignoring it. We continue to use em-dashes and if the ignorant choose interpret this as meaning Irreal is actually written by a laptop, that’s their lookout.

Others are less sanguine. They not only refuse to be bullied but are actively fighting back. To wit, over at Beetle Space there’s a manifesto demanding that we take back the em-dash and tell the ignorant to go pound sand. Irreal proudly endorses this proclamation.

Posted in General | Tagged , | Leave a comment

Blogging Platforms

Jack Baty has a New Year’s resolution: Don’t change blogging platforms more than once a quarter. Say what? I don’t know about the rest of you but changing blogging platforms regularly seems to me like getting divorced and remarried regularly. What sensible person would want to do that? Baty’s excuse is that he likes to tinker and mostly blogs about tinkering so naturally changing blogging platforms seems to make sense to him.

For me, blogging is all about writing and sharing my discoveries. The last thing I want is to worry about is my blogging platform. I want it to be as transparent as possible so I don’t have to think about it. I just want to write my post in Org mode and push a button to publish it.

I started blogging with Blogger. It was easy and it wasn’t too hard to turn an Org mode file into a post. After a while I got my own domain, Irreal.org, and moved to WordPress. It’s not all that different from Blogger—except that Google isn’t lurking in the background deciding whether my posts are acceptable—and, like blogger, it’s easy to publish Org files as posts.

It’s been 14 years since I moved to WordPress and while it’s sometimes a pain, I’ve never seriously considered moving to something else.

There are, it seems to me, two type of blogging platforms: static and database-centric. Static blogs are simple and don’t require backups but they require more work on the front end. Database systems, like Blogger and WordPress, are more turnkey but are more susceptible to exploits and require you to backup the database periodically.

I don’t know which is the best—it probably depends on your inclinations—but once you’ve decided on a platform you should probably stick with it unless there are compelling reasons to change.

WordPress certainly isn’t perfect but it’s good enough. It allows me to concentrate on my writing and not worry about the details of publishing it. Unless things change drastically, I don’t see Irreal changing.

Posted in Blogging, General | Tagged , | Leave a comment

Engineering Rules

I wrote what was supposed to be today’s post last night but in the light of day I decided I didn’t like it and had to start over. Fortunately, I found this set of slides on Akin’s Laws of Spacecraft Design. They appear to be lecture notes from a course at the University of Victoria.

They are, as the title suggests, nominally about aeronautical engineering but the “laws” apply equally well to software engineering or, really, any type of engineering. The fact that they aren’t specialized to software engineering makes them seem more general and applicable because they do get into the weeds of a developer’s job.

Most Irreal readers are sure to find something they like in the slides. One of my favorites was

– Engineering is not a religion.
• Technical apostasy is perfectly acceptable.

On another note, it’s New Year’s eve so be safe and stay off the roads if you can. We here at the Irreal bunker want you back tomorrow.

Posted in General | Tagged | Leave a comment