The 2026 Ig Noble Prizes

We nerds have no problem understanding, at least at a general level, the Nobel Prizes. We may not understand the details of the physics, chemistry, or biology involved or the exact details of what the winners did to win the prize but we understand the general story. Many people do not.

On the other hand, the Ig Nobel Prizes are generally understood by everybody. A common misconception is that the Ig Nobel prizes are for silly and unserious research but that’s not quite right. The truth is that the winners have produced legitimate research but research that does not rise to the level of world changing. They win the prize because the subject of their research sounds amusing.

There is, for example, research on what, exactly, a kiss is, the physics of blowing your nose, the optimum shape of urinals, the pleasing odors of newborns, and the energy efficiency of cockroach milk versus cow milk. None of these represents a significant leap forward in human understanding of our world but they do increase our understanding of our environment. One can reasonably ask, “What do you consider more important: a splash-free urinal or the latest quantum particle?”

In any event, take a look at this years Ig Nobel Prize winners and enjoy celebrating the less significant research results.

Posted in General | Tagged | Leave a comment

Why Irreal Doesn’t Do Politics

Most Irreal readers know that we here at Irreal have a strict rule against dealing with politics. It’s not that we don’t have political opinions, it’s that we think they’re mainly relevant in the voting both and shouldn’t spill over into our day-to-day life.

Marco Arment, who is well known in tech circles, has a beautiful post on politics in everyday life that really resonated with me because it reflected my own views so faithfully. Arment tells the story of some of his neighbors while he was growing up. He didn’t know or care about their politics, only that they were good neighbors and helped his family and their other neighbors whenever they could. He wonders why he should be expected to shun good people simply because their politics differ from his.

Sadly, the opposite view is prevalent today. If you’re a Republican, a Democrat is one of the “other” and vice versa. I remember years ago reading someone saying that they could never date a Republican. That struck me odd and I couldn’t understand it. Why, if you met someone you liked and found attractive, would their politics matter?

My family and I have good friends of many political persuasions and we get along well by simply not dwelling on our differing political views. Sometimes we even discuss politics but always with respect for each others’ views.

One of the worst aspects of this is the dismissal of someone’s (nonpolitical) views and work simply because of disagreement with their politics. In our field, Richard Stallman and Eric Raymond come to mind as targets of this. Despite their significant contributions, some would dismiss them because they don’t like their politics. The world would be a much better place if everyone adopted Arment’s views.

Posted in Blogging, General | Tagged | Leave a comment

How Advertising Corrupts

Regular readers know that the Irreal bunker is a resident of the Apple Exosphere but we don’t consider ourselves fanbois. We like Apple but it’s not a religion. One area where we are especially critical of Apple is their embracing of advertising. Not advertising of Apple and its products, of course, but of its deciding to sell advertising spots to third parties that sully their users’ experience. The inevitable end is that the user gets replaced by the advertiser as the customer. It’s an ugly and disgusting process and those who pursue it deserve the backlash that they will surely experience.

Case in point: General Motors. Despite fierce opposition from their customers, GM decided to eliminate Car Play from their new cars in favor of their own multimedia system. Their given reasons for this are so laughable that they don’t deserve comment. The real reason, of course, is that they want to capture user data so they can sell it to advertisers. And so the car buyer is replaced by the advertiser as the customer.

We nerds are probably going to tell GM to go pound sand and take our money elsewhere but what about the normies? Will they look elsewhere or will they just shrug and go along? Now, serendipitously, we have an answer. The TL;DR is that Honda was behind in their electric vehicle program so they arranged with GM’s Chevrolet to sell their EV under the Honda brand. The vehicles are identical in every way that matters except one. Honda includes Apple CarPlay and Android Auto integration. It’s the perfect A/B test1. The results are just what you’d expect. Honda significantly outsold Chevrolet. See the article for the details.

GM and the suits that drove the decision to drop Car Play in the face of customer fury deserve what they get. Maybe a couple of years of plummeting sales will open their eyes and result in a more astute C-sute.

Between writing and publishing the above, I stumbled upon another egregious example. LG Smart TVs were caught spying on their customers. This goes way beyond the sadly normal practice of capturing what the user is watching. It includes recording ambient audio even when the screen is off and the TV unplugged from the network2; scanning for other devices on the local network, including things like smart watches; and even discovering nearby WiFi systems, their signal strength, and their locations. All this information is sent directly to LG’s targeted advertising arm.

Once again, we see the users—the buyers of LG’s products—being replaced by advertisers as the customer. People who care about their privacy should not buy products from this company and, really, never enable smart TV features or plug them into the Internet.

Footnotes:

1

John Gruber, over at Daring Fireball is not so sure. He posits that maybe Honda is just a more popular make or better at selling cars. I’m not convinced by his demurrals.

2

When the TVs are not attached to the network, they store the audio until they get reattached.

Posted in General | Tagged | Leave a comment

Jinx Update Number …

… I’ve lost track. I’ve been using Jinx for my spelling correction for a while now and really like it. When I first started, my main problem was that the selection procedure described in the documentation didn’t work for me. I was almost certain that was because of an interaction with Ivy; my commenters agreed and offered some things to try.

After some experimentation, I still wasn’t able to get that aspect of Jinx working. I decided to wait for Emacs 31 to revisit the issue. Emacs 31 is here but I still haven’t addressed the problem. Most of the reason for that is that I’ve developed some efficient muscle memory for dealing with the problem. I have jinx-correct bound to Ctrl+; and when I call jinx-correct, I continue holding down Ctrl and can easily move down in the list of alternatives by pressing n. Usually the first choice is the one I want so it’s only a single press. Then I type Return to update the text.

That seems like a little more work than simply pressing a number but I don’t need to move my hands or reach to do it so it seems easy to me. I’ll probably do a bit more research and get the default method working when I get a chance but in the mean time, I’m pretty happy with how it’s working for me now.

I’m really enjoying how easy it is to put an “unknown spelling” in a variety of places—the current file, the current directory, or in a personal global dictionary—and am happy I switched. If you haven’t tried it yet, you should give it a spin.

Update [2026-09-09 Wed 11:55]: Fixed title typo.

Posted in General | Tagged | Leave a comment

Make Git Ignore Everything By Default

Alex Pliutau over at Package Main has some sage advice about Git usage that hadn’t occurred to me. The advice is simple: ignore everything by default. The idea is to avoid filling up your repository with junk. Things like generated files, OS generated files having nothing to do with your project, IDE configuration files, AI slop, and even—most critically—secret credentials that are somehow always seeping into git repositories.

All that happens because you didn’t think to add them to the .gitignore file. And it’s an ongoing problem: new files that shouldn’t get tracked are being created all the time. Pliutau’s idea is simple. Flip things around by ignoring everything by default and then add the files you do want to track explicitly.

That turns out to be easy. You simply add * as the first line of your .gitignore file telling it to ignore everything. Then you add the exceptions to that policy on subsequent lines. See Pliutau’s post for any example. You don’t, of course, have to add, say, each C file by hand. A simple !*.c gets them all.

I really like this idea. Like most great ideas, it’s simple yet powerful. I wish it had occurred to me early on. My .emacs.d repository, in particular, is a total mess with all sorts of junk that shouldn’t be in there. It’s been on my list of things to clean up for years. Maybe Pliutau’s hint will inspire me to finally do so.

Posted in General | Tagged , | Leave a comment

Prot’s Doric Themes

As many of you know, my idea of a theme is to set the background to “oldlace” and the cursor to red. For the rest of it, I just take what Emacs gives me. That sounds pretty haphazard but it works out pretty well. It has enough contrast to be easy to read without searing my eyeballs and has enough syntax highlighting to be useful without being overpowering.

Prot (Protesilaos Stavrou) has a much more refined sense for these things. He considers what colors go well to together and things like contrast levels. Just the oposite of my “do with me what you will” approach. Nevertheless, I mostly don’t bother much with formally defined themes although I do occasionally like to take a look at them.

The reason for this post is Prot’s latest release of his Doric Themes. They’re sort of minimalist, like my non-theme theme but still very nice looking if you don’t want your Emacs screen to look like an arcade. The doric-almond variation is, in particular, very similar to my color scheme. Mine has a little more contrast: the foreground text is a bit darker and the keywords in my code buffers are a blue that’s slightly brighter than doric-almond’s light green. Still, it’s a theme that I’d be comfortable with if I hadn’t taken the easy way.

Some people have multiple themes and change them according to the time of day, their mood, the phase of the moon, or whatever. I’d hate that probably for the same reason that I don’t do well with trying to use different editors: I’d always be confused as to what’s what.

If you’re looking for a minimalist theme and my method seems too minimal, take a look at Prot’s Doric Themes. There are several variations in both light and dark mode.

Posted in General | Tagged | Leave a comment

Optimizing Startup With Use-package

James Cherti has another excellent post, this time on optimizing Emacs startup with use-package. The idea is that many configurations load a substantial number of packages and that this can cause a significant increase in startup time.

Most of you know by now that we here at the Irreal bunker refuse to worry about that because, after all, we hardly ever restart Emacs. Still, plenty of people do worry about it and there’s nothing wrong with learning a few easy to implement principles that will speedup Emacs startup without having to obsess about tiny details.

The TL;DR is to get use-package to defer loading of packages until they are actually needed. Most Emacers who aren’t complete n00bs already know this. The question is, how exactly, to specify the use-package commands to achieve that.

The obvious answers aren’t the right ones. For example, the :defer keyword seems like the natural answer but Cherti explains why this isn’t usually necessary and that it doesn’t do what you probably think it does. It’s much better to use one of the commands that implicitly defer loading but also arrange for autoloading the required functions when they’re needed.

Cherti also explains how to get use-package to add logging information to the *Messages* buffer to help with understanding the load process. There’s a lot of information in Cherti’s post and it serves as a handy reference for how to use use-package to control the loading of packages at startup time. If you’re at all worried about startup time or just want to understand how to use use-package to control package loading, take a look at his post.

Posted in General | Tagged | Leave a comment

🥩 Red Meat Friday: The EU Is Becoming Tiresome

Apologies to my European friends but the EU—or rather its regulators—is becoming tiresome. It’s bad enough that they treat American tech companies as piggy banks—like this almost billion dollar fine because Uber used automated systems to identify and temporarily suspend drivers suspected of fraud—and promulgate regulations that provide European citizens absolutely no benefit while depriving them of the latest technology such as the enhanced Siri from Apple. According to that last link, even European citizens are fed up and protesting the silliness. It doesn’t seem to have had any effect. The regulators keep right on disrupting everybody and everything because…reasons.

Even the much vaunted GDPR cookie rules that were supposed to protect us from online snooping have only made matters worse (see footnote) and subjected the whole world to annoying dickovers assuring us that they value our privacy so would we please let them surveil our activities. Really, their whole regulatory establishment is in need of adult supervision.

All of that is bad enough but this is going too far. Despite repeated, failed attempts to mandate an encryption backdoor, the Commission is trying again. This despite the unanimous opinion of virtually everyone who knows what they’re talking about that a “safe” backdoor is imposible and among other things would be disastrous for digital commerce of all types. Meanwhile, the bad guys will simply roll their own.

What’s worse is that this latest effort will only encourage other jurisdictions to do the same thing. We here in the U.S. can look forward to similar proposals soon.

Posted in General | Tagged | Leave a comment

The Vim UserGettingBored Autocmd

Evan Hahn has an amusing post about the Vim UserGettingBored autocmd. Autocmds in Vim are essentially like hook functions in Emacs. They get fired when certain events happen in the editor.

Way back before Vim 6.0, Bram Moolenaar added the UserGettingBored autocmd to the Vim documentation. It was a joke and the command didn’t actually do anything—or rather, it was never invoked and didn’t really exist. It was like an Emacs hook that was documented but didn’t actually occur. The documentation said “When the user hits CTRL-C. Just Kidding.” In 2013 the documentation changed to “When the user presses the same key 42 times. Just kidding! :-)” and, there were various other tweaks along the way. Finally, in 2022 an unofficial plugin was created by Mike Smith that actually implemented the autocmd and did something. You can read what it was in Hahn’s post.

None of this matters at all, of course, except to provide evidence that Vim users can be as whimsical as us Emacs users. You probably won’t see anything like this in VSCode. It wouldn’t be “professional”.

Posted in General | Tagged , , | Leave a comment

The Newcomers Presets Theme

As the result of a long standing discussion on the Emacs devel list, Emacs 31 comes with what amounts to a starter kit called newcomers-presets1. The idea is to provide newcomers with a set of useful configurations to help them ease into Emacs. It is, however, much more than training wheels for n00bs. The presets described in it are ones that most experienced Emacs users are already using.

I know this because last April Sacha Chua wrote a splendid post that describes what’s in it. I somehow missed it back when she first posted it but she mentioned it in the latest Emacs News. As I’ve said before, I don’t usually write about things that she’s already covered in Emacs News but I broke that rule yesterday so I might as well break it again, especially since her post is especially worth your attention.

When newcomers-presets was first introduced I didn’t pay too much attention to it but then Prot recommended it for experienced users as well as beginners. The problem was that I was unclear on what exactly it did. Then I saw the reference to Chua’s post. It has a comprehensive list of what it does along with a explanation for each setting.

I won’t be using it because I’m not a fan of starter kits for experienced users and because even if I like everything in it today, it could change tomorrow. It’s better, in my opinion, to see what’s in it and add the things you think are useful to your own configuration. Chua includes a handy “Copy code” button with each item to make that easy.

Footnotes:

1

For some reason it’s described and implemented as a “theme” but actually has little to do with themes as we normally think of them.

Posted in General | Tagged | Leave a comment