Comedy club project mini-recap: they want about 500 features in a month; I deliver, using Perl; they act like the cat owner who wakes up with a dead bird on their chest; graphic designer completely steals the show by making concept art of about 500 more features; they don't understand why the order "just make it work" might at all be open-ended or require time -- "it's just a matter of moving pixels, right?". Well, I guess it is. No more fucking Perl.
Lesson: It's a fuck of a lot easier to draw up sample output than create logic. And when you do make logic, people still don't give a fuck because it doesn't look like anything. But god, you dense dipshits... the human race figured this out in the dot-com boom when everything was a mockup and we still haven't learned. I guess Perl programmers are among the least cynical in the IT field. Pretty sales. It's a lot easier to bring your fuck-object flowers than to climb Mount Everest for it. Stick to the sentiment and avoid action.
Resolution: Avoid writing Perl at all costs when working for clients. Do so absolutely when necessary, then as little as necessary. Do more HTML, more CSS, and more JavaScript than Perl when doing Web work. If you absolutely must produce code as your primary job function, create every kind of diagram you can think of, write the tests, get strong typing going, write a little code, and then go back to avoiding writing code.
Sites that *do* things are fine for sites that people want to visit -- like urbandead.com, or flickr, or livejournal. But the number of programmers paid to work on sites that primarily do things is insignificant. Most of us work on sites that existing primarily to sit there and look nice. So, when you sign on for a project, ask yourself what the wifey or boy toy of the person you report to is probably like. If the answer is dumb and pretty, then so should be the site. Again, this is the vast majority of cases. Your primary responsibility is to create something that appeals to their own vanity by being "worthy" of them and at the same time non-threatening. Code doesn't look like anything. We're dealing with self-important, superficial fucks here. Parity is needed.
-scott