$ cat post/2004:-year-of-the-script-kiddie?.md

2004: Year of the Script Kiddie?


July 19, 2004 was just another day on a mid-level support team at a company that shall remain nameless. I remember it well because that morning, we were woken up by a user who reported an issue: “Everything is broken!” they said in their best drama queen voice.

Let’s break down the environment:

  • OS: Solaris 7 (because why not?)
  • Web Server: Apache 1.3
  • Database: MySQL 3.23 (I know, right? How are we still on this version?!)
  • Application Stack: Home-grown Perl scripts and PHP (with a touch of Java for the backend)

We quickly got to work trying to pinpoint where things went awry. The first thing I did was check our beloved dmesg output. It wasn’t too helpful, so we moved on to top and saw that Apache had gone belly up again.

The root cause turned out to be a misconfiguration in one of the Perl scripts that were supposed to handle user authentication. A simple typo in the script made it loop infinitely, causing the Apache process to hang. After fixing that, everything was back to normal—or so we thought. We didn’t realize how much of an impact this bug had on our users until they started flooding us with calls.

This experience taught me a valuable lesson: even simple scripts can have complex effects. I also realized that my skills in Perl were rusty at best. Time to dust off the books and get back into it.


Speaking of books, I was just getting into Python around this time. It seemed like everyone was talking about it. Some of them, like Django, had just started gaining traction. The transition from Perl to Python felt natural and smooth. And then there were the newer tools—like Fabric for automation, which made me think, “Why am I still using bash scripts?”

But let’s not get ahead of ourselves. There was also a new kid on the block: Xen. At our company, we started evaluating it as an alternative to Solaris in our virtualization efforts. It seemed promising, but we were hesitant given that it was still quite young.


Meanwhile, outside my window, the tech world was changing rapidly:

  • Open Source: The LAMP stack was everywhere. Developers were switching from Windows to Linux at a faster pace.
  • Web 2.0: Words like “agile” and “scrum” started becoming common in meetings. I had no idea what they meant, but everyone else seemed excited about them.
  • Browser Wars: Firefox launched, and Netscape was still struggling to keep up.
  • Big Players: Google was aggressively hiring, and it felt like their star would never stop shining.

At our company, we were feeling the pressure. We didn’t want to be left behind in this tech arms race. So, I started pushing for a complete overhaul of our infrastructure. But change is always hard, especially when you have a legacy system that’s barely holding together.

I argued with my boss about moving away from Perl and PHP. I told him Python was the future, but he wasn’t convinced. He said we couldn’t just abandon everything we had built over the years.

It was frustrating. But I knew I had to keep pushing because eventually, change will happen, whether you like it or not.


Looking back on this month in 2004, it’s interesting how much things have changed. Back then, open source was still a niche thing, and Python was still growing. Scripting languages were the way to go, and virtualization was on the horizon.

This period taught me that tech is all about adaptability. You need to be ready to change when necessary, but also understand why you’re making those changes. It’s easy to get stuck in your ways, but sometimes, the only way forward is through.

And as for the script kiddies? Well, they’ll always be with us, whether we like it or not. But at least now, I know a little more about how to debug them.