Latest News >> 2008-12-25

Dear Reddit,

2008-12-24

Ruby Is So Nice

2008-12-16

My RubyFringe presentation is available online at InfoQ:

2008-12-15

Back in the day I took an electrical engineering course at UBC on the five senses and what
we can do with them using technology. When it came to sound, we had to sit through this
excruciating series of videos of nerds trying to rock out with wands, sticks, balls, helmets,
pretty much anything that wasn’t an instrument. Every video demonstrated a horribly dressed geek
waving his little thing around at random with no rhythmic sense making noise. It was awful,
and when it was over I said, “You know, the problem with all of that music is you just can’t
dance to it.”

Well, DHH seems to be caught in a lie in his latest
blog post on Rails
myths
so I feel I
should correct it. An outright lie that Mongrel caused
his 400 restarts/day problem. However, David must have forgotten
that I have a full log of the chat where he admitted it, so
let’s get into some nice clean truth for a change.

Normally I wouldn’t give a shit. Ruby on Rails is so far
from my world right now that I don’t even really care. I
play guitar and write with maybe some coding to pay the
bills and that’s about it.

However, I get really sick and tired of the passive aggressive
people who run things over at the Rails/Ruby Revolutionary Faction.
They have to project this image of being nice, but at the
same time are competitive jerks who try to destroy their enemies.
That’s why they constantly pick on little guys like Giles, Obie,
and myself, but never in a direct way. It’s always with little
turns of the phrase, or rumors, or power plays behind closed doors.

The insults are always minor things you’d be crazy to get mad about, but
they still get under your skin. It took a year of being called an idiot
by the same people who used my wares constantly before I finally gave up.

Now It’s Mongrel

DHH is right, in this part of his
post

that Phusion Passenger is the shit.

If you aren’t using Phusion Passenger to deploy all of your Ruby web applications
(not just Rails) then you’re a dumbfuck.

Of course, I was saying that Phusion was great months ago when I met them.
Again, DHH and crew are late to the party, but that’s how they roll. I
bet they were even bashing it at first in their little chat room. Now
they’re backing it as the way to go, probably for no other reason
than to take Mongrel out as a competitor.

However, remember I told you that guys like DHH never do anything
directly. He praises Phusion Passenger saying it’s great and
better than Mongrel (for deployment).

Then, he tells a wild ass yet subtle lie about the 400
restarts/day

being a Mongrel problem. Let’s take a look at the magician
at work:

“Zed insinuated that it’s normal for Rails to restart 400 times/day because Basecamp at one point did this with a memory watcher that would bounce its Mongrels when they hit, I believe, 250MB."

If you simply remove “Mongrel” and replace it with “FCGI” you have
the real truth. DHH was actually talking about FastCGI when
he said they had to restart, and that’s proven by the fact that
he hadn’t moved Basecamp to Mongrel yet, and was talking about
installing mentalguy’s fastthread library into his existing
FastCGI setup.

But, let’s have DHH tell you instead:

(15:10:24) DHH: btw, fastthread has definitely helped us
(15:10:29) Zed S.: that mongrel_service is great stuff
(15:10:30) DHH: we're running it on BC now
(15:10:33) Zed S.: oh?
(15:10:43) Zed S.: very nice.  what's the big improvement you noticed with fastthread?
(15:10:47) DHH: it hasn't completely removed our leaking issues, but drastically reduced them
(15:11:04) DHH: we have a cap at 160M where processes get restarted
(15:11:12) DHH: before fastthread we had ~400 restarts/day
(15:11:22) DHH: now we have perhaps 10
(15:11:29) Zed S.: oh nice
(15:11:33) Zed S.: and that's still fastcgi right?
(15:12:05) DHH: ye
(15:12:13) DHH: we're still not mongrel on the big apps
(15:12:18) DHH: but on all the small ones we are
 

See that? It’s the exact same chat I got my quote from in The Rails Is A
Ghetto rant
but let’s emphasize the
important statement:

(15:12:13) DHH: we’re still not mongrel on the big apps

Now, when you read his blog post he makes it seem like he had 400
restarts/day using Mongrel, yet right here he admits to using fastcgi and
having the restart problems. It was fastthread that fixed up the
problems, which really points out just how broken Ruby is still.

To summarize the facts:

  • DHH was using FastCGI from the beginning of Basecamp and Rails.
  • He had to do forced restarts 400 times a day because of leaking issues
    under FastCGI (really Ruby).
  • It wasn’t until Mongrel and later fastthread that people could
    actually deploy without problems…almost 2 years after Rails
    was widely being adopted.
  • This means that DHH and all of rails-core lied to everyone
    about Rails’ stability for years, and keep lying.
  • It also means that if you had problems with FastCGI, then you
    were not crazy. Ruby really was too unstable for production use.

That was the point of telling people Rails crashed that much
back then. It is of course better now, but only because of
the hard work of people like mentalguy and myself. Everyone
else just denied there was a problem, including DHH.

It’s also an indicator of just how fucked up Ruby really is.
I consider the Apple Patches
Ruby’s economic meltdown. If the mishandling of that doesn’t
make you pause before picking Ruby then I don’t know what the
fuck would. Shit like that could kill a company off overnight.

Anyway, if DHH ever wonders why I flipped out, it’s this kind of
weird passive aggressive lying that did it.

Don’t Fuck Over Phusion Passenger

The one thing that pissed me off about the Mongrel project was
how it destroyed my career path. I don’t really think I ever
fully recovered from it, but Mongrel basically made it impossible
for me to get a regular job just doing my thing. To have everyone
in your world using your software, but not offering you any jobs
greater than a system administrator position is tough.

My buddies over at Phusion are potentially in the same boat. They did a
really good job marketing Passenger and their very nice patches to the
Ruby system named “Ruby Enterprise Edition”. They could make some money
in this area where I couldn’t.

Yet, I see them getting the same treatment I did when it comes
to the people who use their stuff. All they are looking for
is support contracts and custom work, yet their stuff is so
good nobody needs them. Rather than feed the ecosystem and just
buy their support licenses to support them, people who use
Phusion are probably just gonna take it and not give back.

If you actually do use Phusion, consider buying something from
the guys who made it. It’s an awesome product, and if you
want them to continue developing it and giving it out for
free then give them money.

It just makes you a good open source citizen.