Perl backticks and open files

When trying to write some debugging code, I noticed something very strange. I could never get fuser to admit that its parent had a file open when called from a Perl script:

$ perl -e ‘open(F, “» /tmp/foo”) or die; fuser -a /tmp/foo;’ /tmp/foo:

But when I replaced the fuser call with a sleep, and then called fuser from a different shell, I’d get Perl’s pid, as expected. I was about to post this question to SuperUser and decided to try this just to make sure:

$ fuser . | grep -c $$ 1

Wait, what? That worked? So I asked myself: Is this something specific to Perl? Is this something about the way Perl is running child processes? If only There Was More Than One Way To Do It. Oh wait, there is.

$ perl -e ‘open(F, “» /tmp/foo”) or die; system(“fuser -a /tmp/foo”);’ /tmp/foo: 3733

I haven’t been able to find documentation about what exactly backticks do with open filehandles that makes fuser report the wrong information, but system() clearly doesn’t do it. I just thought I’d document it here for the next person who is trying to do the same thing.

Patriots late game problems

Yesterday, the Patriots went into halftime with a 14-10 lead. They didn’t score once in the second half, and went home on the wrong side of a 14-28 game. I said at the time that it reminded me a lot of last year. I pulled up some numbers to be sure. (The following stats are for all of 2009 and 2010, including both regular and post-season games. That’s a total of 19 games.)

  • In regulation over that period, we were 11-7-1. The one "tie" went into overtime and the Broncos won on a field goal. (Don't get me started on sudden death overtime.)
  • If the games had ended after one half, we would have been 14-3-2 over that period. If they'd ended after three quarters, we'd have been 14-5-0.
  • Our total point differential has been 154 points in the first half, and -28 in the second half.
  • The point differentials have been 38 in the first quarter, 116 (!!) in the second, 3 points in the third, and -31 in the fourth quarter.

Maybe we can lobby the league to switch to a 45-minute clock when they go to a 20-week/18-game schedule?

The Red Sox haven't been bad

Since April 19, the Yankees are 71-47, Rays are 72-47, and the Red Sox are 70-48. It’s not that the Sox have been bad. In fact, in 2009 between games 13 and 131 they were 70-48, and in 2008 they were 69-49. They have been just as good as in previous years. The problem is that the team fell to a quick deficit and has been trying to catch two other extremely good teams. There’s a good chance the AL East will finish the year with two teams with 100+ wins, and Boston with 90+ wins. I’m almost certain this hasn’t happened as long as there have been divisions (1969). The closest I can find is 1977, when the top three teams in the AL East finished with 100, 97, and 97 wins respectively. But remember, that was a six-team division, not four.

To look at this season and draw the conclusion that we’ve had a bad year is to ignore the actual facts. We just haven’t had as good of a year as we needed to have in order to make up our losses in the first couple of weeks.

StarCraft 2 review

I’ve now played StarCraft 2 for two days. I’ve finished five missions on the single-player campaign, and played a handful of co-op multiplayer games. If you had asked me to describe the game based on the Beta, I would have said it was just StarCraft HD. Higher resolution, more beautiful, some new tech, but the gameplay is identical. The single player campaign, though, is where this game really shines. The original StarCraft’s single player was essentially a series of levels that got steadily harder and had some story connecting them. The sequel turns makes the stages non-linear, introduces credits as reward for some stages that you can then use to hire mercenary units when you’re in a bind for near-instant help or spend on research to improve units, and secondary objectives in some missions allow you to earn alien research points you can use to improve buildings. The original game only had ten Terran missions, and I’m willing to bet there are triple that in this game. Plus there are probably seven hundred achievements.

The multiplayer is fun, but you kinda need to be a semi-professional to do well at it. As Splatta said the other day, that seems too much like work.

Diamond Age review

I wrote about the failings of The Diamond Age in a message to my brother a week ago. Now that I have actually finished the book, I can say that my problems with it are still valid. First, the good: I don’t think there’s anyone better than Neal Stephenson when it comes to creating a believable universe around a technologically advanced future. In both this and Snow Crash, his world is fully realized and–more importantly–socially complex.

But The Diamond Age clearly is affected by Stephenson’s ongoing scatterbraineditis in a way that Snow Crash was able to avoid. It’s actually a pretty clear progression from the great plot of Zodiac through to the spaghetti nonsense of Cryponomicon. He creates this nanotech-infused world, introduces us to a few characters and gets us to love them and root for them. Hackworth vanishes from the storyline, then Miranda, then Nell seems to be the central character. Then she disappears when Hackworth reappears and now we’re supposed to care about Fiona for a chapter or two. Then Carl Hollywood becomes a central character. And what ever happened to Dr. X? What’s up with the Fists? Oh, here comes the Mouse Army seemingly from nowhere (or more accurately 200 pages ago). The conflict that supposedly gets resolved doesn’t even begin to appear until three-quarters of the way through the book. And now that I think about it, I’m not sure what the conflict was or even if it was resolved.

I really wanted to love this one, especially since I liked the world so much more than the virtual reality world of Snow Crash. But at least in that book, there was more or less a single conflict, clear protagonists (one was even helpfully named Protagonist). When Stephenson writes sprawling epics, he forgets to put in a direction for the story to go.

Idea: OEIS blog

Someone should make a blog based on the Online Encyclopedia of Integer Sequences. Each week (or twice a week, or daily, or something), there’d be a post which would discuss a single sequence. It’d give some glance at the theory and some history behind the concepts, be they Turing machines, prime numbers, set theory, or bi-directional graphs.

I’m adding this to my “to do when I retire” list.

PAX East disorganized thoughts

I’m still a little too tired to intelligently compose all of my thoughts about this weekend’s PAX East, but I’m going to do my best.

  1. Without a doubt, the best part of the weekend was the half a dozen times we trekked up to the room with a bunch of standup machines from the American Classic Arcade Museum. Brian tried to get anywhere at all in Dragon's Lair (and succeeded, I think). M and I played Frogger and Pong (both predate a "free play" dip, so you had to get free tokens from an attendant). We played a whole bunch of Flash Gordon pinball. The graphics on Asteroids are eye-piercingly bright. Ms. Pac-Man has legs and she chases furbees. Winner of the award for "game I never heard of before but loved": Omega Race.
  2. The worst part of the weekend was the Friday night concert. The concert itself, actually, not so bad. But we showed up about 90 minutes early for the line to get good seats in the balcony. And then what do they do? They force the people in the front of the line to fill in from the sides first. Guh. We argued our point and the excellent Enforcer agreed and let us move. But then the concert started like an hour late and I didn't want to listen to three hours of opening acts to get to MC Frontalot. So I listened to the Protomen and then told myself I'd see Frontalot another time.
  3. PC freeplay was fantastic. A couple hundred high-end computers all set up and networked and with a bunch of Steam games loaded up. We played hours and hours of Left 4 Dead 2. I think I might buy it.
  4. Console freeplay was also good, especially if you show up early. We went first thing both Saturday and Sunday, and was able to grab a game with almost zero wait. But by the time we left each day, there was a big crowd. Played some Boom Blox (which I was told by an passer-by is the "best Wii game"), and Little Big Planet.
  5. The expo floor on Friday: a madhouse, totally terrible. On Sunday: much better. Big ups to Slam Bolt Scrappers, a fun indie multi-player Tetris-inspired battle strategy game, and Split/Second, a beautiful racing game that gets the HUD just right (i.e. almost none at all).
  6. 3D displays were all the rage, especially at the nVidia booth. Worth it? Sometimes. Will they take off? Not sure. Raise your hand if you're looking forward to wearing special glasses to play games.
  7. Starcraft II was at the nVidia booth (or maybe just near it), but the line was about five people deep and it was clear that everyone wanted fifteen minutes with the game. They could have planned that booth better.
  8. Wil Wheaton was great. He mentioned Pandemic during his keynote, and implied that it was a fun co-op board game. We tried two or three times to get it from the library, and the one time it was available, I didn't take it because it's a 4-player game and we had a group of seven. Since then, I've heard two or three negative reviews so I'm not sure what to think anymore.
  9. We did get Bang! from the library, which was great fun. We also played a bunch of Fluxx (including the Monty Python flavor) and Munchkin Fu (ninjas) and Munchkin Booty (pirates) at the same time. I won a Munchkin silver piece when an Enforcer walked by just as we were packing up.
  10. The Hynes Convention Center is kind of a dump, and was clearly not big enough for the crowds. I hope they move it to the BCEC next year. PAX East has a three-year contract, but I think the two conference centers are managed by the same company, which would hopefully make moving it pretty easy. Update 29 Mar, 2pm: Huzzah, confirmed! PAX East 2011 and 2012 will be at the BCEC!
  11. Added 29 Mar, 2pm: The swag bags you got at the door in contained a really small (30 cards?! Really?) but playable Magic: The Gathering deck. Firstly, I hope the guy who came up with the pre-built Magic deck got promoted. Secondly, we were able to sit down in line and start playing four-person Magic games without having to try to remember the rules at all. There were several "riding a bike" similes made.

Health care reform

As everyone who cares already knows, the health care reform bill passed the House late last night. From a policy point of view, it’s a really great thing. The individual insurance mandate combined with the ban of dropping insurees or excluding care for “pre-existing conditions” will be big. In fact, the individual changes that the reform puts in place are widely supported.

But there are a lot of mitigating circumstances that are keeping me from celebrating today. The accounting hand-wave tricks that are in the bill to make it look like a budgetary winner are disgusting. The complete inability for the Democrats to get any moderate Republicans on board with what is a very centrist bill (not to mention the couple dozen moderate Democrats that voted against it) is a real shame. And as a pro-choice liberal, I can’t help but feel disappointed that anti-choice conservatives get to keep any of us from helping poor women get abortions, but I couldn’t keep my money from being used to invade Iraq.

In the end, I simply hope the administration learned a couple of important lessons. Most importantly, if Obama wants something to happen, he needs to be more engaged from day one. I also hope that this reform’s passage helps conservatives realize that the Tea Party’s scorched earth methods aren’t going to work for them and compromise really is a better idea.

Wordpress upgrade

I just updated to Wordpress 2.9.2 (from the antiquated 2.7). It went smoothly on my end, and it looks like everything’s still up and running, but please let me know if you see any smoke.

2009 Oscars Scoresheet

The Academy doubled the number of slots for Best Picture nominees (to ten!) but it hasn’t really helped my Oscar scoresheet. Just like past years, I’ll go over the nominees and admit exactly how many movies I haven’t seen this year.

Category # seen
Best Picture 0
Best Actor 0
Best Actress 0
Best Director 0
Best Screenplay 0
Best Adapted Screenplay 0

Goose eggs, across the board. In fact, the only nominated movies I saw this year were Coraline (Best Animated Feature Film), Sherlock Holmes (Art Direction and Score), and Star Trek (four nominations, all FX-related). But like usual, there are a whole bunch of movies that are high on my list: Up, Inglorious Basterds, District 9, and The Blind Side (Best Picture? Wow. I loved the book, so I need to see it.)

If I see all of those before March 7, I’ll finish with 8 points, which would tie with my final score last year.

Update: I did manage to see all of the above-listed movies. Expanding Best Picture from 5 to 10 let some great-but-not-fantastic movies in. District 9? Blind Side? Who really thinks those might deserve Best Picture?

2009 in books

Looking back, 2009 was great year for my reading list. Although I only read three fiction books (not counting the collection of Science Fiction I used as waiting-for-inter-library-loan filler), they were all remarkably good. Next year’s list is likely to be very interesting. Not only am I trying to figure out how to fit my new Kindle (thanks, Mom and Dad!) into my reading habits, but I also hope to get fiction recommendations from other people for 2010 so I can try to divide my time 50/50. Right now there are four books on my nightstand, and they’re all non-fiction. What a bad start to that New Year’s resolution.

Here are the books I read this year, and my thoughts on some of them:

See also 2008, 2007, 2006, and 2005.

A Decade In Review

Tomorrow, it will be 2010.

Ten years agoNow
I was a sophomore at RPI, considering a double-major in Computer Science and Management.I am a developer/manager for a small company.
I lived in a tiny dorm room in the crummiest suburb (Troy) of one of the crummiest capital cities in the country (Albany).I live in South Boston in a condo I own. I have a patio and a garden.
I was dating my High School sweetheart, who went to college almost five hours away. I saw her about once a month.I'm married to my High School sweetheart. I sleep in a bed with her every night.
I stayed in my old bedroom at my parents' house every month or so.Someone else owns that house, and my parents live in an RV. They're currently in the Florida Keys.
I hung out with college friends, and once a month saw friends from High School.I hang out with college and Boston-area friends. I don't see my Philly-based and California-based High School friends often enough.
I'd had a handful of beers (sorry mom, it's true) but was not legally able to purchase alcohol.I spent a Benjamin on a bunch of champagne for tonight's New Year's Eve party.
I was programming mostly in C++ (both for school work and working on Science and Industry) with a little bit of Perl.I'm programming mostly in Java (work and Android app development) with a little bit of Perl and Python.
I ran a community website called run a personal website called
I was planning the third iteration of a holiday I invented, called National Vacuum Awareness Day.NVAD expired after 2001. I still have dozens of shirts in my basement. Buy one?
I frequented Slashdot, Ars Technica, and'm active on MetaFilter, Facebook, Twitter, and Flickr.

The Anti-gift

What I asked for for birthday/Hannukah/Christmas: Freedom from shoe shopping. I hate that all the shoes kinda look the same to me. And I feel like I’m inconveniencing the salesperson every time I want to try on a different style. (Plus my feet are wide, so it’s hard to get the best fit the first size I try.) And you only get like three minutes to decide on a pair of shoes. What I wanted was for someone to go to the store, pick out five or six styles of shoes, buy them in 10½, and bring them to me. I could wear them at home over a weekend, pick out the ones I like the most, and then the giver would bring the others back.

What I got: A ride to the mall to buy shoes. No, wait, I drove. I guess all I got was “Let’s go buy you new shoes”.

Non-fun with MySQL

Some days, nothing goes right.

mysql> drop table node_details; ERROR 1051 (42S02): Unknown table ‘node_details’ mysql> create table node_details ( id integer ); ERROR 1050 (42S01): Table ‘node_details’ already exists mysql> drop database local_nodes; ERROR 1051 (42S02): Unknown table ‘node_details’

This exercise in un-collapsed waveforms brought to you by this not-a-bug bug.

Why I use Windows

If you’re lucky, this is the last time you’ll hear me mention Windows 7 for a while. But I’ve received a number of queries about my continued use of it for a while now. I have some very excellent reasons that I figured I should put in writing for easy reference.

  1. Proactive non-reason: I don't hate Apple. I think their hardware is beautiful and I think Mac OS X is one of the most usable Operating Systems around (although it's got a learning curve like any OS does). Their prices are on the high end of reasonable, considering the hardware is generally top-of-the-line and well-built.
  2. Proactive non-reason: I am pro-open-source. I think Linus' Law is spot on, and I think that "Release Early, Release Often" is a faster way to quality software. But I'm not an ideologue. I run Linux exclusively at work, but also I use plenty of closed-source applications without complaining. I'll even purchase DRM-ed media without much grumbling.
  3. I like to build my own computers. There's something about the hundreds of interlocking details that appeals to my nature. The challenge of learning (or re-learning) interfaces and chipsets and how memory works is exciting. (Aside: I find the enjoyment that I get from following sports to be somewhat similar. They're complex worlds with details that are almost entirely self-consistent. And its the exceptions and quirks that make them enticing.)
  4. Unfortunately, Mac OS X doesn't work on non-Apple hardware, at least not officially. And I don't feel comfortable applying a delicate hack that will make that work on my every-day machine.
  5. My wife needs Windows for phone syncing and work applications. As a doctor, there are a number of applications she runs on her phone and at home to access charts and medical databases. Some of them have iPhone options, and a couple have cripped web versions, but none of them that I know of yet have a full-featured client that will work under either Mac OS X or Linux client.
  6. I like to play games. I do it less than I did back in college, but I still spend five or six hours a week playing Team Fortress 2 or Trackmania or a number of other games. There are few Mac OS X or Linux versions of most games: Windows is by far the most popular gaming platform. (Gaming works well in Parallels within Mac OS X, but you still need a Windows install/license.)
  7. Dual booting is more trouble than it's worth. I have no problem with Windows. In fact, so far, Windows 7 is really nice and stable and it plays nice with all of my hardware. I have several good reasons to use Windows, but no compelling reason to use something else. So I have no reason to go through the effort to set up a second OS.

Quick ACL reviews

Here are some quick reviews of shows I saw at Austin City Limits.

Shows that were really great:

  • John Legend - He's quite a showman. He made a comment about ACL not usually having much R&B, but I think he probably convinced them it was a smart move.
  • Kings of Leon - I only caught about the last 20 minutes of their show (I was at the Yeah Yeah Yeahs during most of it) but they were great.
  • Mute Math - I wasn't expecting a lot from their show, but they're way high energy. The lead singer finished off the show by playing something that looked like a guitar-shaped theramin.
  • Flogging Molly - In the rain. That was something special. They went long, though, which was surprisingly annoying.
  • STS9 - Missed half of their show (I was at John Vanderslice and The Scabs), but their electronica is just so fun.
  • Ghostland Observatory - I had never heard of them before, but they were recommended (and it was them or Dave Matthews at the end of day 2). Two guys and the most kickass light show I had ever seen. Possibly my favorite act of the weekend.
  • Ben Harper and Relentless7 - From what I hear, very different from Ben Harper's solo stuff. Reminded me of Bela Fleck and the Flecktones, which leads me to believe their non-live stuff might not be as exciting as the show was.
  • Girl Talk - This was the 25,000 person dance party near the end of day 3. An amazing way to end the weekend. A very close second for best act.

Shows that were disappointing:

  • The Walkmen - For certain types of music, yelling instead of singing is okay. This wasn't one of them.
  • Yeah Yeah Yeahs - Not terrible, I just had never realized how similar all their songs sounded. Wish I had gone to all of Kings of Leon's show instead.
  • Mos Def - He came on 20 minutes late, played drums(!) for two great songs, and then bullshitted with the band for ten minutes before doing another song. Decided to bail in favor of John Vanderslice.
  • The B-52s - What was I even expecting?

I’ll have photos up as soon as CVS gets their act together and develops them. Maybe tonight.

Guy movie month

My wife is going to be halfway across the world for essentially all of the month of October. I have a couple of projects that are going to occupy much of my time, but I’m also planning on catching up on a backlog of action movies. I’m looking for suggestions of good action or Sci-Fi movies from the past five years or so. Here’s a list of the ones I came up with off the top of my head that meet the criteria of “oh yeah, she doesn’t want to see that”.

  • Knowing
  • The Simpsons Movie
  • Traitor
  • The Italian Job
  • Shooter
  • The Transporter
  • Crank
  • Solaris
  • Nerdcore Rising
  • The Prestige
  • Clerks 2
  • X-Men Origins: Wolverine
  • Terminator Salvation

This isn’t a great list. I’m sure some of them aren’t worth seeing, and there are probably 50 that should be added. Give me some suggestions.

Graphic design and misinformation

Last week, Representative John Boehner released a chart intended to show the complexity of the proposed health reform bill. The magazine New Republic shot back with a chart of their own of the current system. A graphic designer on Flickr redesigned Rep. Boehner’s chart to be actually informative, and it is spectacular.

Kick-ass gazpacho

What follows is my recipe for delicious summer gazpacho. In my opinion, it’s the bread and the oil and the wider variety of veggies than usually found that does the trick. Also, the lack of cilantro prevents potential seasoning woes.

  • 2 large (28 oz) cans of whole tomatoes
  • 1 large cucumber
  • 1 green pepper
  • 1 red pepper
  • 1 big vidalia onion
  • 1 or 2 jalapeños
  • 4-ish slices of bread
  • 1/4 cup good olive oil

(If you put the cans of tomatoes in the fridge the day before making, your gazpacho will be ready for eating faster.) Remove the seeds from the cucumber, peppers, and jalapeño. Coarsely chop half of the tomatoes, cucumber, peppers, onion, and all of the jalapeño. Put them in the blender. Add the bread, oil, and juice from the second can of tomatoes. Puree until smooth. (You might have to blend in two batches. This is okay.) Chop the rest of the vegetables very tiny. Mix, and put it in the fridge. Enjoy cold.

Transformers 2 reviews

I never saw the first Transformers movie, and I never had any plans to see the second one, but I’ve come across three separate reviews for Transformers: Revenge of the Fallen that have left me somewhat breathless. I can’t think of another movie that was so thoroughly reviled as completely worthless:

  1. Michael Bay Finally Made An Art Movie: "...the movie's id overload reaches such crazy levels that the fabric of reality itself starts to break down. ... After a few hours of this assault, you feel the chair melt and the floor of the movie theater becomes an angry mirror into your soul. Nothing is solid, nothing is real, everything Transforms."
  2. Roger Ebert's review: "The plot is incomprehensible. The dialog of the Autobots®, Decepticons® and Otherbots® is meaningless word flap. Their accents are Brooklyese, British and hip-hop, as befits a race from the distant stars. Their appearance looks like junkyard throw-up. They are dumb as a rock. They share the film with human characters who are much more interesting, and that is very faint praise indeed."
  3. Trans-Coon-ers: "Skids and Mudflap seem to be everywhere, bantering, fighting each other... sheesh. The only thing they don’t do is shoot craps and eat chicken with watermelon. At one moment, even, LaBeouf’s character asks the two if they can read a robotic script that will reveal crucial information. 'Uh, we don’t do too much readin,' one drawls."

Now the only question is: Does this clinch my plans to never see this movie? Or do I need to rent something this hideous, just to be able to say I looked at the face of cinematic death and didn’t blink?

Stack Overflow

I’m not a huge fan of karma-accumulation websites. You know what kind of site I mean: Other people can vote up or down your stories and comments, and you get points when you’re voted up, and lose points when you’re voted down. There are lots of these, each with their own scoring foibles: Digg and Reddit are two of the most well-known. Slashdot has done it for a while (in fact, I think they’re why I still call this concept “karma”). The concept is good: You limit the requirements for moderators by allowing users to essentially moderate each other. If a post or comment gets enough down votes, it might vanish. If a post gets a lot of up votes, it becomes more prominent. Fewer dedicated moderators generally means lower overhead costs and, in theory, a “fairer” moderation policy.

In practice, though, there are a lot of things to not like about these schemes. Accumulating points becomes an end in itself, which leads to posting a lot of simple or purposely-misrepresented posts (“whoring”). When points are used to control if your posts are seen at all, creating multiple sockpuppet accounts to vote up your own contributions (“gaming”) is inevitable. On the larger sites, an above-the-fold link can mean tens of thousands of hits; gaming then becomes a lucrative business. Preventing whoring and gaming through algorithms can work, but search engine optimizers are smart and tenacious. It’s a continuous arms-race.

Stack Overflow logoStack Overflow is a point (“reputation”) accumulating site that somehow works extremely well. At first glance, it is a simple programming question-and-answer forum where you gain reputation for answering questions and having those answers voted up or chosen as “correct” by the asker. But there’s a number of things I haven’t seen anywhere else that makes Stack Overflow excel where other sites struggle. The most obvious difference is that you are able to do more things as you gain reputation. You can’t even vote up questions or answers until you’ve received a couple of votes of your own, increasing the burden to entry for sockpuppets and gaming. Maybe more importantly, points accumulation isn’t single dimensional. Stack Overflow gives you badges for activities that are difficult to game, and displays your badge count right next to your reputation.

But there’s a bigger reason why this works on Stack Overflow. There’s no real benefit to gaming or whoring. Since the focus of the website is question-and-answer, instead of directing traffic to other websites, there’s almost no way to make a profit from having a question voted way up. And the relative smallness of the audience compared to some of the giants out there means that even if there was a way to turn a profit, focusing on other sites would still give you a better return. What’s left to be seen is if Stack Overflow can keep such a high signal-to-noise ratio as it continues to grow.

An anecdote from my childhood

My parents made a censored version of Raiders of the Lost Ark for me when I was young. Indiana Jones escapes from the tomb, blows up the plane, steals the ark back from the Nazis in the desert, gets on the ship with Marion, THE END. I was probably in my teens before I saw the whole version on television. I had never even questioned it.

Someone’s going to bring it up, so here’s another anecdote: When I was very young, my parents called the ice cream truck the “music truck” to keep me from screaming every time I heard it. I don’t know how long that one lasted, because I have no memory of it.

Why I'm Still Writing Java

Just over a year ago, I was sitting in a classroom at Sun’s virtually deserted Burlington campus, learning a new programming language from a living human in person for possibly the first time in my whole life. The class itself was a little slow; it definitely wasn’t geared towards experienced developers. But it was more effective learning than fiddling at work had been, since it successfully prevented all distractions. Now that I’ve had a year to work with the language (and have gone back and forth to programming in Perl), there’s several reasons why I’m still using Java.

  1. Strong typing: Perl has no type safety, and I used to think that was an asset. But when you have a dozen programmers working on hundreds of source files, type conflicts can easily get introduced and go undetected for a long time. Objects are hashes, references are scalars, and arrays are quietly scalar-ized.
  2. WAR files: Releasing a new version of a website is brainless with Java. See that .war file that was built by Eclipse or Maven? Copy it to your server. Done.
  3. JUnit, Hibernate, Spring, log4j: Perl has a lot of freely available modules. But not a single one of them is as useful as Hibernate alone. It encapsulates database objects transparently, and is remarkably flexible. We've got a lot of awkward legacy database schemas, and without Hibernate's flexibility, we'd be building database objects by hand with JDBC. Spring's dependency injection and session management, JUnit's unit testing mechanisms, log4j's logging simplicity, and Maven's build architecture mean we spend less time planning and re-planning the infrastructure of our applications and more time implementing functionality.
  4. Eclipse: I know that there are Perl plugins for eclipse (EPIC in particular), but they never added that much useful functionality as far as I was concerned. Having a full-featured IDE with method completion and inline error display saves me huge amounts of time.
  5. Everything is a reference: Java's object-oriented nature reminds me a lot of C++ (that's the OO language I have the most experience with) except for the lack of the object/pointer paradigm. The fact that everything (okay, okay, besides primitives) is a reference keeps me from having to remember all of my pointer-management skills.

I could probably come up with a dozen other reasons that I enjoy programming in Java, but those are the big ones that make my life easy.

New desktop, try 2

After doing yet more research on benchmarks and prices, I’ve backed away from my revolutionary stance on Intel processors. The Athlon 64 X2 represents a fair approximation, and the CPU and motherboard combo I’ve chosen will save me about $150 off of the Intel alternative. Here’s what I’m ordering tonight:

Motherboard: GIGABYTE GA-MA780G-UD3H (780G chipset, ATI Radeon HD 3200 on-board, although I won’t be using it) CPU: AMD Athlon 64 X2 5600 (Dual 2.9GHz cores, 2x512K L2, 65W) Video card: Radeon HD 4870 1GB (My first PCIe x16 card! Note that this is actually a bump over the previous plan) Memory: G.SKILL 4GB DDR2 (1066 MHz, dual-channel, CAS 5. A tiny upgrade in speed) Hard drive: Western Digital Caviar WD6400AAKS (640GB, 7200 RPM, this hasn’t changed)

Add in an HDMI cable (my screen and current video card support it, but for some reason I never got around to buying one) and one of the best reviewed AM2 heatsinks on the market, and it all adds up to just over $550 including shipping. Even cheaper than I was expecting.

The savings will probably go towards an HTPC build from the old hardware. Details to come! Maybe!

The earliest news events I remember

The first five news events I actually remember (and my corresponding ages) were:

  1. 1986-01-28: Challenger explosion (6 years, 1 month)
  2. 1986-02-09: Halley's Comet passes Earth (6 years, 2 months)
  3. 1986-10-27: Mets win the World Series (6 years, 10 months)
  4. 1987-10-19: Stock market crash on Black Monday (7 years, 10 months)
  5. 1988-11-08: Bush defeats Dukakis (8 years, 10 months)

One of the most interesting things I learned while looking up these events is how close together the Challenger disaster and the Halley’s Comet perihelion were. In fact, the Shuttle mission (STS-51-L) and the following scheduled mission (STS-61-E) had apparently been scheduled to observe the comet up close. In my mind, those two events were far apart. Along the same lines, the Mets won the World Series just a couple of months after my family moved to Connecticut, but somehow I suddenly became a Mets fan.