Possible Posting Hiatus

As many of you know, The Irreal International Headquarters is in Tampa, Florida. Hurricane Irma is currently bearing down on us although at the moment it doesn’t look as if we’ll get a direct hit. Nonetheless, it’s likely that we’ll at least lose power and be unable to post. If Irreal stops posting for a few days, that’s why.

UPDATE [2017-09-08 Fri 16:16]: is Tampa → is in Tampa.

Posted in Blogging | Tagged | 4 Comments

Reading EPUBs in Emacs

In yet another win for moving your digital life into Emacs, wasamasa has released nov.el, a package for reading EPUBs in Emacs. Until now, I have always opted to get digital content as PDFs rather than EPUBs or MOBIs because of the great tools in Emacs for reading and annotating PDFs.

Now, thanks to wasamasa, we have the ability to read EPUBs in Emacs too. This would be even better, of course, if publishers would give up DRM. Until that happy day, we’ll have to continue using proprietary apps for reading most books but wasamasa’s package is a great start.

Posted in General | Tagged | 8 Comments

Org Mode 9.1 Released

I’ve already updated, of course, but Phil tells me I may have a bit of OCD. In any event, thanks to Bastien and the other contributors for their hard work in producing one of my most vital tools.

Posted in General | Tagged , | Leave a comment

Making a Case for Eshell

Over at the Emacs subreddit, ambrevar has an interesting post in which he makes the case for Eshell. One of the frequent complaints about Eshell is that it doesn’t work like a “normal” Unix shell. Ambrevar acknowledges that but says it’s a good thing. As he points out, even today we have terminal emulators that duplicate the behavior of ancient physical terminals and the standard shells are designed to work with them.

His post is interesting because he approaches the subject as one who has moved as much as possible into Emacs. He even uses Emacs as his window manager. What struck me was that I kept thinking, “Sure, that’s how I do it.” as he explained how he does tasks that are difficult in a Unix shell very easily in Eshell. I never really thought much about it because those ways of working are natural—being the standard Emacs way of doing things—in Eshell.

As ambrevar admits, Eshell is not perfect but it is improving as more folks adopt it as their standard shell and bug and feature requests filter back to the maintainers. I try to use Eshell exclusively although sometimes years of habit having me bringing up bash in the same old terminal emulator. Eshell is just another way of not having to leave Emacs and the comfort of working in the familiar Emacs way.

Posted in General | Tagged | Leave a comment

Webster and Emacs

Yesterday, I mentioned that the 1913 + 1828 Webster’s Revised Unabridged Dictionary that used to be hosted by the University of Chicago appears to be permanently offline. Back in January, I wrote that I had emailed the site asking whether they were planning on putting the dictionary up again. Sadly, I never heard back and the dictionary is still off-line so, as I said yesterday, we have to assume it’s gone for good.

Happily, as I also mentioned, Marcin Borkowski has a nice post on how to get a copy of the dictionary and make it accessible from Emacs. That was always the end goal for me anyway so I spent about 5 minutes following Borkowski’s steps and installed a local copy. I had hesitated before because I didn’t have all the build tools to compile sdcv but since I stopped being stubborn and embraced homebrew, that was no longer a problem.

If you liked McPhee’s method for improving his prose and you want your very own copy of the dictionary that you can access right from Emacs, it’s really easy to get it. Just follow the steps in Borkowski’s post. Even if you’re not an Emacs user, sdcv and the dictionary source will get you a local copy that you can query from the command line. Perhaps there’s a plugin for whatever editor you’re using that can integrate it for you.

Posted in General | Tagged | 2 Comments

Draft #4, The Book

Those of you who read and enjoyed my post on Draft #4, about John McPhee and why you’re probably using the wrong dictionary, will be happy to know that McPhee has a new book, Draft No. 4, that discusses his writing process.

Speaking of the Draft #4 post, I’m sad to report that the 1913 + 1828 Webster’s Revised Unabridged Dictionary discussed in the post is still off line and we can presume it’s not coming back. Happily, Marcin Borkowski (mbork) has figured out how to install it in Emacs so you can still get access to this wonderful resource.

Posted in General | Tagged | Leave a comment

Magit Kickstarter

Regular readers know that I’m a huge fan of Magit. It is, along with Org Mode, one of the killer apps in Emacs. Now Jonas Bernoulli has announced a Kickstarter campaign to fund further development:

Bernoulli lays out his road map over at the Kickstarter page. He’s got lots of exciting ideas—not least a significant speedup—that will benefit all Magit users. Be sure to take a look at the Kickstarter page to see what he’s proposing.

Bernoulli has done most of the heavy lifting on the Magit project for a long time and certainly deserves our support. I have no idea how many Magit users there are but even if there were only 10,000 and each of us contributed $5 (actually 5 CHF since Bernoulli is Swiss) the Kickstarter goal would be met. That’s basically the cost of a latte or a decent beer so most of us can afford it. I’ll make it easy on you: I going to contribute $25 and carry 4 others who can’t afford to help.

Posted in General | Tagged , | 4 Comments

Using EDITOR on a Remote System with Tramp

If you SSH into a remote system from within Emacs, you can have problems with the EDITOR environment variable on the remote system. This can arise when you invoke an application that calls the editor specified in EDITOR.

It turns out there’s an easy solution: the with-editor package can take care of this for you. If you’re using magit, you already have with-editor installed. If you’re not using magit, you can install with-editor from Melpa. Better yet, just install magit, you won’t be sorry. In any event, the details are in this very useful Emacs Stack Exchange entry.

If you’re a Tramp user, you really should take a look at the entry.

Posted in General | Tagged | Leave a comment

Org Mode Folding

As every Org user knows, you can use Shift+Tab to cycle the folding of an Org file among OVERVIEW, CONTENTS, and ALL. That’s really handy and something I use all the time.

Yesterday, I learned something new from this Emacs Stack Exchange entry. What happens if you want to unfold, say, the first 3 headers? It’s Emacs so of course there’s a way to do that. All you have to do is specify a numeric prefix argument, \(n\), and the first \(n\) subtrees and the contents of the \(n^{\text{th}}\) level will be displayed.

You probably won’t need that very often but sometimes it’s just what you need and very useful.

Posted in General | Tagged , | Leave a comment

The Map Library

Recently I’ve written about Wilfred Hughes’ ht library for dealing with hash tables and Nic Ferrier’s kv library for dealing with alists and plists. Nicolas Petton commented that there is also the map library, which is built into Emacs as of version 25.2.

What makes Petton’s map library unique is that the functions will operate on alists, hash tables, or arrays so you don’t need to worry about separate functions for each data type. The functions do the expected things such as getting and putting values, mapping over key/value pairs, filtering, and so on.

Unfortunately, there doesn’t appear to be any documentation but it’s easy to look at the source to see what functions are available. The DOC strings do a good job of explaining what each function does.

If you have code that uses two or more of the supported data types, you should consider the map library. It provides a consistent set of functions that operate on them all. In particular, it makes it easy to change the data type of a variable because most of the code to manipulate it will be the same. As with the ht and kv libraries, the names of the functions and the ordering of the arguments are consistent and intuitive. That makes it easy to remember them.

Posted in General | Tagged | 4 Comments