PSA: Use The Lucid Toolkit

It’s Christmas, a day that we at the Irreal Bunker celebrate in large part by being slothful. Therefore, today’s offering is a quickie. On the other hand, since it is Christmas, you can also think of this post as a Christmas gift.

Over at the Emacs subreddit, ArcanistCheshire tells us that building Emacs with the Lucid toolkit resulted in an impressive Emacs speedup. This is seconded by Karthink, someone who has shown he knows what he’s talking about.

Sadly, if you’re a macOS user this gift is not for you. It’s only for users of X-windows and even then there are some restrictions. Take a look at the post for the details.

Even if you are a macOS Emacs user, you can take heart because being an Emacs user is a gift all by itself. Merry Christmas

Posted in General | Tagged | Leave a comment

Why You Want Your Tools To Be Programmable

A constant theme here at Irreal is that one of Emacs’ virtues is its programmability. Not the ersatz programmability offered by VS Code or even Vim but real programmability. You can introduce new code or change old code while Emacs is running in a seamless manner.

But why is that so important? Aren’t knobs and check boxes enough? Positron has a nice video that provides the answer. The TL;DR is that, no, knobs and check boxes are not enough. They’re more complex to implement and maintain, they quickly go out of date, and they simply aren’t as flexible. With programmability, the user is in charge and can evolve the action of Emacs as needs change.

Positron makes a good point about Elisp and its supposed slowness. The code you write for Emacs happens, as Positron puts it, at the other end of the keyboard and therefore at human speed. It doesn’t matter if it’s slower than C or whatever. It’s fast enough for human senses. For those jobs that require more powerful computation, Emacs simply subcontracts them out to an external process for faster processing.

As far as I know, only Lisp Machines and their descendants offer this kind of programmability. Today, the only widely used piece of software that can do this is Emacs. To me it seems not so much an advantage as a necessity.

It’s a short video (4 minutes, 35 seconds) so take a look. Positron makes some good points.

Posted in General | Tagged | Leave a comment

24 Emacs Packages To Try During The Holidays

Marie K. Ekeberg has a holiday gift for Emacs users: a list of 24 Emacs packages that you can try during the holidays. The list is interesting in that it doesn’t really have a theme other than that they’re packages that Ekeberg finds useful or interesting. Some of them are builtin, some of them are in MELPA / Gnu Elpa, and some of them aren’t in any ELPA repository.

Some like Org-mode, Windmove, Magit, EXWM, Multiple cursors, and vterm will be familiar to most Emacs users but some may be new—at least they are to me. The first on the list is Try. Mike Zamansky often used it in his Emacs videos to try out a package without actually installing it. If you want to sample some of the offerings from the list, installing Try first is a good idea because it lets you experiment with a package without having to commit to it.

Another very useful package is undo-tree. It’s a little hard to get used to but it really will improve those times when you have to undo some text. It also rationalizes “redo”. That alone is worth installing it for.

One package that I haven’t tried but that looks interesting is focus. The idea is that text outside some configurable region get grayed out. I’m not sure it would work for me but it does look interesting. It provides a perfect example of why you should install Try: you can experiment with it and if you don’t like what you see, it will disappear the next time you start Emacs.

The list is worth taking a look at You may find something that will fit in with your workflow.

Posted in General | Tagged | Leave a comment

CISA Best Practices for Mobile Communications

Recently, The Cybersecurity and Infrastructure Security Agency (CISA) released some best practices for mobile communications. These are the result of the recent exploits attributed to The People’s Republic of China. While the recommendations were targeted at senior government officials, they apply equally well to everyone. Most of us are, of course, of limited interest to nation states but cyber criminals are always looking for a way to infiltrate our accounts and steal our money or personal information.

There’s nothing surprising in the advice but it does serve as a convenient checklist for what we should be doing to protect our privacy and safety.

The advice boils down to:

  • Use only end-to-end encryption. This is probably the most important advice. Even law enforcement has stopped prentending otherwise.
  • Use FIDO for safe identity verification.
  • Avoid SMS for two factor authentication.
  • Use a password manager. I use a combination of 1Password and Apple Passwords app. Whatever you use, it should enable long, random passwords and a single password to access the database.
  • Setup a TELCO pin. This isn’t as obvious but it can help prevent a cyber criminal from taking control of your mobile account.
  • Regularly update your software. The best way to do that is to enable automatic updates. That’s what I do and, at least in the Apple environment, that means that I get notified of each update and have the opportunity to upgrade or not.
  • Avoid personal VPNs. This is the hardest to understand of the recommendations but the idea is that it only hides your identity, not the content of your communications. For that, you need an end-to-end VPN, which personal VPNs don’t typically offer.

We can be reasonable sure this is good advice because it’s being directed to government officials. When they start offering advice to protect their own information, you can be sure it’s good information.

Posted in General | Tagged | Leave a comment

Emacs 30.0.93

Andrea Corallo writes with some good news: Emacs 30.0.93, the third pretest for Emacs 30.1 is now available for download and testing. The developers are hoping that this is the last pretest before the final release procedure begins.

This should serve as a definitive answer to those who keep insisting that Emacs is dead technology. The update cycle is robust and ongoing. Indeed, I would claim that it’s optimal. The project is not releasing updates every month as a new, incomplete project would, but neither is the project moribund. Rather, it makes fairly consistent yearly major updates as well as bug fix releases in between.

If you don’t mind living on the edge, download and test the new pretest. It will help move the release process forward and get us to Emacs 30 sooner. Even if you can’t help test the new release, raise a glass to the developers who work so hard for nothing besides the love of their work that makes all our lives better.

Posted in General | Tagged | Leave a comment

Don’t Leave Home Without It

This post doesn’t rise to the Red Meat Friday level but it did amuse me. Like all such memes, it captures an essential truth. The “essential truth” here is that Elisp is the glue that you can use to bind together various Emacs functions—including those you write yourself—to enable bespoke functionality specifically tailored to your workflow.

I often see n00bs saying that they don’t know Elisp and that it’s too much of a chore to learn it. I don’t understand that. Elisp is relatively easy to learn, enables you to make the most of Emacs, and also opens the world of Lisp and all its wonders to you. Why wouldn’t you want to learn it?

I sometimes hear that Elisp is currently the most used Lisp. I don’t know if that’s true but I’d certainly have no trouble believing it. In addition to enabling custom Emacs functionality, I often use it for one-off calculations because it’s easy, Lisp, and built into my editor. More and more, I use Elisp as my go to language for one-offs.

If you’re an Emacs user and don’t already know Elisp, I urge you to consider learning it. It will pay you dividends.

Posted in General | Tagged , | Leave a comment

A Bit More On Guile Emacs

A week ago, I wrote about the recent restoration of the Guile Emacs project. Despite my enthusiasm for the original project, I just couldn’t get excited about its resurrection. You can take a look at that post for my reasons why.

To be clear, I believe that if Emacs were being written today, Guile would be the natural choice and a great one. But that ship has long since sailed. Emacs is 40 years old and there are plenty of technical and political reasons arguing against trying to retrofit it now.

Still, it’s an interesting project. If you’d like to know about more about it, LWN has a nice summary of the project and the talk that its leader, Robin Templeton, gave at this year’s EmacsConf. The article lays out the rationale for the project as well as some of the problems—technical and political that it’s apt to encounter.The project is actually pretty far along but there are still performance and other problems to resolve. There’s also the issue of whether the basically conservative user base would accept such a change. As hard as it is to believe, not everyone is as fond as Scheme as some of us and others just hate change, especially in something as essential as their editor.

Posted in General | Tagged | Leave a comment

Building Emacs Configurations

Jack Baty has a post that considers the best way of building an Emacs configuration. On the one hand, something like Doom Emacs provides a complete, no-brainer configuration that requires little effort on the part of the user. On the other hand, some people want to build their own and while they may accept some help basically want to be in complete control.

A curmudgeon might suggest that those in the former class consider moving to something like VS Code. After all, that’s the strength of editors like VS Code: no thought configuration that works out of the box. But that’s not really fair. Emacs is, for sure, a DYI editor kit but some folks just want to enjoy its superior editing environment without having to build it for themselves. One of the glories of Emacs is that you can have it either way.

For my part, I would never want to use a prepackaged configuration. From the beginning of my career—from my n00biest of n00b days—I have hated black boxes. Every time I found one—usually in the form of a library routine—I had to peek inside to see what was really happening. My Emacs configuration is the same: I want to understand everything that’s going on.

I could, of course, use something like doom and figure what was going on but why? An Emacs configuration is—or should be—highly personal, sculpted to precisely fit your workflow. It’s true that building it piece-by-piece will take longer but in the end you will have something that fits your needs exactly and that you understand completely.

Posted in General | Tagged | Leave a comment

What’s New In Emacs

There are lots of different types of Emacs users, of course, but two distinct classes are those, like me, who stay pretty much up-to-date and those who are stilling running old versions of Emacs and are not familiar with what the latest releases have to offer.

It’s easy to dismiss the latter class as a small, insignificant group of users but I’d guess that there are more of them than many of us suspect. Over at Lambda Land, Ashton Wiersdorf has an interesting post on what’s new in Emacs in the last decade.

Even if you stay up to date, it’s interesting to see how Emacs has progressed in the last decade. Wiersdorf’s lists several broad groups of improvement:

  • Completions
  • Eglot
  • Projects
  • Tree-sitter
  • Dictionary lookup
    • Flyspell
    • Diictionary definition lookup
  • Visual Line Mode
  • Themes
  • Package Manager
  • Emacs Ecosystem
    • Magit
    • Vertico
    • Consult
    • Corfu
    • Citar

Wiersdorf also has a starter kit, emacs-bedrock that provides some of these improvements for those who would like to move up. If you’d like to update your Emacs experience, take a look at Wiersdorf’s post.

Posted in General | Tagged | Leave a comment

Are You A Cyborg?

Cyborgs. It’s a familiar trope to those of us who enjoy science fiction. I’ve always thought that I’m a bit too old to experience being a cyborg in any non-trivial way but then I read this article by Alberto Navarro . He tells the—possibly apocryphal—story of David, an American cyborg who can work anywhere as long as his body remains connected to the Internet. Then one day he has one of his cybernetic prosthetics (spoiler: it’s called a smart phone) stolen from him by muggers. The result is devastating to his psyche.

So far that sounds like a lame story that introduces the cyborg concept gratuitously but there’s more to the tale. David begins to experience phantom vibrations and even auditory illusions from the missing phone. His experience is, in fact, exactly like those who experience phantom sensations from a lost limb.

The story, true or false, is based on research performed by Navarro and documents an actual phenomenon. Some people do experience phantom sensations when they lose their smart phones or other electronic assistants. You can see the same idea in many science fiction stories: a character endures acute psychological trauma when suddenly disconnected from “the network”.

The article explains how these phenomenon arise but what I found most interesting was the idea the cyborgs are already here and walking among us. That, in fact, we might be one of them. I don’t think that I’d experience those phantom sensations if I were suddenly deprived on my iPhone but, of course, it never leaves my side so I don’t really know.

In any event, I found the article really interesting and am sure that many Irreal readers will too. It’s reasonably short so give it a look if the idea interests you.

Posted in General | Tagged | Leave a comment