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

Blocking Elsevier

I’ve written before about Sci-Hub and their fight with the publishing industry (1, 2). It’s easy to see both sides of the argument but one side, the publishers, have acted in ways that deplete whatever goodwill they might have had.

Boing Boing is reporting on the latest skirmish. Elsevier sued Bahnhof, an ISP in Sweden, demanding that it block access to Sci-Hub. They got the courts to agree and since a larger better heeled ISP had lost an appeal on a similar suit, they reluctantly agreed to comply. But they went a step further and blocked access to the Elsevier site as well, saying that if Elsevier wants to block sites, they should get a taste of their own medicine. For good measure, they also blocked access to the Bahnhof site from any connections coming from the Patent and Market Court that had issued the original ruling

Whatever you’re feelings about the dispute between Sci-Hub and the publishers, it’s hard not to see Bahnhof’s response as the perfect middle finger to those who use arguably out-of-date laws to punish anyone who interferes with their business model and draft third parties to involuntarily do their dirty work.

It’s one more reason, if you needed it, to take the side of Sci-Hub.

Posted in General | Tagged | Leave a comment

Zamansky 53: Emailing Your Agenda

Mike Zamansky is back with another video in his Using Emacs Series. This time it’s about mailing himself a copy of his current Org agenda.

I found this video useful for a couple of reasons. First, he discusses the Org mode batch commands that let you execute some of the agenda functions from batch mode. That’s really handy when you want to access your agendas from outside Emacs. I didn’t know about these commands so his discussion of them already made the video worthwhile for me.

Second, and probably more important for most people, is that he had to solve a problem many of us have. In order to reliably send himself an email with his agenda, Zamansky needed an always-on server that was accessible from the Internet. It needed to be accessible from the Internet—not just have access to the Internet—so that he could sync his agenda files to it. If you have a desktop machine that you leave on all the time, you can solve this problem with something like Dropbox or Syncthing but Zamansky’s desktop isn’t always on so he needed another solution.

His solution was to create a Droplet on Digital Ocean that he could sync his agenda files to and have it send him an email everyday. That turns out to be pretty simple and may be just the solution you’re looking for. Take a look at Zamansky’s video to see.

The video is 17 minutes, 39 seconds so you’ll probably need to schedule some time.

Posted in General | Tagged , | Leave a comment