Deleting Mail by the Page in Mu4e

Álvaro Ramírez is a recent convert to and fan of mu4e. He’s been using the system to handle his 4 email accounts for 5 months and is happy with the results. There is a problem though: with 4 email accounts he gets a lot of spam. That’s mostly going into his spam folder, of course, but he still needs to check for false positives so he occasionally checks the spam folder for misclassified messages.

The problem arises because he now has several pages of messages to delete and mu4e doesn’t provide a convenient way of deleting whole pages of messages. But, as Ramírez says, this is Emacs so it’s straightforward to add it. Straightforward and easy as it turns out. Take a look at his post to see he accomplishes the task with just a few lines of code and the help of Roland Walker’s window-end-visible package.

If you’re an elfeed user—and you should be—you may be interested in some similar code that he uses to mark entire pages of elfeed entries as Read. I’m not sure of his use case for that but if you’re interested, here it is.

Posted in General | Tagged | Leave a comment

Proof Reading with Text-To-Speech

Via Wilfred Hughes here’s a really neat trick for those of you who write things other than code:

I hadn’t thought of this but as Simler says, these are exactly the types of errors I miss when I proof a document by reading it.

Posted in General | Tagged , | Leave a comment

Rob Pike’s Personal Unix History

Rob Pike gave an really nice talk on Unix hisotry as he experienced it. If you’re a Unix-head you already know who Pike is. If not, Pike was one of the researchers at Bell Labs who worked on Unix and Plan9. He’s the coauthor (with Brian Kernighan) of The Unix Programming Environment, which is still in print after 35 years. He also famously designed UTF-8 on a placemat over dinner with Ken Thompson. His software projects include the Sam and Acme program editors and, more recently, the Go programming language which he developed with Ken Thompson and Robert Griesemer at Google.

One of the parts of his talk that I especially enjoyed was his discussion of the ed editor. It’s easy to dismiss it today as a primitive line editor but Pike says that at the time it was so much better than anything else it seemed like a miracle.

The video is an hour and 37 seconds so you’ll have to find a spare hour to watch it. The video displays the title screen for almost 4 minutes so you’ll probably want to skip to the 3:45 point to watch it. As I said, it’s a very nice video and you’ll definitely want to watch it.

Posted in General | Tagged | Leave a comment

Adtech Prepares for a Big Hit

A series of complaints targeting user information gatherers, data brokers, and third party users of that information could portend a tsunami bearing down on the adtech industry. In what could be the first test of whether GDPR enforcement is going to have any teeth or just be an annoyance for Web site owners who aren’t necessarily selling anything, the complaints brought by Privacy International against seven companies could result in billions of dollars in fines.

Industry spokesmen are whining that draconian fines could destroy the adtech industry and that could be bad for consumers. Left unsaid is how not having our private and sensitive information collected, collated, and sold is “bad” for us.

The argument, I suppose, is that content on the Web is largely paid for by advertising and that without adtech the content will disappear. I’m not convinced. Irreal has linked to several studies in the past showing that targeted advertising doesn’t really work for the advertisers, is the source of a huge amount of fraud, and is a major vector of malware. The only ones who appear to reliably benefit from it are those selling it.

The real danger for adtech is that these complaints could be just the beginning. The industry won’t clean up its act unless it’s forced to and hefty fines are probably the best way of doing that. We can expect, therefore, that more complaints will be filed.

Posted in General | Tagged , | Leave a comment

An Emergency USB for When You’re Stuck on Windows

Gustavo A. Ballen has an interesting story about his journey to Linux and Emacs. Ballen is a PhD student in the biological sciences and although Emacs did not come naturally, he soon came to rely on it. He also became a dedicated Linux user both at his lab and at home. But during an internship and a few other occasions, he found that Linux machines weren’t available and he had to use Windows.

Most of us know how disorienting it can be to be dumped into an unfamiliar environment without access to our normal tools. After a few times of finding himself stuck in this situation, he decided to do something about it. Remembering that Emacs is often considered a mini-operating system, Ballen decided to build a USB with executable images of Emacs and his other tools for when he was working on Windows systems. Then he could take his familiar and comfortable environment with him.

Most of his post is a step-by-step go by for building such a USB image. The Emacs instance is going to have all the usual problems of Windows Emacs but Ballen says that the execution speed isn’t effected. This is probably a good solution when you’re a guest user of a Windows machine and solutions like virtualizing Emacs are not available.

If you’re in Ballen postition and find yourself occasionally using Windows machine that you can’t modify in any significant way, you should take a look at Ballen’s post and build your own emergency USB.

Posted in General | Tagged | Leave a comment

De-Googlifying Your Life

I came across a post from Kev Quirk on why he was ditching his Android phone. He’s trading it in for an iPhone SE. The TL;DR is that Quirk tired of having Google pry into his life and record everything he did. There’s hardly any technical detail in the post and his reasons for wanting to leave the Google ecosphere have been well covered by Irreal so it wouldn’t normally be of much interest to our readers—except as a bit of Apple triumphalism—but for the backstory.

The backstory is that the ditching of his Android phone is the latest episode in his year long effort to de-Googlify his life. He wrote a series of eight short posts about that effort in which he describes how he replaced Google tools one-by-one until he was left only with what he considered irreplaceable Google services. His phone was one of the original irreplaceable parts so he’s still making progress.

He started with what he described as the “simple stuff,” replacing Chrome with Firefox and Google Search with Duck Duck Go. He moved on from the low hanging fruit to the much harder to replace Gmail, GCalendar, and Contacts. He was, in all cases, able to find replacements that he felt were at least as good or better than their Google counterparts.

Of the services that he found irreplaceable, the only one I agree with is YouTube. That’s partly because (1) I don’t do social media of any kind except for Irreal, and (2) the Apple ecosystem provides me with good alternatives, which despite what Quirk says, have much better privacy policies.

The whole series is interesting and worth a few minutes of your time.

Posted in General | Tagged | Leave a comment

Refiling in Org Mode

Longtime Irreal readers may remember my post on Aaron Bieber’s talk on moving from Vim to Emacs that he gave to the Boston Vim Meetup back in 2015. Since then, I’ve mentioned him in a few other posts.

The other day, I saw a pointer to a post of his from a year and a half ago on refiling in Org mode. It turns out that the refiling functionality is highly configurable and can be adapted to your particular workflow. The majority of the post discusses how to specify the destination of the refile.

There’s a lot of good information in the post that I didn’t know. If you’re an Org user, you should definitely take a look at it.

Posted in General | Tagged , | Leave a comment

Troy Hunt on Why Passwords Aren’t Going Away

I was trying to create a Web account with my credit card company so I could update some information. The process was painful beyond endurance and their password policy revealed that they weren’t using the best practices method of hashing and salting with something like bcrypt. I kept thinking that there’s got to be a better way of securing sites than passwords.

Troy Hunt, whose security work Irreal has discussed many times, makes a cogent argument for why passwords aren’t going away any time soon. There are, to be sure, better methods of verifying user identity but none of them is going to replace the password. The reason for that is also the reason you see so many stupid and horribly insecure password policies on the Web: friction.

Users have a low tolerance for friction so Web sites with something to sell make it as easy as possible to sign up and log in1. Otherwise the users won’t be there. Some of the alternative methods don’t seem much harder than using a password but users are familiar with passwords and understand how to use them. That clever, vastly more secure, new method you’re proposing? Not so much.

So companies keep on using passwords even though much better methods exists. Read Hunt’s post for his complete—and much deeper—analysis of the situation.

Footnotes:

1

Well, other than my credit card company, apparently.

Posted in General | Tagged | Leave a comment

A Win for Open Access

In a win for open access in publishing two major funders will no longer cover publishing in hybrid journals. The two funders, The Wellcome Trust and the Bill & Melinda Gates Foundation announced that they will not provide research funding unless the results are made publicly available for free at the time of publication. They joined a consortium of 11 European funding agencies with the same policy.

This is, I think, the proper way to force academic publishers like Elsevier to adapt their business models to the Internet age. They will kick and scream at losing their ability to rent seek but their business models depend on the free content that researchers provide to them. Researchers, on the other hand, depend on the funding agencies to finance their research. If that funding is made contingent on publishing in an open access journal, they will do so, even foregoing a more prestigious closed journal.

Taking a broader view, this could hasten the demise of the academic publishers. Despite the notorious difficulties of digital preservation, one can reasonably argue that the publishers no longer provide any added value. What researcher is going to trek to the library, dig out a dusty journal, and Xerox the paper they’re interested in when they can bring up a copy on their office computer? The publishers don’t mind this because they’re still charging the university a hefty subscription fee to provide the on-line access. But if their content dries up because researchers are publishing in on-line journals that provide access for free what is the rationale for their existence?

Posted in General | Tagged | Leave a comment

Implementing Strings

Andreas Zwinkau has a very nice article on strings and how to implement them. If you’re a C programmer, your first reaction might be, “Meh. They’re an array of bytes. What’s to implement?” If you’re, say, a Python programmer, you may not have thought about the question because, after all, they’re a built-in primitive type.

But there are interesting questions to be asked, even for the C programmer. As a single example, it used to be that strings were made up of a series of characters, each a single byte. In these days of Unicode, that’s not true even for the most parochial of middle American programmer with no intention of having users outside his town, let alone his country.

The first interesting question is string length. A simple byte count is no longer adequate when a character can be 1, 2, 3, or 4 bytes as they can in UTF-8. On the one hand, you need a byte count for low level operations such as allocating space for the string or copying one string to another. But very often, it’s the character count that the application programmer is interested in so you need to record both or have any easy way of calculating them.

Some programming language purists have railed for years about the traditional C method of marking the end of a string with a NULL byte and calculating string length by simply scanning down the string looking for the NULL and counting the bytes as you go. Yes, it’s computationally expensive and yes, it can be a source of subtle bugs but it never bothered me or—I’d wager—any competent C programmer. Regardless, it’s clearly not adequate in a Unicode world so other implementations are needed.

A large part of Zwinkau’s post is concerned with this question but there are other interesting questions as well. If you’re a programmer, you should definitely take a look at the article. It doesn’t reveal any earth shattering, new, magical methods but it does show how to solve some of the problems involving strings that few of us have to worry about.

Posted in Programming | Tagged | Leave a comment