the further adventures of

Mike Pirnat

a leaf on the wind

« Previous Page Next Page »

Weekend, Surprises, Verbosity

After far too much not-blogging, I think I'm hitting the point where the withdrawal is really starting to bug me, so I guess I'd better take care of that.

Work is fairly unmentionable; I pulled a few 12-hour days last week, which I should probably stop doing if I'm going to be the only one (as usual) trying to put in the extra effort to keep the project on schedule. Hah. I am Jack's insane work ethic.

Far more mentionable is the weekend that just whooshed by in a bizarre combination of gosh-that-went-too-fast and cheerful, languid laziness.

Friday started out with one of the few rare instances in which I am proven right, but I was unfortunately too right. I don't know crap about cars, but I've listened to enough "Car Talk" to recognize the clicking sound that Liz's car was making every time she turned left as her CV boot. I felt somewhat vindicated when the issue turned out, indeed, to be her driver's-side CV boot, but as it happens I am karma's bitch--she needed to get both of them replaced. Somehow the old "why buy one when you can have two for twice the price" philosophy doesn't really feel so great in practice. Not the most auspicious start to the day, and it'd come at the end of a week far too long.

Liz quickly turned the tables on my week, though, starting with dinner at Nemo. We sat in the tiny little "Lover's Lane" nook, an odd little space barely large enough for a two-top table, and strangely, delightfully echoey. We had a great conversation, luxuriated in the sensations of food and wine (my Sangiovese was utterly fabulous with rack of lamb and mushroom risotto), and enjoyed the tumult of rain, thunder, and lightning outside.

We spent Friday night, Saturday night, and half of Sunday parked in front of the TV, breezing efficiently through the final season of "Six Feet Under" on DVD, a sudden arrival on seven-day loan from the library. The season had some weak spots, but overall it was a fitting conclusion to a great show, and a nice farewell to characters that have managed to become like family. It's definitely worth your time if you haven't seen it; if you can put up with the ever-present background morbidity, it's quite interesting, often hilarious, and surprisingly uplifting.

Much of Saturday managed to be simultaneously relaxing and off-kilter. Now, Liz and I had laid out a moderately elaborate plan for Saturday, consisting of all of our necessary and desired weekend errands in the proper order of timing and fuel economy, but the cats managed to completely throw it into disarray by nine o'clock in the morning as Julia came bounding up onto the bathroom counter, leaving a path of bloody pawprints in her wake. Realizing what was going on came in little quanta of sudden understanding: there is a cat here; there is something on the counter; the something on the counter is blood; the blood is from the cat; the cat is bleeding; oh crap oh crap the cat is bleeding all over; what has the cat done now? Liz was a shower and full set of clothes ahead of me, so after we corralled Julia in the bathroom to assess the damage and clean up her wounded paw, Liz and Julia zoomed off to the vet while I stayed behind to get dressed, look for more blood, and be someone for Valentine, the likely culprit, to howl confusedly at. Luckily, the bleeding--caused by a puncture wound to one of the pads on her left hind paw, either claw or fang--had stopped fairly quickly, and no stitches were required. The patient returned home promptly, along with a prescription for a week's worth of liquid antibiotics. The details of administering liquid meds--specifically pink liquid--to a fussy cat are best left to the imagination, but suffice it to say that Liz is now down one white shirt, and we had to add a trip to the dry cleaner to our Saturday agenda.

But! Our bloody cat had the good taste to get hurt, get better, and get home in time to let us get to our 10:30 appointment to peruse tile flooring options for the laundry room (a moderately long story in its own right that I won't get into here). From there, though, all of our errands seemed to start getting out of order, and the flow wasn't working, which unfortunately makes me a tiny bit fussy, even though I got a bunch of CD's from the library, got a haircut, and spent some nice time wandering around shops in Rocky River with Liz.

What really got to me was Liz's suddenly-announced, last-minute need to be on a conference call at two PM, right in the middle of when we were supposed to be tasting wine and getting groceries. Which then got rescheduled to three, allowing us to stop by Grady's to taste wine and nosh on little wine-friendly nibbles. But the vital trip to the grocery store had to be deferred. I sat upstairs and listened to music while Liz waited for her call. The cats hung out with me in the open window, relishing the fresh spring air and staring greedily at passing birds. When three o'clock came and went, I went downstairs to harass Liz about this call--shouldn't she call in or something?--and, rebuffed, I retreated back to the office to sulk and ponder whether we'd ever attend to the rest of our errands while I listened to Jethro Tull and Peter Gabriel. Slowly, there came a deep rumble, as the biggest semi I've ever seen trundled cautiously around the corner. Great, I thought, who's the asshole driving a giant truck through our neighborhood and ruining this perfect spring day? The truck pulled a little further around the corner, and I was able to see the Room and Board logo on the trailer. Liz and I had spent a day in downtown Chicago last winter trying to find a leather chair for me that was up to Baby Bear's "just right" standards, and had after several hours succeeded in filing an excellent candidate away in my permanent wish list. Swell. Somebody's getting awesome furniture and it's not me. I'm never going to get my chair.

Right about then, a lot of things happened at once. First, the truck whuffed and sighed to a stop directly across from our driveway. Valentine and I shared a dumbstruck moment of incomprehension; according to Liz, the look on my face was priceless. Liz closed the office door to keep the cat contained. And then, to my complete and utter astonishment, the delivery guys started unloading my chair, while, by complete coincidence, the Peter Gabriel CD I'd picked up at the library blasted out "Shock the Monkey."

After assessing that all was well and functional in the land of new things that recline, we did a quick furniture rearrangement in the living room, and since then I've been taking every opportunity available to test out my new manly man chair. I've covered one of the really long chapters of Head First Design Patterns; I've chilled with the iPod; I've enjoyed sitting by the open window with the cats; I've sipped wine and listened to Pink Floyd; I've passed out and drooled on myself; I've (now) blogged. So far, it has passed all of the important tests with flying colors. Well, almost all--the cats are still a bit scared of it, but I expect that with time they'll show it the same indifference that they usually show me.

So, yes, Liz's "conference call" was a lie, a ruse, a deception, a clever means to have me home so that she could see my reaction, and I completely, totally, thoroughly fell for it. In a way, that makes it all the sweeter. (Right?) In case I haven't correctly sung the praises of Liz lately, let me declare here that I totally love my wife, that she knows exactly how to spoil me, and that she is damn good at being awesome. My silly manly man chair is beyond excellent, unneeded, and unexpected. Thanks, hon!

Other than that, life is quiet here; lots of work, lots of studying, and as much slacking and irresponsibility as we can get away with. Gotta keep things in perspective, after all.

Read and Post Comments

Twisted Network Programming Essentials

Twisted Network Programming Essentials
Author: Abe Fettig
Published: October 2005 by O'Reilly
ISBN: 0-596-10032-9
236 pages

When Twisted started to explode onto the scene, I was really intrigued by its varied capabilities and asynchronous model, but I was turned off by the then-scant documentation and the webapp framework transition that was just beginning (Woven was deprecated and Nevow was too new for any sort of coherent explanation). I just didn't have time to wrap my head around it, and so Twisted fell off my radar screen for a while. Eventually, I saw that a book was on the way, and I was excited to jump back in with it as my guide.

Twisted Network Programming Essentials is not an exhaustive reference to Twisted, nor does it even pretend to be. Rather, it's a pretty friendly, task-oriented exploration, providing examples of common tasks and insight into the key concepts and design patterns that are essential to grokking Twisted. Each chapter focuses on a particular topic, and they're arranged to build upon each other nicely. Sections within each chapter are broken down into a practical, easily digested structure--we're introduced to the task at hand, then the "How do I do that?" and "How does it work?" bits clearly and plainly walk us through an example solution and dissect its inner workings. At 202 pages of actual text, its eleven chapters make for a comfortable chapter-per-evening of reading and play. It's well worth either keying in or downloading the example code to see Twisted in action.

Covered topics include installing Twisted, the essential Twisted concepts; HTTP clients and servers; various flavors of RPC; authentication; mail clients and servers (POP and IMAP); NNTP clients and servers; fun with SSH; and some practical, non-glamorous things like running your app as a proper daemon, adding administrative interfaces, and logging. You'll monitor download progress, make a simple blog, build an IMAP server, and more. You'll chain protocols together to make an email interface to Google. You'll be impressed by the power and cleanliness of Twisted's authentication model, and you'll have fun getting and using references to remote Python objects with Perspective Broker. There's also a pretty good explanation of REST, and plenty of links to useful reading.

All is unfortunately not shiny and delicious, though. I encountered what I consider quite a few programming errors in the example code, as well as several places where the explanatory text doesn't quite jive with the example. These errors are all fairly minor, and are probably artifacts of the evolution of the text and examples, but the frequency with which they crop up suggested that either no one had run the code before approving it for printing, or that errors were deliberately introduced to see if the reader is paying attention. As someone with a professional investment in web applications and frameworks, I was disappointed not to see any investigation of Nevow (not stable enough at the time of writing to be included, alas). The SSH chapter mentions but does not discuss or dive into the file transfer and connection tunneling concepts. I was also let down by the strict focus on programs that only used the basic Twisted reactor for managing events--the challenge of integrating Twisted's powerful capabilities into an existing event-driven program (eg, any GUI app) is entirely omitted. Furthermore, the book ends somewhat suddenly; I would have welcomed a "Great! What now?" sort of wrap-up that would provide a guidepost to more advanced topics.

These warts are quite forgiveable, however, and will hopefully be corrected in a future revision. The book is clean, friendly, and clear, and provides a nice entry into the world of Twisted. We are neither talked down to, nor beaten into submission by overly dense, inscrutable prose. For this printing, keep the errata handy to quickly resolve any issues with the example code (and submit anything new that you find). While the topics might be considered limited, it's clear that what's here is the tip of the iceberg; you can use these familiar topics to try to sell your boss on Twisted, and then your imagination is the only limit to what you can do. Since my initial experience with Twisted, the core documentation has improved immensely, but it's even stronger if you're already familiar with what's presented here; start with this book, then dive on into the online docs, and you'll be a Twisted guru in no time.

Read and Post Comments

And Suddenly Tuesday is Date Night

Liz and I manged to almost completely forget that MacHomer is playing this week at the Hanna Theatre. Luckily, we managed to remember in time to get tickets for this evening's show, which played to a surprisingly packed audience. If you enjoy "The Simpsons" and have read or seen "the Scottish play" at least once, you will probably get a sizeable kick out of this... Most of his voices are dead on--pretty much any character that wasn't Bart, Lisa, or (alas!) Homer was perfect. The whole thing is nicely integrated with a music and video track that really adds to the production--there are a lot of characters to keep track of, and there are some cute visual jokes. The ending is, as one might expect from a Shakespearean tragedy, pretty grim, so the audience receives as a bonus feature Queen's "Bohemian Rhapsody" as performed by 25 of rock's "most annoying voices."

We preceded the show with a bit of wine and food at Vinea, a fairly new place just down the block from Playhouse Square. I quite enjoyed the spinach salad (I have a weakness for cranberries and blue cheese) and was significantly awed by the "Italian Plate" appetizer which, after claiming in the menu to have a couple of cheeses, a couple of Italian meats, a loaf of bread for dipping in olive oil, and some olives, ended up being enough food for a modest paramilitary outfit, if not a small army. There was enough left over to make more than a full plate of the same thing at any other restaurant, and that's when the guilt really started to kick in--certainly there are some starving children who could use some sopresetta and smoked gouda?

All in all, it's been a better-than-typical Tuesday evening--which I think will get rounded out with the last chapter of Anansi Boys. Cheers!

Read and Post Comments

The Lovely Bones

I finished Alice Sebold's The Lovely Bones over the weekend. I had picked it up at the Albuquerque airport on a bit of a whim -- I was fresh out of reading material, and I recalled that Peter Jackson was going to film it after he got done with King Kong.

The first half of the book is outstanding; it completely absorbed me. It's tightly plotted, and the numerous non-linear asides provide a roller-coaster feeling that careens through dark, disturbing territory that's punctuated with moments of beauty and laughter. I honestly didn't expect to laugh out loud at a book about the rape and murder of a fourteen-year-old girl.

However, I suspect that the advance check arrived in the mail as the author was just past the halfway mark, because I swear it's like she went on vacation and hired a ghost writer to fill in most of the rest. As the spans of time between narrative installments widen from days into months and years, the story unwinds quickly into the drudgery of "and then a few years pass, and we check in with everyone's emotional state, and then a few more years pass." Wash, rinse, repeat. There's a bit at end of the book that almost manages to salvage the back half, but it feels too sudden and disjointed, awkwardly glued into the middle of much lesser surroundings. The end itself just sort of happens arbitrarily and the sense of satisfaction is one of having completed the task of reading, rather than of things being concluded as they should.

That said, I think that Heavenly Creatures proves without a shadow of a doubt that Peter Jackson will be able to make an utterly marvelous little movie out of this uneven read.

Read and Post Comments

Reunion Travelogue (Part Seven)

Tuesday, 7/26:

Up early again to load up the car, say goodbye to parents, and hit the highway. Beautiful day, great tunes, good car conversation with Liz, amazing scenery...

Stopped in Cuba, New Mexico, to stretch and fill up; realized we were vastly ahead of schedule due to the higher-than-remembered speed limits. On a whim, we decided to cut east on NM 126 and then down on NM 4 instead of continuing directly on US 550 to San Ysidro. Seemed like a good idea at the time... So, up into the mountains we went on little NM 126, which was fine until it turned into an unpaved, one-lane washboard... and then it kept on climbing. Lots of blind turns, ruts, one-lane bridges, and other fun road conditions. I guess maybe I should have paid attention to the (literal) warning signs, which said reassuring things like "Use in daylight hours only" and "NM 126 impassable beyond this point in winter months." ("Do you hear banjo music?" we asked.) Slightly disconcerting to be bouncing along the road to oblivion while on the stereo John Lennon belted out "Instant Karma" ("better get yourself together / pretty soon you're gonna be dead")... But the views were great, and it was really quite an experience to be (perhaps only what seemed like) the only car on the road. About half an hour after we expected it to, the road got friendlier, started to descend, and eventually turned back into two-lane pavement and then into NM 4, which took us south through Jemez Pueblo and some dramatic canyon scenery before emptying out into the blood-red desert outside of San Ysidro.

Our little detour absorbed just about the entire "fudge factor" in our timing, so once we got back onto 550, I put my foot down on the pedal and whipped our silly Hyundai up to a proper cruising speed. Arrived at the airport right on time, had a little lunch once past security. Since I'd run out of reading material, I picked up the current issue of "Wired" and The Lovely Bones.

Our flights were uneventful -- I found myself enjoying Bones far more than I ever would have expected to -- though we hit nasty turbulence on our approach into Cleveland, it seems that we lucked out by missing the plane-flippingly strong winds that downtown had been dealing with around rush hour. Caught a cab back from the airport, set stuff down, and got scolded by the cats. I think it will be a day or two before they decide if they still love us.

Am completely, totally happy with this trip. It seems like just about the right balance of family, reunion, adventures, wine, food, and road trip. The only problem now is readjusting to EDT, which always messes me up. Not looking forward to the amount of email in my work inbox, or really of being in the office at all. Going to be a long, long week...

Read and Post Comments

Reunion Travelogue (Part Five)

Sunday, 7/24:

Slept in a bit. Read more of HPatHBP while Liz went out for a run. Delicious lunch at Jean Pierre's with Josh, his dad, my folks, and Liz. Weather looked a bit off, so we put our hiking plans on hold. Liz napped while I finished Half-Blood Prince. Set off for the belated hike around 5:45 PM. Liz, Dad, and I got respectably far up Animas Mountain then realized that with the sun setting, we should loop back down and head home before we got ourselves into trouble. Managed to get some (hopefully) great photos along the way. Picked up a few items at the grocery store on our way back. Liz cooked up a tasty dinner from the farm market ingredients, which we served with a bottle of the Vivac Barbera. Had a nice bit of discussion, then off to bed to rest up for the next adventure...

Read and Post Comments

Reunion Travelogue (Part Four)

Saturday, 7/23:

Slept in a bit. Finished the Frank Herbert biography. Started Harry Potter and the Half-Blood Prince. Drove out to Holly's place in the afternoon for the reunion BBQ; got a good bit of rain and lightning on the way out that threatened to make the event strictly indoors, but it cleared shortly after our arrival. Continued good times chatting with old classmates. Holly's dad took us on a tour of his slaughterhouse; surprisingly clean and very interesting. Reassuring to see that in this age of assembly-line mass-market meat, there are people like her dad that are spending quality professional time on the disassembly of cows. Watched games of "Dongball" and "Rope and Buckets" played by folks of various levels of drunkenness. Delicious food. Stayed until about 9:30, then drove back into town with Josh Taylor in search of munchies and booze; these needs were met in many terribly wrong ways by the Orehouse, apparently one of the very few Durango establishments that doesn't close its kitchen at 9:45.

Read and Post Comments

Reunion Travelogue (Part One)

Wednesday, 7/20:

5 AM cab to the airport. Had to detour to the office to pick up business cards -- vitally important when going to one's ten-year reunion. Uneventful plane trip to Dallas-Fort Worth; slept fitfully, read a little of the Frank Herbert bio that Dad gave me for Christmas. Noted with some sadness that the amusingly-named "TrAAin" (DFW's answer to the Disneyland monorail) is now the far more lackluster and generic "Skylink". Additionally uneventful flight to Albuquerque; slept not at all, read more of the Herbert book, had fun pointing at things out the window as we approached.

Picked up rental car (white Hyundai Sonata) and hit the road around eleven ABQ time. Stopped at Gruet to taste their amazing bubbles and try a few still wines. Arranged for some goodies to be shipped back to us. Fabulous lunch at Range Cafe in sleepy Bernalillo. Paused in Santa Fe to purchase a replacement screen for my razor. Stopped at wineries Black Mesa and Vivac on the way up to Taos; Black Mesa mostly disappointed, while Vivac soundly exceeded expectations (solid wines, mind-bending chocolates--double yummy!). Bought a couple bottles at Vivac, including their just-released (as in the day we were there) Barbera.

Overnighted at cozy, super-cute, very romantic little B&B;, Inn on La Loma Plaza. Charmingly rustic. Friendly people. Enjoyed meeting other guests. Dinner was a major letdown -- no yak carpaccio for me. :-( Also pretentious, overpriced, and not very tasty (though my glass of Burgandy was nice).

Read and Post Comments

Obligatory Google Earth Post

Google Earth (formerly Keyhole) is now free (for the base level of jaw-droppingly great service)!

You need Windows (so I'm out of luck until I get into the office tomorrow), but in the mean time, here's a great first peek to whet all of our collective geek appetites. Google also provides some great samples for you to preview and interact with.

I haven't even had a chance to play with it, and already this product completely and totally blows me away. This is a gigantic step closer to the amazing real-time interfaces described in Snow Crash, Ilium, and especially Ghost in the Shell.

Wow.

Read and Post Comments

« Previous Page Next Page »