Air Gaps

Bruce Schneier has an interesting post on setting up an air gap computer. It seems simple: just never connect your computer to the Internet. The problem is a completely isolated computer isn’t much use unless all you want to do is play Reversi or solitaire. To get any useful work done you need to move files onto and off of the computer.

At first glance it’s hard to see how a “normal” person would even need such a thing. But once Schneier became involved in the analysis of the Snowden documents he needed to isolate and protect them. When the need presents itself, you have to consider how best to protect yourself and your data.

Schneier began by buying a new laptop from a big box store and taking it to a friend’s house to download the software he needed. After that he never connected it to the Internet again. Still, there is the need to transfer data to and from the machine. It’s not nearly as easy as it seems.

Follow the link the see how Schneier handles the problem. The real meat in the post is in the comments. Almost everyone said, “Yikes! You’re using Windows? You should be using Linux.” That’s probably good advice but not too helpful. The other comments represent some useful advice. It’s a fairly long post with a lot of comments but it’s definitely worthwhile if you have to do something similar.

Posted in General | Tagged | Leave a comment

The Lavabit Story

The New Yorker has a nice article on the Lavabit back story and current status. It recounts the details of the negotiations between Lavabit and the government. It’s pretty clear that the government was disingenuous about their demands. Armed with a subpoena for the metadata on a single account, they insisted that Lavabit’s owner, Ledar Levison, turn over his SSL keys thereby giving the FBI the ability to monitor all traffic in and out of the site. It’s not clear that the judge, in particular, really understood the issues and what the government was actually demanding.

Levison remarks that even without Snowden as the proximate cause, the government would sooner or later have come after Lavabit because it represented a gap in their intelligence—in their desired ability to monitor all communications. Right now Levison is fighting in the Fourth Circuit Court the government’s right to make such demands. One can only hope he prevails but it’s hard to be sanguine about his chances.

Late Breaking: Lavabit is apparently going to make a Fourth Amendment argument to the court. The idea is that Lavabit’s 40,000 customers who aren’t named Snowden are having their Fourth Amendment right to be secure in their privacy without probable cause and a particularized warrant violated. As the NSA and the FISA courts have demonstrated, the government doesn’t much care about the fourth amendment; they just shout “Look! Terrorists.” and charge ahead. So, again, it’s hard to be hopeful about the outcome.

Posted in General | Tagged | Leave a comment

Terror of the Demo

I’ve given my fair share of demos as I’m sure many of you have. If you’re anything like me, you were lucky if the worst thing you suffered was butterflies in your stomach. But all that was nothing compared to what Andy Grignon suffered and he wasn’t even giving the demo.

It was January 8, 2007, the day of the MacWorld trade show at which the iPhone was going to be announced. Grignon was the senior engineer in charge of the iPhone’s radios and he was about to watch Steve Jobs give his famous announcement and demo. The problem was, the thing wasn’t ready and didn’t work reliably. At all. Jobs had been practicing for 5 days and not one of his run throughs was without problems.

Follow the above link for the story of that demo and how terrifying it was for everyone involved. Apple had bet the company on the iPhone and Jobs was going to use what amounted to a kludged up prototype for the announcement. Practically every aspect of the phone had problems. For example, the memory management software wasn’t finished so the phone tended to quickly run out of memory and freeze. To deal with that, Jobs had multiple phones on the table and switched off after a few tasks so the phone he was using wouldn’t freeze. The radio crashed so often that they hard coded the signal strength to 5 bars.

Of course, everything worked out in the end but the story of the demo is one that will resonate with every engineer forced to sign off on a project before it was ready and then having to watch someone demonstrate the result. The story ends with Grignon and his fellow engineers sitting in the fifth row watching Jobs give the demo and recounts their state when it was all over. Read the story to find out what it was.

Posted in General | Tagged | Leave a comment

Emacs Rocks Does WebRebels

I’ve been eagerly awaiting the posting of Magnar Sveen’s WebRebels video. It’s finally up but sadly the projection of his computer screen is unreadable even when blown up to full screen. That’s a great disappointment.

Of course, Sveen knows a thing or two about producing videos so he’s working on making the presentation watchable. He’s doing that by releasing segments of it miraculously cleaned up. The first is already done and ready for viewing. I’m not sure if he cleaned up the original feed or recreated it but it’s absolutely clear now.

Once again, we all owe Sveen a word of thanks. He does so much for the Emacs community that I don’t know how he has time to eat.

Update: The second segment is up here.

Posted in General | Tagged | 3 Comments

A Nice Example of Interactive Programming

I’ve written previously about interactive or exploratory coding. It’s the sort of thing that Emacs and Emacs Lisp make easy and attractive. You sort of feel your way along writing little snippets of code and then stitch them together into larger pieces such as functions. The approach is brilliantly illustrated at the beginning of Magnar Sveen’s Web Rebels talk where he builds a slide show function right before our eyes.

Now Kris Jenkins has posted a video that also demonstrates the technique. In just 16 minutes, Jenkins builds a Spotify client while we watch. This isn’t 16 minutes of watching him type though. Starting with a shell call to Apple Script telling it to ask the Spotify application to play a Pink Floyd track, he builds up a function to play any track. Then he builds up some functions to retrieve track data from Spotify. Finally he ties it all together with helm to provide a reasonably functional Spotify client runable from Emacs.

I love this way of programming; It’s one of the reasons I prefer Lisp to C for almost all projects. Even in C, I tended to write a function and then try it out but with lisp you can try out individual expressions and add more parts until you get what you want. If you’re an Emacs user or a Lisper you must watch this video. It will, I promise you, be worth your time. It’s just a bit over 16 minutes so it will fit nicely into one of your breaks.

Posted in Programming | Tagged , | 2 Comments

More Password Advice

Stavros Korokithakis has a nice post on choosing and securing passwords. Although his recommendations won’t come as news to Irreal readers, the post is still worthwhile because he explains the reasons behind his recommendations. Even more useful—especially for your Aunt Millie—is a list of ways to keep your password secure.

The end of his post is a “Best Practices Summary” that lists 6 rules for picking and securing your passwords. If everyone followed the advice in that list, password crackers would be pretty much out of business.

Of course, crackers needn’t fear imminent unemployment. If you follow the Dropbox link in Korokithakis’ post, you’ll see that in one study of 6 million passwords, 99.8% of them were in the top 10,000 list and 91% were in the top 1,000 list. As Korokithakis points out, you needn’t outrun the bear, only the other guy the bear is chasing. With statistics like that, it won’t be hard.

Posted in General | Tagged | 3 Comments

Emacs Work Flow

Michael Wall has a nice post on his Emacs workflow. I found it interesting for two reasons. First, I always enjoy seeing how others solve the problems that we, as developers and Emacs users, all face. Most often, I learn sometime that I find useful and can incorporate into my own workflow.

The second reason is that, like me, Wall came to Emacs from Vim but our accommodations to the new environment were different. As Wall says, the typical Vim workflow involves firing up the editor when you want to work on a file and closing it afterwards. Emacs users, on the other hand, tend to start Emacs and just add another buffer when they want to edit a new file.

When I started using Emacs, I embraced the Emacs way and just left it running. Adjusting to that new way of working was one of the hardest parts Emacs. Now, I always have an Emacs frame up, usually beside a Safari window. Almost all my work is done in those two applications. Occasionally, I’ll bring up another application—mail say—but then either quit it or more likely hide its window.

Wall, on the other hand, decided to leverage the power of Emacs’ extensibility to adjust Emacs to his workflow rather than adjust that workflow to the Emacs way. He did that by combining Emacs server with some shell scripts to recreate the feel of a Vim workflow. The great thing about all this is how easy it is. Once again, Emacs let’s you have it your way. Be sure to follow the link to see how he does it. Good stuff even if, like me, you prefer a different way of working.

Posted in General | Tagged | 3 Comments

Password Contains Invalid Characters

Nick Selby tweets a pro tip: what to do if your site delivers the error message “Password contains invalid characters”. It’s funny, of course, but like most things we find funny, it contains the germ of truth.

Now, can we talk about not allowing spaces in credit card numbers?

Posted in General | Tagged | 1 Comment

The Reign of Morons

Even if you don’t know who Jamie Zawinski (jwz) is, you’ve probably heard his famous quip about regular expressions. You may or may not agree but there’s no denying he has a sharp wit.

Here, for your enjoyment, is his recent rant about moronic mobile web design. Not all mobile Web design is as bad as what he describes, of course, but it is shocking that the worst offenders are the big “respectable” “news” “media” sites, as Zawinski puts it. You’d think they’d know better but of course they don’t; they’re still stuck in the last century and depending on its conventional wisdom on how to run a publishing enterprise.

And while you’re over at Zawinski’s site, you might enjoy reading some of the articles from his tech docs page. They mostly exhibit that same sharp wit.

Posted in General | Tagged | Leave a comment

Eavesdropping Versus Surveillance

A common reaction to the NSA disclosures has been, “Meh, it’s just metadata.” Unfortunately, the issues are perceived as being overly technical and as a result it is difficult to explain to the man-in-the-street, let alone your Aunt Millie, how the collection of metadata is a threat and why everyone should care.

As Bruce Schneier has pointed out, lot of people have effectively demolished the argument that metadata collection needn’t concern us but the arguments are subtle and hard to convey succinctly. Schneier comes to the rescue with a pithier argument: metadata equals surveillance.

He says suppose you hire a detective to eavesdrop on someone by planting bugs and tapping the target’s phone. The fruit of that endeavor would be the details of the target’s communications. That’s the data.

Now suppose that the detective instead followed the target around and discovered what he did, where he went, who he talked to, and what he purchased. That’s the metadata. What the detective is doing in the second case is surveilling the target. The difference between the detective and the government is that the government is putting everyone under surveillance. That’s something that should concern every citizen.

Posted in General | Tagged | Leave a comment