Another Emacs Mail Solution

I’ve recently blogged about Emacs solutions to handling email. As most of you know by now, I’ve settled on mu/mu4e and have been extraordinarily happy with it. Still, not everyone has the same workflow or likes the same things. Andy C over at yakshaving.co.uk has another solution leveraging Gnus.

He was using mu4e and elfeed like but didn’t like that they each had their own UI that required him to learn different key sequences to do his work. He decided to settle on Gnus for email, RSS, and mailing lists. There were a few problems to get things working well and you should read his post to see how he solved them.

For me, the big advantage of mu/mu4e is the instantaneous search facility. I no longer worry about sorting messages into special folders; I just dump everything into a single folder and use the search function to find what I need. Andy C has pretty much the same workflow—although he stores emails by year—and had to install workarounds to get decent search with Gnus.

Oddly, even though I have often complained about using more than one editor because of muscle memory problems associated with different key sequences, I have no problem keeping the key sequences between mu4e and elfeed, for instance, separate. Even if I did, it’s trivial to rebind them to be the same so I don’t see the advantage to switching to Gnus because of it.

Of course, many people, including our fearless leader John Wiegley, swear by Gnus. It serves their workflows and makes them productive. But that’s a little different from trying to make Gnus look like some other solution. Regardless, Emacs, as I often say, allows us to have it our own way. If you like Gnus but want a decent way to search your emails, perhaps Andy C’s post can help you achieve it. If you don’t have special needs, like Wiegley does, mu4e provides an excellent solution. Emacs can provide whatever works for you.

Posted in General | Tagged | 3 Comments

Notmuch Video

A while ago I wrote about notmuch and astroid as an alternative to mu/mu4e. Since then lots of folks have told me how much they love notmuch and what a great solution it is for email. There’s even an Emacs client.

I’m very happy with mu and mu4e and don’t have any urge to try something else but if they don’t work for you or if you aren’t an Emacs user, notmuch may be a good solution. It works with Mutt, has its own Emacs client, and, of course, works nicely with Astroid. If you’d like to know more about notmuch, Carl Worth, the notmuch developer, has a video that explains its rationale.

As far as I can see, notmuch and mu are pretty much similar except for tags. Notmuch uses tags as one of its principal organizing methods in addition to search. You can, if you like, essentially recreate a folder structure using tags but I’m not sure why you’d want to. Mu, on the other hand, doesn’t really support tags. You can add a tagging function similar to Gmail but there’re apparently problems with Email servers that aren’t Gmail. In my experience, searching is really all you need, especially since the searching in both applications is excellent and fine grained.

The video is from 2011 when notmuch was still young so there’s been many improvements since then but it’s still useful for giving you an idea of what notmuch can do and why Worth developed it. The video is about 45 minutes long so plan accordingly.

Posted in General | Tagged | Leave a comment

How to Read the Commentary Section of Emacs Packages

Alexandro de Oliveira has a problem that I’ve also experienced. He wants to know how he can read a complete description of a package such as that given on its Elpa page. He asked on Stack Exchange and gave as an example the documentation for undo-tree. I’ve had that exact problem. I’m always forgetting some of the undo-tree keystrokes and that means I have to bring up the source to read the commentary at the front of the source file.

It turns out that there’s a much better way: as suggested by wasamasa, simply use finder-commentary to extract the commentary from the source file. That function is part of the finder package written by Eric Raymond back in 1992 so it’s been around for a long time but this is the first time I’ve heard about it.

If you’re writing a package, this tip should encourage you to spend some time on the commentary section. It can really be useful to your users, especially if the package’s UI is the least bit complicated. As usual, I’m always learning something new about Emacs.

Posted in General | Tagged | 4 Comments

The FBI Proves the Iron Law of Data Collection

About a year ago, I wrote about the FBI’s use of §702 data—supposedly collected to fight terrorism—for routine law enforcement having nothing to do with terrorism. I called it another confirmation of the Iron Law of Data Collection: the idea that once data is collected it will be used for purposes other than the reason it was collected and that, finally, it will be abused.

Newly unclassified FISA Court transcripts show that the situation is much worse than we thought. So much worse that even the FISA Court is worried that things might have gone too far. You should definitely read the Circa article linked above but among other things they report that

  • The FBI illegally shared §702 data with third parties not entitled to have it.
  • The FBI routinely trawls through the NSA’s raw data with no concern for the legally mandated minimization procedures.
  • The FBI collected privileged conversations between attorneys and their clients.

All of this despite the fact that James Comey testified before Congress that “Nobody gets to see FISA information of any kind unless they’ve had the appropriate training and have the appropriate oversight.” The FBI has consistently denied that they’re doing any of this but the FISA documents show that this is untrue.

The §702 legislation is expiring this year and for the first time there appears to be bipartisan skepticism about renewing it. Probably not enough skepticism to prevent renewal but perhaps enough to write firm restrictions on how it’s used into the law.

Posted in General | Tagged | Leave a comment

An Update on Microsoft’s Move to Git

A few months ago, I wrote about Microsoft’s move to git and the scaling problems they were having to overcome. Now Brian Harry has posted an update on their work. They have what they claim is the largest git repository on the planet. At 3.5 million files and 300 GB, there’s no reason to doubt that description.

When Harry first wrote about the move back in February, they had a working system but hadn’t yet moved an appreciable number of engineers over to it. As a result, they didn’t know how well it would scale when thousands of Windows engineers started using it. They now have about 3,500 of the roughly 4,000 Windows engineers switched over and have collected some useful performance statistics. They also discovered that some of their assumptions about how to speed things up were off a bit and have since fixed them.

I’ll let you read Harry’s post (or this Ars Technica article) to see where they stand now. The TL;DR is that the speeds are similar to their old system but they are still working to improve them. One huge improvement is, as you’d expect from git, in branching. That went from an ordeal almost too painful to endure to a simple and easy process. The other news is that Microsoft is making their work available to the public and is moving to an open development model where users can contribute if they wish.

Give Harry’s new post a read. You almost certainly don’t have the problems with your repository that Microsoft does with theirs but it’s interesting none-the-less and shows what can be done to use git with large code bases.

Posted in General | Tagged | 1 Comment

Fontifying Broken Org Links

John Kitchin answers an Emacs Stack Exchange question and provides a handy tip. The question was how to display a broken Org link in the Org-warning face. That turns out to be really simple. If you’re dealing with particularly volatile links, this may be useful to you. Or even if you aren’t, I suppose.

Posted in General | Tagged , | 1 Comment

Henry Spencer and getopt

Kids today! They have it so easy. (Waves cane.) Eric Raymond (esr) has posted a charming vignette that, among other things, illustrates how easy we have it today. The story is set in 1984 when AT&T had just announced that it was going to commercialize Unix. There was great anxiety among the small group of Unix hackers that access to the Unix source would dry up. This was before the GNU manifesto and there wasn’t really such a thing as the open source movement as we know it today.

During a Usenix/UniForum conference, a speaker from AT&T was describing the new getopt function that was intended to bring uniformity to command option processing in the Unix world. Several of the participants pressed the AT&T speaker on whether everyone would be allowed to use this new functionality and were met with evasions. At this point Henry Spencer stood up and announced he would write and share with others his own conforming version.

Esr notes that in many ways this was the start of the hacker/open source culture that we’re familiar with today. A public refusal to put up with having corporations or anyone else lock away source code. It’s easy to imagine that things have always been the way they are today. But that’s not true. As I mentioned the other day, AT&T recently released the source code for Research Unix v.8, v.9, and v.10 but, believe me, things were not always that way. Guys like Spencer and Raymond worked hard to create the world we live in today.

Posted in General | Tagged | Leave a comment

Fontifying Completed Checkbox Items

Matus Goljer (Fuco1) has another excellent suggestion in his latest blog posting. A recent project required a large list of tasks to be completed, which he tracked with Org mode checkboxes. The problem was that it was visually confusing and hard to see clearly the items that still needed to be done. Fuco1 solved that problem by arranging for the completed checkbox items to be displayed in the org-headline-done face. With his theme, that’s a grayed out rendering and easily distinguished from an uncompleted task.

That’s pretty nice but I’m so far behind I didn’t even know about the org-headline-done face or how to use it. Out of the box, Org will display completed headlines (DONE, etc.) in that face if you set org-fontify-done-headline to t. I’d never heard of that so I manually set org-fontify-done-headline to t in the minibuffer to try it out. I’m pretty happy with the result and will probably make it permanent by moving it into my init.el.

Even if you don’t have long task lists, you might like turning the feature on to make completed TODO items stand out. It’s easy to try out temporarily by just turning it on from the minibuffer. If you like it, you can make it permanent.

Posted in General | Tagged , | Leave a comment

A Nice Trick for Literate Configurations

Marco Wahl has a nice Emacs literate configuration that’s worth taking a look at for some of his ideas. What I really like, though, is his trick for making the tangled init.el read-only to remind himself and others not to directly edit the init.el itself. The trick is explained in this tweet from Wahl:

You can see how he does this by looking at the first line section of his configuration. He just puts that first line in its own code block at the beginning or the Org file. If you’re still in doubt, just push the Raw button to see the actual Org source.

Posted in General | Tagged , | Leave a comment

Using Org Mode for Writing

Over at the Emacs subreddit, willmhorne asks how people use Org’s outlining capabilities for essays, books, and other long-form writing. Most Org users have their own answers to this but it’s very interesting and useful to see what others have to say. I especially liked rpdillon’s and kbouser’s answers. They have a developed an organized process that makes writing and sharing as painless as possible.

One of the big problems, especially for writers in the humanities, is sharing work with colleagues who are most likely using Word. A couple of the respondents address that question as well. The best solution I’ve seen for this was captured by Grant Rettke from the Emacs-Orgmode mailing list. It’s a little complicated but could probably be automated fairly easily. It’s perfect for coordinating with coauthors who have the poor taste or misfortune to be using Word or one of its evil siblings.

Posted in General | Tagged , | Leave a comment