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.
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.
Sean Whitton
Good news for Emacsers. Sean Whitton has been appointed an Emacs maintainer by RMS. He joins a list of really excellent maintainers who devote untold hours of their time maintaining Emacs for our benefit. It’s hard to overstate the debt that we owe them.
Mostly, of course, they never hear from us except when there’s a complaint. That’s really unfortunate and we should all try to do better about thanking them for their selfless efforts.
I don’t know anything about Whitton except that he’s been active on the Emacs mailing list and has more than demonstrated his commitment to Emacs. Judging from his message on the mailing list, I feel certain that he’s going to be a real asset.
Join me in welcoming Sean and be sure to buy him a beer if you happen to find yourself in a bar with him.
The Power of C-x 8
I’m a long time user of Ctrl+x 8 Return for inserting arbitrary Unicode characters. I use it, for instance to insert the red meat character (🥩) for my Red Meat Friday posts.
For mundane accents like é, I use ivy-insert-org-entity that I stole from John Kitchin’s Scimax. It’s lighter weight and easier to use for spelling peoples’ names or using the occasional foreign accented word.
Even though I’ve been using Ctrl+x 8 Return for many years, I had no idea of how powerful the command is until I read this post from Rahul M. Juliato. It turns out that in addition to just using an existing Unicode character you can compose accented characters manually, combine multiple code points into a single glyph, and much more.
Juliato’s post is long and complicated so I won’t try summarize it here. You really need to take a look at the post itself. I had difficulty making some of his examples work but that was probably me doing something wrong or a shortcoming of my fonts. If you’re like me, you’ll probably never need all the power he describes but it’s nice to know it’s there if you do need it.
A Replacement For Diminish
Any serious Emacs user is apt to have a lot of minor modes active at any given time. That’s certainly true in my case. What we don’t need, though, is to see lighters for each and every one of them. It wouldn’t matter so much if they didn’t fill up the mode line and obscure other indicators that you might actually want to see.
The current way of dealing with this is Diminish that prevents any of the minor modes listed from putting their lighters on the mode line. I’ve found them difficult to get configured correctly but they do the job and I haven’t thought about the problem in years.
In a new post, Bozhidar Batsov reports that a new feature in Emacs 31 is the mode-line-collapse-minor-modes command. It turns out that I’ve written about this before but Batsov has more details. The difference from Diminish is that you list all the minor modes that you don’t want to see on the mode line (or even all of them) and Emacs compresses them into a single symbol, “…” by default.
If you’re living on the edge and building Emacs from Master, you can try this out now. Otherwise you’ll have to wait for the release of Emacs 31.
Merry Christmas
As I told a family member yesterday, no one except Santa should be working on Christmas Eve so—taking my own advice—I’m going to refrain from anything but minimal effort on today’s post and merely wish you all a Merry Christmas or if you don’t celebrate Christmas, Season’s Greetings.
Most Irreal readers—at least in North and South America and Europe—probably have the day off so I hope you enjoy your down time. Tomorrow, things start again and Irreal will be back with some semi-serious material.
Unix V4 Update
A month and a half ago, I wrote about the discovery of an original Unix V4 tape in a storeroom at the University of Utah. V4 was special because it was the first version of Unix to be largely written in C rather than PDP-11 assembly language. Until the discovery of the tape at the University of Utah, it was believed that Unix V4 had been lost except for parts of its manual.
At the time of the discovery it was uncertain if the tape could even be read. Magnetic tape is famously volatile and it had been sitting in an uncontrolled environment for years. Nevertheless the experts at the Computer History Museum were able to read the tape except for a couple of damaged blocks that they were able to reconstruct and verify correct with the CRC.
Hobbyists who care about old systems and Unix history have even been able to boot the system on a PDP-11 emulator. Diomidis Spinellis who maintains a git repository of Unix source code has a blog post about the V4 discovery and how it fits in with the larger Unix corpus.
That’s not a straightforward as you might think because there weren’t really any software version releases. Rather the version numbers refer to the manuals. The actual software that a recipient got was just what happened to be on the (sole) Unix research computer at the time the tape was cut and it was given the version number of the last manual.
You can read Spinellis’ estimate of where the software on the tape fits into the larger body of Unix code on his blog. For those who care about Unix history, this is a major find and a reason for celebration.
Journelly 1.3
Good news for Journelly users. Álvaro Ramírez has just released version 1.3 of Journelly. If you’ve been around Irreal for anytime at all, you know that I am a huge fan of Journelly. It’s one of my most used iOS apps. For those who don’t know, Ramírez advertises Journelly as a sort private Twitter app, meaning that your entries aren’t broadcast and are private to you. I use it as a memo book to record my daily activities so it gets a rigorous workout in the Irreal bunker.
The big news in version 1.3 is Markdown support. I’ve always thought of Journelly as an Emacs adjunct because of its tight integration with Org mode. In an effort to expand its usability, Ramírez has added the option to save its data in Markdown instead of Org mode. That’s important because you can opt to have the data saved in the cloud rather than on the device. That means you can access, read, and edit it from your computer. That’s a real win because it means you have access to your data on all your devices, iOS for not. If you’re not an Emacs user, now you can deal with that data in your preferred markup language.
For Org mode users, Ramírez has added support for rendering both code and quote blocks. If you use Journelly to capture code this is a very nice feature. There’s also expanded language support. Take a look at Ramírez’s announcement for all the improvements and their details.
If you have an iPhone and use it for anything more than making phone calls, you really should look into Journelly. It is, as I’ve said before, a shape shifter that easily adjusts itself for whatever logging-like activity you want to use it for. Highly recommended.
Silliness We Tell Ourselves
This should probably be a Red Meat Friday post but I have nothing else to write about today. Anton Zaides has a list of five pieces of received wisdom that we should abandon. We calls them dogmas but I call them silliness. I can’t remember every taking any of them seriously.
Some of them, like
If a comment is needed, the code is too complex
are ridiculous on their face and could only be believed by those too lazy to do their job properly and make sure their code is comprehensible by commenting the non-obvious parts. Others, such as
2-4 week sprints are how modern teams work
are sure to gore some oxen but they’re oxen that need to be gored.
Perhaps the worst piece of advice is to not reinvent the wheel; use packages instead. We’ve already seen the disasters that come from that. There’s no reason at all to be creating a dependency for trivial functions. If that’s not enough, take a look at the is-even package described in Zaides’ post.
The whole post is sort of depressing. Just a little thought shows that all five items are silly yet they continue to be received wisdom. It’s time to put them to rest and start thinking for ourselves.
The New Warp Drive; Same As The Old Warp Drive
Today’s subject is a little outside of Irreal’s usual fare but as I said in my first post, Irreal is about, among other things, anything that excites my geek sensibilities. This definitely excites my geek sensibilities.
The subject, as you can tell from the title, is warp drives. According to FastCompany, scientists now believe that the idea of faster than light travel by means of a warp drive is theoretically possible. That, of course, energized the engineers to decide what such a thing would look like. The answer is—to me, at least—surprising. For theoretical reasons that you can read about in the FastCompany article, the answer is that such a spaceship would look like the Enterprise.
The first designs envisioned a doughnut shaped ring around the ship that would contain the warp drive but designers soon realized that a pair of nacelles mounted on pylons at the side of the ship—just like Star Trek’s Enterprise—is actually the best design.
As I said, this was surprising to me but it shouldn’t have been. As the article points out, science fiction has a track record of accurately predicting future technology long before it becomes fact. Jules Verne’s predictions of trips to the moon and nuclear submarines are examples, as are laser sails from Pournelle and Niven’s The Mote in God’s Eye. The article gives other examples.
When I was younger, I loved Star Trek (both classic and NG) but in accordance with conventional wisdom at the time I knew FTL travel was impossible. It turns out though, that Roddenberry was right. Not only may it be possible, he even got the space ship design right.