Monday, December 31, 2007

Meet the New Egg, Same as the Old Egg

For a long time I've been claiming that I wouldn't upgrade my PC until Spore came out. When I made that claim, though I was thinking it would be coming out in early 2006. I've managed to keep going for a surprisingly long time, in large part because I rarely use my PC for gaming, and even an old machine is perfectly adequate for the surfing and Linux administration I generally do. In the last few months, though, I've been increasingly working on more challenging development projects at home, and as a result I've decided it's time for a face list. Eclipse is a phenomenal IDE, but it is becoming clear that its developers have more powerful machines than I do. It still runs fine, but I've had to endure patient waits for all its time-consuming global searches, refactoring, and similar operations.

This being the end of the year and all, I decided it was time to bite the bullet and do the upgrade. In this case, "upgrade" really means "build a whole new computer". I knew this at the time of my last revision - my current setup is stretched about as far as I can go with the previous generation of technology, using IDE hard drives, AGP video cards, DDR ram, etc. Everything but the case would need to be replaced, and as long as I was changing the guts, it only seemed fair to give it a face lift as well.

It didn't take too much deliberation for me to decide to build another system. It's fun, keeps me in practice, forces me to become intimately familiar with consumer technologies, and provides a relatively smooth upgrade path for the next generation. I had a few tempting alternatives. I've seriously considered buying a Mac for about a year now; OS X looks like a great operating system, and I've been impressed by what I've seen of the internals of my iPhone. I also liked the idea of getting a high-performance, ultra-compact laptop. In the end, I found it impossible to justify either alternative. Macs are great, but pricey and hard to upgrade, plus as cool as they are, they don't offer me anything I can't have on Linux and Windows (excepting xcode). The laptops look really sweet, but there too, I couldn't justify the price premium. I have a solid laptop workstation from the office, and my iPhone is more compact than any laptop... I didn't see myself doing development on a tiny keyboard, so why bother?

I next embarked on a remedial reeducation course. I've been out of the hardware game for a long time now - I remember when Andrew was making his computer, and I hadn't even heard of PCI-e slots (in my defense, this was several years ago). I compared the current generation of processors, the competing RAM standards, hard drive manufacturers, and so on. At each point, I was making a value-for-money analysis as well. This tends to be most obvious when looking at video cards, where a top of the line will set you back some $700, while a solid choice can be had for around $200. I tended to shoot for mid-range options - I'm not willing to pay twice the cost to win a 10% performance increase, and would rather keep that money for an upgrade a year or two down the line when prices have dropped further. I'm convinced that buying a PC at the top of the tech curve is a game for suckers and the obscenely wealthy.

I was pleased to discover that my old stand-bys for hardware info, namely Tom's Hardware and Ars Technica, seem to both still be healthy and thriving. And, of course, there are the phenomenal user reviews at NewEgg. I am a strong believer in the wisdom of crowds, and would always at least check NewEgg even if I wasn't going to buy from them. Between these three sources, I felt able to suss out both the general categories I wanted to shoot for (DDR2 vs DDR3, PCI-E 1 vs PCI-E 2, etc.), along with specific makes and models that people have had success with.

After making my selections, I hunted around online to find the best prices. I was stunned to discover that, here as well, NewEgg remains on top of the heap. I had a hard time even finding some items elsewhere, and when it was, the prices would not be better than what NewEgg had. This was even true after considering that I now have to pay sales tax on NewEgg purchases - something I never needed to worry about in Kansas City. The one exception was my case, which after paying for tax and $15.99 shipping was about two dollars more expensive than it would be at Fry's, but in the end I slapped that into the order as well. Hey, I'm not sure if Fry's even carries it now.

Here's a quick rundown on what I ended up selecting, along with my rationale.

Processor

Previously: AMD Athlon 2200+
New: Intel Core 2 Duo E6750 (2.66 GHz)
Rationale: I've been a partisan AMD user since the late 90's, so this was a painful decision for me to make - I don't particularly like the way Intel does business, am suspicious of their ties with the software industry, and have a tendency to root for the underdog. If I'd held off for another six months I probably could have gone with AMD's upcoming quad core solution, but for today's technology, AMD doesn't have anything to match the Core 2 Duo. Its performance is excellent, plus it runs cooler and uses less power than the equivalent AMD chips. On the other end, a year ago I would have been tempted to stick with a 32 bit architecture - you can get phenomenal prices if you can find the chips - but 64 is the way of the future, even if a lot of software currently performs worse on it. As a developer, I need to be able to write native 64-bit apps, so that choice was easy to make. Finally, the rated speed here just seems like a sweet spot. 3.0 GHz chips are available, but cost notably more. I can park on this for a year or two, then switch to a quad core when they come down in price.

RAM

Previously: 768 MB DDR Ram
New: 4 GB DDR2 800 Ram
Rationale: DDR3 is the way of the future, but based on all the reports I can see, current versions actually under-perform DDR2. Specifically, bandwidth increases, but latency increases as well. Down the line they will eventually win, but in the current generation only 1600-speed DDR3 beats the performance of DDR2, and that RAM is DARN expensive, as are boards that can take it. The only affordable DDR3 is 1066 or lower, which, again, is worse than the corresponding DDR2. So I went with DDR2. My board (see below) can take up to 1066-speed RAM, but there aren't many offerings at that level, so I opted to go with the 800 instead. I was going to get 2GB, but NewEgg had a phenomenal price on a 4GB pack, so I went with that. Between my desired OS and the fact I'll be doing development on it, I'm sure I'll never be able to have too much ram. (Incidentally, the fact that I'm using this much RAM also means that, for the first time in my life, I NEED a 64-bit processor.)

Motherboard

Previously: Asus something-or-other.
New: Gigabyte GA-P35-DS3L 775
Rationale: This was another tough choice between brand loyalty and performance. I've been using Asus ever since I started building computers, and have never once regretted it. Their boards are stable, feature-rich, and best of all, they have excellent manuals. Still, I couldn't find an Asus that matched the features I wanted. The most advanced boards have DDR3, which I'm not interested in, and the older boards had too slow a FSB speed. A handful looked promising except for disappointing reviews on NewEgg - I hope Asus isn't slipping. I haven't used Gigabyte before, but this particular model was well-reviewed and met all my needs.

Hard Drive

Current: Seagate 120GB.
New: Western Digital Caviar SE16 750 GB 7200 RPM SATA 3.0 GB/s transfer
Rationale: Back in the day, Seagate was the only sufficiently quiet hard drive for me. WD was really clackety, and IBM (yes, they used to make hard drives!) were whiny. That seems to have changed, and WD now are rated about as quiet as the Seagates. I'm tempted by some of the ultra-fast drives - you can now get 10k or 15k RPMs - and my first upgrade may be a small, fast drive to load my OS on. That wasn't feasible for an out-of-the-box system setup, though, so I opted for a solid midline performer. I vacillated between the 500GB and the 750GB, but the price was good enough that I went for the larger drive. It's far more space than I can use, but it also will allow me to relieve stress on my 300GB drive in my media PC, which has been bumping against the limit for several months now.

Video Card

Current: PNY GeForce 6600 AGP 8x.
New: MSI GeForce 8600 GT 256MB RAM 128 bit PCI-E.
This is the one component where I went super-cheap. I was tempted by the 8800's, which can be had for around $200-$250 and offer snappy performance. This is a budget card in comparison, but I have a hard time justifying spending any significant cash here when I have a lot of PS2 games that I haven't played yet. And, with a possible PS3 purchase ahead for me in 2008, it's just dumb to dump a lot into the card. This will still be a notable update of my current card, which in turn is the newest component in my PC - I picked it up specifically for Civilization IV over two years ago. Anyways, this card will be fine, it should let me play the games I've been wanting - Oblivion and HalfLife 2 - and, if need be, I can have this be my upgrade when Spore comes out.

Optical Drive

Current: DVD-ROM and CD RW
New: DVD+R
Rationale: Wow, I've been carrying around that DVD drive for about a decade now. It's never failed me. The CD drive has served me nearly as long. I don't burn discs, but it makes sense to move up to a DVD burner, just in case. The Samsung is well-reviewed, plus this way I can collapse both features into a single drive.

Network Adapter

Current: Netgear WG111 wireless + integrated 10/100 Ethernet
New: Netgear WG311 wireless + integrated gigabit Ethernet
Rationale: Gigabit ethernet is just stock with motherboards these days, and for my humble home network it doesn't make any difference, especially since this particular computer is not even plugged in. I love the form factor of my current WG111, but its Linux support is only middling... I had to wrestle with ndiswrapper for a while to make it work at all, and it still periodically poops out on me, requiring me to physically unplug it and put it back in. The WG311, by contrast, takes up a whole PCI slot, but it sounds like its Linux support is better, and it may have a better range.

Case

Curent: Antec something-from-the-stone-age
New: Antec Solo
Rationale: Are you familiar with the idea of "Grandfather's axe"? "This is my grandfather's axe. Its head has been replaced two times, and the handle three times, but it's still my grandfather's axe." That's sort of the way I feel about "Aule," my current computer. Literally every component inside it has changed since I first built it in 2001: new motherboard, new CPU, new RAM, new video card, etc., etc. The one constant through all that has been the case. It's been a fine case, but it's an ugly beige, and the USB ports are hard to get to, so I've decided to make a switch. I love the Antec brand, so I wanted to stick with it. I'm not a LAN gamer, so I don't need a lightweight aluminum case. I'm not much of a gamer, period, so I didn't particularly want a flashy case. This won't be a server, so I wanted to go with a mid-tower instead of the much bulkier full tower. With all those requirements in mind, the Solo offered the most reasonable price and had good reviews.

Power Supply

Current: Some non-brand 350W
New: Thermaltake Purepower 500W

Rationale: The power supply is the noisiest component in my current system, so I knew I wanted to replace it. The "silent" power supplies are all really expensive, though, so I reluctantly compromised on a quiet supply instead. 500W is probably overkill, especially with my video card and single hard drive. Still, better safe than sorry.

Not Upgraded

Logitech Optical Mouse and IBM Keyboard
Rationale: If it ain't broke... I've been happy with both components, and there really isn't much innovation in either field. Both are very simple without extra features, just the way I like them. As an aside, I think the optical mouse was probably the best investment I ever made. I bought it after two consecutive Logitech MouseMan mice died in the space of about six months. This one has now been with me for eight years with nary a complaint.

Operating System

Current: Ubuntu Gutsy Gibbon and Microsoft Windows XP
New: Ubuntu Gutsy Gibbon and Microsoft Windows Vista Premium

Rationale: I love Ubuntu, so that was a no-brainer. I hope I'll be able to boot into it more often now - the aforementioned network problems I had were annoying and made me turn to XP more often. The XP-versus-Vista is one of the great debates of 2007, and my selection proves that what's good for the goose is not, in fact, good for the gander. I've recommended to everyone who's asked to stick with Windows XP. XP has better driver support, runs faster, and has fewer networking problems and more supported software. So why go with Vista? Mainly because I'm a masochist. I want to see for myself just how bad it gets. Also, though, Vista is long-term going to take over, and I figure I'd better get used to it sooner rather than later. I'm not a Windows developer, but if I need to use a new Visual Studio in the future I'll probably be wishing I was in Vista. Now, if I had to pay full price for these I'd probably still have stuck with XP for now, but NewEgg sells system builder (nee OEM) versions of Vista at a substantial discount. You can upgrade to a higher version of Windows after you install it through Microsoft's upgrade tool, so I didn't feel compelled to hit Ultimate out of the gate. Since I was getting Vista anyways, it would have seemed pointless if I didn't have Aero, so I opted for Premium.

Summary: About $960 total, including Vista but exclusive of tax and shipping.

And that's that! All components have been ordered, and I'm hopeful that they will get here before the weekend. I'm looking forward to putting this puppy together. It never goes smoothly, of course - this is the story of my life. Still, if all goes well, I'll be able to spend the next week migrating data over and reinstalling, and may get in a few levels of HalfLife 2 before I get back to work in Eclipse. 2008, here I come!

Thursday, December 27, 2007

Hey, Hey, Human Sucker

I enjoy anime, but usually am reluctant to say so. This isn't because of people who dislike anime - I'm very used to enjoying unusual things, and actually take a sort of perverse pride in finding something that most people don't like. No, my reluctance comes from my knowledge of how little I know about the genre, a neurotic kind of shame that when my tastes are lined up against those of the true anime connoisseur, they will be found lacking.

I guess you could call me a codependent anime fan. I have friends who are much more into anime than I am, and so I can use them as a kind of screening team... they watch all the mediocre shows for me so that I don't have to. After enough people enthusiastically recommend a particular series to me, I'll take the plunge, and I am invariably pleased with what I find. This means that I have an inflated view of the quality of anime, since I only watch the best. It also means that I have a limited view, and will never be the first person to watch something. (*)

Whenever I meet a new anime fan, and admit to being the same, one of the perks is catching up with their favorite genre shows. Justin is a fan of shoujo anime, so a lot of the shows I saw from him have very bright colors, upbeat songs, and silly, humorous plots. Kate's tastes run more towards adventure, so through her I got to learn more about the darker, more violent animes. And so on.

All that to say, I've now gotten to watch a whole new series, and wow, is it ever good. Levon has been infecting the office with a passion for Death Note, an extremely new series that ran this year. (I'm used to at least a five-year gap before watching a good anime series.) Death Note is a far cry from the first anime I watched, but it is fully enjoyable.

So what is Death Note? Before getting into spoilers, I'd describe it as a psychological horror series. There is very little gore and virtually no fighting, but there is a deep and sinister sense of violence that permeates almost every minute of the show. It contains elements of other genres, including fantasy, mystery, and even school comedies and romance, but all of these are steadily consumed into the bleak yet compelling force that drives the action.

Who will like this? Any anime fan who isn't turned off by violence will probably enjoy it. People who enjoy smart horror movies (think more "Silence of the Lambs" than slasher) will also appreciate it... the series does adhere to some standard anime tropes, but fewer than most such shows, so it should be watchable even by those who usually don't enjoy anime. (Some of the remaining tropes are done so well that I think it'll make watching other shows more difficult... for example, the "put one character in a static frame for several seconds while they prepare to take an action" tendency is here, but I never once found myself thinking, "Come ON, just do it already!")

What's so good about it? It is an incredibly intelligent series, tightly plotted and dense with story, but it does not have the Lain-esque tendency to make you feel dumb. It is also a beautifully designed show. Most of it looks hand-drawn, with a fine attention to detail and gorgeous backgrounds; the cityscape in particular is very compelling. There are a few computer-animated sequences, most notably vehicle shots, and these are very cool - there's a neat effect where a car will blur and stretch as it speeds up, sort of like the Enterprise before it enters warp speed. More than anything, though, it is a surprising show. Hopefully I am not giving much away by just saying that, but I received the same information before I started, and I was still unprepared for the twists the story took. The show inverts archetypes and storytelling conventions, making everything that happens feel fresh and new.

There is also a real moral ambiguity that runs through the show. This is far more common in Japanese fiction than American, but even for that, this show is unusually unclear about its message. You can sit back and enjoy the show, but the more you think about the action taking place and its implications, the more disturbing it can become. The effect is not unlike what I often feel watching the new Battlestar Galactica. As I've mentioned before, that show puts me in the uncomfortable position of making me feel sympathetic towards a fascist point of view in a fictional world that is opposite of the liberal perspective I take in real life.

Okay, that was all pretty spoiler-free, right? Now for the meat. The next section should be safe to read if you're a few episodes in and don't mind hearing about characters and events you haven't encountered yet, though I'll try to be vague about those. The mega spoiler section should only be read after you've finished the series. Got it? Okay, now let's start the

MINI-SPOILERS

My favorite character is Light. In any other series it would be Ryuuzaki - I love his eccentricity, piercing intelligence, vulnerability in the real world. But Light is so unusual and complex and compelling that he seizes first place. (As you know he would want to do.) Even though Light's physical posturing is always reserved and mild-mannered, while Ryuuzaki's is attention-grabbing, Light dominates any scene he is in. He comes across as a charismatic psychopath, but one that I can't help cheering for.

My favorite scene contains almost no action at all - just Light and a woman walking down a sidewalk together. And yet, the drama and tension caused by this conversation were so intense that I could feel my heart beating. The show maneuvers you into an ecstatic and probably unhealthy emotional place, so that by the conclusion of the scene, I wanted to cheer and felt ashamed at myself for it. Not coincidentally, this scene also embodies everything I find compelling about Light: his intelligence, ambition, and ruthlessness are all on display, bubbling below the surface of his public facade.

The overall rhythm of the show is phenomenal, at least for the first half of the series. The game of cat and mouse has been done before, but probably never done to this level, and it's hard to think of two adversaries more capable and completely matched than these. The intricate back and forth between L and Kira is a kind of dance, a violent dance.

In an odd way, I found myself thinking of "Cryptonomicon" while watching these early episodes. In that historical novel, the codebreakers at Bletchley Park are hard at work trying to break Enigma and other German ciphers. Neal Stephenson creates a wonderful visual image of the geographical situation: information is flowing into Bletchley Park, in the form of intercepted coded messages; and yet, at the same time, information is also flowing out of the park and back to the Germans, in the form of actions taken by the English in response to decoded message. There are really two problems that need to be managed during the war. The first is a largely technical one: breaking the codes on the incoming flow. The second one, though, is far more nuanced, and more psychological and strategic: managing the flow of information out of the park, in order to keep the Germans from realizing that their cipher has been compromised. That often means making the difficult choice of allowing the Germans to win a battle - for example, not protecting a convoy after learning that it will be the target of U-boats - in the service of winning the larger war.

That same sort of tension is on constant display in this series. Both Kira and L are highly intelligent, but intelligence alone won't win the day. Kira can easily take actions to hide his tracks, yet any time he does so, he is creating more evidence. Who could know about this threat? Who had the time to take action? By asking these questions, L can draw closer to Kira with astonishing quickness. Thus, Kira often needs to deny himself the best action, and deliberately make mistakes in the hopes of throwing off L.

The music throughout the show is wonderful. My favorite song is probably the opening theme from the first half of the series. And, wow, I couldn't help but jump when they switched songs halfway through. That may be the first time I've ever heard J-metal. Fascinating stuff. Anyways, the music within the show is great as well... Kira's theme is probably my favorite (the one with the bells), but it's solid throughout, always well-matched to the action.

I don't really have a favorite minor character, but as a class, I'd say it's the policemen. Matsuda is sweet and fun, I love Mogi's turn as the manager, and Aizawa is just cool - the 'fro is awesome.

I was struck by the portrayal of America in the movie, and especially their depiction of the President. It kind of reminded me of the President in "Read or Die." In both cases the President is cowardly, weak-willed, overly confident in his military strength but craven once he realizes how little good it does him. I... I can't say that I'm offended, exactly, but it is very interesting. I'm used to generic American Presidents being portrayed in a positive or neutral light, and it's just kind of funny that that's never been the case in any anime that I've seen. To be honest, though, I can't remember any Japanese prime minister receiving positive treatment in an American movie. This might be a kind of jingoism at work, or perhaps I'm making too big a deal of it.

MEGA SPOILERS

I think you could divide the show into rough fifths. The first section deals with Light's transformation into Kira, as he learns his powers and flexes his strength. The second section is the Light/Ryuuzaki dance, starting on the first day of college. This is where everything moves into the open, and at the same time becomes more concealed. The net grows tighter and tighter with every episode, even as Kira's standing rises. The third arc is what I think of as "Good Light," when he surrenders ownership and fights for the team. The fourth, short arc is the restoration of Kira and his vengeance. The final arc is the Near/Mello competition.

Of all this, I thought the middle third was probably the weakest... not bad, but I really missed having Kira around. Every minute in that arc, though, added to the big payoff when Light retrieves the notebook. I already admired his cunning; seeing the entire elaborate plan and how it came to fruition, though, nearly took my breath away. It would have been far less impressive without that more hum-drum intermission.

Boy, the show sure has guts in killing off L. It's kind of surprising how rarely main characters die in these shows - at least, without being reincarnated or cloned or otherwise restored. Anything less than a full victory one way or the other would have been a disappointment, but I was still prepared for it. And they totally made the right decision on who should win.

I'd alluded to moral ambiguity above. Obviously, the problem is this: is what Kira is doing "right"? It's essentially a return to a more powerful, but more primal, form of justice. The rule of law is swept away, and Kira becomes the embodiment of justice, judge and executioner wrapped into one. What's hard to argue with (at least in the context of the story) are the results of this approach. Crime IS down, and people are generally happy with Kira's actions. So what's the big deal? Is it really a sin to murder the guilty?

The first warning sign is that Kira's motives are not pure. He is not carrying out this work as a servant to humanity's wishes. He wishes to become a living god. Wow, talk about primal justice! And, on further examination, we may need to reconsider how much better the world is. People are committing fewer crimes, but the change is due to a fear of punishment, not because people are getting better... one gets the sense that evil is hiding, not defeated.

To pick a more extreme analogy: I have no idea what the crime rates were like in Nazi Germany or Communist Russia, but let's suppose that they fell compared to those in the Wiemar Republic and under the Czars. Nobody would say that the Gestapo and KGB were acting for good, even if the level of crime dropped.

But, to choose a counter-example, it sounds like many Iraqis were more happy living under the cruel Republican Guards than they are in the lawless chaos of today.

So, it's a complex situation. And that's what makes this show so great. The characters are compelling, and the problems make you uncomfortable.

Also, I was fascinated by the relentless, ruthless push of Light's personality and intelligence. This was most striking to me in the scenes where he is seducing Takada. I suddenly realized that he no longer had any notebooks, did not have the eyes, could not kill... and yet, he still WAS Kira. His minions worshiped and followed him even when he had passed all of his power to them. That is, Light is still Kira even when he does not have the Death Note. It was a powerful revelation.

I felt only slightly let down at the very end of the series. I was kind of expecting it - I'm usually not fully satisfied by the way animes end, and I had the feeling they wouldn't give me the ending I really wanted (Kira ushering in a new world). I found myself still hoping for another layer of reversals (ending in a Kira victory) or two (ending in a Near victory). Two fake-outs felt a bit anticlimactic, three or four would have sold me.

Ever since the first episode, I've thought I had a good read on Kira's ultimate fate. Ryuuk says something like, "Do not think that anyone who uses this note will be able to enter heaven or hell." My theory has been that those who use the Death Note will become Shinigami themselves: immortal and otherworldly, but with all humanity stripped away from them. From what we see in the final episode, I'm guessing I was wrong about that, but it's ambiguous enough that I could still pretend it happens.

END OF SPOILERS

All in all, it's been a fascinating ride. I'll need to re-watch it in order to pick up on all the foreshadowing and allusions. My shoot-from-the-hip analysis is that this will wind up as one of my top three animes. Its genre isn't one I particularly enjoy, but the incredible intelligence of the script and the unmatched technical excellence more than make up for that. The deep amorality of the show makes me hesitate to recommend it unreservedly, yet for people who enjoy quality fiction, it's hard to resist.

Update 12/29/07: I forgot to mention: there are multiple iterations of Death Note floating around. If you want to get into it, I'd strongly recommend starting with episode 1 of the anime. There is also a "Director's Cut" that is floating around. It is basically a highlights reel of the whole anime run; it's kind of interesting, but shouldn't be viewed until after you finish the anime. There are also some live-action movies out there, a concept that fascinates me. I've heard that they aren't as good as the series, but are still decent. They may be a viable option if you want a more compressed version of the story.

Thursday, December 20, 2007

In the News

California is great. It's the rest of the world that's going crazy.

First, my contribution to the whole EPA thing: What a load of bunk. This really ticks me off. The decision as a whole bothers me, but what I find infuriating is the EPA director's obfuscated and misleading justification that he needed to prevent a "patchwork" of state solutions. This is the standard industry-backed talking point, and is simply false... it implies that every state could set its own standards, which would indeed be hard to follow. That is not the case, though. Ever since the EPA was first created in the '70's, California has had the right to set its own pollution standards. Other states can choose to follow either the more strict California rules, or the lax federal ones. Regardless of what the EPA had chosen, there would be exactly two standards, and never any more or less.

Random bit of history: California has very good reasons for special controls. The geography of the state means that pollution's effects are felt much more severely here. For example, the majority of the population lives in valleys that trap smog, so air quality is generally poor. In the specific case of global warming, San Francisco and San Diego will be among the first cities affected by rising sea levels, so people here are highly motivated to try and fix (or at least mitigate) the problem.

And, really, the whole thing bothers me because it makes clear that the administration is really driven by greed more than ideology. I thought conservatives were supposed to be federalists who supported states' rights, as opposed to letting the federal government dictate policy. And yet, given the chance to let a state take a daring approach to a problem, the Bush administration bows to industry pressure and denies that state its rights.

I think that this sort of thing is one of the best possible examples of federalism. Admittedly, California is pretty out there, coming up with some weird stuff that doesn't quite work out. And yet, the populist/progressive heritage of the state also means that it's brave enough to try things that are eventually proven to be right, and eventually do spread throughout the country. Think of things like the seat belt law, mandatory catalytic converters, and emergency statewide communication systems. I think the country as a whole would gain enormously by letting California try its regulatory plan. If it succeeds, it can be adopted nationally with more confidence; if it fails, well, only California and a few other states will have suffered. (Oh, and fewer high-polluting SUVs will have been sold. Boo-hoo!)

I wasn't that big a fan of Schwarzenegger when I moved here, but he increasingly endears himself. I love the latest threat to "sue, sue, and sue again." My state's cause is just, and I have faith that we will eventually prevail... if not under this political hack, then in the next administration.

Secondly, and on a more positive note: Hooray! We are moving closer towards getting high-speed rail! After my trip to Japan, I've wanted more than ever before to get this system in the U.S. Now, as a whole, U.S. rail is way behind that in other countries, primarily due to the way we subsidize the automobile/highway system. But I think this particular plan could be a huge success. The distance is perfect - it's too far to comfortably drive, yet short enough that flying feels like a waste - you spend almost as much time in the airport as you do on the plane.

Anyways. The idea has been kicking around for a while, and unfortunately, the state's finances are in poor enough shape that we may not be able to kick it off soon. Even the $10 billion in upcoming ballot referendums would only start the process. Still, I think we need to do what we can to allow the railway to be built in the future: secure rights of way, work out zoning issues, figure out how to placate the environmentalists. After construction starts, it will take more than a decade to finish. Well, unless we hire C. C. Myers again.

And when it's done? Expect to see less traffic on the 5, which can only be a good thing. I think this would be a big boost for tourism as well, much in the same way the J-Rail pass really opened up that country for me; visitors would no longer need to choose between Hollywood and the Golden Gate. The more people we get off the roads and onto mass transit, the better everyone will be.... well, except for Detroit.

I apologize for my crankiness. Hope everyone has a happy holiday!

Update 12/21: Whoa, I really should have read more before posting. Check out this Washington Post article on the story. Two other wrinkles in this: first, the EPA administrator ignored the UNANIMOUS recommendation of his technical and legal staff in issuing this denial. Second, he was specifically advised that if California sues, it will win. This is even deeper hackery than I had originally thought. Argh.

Tuesday, December 04, 2007

Aftermath

(Nerdy note: if I was counting my blog posts using an 8-bit integer, this would be the last post before I rolled over to 0.)

After my recent post, I feel the need to tell people, "Hey, I don't just care about television, movies, and video games! I like culture, too!" Fortunately, I have a good excuse on hand: last weekend, I had the privilege of seeing Frank Galati's adaptation of "After the Quake," a Haruki Murakami novel. As you may know, I am a big fan of Murakami, and I was determined to see the play as soon as I heard that it was coming to Berkeley. For a while it seemed like fate was determined to thwart me, as my plans for making the trip were repeatedly postponed. It was worth the wait, though: I got to see it on its closing weekend, along with a couple of friends who appreciated it as well.

As the brother of a theater major, I'm well aware of my limited exposure to the world of drama. For what it's worth, though, I thought the play was amazing. It succeeded on each technical aspect. The acting was wonderful, without any weak spots, but I thought that Paul Juhn, who played Katagiri and Takatsuki, was just phenomenal. The music was another stand-out strength: there are only two instruments, a cello and a koto, but they are both played live, and their effect on the play was incredible... some scenes that would have felt moving anyways became heart-clenching under their inspired music. The music led the action, commenting on it, or accenting certain visual beats. There was a lot that shouldn't have worked, but somehow did, like when they melted into an eerily sparse and beautiful cover of "Norwegian Wood."

Beyond the artists' technical mastery, the play succeeds wonderfully as an artwork. I am not familiar with Frank Galati's other work, but I'm so impressed by what he's done here that I want to seek it out. He has taken two short stories from "After the Quake" and intertwined them. I had initially assumed that he would do this in a Hollywood type of way, by combining characters and events, but he didn't go down that road. Instead, he keeps the stories' plots separate while uniting their storyTELLING. The play lives in a fluid space where the narrators of one story become characters in the next, with indirect comments and themes shared between the two but never quite lining up. It is a fascinating structure, at once complex and beautiful, engaging without being deliberately obtuse. The transitions themselves seem to melt as the play goes on. Early in the play, characters walk offstage to change costumes, but as the stories reach towards their climax, they begin to shed identities in full view of the audience. It's a beautiful and moving metaphor.

In combination with all this, the two stories are themselves about stories: Frog, the protagonist of one, is a great lover of literature who uses examples from classics like Anna Karenina to explain his strange life. Junpei, the protagonist of another, is a struggling young author who writes fiction to come to grips with the real world and bring people together. So there are scenes where you have the Frog actor narrating Junpei's narration of a bedtime story to Sala. It is an intricate structure, one that comments on the creative power of fiction, how each of us can be creators of our own worlds. Thinking about this afterwards, it seems like one of those profound truths which is so simple I have not thought of it before. We live our lives as characters in other people's plays, but at the same time, each of us is the author of our own narrative in which we seek to make sense of the world and our place in it, and the roles of everyone we meet, who are in turn writing us as characters... I think that Murakami may have been getting at this idea in "Honey Pie," but Galati has exploded that idea out of the text and made it a part of the performance.

Speaking of which, after watching the play, I'm more motivated than ever to go and read "After the Quake." Murakami wrote this upon his return to Japan following the 1995 Kobe earthquake. Although sometimes described as a novel, it is actually a collection of short stories that, in one way or another, are meditations on the earthquake and, more importantly the reactions and fears it stoked in the Japanese psyche. Although my favorite Murakami pieces to date have been his long-form novels, I love his short fiction as well, and look forward to going through a unified collection such as this. Besides which, the idea of living with the threat of earthquakes has a particular (please pardon the pun) resonance among people in Northern California. There was a point during the play which flashes back to the 1995 earthquake, and as lights flash and characters scream, the audience could FEEL the rumbling and shaking of the earth. This brought back immediate memories of my first experience with an earthquake. At that time, it was a new and strange enough sensation that I did not have time to feel scared. Oddly enough, I felt more frightened sitting in a theater experiencing a simulated quake than I did on the second floor of a building while a real one was going on. I think this is another thing Murakami is getting at: the damage an earthquake (or any disaster - think of the September 11th attacks) deals goes beyond the initial toll in buildings, dollars, and lives. Such disasters can creep into our psyche, making us frightened, and diminishing our hopes and our ambitions. In the play, Sala has a dream where she is put into a box by the Earthquake Man. Murakami wants to show us that box, recognize that we put ourselves inside it, and tell us that we have the freedom to leave.

Monday, December 03, 2007

How reading shaped my programming

Inspired by my dad's recent blog post, Pat and I figured we'd take a swing at the same topic. It would be fascinating to see this done for every profession: a codification of which works have been particularly influential in a person's development.

To be honest, books are just a component of my development. I've arguably learned more from professors, mentors, and co-workers than from books, and in my day-to-day struggles, I'll more often turn to online sources. Still, books do form a crucial foundation for software development. I can break the good ones down into two categories. First, there are books that teach a technology. These are valuable because they can take you from 0 to 60: by focusing on a single source, you can methodically learn the syntax, structure, and best practices for a new language or technique. A good book won't be impatient or have the blind spots that a more experienced in-person mentor might exhibit. The second class of books are those that teach a way of thinking. These become increasingly important as you grapple with larger projects and organizations. In programming, doing development by yourself is orders of magnitude easier than working in a team, but all of the interesting projects left are sufficiently complex to be beyond any individual's reach. And so, we need to learn how to design and structure our code and our work practices such that someone other than us can interact with the code. This has been, and remains, one of the industry's greatest challenges.

To this, I should probably add the third category of cultural books. I'll never be able to point to a line of code and say, "This book is what inspired me to write that," but there's a definite body of literature out there that has helped me define what it means to be a software developer, helped clarify my sense of mission, and helped me to enjoy my career even more.

Anyways! Without further ado, let's take a look.

Hackers, Heroes of the Computer Revolution, by Stephen Levy. I checked this book out from the Burnhaven Library in Burnsville, Minnesota, and it had an enormous influence on my understanding of programming. No longer was it just a fun thing that one did in front of a computer; for the first time, I started to see myself as part of a long tradition of innovation that started long before I was born and was spread throughout the world. This book also helped steep me in the myth and folklore of computing; I can chat with old hands about the PDP-1, the Game of Life, the TMRC, and the Altair. The book was divided into rough thirds, and the middle section was grounded in the birth of the consumer computing industry in Silicon Valley, and so has a particular resonance for me today.

Core Java, volumes I and II. These tomes were crucial tools in my Computer Science 101 class, which was single-handedly responsible for my transformation from a procedural, self-taught, idiosyncratic, not-very-good programmer into the object-oriented, thoughtful developer I am today. These books did a great job at the very difficult task of teaching both Java syntax and the more abstract concepts behind object-oriented programming. The way I approach programming underwent a sea-change as a result, and I've never looked back. (Some day I need to pick up one of the more recent incarnations of these books - Java has changed a lot since I was a freshman.)

The Cathedral and the Bazaar. This is the seminal tome on the ethos behind the Open Source Software movement. If you're reading this post on Firefox, you should thank Erik Raymond; this essay planted the seeds that led to the open-sourcing of Netscape and the eventually rebirth of Firefox. For me, it helped me understand the moral and ethical dimensions involved in distributing software. At the same time, the book diverges from the purely ethical foundation of the earlier Free Software movement, and is instead based on empirical considerations. Raymond examined real-live cases, and convinced me that open source not only felt good, it also produced superior software. The conditions of corporate employment keep me from honoring this book as much as I would like, but it has given me a strong position from which to make my case.

Programming Perl, 3rd Edition. Also known as The Camel Book, this is the authoritative book on Perl development, and may be the best-written programming book ever. Larry Wall, the creator of Perl and one of the most interesting characters in a pantheon of interesting people, is also a linguist, and his his particular skill with words elevates this book far above the competition. It may be the only book out there that can be all things to all people: it is a useful primer on the language, an exhaustive reference book, an overview of Perl culture and history, a guide to design, and more. This book taught me how to write Perl, and makes me a better programmer every time I crack it open. His rich use of interesting examples and clever language make it a pleasure to read.

Effective C++ by Scott Meyers. Another entry from the disturbingly small class of well-written programming guides. I first "learned" C++ back around 1998, but didn't really grok it until after I picked up Java. Scott Meyers' book, which I picked up on the advice of Raviant people from my wonderful summer internship, helped me take my skills to the next level. Meyers breaks out of the convention of describing how things work, and instead focuses on specific solutions to particular problems. This book is to coding what Design Patterns is to architecture. As with Larry Wall, I can gladly read chapters of this book at a time for the pure pleasure of his authorial voice, even if I'm not immediately facing the problems he describes.

Design Patterns by the Gang of Four. I think this is the book that separates the programmers from the software engineers. The former class can make something work; the latter class will make something that will work for twenty years, under a variety of maintenance programmers, as it responds to evolving requirements. This was the one book I read in academia that most impressed on me the need to future-proof my designs. As soon as I reached the real world, I realized that this may be the most important skill of all.

Tag, you're it! If you are a professional and have a blog, I hope you'll take some time to think about the books which have shaped your understanding of your chosen career. Please shoot me a link, I'd love to read about it.