Laptop update

I’ve been busy these past few weeks on a variety of things, but a quick note: I decided on a new laptop, concluding my February agonizing.  I’m replacing my Fujitsu Lifebook P1610 with a Lenovo Thinkpad x200s.  Thank you to everyone who suggested it.

My Lifebook isn’t quite dead yet (though this morning it was refusing to charge until I jabbed the power port with a mechanical pencil a few times), but three things motivated my choice.  First, I got a chance to play with a friend’s x200s and she gave a good general report of it.  Second they’re on a pretty steep sale right now (especially with the friends and family employee discount sent by a kind reader — thank you!).  And third, I finally got a G1 (my first smartphone!).  The G1 means that I have ssh and a browser in my pocket, so I don’t need my laptop to be quite so pocketable as I used to.  By the way — I’m very happy with the G1 so far.  I left Verizon to get a G1, and the T-Mobile ccoverage is actually a lot better than I was warned; so far it hasn’t been a problem at all, even on various road trips.

If you are still one of those crazy people who needs an optical drive, the x301 is basically a slightly larger x200 with an optical drive bay.  And the Toshiba R600 looks like another good option for high-end ultraportables, though I’ve never had a chance to see one in person.

P.S. The Lenovo site layout is pretty wonky — the tech spec sheets for the x200s and x301 are tricky to find.

Duke Nukem Forever Metalist

Now that the Duke Nukem Forever project is dead (until it’s sold off and picked up by someone else), there’s a lot of renewed interest in the hilarious list of things that took less time than the Duke Nukem Forever development process.  It lists things such as the Beatles’ entire music career and World War II plus the Manhattan Project.

What struck me was that the list itself has been around a long time.  I was laughing at it years ago, and though it was updated just today, most of the items on it still date back to the original list (circa late 2005/early 2006, I think).

So I present to you — and read this carefully; it’s not a mistake — a list of things that happened since the List of Things That Have Happened Since Duke Nukem Forever Was Announced was written.

  • Barack Obama announced his candidacy, slogged through the longest Presidential campaign in American history, and was elected.
  • Hurricane Katrina flooded New Orleans and wiped out much of the Gulf Coast.
  • Ehud Olmert came to power in Israel, pursued a war against Lebanon, and was succeeded by Netanyahu.
  • Chief Justice John Roberts and Justice Samuel Alito have had their entire Supreme Court careers since the list was written.
  • The world panicked over bird flu, calmed down, panicked over swine flu, and apparently dodged a bullet.
  • The iPhone was announced, released, and developed to the point where it could make fart noises.
  • Windows Vista was released, sputtered a bit, and is now reaching the end of its life cycle.

Additionally, the List of Things That Took Less Time Than the Duke Nukem Forever Development has been circulating for longer than each of these things took:

  • The release of all three Lord of the Rings movies
  • The painting of the ceiling in the Sistine Chapel (or, will be true in a few months)
  • World War I (nearly; age of list is uncertain)
  • The development of Windows 95 from Windows 3.1
  • The construction of the Empire State Building
  • The entire run of the original Mighty Morphin’ Power Rangers show plus the first movie.
  • The premier of Firefly, its cancellation, its growth into a geek classic, and the subsequent greenlighting, filming and release of Serenity.

A Problem

I think I have a Bash problem.  What follows is an actual command from my history.

cat /usr/share/dict/words | fgrep -v "'" | perl -ne 'chomp($_); @b=split(//,$_); print join("", sort(@b))." ".$_."n";' | tee lookup.txt | perl -pe 's/^([^ ]+) .*/1/g' | awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $0}' | uniq -c | sort -nr | egrep "^[^0-9]+2 " | awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $0}' | perl -pe 's/[ 0-9]//g' | xargs -i grep {} lookup.txt | perl -pe 's/[^ ]+ //g' | tail -n2

It’s just so hard to bite the bullet, admit that the problem has grown in scope, and move it to its own Perl/Python script.  (P.S. The Guinness Book is wrong.  “Conservationalists” is not a real word.)

Edit: to those who are competing in the comments to improve (shorten) the above command: when pasting code, use the <code> tag to override WordPress quote formatting.

Joey Comeau has a new book out based on Overqualified, which has long been one of my favorite things on the internet.  He writes cover letters to companies.  They each sound businesslike enough for the first paragraph or so, and then you gradually realize you are reading something that is in no way a normal cover letter.  An excerpt from one to Nintendo:

We need a new Mario game, where you rescue the princess in the first ten minutes, and for the rest of the game you try and push down that sick feeling in your stomach that she’s “damaged goods”, a concept detailed again and again in the profoundly sex negative instruction booklet, and when Luigi makes a crack about her and Bowser, you break his nose and immediately regret it. When Peach asks you, in the quiet of her mushroom castle bedroom “do you still love me?” you pretend to be asleep. You press the A button rhythmically, to control your breath, keep it even.

#2 (NeoPost), #28 (Phone surveys) and #58 (MySpace) are three of my favorites.

Miscellaneous Friday Notes

For quite a while I’ve done a bad job of managing my email. I’m finally getting my inbox back in order, but there are still tens of thousands of messages — spanning the last year or so — that will probably go unread and unanswered for the near future. I’m going to do some sifting through, but I’ll probably end up declaring email bankruptcy. To everyone who I was a jerk to by not seeing their email, or not replying, I’m sorry. I will do better in the future.

Speaking of things I found deep in my inbox, T. Campbell told me he and Gisèle Lagacé were doing a comic for me last year, and I said I’d pass around the result. So here it is!

Raptor Awareness Day is this weekend! 200,000 attendees! I will spend it hiding in my attic with a tire iron and my Jurassic Park collection.

And lastly, Daniel Cohen tipped me off that apparently Nathan Fillion owns an electric skateboard, too!  To be honest, up until I saw that, I couldn’t name a single other person I knew of who had one.  I wonder if he’s interested in installing Li-On batteries (he says he only gets 6 or 7 miles to a charge).  It’s nice to know I’m not alone.  Although his is 30% more powerful than mine, so the odds would be against me in a race (unless he’s put off replacing the catalyzer on his port compression coil …)

The Pursuit of Laziness

Since I was a kid, I’ve been looking for the perfect way to read in bed. The ideal position would involve no sustained muscle effort, so I could just let my eyes drift shut as I read, without the book falling shut or my hand slipping or anything.  One way is to sit up against something and hold the book on your lap, but that’s not great for falling asleep.  So I usually end up reading on my side.

The problem is, you have to hold the book to see both pages, and in either case, you’re using some muscles to hold it where it is.

This has worked for most of my life, but it’s still not that ultimate relaxation.

However, I recently got a Kindle.  I was intending to use it mainly as a mobile web browser, but I’ve surprised myself by using it to read an awful lot.  And, with apologies to all the bibliophiles out there, I find the ergonomics better than a paperback.  When snacking and reading, I can lay it flat on a table without the use of a book weight to hold it opened, and when lying in bed, I don’t have to keep moving it to read.

But it’s not perfect.  There’s no way to hold it with a finger on the ‘next page’ buttons that doesn’t require a few muscles to hold it upright:

Either I work to hold my hand off the bed, or I awkwardly curl my fingers around it.  Either way, it tips over if I relax my arm, even if it’s leaning against a pillow, and I’m startled awake by this:

I started to wonder if I could do even better.  I got out of bed one night, went to the closet, and got a steel coat hanger and some pliers.  After a few minutes of twisting, I created this:

First of all, it holds the Kindle upright …

And second, it lets me lie there motionless, and turn the pages with just a tiny twitch of my thumb:

Finally, after decades of reading in bed, I have reached that stage of perfect relaxation.

A Date Idea Analyzed

I don’t do conventions very often, but I recently went to ConBust out in Northampton, MA, while visiting some friends.  While I was there, I had a guy propose something fascinating to me.  I can’t remember the guy’s name, so if he or one of his friends sees this, post your info in the comments. (Edit: it was a dude by name of Thom Howe.)

The guy Thom had an idea for a date.  He wanted to rent a cherry picker, drive it to her door, and pick her up in it.

Then, he’d drive to the beach, and get there at just the right time to watch the sun set.

Once the sun had set, he’d activate the cherry picker, they’d be lifted up above the beach …

… and they’d watch the sun set again.

Clearly, this is an excellent idea, and any girl would be lucky to see this guy Thom at her door.  But is it plausible?  How fast and how high does the cherry picker have to go?

I tried to work out the answer for him there at the table, but there was a line of people and there wasn’t time.  But when I got home, I remembered it again, and I’ve worked out the solution.

Here’s the situation:

By the time the earth has rotated through angle theta, the cherry picker will have to have climbed to height h.

After t seconds, theta in radians is:

The height of the lift above the center of the earth is:

So the height above the surface (sea level) is:

Substituting everything so far we get this expression for the height the lift needs to reach t seconds after sunset to stay even with the sun.

Now, an actual cherry picker has a maximum lift rate (I Googled some random cherry picker specs, and 0.3 m/s is a normal enough top lift rate.)  We’ll call that rate v, so the actual height of the lift will be this:

Substituting that in and solving for v, we get this:

(That’s arcsecant, not arcsecond). This equation tells us how fast the lift has to go to get from the ground to height h in time for the sunset1.

But we can also get the answer by just trying a few different heights.  We plug it in to Google Calculator2:

2*pi*6 meters/(day*arcsec(6 meters/(radius of earth)+1))

and find that h=6 meters gives about the right speed.  So, given a standard cherry picker, he’ll get his second sunset when they’re about six meters up, 20 seconds later.

You might notice that I’m ignoring the fact that he’s not starting at sea level — he’s a couple meters above it.  This is actually pretty significant, since the sunset line accelerates upward, and it brings down his second-sunset height quite a bit.  If he got a faster lift, or used an elevator, the correction would become less necessary.  Extra credit3 for anyone who wants to derive the expression for the height of the second sunset given the lift speed and height of first sunset. For now, I recommend he dig a hole in the sand and park the lift in it, so their eyes are about at sea level4.

1 Ideally, we’d solve for h, but it’s inside the arcsec and that looks like it’s probably hard. Do one of you wizards with Maple or Mathematica wanna find the result?

2 If you work in one of the physical sciences and don’t use Google Calculator for all your evaluatin’, you’re missing out.  I wish there were a command-line version so I could more easily look/scroll through my history.  I know Google Calculator is largely a frontend to the unix tool units, but it’s better than units and available everywhere.

3 Redeemable for regular credit, which is not redeemable for anything.

4 I suggest a day when there aren’t many waves.


Since last night I’ve been obsessively connecting to Omegle.

It’s a simple site that just connects you to a random person, anonymously, for a conversation.

It feels like that scene in Fight Club where the narrator sits down next to Tyler on the plane.  Two strangers meeting, laying out their personality and sizing each other up in just a few words, with no expectations, and — thanks to anonymity — no consequences.

Except in this case, a lot of the time Tyler just screams “COCKS”, punches the narrator, and jumps out of the window.

Still, it’s fun!

What Happened to my Laptop

For the people who wanted to know the chain of events causing the laptop problems in the last post:

  1. Safe search won’t disable, and login for regular Google services is broken.  I decide it’s a cookie conflict between Google services and file a bug report with Google.
  2. Google says “can’t reproduce”.  I discover that clearing private data doesn’t actually work right, and after some testing, go to file a bug with Firefox.  They ask for my version number.
  3. I notice my Firefox is out-of-date, and decide that it might be a quirk of this version of Firefox+Ubuntu.  I go to upgrade Firefox in Synaptic before filing the bug.  I don’t have the notifier running and haven’t updated in a while.
  4. I upgrade a package in Synaptic, but it turns out I just upgraded the meta package and not the actual package (or something.)  A more seasoned Synaptic user says “why not just run regular upgrades like a normal person?  It’ll fold Firefox into it.”  On any other day, this would have been good advice.
  5. I start the upgrade.  It’s churning along nicely, and I locate my cookies file and start examining it.
  6. My battery monitor disappears.  This is normal enough, actually.  I try to start it back up and get a notice about a broken configuration file.  Uh-oh.
  7. My nm-applet disappears.  That’s a little stranger, but neither applet is very reliable in my ion3 setup.
  8. At this point I find that my cookies file is malformed in some way, and that if I move it manually (rather than using the in-browser ‘delete cookies’) the original bug disappears.  Don’t know how that happened, but it’s solved, so I cancel the bug report with Mozilla.
  9. I go to edit the cookies file in emacs, and get a message that emacs can’t start.  Uh-oh.
  10. The upgrade fails with a bunch of package incompatibility messages.
  11. I start to feel alarmed.  I link an apt-guru friend a screenshot of a relevant part of my Synaptic window.  He says, “one of those version numbers looks wrong.  You’re running Hardy, right?”  I am.
  12. I open my sources.list (using nano, since emacs is broken.)  After a bunch of spaces at the bottom, I see something bad: A Debian repository.  I’m running Ubuntu.
  13. I don’t know how I added it.  Maybe I was on the wrong system and didn’t notice the prompt.  Maybe I was trying to install one specific package from Debian (via apt, for some reason) and forgot to take it out.  I honestly don’t remember.  But since I hadn’t updated in a while, it hadn’t come up.  But now I’m in trouble.
  14. I remove it, update my lists, and do a grep to see how many of my packages have upgraded to Debian versions.  750-1000 or so.  I paste the results back to some friends.  One of them looks, shakes her head, and says my system is like that guy in Star Trek after the transporter accident.
  15. Over the next few days, we try pinning packages back to the Hardy version and downgrading.  There are conflicts all over and lots of ninjinuity is required.  Sometimes the system won’t boot properly, claiming kernel module problems, which turns out to be because somewhere in this process my initramfs got misconfigured.  But eventually, everything is put back in working order (except, for some strange reason, gnuplot, which refuses to install the main binary file.  I compile it from source.)
  16. Watching the system boot successfully, I go to pour some milk and cereal in celebration.  I shake up the milk jug a little.  The lid is loose.  It spills all over the keyboard.  The system stops booting and the cycle of horror starts again.  (And yes, if I’d gotten a Lenovo when you all suggested it, I’d have a spill-proof keyboard with drains.  That’s my plan for the next time something horrible happens to my laptop, which should be any day now.)

A brief pair of notes

1) Dvorak typists: I’m sorry if the paper I relied on has some potential flaws.  If you want to share your extensive rants on the merits of various keyboard layouts, send them to me at and I’ll be sure to read them over carefully.

2) You know how sometimes trying to fix one problem causes a worse problem, which in turn causes a worse one, and so forth?  This week, I was trying to turn off SafeSearch in Google Image Search (sometimes necessary to find things1).  In trying to turn off SafeSearch, a setting on a web form, I rendered my system unbootable2. (The worst part was, everyone kept saying “oh yeah — there’s a comic about that; have you read it?”)

Any guesses as to how that happened?  I have to go for now, but I’ll include the actual chain of events in my next blog post.

1 Like the Nate Silver Playgirl centerfold.
2 I’ve finally recovered it3 via a USB boot disk and some work, but it took several days and the help of a number of wonderful hackers. Thanks you, Decklin and sneakums.
3 And then promptly spilled milk on it, so the keyboard’s been through the dishwasher and is now drying4 in front of the fan. This is not a happy laptop.
4 Nested footnotes!

Kindle 2

First, the results of my laptop hunt.  Thank you so much for all the suggestions — there are a lot more ultraportable options than I realized.  I narrowed it down to two wildly different possibilties:

  1. The Lenovo ThinkPad X200s.  I missed the 200s on my first survey — I didn’t realize Lenovo had one under 2.5 lbs.  It’s got perfect geek-oriented engineering (tough metal hinges, spill tray, incredibly rugged, Linux-friendly, etc).  It’s just a little bigger than I was going for — it’s pretty large for its weight.
  2. The Sony Vaio P.  I love the form factor — 9″ wide but only 4″ deep; you could slip it in a pocket.  And the 220 PPI screen is everything I could want.  It’s shiny and pretty and only weighs a pound and a half, and when I played with one I fell in love.  But it’s a Sony, which means shiny appearance but no openness — repairs suck, and Linux will only work haltingly.

In the end, I decided neither was worth the cost just yet while I could squeeze a little more life out of my old laptop.  A new battery, hard drive, and some antibiotics, and it could last another year.  But if I had to pick now, I’d go with the X200s.  The ability to toss it down a mountainside and have Ubuntu boot when it lands trumps gadgety sexiness.  But only barely.

Kindle 2:

On a contrary note, I have a Kindle 2.  I’ve been really happy with it so far, other than the PDF support being poorly documented (it claims to handle PDFs natively in some of the literature, but you can’t actually just plop them down on the drive — it requires passing them through Amazon or converting them yourself).  But it handles html, text, and some other formats fine when just dropped on it via USB — it’s a lot more open than the Kindle 1.

I’m surprised at the talk of the cost being too high.  For me, the comparison is to a laptop with a cellular broadband internet card — $1440 for a standard two-year contract.  The Kindle 2 doesn’t have a full web browser, but if you’re favoring text-heavy websites (news, blogs, mail, wikis), it’s perfectly sufficient.  Plus, it’s a nice screen and has many-day battery life.  All in all I think it’s a more-than-reasonable price for something that lets me read reddit on the street corner so as to better shout at sheeple about government conspiracies.

The xkcd sysadmin, davean, notoriously scornful of any new technology, took a look at the Kindle 2 after it arrived this afternoon.  He spent several minutes playing with it, discovered he could use it for email in a pinch, confirmed that an ssh terminal could be hacked together using the browser and javascript, and bought one for himself within the hour.

Bottom line, I think it’s a really neat device that fills a niche that nothing else really does.  And seeing the prices, I’ll probably even buy some ebooks and magazines.  But the web access is the real reason I got it.  And if the advertised free access to Wikipedia and other text-y websites is curtailed, (as the Terms and Conditions suggest could happen), the Kindle’s battery life means that I can camp out drunk on the Amazon lawn yelling at Jeff Bezos for quite a while.