Sacha on the Power of Plain Text

Sacha Chua has a nice post on the power of plain text. There are, she says, three main ways of storing text1:

  • The Heavy Weight Methods
    This is mainly database systems. Chua says she uses these tools mainly when she’s building software for someone else.
  • The Medium Weight Methods
    Chua mentions spreadsheets specifically but I suppose it could also include word processors or various note taking or GTD tools.
  • Plain Text
    This is her preferred method when she’s building tools for herself. Chua says that as she learns more about Org mode and Org tables, she is using this method more and more.

I’ve written before that I use plain text and Org mode almost exclusively for my data storage and processing needs. As Chua says it’s easy to work with—you can manipulate it using standard tools such as grep, diff, awk, perl or even Emacs. If you need more specialized processing, you can almost always get the job done with a bit of Elisp. In any event, it’s sure to be easier than dealing with a proprietary format even you have documentation on that format.

One of the nice things about Org mode is that it has several functions that make it easier to work with the data in an Org file. Although she’d doubtlessly demur, Chua has at least a journeyman’a knowledge of that. I’ve written a few times about her use of Elisp to process data she’s holding in Org files. You can learn a lot by reading those posts.

Chua mentions some of these Org functions in this latest post and that’s reason enough to give it a read. She hints that she’ll be using and, presumably, writing about Org mode more in the future. That’s good news because I always learn something interesting when she does.

Footnotes:

1

The heavy weight and medium weight designations are mine—don’t blame Chua.

Posted in General | Tagged , | Leave a comment

Link to a Specific Line in a File from Org

A nice tip from Robin Green:

Posted in General | Tagged , | Leave a comment

The Magic Story

Years ago, I had a printed copy of The Jargon File and spent many happy hours reading through it. If you haven’t browsed through the file, you should. It’s full of screamingly funny tidbits about our Hacker Culture and Language.

My favorite entry, by far, is A Story About Magic that tells the tale of a seemingly magic switch glued to the frame of a PDP-10 in the MIT AI Lab. One day, Guy Steele happened upon the switch that had its two positions labeled “magic” and “more magic.” The switch was in the more magic position but had only one wire attached to it and was therefore electrically non-functional.

Go read the story to find out what happens when Steele flips the switch. To this day it’s still not definitely known how it worked.

Posted in General | Tagged | Leave a comment

Happy Birthday…

Dark Side of the Moon. The iconic Pink Floyd album was released 42 years ago today. One of the most successful albums of all time, it, even today, pops on and off the Billboard 200. Last week (March 7) it was 196. It’s off the list on the latest (March 14) list but will doubtless be back.

“Money” and “Time” were the two hit singles from the album but everybody I know considers the last two songs, “Brain Damage” and “Eclipse”, to be the enduring masterpieces of the album.

Posted in General | Tagged , | Leave a comment

Why?

Words fail me. Why would anyone do this?

Posted in General | Tagged , | 4 Comments

Moving The Custom Data Out of init.el

I never use the Emacs custom facility. It puts cryptic (alright, not too cryptic) entries into the custom-set-variables and custom-set-faces lists that are far away from all the rest of the customizations for a given package. Even worse, some packages—I’m looking at you bookmark+—take their existence as license to write data into the lists that they want to preserve across Emacs invocations. That’s particularly annoying because I have my init.el under version control and this causes merge conflicts when I update my other machines.

Happily, Ryan McGeary over at M-x all-things-emacs has the solution. He shows you how to move the custom lists out of init.el (or .emacs) and into another file. You can then load it separately if you like or just ignore it and whatever rogue packages put in it. It’s probably best to load it just in case but it is nice to be able to get it out of init.el.

Posted in General | Tagged | 13 Comments

Where’s Your Emacs Initialization File?

TIL: The Emacs variable user-init-file contains the file path of the current initialization file. (via Daniel Ehrman).

Posted in General | Tagged | Leave a comment

Seriously Paper Free

I’ve written before that I’m rigorous about avoiding paper, pens, and pencils. I’m pretty good about doing everything digitally but nowhere near as good as these guys. Their feat is even more impressive when you realize that they’re doing it in an office setting.

They waged a war on paper and essentially drove it completely from their office. At the end of the day anyone can dispose of any paper they see lying around whether or not it’s theirs. They moved the printer to a location so remote and inconvenient to the rest of the office that people stopped using it and they were able to get rid of it. They have a strict prohibition against signing paper contracts. So strict that the CEO was sentenced to a full day of customer support for signing a paper contract. The company also prohibits taking notes in notebooks in meetings. Instead, they bought each employee an iPad to take notes with.

As you can see, they are serious about doing without paper. So serious that they also got rid of the toilet paper. I’ll let you head on over to the post to see how they managed that.

As I found out when I first started trying to collect all my information digitally, it’s mostly a matter of culture and habit. At first it’s hard and seems limiting but soon you don’t notice the lack of paper and writing implements. Especially since everything is so easy to access and search for and you don’t have a bunch of documents waiting to be filed and taking up room once they are.

Posted in General | Tagged | Leave a comment

Do As I Say…

An almost too delicious piece of hypocrisy.

Posted in General | Tagged , | Leave a comment

What Happens When You Build In Backdoors?

They end up biting you in the butt. Matt Green’s post is a nice explanation of the FREAK exploit. You can read his post for the technical details, which, really, aren’t that interesting except that they show how making it easy for governments to defeat crypto systems will inevitably end badly.

Back in the 90’s the U.S. government classified crypto systems as munitions and prohibited their export. It was entirely unworkable, of course1. Foreigners wishing to download crypto-enabled applications easily skirted the simple checks used to verify they were in the U.S. and domestic companies moved their crypto development off shore and imported the results—the government had no problem with importing crypto. Nevertheless it was illegal to export systems with an effective key length greater than 40 bits2.

That meant that browser makers had to use weak SSL encryption for exported browsers. To handle those browsers, servers could negotiate with their clients to use the weaker encryption if necessary. Eventually, even the government saw the futility of trying to control software-based encryption and relented. The weak encryption option was forgotten and everyone assumed it was just a slightly silly piece of history.

Sadly, lots of servers having the option are still around (36.7% of servers still support it according to a recent scan) and that’s what the FREAK exploit uses in its man-in-the-middle attack. It sits in the middle and negotiates the weak encryption. It’s a bit more complicated but only a bit. Again, see Green’s post for the details.

The point is that this exploit is possible only because the government insisted on a backdoor years ago. Such things always fall victim to the law of unintended consequences and that’s something we should remember when some nosy Parker comes along insisting that the government needs a window into our communications.

Footnotes:

1

Phil Zimmermann, the author of PGP, famously avoided the export restrictions by publishing the source code as a dead tree book, which enjoyed first amendment protections.

2

For browsers, this implies an RSA key of 512 bits. Numbers that size are easily factorable in a few hours and since the keys are often reused for the life of a server invocation, represent very little security.

Posted in General | Tagged , | Leave a comment