I’m so dumb

Don’t ever leave a website that starts to get any kind of traffic on the joke that calls itself GoDaddy. As a registrar they’re not bad but their DNS tool is very broken.

I won’t bore you with tales of my screaming match at a manager there at 2am when a simple A record IP address change caused my image server’s address to drop in and out of their DNS at random. Or how the crankier I got the more he called me sir. Or how his colleague explained that if I choose to use their DNS service I need to know intuitively that I can’t make more than one change a day or their zone file gets corrupt – and how it’s standard procedure that you call them to do a “zone file refresh”. Or how he explained that a record I hadn’t changed at all dropped off their servers and the reason was because it’s an “Internet Thing”.

I moved over to dnsmadeeasy.com today and so far they rock. They’re the lowest cost host that offers Anycast on their servers which gives pretty good protection against DDoS attacks – something that took out dnspark a while back when I used to use them.

Why I’m so glad I didn’t use Rails

I’ve been uncool for some time now. In 2000 when Java was really beginning to kick ass I grabbed a Java book and wrote some code. And I decided I was getting stuff done faster in Perl so I stuck with it. I felt like a dork who was playing with his bigwheels while the other kids had graduated to Ducati’s.

But by and by I discovered that ModPerl kicks Java’s ass as far as performance goes and in fact loosely typed languages do rock. Not only that but anything I need has already been written and posted free in CPAN. And if you code in Java then Sun Microsystems and their friends will try to sell you stuff at every opportunity – it’s like going to the ball game where stadium forces the beer vendors to charge $10 a beer even if they make entry free and you get to play on the field.

2 years ago at Jobster as the Java dev team was discovering the new and cool loosely typed but cleverly OO language called Ruby and it’s Rails framework I went and grabbed a Ruby book and wrote some code. I didn’t like that it didn’t have CPAN and the server model seemed clunky and immature. So I stuck with ModPerl. Again I felt like the kid left in the dust while the others went and played with the big boys.

Turns out the big boys don’t care about you or your business. Here’s a slide from David Hansson, Rails creator:

This is via Rob Conery’s blog which I found via Tony Wright’s blog. And here’s a quote from David:

I’m not in this world to create Rails for you. I’m in this world to create Rails for me and if you happen to like that version of Rails that I’m creating for me, than you are going to have a great time.

Read Rob’s full blog entry for a lot more insight on what is scary about Rails and its community.

In Seattle last year I spent a lot of time networking in the startup community and meeting with many entrepreneurs. When we spoke technology choices every single one of them was planning on using Rails. Eventually it became a silly question and the answer was brushed if in a “duh, like obviously I’m using Rails” fashion.

This year on the Seattle Tech Startup list – about 2 weeks ago – there was a thread with many entrepreneurs complaining bitterly about Rails’ shortcomings.

Startups are risky enough without adding Rails.

Sure I wake up at night and wonder if I’m the guy who insists on using Cobol while everyone has moved on to Pascal.

But then I get out of bed and read the recent posts in the ModPerl archives, I check on the progress of Perl6 and I log onto my servers and check mod_status and how many requests they’re serving without breaking a sweat and I realize that it takes more than a bunch of arrogant eurotrash developers to create an enthusiastic open source community churning out great products.

It takes a lot of love for the product from the community and from its developers. It takes an inspirational leader like Larry Wall or Linus Torvalds and their lieutenants. And it takes time.

Great Movie and Lawrence

If your’e looking for a great crime movie with an excellent script and brilliant actors at the top of their game, go rent “The Brave One”.

There are so many great lines in this movie, but I think the D.H. Lawrence quote got me: “The essential American soul is hard, isolate, stoic – and a killer.”

Lawrence was an Englishman – and this should be taken in the context of his time: The late 1800’s to 1930. But I think the instinct survives today. Of course I’m a foreigner too so what the hell do I know.

Speaking of great mainstream movies that steal from great literature, here’s another that you’ve head a thousand times:

From “Self Pity” by Lawrence:

I never saw a wild thing sorry for itself.
A bird will fall frozen dead from a bough
without ever having felt sorry for itself.

When I see a disabled dog in Marymoor park playing like it doesn’t matter I think of this poem … and sometimes when I’ve pulled a 12 hour day and got another 5 to go.

Poetry and Writing’s ability to inspire is quite amazing. Which is why I’m so glad the writers strike is now resolved and the architects of our culture got a raise.

Buffet

CNBC had a 1 hour segment this evening with a collection of Buffet interviews. My favorite quote: “On Wall St we get the innovators then the imitators and then the swarming incompetents.”

Buffet is a master at distilling an entire thesis into a sentence.

Slow lighttpd on Ubuntu 7.10 Gutsy Server with 200+ hits/sec?

aaaah you say. Finally, after many a Google search finally I found someone who understands my pain. I know you’re in a rush and I can’t stand people who love the sound of their typing either, so here’s how you fix this little problem.

If you have a brand new super fast server and a high traffic website (200+ requests per second) and you install lighttpd and it performs like a dog, try the following:

Add this to your /etc/sysctl.conf file:

net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_recycle = 1

net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.wmem_default = 16777216

net.core.rmem_max = 16777216
net.core.rmem_default = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

#Only enable these if you’re dumb enough to have netfilter connection tracking enabled
#net.ipv4.netfilter.ip_conntrack_max = 1048576
#net.nf_conntrack_max = 1048576

Then run

sysctl -p

Also make darn sure you don’t have netfilter’s conntrack modules enabled in the kernel. If you’re using shorewall on your lighttpd box this will probably be enabled. You can check if conntrack is enabled by checking if the file /proc/net/nf_conntrack exists. Also run lsmod and you’ll see a ton of modules starting with nf_contrack_

To get rid of conntrack if it’s enabled I would avoid rmmodding them – rather remove the app that enabled it and reboot the box just to keep things sane.

If you must insist in using conntrack then uncomment the last two lines in the sysctl.conf sample above.

Google the individual params above and you’ll find a ton of explanation on each.

Things that piss me off about OS X

  1. Whenever I double click on text in a terminal when ssh’ing to another box it either selects a single word or the whole line – it doesn’t select just the text I want it to select. Linux does, windows does, why the hell can’t OS X?
  2. When I select text in a terminal I have to click Apple-C to copy it into the buffer. Why can’t it behave like unix is supposed to and just put it in the buffer for me? You’d think they’d get that if you’re running terminal on OS X you’re probably expecting it to behave like a unix terminal which it is.
  3. Whenever I SSH to a remote host I have to type ‘TERM=screen screen’ (no quotes) to unf***k the terminal emulation when I run screen.

But other than that I feel like a rock-star working on an Apple instead of a Dell laptop, so that  counts more than any screwy terminal emulation – even if seconds of my life are ticking away as I reach for Apple-C once again.

Phish Phood and the Mystery of the Dissapearing Kitty

I don’t feel so good. Last night I ate a pint of Ben and Jerry’s Phish Phood in a single sitting. It’s basically every decadent thing they could come up with shoved into a 1 pint cardboard container.

I think I made myself diabetic in an evening.

I had good reason though. My cat dissapeared two days ago. Ziggy – or ziggers as he has come to be known is my fat orange tabby. We share the same hair color so there’s a special bond.

Ziggy is quite the adventurer and – as it happens – a spectacular fighter. Don’t ever scratch his tummy because he’ll take your hand off. He’s a rescue and had a rough childhood, so there’s history there I’m sure.

Two evenings ago he decided to not come home. So we went looking for him clanking his bowl and calling and he never showed up. I had to get to work the next morning – big migration this weekend etc – but came home in the evening and still no ziggers. So last night I’m tramping the Sammamish trail (which has great mouse hunting if you’re that way inclined) and still no ziggers.

At around midnight last night I decided to give it one last shot. I was clanking his bowl and calling him and I kinda got into a routine so I never realized how far north I walked. Way further than I’d ever assume he’d adventure.

About half a mile up the trail I hear MEEEEOW and I recognize his hoarse litle meow immediatelly. He’s stuck in a tree in someone’s back yard about 3o ft up.

This is the second time he’s done this. I don’t know if he gets chased up there by critters or if he just loves the feel of bark beneath his paws.

So I sprint half a mile back to the house – we grab a huge piece of canvas, sprint back and assume the fireman pose underneath the tree holding the canvas between us like a trampoline trying to coax him to jump. Sound crazy? That’s what worked last time and it was much higher.

We must have stood out there for at least 90 minutes until he finally slipped, stayed in a pull-up position hanging from a branch for ages and then finally let go. He landed with a heavy thud and almost ripped the canvas from our hands – guess he’s put on a bit of weight.

We got him home – he’s was actually in great shape but I fed him some electrolytes and next thing he’s meowing at the door ready to go out again.

So to destress I had to eat a pint of Phish Phood.