Snowden Revisited

There have been couple of interesting articles about Edward Snowden recently. The first reports that a year after the event a majority of Americans believe Snowden did the right thing. I don’t know for sure but I’d be willing to bet that even more non-Americans believe that.

Meanwhile, The Washington Post has an amusing article on the U.S. Government’s feckless attempts to get Snowden back from the Russians. Those efforts consisted mainly of repeated, ineffective pleadings to the Russian government that they send him home.

Although it was widely recognized within the working group trying to get him back that the best hope of doing so was for Snowden to leave Russia for a third country, they effectively foreclosed that possibility by intercepting the Bolivian president’s plane based on nothing but hope that he might be on it. That step convinced Snowden to stay where he was.

It’s still too early to say how history will judge Snowden but his actions have already affected the playing field. In America, the House of Representatives have voted overwhelmingly to ban the NSA from inserting backdoors into communication systems, a good first step. On the other hand, in Britain Theresa May is arguing for more surveillance. I don’t know enough about British politics (or any politics for that matter) to gauge whether or not that will fly. One can only hope not.

It will be interesting to see where we are a year from now.

Posted in General | Tagged | Leave a comment

Documentation on the Lisp Machine

As regular readers know, one of the things I love about Emacs is its recapitulation of the Lisp Machine. Like most developers, I never had the chance to work on a real Lisp Machine so Emacs is as close as I can get. Sometimes, it’s easy to imagine that they’re the same thing. But they’re not, of course.

Take the Emacs documentation system for example. It’s truly a wonder—far better than anything other programs offer. Write your own function, add a docstring and your function is automatically added to the documentation. Extraordinarily powerful and wonderfully helpful to the end user, it’s hard to imagine how it could be significantly improved.

Hard, that is, until you see how the Lisp Machine did it. I can’t begin to describe how extraordinary Concordia—the Lisp Machine documentation system—was. Fortunately, I don’t have to. Rainer Joswig has a wonderful video that shows Concordia in action. One of the really nice aspects is how great the authoring system is. The system is object oriented and all changes are effective immediately.

If you like the Lisp Machine aspects of Emacs, you won’t want to miss this video. It’s just less than 20 minutes long so you won’t need to block out a bunch of time.

Posted in General | Tagged , | Leave a comment

Comments on Older Posts

I’ve turned comments for older posts back on. We’ll see how things go. If I start getting a lot a spam, I’ll have to turn them off again. If I do have to turn them off, is 7 days the right amount of time to keep comments active? Should the active time be longer or shorter? Leave a comment if you have an opinion.

Posted in Blogging | Tagged | Leave a comment

Bozhidar Batsov on Emacs

Continuing with yesterday’s theme of Why I Use Emacs, here is an excellent post by Bozhidar Batsov over at (think) on why he uses Emacs. Anyone who follows the Emacs scene will be familiar with Batsov. He blogs regularly and is the author of prelude, projectile, and cider as well as the excellent series of short posts over at Emacs Redux. And, of course, Sacha has interviewed him. Here at Irreal, we’ve talked about Batsov and his works several times.

Batsov starts by pointing out that although many younger programmers prefer IDEs over text editors, the IDEs all suffer from the defect that they’re not really good at editing text: they make use of the arrow and other auxiliary keys that are death to efficient touch typing and mostly rely on the mouse and menus for their UIs. They are, in short, not optimized for the thing we do the most: editing text.

He remarks that Emacs is what you want it to be, a perspicacious remark, I think. You can configure it to work how you want it to work not how someone else thinks you should want it to work. As I’ve said so many times, this is the result of Emacs’ wonderful extensibility; its provision of a lisp environment that happens to have a lot of functions useful for text editing that you can mold to meet your needs.

Batsov covers a lot of ground so I’ll let you read the post yourself. It will be well worth your time. I will note that he offers a comparison with Vim and IDEs that strike me as fair and balanced so if you’re trying to make up your mind, you may find his discussion useful.

Update: Sasha → Sacha

Posted in General | Tagged | Leave a comment

Vincent Foley-Bourgon on Emacs

Vincent Foley-Bourgon has a very nice post on why he uses Emacs. I probably like it because his reasons pretty much mirror mine. Still, I think his post will resonate with every Emacs user.

Following the old joke, Foley-Bourgon considers Emacs as an operating system and its embedded editor. The punch line of the joke, of course, is that all Emacs lacks is a good editor but Foley-Bourgon makes the case that Emacs is a superb editor and able to hold its own against any competition. It has all the usual capabilities as well as several that most editors don’t have.

Any intermediate Emacs user is familiar with the operating system aspects of the editor and Foley-Bourgon covers many of them. All your file manipulations can be carried out with dired and remote editing is easy with tramp. There’s lots more, of course, and Foley-Bourgon covers much of it.

Finally, Foley-Bourgon considers Emacs as a development environment and Lisp machine. As regular readers know, I consider these the most important aspects of Emacs. Because you have access to the same tools that the developers of Emacs used, you can extend it in any way you want—even ways not anticipated by the original developers. A consequence of this is that tons of folks have used that ability to extend Emacs in ways that benefit us all. Some of those have been folded into Emacs core and others are available as separate packages easily installed with the built-in package manager.

Foley-Bourgon’s post is interesting even for those already committed to Emacs. If you know someone who is curious about Emacs and thinking of trying it out, this post may help decide the issue.

Posted in General | Tagged | 2 Comments

Feeling Better

I’m finally feeling a bit better and have started reading blogs and other sources again. I’m going to try to resume blogging now but don’t be surprised if things are spotty in the near future.

There’s lots going on so there should be plenty to write about. I’m happy to be back.

Posted in Blogging | Tagged | 6 Comments

Sick Leave

For the last few days I’ve been flat on my back and unable to write new posts. It’s been all I could do to push queued up posts to Irreal. Rather than go on like that, I’m taking sick leave for a week or two until I get rid of the bug that’s laid me up.

Sorry for break but I’ll be back shortly and continue as usual.

Posted in Blogging | Tagged | 1 Comment

The Email Self Defense Project

The Free Software Foundation has a new project aimed at getting people to install and use email encryption software. They have published a guide and infographic that demonstrates in simple terms how (and why) to set up GnuPG and then how to use it. They have versions for Linux, Mac OS X, and Windows.

It’s not very technical but will probably still be too difficult for your Aunt Millie. Of course, that’s why she has you. The real difficulty, as I’ve said before, is to convince people to take the trouble.

There’s an interesting project trying to address that problem. End-To-End is a Chrome extension that adds end-to-end encryption. Since Aunt Millie probably uses something like Gmail, this may be an easy way to get her using encryption. The extension is still being developed and not yet available (although they have released the source code) but it does bear watching. Some commentators have issues with this particular implementation but it does demonstrate what must be done: the day to day use has to be transparent or Aunt Millie simply won’t use it.

Posted in General | Tagged | 3 Comments

The Last Line Effect

Andrey Karpov has an interesting post that explores a surprising conclusion. Karpov studies errors in computer code professionally for his company Viva64. The company makes the static code analysers PVS-Studio and CppCat. Karpov studies different code bases and writes about the bugs he found.

One day, he noticed that he was using the words “note the last line” quite often and wondered why. He studied the reports that he used the phrase in and discovered what he calls The Last Line Effect. He found that when programmers copied and pasted nearly identical lines in a block of code, the error was much more likely to occur in the last line than the previous ones.

One of the interesting things from the post is that he give examples of real code bases such as Chromium, ReactOS, Qt, Firefox, OpenSSL, and many others. It’s interesting to see the last line effect in action.

It’s a very nice post and well worth a few minutes of your time. Give it a read.

Posted in Programming | Leave a comment

The Unix Repository Project

I’m a big believer in the notion that one of the best ways to become a master programmer is to study the code of those who already are. There was a time when that was a lot harder than it is today. Once upon a time there was no Linux and Unix source code was not available. Eventually, the BSD and early AT&T Unix source code became widely available and it became easy to study how the masters did it.

I’ve collected all that code and spent many happy hours studying it and absorbing its lessons. Sadly, it’s scattered across a bunch of CDs and the hard disks of decommissioned computers. It would be nice to have the collection organized and easily accessible.

Diomidis Spinellis to the rescue. He’s created a GitHub repository of most of that code and is working on filling in the metadata as much as possible. The project makes it easy to browse the code for fun or to look up some particular aspect. The project is on-going and it would be great if the later Unix code was also made available. The Unix source code is an important part of our profession’s cultural heritage and it would be nice to have it all available in a unified git repository.

Posted in Programming | Tagged | Leave a comment