the further adventures of

Mike Pirnat

a leaf on the wind

121/365: Mulligan

121/365: Mulligan

Monday was made even more special by learning a hard, hard lesson as I experienced my first serious betrayal by an Apple product.

When I started up my shiny new Air to prepare for a presentation the next day, I I found myself caught in a reboot loop. I'd get the grey screen and spinner for a few seconds, then it would stop, go dark again, then back to the grey screen and spinner again. I booted into the recovery mode (hold down Command-R while booting) and to my horror discovered that the FileVault-encrypted filesystem was unrecoverably corrupt.

Attempts to reinstall efficiently while in the office failed, as my bootable Lion install stick apparently doesn't have some driver kung-fu that the Air demands, and my friend Cory's Lion stick wasn't even bootable. I next gave up on the network reinstall when it estimated that it would need over 667 hours to download what it needed. Fortunately, the bandwidth at home is mine (all mine, muahahahaha!!) so it didn't take too long to restore once I got home. I'm also lucky that, as new as it was, it really didn't have anything critical on it; I'd mostly been storing documents out on Dropbox, so getting it back in shape was mostly just a matter of downloading and reinstalling things.

I think what killed it was leaving it asleep for several weeks, until the battery was completely flat, and that the filesystem never got put away cleanly when the charge completely expired.

So--don't do that.

Read and Post Comments

34/365: Infinikeys

34/365: Infinikeys

After Thursday's 365 photo was such a no-brainer and an easy win, I thought I would take yesterday morning off to deal with other things around the house instead of trying to get a shot in. That in turn led to a dearth of creative energy throughout the day, and I was largely uninspired as the day drew to a close. In desperation, I turned to my laptops and attempted to arrange them in artistically interesting ways.

Here we find out exactly how shallow a shallow depth of field can be--and this, at f2.0, isn't even the end; my 50mm goes all the way to an oft-unusable f1.4. The color balance was all jacked up thanks to the "soft white" (aka "doused in yellow") lighting in my dining room, so conversion to black and white was a must in order to have anything serviceable.

I'm intrigued by the apparent narrowing that the shallow DoF caused in keys closer to the lens; it really messes with my sense of how perspective is supposed to work.

Read and Post Comments

Thanks for Everything, Steve

Thanks, Steve
by Jonathan Mak Long

I had meant to write this when Steve Jobs announced his departure from day-to-day operations at Apple, but life, as it tends to, intervened, and I never quite found the time. Now that he's gone, I'm compelled to get this out while it's still fresh in my mind.

I learned about Steve's passing on my iPhone.

Music is an integral part of my life, for years before and after my time as a radio DJ, and it's a large part of how I process the emotional ebb and flow of my life. After I put my phone down, I picked up my iPad, fired up the Remote app, and in seconds I had Lisa Gerrard and Patrick Cassidy's Immortal Memory going on the AppleTV, while a smart album of my favorite photos--of my wife, of my daughter, of vacations and adventures--scrolled by.

I felt the urgent need to type, reached into my backpack, and drew forth my trusty unibody MacBook, felt the familiar keys under my fingertips, activated the Python virtualenv that houses my writing, fired up vim.

It's worth a moment of pause to realize that in a matter of minutes, I've had a personal interaction with four devices that wouldn't have been without Steve's vision of personal computing. Reflecting on these magical, science-fictional devices--I still maintain that the iPhone plus Wikipedia is the Hitchhiker's Guide to the Galaxy made real--I am dumbstruck with the realization that I don't just owe Steve my thanks for my favorite shiny toys.

I literally owe him everything.

Once upon a time, my parents bought an Apple II+. Must have been about 1981. That wonderful machine, connected first to a fairly awful '70s TV, was my introduction to computing. We played games on it at first; my parents and I took turns reading aloud from the text output of Zork and all the other great Infocom games, to which I credit my precociously early literacy, my goofy vocabulary, and my love of puns and puzzles. Then I discovered BASIC, and the die was cast. I loved typing in programs from magazine code listings, seeing what they did and how they worked, and even more fell in love with writing my own programs. From that moment, the die was cast--while I excelled in many subjects in school, I was always happiest when tinkering with computers.

Over the years, the Apple II+ gave way to the IIe, and eventually to a long series of Macintoshes. I got into BBSes, and that eventually got me into a (ahem) borrowed VAX account at the local college, where the natural outlet for my text adventuring was playing MUDs, which I turned into class credit by landing an independent study project on writing code for MUDs. When it was time to pick a college, I knew that I was looking for a computer science program. A long-distance friend that I kept in touch with via VargonMUD got me introduced to Case Western.

Case got me to leave southwest Colorado, arguably the most beautiful place on earth, for Cleveland, Ohio. Not only did I survive the grueling computer engineering curriculum, but I came out on the other side with a job at IBM and a fiancée.

The IBM travel schedule and its impact on my personal life drove me into the arms of American Greetings and its spunky internet startup,, just as the first bubble was beginning to burst. We had some rough years on the road to profitability, but I hunkered down, got stuff done, and thankfully held onto my job, where I became increasingly enamored with our primary language, Python. Python's "it fits your brain" feels a lot to me like Apple's "it Just Works", and I see easy parallels between Apple's design aesthetics and Python's Zen. Is it any wonder that the number of Macs at PyCon has exploded over the past five or six years? Working with Python led me to helping David Stanek start up a local user group, and then to attending PyCon, which in turn brought me to speaking and volunteering at PyCon, which have been some of the most satisfying experiences of my life thus far. Moreover, PyCon is responsible for getting me serious about quality and craftsmanship, and has rewarded my risk-taking with friendships, self-confidence, and composure under pressure.

Thanks in part to this earnest desire to grow in my craft, the growth from my speaking experiences, and that Infocom-kindled love for tinkering with a puzzle until solved, I've come to a pretty awesome place in my career--basically I go where I'm needed most, to get hard things done, to shake things up, to band people together, to transform, to raise the bar. On good days, it feels like being Doctor Who in a Kurosawa movie, all flashing swords and sonic screwdrivers and the triumph of intellect and romance over brute force and cynicism. It definitely never gets boring--I'm coming up on twelve years at AG, and in some ways I feel like I'm just getting started.

And on the home front? Things have been good; house, cars, cats, good food, great travel adventures, some of the best friends I could ever ask for. Liz and I have been married for almost eleven years.

Our daughter is four and already enchanted by computers and iPads. Her entire concept of what a telephone is will be rooted not in rotary dials and POTS but in a kind of mobile computing that was science fiction when I was a kid. She may not remember it, but I used to read Learning Python to her as a baby, and I've got the photos on my AppleTV to prove it to her. But that's not what's really amazing about her--it's that she's been so instrumental in overcoming the depression that plagued my 20s; she blew into my life like a fresh breeze and swept away so much garbage. Sure, parenting hasn't been easy, but when I stop to take a breath, I'm struck by how much better I've become for the experience.

Education, career, friends, family, community--literally my entire world--all because of that Apple II and Steve's vision. Surely in some alternate, Steveless universe, similar patterns might have emerged, but this one, these friends, this path, this wife, this child, I can trace very clearly to his influence.

Words seem useless to express my gratitude for the profound effect Steve has had on my life. My sadness that this titan is gone. My regret that we'll never know what other transformations he would have brought to the world.

So, how then to cope with this sudden absence, the sinking of the rock that has so rippled the waters of my life? My inner child will hold to the illusion that Steve's gone to the same tropical island paradise as Jim Henson, Isaac Asimov, Richard Feynman, and Carl Sagan. My outer adult will try, even if it's only in small ways, to make the world a better place, to touch the lives of those around me, to encourage them to grow, to become, and to help them in turn shape the lives of others. And hopefully that will be all right.

Thank you, Steve.

For everything.

Read and Post Comments

AppleTV and the Mysterious iTunesDB.tmp Files

So after I upgraded to iTunes 10 and did the necessary bits of extra hackery to make the UI reasonable again, iTunes decided to lose track of my AppleTV (probably as a result of my fiddling with plists to try to fix this annoying regression), which forced me to do a full re-sync of my entire library.

Three days later (I pushed around 165GB over my wireless network), the sync was complete, but I noticed a giant 282GB blob of "Other" stuff on the disk allocation graph in iTunes. When I logged into the AppleTV to see what was going on, I discovered that during the sync process, something was causing my AppleTV to drop 78MB iTunesDB.tmp files in my /mnt/Media directory.

A lot of them.

Just north of 3600, in fact.

So... yeah, there's my 280+ GB of "Other". Ouch! So much for that nice new 500GB external drive! My initial testing didn't seem to indicate that their presence or absence mattered at all for normal use, so I nuked them and freed up a ton of disk space. I have observed that I get one to three more of them every time iTunes syncs to the AppleTV, though, so eventually they'll be a problem again.

Does anyone know what these files are or why they're written to disk during syncs? Or more importantly, do you know what should be--but clearly isn't--cleaning them up?

Read and Post Comments

Trading Stripes for Spots

So now that things have calmed down a little bit, I finally had time to install Leopard on the Mac Pro this weekend. I know I'm a bit late to the party, but here are a few quick thoughts so far...

The Good:

  • Time Machine -- syncs happily to the 500GB internal drive I installed last weekend (amusingly, with the words "honk if you love internal hard drives" printed on the inside of the box). Finally, something is doing at least some level of backup in our house!
  • Safari -- holy crap, fast fast fast! Feels like driving a zippy little sports car compared to the increasingly SUV-like Firefox (which has similar problems on tight corners).
  • Searching for text -- I love the visual emphasis on the search hits that "pops" the search result. It's subtle, but really helps quickly identify where the result is, which is not always easy when looking at a wall of text.
  • Searchable Help highlights menu options -- freaking brilliant. No more wondering where your favorite menu options got moved to (*cough* Adobe *cough*).
  • The Downloads folder. Yes, I already had my own that worked fine, but it's nice that it's earned an official special place, and it works well with the new Stacks feature for getting quickly to whatever I've just downloaded.
  • Hot diggety, Python's really nice out of the box!
  • Quick Look is pretty nice; got a feeling I'll be using it a lot soon.
  • Grammar checker is now just as widely available as the spell-checker. Nice touch.
  • Okay, the eye candy factor is nice too. I do like me some shiny things. :-)

The Indifferent:

  • The new 3D-ified Dock -- not as horrible as all that. I'm slightly amused by how it picks up reflections from the windows above it. I could use nicer "here's what's running" indicators, but I'm just not seeing a justification for all the controversy.
  • The new menu bar -- square corners and semi-transparent... It'll take a little getting used to, but it's not going to upset me.
  • Stacks -- I kind of like these, but I'm not 100% in love with them yet.
  • The new folder icons. Not doing it for me.
  • I wonder how long I'll want to live in the "deep space" look.

The Really Annoying:

  • I have to upgrade Photoshop and friends. Granted, I was still running Photoshop 7, so I'm a bit behind the times on that, but it still sucks that what was working like a champ for me under Tiger completely craps out in Leopard. Boo, hiss.
  • XJournal, my LiveJournal client of choice on the Mac, crashes upon log-in to LJ. No Leopard-friendly upgrade is available yet. Again, boo, hiss.
  • Startup disk? What startup disk? Immediately after my first boot into Leopard, there was a software update that wanted to be dealt with promptly. So I took care of that, rebooted, and was greeted with the blinking file folder of doom, signifying that no startup disk could be found. Not the most rewarding experience after all of the anticipation and the lengthy upgrade.

And now back to actually doing stuff with the computer instead of poking it to see what it does...

Read and Post Comments

Apple TV Harmony

I was pleasantly surprised tonight to discover that the Harmony folks have a pretty decent pre-set profile for Apple TV, so instead of an evening full of tedious Googling and button-learning, I had everything working in a few brief minutes, and I'm back to one-remote bliss--it even manages to put the Apple TV to sleep correctly! The only notable omission is that while the fast forward and rewind buttons get hooked up automatically, the next and previous track buttons don't. Luckily, fixing that is pretty simple.

Life, at least on the technological front, is good. (The rest is pretty good too, but not tremendously noteworthy.)

Read and Post Comments

Potter-Related Setbacks; 24 Hours With Apple TV; Shutterfly Freebies

I'm really excited by the amount of progress I've made over the last couple of weekends, hacking away at what for now is known as Shindig, a group management blog/calendar app written against TurboGears. Its primary purpose is to be something easier and faster for me to maintain than ClePy's current Plone site. I'm sure much of what it solves has already been done, but I want something exactly tuned to giving me the most streamlined workflow possible, and, let's face it, it's just plain fun to write code.

So ordinarily, I'd be psyched about how much I'd be able to get done this weekend... Except that the stupid Harry Potter book is showing up in the mail tomorrow, and that basically means that it will consume every waking, lighted hour until it's done. I love the books, I really do, but it's really putting a crimp on my Python geek-out sessions. But I have to be done reading by Monday, that's for sure, or else I will have to gouge my eyes out to avoid spoilers. My predictions: Snape dies (he's obviously been set up for a hard-core double-agent redemption arc, so he'll probably save the day somehow), Harry lives (and will be the best Defense Against the Dark Arts teacher ever), and Ron and Hermione will finally succumb to the powerful call of teenage hormones and romantic comedy conventions and hook up in a major way.

Oh, yes, and I'm going to see Howard Shore conducting the Cleveland Orchestra in performance of his Lord of the Rings Symphony tomorrow night, so that knocks out a couple more hours of potential coding time. Which I guess I can live with; enjoying some of my favorite music, conducted by its composer, performed by one of the world's foremost orchestras, under the night sky, with a picnic and a nice glass of wine... Should be a real treat.


Tonight marks 24 hours since the arrival of the Apple TV. So far, I'm very, very impressed. I have modest needs, primarily to replace an aging SlimP3 that's prone to chronic buffer under-runs ever since I replaced my dying firewall, and it solves all of my most common use cases with total aplomb. I've been delightfully impressed by its streaming performance, which, even with an 802.11b/g setup, is nothing short of freaking amazing. I'm also very satisfied with the image quality out of the component video cables (chosen since our altar to the television gods predates HDMI by a generation or so). My advice so far, to any prospective owners, boils down to two points:

  1. Don't do your initial sync over wireless if you don't have 802.11n hardware. Wired ethernet is your friend by orders of magnitude.
  2. Its case serves as its heat sink, which is to say it gets hot like you wouldn't believe. Don't set it on top of your DVD player or other hardware (unless you want to cook your gear), and make sure that it gets plenty of airflow. Honestly, I used oven mitts to bring it upstairs to wire it into my switch to finish the initial sync. Yikes!

Beware of the YouTube integration; Liz and I must have spent an hour tonight watching videos of cats doing stupidly cute things. It is a powerful and addictive time-sink.


Finally, I'm happy to report that the first of two freebie poster-size prints from Shutterfly arrived today and it looks great. I picked up a 50mm prime lens for my Canon (Digital Rebel XT) recently, and the folks at Amazon threw in a coupon for one free 11x14 and 16x20 print. The 16x20 (which I expect sometime Saturday or Monday) will probably end up framed and in our dining room, next to some other wine-related art, and the 11x14 (which showed up today) will probably find a home in our living room. I'm really quite tickled--I've never printed any of my work larger than 5x7 before--but I fear that I could start going poor making prints of my better photos. Oh well; Liz said I should find a hobby.... ;-)

Read and Post Comments

Heck Yeah

Dang, it's suddenly turning out to be a great week! In brief:

  • After a couple miserable days of near-100-degree temperatures, the weather has cooled off and is now downright awesome.
  • Got my monitor back from Apple (no thanks to DHL, who apparently don't even believe in leaving slips at the door when they ignore the "no one will be home between X and Y, please deliver when it will actually make sense to do so" instructions). It's all fixed and happy, and now the cats have a new box to play with. It really is amazing how much better the ACD is than the old 19" monitor I'd been using in its stead...
  • I totally aced the infant CPR course we did last night. Plus, since everyone else was either too timid or too cool to do the "say stuff out loud along with the script" part of the training, my long-dormant inner theater geek had an excellent opportunity to ham it up loudly, to the amusement of all. Thought for today: "The scene is safe!"
  • This is the week that I finally have cleared enough off of my plate at work to dig into fixing the crapton of problems on our new site that are Safari-specific. It was an uphill battle for a few days, but this afternoon I finally had the "eureka!" moment of complete enlightenment and discovered the one bug in the JavaScript framework we're using that seems to be the lynchpin holding everything up. With what's literally a one-line change, close to twenty really horribly broken things on our site suddenly and miraculously work. Huzzah! I'll probably have something more on this once I get the legal OK from work to the disclose details of that portion of my brain...
  • We had a major project launch and data conversion that started last night at midnight... and for the first time in forever, I didn't have to do anything to support it. No being online from home, no camping out in the office, no having to monkey with it in the morning, nothing. After seven years of driving in at two or three in the morning, I can't describe how great that feels to just not have to worry about it. :-)
  • Liz kicked ass on her most recent papers! You go, girl!
  • The window's open, the sunset was lovely, the breeze is delightful, good music on the ol' MP3 player, and a cold beer. Ahhh, bliss.

I'm not entirely sure whether recent events are karma's equivalent of the cash-back bonus, or if I've just taken out a karma-equity loan that'll eventually catch up to me, but for now I'm just going to enjoy feeling happy.

Read and Post Comments

Fantastic Timing

Naturally, right at the height of the iPhone hooplah, the USB ports on the back of my 23" Apple Cinema Display would decide to die a sad and lonely death.

I woke up this morning to find that neither my keyboard nor mouse (the USB devices attached to the back of the ACD) would wake Serenity from its slumber. I gently caressed the power button on the front to trigger it to wake, and found that mouse and keyboard had left the building; it was totally unresponsive. I tried both ports on the back of the ACD and had the same result. So, like a good little geek trained in the scientific method, I started isolating variables, testing each of the USB ports on the Mac Pro itself (all good), testing other USB gizmos in the display (no joy), testing the display against each USB port on the Mac Pro (also no joy), testing a different keyboard and mouse against the display (nothing) and each of the ports on the box itself (all fine), and finally testing the display plugged into an entirely different Mac (still no luck).

My super-awesome wife has volunteered to call Apple tomorrow since I missed the cut-off time for the Apple Care hotline. I strongly suspect that Saturday or Sunday will involve another trip out to the Genius Bar, which I'm sure will be a delightful place to visit among the throngs of prospective iPhone buyers... Snarf. Hopefully they can just swap it out with a new display since it's still under warranty (just barely six months old!); I'd really hate to be without a display for days or weeks.

Meanwhile, I've discovered that there is great wisdom in never throwing out extra cables. (Hooray for USB extenders!)

Read and Post Comments