Kindle for Android

Amazon released the Kindle reader for Android today. It looks nice, and integrates very well with Amazon. Maybe too well: you have to register an account just to use it. You can browse through books on the Kindle store. Purchased books are downloaded by the app the next time you load it. The Kindle store seems to have a decent selection, but one of my favorites is missing. Although Amazon makes them hard to find, the Kindle store also has a number of public domain books for free. I prefer Aldiko for ePub books, so I don’t think I’ll get much use out of this app for now.

I have a severe allergic reaction to paying $10, often more, for a book that I can’t loan or resell. Since the Kindle uses a proprietary format, buying ebooks from the Kindle store is an investment that locks you to the platform. At least they’re trying to make the platform widely available. Dave Winer is right, Amazon knows they’re business is selling ebooks, not ebook readers. I just hope we can keep the concept of owning a book, instead of owning a non-transferable license to read a specific incarnation of the aforementioned book (heretofore referred to as The Book) on one of a class of reading devices.

Tags: , , ,

Leave a Comment


Fail Early, Fail Noisily

The Fly was on TV yesterday, and it reminded me of an important, often overlooked rule of programming: the Rule of Repair

Repair what you can — but when you must fail, fail noisily and as soon as possible.

A corollary rule is to always check for errors and inconsistent program states, even in prototype code. A simple assert(genetic_codes==1) would have saved Seth Brundle a world of trouble.

Tags: , ,

Leave a Comment


The Future Was Yesterday?

Is futurism over? We mock the fantastical visions of future utopias that defined science reporting in the “nuclear age.” We’ve developed a feel for the slow pace of real technological development,1 so it only makes sense that we’ve all but abandoned the “Kitchen Of The Future!” style showmanship.

What I didn’t realize is how jaded we’ve become to incredible breakthroughs in science and technology. William Gibson writes,

Say it’s midway through the final year of the first decade of the 21st Century. Say that, last week, two things happened: scientists in China announced successful quantum teleportation over a distance of ten miles, while other scientists, in Maryland, announced the creation of an artificial, self-replicating genome. In this particular version of the 21st Century, which happens to be the one you’re living in, neither of these stories attracted a very great deal of attention.

Think about that. I did it, too. I read these headlines on Slashdot and didn’t even read the summary, because apparently quantum teleportation and artificial life aren’t surprising enough.

I wonder if my kids will even understand the kind of dreams we used to pin on the future. Will their generation develop its own version of futurism? Maybe they won’t have to dream of a fantastic world, because they’ll be able to make it real.


  1. Alvin Toffler’s estimation of ten years from research to commercial technology seems to be shortening. The eInk technology used in ebook readers only took a few years to commercialize after the first research was reported. 

Tags: , ,

Leave a Comment


The Myth of Privacy

Facebook has been playing around with their privacy settings a bit, making users’ formerly private data public by default, and in some cases with no options for hiding the data again. They’ve even brought other sites into the fray. Pandora, for example, will now show your playlist to your Facebook friends unless you opt-out.

This didn’t seem like such a big deal to me. You just update your privacy settings. But then I remembered an episode of The Wonder Years where Becky Slater, Kevin’s ex-girlfriend, tells Kevin’s friends that he made fun of them behind their backs. They’re mad it him for being a jerk. He’s mad at her for violating his trust. Hilarity, tenderness, and narration ensued.

Facebook is the world’s ex-girlfriend.

That’s why everyone is so angry. People trusted Facebook with their secrets. Now that some of those secrets are slipping out, they have no idea what else Facebook will talk about.

This really was inevitable. Facebook’s business model is based on selling your information to advertisers. Mark Zuckerberg has made no secret of his intention to eliminate privacy on Facebook, but I don’t think you ever had any to begin with. Sure, there were all the little rules you could tweak to throw up a customized walled garden around your life, but those walls were built on quicksand. It seems obvious now, but once they have your data they can do anything with it.

Do you have any options for keeping your data private? You could help Diaspora get off the ground,1 then keep your social network data on your own server. That’s not perfect, because I guarantee that there will be bugs that leak data which should be private. You could abandon social networks, stick to your personal blog, and smug your way to Smugtown, but anything you write down could end up in the public record through litigation. Robert Scoble knows first hand:

Remember, I worked at Microsoft. What happened in 2000? The DOJ took all of Microsoft employees’ supposedly private emails and put them into public. So I knew back then that anything I put on a computer could end up on the front page of the New York Times.

We need to start thinking differently about privacy. Zuckerberg is right: privacy is ending. I know, it’s scary, but it’s good for most of us. Tim O’Reilly reminds us that we’re trading our privacy for benefits like convenience, rewards, and security. Our entire lives are already out there. We’ve let the smoke out of the privacy bottle, and it’s not going back in. You can’t have privacy anymore.2 Now you have to be aware of who has your data, and make sure that you get enough value for the data you’re giving up.


  1. This is important anyway. We need to build open infrastructures that aren’t controlled by any company. 

  2. You can have privacy if you never make any permanent recordings, and you’re never in view of any cameras. Good luck! 

Tags: , ,

Leave a Comment


10 Things About The Guatemalan Sinkhole

A sinkhole the size of a city block swallowed a building in Guatemala on Sunday. This image is mind blowing.

Ten things about the Guatemalan sinkhole:

  1. Art Bell will spend a month interviewing “experts” that claim this hole either goes to the center of the (hollow) Earth, was made by aliens, and/or is a portal to another dimension.

  2. Can you buy sinkhole insurance?

  3. Dude, I dare you to jump the hole on your bike. No it’s cool, I made this ramp.

  4. I bet somebody was trying to dig a gold mine underneath the town, like in Paint Your Wagon.

  5. Joss Whedon is already writing Buffy El Asesino Del Vampiro, a farcical tale of coming of age in Guatemala, plus vampires.

  6. It’s Photoshopped, the reflections are all wrong.

  7. Think everyone is pissed off at that blue store in the upper left, which suffered no visible damage even though it overhangs the hole?

  8. Why didn’t this happen in New York when Alfred Beach was secretly digging a subway?

  9. If this was Kansas City, they’d just put a steel plate over the hole and forget about it for six months.

  10. Visit Guatemala! For all your ring disposal needs!

Tags: , , , , , , ,

Comments (1)


Pilots and Programmers

It looks like pilots and programmers have a lot in common:

The average pilot, despite the somewhat swaggering exterior, is very much capable of such feelings as love, affection, intimacy, and caring.

These feelings just don’t involve anyone else.

Found on a t-shirt

Tags: ,

Leave a Comment


There Is So Much Here To Discover

The alt text in today’s XKCD is a beautiful little poem.

Telescopes and bathyscapes
and sonar probes of Scottish lakes,
Tacoma Narrows bridge collapse
explained with abstract phase-space maps,
some x-ray slides, a music score,
Minard’s Napoleonic war:
the most exciting new frontier
is charting what’s already here.

I formatted the lines, so it might not scan the way Randall wanted. Tough.

Tags: , ,

Leave a Comment


Whedon Needs Limits

This is the problem I have with Joss Whedon right here. All his properties are about loss of innocence and coming of age, and it just doesn’t work in an American TV show where the main story line can never be resolved and the characters can never quite get there. It worked in Dr. Horrible. Maybe with The Avengers, Whedon will break into movies and do shorter, closed story lines that actually work.

Tags: , ,

Comments (3)


Server Variables in Puppet Templates

Puppet is an invaluable tool for managing a large number of Linux servers. By defining different classes for each service I deploy, I can easily define what runs on each server I control just by changing the site manifest.

A problem I ran into early when I was bringing services into Puppet was slightly different configurations on servers with different specs. For example, I run Tomcat on three servers but one is also running some other services. On this one server the JVM maximum heap size needs to be lower than on the others, but the rest of the Tomcat configuration is the same. To manage this without making a second class definition I used the template system in Puppet.

There are four steps to making this work. First you need to define a default for the variable. Next you need to write the template. Third, connect the template to a file on the client. Finally override the variable where you need it.

Read the rest…

Tags: , ,

Comments (5)


Make your Linux servers dance with Puppet

Puppet is a system for replicating configurations to many servers, and it makes managing a Linux1 server farm ridiculously easy. One server runs a master process, while the others run a client which connects to the master2 to get the correct configuration. Clients are identified by hostname, so if your servers don’t have resolvable names you’ll need to put them in the hosts file on the master.

Puppet uses a declarative syntax built on top of ruby for defining rules. The documentation is mediocre at best, so you may struggle at first learning how to write the rules. Just read through the example recipes and test it out with a non-production server. The easiest way I found to test a rule is to run

sudo puppetd --test

on the server that should be getting the configuration. It will tell you there if there are any errors.

The version of puppet in Ubuntu 9.10 doesn’t support defining node names with regular expressions, so you might want to grab the version in Debian sid.

I’m still trying to figure out the best way to split up modules and organize my node definitions, so if you’ve used Puppet leave a comment and let me know what you think.


  1. The website also has packages for BSD and MacOS, but I can’t vouch for them. 

  2. By default the clients connect to a host named puppet, so you should either make an DNS entry for your master, or define the name puppet in your clients’ hosts files. 

Tags: , , , ,

Comments (1)