31 August 2009

The Death and Rebirth of a Laptop

Chronology of An Ordeal

Over the last 2 1/2 weeks, I've dealt with dropping my MacBook Pro and the various fallout from that. I'm writing down the full experience, for that cathartic "getting over it" benefit -- that way, this can be my last post on the topic!

Aug 11 afternoon
While seeing "Up" at the Kabuki Theater in SF, my MacBook falls out of my backpack from a height of about 3 feet. The person behind me squealed as it was happenning, so I turned around in time to see it happen. It was very depressing. In order to avoid thinking about it during the movie, I didn't test it at all at that point.
Aug 11 evening
Got back to hotel, verified something was Very Very Wrong. The machine was still awake and I could activate various apps, but they all went into wait cursor state.
Aug 11 evening 2
In order to connect to the rest of the world while the Mac was on hiatus, I went to Best Buy in San Francisco and bought a netbook (Eee PC in particular). For $300. Incredibly cheap. Since planned dinner didn't happen, I spent much of the evening installing Firefox/Pidgin/etc. The trackpad's buttons are *incredibly* irritating -- the left mouse button sticks unless you imemdiately push a little on the other side.
Aug. 13
On the plane back to Tokyo, I realize that since I bought this MacBook Pro at SIGGRAPH 2006 at Boston, it is exactly two weeks out of extended warranty. Hah hah hah, isn't that funny.
Aug. 14
evening Make appointment with Apple Store for Sunday morning.
Aug. 16
Off to Labi in Shibuya, bought a Bluetooth adapter for the Netbook. This thing is hilarious, it's literally the size of your thumbnail. It worked flawlessly: XP recognized it immediately, and I could then pair the EeePC with the wireless keyboard and mouse I used with my laptop. Using the mouse meant I didn't need to use the incredibly annoying trackpad button on the EeePC, eliminating the biggest reason to hate the thing.
Aug. 16
The Geniuses at the Apple Store confirm that indeed my hard drive is dead. They have two pieces of good news: the first-level diagnostic at least say everything else is fine; and, hard drive replacement is only Y35170 (about U$350). There's also a kind of ironic piece of news: my hard drive was 80GB, and Apple Service doesn't stock hard drives that small anymore. Would it be OK if I got a 200GB hard drive instead? Yes, that would be just fine. They took my number and said they'll call when it's done, which should be about a week.
Aug. 16-28th
An intense two weeks of catching up from SIGGRAPH and working frantically on the SIGGRAPH Animation Festival, all while holding down my regular job as well. After two weeks with the EeePC, I have pretty much all the software I would use on a Windows machine installed: Firefox w/ various plugins; OpenOffice; FileZilla; Pidgin; QuickTime/iTunes; Putty; etc. I actually tried to install XAMPP but it didn't work. Some extra things I learned about the EeePC in this time:

  • OpenOffice feels sluggish on it, although that's kind of true on any computer
  • Firefox 3.5 runs just absolutely fine. You can't tell the speed difference at all.
  • Not all videos I want to see play OK. YouTube at standard resolution does, but even downloaded videos don't play if they're bigger than half-size.
  • The small screen is OK, but does feel a little crowded in Google Docs Spreadsheet or Gmail. The fact that web apps don't use screen real estate quite as efficiently as local apps matters in those cases.
  • Speaking of Gmail, of course during this time I switched entirely to Gmail since I didn't want to store mail locally on the EeePC. I doubt I'll ever switch back, this having-all-your-email-online thing is pretty handy.


Really, I'm impressed with the EeePC. It cost me less -- even with the Bluetooth adapter -- than the repair on my MacBook, and it's a perfectly convenient way to connect to the internet. It's also really light & small. After this experience, I suspect that when I'm traveling, it'll usually be the Netbook and not the MacBook that's in the backpack, although for things like my class lectures, video editing, or 3D Apps the laptop still has a place in my computing life.
Aug. 28
Afternoon finally get a chance to call and ask what's happening with my laptop since they haven't called me. This leads to the single highly frustrating experience I had with Apple in this process: Call Center from Hell. I call the Apple Shibuya store, try to navigate the Japanese-language call system. It clearly says repair is 3, then Mac is 2, then repair is 3 again. 10 minutes' waiting on the phone (at least they gave an estimate; unfortunately the estimate isn't updated after the initial one). The guy finally gets on the phone and asks for my name.

Now, in Japan, being asked for my name on the phone is a problem. My name isn't an easy one even in English, and it's Japanese it's almost impossible to spell for someone over the phone. Japanese aren't that good at recognizing English letters on the phone to start with, and worse yet, my name has the dreaded letter 'v' in it. Japanese, even today, are not used to the letter 'v' (it's a complicated history based on how they usually imported English words into Japanese; under that system, all 'v's got changed, usually to 'b's). So, trying to get someone to recognize the letter 'v' in a spelled English word is just an exercise in futility. We tried three different times, and he was never able to find me in the database (undoubtedly because he was hearing one or two letters wrong).

After ten minutes of this, he thankfully suggested we switch to serial number instead. It's mixed letters and number, but no 'v', so it went much better. He then confirmed various different things with me, then announced he didn't have the information there, but would try to call and get it; would I please stay on the line? Another wait wait wait.

He came back with the piece de resistance. He couldn't find out what the status of my laptop was. To find out, I would have to, according to him, call the Apple Store in Shibuya.

I was so dumbfounded at this bit of call center idiocy that I had a hard time coming up with the appropriate Japanese for "I did, that's how I was lucky enough to be transferred to you." Oh, he said, he doesn't work at the Apple Shibuya Store. I had figured that out already, but telling me to start the process over again to get back to him wasn't going to help any, especially if it took another half an hour. I was pretty unhappy with all call center operators at this point even if they speak perfect keigo (Japanese polite speech).

Finally he put me on hold again (I wondered if he was going to transfer me to the manager for upset gaijin). When he came back, he told me to call the Apple Shibuya Store, and instead of choosing 3 for repairs, choose 5 for Other. Oh, that's obvious -- to call and ask about a repair, instead of picking the option for Repair, I should choose Other (admittedley, "keep hitting 0 until you're speaking to a person" is a good first order rule for call center interactions).

OK, I reluctantly hung up, called the exact same phone number again, and hit 5. About forty times. The nice person from the store came on, asked for my service ticket number (thankfully not my name) and confirmed in 5 minutes that my laptop was ready.
Aug. 28 evening
I go into the Apple Store to pick up my laptop (you don't need an appointment for pickups). It appears to be working fine, and I ask how to do the restore from my TimeCapsule backup. The guys shows me how one of the default screens in the install lets me migrate data from a backup. Sweet! (I think at the time) I have to work late that night on Animation Festival stuff, so no change to start the restore.
Aug. 29
I spend much of the day trying to get the restore to work. The process, which I ultimately repeated about five times, is:
  • Boot Mac
  • Wait for annoying marketing "welcome to Mac" movie to finish (you can't skip to end if you want the menu)
  • Click through choosing language, keyboard, etc.
  • Aha! Finally! Choose "transfer information from a backup"
  • At this point, you plug in/connect the TimeCapsule to the MacBook.
  • A list of one item appears; you click on the entry for your TimeCapsule
  • A wait of about one hour ensues while the screen is hung on "Checking contents of TimeCapsule"
  • During this wait, you have to keep coming by and poking the keyboard to prevent the Mac from going to sleep. If it goes to sleep, it concludes it can't use the backup, and you have to force power-off and repeat from Step 1.
  • Finally, the check is done and you can choose "Transfer". A dialog appears that has four item (they're something like "Users", "Files and Folders", something like that). It prints the size of the first two, then display "Calculating Size" next to the third and fourth.


I got to that point, I think, four times. I waited about 90 minutes the first time, and the bar still said 0%. I kept trying minor variations -- nothing changed. Finally, since I had a party to go to Saturday night, I set it off again about 8pm and left. Even when I got home, I just let it run.
Aug. 30 Morning
After 17 hours, it still said "0%". I concluded this just wasn't going to work. I didn't really want to go back to the Apple Store with my MacBook and my TimeCapsule, so I tried another tack.
  • Boot system
  • Insert OS install CD
  • Hold down option to force CD boot
  • Wait for screen to come up (about a minute)
  • Choose language, keyboard again
  • Ooh, look, among the options in the utilities menu is "restore disk from backup". Let's try that.
  • This utility has a quite different menu for picking a backup. It correctly displays that there are two backup images on the TimeCapsule. A little poking around lets me verify which one has the most recent (July 30) backup.
  • Pick that. It says, "Calculating size of backup". Uh-oh, I think here we go again.
  • But no, after about ten minutes it displays the size and offers a "Restore" button!
  • I press that. A progress bar appears. It's slow, but only expectedly so -- it claims the restore will take about 4 1/2 hours.
  • The restore actually takes only about 3 hr 45 min.
  • Exciting! Reboot, and we're done, right?

August 30 Afternoon
OK, I hit reboot. The good news is, it reboots! And, when it comes up, it even recognizably is my desktop, with my files on it! Hallelujah!

...but not quite. The system is "unresponsive" as in, clicking the Apple menu produces a 15 second wait before the menu actually appears. Every action is infinitely slow. It's so painful I can't even get to Activity Monitor.app to see what's going on, but after ten teeth-pulling minutes I get to a Terminal window and type top. A minute or so later a display appears. From the intermittant updates on the display, it looks like the machine is 60% idle, but something called 'mdserver' is taking up a fair amount of the time getting used.

Back to the "trusty Netbook" as I was now calling it. Google for mdserver, and find a hilarious site called "the great crusade against mdserver." It turns out it's the server process that indexes your disk "in the background" (that's funny) to enable Spotlight searches. One user described almost the same phenomenon I was seeing, and a snarky know-it-all replied, "Well, if you've changed a lot of files lately, this is expected." Hello, Apple? Locking up my machine after a restore... is not expected.

I was glad I looked things up before just killing the process, not because killing the process would hurt anything, but because the mdserver processes, like zombies, just keep coming back even if you kill them. That information saved me some extra frustration. OK, looks like the machine belongs to effing Spotlight for the next while... time to go to the gym.
August 30 Evening
When I got back from the gym a couple hours later, then played a few soothing rounds of Flower on the PS3 and taken a shower, in fact, Spotlight had decided it had consumed enough of my computer time and quiesced. But then GDClent-something was active. Oh right, once upon a time (when Spotlight really didn't work well at all) I installed Google Desktop Search. Off to hunt through System Preferences.app for the place to turn that off completely (only two places needed in the end), and finally my machine is responsive.

The network is still kind of slow, but that's not Apple's problem -- it happens whenever it's rainy here in Tokyo (we have a typhoon right now).


The Bottom Line


In the end, I got off pretty lightly. The fact my backpack was unzipped that day cost me:
  • $300 for a netbook
  • $15 for a netbook Bluetooth adapter
  • $350 for the disk drive replacement (but it's bigger now)

My backup as of July 30 ultimately worked, despite the above trevails.

The Good Things


  • Actually, the MacBook Pro is pretty tough. None of the electronics were bothered by the drop.
  • Time Machine is a really really good thing. All Mac users should be using it.
  • Apple Repair Service is effective, and not that terribly expensive. I've partially dissembled my MacBook before, and like most laptops I didn't want to go any farther. But call them, don't wait for them to call you.
  • The Netbook is really pretty effective. I doubt I'll take the laptop on the road much anymore.
  • I have learned to live by Gmail, and love it. The days of Mail.app are pretty much over for me.

The Bad Things


  • Apple's Voice Mail menus suck, just like every other large corporation's customer support.
  • The restore option in the default installer.... not so good. Anything that takes 4-8 hours per trial -> Boooooo.

Some people never learn


And now, off to install Snow Leopard!

30 August 2009

Cool tricks with the Django admin interface

At work we've been doing lots with the Django toolkit. One of the things we've been looking at lately is whether we can (without overriding lots of code) have a different admin interface for inserting an object versus updating an object. The answer: yes, trivially.

I don't have space for a full Django tutorial here, so I'll assume you know all the Django lingo. This example assumes you have a project set up, and within that you have an application called AssetVersions, and within that you have a class called Asset (all of which, I have, in fact). What if you wanted the insert interface to have the field 'name' and 'project', but wanted the update interface to have all fields except 'project'? (this makes 'project' an insert-time-only property).

  • In your admin.py for AssetVersions, create a separate AdminModel class for Asset, and add it to a separate instance of the AdminSite class. We'll stick that instance on admin.create_site for convenience:

    import models
    from django.contrib import admin
    from django import forms

    class AssetAdmin(admin.ModelAdmin):
    exclude = ( 'project', )
    admin.site.register(models.Asset,AssetAdmin)

    admin.create_site = admin.AdminSite()

    class AssetAdmin(admin.ModelAdmin):
    fields = ( 'name', 'project', )
    admin.create_site.register(models.Asset,AssetAdmin)

  • Then, in the urls.py for your project, override the url for the specific application and Model class to access the alternate AdminSite:

    from django.conf.urls.defaults import *
    from django.contrib import admin
    admin.autodiscover()


    urlpatterns = patterns('',
    (r'^', include('AssetVersions.urls')),
    url(r'^admin/(AssetVersions/asset/add/)', admin.create_site.root),
    url(r'^admin/(.*)', admin.site.root),
    )



Voila, the create and edit interfaces are now decoupled, and yet each AdminSite is pretty much largely ignorant of the other.

28 August 2009

"If I want to see the future of gaming, I go to South Korea. If I want to see the past, I go to Japan"

Very interesting interview with Rich Hilleman. Although his current title is Chief Creative Officer, he's in fact a die-hard programmer who used to run the training program for programmers at EA. He has been developing games for a long time, and is a hardcore gamer himself.

http://games.venturebeat.com/2009/08/26/eas-chief-creative-officer-describes-game-industrys-re-engineering/

I thought he nails a lot of the things that are changing in the business right now.

14 August 2009

Saw "Up"


Before I left the US last week, I saw Up in 3D at the Sundance Kabuki. It was awesome. That said, I now understand this post much better (warning: language and lots of it).

07 August 2009

Awesome interface at SIGGRAPH 2009

I just tried this about an hour ago, and it's totally awesome (and a little bit freaky):

01 August 2009

I know it's popular in America but still...

...the sign in Dallas airport that said, "Y'all roll on in for some Fresh Sushi!" still surprised me.

...fresh sushi in Dallas comes from where exactly?