Org-Noter

I’ve been happily using Interleave to takes notes while reading PDFs ever since I read about it in Piotr Limanowski’s excellent post on Reading for Programmers. It’s a great way to take notes that are synchronized with the PDF.

Gonçalo Santos has produced a similar system, org-noter, that provides much of the same functionality as well as some others. I temporarily loaded it so I could try it out. One thing from the documentation that I liked about it was that it can remember your place in the PDF so that it’s easy to take up where you left off. With Interleave, I do that by making a temporary note that I delete when I continue reading. Sadly, I couldn’t get that feature of note-taker to work. I’m probably doing something wrong but it’s not obvious what.

Other than a couple of minor items in the way it handles the notes buffer, it operates pretty much like Interleave. There are not enough differences to get me to switch but if you haven’t loaded either yet, it’s worthwhile trying them both out.

If you’ve used org-noter and have thoughts on it, please leave a comment and enlighten us all.

Posted in General | Tagged | 2 Comments

Paper Jams

Paper jams. We all know about them, we’ve all experienced them, and we’ve all cursed at them. What most of us probably haven’t done is think very much about them. If you’re like me you just consider them something that happens when a sheet of paper gets a bit skewed or perhaps the humidity is too high. It had never occurred to me that there are people whose sole job is to worry about and find solutions for them. And it’s not just one, slightly deranged looking fellow stuck in a closet somewhere deep in the bowels of Xerox; it’s whole teams of engineers with their own laboratories.

The New Yorker has a really interesting article on paper jams, some of their causes, and the teams of people who work to eliminate them. All Xerox printing presses, from the million dollar giant presses used to print books to the humble office copier are basically the same. The giant presses actually have an advantage—as far as paper jams are concerned—because their size means the paper path can be more linear than that of an office copier where the path contain some sharp turns.

The main problem, of course, is the paper. Low quality paper is much more likely to cause jams. That’s why it’s worth paying a bit more for good copier paper: less jams. But the problem is more than just poor quality paper. The New Yorker article begins with a recounting of an incident in Asia where a Xerox press was being used to print a book. The paper was very lightweight like that in a Bible and the lack of stiffness and humidity in the printing plant caused the edge to droop a little at a critical point starting off a cascade of jammed sheets.

Back at the Xerox Engineering Campus in Rochester, NY, engineers had produced a computer simulation of the jam so that they could study it and engineer a solution. Many different solutions were suggested and discussed before a simple and elegant one was found.

I’m pretty sure that almost all Irreal readers will enjoy this article. It doesn’t have much to do with computers or software but is fascinating nonetheless. Give it a read when you have a few minutes.

Thanks to John Gruber for link.

Posted in General | Tagged | Leave a comment

Emacs Tweaks from Other Editors

Ruben Berenguel has a useful post on Emacs tweaks from other editors. Berenguel works at a company where virtually everyone uses a different editor and even though he’s an Emacs user, he gets to see useful features from the competition.

Berenguel decided to to try to recreate some of those features in Emacs. He begins with Magnar Sveen’s excellent multiple cursors, which many, or perhaps most, of us already use. He then moves on to a few other packages that recreate features from those other editors that make the editing experience easier.

You may or may not want to use any of Berenguel’s tweaks but it’s certainly worthwhile taking a look to see if they’re something that could improve your workflow.

Posted in General | Tagged | 2 Comments

The UPS Follies

Eric Raymond has a splendid rant about the lossage that goes by the name of UPS systems. They are, he says—at all price ranges—garbage. They don’t, as a rule, meet their specs, have reasonable display of errors, or allow for intelligent monitoring of their operation.

Here in Tampa, Florida, a UPS is a necessity. During the summer we get daily thunderstorms that sometimes make the power blink off for a second or two. Just long enough to cause a reboot. Modern Unices are much better at recovering from this sort of thing than they used to be but you sill don’t want unexpected reboots, especially when you can get another before the first reboot finishes.

Like Raymond, I have suffered through the annoyances and inconveniences that using a UPS brings. I used to buy the best ones I could find but, as Raymond notes, that makes no difference. You might as well burn your money. So now I just grab one from Sam’s or Best Buy and throw it away when it dies. I wouldn’t mind spending a little more to get a decent product but that doesn’t appear possible.

Raymond says that making a good UPS isn’t hard and needn’t be expensive. He suggests a little disruption from the bottom. He’s volunteering to write the firmware but doesn’t have the hardware chops to put the rest together. If you know something about that and are interested in improving everyone’s life, let Raymond know. One of the commenters suggested doing a Kickstarter or similar fund raiser to get things going.

Even if you can’t help out, read Raymond’s post. It will make you feel better in a misery loves company sort of way.

Posted in General | Tagged | Leave a comment

Working with Gists in Emacs

Bill Ward has a handy post on how to manage and create Gists with Emacs. It mostly involves installing gist.el and its dependencies. After the installation, you can easily edit existing Gists or create a new one.

If you publish code or other snippets as Gists, this may be a timesaver for you. It’s a short post so there’s no reason not to give it a read.

Posted in General | Tagged | Leave a comment

The Advantages of Blogging for an Emacs User

I, and many others, have written thousands of words about the advantages of using Emacs for blogging. In my case, I could, if I wanted, publish Irreal and virtually never visit the site itself; I can do everything from Emacs. I’ve been blogging at the two incarnations of Irreal for 9 years and would have quit long ago if Emacs didn’t make it so easy and enjoyable.

But today, I want to turn that on its head and say a few words about how blogging has helped me become a more effective Emacs user. It’s not just typing over 600,000 words into Emacs—although that helps, of course. It’s more about what I’ve learned regarding Emacs from blogging.

The first, and most valuable, benefit is what I learn from my readers. Sometimes it’s a matter of asking a question and getting informed answers. More often, though, I write about some aspect of Emacs use and readers help me flesh out my understanding by providing new details and interpretations that I hadn’t considered.

The second advantage is that because I spend a lot of time working on the blog, I’m always looking for and implementing micro-optimization’s to make it easier. Once I’ve written some Elisp to make blogging easier, it’s available for use in other tasks too.

An example of this is the jcs-insert-url function that I wrote about last week. I originally wrote the function to make some blogging task a bit easier but now I use it all the time for adding Web links to emails and other documents. This is typical. Almost everything I do to make blogging easier ends up helping ease other tasks as well.

So the takeaway is that if you want to get better at Emacs, using it for blogging is an excellent way. It’s certainly worked for me.

Posted in General | Tagged | 2 Comments

Mu 1.0 Problem Solved

In yesterday’s post, I wrote that I had installed the new version of mu/mu4e but that the inbox and searches were showing some deleted messages as well as the ones I was looking for. I was gearing up to dive into the code when I noticed that the “extra” messages appeared to be from the same threads as the unread ones. Once I realized that, it was easy to figure out what was going on. A little RTFM brought me to §7.4.3 of the user manual where I learned about the option mu4e-headers-include-related that controls whether related messages (those from the same thread) are also shown. Apparently the default value was changed from nil to t in version 1.0.

I can see where that might be a useful default for some workflows but it’s a disaster for mine. After a bit of thought, I realized that that’s because I get three types of email messages:

  1. Those from the clueful who use the interleaved posting style;
  2. Those from the non-clueful who reply at the top and let their MUA add the original email at the bottom;
  3. Emails from mailing lists.

The first two types always provide any missing context so I don’t need to worry about threads and I always the delete the third after reading them—they’re in the list archives if I need them—so most of the thread comprises deleted emails. That’s why I was seeing a bunch of deleted emails in my inbox. They were from the thread of the current email from a mailing list.

Now that I know the option exists, I can see where I might occasionally find it useful. Happily, the developers have me covered. All I need do is type W in the headers view to toggle it on or off.

One final note: if you like the option and leave it on you should use ] and [ to move to the next and previous unread message rather than n and p. There’s all sorts of useful keybindings for the headers view that you’ve probably forgotten about since you first skimmed the manual. It’s worth taking another look at them.

So the TL;DR is that the “problem” was indeed as configuration issue and after the appropriate adjustment I’m back to enjoying mu4e just as I always have.

Posted in General | Tagged | 3 Comments

Mu 1.0

Good news for all you mu/mu4e users:

I’ve really been looking forward to the “format equals flow” support in the mail reader so of course I downloaded and installed it right away. If you’re a Mac user, the 1.0 version has not yet reached the Homebrew distribution but if you’re compiling it yourself, it’s just a matter of the usual configure, make, sudo make install dance. It worked without problem for me on macOS and will, I’m sure, be just as easy on Linux. Once you’ve installed the new software, be sure to do a

mu index --rebuild

to update your index.

Except for one problem, everything is working flawlessly. The problem is that when I open the inbox or even search for, say, new and unread messages, I get several already deleted messages listed as well. If I do the search manually with

mu find flag:new flag:unread

I get the correct messages listed.

I’m guessing that this is some problem with my configuration because I don’t see how even a minimal check—let alone the three 1.0 alpha releases that the developers made—could miss something like this. I haven’t had any time to devote to tracking down the problem yet so I don’t know what’s going on. If you’re seeing the same thing, please leave a comment so that I don’t waste time bebugging my configuration and so I can let the developers know.

Posted in General | Tagged | 4 Comments

Another Take on Engineering Notebooks

As regular readers know, I’m a big fan of keeping an engineering notebook. I have an Org file named journal.org that most of my day-to-day notes go into but for larger, sustained projects I like to start a dedicated project notebook.

As a result, I’m always interested in how others go about organizing and maintaining their engineering notebooks. Dan Kleiman has an interesting post on his procedures for keeping an engineering notebook. Kleiman uses a completely generic method for his notebooks so his process may interest those of you who aren’t Emacs/Org users.

As I read Kleiman’s post, I kept mentally translating each step into the equivalent Org method. I’m sure those using other tools can easily do the same so Kleiman’s post can be useful for a wide range of users. The main takeaway, for me at least, is that your tools and specific procedures are not as important as organizing your data and scripts and keeping careful notes on what problem you’re trying to solve and the steps you’ve taken to solve it.

The post is relatively short so it’s easy and well worth your time to give it a read.

Posted in General | Tagged , | 2 Comments

The Suit That Would Not Die

It’s very possible that some of Irreal’s younger readers won’t even know what this is about. Older readers will just shake their heads like I did and think, “I thought that was over years ago.” But it isn’t.

Sadly, The SCO/IBM suit lumbers on like a zombie. Just like it has for the last 15 years. Fifteen years! I started to read through the opinion but found I couldn’t bear to go through it all again. When it started, SCO was claiming that it owned the rights to Linux and was demanding license fees from Linux users. A few companies, having scored low in the genetic lottery sweepstakes, actually paid up. Most told SCO to go pound sand and the user community pretty much shunned those who had capitulated. When (we thought) it ended, the District Court had ruled against SCO on pretty much every point.

Now the Court of Appeals has overturned the District Court on one of the key points. From what I can tell from the parts of the opinion that I did read, the ruling hinges on a technical point and does not speak to the merits of SCO’s claim.

I just wish someone would put a stake through SCO’s heart and end this nonsense once and for all. The suit, like the zombie it resembles, is threatening to eat our brains and no sane person wants to live through the drama again.

Posted in General | Tagged | Leave a comment