Tuesday, December 16, 2008

Silently Scheming Sinister

Just saw the season finale for season three of Dexter.  Needless to say, these are

MEGA SPOILERS

I have to admit that I felt this was the weakest of the three seasons so far.  I don't mean that it was bad - Dexter is still one of the most gripping experiences out there - but the last two seasons have been superlative, while this was merely excellent.

Since watching the finale I've been trying to put my finger on what exactly was lacking.  At first I thought the problem was that this season lacked focus... you had Miguel and John King running around, with neither really sufficiently dominating.  However, the second season was also a little scattered, with Dexter being the actual villain, and Doakes and Lila his antagonists.  That scattering had a multiplicative effect that kept me breathless as the plot began to spin out of control.  By contrast, it felt like things never really clicked in season three... other than a very weak connection between Miguel and the Skinner, on-screen for all of ten seconds, you just have one wannabe killer and an uninteresting serial killer.  Don't get me wrong, the actual skinner crimes are horrifying, but King's psychopathy doesn't begin to compare with the cold, elegant murders of the Icetruck Killer, the righteous fury of Doakes, or the pure jaw-dropping craziness of Lila.

I guess that I kept wanting to see everything get unified and become greater than the sum of its parts.  After Dexter sees behind Miguel's facade, I began to fantasize about a modern-day interpretation of the climax from The Godfather.  On his wedding night, Dexter would take care of all family business, putting down Miguel and the Skinner while he had a perfect alibi, establishing a safe future for his unborn son.  Obviously they chose a different path, though it was clear the same temptation had presented itself to the writers, because they had Dexter's dad specifically dismiss it in one of the very common fantasy sequences.

It's not like the season was a bust.  It had some of the best cliffhangers in the series to date; specifically, the episode where Dexter finally shares a kill with another person, and the one where he puts down Miguel.  I really enjoyed the evolution of Angel's character, and liked most of the new characters introduced.  Well, that isn't entirely true, but I do like Angel's girlfriend.

In keeping with the "scattered" criticism, it felt like there were a LOT of minor plot threads that just didn't go anywhere.  The most gaping example is the Internal Affairs investigation.  There's also Debra's pursuit of Harry's past.  And, related to IA, we still don't really know what the deal is with Debra's new partner.  I get the strong feeling that they're laying the groundwork for future seasons, and hope they give an impressive payoff, because this just didn't do that much for me.

What else... I think Vince might be my favorite supporting character.  Especially after he got over his crybaby fit, I realized how much I appreciated his personality.  I'm really digging the way that all the characters on the show are evolving.  I miss Doakes... I'm glad they did what they did, because the second season was amazing, but I do miss his strong antagonistic presence; Ramon just isn't an adequate substitute.

Also, you do know what the opposite of "Dexter" is, don't you?  It's "Sinister."  I'm just sayin'.

END SPOILERS

While I'm on the subject, how does the rest of television look?

I continue to be impressed at the longevity of House.  The staff shakeup continues to pay dividends... it gets a little soap-opera-y at times, but is generally really solid, and the writing continues to be excellent.  Kal Penn is an excellent presence on that show.  Character-wise, I've been surprised at how effective Dr. Taub (sp?) is; I think that this is at least in part because he's such a non-conventional character.  You don't see that many short, balding, mildly unpleasant men on television.

Hooray for a new season of Robot Chicken!  Loved the premiere.

I have to admit that I gave up on Sarah Silverman.  It was funny, but I'm finding diminishing returns there.  I think that Silverman is one of those things that is hilarious in small quantities, but can become overwhelming with too much exposure. 

We're SO close to the end of Battlestar Galactica!  I can hardly wait!

After catching some Daily Shows and Colbert Reports during the election, I'm on the wagon again, trying to detox.  They're excellent, but I just can't give that much of my life to smarminess.  I did, though, check out the Colbert Christmas Special.  Funny stuff!  I don't think it will age well, but the fact that they aren't even trying should help. 

More loosely on the topic of television: last weekend I made some progress on my longest-running hardware project to date.  I picked up a digital television converter using my free $40 coupon, got it working, and was pleased to see that (1) I can get KTEH signals, and (2) one of the "child channels" on KTEH appears to be KQED, which is usually what I actually wish I was watching.  Success!  I was so elated by this that I decided to try again to get the TV capture card in my media PC working properly.

It was a bit of a pain, but after a lot of Googling and research, I finally got the bttv module to load properly.  There are literally hundreds of cards out there that use the same driver, and only a few can be auto-detected.  I fell even more in love with Newegg than ever, because I was able to view my original order history from 2004 (!) and find the exact model of the super-cheap card I had bought.  For a long time I could only get a green screen with some static on this KWorld, but eventually I got the right options and the right order, and at last was grabbing good-looking video.  And it only took me a little more than four years!

There is still one major hitch, though: I can't hear any sound.  Apparently this has been a problem on Ubuntu for over two years now.... something to do with the way the modules are loaded into the kernel.  It looks like I actually need to get two modules loaded, bt878 and snd_bt87x, in order to capture sound off the card.  I finally got them loaded and created the /dev/dsp1 driver (after learning that I needed to pass "load_all=1" to snd_bt87x), but I only hear a faint hum/hiss sound that might be from my speakers.  When I try to capture directly from the device I get an Input/Output error.  I've made sure that all my ALSA options are configured properly, so I'm not sure if there's anything I can do to help at this point.

I will try one more thing before giving up: one way people use this card is to run the line-out audio from the TV card directly into the line-in of their sound card.  This is the preferred way to listen to sound while watching a live broadcast, but I'm unclear on whether I'll actually be able to capture audio using this method.  Still, since the cable costs like $5, there's no reason not to try it.

What's really funny is that I've already spent more time trying to make this work than I probably will watching shows once/if it's set up.  Pretty much the only over-the-air television I'm planning on recording is America's Test Kitchen and Cook's Country.  I suppose I might try to cap the occasional Charlie Rose, too, when there's someone good on.  Anyways, it's just kind of amusing... I really do get more pleasure out of building things than using them.

Sunday, December 14, 2008

Wheeled

See, this is why I'm an engineer and not a sales person: I wrote a whole freaking post about Wheeler, and didn't think to include any screenshots.  I doubt anyone is waiting on these, but for posterity's sake, here is what Wheeler looks like as of December 2008.

If you think any of this looks good, I need to give credit to the Android UI team.  They made some great-looking UI components, and despite my regular complaints about things not working, the truth is that they're some of the best SDK-provided components out there; only the iPhone's even compare.  With all the other toolsets out there, every serious developer needs to write their own UI toolkit from scratch or use a third-party offering.  Android's UI should actually give developers pause as they consider whether it's worth using.

And for anything that doesn't look good, well, that's probably my fault.  The pre-release transitions from M3 to M5 and so on wreaked havoc on everyone who tried to customize their appearance, so I played it safe and stuck to the defaults on almost everything.  This had the benefits of greatly easing transitions to newer SDK versions, simplifying my workload, and creating a clean look that unified with the rest of the phone.  The disadvantage is that "unified with the rest of the phone" is synonymous with "undistinguished."

Anyways!  Onward!  When someone starts Wheeler for the first time, one of the first things they'll probably try is to start riding.  Wheeler will activate GPS and center the map on your position.  As you ride, the map automatically moves to show where you are.  An old-fashioned high-wheeler indicates what direction you are moving in.  The stopwatch shows how long you've been riding for, and behind the scenes Wheeler is parsing through the GPS data to determine how far you've been riding, how fast, and so on.

Wheeler can track all of the rides you have gone on.  It can do this automatically through the mapping mode, or you can fill it out yourself after each ride. 

Because Wheeler focuses on customization, you can adjust the settings to only display the statistics you care about.  A commuter might not care very much about how many feet they have been climbing, but that information is really useful to a mountain biker. 

Once you have entered enough data in to Wheeler, it can start doing some more advanced analysis for you.  Select the statistic you're interested in and a time period to view how your performance has been changing (hopefully for the better!).

Right now you can track the major stats you entered yourself, and also some derived ones.  The ones I personally find most interesting are calories burned and carbon preservation.  I think I'll try and add another one for savings on gas money in the next major version.  The problem with all of these is that there's a tension between accuracy and simplicity.  There are a lot of factors that influence exactly how many calories a particular person will burn on a particular ride, and it would be a big pain for the user to need to type a whole bunch of information in and keep it up-to-date.  I'm still trying to decide how to resolve this dilemma.
 I felt super-super nervous when I uploaded Wheeler to the Market.  Even though I've been distributing personal applications and games for over fifteen years, they usually just go to friends, or are buried in obscure locations.  By contrast, I was throwing something up front-and-center, in a position where, potentially, thousands of strangers could see what I'd done.

So, what's the story?  I had no idea what to expect when I clicked "Publish".  I sort of vaguely thought that there might be a dozen or so people who would eventually use it.  I mean, how many bicycling G1 users are out there?  I checked it again the next day and saw that it had been downloaded a total of 0 times.  Aww, that's too bad, I thought.  At the same time, I was a little relieved.  If nobody sees it, nobody can criticize!

Well, less than a week after it went live, Wheeler has been downloaded a total of 1320 times!  I think that's amazing, and honestly humbling.  In just a few days, Wheeler has reached an order of magnitude more people than all of my prior individual work to date.  (And about four orders of magnitude less than the work I've been paid to do, but I'm more than content with that.)  It feels pretty exciting, pretty weird, pretty amazing.  Even though it's a free application, I suddenly feel a sense of responsibility towards it based on the number of lives it's touching, even in a marginal way.

According to Google, of those 1320 people, 1042 people have liked it enough to keep on their phones.  59 people care enough about the application to have rated or left a comment about it.  Those ratings average to 4 of 5 stars.

Is that good or bad?  I don't know - I can't see the ratings for any other applications.  What are the commenters saying?  I don't know - there is no way for me to view them.  This is one of the frustrating things about the Market... it would be so nice to actually learn what the users like and dislike, how people are using Wheeler, etc.  I must say that I totally get what Google is doing: they want developers to buy G1 phones so that they can access the Market on it and actually read the comments.  (To be fair, I highly doubt that Google is getting a big premium on this - $400 seems like a lot of money, but for a non-subsidized phone that's pretty reasonable, and below some top-end Nokia phones.)  I'd imagine, though, that even developers who have G1s would be irritated by this... it would be great to read the comments at your desktop browser.

Or maybe not.  From what I've read on the support forums, there is a pretty ugly streak running wild in the Market now.  Some of it is run-of-the-mill Internet anarchic stupidity, with dozens of people saying "first!!!!" and leaving one-star reviews, but there have been widespreaad complaints about racist attacks, crude sexuality, and heated personal insults.  Um, yeah... that doesn't sound like fun to me.  Google claims to be working on solving the problem, and I hope that they do.  I know that the comments I read on iTunes when looking for apps for my iPhone have been extremely helpful - both the ratings to know what's good, and the comments to learn about what people are using it for and whether anything is broken.  I wouldn't even bother reading them if I had to wade through trash to do so, and I hope the Android market doesn't get sucked into the morass that has kept me away from forums for years.

What has been cool, though, is actually hearing directly from my users.  Google permits users to email the developer of any application through the Market, and I've additionally put a support email address within Wheeler itself.  So far I've just heard from a handful of people, but that has probably been the most amazing part of all: finding out about problems people are having, what sorts of features they hope to see in the future, where they live and what kind of riding they do.  It makes everything feel real and immediate.

So, whither Wheeler?  I don't know how much time I'll be able to devote to it, but at a minimum I hope to keep it current with Android and fix any major bugs people find.  So far there haven't been any (knock on wood), though I did release an update that helps explain the GPS feature better, based on invaluable feedback.  (From real people!  Wow!  I still can't get over this!)  If and when I get a G1 (my iPhone contract is up around September 2009), I'll hopefully start actually riding with Wheeler and get additional motivation to improve it.  In between now and then, it'll probably depend on how many long weekends I have, what kind of requests I hear, and how tricky it is to make improvements.

Basically, expect a decent average speed, but a jagged cadence.  Keep on spinning!

Tuesday, December 09, 2008

Hitting the Road

The new Android Market is surprisingly mercenary.  In order to be an official developer, you just need to pay a one-time fee of $25.

I'm not sure how I feel about this.  On the one hand, I tend to enjoy the egalitarian ethos that anyone who writes code is a developer.  One of the few most attractive aspects of the Java ME ecosystem is that anyone can create a JAR and a JAD, throw the up on a webserver, and have people use your stuff.  By setting a barrier to entry in the market, Google seems to risk losing out on some of the messy, fun, seat-of-their-pants programming that often flocks to new platforms.

On the other hand, as a professional mobile developer, I'm used to developer programs with high standards and requirements.  Anyone who wants to distribute BREW apps needs to pay big bucks up front, without any sort of guarantee that the carrier will even permit their applications to be sold, and also pay a fee for every phone for every app that they want to sell.  Similar arrangements are in place for first-tier customers at the major carriers, and in order to have your app strongly visible on the deck, you need to pay big bucks and sacrifice a good chunk of your revenue.  By having a comparatively modest barrier, Google seems to risk letting in the riff-raff.

Altogether, I think it makes sense.  $25 isn't a lot... it's nothing to a company, and the equivalent of a few movie tickets or a really nice meal to a committed individual developer.  It keeps people from spamming the market with "Hello World" applications, giving more visibility to the people who care enough about their apps to make a little sacrifice.

As you've probably gathered by now, I have joined the joyous throng and anteed up.  Earlier this week I uploaded Wheeler, my first public individual submission, under the name of Fifth Column Software.

For those of you who don't already know about it, here's the skinny on Wheeler:
I started work on this a few weeks after the Android Developer Challenge began in November 2007.  It went surprisingly quickly.  I give a lot of the credit to what I've learned in my professional life.  I still remember the projects that I would work on when I was writing in BASIC in elementary school and junior high, which would NEVER END... I started writing something because I thought it was fun, and kept on adding more and more fun things, until it would become so unwieldy that I couldn't stand to do anything more with it.  Now, even for my fun projects, I invest the time up-front to come up with a bulleted feature list, some rough screen sketches, and overall architectural design.  Of course, things aren't set in stone, but I've found that doing this before I start serious coding helps make me brave enough to say "No" to the hundreds of new ideas that will pour in.  I capture the good ones, write them down, and schedule them for Version 2.  And if Version 2 never comes, at least I'll have a complete Version 1, which is more than I used to have for 90% of my projects.

That said, it's critical to have an exploratory phase when kicking off a project, especially when it's on a new platform.  My own experiments and forum-lurking revealed some huge gaps in the early SDK that would make certain things hard or impossible to make.  I expected these to be fixed before shipping, but that still eliminated certain classes of applications from the Challenge.

I've thought for a few years that, if I was a Google engineer, my 20% project would be to create a national Google Maps for bike routes.  Ideally it would work like regular Google Maps, where you could either search an area or ask for directions, but it would show and classify routes appropriately for cyclists.  You'd be able to get directions over trails, see which roads had bike lines or wide shoulders, and what places to avoid.  I thought the challenge would be a great chance to actually make it, and the more I thought about it, the more excited I got about its usefulness as a mobile app.  I could imagine someone taking a week-long touring trip, and when they came across construction they could whip out their Android phone, have it automatically locate them through GPS, then see what safe streets and trails were available nearby to continue their trek.

I learned pretty quickly that, while that kind of information is out there, there's no consistency.  Unlike road information, which is available on a national basis and in data-friendly formats, bike route ratings are variously created and supported by cities, municipalities, volunteer organizations, or individuals; often only exist in printed materials; and have no standards for route ratings.  I flirted with the idea of taking some of the more data-friendly offerings out there and creating a kind of demo application that would do what I wanted, but only be available in a few cities.  I decided against it.  I wanted something that would be widely useful to people across the US or even the world, and wasn't interested in making what was basically a toy - especially since Santa Clara County's own data isn't that great.

But, while poking around for the aborted route mapping idea, I became even more enamored with the possibilities of a always-connected mobile device that could be carried by cyclists.  Honestly, even the iPhone 3G by itself would be useful - just being able to see where you were and what was nearby would be a big improvement over carrying around bulky maps.  And once someone was carrying a phone, you could tailor it to provide them with useful things for their ride.  And once you got them using it during their rides, you could offer more support before and after...

I eventually chose a cluster of features that would offer the biggest usefulness bang for the smallest development time buck.  The centerpiece would show off Google's cool mapping feature.  Customized for cyclists, the map screen would not just show where you were but also track your direction, so on cloudy days you could immediately tell whether you were heading east or west down this particular road.  It would include a timer, similar to what's on a cyclocomputer, so you can keep track of how long your ride has been.  Actually, it would duplicate the features of a cyclocomputer, and add more of its own... why not keep track of how many feet of elevation a rider had climbed?

Since we're collecting all this good data, that opens up some really cool possibilities... well, cool to nerds like myself.  Forget keeping a riding log - the phone remembers everything for you.  You can pull it up and flip through old rides whenever you want, add notes, correct mistakes (like if you forgot to record part of the ride) or add new details (like how windy it was on a particular day).

Let's not forget that we're running on a device with a sweet, big screen, and more CPU power than the computers I learned to program on.  Let's take all that data we have, and add a sweet performance analyzing section!  Draw graphs of your average speed for rides during the past year, or see how many calories you burned during the past month.  Since I'm a liberal Bay Area resident, I also added a feature where you can see how much carbon you have conserved by riding instead of driving a car.

I kept on thinking of more cool stuff, but decided to hold the line there for the initial challenge... it would exercise some of Android's features, and be a complete, hopefully-useful application for people like me.

It came together surprisingly quickly.  I kept running into bugs in the SDK UI, which I dutifully logged and then worked around.  But thanks to my feature plan, I got to a point where everything was working, I was happy with it, and I could focus on debugging it and then say "It is good."  I even had enough time to write an entirely separate application for the contest, though that's another post entirely.

From there on it was mainly a shepherding process.  I upgraded the app from M3 to M5 when the new SDK was released.  I kind of lost interest after the contest was over - with no phones in existence and no additional incentive, I just decided to focus on other things.  But when the G1 came out (and I must admit to being a little surprised that Google really did hit their stated "Second half of 2008" target), I decided to polish the app off again.

Eventually.

Life's been pretty interesting the last few months.

All it took was a weekend, though... a good 48 uninterrupted hours with me, the R1 SDK, and Eclipse.  A good chunk of the time was just making everything compile again.  Google had fixed some bugs, which caused my work-arounds to break, but I'm always happy to take out hacks and do things the official way.  And they had introduced some new bugs, which I dutifully filed and found new work-arounds for.  Ah, the delightful life of the mobile engineer!

The last step was full business.  I took the time to read the disclosures and agreements, and was pretty interested by what I found.  Google does ask for some things that sound kind of scary at first, especially when it comes to payments, but again, compared to most mobile markets out there, it was quite reasonable... and this was pretty much the only one letting individual fishes swim among the schools.

One complaint some major studios have expressed is that the Market currently does not support charging for applications.  This "feature" will be added in the future, but for now, all apps are free.  Personally, selfishly, I don't mind.  I like Wheeler a lot, but I don't see a huge market out there of people looking to spend money on a cycling application for the G1.  I'd much rather 100 people try it and hopefully find it useful, earning me some karma, rather than 10 people buy it and give me a pittance.

That's the end of that chapter.  Not sure yet what the future of Android holds for me... it's been a fun ride so far, and I hope it gets better!

Saturday, December 06, 2008

A Screaming Comes Across the Page

After two valiant but thwarted attempts, I am finally making some progress into Gravity's Rainbow. No, I'm not done yet, but I wanted to get in a post on it anyways. Much like my time with Anathem, I'm hoping to accomplish several things: jot down my thoughts before I forget them; maintain a record of my evolving reaction throughout the book; and avoid writing one disgustingly long post. In GR's case, I will also essentially be setting down a placeholder writ large, so in case I get derailed yet again, I can at least track how far I got this time and maybe get a head start in the inevitable fourth attempt.

It's worth briefly mentioning why this is so hard for me. I almost always finish books that I start, even mediocre ones. For me to abandon a novel, it generally has to be very boring or deeply unsatisfying. Gravity's Rainbow isn't close to either of those things. To the contrary, it is one of the most amazing, exciting, well-written books I've ever come across. What it is, though, is incredibly dense. I've gotten a bit soft in my post-English-Lit years, and am accustomed to breezing through the pages. In this book, Pynchon demands close attention, and a great deal of focus, in order to penetrate his language and get in tune with the book. So this isn't the sort of thing that you can pick up for a few minutes at a time throughout the day and hope to make any sort of progress: it requires a disciplined approach to reading and an investment in time.

Which is why I (cautiously) hope that this time I can actually make it. I'm reading it on my commute, which means two good one-hour blocks each day with no real distractions or interruptions. I can just focus on it and let myself get swept up by the book. My prior attacks on the book were in looser circumstances, always with the temptation of other, easier books near at hand. I'm learning to adjust my pride and expectations - sometimes, I may just make it through 20 pages in a full hour, but in my earlier attempts I would have blown through 50 pages in a seating, then realized that I hadn't paid attention and didn't know what was going on.

The overall experience is actually really close to reading Ulysses, which was an amazing book, but one that I could not have hoped to finish if I hadn't been reading it for a class. That provided the incentive and structure I needed to stick with it, and the overall feeling of reading both books is nearly identical: very hard, very complex, but incredibly rewarding and surprisingly funny.

Time for some meandering thoughts, within the

MINI SPOILERS

Yet another way this is like Ulysses, and Moby Dick for that matter: the way that characters will spontaneously burst into metered song. The songs are funny, tangentially related to the plot, and often quite dirty. It's telling of how convoluted the prose is that the songs are often the most understandable part of the book.

I'm now just past page 300, roughly one third through the book, and so far the biggest concerns I've noticed are paranoia and delusion. Paranoia in particular gets a lot of focus from Pynchon, including (what else?) paranoid songs, the "Proverbs for the Paranoid," and Slothrop's worry about his paranoia. Paranoia is crippling and alienating, as it offers sinister motives for every overture you encounter, but it actually becomes a virtue in this story. Sure, you must be paranoid if you think that there is a binational intelligence force of British and American spies who are tracking your sexual activities - but that doesn't mean that it isn't happening.

Or does it? What makes Gravity's Rainbow especially tricky is the hallucinatory logic it follows. Dreams and imagination are only occasionally identified as such, even when they contain events that are clearly physically impossible. And even if they aren't really happening, they still are "real" in the sense that they occur in someone's mind (Slothrop's? The narrator's? Ours?), revealing anxieties and desires, and that people react to them.

This style will be familiar to people who encountered it, in a much subtler and more subdued form, in the phenomenal "The Crying of Lot 49." Ophelia's night-time city wanderings in particular brought her in contact with strange situations, and for me one of the high points of the book is when she becomes irritated at a group of children and decides to stop believing in their existence. That kind of fluidity between reality and thought constantly lurked just below the surface in 49, unsettling everything and, if you chose, giving you the opportunity to question not just the mystery of the Tristero but whether the clues empirically existed at all. Well, in GR that fluidity has burst above the surface and drenched everything in sight. You can question everything, or you can just enjoy the ride.

This irrationalism is what makes the book so wonderful, in this humble reader's opinion. Pynchon isn't bound by the rational or the possible, and can spin out amazing situations without restraint. Even some scenes that seem like they might have actually happened would not fly in a more conventionally written book; the dream writing of the book gives license to use dream logic and dream imagery. I love the casino party, where all the soldiers are drunk on champagne and high on hash, when a jilted lover drives a Sherman tank out of the forest and starts shelling her ex. Or the gnomish journey underground where Slothrop falls through a trap door and discovers a giant vat of ale, American soldiers singing filthy limericks about coupling with rockets, and a comically obese major who had tangled with an African Nazi rocket commando and takes it out on Slothrop, leading to an "Indiana Jones and the Temple of Doom" style sequence (written more than a decade before that movie!) with flying bullets and drunker and angrier soldiers and warheads and booby traps... it's all amazing, it's all wonderful, and it doesn't make a lick of sense.

And yet, tied to that irrationalism and in some ways justifying it, we have the fact that Pynchon is a really bright guy who loves dabbling in science and mathematics, the most rational pursuits we have. He's even more willing than Stephenson to drop an equation into the prose, or draw a diagram, or meditate on quantum mechanics and ballistic physics. With Stephenson, these things are generally a really cool sideshow, something that's neat and exciting and offers a little tangent from the plot. For Pynchon, they're actually opportunities to get even more artistic and more literary. My jaw dropped when I realized where he was going with a particular flashback scene in the tunnels. He notes the shape of the tunnels, parallel elongated S's, and makes the obvious connection to the Nazi SS. But then he has a character make another connection: yes, it is an important Nazi sign, but at the same time it is ALSO a double integral sign. And what is its significance given the tunnels' role in the V2 project? I'm going to cheat here and quote directly, because it's just so great and I can't do any justice to it:

In the static space of the architect, he might've used a double integral now and then, early in his career, to find volumes under surfaces whose equations were known - masses, moments, centers of gravity. But it's been years since he's had to do with anything that basic. Most of his calculating these days is with marks and pfennigs, not functions of idealistic r and θ, naïve x and y. ...But in the dynamic space of the living Rocket, the double integral has a different meaning. To integrate here is to operate on a rate of change so that time falls away: change is stilled.... "Meters per second" will integrate to "meters." The moving vehicle is frozen, in space, to become architecture, and timeless. It was never launched. It will never fall.

Goosebumps!

The shifts in tone and emphasis bring me back to Ulysses again. In some ways it feels like the narrator we have here is a mash-up of the various narrators of Ulysses, with "Circe" dominating. A single insane narrator, if you will, or one who's having a bad acid trip. But different concerns and interests float to the top, like physics and business and history, and sometimes he calms down a little while reflecting on things that are important to him.

A quick side note: this book is DIRTY. I think I probably didn't get much farther than 100 pages on my first two tries, because I definitely would have remembered the stuff that happens later. I don't usually feel physically ill when reading about something, but have already come across a couple of situations that do just that. Of course, that won't stop me from finishing - the scenes in question also happen to be very powerful and effective, even if they do make me want to wash my brain out with soap and water.

END SPOILERS

Wow, that was a super short post given all the time going into its source material... I haven't even touched on the plot! I hope to do one or two more posts before I'm done with this beast, though. Stay tuned or run away screaming as your conscience dictates.

Tuesday, December 02, 2008

Tree Climber, Life Liver

I received a delightful and unexpected gift in the mail a while back, a copy of The Wild Trees from my dad.  Just looking at the cover clued me in that it would be a good ride: I continue to live in awe of redwood trees, and this book promised plenty.

The writing style is pretty interesting.  Richard Preston writes in a mode usually called "narrative nonfiction," which brings a novelistic style to the topic.  He focuses on the people, tapping in to our human instinct to pay more attention to other individuals, and only incidentally do we realize that we have learned an awful lot about the planet, biology, history, science, and mythology from ancient Greece to Tolkien.

The author also writes for The New Yorker, and the style will feel familiar to any regular reader of that excellent periodical.  I still remember a few weeks after my subscription first started, when I suddenly realized with amazement that I had just read twenty pages about how barges move on a river - and couldn't wait to read what came next.  Many of their authors have a rare skill to take what would seem like an unbelievably ordinary topic (bargestruck driving!  plush dolls!  trees!), and then rope you in, making you realize how little you knew about this ordinary thing, and both humbling and entertaining you as they explain it.

That said, in retrospect, I think I would have enjoyed this book even more if I had approached it like a loose series of New Yorker articles than as a book.  Each individual chapter was excellent, but sometimes even I groaned a little under the sheer cumulative effect.  Not that it's long or hard to read - quite the opposite, actually - but the writing still really reminded me of something in a magazine, and so part of me kept expecting it to be over in another 15 pages or so, only to find another thread starting and a new narrative picking up.  A better approach would probably be to read, say, a chapter at a time, spread out over several weeks.  There are few enough characters  - just four or so major ones - that it would be easy to keep them straight in non-consecutive sittings, and that way the anticipation could build a bit more.

I thought that probably the most amazing part of this book was how it changed my vision of the world.  I'm one of those occasionally dour people who wishes they had been born a few centuries earlier.  It feels like everything that can be discovered, has already been... we have mapped all of Africa, discovered every Pacific island, defined the most useful natural laws, and learned how to travel in space.  There is no more frontier, no unexplored space.  Well, this book proved me wrong.  I was regularly amazed at how recently these great discoveries were taking place... all within my lifetime, and many of them within the past decade.  And the nature of these discoveries weren't trivial, either: people finding the tallest trees on Earth, discovering primeval forests, locating entire ecosystems that were previously thought to be impossible.  And most compellingly for me, these possibilities feel fresh for me in a way that, say, exploring Titan does not.  These are more or less ordinary people, who became obsessed with finding out how things worked, and by exploring on their days off work and spending relatively little money, they managed to pierce the canopy and find a new world.  I can imagine myself following in their footsteps, and so it is a more real mental picture for me.

Next to the sheer gall of what they accomplished, though, I was most impressed by how... unusual the principal explorers were.  (Are.)  They are interesting people, and frankly, not always very nice.  I had great admiration for what they could accomplish through sheer determination, but at the same time was pretty horrified by how they lived their lives.  Infidelity, broken marriages, academic sloth, and lack of career ambition all seemed pretty horrible to me... but at the same time, I was very aware that these same qualities helped make them who they were.  After all, if someone is a well-adjusted, happily married, content, wealthy business executive who plays golf every weekend, they aren't exactly going to have the same kind of drive to go out and climb trees in excruciatingly painful physical conditions all year long.  Again, this seems to connect these events with the more famous explorers we've learned about in history.  We admire the brave souls who took stupid risks and expanded our view of the world, but we wouldn't necessarily want to be married to them.

One final surprise: about 2/3 of the way through the book, I flipped through the front matter, and noticed that Preston was also the author of The Hot Zone.  I still vividly remember this book, which I only read once, back when I was in... sixth or seventh grade, maybe.  It was the book that taught me about the Ebola virus, and helped me learn that monkeys are both funny AND deadly.  Anyways, it was just a weird kind of feeling.  I'd enjoyed that book as well, and it was kind of funny that I've been reading the author's stuff in the New Yorker without making that connection before now.

Speaking of the New Yorker: I haven't picked it up yet, but I'm sure that "Outliers" will be in my future.  I love all of Gladwell's articles, and have enjoyed his two earlier books.  "Blink," the second one he wrote but the first one I read, was pretty good, while "The Tipping Point" is one of my favorite non-fiction books ever.  What I loved about The Tipping Point was that it didn't just fascinate; it also instructed and offered hope.  It was a surprisingly practical book that gives a useful model for how the world works, and suggests how you can operate within that model to achieve outcomes.  "Blink" was in some ways a more interesting book, but ultimately felt less valuable... where TTP was an excellent purpose-driven book, with canny examples driving home a profound point, Blink felt like a collection of wonderful examples in search of a thesis.  I enjoyed every story in there, but at the end of the book felt like I was left holding several pieces of material without a plan for how to fit them together.  Anyways!  Gladwell is a phenomenal writer, so no matter what I'm confident that I will enjoy the book, but I do hope that it's more like TTP than like Blink.

One thing that I have picked up is Little Big Planet.  In retrospect, this was overly ambitious of me.  GTA IV lasted me for nearly five months, after all, and Little Big Planet is potentially never-ending, since it promises an endless supply of user-created content.  I've barely scratched the surface yet, only getting as far as Africa, and I still am having trouble doing some seemingly-simple tasks like leaping from a swinging rope.  Already, though, I have been amazed by the gorgeous graphics, beautiful music, and endless feeling of fun.  Spiritually, it is a firm successor of Katamari.  When it comes to community, it could be the next incarnation of The Sims.  And in genre, it is a platformer!  I don't even like platformers all that much.  I'm trying to think of the most recent one I've played all the way through, and have trouble thinking past Super Mario Brothers 3 and the original side-scrolling Duke Nukem.  (Well, that's not entirely true,  there have been some intriguing indy platformer games and engines in the last several years.  Check 'em out if you're interested - they're free!)  I feel like LBP takes the potential of the platformer and finally realizes it.  It is a challenging game that stretches you, makes you think, endlessly rewards you, and focuses on FUN.

Just got back from Thanksgiving, and man, is my stomach tired!  In the best possible way, of course,  It's always great to get together with the family again, and in some ways it gets even better as we all get older.  This year we had an especially large crowd of 14, including some relatives who I rarely get to see, and an unbelievable mountain of food.  Pat and I contributed Cooks Illustrated's take on Green Bean Casserole (fresh beans!  sauteed mushrooms!  but don't worry, it still has fried onions!), and added a Sweet Potato Pie to the incredible seven or so that my mom made.  The day after I whipped together a Cooks Country 30-minute recipe, "Turkey Pot Pie with Stuffing Crust."  I think this may be the best possible outcome for a Thanksgiving turkey.  I love leftovers as much as the next person, but Thanksgiving turkey has a bad tendency to dry out... even if it's fine during the meal, by the time you're making sandwiches it's usually really dry, so I always need to turn to Swiss cheese and loads of mustard.  Anyways, this was a great alternative: use up a bunch of leftover shredded turkey meat, combine with a simple homemade sauce (sauteed onions, cream, chicken broth, frozen peas and carrots), pour in a dish and top with some rolled-out stuffing.  We didn't have the requisite 12" oven-safe skillet, but it baked up perfectly in a 9x13 pan.  My only regret: the stuffing, while incredibly tasty, didn't get as brown and crisp as I would have liked.  If and when I tackle this again, I can think of some alternatives.  First, because the 14 of us decimated all the prepared stuffing, I actually cooked another 3 cups just to top the pie with.  Even with a rest in the refrigerator, it almost certainly wasn't as dry and cool as a true day-old leftover stuffing would be.  Second, it might be worth experimenting with other kinds of stuffing.  Everyone seems to do theirs differently, and the package directions I was following might have been aimed at a soggier outcome anyways.

The weather in Chicago was actually pretty nice over Thanksgiving; I think it's the warmest we've had in years.  We were able to do our traditional dog-walk in the morning, and enjoy some outdoor time later in the week.  Still, it was fairly overcast much of the time, and I continued to embrace my wussiness as I bundled up in a coat and gloves every time I ventured outdoors.  A slushy rain started around the time I flew out on Sunday.  As we touched down in San Jose, the pilot announced that it was currently 72 degrees and sunny.  I smiled.  It's good to be home.  It's even better to have two homes.