Archive

Archive for the ‘books’ Category

Engulfed in Flames

October 12th, 2008

My wife pays attention to things that, because I am usually oblivious or overworked (or some combination of the two) I will never, ever notice.  Like the fact that writer David Sedaris was coming to town and that there were tickets available.  She couldn’t make it, but bought a pair for me and a friend and coworker.  She really missed out, because Sedaris was hilarious, and well worth seeing and meeting.

In one of his most memorable passages, Sedaris addressed the subject of being an undecided voter.  I’m paraphrasing slightly, but it was more or less like this–imagine the Sedaris-esque pauses and slightly better construction where appropriate:

Being an undecided voter in this election is like being the person on the airplane who, when the flight attendant offers a meal selection of chicken or human shit with glass shards in it, says, “Hmm… How is the chicken cooked?”

While still on politics, Sedaris talked about how he conducted a survey during his summer book signing tour. The question–do you think Barack Obama is circumcised or not?–was simple enough, but the hemming and hawing took him by surprise as many well-educated, left-leaning audience members paused for deep thoughts like “Well, I know he’s a Muslim, so…” or “He was born in Africa…”.

To this I say that Obama is simultaneously both and neither.  The status of Obama’s foreskin is like Schroedinger’s cat–it’s in a superposition of states and is unknowable until observed. (Frankly, I’ll be content to let Michelle Obama be the only one to collapse that particular waveform.)

Sedaris warned us during the show about the signing line–the line is long, and never moves.  He was pretty much right; it took us two and a half hours to get through the line, a fair bit longer than the show itself.

I mostly tried to stay awake and on my feet (I’m old, and tired!), occasionally trying out bits of lightly snarky conversation with Cory, and trying not to be noticed by the people in line around us that amused me so.

Now, I know I shouldn’t judge, but really, who goes out on a Friday night dressed like an extra from Newsies? He had the hat, the fully-buttoned vest, boots, the works.  I expected him to start hawking papers and then break into song.

More than anyone else, I didn’t want to be noticed smirking at the the two extremely chatty high school girls just ahead of us.  It was really hard not to overhear their conversation, and even harder to not jump in with unsolicited advice.  One girl was freaked out about choosing the right career path and that she didn’t want to get deep into something only to find out it wasn’t right for her, and how she had this plan all mapped out to age 35, and how she’d get a solid career first and then have a family, but she didn’t have to get married but she did want kids, oh sure she could be a great single mom if she had to be, so confident in that she was.  I really wanted to be able to interrupt her and tell her that, “Life is what happens when you’re making other plans.  I didn’t plan to be where I am now, but I’m happy.  Things change, and you change, and if you don’t like what you’re doing, you’ve got plenty of time to just do something else.  And as for being a single mom?  HAH!  Even with two parents, having a kid will totally kick your ass!  You have NO idea what you’re in for.” I bit my tongue a lot, and made observations about the architecture to Cory instead.

Of course, we did get to witness the girls’ BFF commitment ceremony, so that’s pretty special.  I think there may have been a pinky swear involved.

When the girls meet Sedaris, they practically squealed, and upon departing urged him to “have a nice life.”

Sedaris had offered during his show to give away a free copy of a book, as well as allowing immediate line-cutting privileges, to anyone who spoke fluent Portuguese. It took us nearly two hours in line before we realized that we should have started downloading instructional podcasts to Cory’s iPhone and learning enough choice phrases to circumvent the entire line experience. In a worst-case scenario, we figured we could just play audio clips from the phone and try to lip sync convincingly, sort of a “Kung-Fu Portuguese” to compare with the “Nicaraguan French” that Sedaris had discussed during one of his readings. Alas, like many great ideas, this one never went anywhere. After all, what were we going to do with a copy of his book in Portuguese?

As we finally neared the end, the line lady came by to give her spiel.  “He signs the title page.  You must have your book open to the title page.” Or what?  David Sedaris will hop over the table and take a big ol’ bite of my jugular? While he’s ripping my throat apart with his delightful teeth, blood spraying everywhere, the line will disintegrate into a panic-stricken mob, screaming and stampeding away from the monster I’ve unwittingly released in my last moments on earth?

“Well,” I mockingly replied aloud to myself, “there *was* that one time in Columbus.  We wouldn’t want a repeat of that now, would we?”

The signs prohibiting photography violated one of my most well-groomed pet peeves–the use of the apostrophe to pluralize.  “No Photo’s Please,” read the sign.  Perhaps, we wondered, it’s the “please” that’s wrong, so the sign should really say “No Photo’s Pleas,” which sounds like some kind of aborted haiku… “No photo’s pleas heard / Fall leaves swirl silently down / I need syllables.”

Finally, at long last, it was our turn to approach the altar-like table where Sedaris sat with his pens and collection of freebie prophylactics that he likes to give to teenagers, and for such a momentous occasion, I shifted into present tense.

He signs for Cory first. In Cory’s copy of Dress Your Family in Corduroy and Denim, Sedaris draws a cute cartoon turtle with a tunnel-like opening on the side of its shell. He explains that this is a turtle who wanted to do good for the world, so she blew a hole in her shell and now she’s an abortion clinic.

He bombs out on guessing our signs, swearing and declaring horoscope stuff to be “bullshit” when he fails at both of us, but is surprisingly close to home when he asks if I’m a doctor. I explain that I’m not a doctor, but that my father is. Doctors, he tells me, have long hair on the sides of their hands, between the wrist and pinky.

My turn now, I start to hand over my copy of When You Are Engulfed in Flames when I’m suddenly betrayed by the dust jacket!  It flies out from where it’s been dutifully keeping watch on the Magic Page Which Will Be Signed, and I feel like a total jackass. OH NOES!  My embarassments, let me show you them! Fortunately, David Sedaris fails to rip out my throat, nor do me any bodily harm whatsoever.

In my copy of When You Are Engulfed in Flames, he doodles a little bearded man in a top hat, declaring him to be a leprechaun who appears by surprise on your toilet as you exit the shower.  But I am not, Sedaris assures me, the kind of man who will scream upon encountering this leprechaun, because I know that the leprechaun means me no harm.

I tell Sedaris of my morning epiphany — that the words “When You Are Engulfed in Flames” uncannily match the meter of the Disney classic “When You Wish Upon a Star”, and that I’ve spent all day trying to un-imagine hearing the “in flames” version in my head, which has resulted in mentalling casting him as Jiminy Cricket to sing it at me.  He appears somewhat awestruck–either he’s never heard this before, or is very good at pretending that it’s his first encounter with the idea–and tells me about this surreal shop in Japan where he bought groceries that always played Disney music for no readily discernable reason.

We shook hands, and I said something trite and thankful in parting, and shifted back to past tense, glad that I wasn’t part of the back twenty percent of the line that was still shuffling slowly forward..

And that’s pretty much that. If the evening were an Ebay transaction, I’d be leaving a comment along the lines of “A+++ Would do business again!” So, if you feel an urge to be engulfed in flames, let me say from experience that I highly recommend it.

Current Music: Depeche Mode - \"Sweetest Perfection\"

books, culture, friends

Brilliant Idea of the Day

September 28th, 2007

O’Reilly should totally make board books.

Suggested titles:

  • The Very Hungry Regular Expression
  • Goodnight Ruby
  • The Ugly Duckling’s Guide to Perl
  • Brown Bear, Brown Bear, What Do You C++?
  • The Tale of Peter Python

Hmm. I could be on to something…

books, children, geekery, thoughts

Beware of Scrotum

February 20th, 2007

Mildly incensed by a recent burp of stupidity from my home town, I sent this letter to the superintendent of the Durango school district and to the editor of the local newspaper:

I grew up in Durango and attended its excellent public schools from kindergarten through graduation from DHS in 1995.

It was with great embarrassment and dismay that I found my beloved home town of Durango in the national news this week.  Dana Nilsson’s comments on the Newbery Medal-winning book The Higher Power of Lucky which appeared in February 18th’s New York Times paint Durango as a provincial backwater and undermine the reputation and achievements of its students and schools.  No matter how well-intentioned those remarks may have been, nothing makes a town or its people seem foolish quite so effectively as censorship of children’s books.

If the word “scrotum” is so egregiously radioactive in its medical correctness that a Newbery winner is deemed off-limits, then a deeper purge of the libraries is in order–who knows how much damage might be caused if a classic like All Creatures Great and Small fell into the wrong hands?  When I was a student in Durango’s public schools, we regularly encountered dangerous, controversial books as a part of our curricula; often-banned works like Huck Finn, Bridge to Terebithia, and Of Mice and Men enriched our educations and made us better people.

The last time I saw Durango schools in the news, Smiley Middle School students were being strip-searched at a field trip.  It made a bit of a splash on CNN.  Are these really the kinds of waves that Durango wants to make in the world?

Do I have any illusions that it’ll make a difference? Not really. But when one’s home town shows up on Neil Gaiman’s blog, one is forced to take certain measures.

Shocking update! I received a gracious reply from Dr. Barter just seventeen short minutes later that clarified the matter of the book’s treatment in the library in question–it has not been completely removed but shelved with the young adult section and available for checkout. So shame on the NYT for pulling a Daily Show maneuver and lumping my home town in with the scrotum-fearing book-banners.

Also–and I should know better than for this to surprise me, but it does anyway–thanks to the charming smallness of Durango, Dr. Barter recognized my last name right away and connected me to my parents. I must have gotten used to being comfortably anonymous after almost twelve years here in Cleveland.

books, durango, life, rants

Good News, Everyone!

November 29th, 2006

Just received the official notice that my PyCon presentation proposal was accepted! I plan on basking in the warm glow of non-rejection for a couple of days, and then commencing forthwith with the stressing out about getting it pulled together in time given all the other insanity of my life.

In other news, Liz and I had a lovely, low-stress, very lazy Thanksgiving weekend. To my great surprise, I put away close to 700 pages of The System of the World, finishing it early Saturday evening, and achieving my goal of finishing the Baroque Cycle before the end of the year. At nearly a thousand pages apiece, these books have taken some serious commitment from me (my reading-for-pleasure time being significantly diminished from its former glories), and I’m really, really happy that it paid off so well. Of course, now I have to read Cryptonomicon again, but that can wait a bit.

Work is about to be really interesting, in the possibly-very-good-interesting sort of way (rather than the omfg-you-want-it-when way). Details are still pending, so I’ll keep my mouth shut until then.

And, by the mysterious and tangled workings of the internets, I’ve reconnected with a long-lost friend from days of yore, and that’s just nifty.

books, holidays, pycon, python, thanksgiving

The Week That Would Not Stop

September 14th, 2006

Bleah. Totally run down. Stressed out, burned out, and all-around fried. But still clinging desperately to life in the hopes that it might all settle down at some point. (It has to settle down, right?)

Thanks to a bumper crop of ragweed, I have spent the last two weeks wanting to claw my eyes out. Puffy. Sore. Goopy. Crusted over when I wake up. I feel like someone has scraped sandpaper over my corneas. I feel like I haven’t slept since the allergies really kicked in.

Work is a super giant happy fun ball of stress as I attempt to coordinate a lot of last-minute things, deal with incomprehensible bug reports, and generally attempt to save the world. So far… meh… I think the world’s still in trouble. It’s taken me until today to start working on the things I was supposed to be doing on Monday. I guess it would help if I could get more than five minutes of uninterrupted time, but apparently that’s out of the question at this point. *sigh*

I’m way behind on dealing with some vaguely important email for Clepy. I have had a tiff with DirecTV over their habit of failing to send me a bill and then charging me lots of late fees. (Surprisingly, not the first time they’ve done that to me…)

And it doesn’t help that I’ve had things to do every night this week: Clepy (and post-Clepy festivities) on Monday, wine group Tuesday, German class Wednesday, and an appointment tonight. Tomorrow, I expect I’ll probably just stay late at work, except that the parts for the new closet organizer system thing have arrived and I want to get started on that too.

Good lord, it’s Thursday, and I still haven’t picked up the new Star Wars DVD’s, with the Han-shoots-first-thank-you-very-much original cut. For those that know me, that should give you an indication of what a general shitstorm it’s been lately.

On the plus side, I finished The Confusion over Labor Day weekend. On the minus side, I still have about a thousand pages (hardback!) of The System of the World still to go… by which point I suspect that I will need to re-read Cryptonomicon since it has enough bits that tie in with the other books. It’d be easier if my eyes didn’t feel like they were about to explode out of my head (see above).

…And I think I might have finally hit the point where Gentoo in particular, and Linux in general, is dead to me, the way someone who crosses Tony Soprano ends up in the deli slicer, or taken out to the Pine Barrens and disappeared. Midway through my third (fourth?) day of trying to get the emerge -eav world step of the upgrade to gcc-4.1, I am just about at the end of my geek rope. I fell in love with Gentoo because its packaging and update system “just worked”, freeing me up to waste my time configuring and tweaking everything else to be just so. But this update is just insultingly murderous, as all kinds of supposedly stable things just won’t fucking build right–because, y’know, that would be too easy. So, even if I have to turn in my geek badge and live life as a lesser mortal, beholden to the software update whims of Apple, I think that’d be okay with me, because this kind of time-waste is something I simply cannot allow in my life any longer.

Grr. Argh!

books, clepy, computers, geekery, gentoo, health, house, life, linux, naughty-words, rants, work

Germany Photos: Intermission

August 24th, 2006

Bloody hell, it’s been almost twelve days since I’ve posted any new photos from the Germany trip. Harrumph. I guess that’s what happens when I let myself get distracted by other things: houseguests, complete disassembly of the office/computer space to prep for painting, work, catching up with Tivo (I can’t believe I’ve gotten Liz hooked on “Eureka”, woot!), catching up on long-overdue library DVD’s (Paradise Now, Munich, and, somewhat embarassingly, Aeon Flux, which at least I didn’t have to pay for), slogging bravely through Neal Stephenson’s The Confusion, and going to Oktoberfest with [info]geoffimusprime.

Today was part one of the annual two-day company pep rally thing for this year, which, on one simple fact alone, instantly qualifies as the best so far: free beer coupons for happy hour. Hooray, beer!

I have at least rated, retouched, and sorted the remainder of the vacation photos; hopefully I’ll get around to posting them over the coming days. And then I’ll have to find something else to blog about for a while. ;-)

beer, books, germany, house, life, movies, photos, travel, tv, work

Review: wxPython in Action

July 4th, 2006

wxPython in
Action

Authors: Noel Rappin and Robin Dunn
Published: March 2006 by Manning
Publications Company

ISBN: 1-932394-62-1
620 pages

If, like me, you’ve been living under a rock (inasmuch as one can in the world of cross-platform GUI toolkits), you might not have heard much about wxPython. And if, like me, you were
excited by the idea of quickly developing modern, robust GUI-driven
applications that can run, without changes, on Windows, Mac OS X, and various
UNIX-like systems, but turned off by the downright spartan and unforgiving
online documentation, you can get happy again–with the publication of Noel
Rappin and wxPython co-creator Robin Dunn’s wxPython in Action, there is finally a cogent, coherent hybrid
of tutorial and reference for wxPython that will get you out from under all
that clunky Tkinter code and doing cool stuff.

Like other volumes in Manning’s In Action series, wxPython
presents a comfortable combination of introduction, overview, and example that
encourages exploration and experimentation. The text is clear and concise,
offering a no-nonsense explanation of the most relevant portions of the
wxPython libraries and the best practices for their use, delivered at a
measured pace that never manages to overwhelm, and uncannily launches into
explanations of your questions just as they arise. Numerous reference
tables provide a handy guide to the details (object properties, method
signatures, events, etc.) that you’ll be coming back to in your own future
development. The expanded table of contents, listing each of the “how do I…”
subsections of each chapter, is also a nice feature that will help make
this a valuable reference. Code examples are functional, clean, and on-topic,
just the right size to illustrate the concept at hand, and nearly always
accompanied by illustrations of the resulting behavior.
All the code is available online, and it’s worth your time to either download
it and give it a spin, or key it yourself and see how it behaves on your OS of
choice. An especially nice feature of the example code in the book is that
it’s well annotated, either with a brief note or a bulleted number that will
be referenced in an in-depth explanation immediately following the code
listing; this helps the reader quickly zero in on the essential elements of
the example, and it’s surprising that such a useful technique is not more
frequently encountered in programming books. A few errors seem to have snuck
through the editing process, though, so deeply involved readers will want the
errata nearby when
monkeying with example code. Manning’s “Author Online” forums are also a
great resource if you get stumped along the way.

The book is divided into three major sections, each six chapters long. The
first, “Introduction to wxPython,” is primarily a tutorial that walks the
reader through the foundations of coding in wxPython-land. Newcomers to GUI
programming might find certain portions a bit dense and mildly
daunting–specifically chapters 2 and 3–but patience here will be rewarded
with a good understanding of critically important concepts, such as wxPython’s
event handling model, that will be leveraged over and over again throughout
the rest of the book. Chapter 4 introduces PyCrust and other tools from Patrick
O’Brien’s Py library that you can use for interactive debugging or even reuse
within your own wxPython applications. Chapter 5 is a real gem, providing an
excellent discussion and practical walkthrough of the refactoring process, an
exploration of the benefits of the Model-View-Controller pattern and how
to do MVC in wxPython, and illustrates how to unit test your wxPython app;
these are non-glamourous topics that help aspiring developers grow into good
professionals, and this is a perfect place to see these topics. Chapter 6
presents the construction of a simple but fairly polished toy sketch
application, a satisfying achievement that nicely rounds out the introductory
section.

The second section, “Essential wxPython,” begins the more reference-oriented
material, covering (unsurprisingly) the essential widgets of the wxPython
toolkit: text labels, text entry, buttons, checkboxes, and the like in
Chapter 7; frames (what most of us think of when they think of “windows”)
in Chapter 8; dialogs in Chapter 9; various flavors of menus in Chapter 10;
the ins and outs of sizers in Chapter 11; and basic graphics manipulation
(putting images on the screen, customizing the cursor, etc.) in Chapter 12.
Each subsection builds logically on the one that came before it, and likewise
each chapter follows from its predecessor, introducing new widgets just as
you’re ready for them. The text here is significantly lighter than in the
first few chapters, so this reads fairly quickly.

The third section, “Advanced wxPython,” covers some more complicated widgets
and topics that probably won’t be day-to-day concerns but which are important
enough that, when you need to know about them, they’re covered in the book:
list controls (think Windows Explorer or Macintosh Finder) in Chapter 13; grid
controls (think spreadsheet applications) in Chapter 14; the tree control
(think file system trees, or registry editors) in Chapter 15; HTML widgets (a
great idea for a help facility in your applications) in Chapter 16; the
wxPython printing framework in Chapter 17. Finally, Chapter 18 rounds things
out with a grab-bag of other topics that didn’t merit their own chapters but
which are good to know about anyway: using the clipboard, managing drag and
drop operations, timers, and threading issues.

To be fair, there are a few imperfections here, but they mostly amount to
personal nit-picking. While it’s probably not essential, there’s no
discussion of sound or other multimedia functionality; and from a structural
standpoint, the book would have benefitted from a brief afterword to launch
the reader into further reading or development activity. Finally, and this
might be slightly unfair as I’d just finished reading one of O’Reilly’s
Head First books when I picked up wxPython in Action, this book
could probably use a little more personality; when the occasional editorial
comment sneaks through, it’s a welcome break from the readable but positively
arid expanses of text and examples.

That said, there’s obviously still a lot here to love. wxPython is clearly the way to
build cross-platform GUI apps in Python; even Guido van Rossum, Python’s
creator and benevolent dictator, advocates it, saying, “wxPython is the best
and most mature cross-platform GUI toolkit… the only reason wxPython isn’t
the standard Python GUI toolkit is that Tkinter was there first.”
wxPython in Action is clearly the authoritative resource
on the subject, a great introduction that will also serve as an excellent
reference for years to come. Recommended for wxPython n00bs and gurus alike.

books, geekery, python, wxpython

Weekend, Surprises, Verbosity

April 24th, 2006

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 mu
ch slacking and irresponsibility as we can get away with. Gotta keep things in perspective, after all.

books, cars, cats, dates, food, house, life, liz, naughty-words, tv, weekends, wine, work

Twisted Network Programming Essentials

February 1st, 2006

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.

books, geekery, python, twisted

And Suddenly Tuesday is Date Night

October 18th, 2005

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!

books, dates, food, liz, theatre