I've got a nice tight Twitter user name, @nelson. Unfortunately I'm not the only Nelson on Twitter and my mentions timeline is full of people trying to talk to Nelson Bocaranda, Nelson Rubens, Nelson Koenji, not to mention everyone in South Africa talking about being "@Nelson Mandela square". It's irritating.

One partial solution that either Twitter could implement or could be done in a Twitter client; filter on reply-to metadata. The mentions timeline includes everything with the string "@nelson" in the Tweet. But many mentions also have a "in_reply_to_screen_name" or "in_reply_to_status_id" set in the metadata. I'd like to not see Tweets which are clearly in reply to someone else.

  2010-09-28 17:36 Z
Last September I took my first flying lesson. Partly because I was looking for something interesting to do, partly to share a hobby my partner Ken has had for nearly 20 years. Yesterday, a year later, I achieved my primary goal: to fly Ken in his plane. The flight went great and Ken didn't even seem too nervous about me landing his baby. Mission accomplished!
In the past year I've flown 162 hours. 92 of that as pilot in command and 54 without an instructor. I've landed at 65 different airports and flown some 8000 miles. It's all been fun and safe and I'm looking forward to doing a lot more flying. So what's next?

The next big goal is an instrument rating so I can fly through clouds. It's significantly more challenging than the basic pilot's license and I plan to get some more experience before going for it. Right now I just want to get more confident and capable in the Cardinal, really master flying that plane. We've got some big trips planned in the next few months. Me solo up to Portland, also Ken and I to New York and back and then later to Florida (and maybe the Bahamas!).

  2010-09-13 19:07 Z
There's lots written about scaling large complex websites, but what does a casual sysadmin do to fix a simple Apache config? TechMeme picked up my Facebook blog post and suddenly hundreds of readers were coming, peaking at an awesome 4 requests/second. And my poor little blog got very slow, 30 second pageloads. Wutdo?

At first I assumed my server was melting; my blog software is old and simple. But uptime and top showed no CPU problems and free and vmstat showed no swapping. Blosxom's simplicity is a good thing, there's very little to go wrong, particularly with a little caching.

So the server was fine, why was my blog taking 30 seconds to load? The key insight came from Google Chrome's resource panel which shows a little timeline of the page load. My main page was taking 17 seconds! That's not good, the script itself executes in about 400ms. Worse, my page loads a bunch of images and CSS and javascript from my server and some of those loads were taking 10+ seconds as well. For static files.

The little light went off in my head: connection queuing. Each web request gets its own Apache process that has to hang around until the client at the other end of the Internet receives all the bytes. Apache has a limited number of workers and one slow browser may be using several at once. I only had 20 workers; it doesn't take long for them all to be sitting around doing nothing except waiting for slow clients to download data. Once that happens new requests have to queue up and wait, 10+ seconds, and things go downhill quickly. You can diagnose queueing via netstat and Apache server-status.

The quick fix for queueing was to make my blog simpler, removing a bunch of images and Javascript to reduce my server load. The other quick fix was to modify prefork MaxClients, doubling to 40 workers. More workers is generally better right until you have too many and run out of RAM or CPU, so I was a bit conservative. Fortunately the blog slimming was enough and I had things running OK in about 10 minutes after the problem started.

That was all quick fixes in a crisis, what's the right solution? A big fix is moving static resources to another server, I'd never quite believed that advice before this experience. Another fix is tuning Apache better, particularly using a different multiprocessing implementation. A final fix is making more of my Javascript asynchronous so the blog renders sooner. (The real solution is migrating my blog and getting out of the admin business entirely.)

  2010-09-10 18:18 Z
Are you starting a social media company? Stop! Don't build a new social network, please. Just use Facebook. Yes, it sucks, but Facebook won. Or as a friend of mine starting a company recently told me, "we consider Facebook to be layer 7 of the Internet".

Apple just launched Ping, their iTunes social network. They also just launched Game Center, their gaming social network. These two social networks are brand new, you start with no friends. They're also disjoint. That tapping you hear this week is millions of Apple nerds adding their friends, again, to a new set of applications.

Apparently I'm an active user of 12 social networks: Facebook, Twitter, four instant messengers, Skype, Flickr, Metafilter, Blizzard Real ID, Steam, Xbox Live. That doesn't count the implicit social networks I've belonged to online for 10+ years, mostly via email. Then there's the social networks I no longer use or deliberately avoid, like Aardvark, Buzz, FourSquare, Friendster, LinkedIn, LiveJournal, MySpace, Orkut, ping.fm, Plaxo, Yelp, or Zephyr. And my actual social network, the people I call for a beer when I'm bored or whose kids I buy Girl Scout cookies from because that's how you do.

All of these social network applications just need one bit of vital information, "I know this person". And "person" is identified by email address. A list of acquaintances' email addresses is the universal social data.

I know, I know, your immediate thought is "but social media is more complicated! My users need to sort family from friends from coworkers and keep their nudie pictures private and what if someone changes their email address and how do I sell extra access to Zynga so they can spam my users' friends with credit card offers?" Yes, that's true, social relationships are complicated. Your special application can be as complex as you want, be assured you'll get a bunch of details wrong. But the core thing, the list of acquaintances' email addresses? Don't make a new one.

I'm a little glib up above by saying "use Facebook". Facebook puts a lot of conditions on using their social graph, enough that Apple won't use their data. What would be best for users and every Internet company except for Facebook would be a proper open standard for social data. Sadly OpenSocial is a failure and because of network effects I think it's too late to displace Facebook. So we're all kind of screwed.

(The saddest thing? I found my list of social networks by searching Gmail for the phrase "your friend". I found a lot of FourSquare spam but precious few actual friends.)

Update: quick clarification in response to feedback. I'm not saying "don't compete with Facebook", I'm saying "don't build something new where I have to enter a new list of my acquaintances."
  2010-09-09 19:41 Z
The Kindle 3 is good hardware. Amazon has been refining their ebook for several years and has finally gotten it good enough and cheap enough ($140) to make it a worthwhile purchase.

I prefer the Kindle over a paper book mostly for comfort. I tend to read lying on my side, which makes reading one side of a paper book awkward. The Kindle 3 is also light enough (half a pound) to hold up in the air for long periods. And of course one little Kindle holds lots of paper books.

The big downside to Kindle is you lose your right to resell or give away a book after finishing it. I'm uneasy with this compromise, particularly since Kindle editions are often more expensive than paperbacks. In exchange you get convenience, instant delivery, and a generous variety of free book samples.

One appealing thing about the Kindle is it's more than just a viewer for Amazon ebooks. It can display pretty much any electronic document thanks to Calibre, third party conversion software. Calibre also has an interesting RSS-to-ebook option that you can use to automatically prepare a daily newspaper or magazine, although so far I've found Amazon sells subscriptions with better formatting for the periodicals I care about. Kindle's ability to display PDF natively is handy too; Ken uses the larger Kindle DX for airplane charts.

A key thing about the Kindle is it's not a computer, it's not a general purpose device like an iPad. It's just a book; you pick it up and read it. Sadly inside it is a computer and not a very good one. The user interface for anything other than reading books is terribly designed. Interaction speed is improved in Kindle 3, but still terribly sluggish. And Amazon continues to waste 20% of the surface area with a keyboard. Kindle 3 has removed the most useful keys, the number keys, so now navigating large documents requires a clumsy on screen keyboard. But all the bad-computer awkwardness goes away when you use the Kindle as a book. And it's a very good book.

I get a few shekels if you buy a Kindle via my links
  2010-09-08 17:11 Z

Update Sep 2023: I wrote this post 13 years ago. LastPass is now terrible, do not use it. They had a catastrophic breach last year where all their user data was stolen and now people are stealing victim's cryptocurrency. I switched to 1Password several years ago. It was better then, still good now. And LastPass is a disaster.

LastPass is good software. It's a password agent, software that remembers your zillions of passwords for different websites and autofills them in your browser. It works with every consumer operating system, it works in every major browser except Opera, and mostly it just works. The free version is pretty limited, you really want the $1/month version.

I've tried a variety of password managers over time and gave up on them all. Either the browser integration was awkward or some fundamental aspect of the design was insecure or unusable. LastPass gets a lot right. Form filling is the best I've seen. Passwords are stored on the lastpass.com server so you can access them from multiple devices but are only decrypted on your client so they remain secure. There's multiple levels of credentials for varying security needs. And there's a plain text export to CSV option for offline backup.

Drawbacks? The UI is pretty clumsy, particular the 100+ configuration options that fortunately you can mostly ignore. The iPhone version is usable but awkward because of Apple's limitations. And while LastPass is as secure a design as I can imagine, I'm still uneasy with all my passwords sitting in one place. But then again I accepted that risk years ago with stored browser passwords; at least LastPass encrypts my data.

I still resent that I need passwords at all, it's time the Web moved to a post-1970s form of authentication. But LastPass solves a lot of problems: it makes it easy to have secure unique passwords for every site and allows two factor authentication for robust security. It's a pretty good solution.

  2010-09-05 20:00 Z
Flying different kinds of airplanes gets confusing. After flying one plane exclusively for my PPL training I started sampling other kinds of planes. It's been a good experience but I'm ready now to settle down and concentrate on flying Ken's Cardinal.

Every airplane flies a bit different. The three Cessnas I've flown (172SP, 177RG, and 182S) are all roughly similar planes. But each has a different engine, a different feel, and for the 177 extra complexity. The feel is most noticeable when landing. All three planes claim you land at about 65kts. But the 172 feels much slower, is light on the controls, forgiving if you flare a little too high. The 182 is incredibly heavy and you have to drive it nose down until the last second, then haul back quickly (but not too quickly!) while using trim to manage the weight. The 177 is somewhere inbetween and despite the oddity of its stabilator design flares quite nicely.

I just got about 10 hours flying the Cirrus SR22 turbo, a Lexus in comparison the various Volkswagens I've been flying. It's fast, elegant, and has a beautifully designed glass cockpit. Really fun plane, I particularly like having turbonormalized power so the plane just flies better the higher you go. The Cirrus is challenging to land, it's faster and heavier than what I'm used to and the tail design means you have to be careful not to flare too much. I found the Cirrus a real handful, it'd take me awhile still before I'd be comfortable flying it solo.

I'm impressed with flight instructors who move from type to type every day, flying everything they're in. All planes fly more or less the same, I guess, but I need more experience flying before switching planes. For now I plan to fly nothing but the Cardinal for a few months, get really comfortable in it.

  2010-09-03 16:09 Z

05:00 — Those weapons of mass destruction have got to be somewhere. laughter. Nope, no weapons over there. laughter. Maybe over here? laughter.

  2010-09-01 19:54 Z