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

Never Try Emacs

A couple of weeks ago, I wrote about Tsoding’s video on the annoying usefulness of Emacs. His conclusion was that you should stay away from Emacs because once you try it, you will never be able to break free.

Now Valigo has his own video up that reaches the same conclusion. For him, the main attraction of Emacs is it’s extensibility and customizability. The reason for that, of course, is that the Emacs executable is basically a Lisp image with the source code available from within that image. That means that you can, if needed, reach into the guts of Emacs and change just about any aspect of Emacs on the fly. The only exception is the small C core and even that has the source code available from within Emacs but you’d have to recompile Emacs to change it.

One telling example that Valigo gives is to ask Emacs for the definition of the j key. Because he has evil mode enabled, Emacs reports that j runs the command evil-next-line. Then he disables evil mode and repeats the experiment. This time Emacs reports that j runs the self-insert-command to add a j to the buffer. The point is that the help command adapts itself on the fly to reflect the current state of the system.

Because of all this customizability, Emacs use is addictive. Once you start, you can’t stop. Like Tsoding, Valigo says that Emacs is old and crufty but he can’t escape because nothing else is as useful.

I get that Tsoding an Valigo are probably writing tongue in cheek but really, if Emacs is so useful you can’t live without it, why are you complaining? You can, after all, change anything you don’t like.

Posted in General | Tagged | Leave a comment

Emacs Lisp Elements

Some time ago, Protesilaos Stavrou published a nice book on Emacs Lisp. The idea is to bring a “big picture approach” to Elisp so that every Emacs user can experience the joy of fine tuning Emacs to meet their exact needs.

Just recently, Stavrou has added EPUB and PDF versions. In a way, it doesn’t matter since he provides the Org mode source and you can export that to almost any format you want. Now, though, he has nice PDF and EPUB versions that you can simply download and read in your preferred format.

It’s nice having the book available as, for example, an Info file but apparently I’m old fashioned and prefer to read it as a PDF. Others may like EPUB or Info. Whatever your preferred format, Stavrou has you covered.

There aren’t that many books addressing Elisp and how to use it. Marcin Borkowski’s Hacking your way around in Emacs is one good example and there are some short tutorials but Stavrou’s and Borkowski’s books are the only ones I can think of off hand that address Elisp exclusively.

I’ve skimmed through the book and it seems like a good introduction. If you’re an Emacs user and want to advance, you really should learn a bit of Elisp. It’s not as daunting as it might seem since even adjusting the Emacs configuration is an exercise in using Elisp.

Posted in General | Tagged , | Leave a comment