The iOS Builtin Flight App

This post is a bit specialized—to iOS—by Irreal standards but it’s so useful to those who have an iPhone that I’m going to write about it anyway. I’m not sure if this is new or has been in iOS for a while but it turns our that the iPhone has a builtin flight tracker.

Everything I know about it is in the above post so you should definitely take a look at that but the TL;DR is that you can enter a flight number into the Safari or Spotlight search bar and get all the information about the flight that a dedicated App will typically provide. It also works if you click on a flight number in a text.

This is really nice. Like most of you, I haven’t done much traveling in the past two years but it’s nice to know I can track any flight I’m on or that a family member or friend is on. It’s perfect for knowing when to leave for the airport.

It’s actually easier to use than my dedicated app, which requires me to add a bunch of information before it will tell me about a flight. All I have to do here is enter the flight number. Take a look at the post for the details.

This isn’t about iPhone triumphalism—I’m sure Android has something similar—but rather a celebration of how much easier our digital age makes our lives. Just consider this app. You don’t have to download or buy anything or plan ahead. All you have to do is enter a flight number and you get all the information. Splendid!

Added before publication

Here’s a tweet that makes the same point:

Posted in General | Tagged , | Leave a comment

Org 9.5.4

Yesterday I saw this tweet:

I checked the Emacs-Orgmode mailing list but there was no mention of a new release. Fortunately, Sunday is my day to upgrade my Emacs packages and when I did I noticed that there was indeed an Org-mode update.

As you can see, the tweet says that 9.5.4 is a bug fix release so upgrading is not critical unless you’re having problems. Still, If, like me, you basically live in Org-mode, you’ll probably want to get the latest update to make sure everything is working correctly.

As always, thanks to everyone who fixed those bugs and contributed to make Org-mode one of the jewels of Emacs.

UPDATE [2022-06-06 Mon 14:49]:

The above tweet doesn’t mention Org 9.5.4 being a bug release; that was another tweet that I didn’t include.

Posted in General | Tagged , | Leave a comment

Determining If Emacs Is Running In Terminal Or Gui Mode

Even if, like me, you mostly run Emacs in GUI mode, it’s sometimes desirable to invoke a terminal instance. Mostly it doesn’t matter which mode you’re in but there are a few things—font colors, for example—that you may want to set depending on which mode you’re in.

That means you need a way of determining the mode you’re running in. As Bozhidar Batsov tells us, that’s not hard: simply test the variable display-graphic-p. The problem comes when you have both modes running in a single instance of Emacs. In that case, one of the color schemes, say, is going to be wrong.

Batsov has a solution. The answer is to make the mode test in a after-make-frame-functions hook function. That way you can make frame specific settings for the appropriate mode. Here’s the example Batsov gives for setting the font text:

(add-hook 'after-make-frame-functions
  (lambda ()
    ;; we want some font only in GUI Emacs
    (when (display-graphics-p)
      (set-frame-font "DejaVu Sans Mono 28")))

As you see in this example, the code runs in the proper frame environment and the resulting customization is set for this frame only. That allows fine grained configurations even when an Emacs instance has both types of frames. Problem solved.

Posted in General | Tagged | Leave a comment

Commercial Emacs

In a followup to his recent post on Modern Emacs, Bozhidar Batsov has a short offering that talks a little about Commercial Emacs. It’s a fork of GNU Emacs but it’s not the first one. There have been several others, most famously XEmacs, which was a reaction to the slowness in getting changes accepted into GNU Emacs. This latest fork was, as far as I can tell, made for the same reason.

The list of things the Commercial Emacs developers say they’ve fixed includes several long standing problems such as (finally) doing something about the long lines problem and integrating tree-sitter to replace the slow and brittle regex-based font locking code. There are other changes, as well. You can see the whole list in either Batsov’s post or the README at the Commercial Emacs GitHub site.

I’m a little surprised by the fork because as far as I can tell, Emacs development is relatively speedy and there have been regular releases so the situation is different from what it was when XEmacs was forked off. On the other hand, there are a lot of FSF politics to negotiate when you want to make a change. Sometimes changes are rejected for political—as opposed to engineering—reasons.

Whatever the reasons, I’m sure that both distributions will benefit from new the blood and ideas.

Posted in General | Tagged | Leave a comment

Red Meat Friday: Duck Duck Go and Microsoft

There’s been a huge number of hot takes—mostly on twitter, of course, but elsewhere as well—about Duck Duck Go (DDG) not blocking Microsoft tracking scripts. The hot takes all treat the matter as a betrayal of DDG’s users and express their outrage. The problem is that all the “hot takers” don’t know what they’re talking about—not just metaphorically but actually.

They think they’re talking about DDJ’s search engine but they’re not. They think they’re talking about DDG letting Microsoft tracking scripts into their search results but they’re not. They all assume the non-blocking of Microsoft involves the DDG search engine. It doesn’t. It involves their browser. “Browser?”, you say, “What browser?” Most people didn’t know DDG even has a browser. I certainly didn’t. But they do and that’s what this is all about.

Gabriel Weinberg, founder and CEO of DDG, addresses what’s really going on in this reddit comment. You should read Weinberg’s comment before you form any opinion about the controversy.

When you think about it, DDG not blocking tracking scripts in their search results doesn’t even make sense. After all, the search results are just a bunch of links generated by DDG so how would a tracking script sneak in? Once you follow the link, of course, all bets are off but that has nothing to do with DDG and there’s nothing they can do about what happens on a target site.

Most of the responses to Weinberg’s comment were supportive. Those that weren’t were clearly from people who didn’t want to give up their outrage. There were questions like, “Why would you even be in an agreement with Microsoft?” That’s something that Weinberg answers explicitly in his comment: Indexing the Web is so expensive (about a billion dollars a year) that only Google and Microsoft can afford to do it so every other search engine has to reach a data sharing agreement with one of them. Most of the other non-supportive comments were also from people who obviously didn’t read Weinberg’s comment.

None of this means DDG is perfect—as even Weinberg admits. I’m still upset at them for filtering information about the Ukrainian mess but that doesn’t mean we get to make up things to be angry about. If you’re still mad about what DDG is doing, reread Weinberg’s comment and notice that even with their dispensation to Microsoft, they’re still doing more than the other browsers to combat snooping. And, again, this is in their browser, not search.

Posted in General | Tagged , , | Leave a comment

Making Emacs Modern

Bozhidar Batsov has a post on one of my favorite hobbyhorses: making Emacs more modern. I’ve written about this several times. See here and here for example. Batsov is not sympathetic either. As Batsov notes, almost all these proposed modernizations are trivial things like “start in dark mode” or “show line numbers by default”. Others may require loading a package—such as lsp-mode or company-mode but are also easily available right now. Still others are essentially impossible (even if they were desirable) such as rewriting Emacs in some other language, which would disable the huge collection of third party packages. Finally, we have proposals to cripple Emacs by making it mouse-centric.

The thing is, most of the people making these suggestions are not Emacs users and almost certainly never will be. They’re always going to prefer an editor with glitz and bling so even if Emacs made all the changes they’re demanding, they’d still go elsewhere.

Emacs has seen tremendous progress lately with such things are native compilation and a host of lesser improvements and none of it would have been possible if the developers had spent their time making silly cosmetic changes. Batsov notes that there are plenty of “modern” editors that are less popular than Emacs so (visual) modernity is no guarantee of popularity.

Being an Emacs user is great. One of the few downsides is having to listen to the constant dirge demanding that it be modernized.

Posted in General | Tagged | Leave a comment

A Clueless Journalist on Apple’s Self Repair Program

Long time readers know that Irreal doesn’t hold journalists in high regard. Oddly, the worst offenders are journalists on the tech beat. It’s odd because you’d expect them to know the difference between a computer and a composter but they often seem more confused on the difference than the general public.

A quintessential example of this is Sean Holister’s article in The Verge complaining that APPLE SHIPPED ME A 79-POUND IPHONE REPAIR KIT TO FIX A 1.1-OUNCE BATTERY. The level of cluelessness here is hard to capture. When I first saw the headline, I snorted in contempt and moved on. Fortunately, John Gruber is made of sterner stuff and after reading the article wrote a brilliant takedown of it.

But really, you don’t need a reasoned rebuttal of this nonsense. Just the headline is enough to tell you the writer doesn’t have any idea what he’s talking about. Holister seems to think that an iPhone is just a 21st century Heathkit that anyone should be able to work on with a screw driver and a pair of pliers. It’s not, of course. It’s a miracle of miniaturization and manufacturing that fits more power than that of a 20th century computer into a package smaller than a deck of cards. Of course it requires special tools and knowledge to work on.

Holister’s article boils down to the entitled whining of someone who thinks he should be able to replace an iPhone battery with a screwdriver and a one-sheet set of instructions and to do it for less than Apple or one of their authorized repair centers charges. Is it any wonder that everyone hates these clowns and holds them in contempt?

Posted in General | Tagged | Leave a comment

Elisp Cheat Sheet

Wow! This post from Mickey is something I had no idea about. In Emacs 28, there’s a builtin cheat sheet for Elisp functions. You call shortdoc-display-group and are presented with a list of categories or “groups”. When you choose a group, you get a cheat sheet that covers all the Elisp functions in that category.

It’s easier to try than to describe. Just call shortdoc-display-group, pick a group, and take a look at the resulting cheat sheet. To the first order, that’s all there is to it but, of course, it’s Emacs so there is a bit more. You can extend the cheat sheets. See Mickey’s post or the documentation for more information on that.

If you’re an Elisp programmers this is a boon. There are a lot of Elisp functions and no one I know has memorized them all. You can, of course, look them up in the manual but it’s harder to locate the function you need and not nearly as convenient. If you do a lot of Elisp programming it’s probably worthwhile to bind a key sequence or alias to shortdoc-display-group. One could, for example, set the alias cheat to shortdoc-display-group. That’s easy to remember and a quick way of invoking the command.

This is a really worthwhile (and more or less hidden) addition to Emacs 28. I’m really glad to have it.

Posted in General | Tagged , | Leave a comment

Creative Writing With Emacs

If you’ve been around Irreal for a while you know that I love reading about how people are using Emacs for non-engineering/scientific purposes such as creative writing. It’s hardly a surprise that creative writers, for example, find Emacs a superb tool for their writing. After all, its raison d’être is the efficient entry and editing of text. Of course, Emacs’ superiority doesn’t stop there. Its configurability means that each writer can adjust it to exactly match their individual workflow.

Christopher Fin has an great post on tips for writing novels with Emacs. The post lists some of the packages he uses and why he finds them useful. One interesting feature of his workflow is that he has slightly different modes for “writing” and “editing”. The writing mode is the creative part where he puts his story into words. In this mode he turns off error-checking packages (like git-gutter-mode) and turns on things like Olivetti mode. In editing mode he turns on things like flyspell-buffer and langtool-check-buffer that help with editing his manuscript.

Another useful feature that Fin added was some custom word counting functions. He writes in Org mode so there’s a certain amount of boilerplate in the buffer. He solves that by exporting the buffer to text and running his word counter on that. That’s a nice trick worth stealing if accurate word counting is important to you.

Fin’s post is specifically intended as a selection of things he’s found useful for book writing with Emacs not as a comprehensive guide. For a more complete guide, he points to Jacob Moena’s post on Creative writing with Emacs. Moena gives much more detail on how he uses Emacs and packages for his writing. It’s a long post but worth reading if you’re interested in using Emacs for creative writing.

These are two very worthwhile posts and deserve your attention if you use Emacs for writing.

Posted in General | Tagged , | Leave a comment

The EFF Announces the End of Life for HTTPS Everywhere

The EFF has announced the end of life for their HTTPS Everywhere program. This might seems like a bad thing but it isn’t. The EFF says that their browser extension is no longer needed because all the major browsers now offer the same thing natively.

The original idea was to keep the Nosy Parkers and nannies out of our business by automatically defaulting to HTTPS when possible. There’s no longer any need for that because the browsers are doing it on their own.

Some browsers need to be configured to implement it, others, like Safari, just do it out of the box. Regardless, there’s no longer a need for the HTTPS Everywhere extensions.

When it comes to protecting ourselves from those who would snoop on our activities, victories are thin on the ground so it’s nice to have this one. Doubtless the NSA can break into our HTTPS sessions if they really want to but they were never the problem for most of us. Rather, it’s the ISPs and others who are vacuuming up our information so they can sell it to data brokers. Using HTTPS makes it harder to do that. Their reaction to DNS over HTTPS shows how much of this snooping is going on and why it’s worth our while to resist it.

Thanks to EFF for their great work and encouraging the browser manufacturers to bake this capability in. I’m in favor of anything that makes the snoopers’ lives more difficult.

Posted in General | Tagged | Leave a comment