The Full Feed
2008-12-25
Dear Reddit,
I’ve had a great time insulting the stupid people on your site for a year.
It’s been a blast watching you dance like little puppets, posting nearly
every blog post I’ve written within minutes of me writing it. Most of the
time, you guys post my blog entries and then say you hate them. It
boggles the mind why you would post something you hate.
However, I have become tired of your entertainment. Getting posted
consistently to your one-liner-bitch-fest is trivial. It’s boring, and
your comments and commentary are boring.
Reddit, it’s over. I won’t be writing anything else to insult you or your
small faction of vocal idiots. Consider this my last post talking about
you.
Eagles don’t hunt flies, and your corpse is full of maggots.
Dear Hacker News,
Man, I like you guys. Even when you guys hate me you have something
intelligent to say, and usually it’s pretty damn funny. Love me or hate
me, you have been the stars of this show. For every one-liner on reddit
there has always been ten well written paragraphs of meaningful opinion on
your site. Your news feed is excellent, and HN is about the only site I
will actually visit when I’m bored and away from my feed reader.
Hacker News, I have a very nice Santa Day present for you:
I’m not going to write anymore rants.
I have become tired of Zed’s So Fucking Awesome. It has lost its
entertainment value and impedes my more recent interests in music and
philosophy.
I of course will still make fun of people, and will entertain with my
humor, but I won’t write rants. I may do some ranting songs, maybe a
podcast, but starting now I’m going to write intelligent thoughtful essays
and create musical art.
Thanks for all the great comments HN. Don’t lose your soul.
Dear Ruby,
Aw, poor guy, I think spent an entire year kicking you in the nuts and
making you my bitch. I just can’t tear into someone so weak anymore, and
the Rails+Merb marriage is a sign that you guys are desperate.
So, I’m not gonna pick on you anymore. I’m gonna go focus on my own stuff
now and just leave you be. You’ve had enough, and hopefully you’ve
learned your lesson to never underestimate a man like me again. The next
guy you insult and piss on could be another Zed who comes and tears you
down with a single blog post.
And with that, my Ruby days are completely behind me. I don’t really have
much association with Ruby anymore, with only a few old friends here and
there and some old software I don’t maintain much. I was glad to have the
experience, even if it didn’t work out for me. I was well known before
Ruby, and I’m more well known after Ruby. For that I’m grateful.
Ruby, merry Santa Day, and good luck.
Dear Fans,
Don’t fret, my blog and my personality aren’t going anywhere. My plan is
to change up what I write to be my more intelligent essays and blog posts
on what I’m doing in software. I also plan to create a music and sound
component of my blog that I will try to make entertaining, weird, and
funny. People who like reading my technical and philosophical essays will
be able to read the blog, and people who like to hear my jokes can come to
the podcast and music.
Why the change?
Well, I started this incarnation of my blog almost exactly one year ago
because I was fed up with people not listening to me when I wrote
intelligent essays about interesting topics. Instead, everyone listened
to the raving macho asswipes of the internet.
What you have witnessed is a year long proof that programmers will usually
only listen to the man who seems toughest, not the one who’s most possibly
right.
I remember when I realized that fact: It was 1996 or there abouts, and I
saw a cover of some tech magazine with Grady Booch, Jim Rumbaugh, and Ivar
Jacobson on the cover. They had their arms crossed and these stern looks
on their face that said, “I am a badass mother fucker and you better use
Object Oriented Programming bitches.”
I immediately thought, “Why are these guys so mad at me, and why do they
act like they’re so tough?” It boggled my mind that programmers would get
all gangsta about OOP.
The result of their stance was very clear: Objects won and functions
lost. The Lisp programmers were rational and intelligent (mostly), and
the C++ programmers were macho assholes who decreed irrational shit like,
“You should completely define your program before you write it.”
It’s depressing, but with so many men in programming, this trend of
listening to whoever talks like Mike Ditka with scowls and crossed
arms will most likely continue. Programmers will listen to people like
James Gosling, Dave Thomas, DHH and Dijkstra not because what they say is
all that intelligent or thoughtful, but because they say it like a Man’s
Man™.
After dealing with that crap for years, I decided it would be fun to
parody that kind of asshole and take it to the ultimate extreme. I mean,
seriously, leather, neon strippers, and bleeding skulls? Anyone who
thought that shit was serious is a total idiot.
Now I am bored with the theme. It is too constricting on my current
interests and makes me feel like I can’t write anything intelligent or
thoughtful anymore. No way I could post any serious music attempts or
anything remotely interesting.
Therefore, my dear fans, the Zed’s So Fucking Awesome persona will become
old news very soon. I will have a new very fun idea going soon, and I
will focus on longer essays about intelligent topics. I will entertain
you with weird and quirky music, funny songs, and maybe a podcast or two.
But, I will not write anymore rants.
Merry Santa Day!
2008-12-24
Ruby Is So Nice
Ruby people are so nice. Just like this nice chat overheard in #merb on
irc.freenode.org:
[+pooswaa] im going to be the next zed, except not a douchebag faggot.
...
[+donri] haha zed. I wonder what he's thinking of the merge.
Gotta love the irony of some guy who’s nick is slang for
pussy in French
calling me a douchebag faggot in the Mongrel+erb (merb) IRC channel.
I’m sure pooswaa is a real tough guy too. I’m not quite sure why he wants
to be like someone he thinks is a “faggot”, but maybe what he’s really
saying is he wants me inside him filling him with my love. Too bad for
him, since I like vagina not mangina.
And, did you see how all those nice Ruby people told this guy to shut up
and be nice? Way to demand politeness
from your fellow Ruby lusers.
However, the more important line of that chat is, “I wonder what [Zed’s] thinking of the [Merb+Rails] merge?”
(Mongrel+Erb) == Rails?
Fucking awesome. I’m so glad that DHH and friends were able to put away
their stupid competitive bullshit and realize they have the chance to make
something better. Too bad it’s probably too late in the project to make
an impact, but it does give me some hope that Ruby people are actually
trying to be nicer.
Now, if they can just get Chad to quit trying to get people who call him
an asshole fired we’d be set. Fucking passive aggressive loser weirdo.
Competitive people kind of weird me out. I’m not so much of a competitive
guy, and I mostly try to live in a way that focuses less on how well I do
compared to other people, and more on how well I do compared to myself.
If you constantly compare yourself to others, then all you’ll ever be is
just as good as them, maybe a little better. You’ll also miss out on all
the fantastic things you might actually be good at while you’re focused on
being better than them at what they’re good at.
That’s one of the reasons guys like Chad, Dave, and Dave kind of give me
the creeps. They are just ultra competitive in so many weird ways.
Anyone who seems to rise up to challenge them has to be crushed. Which is
weird to me since they’re living in an open source world, so crushing your
competition doesn’t get you nearly as far as collaborating and striving
for internal excellence
Let’s take Chad. I mean seriously, why the fuck would Chad try to cheat
at a game of werewolf? I mean, why the fuck bother playing a game of
werewolf in the first place, but to also cheat at something so utterly
retarded just boggles the mind. If the point is to make new friends and
interact with people, then pissing on their dumbass 1800’s parlour game
isn’t going to do it.
DHH is also ultra-competitive like this, which really was a little bit of
a problem for me in the early days of Mongrel. At one point he tried to
convince me to make Mongrel work only with Rails. He just didn’t want
Og+Nitro to “win”. Whatever the fuck that means. Og+Nitro wasn’t any
better or worse than Rails, but it did have one thing Rails didn’t:
A lot less fucking meta-programming.
Back then, when you talked to old-school Ruby coders, they preferred
Og+Nitro because it used plain old OOP to do most of the processing.
It ran faster, was simpler to understand, and just felt more like Ruby.
Rails felt like a totally different language.
Now, imagine if I had gone along with DHH’s request to take Mongrel and
make it Rails specific so that he could compete with Og+Nitro. Well,
Mongrel wouldn’t have been nearly as popular or useful, but I might have
got some sweet deal from 37signals and become BFF with all of rails core
for sucking their tiny cocks.
Instead of doing what DHH wanted I followed my principles. I believe that
open source only works when people share and there’s contribution given
back for what you take. If you don’t give back, then you get the
tragedy of the commons and people stop producing open source. Making
Mongrel a Rails specific system would have excluded many Ruby web
frameworks and innovations that followed.
Now we see the results of that decision, and it makes me happy. I didn’t
do the work, that’s totally on Ezra and the rest of the Merb team for
writing a better Rails. They did such a good job that they were able to
get Merb to such a position that the notoriously competitive DHH and
rails-core were willing to put aside their stupidity and actually work
with a competitor to make something better.
I honestly didn’t think that would ever happen. I just assumed that Merb
would eventually wipe out Rails by being the better framework, or they’d
wipe each other out soon.
So, congrats are in order. You guys are finally grown-ups and now have
the chance to make something better.
Hopefully they won’t fuck it up with their typical back room deals and
political spin bullshit.
One Last Thing About My Haters
Something I’ve noticed about the people who tell others I’m an asshole is
this:
They’re biz dudes.
Ya see, before I did my little rant business guys were out pitching VCs
their stupid little social networks with Rails. It didn’t matter that
their idea was retarded, all they had to do was mention “Rails” and “10x
faster” and the VC dude would spooge all over his desk in a frenzy trying
to get their business.
Then I changed all that. After my rant, the simple words “400 restarts
per day” could kill a Rails project dead. Any time a dick cheese like
Michael Koziarski opened his fat fucking mouth people laughed at him. If
someone pitched a Rails project, they had to actually have a good idea,
not just Rails.
On a whim, I started keeping tabs on people who wrote nasty shit about me
online. I’d find some idiot on reddit mouthing off with his pathetic
one-liners, track him down (because he uses the same name on reddit as he
does on myspace), and then find out he’s a douchebag biz dude or a
wannabe.
It actually didn’t dawn on me that there was a connection, but then I
started hearing the same story from people who’d go interview at Rails
startups. They would interview, ask what the company thought of me, and
then immediately the biz dudes would yell, “Oh that guy’s an asshole,
don’t listen to him!”
You see, the MBA douchebag piece of shit needs Rails and the hype. He
can’t explain what he wants to build, and he can’t build it, but if he’s
got enough hyped VC keywords in his pitch he can get lots of someone
else’s money. Well, he used to be able to get it.
Yet, my rant fucked that up for him, so his only weapon is to discredit
me, even though he’s never really even met me, and he’ll end up using my
software that I gave him for free. Neat trick eh? But do you really want
to work for someone like that? A money grubbing shit fuck who can’t
really do anything but talk about buzzwords like a drunk frat boy parrot?
Based on this, I have a suggestion: The next time you interview for a
Rails position, ask the biz guy what he thinks about me. If he says,
“Who’s that?” then maybe it’s alright. If he calls me an asshole, ask him
these two questions:
- “Really? Wow, did you ever meet him?”
- “What did he do to you that makes him such an asshole?”
The way your MBA pooswa answers those two questions will tell you more
about his pseudo-alpha male mind than anything else you could ask. If
he’s a dick about it, or lies, or if he actually can’t say why I’m an
asshole, then I’d say move on or charge a bigger fee.
And now, back to my guitar!
2008-12-16
My RubyFringe presentation is available online at InfoQ:
http://www.infoq.com/presentations/zed-shaw-final-ruby-conference
I kind of forgot how much fun that was, but looking at it
again that was a blast.
One thing I have mixed feelings about is them putting
my content on their website. In one way I don’t mind
the publicity and them posting it. In another way
it seems InfoQ has a problem understanding copyright laws:
“InfoQ.com and all content copyright © 2006-2007 C4Media Inc.”
Good thing it’s almost 2009. Otherwise I might think they
were trying to claim they own the rights to a performance
I created, plus slides I created, at a conference they
didn’t organize.
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.”
Oh man, did that get the geek’s panties in a bunch. Dance? Intelligent
people don’t dance. We listen to classical things like the Waltz, or
the Tango, or …
These last few months I’ve been studying guitar full-time, and have an
idea for a slightly weird music project that needs a good sound
programming language. I was inspired by The Idea Of Absolute Music
to create something that is as completely the inverse of absolute music as
possible. To pull that off, I needed a programming language that was
great for doing sound.
Yes, Your Language Sucks At Sound
ChucK however is good for sound because it
understands the one key element that makes music what it is: rhythm. They
call it “strongly timed” but it’s really just good rhythm. The ability to
say that certain things happen at certain time intervals and to coordinate
many things at once on those intervals.
You see, without rhythm, your ear can’t really tell one string of notes from
another within a melody, and without rhythm harmony sounds “weird”. Sure there’s
some musicians who aren’t slaves to rhythm, but those are special cases and maybe
in 2000 years the general population will enjoy that music. But, as long as humans
like to dance and fuck we’ll need rhythm in our music. Just get over it.
ChucK however gets this, and its concurrency model directly supports it.
Other languages don’t really think about time in their concurrency other
than to say it must be “FAST!”. ChucK allows you to coordinate “shreds”
through use of timing and events in a way that makes things pretty darn
easy to code up cooperating threads (ehem “shreds”) of activity. Their
examples are damn persuasive when it comes to generating and analyzing
sound.
ChucK is so good at this that if you want to take three scripts and make
them run concurrently together, you just do:
chuck script1.ck script2.ck script3.ck
and ChucK will magically run those as their own shreds. It’s pretty fun
to just take a bunch of random noise makers and run them all at once to
see what you get.
About the only that I don’t like about ChucK so far is the bugs and half-done nature of things,
but it is experimental, and so far the code isn’t too bad. I mean it’s not great, but
it’s not Ruby’s C implementation at least.
So I Put A Physics Engine In It
In order to implement my idea, I needed a language like ChucK, but with a Physics
engine. I need to ability to put sounds into a sound scape and then have an
engine move them around, while it adjusted the pitch, gain, and pan of the sound
sources to simulate movement. This isn’t anything new, but what is new is having it
readily available in a language that makes it all so easy.
Here’s the code for my first cut at how it would work
to create an observer that moves away from a sound source. In this code, I setup an
observer, then throw in a wall that makes a noise. Then I have this observer robot
walk up to the beeping wall and away from it. In my hacked up ChucK source tree this
then adjusts the gain with a simple sqrtf(1.0 / distance) formula.
What you’ll notice is this first line:
SinOsc s => Physics c => dac;
That takes a sine wave oscillator, patches it into my Physics engine, and
then that goes out to the dac (digital audio converter). The sounds
played through the SinOsc are then altered by the Physics engine depending
on where the observer is in relation to the first body. The eventual goal
is to be able to wire up as many of these as you like and have their gains
all adjusted concurrently, but right now I got one working.
The result is when you listen this script the beeping comes toward you,
then walks away, then comes back, and reasonably realistically given the
time I spent on it. Since ChucK doesn’t have a lot of documentation on
the internals I had to scrape around to figure out how to do the gain, but
I think the remaining parameters are now within grasp.
What I plan on doing next is changing out the physics engine and
implementing the other necessary features to make this work. I used the
Box2d_Lite source
since it was simple and I could compile it into ChucK’s VM easily. I want
to look at either the full Box2D or Chipmunk Physics instead.
The other thing is I need to find better reference material for how to do
the doppler effect, and relative pan and gain for the sounds.
Otherwise, just the code I have now should work for my little music
project so when I’m done I’ll post it up for people to play with.
2008-12-06
Son of Sam is coming along nicely. It now supports the
following features:
- An entirely Python based email solution. No sendmail, postfix, m4, aliases files, etc.
- But, sendmail and postfix are still way better at huge scale bulk, so it relays to them.
- Uses SQLAlchemy to do real data models for your application.
- Has actual Mako templates for handling replies and constructing emails.
- Uses a routing system to match email addresses and then have handlers process them.
- Has a typical handler processing system where classes do the work, just like in a web app.
- Includes a nice Finite State Machine processing system for conversation management.
- Incredibly small so far given all the stuff it does. Currently at about 500 lines of python.
All of this is working now, in various states of quality, and there’s more to come as I use
SoS to build out a simple mailing list system and maybe a couple other sample applications.
You can see a temporary Pastie with a sample application skeleton
that I describe more fully on the project page for the project.
Email me if you want help getting it going.
2008-11-23
I’m working on a fun application that will use my nifty Son Of Sam email
server. I mentioned it once before months ago, but SoS is a simple
yet very powerful SMTP server written in Python. It basically lets you
write an email application the way you would write a modern web application.
Instead of stupid milter or pipes off of aliases in some weirdo M4 macro
config file, you create actual application code in nicely organized
source files.
How SoS works is it uses the Python asyncore and smtpd libraries to receive
email and process it, then it treats them the same way a web application
framework would: as a request. You then have a set of handlers that process
the message based on routings, and your handlers can then:
- Hook into databases using SQLAlchemy (or anything).
- Modify the message, drop it, SPAM filter it, greylist, etc.
- Forward it on to a relay host.
- Send other emails in response.
- Track complex conversations involving multiple emails.
SoS also uses a simple little Finite State Machine library I wrote to keep
track of what’s going on. Since SMTP doesn’t have the concept of a
a request with data like HTTP does, you need a way to track a conversation
process. Using an FSM, each email received causes steps in the FSM to
transition, so you can process the conversation accurately. SoS does a
simple pickle of the FSM for each handler and you just do your thing
inside that.
What I did this weekend was start a fun little side project (more on that
later) and then I managed to connect it to
web.py and made them share the same SQLAlchemy model.
I then have the email application own the data model, and the web front-end
simply lives off that.
If you wanna play with the code, feel free to check out the Bazaar
repository by doing:
bzr branch http://zedshaw.com/repository/sos
Then you can take a look at the code. Installing it will probably be a pain in
the ass, but email me if you’re interested in trying it. I probably need to
work through a few people doing an install to get the instructions right.
The thing to check out is the sample directory in the source tree. That shows
you how the FSM works and how an application is laid out.
2008-11-21
I love Why The Lucky Stiff™ and his crazy
creative ways. His latest post about me
and how nice The Ruby Community really is gave me chills. The great _why
is actually mentioning me! I mean, sure he’s dissing me without really dissing
me so that he can be an asshole while still being nice, but I got a mention
on his blog!
I remember when I first saw _why play with his Thirsty Cups. That was way
back before he got tired of the Nice Ruby Community becoming too commercial
so he didn’t want to come to RubyConf anymore. I think they had to kidnap him
to get him to perform at that RailsConf too. After that, he told all of his
super Nice Ruby Community friends that he’s going to do Hackety Hack
instead of hang with them. He even made his own special version of the
Ruby interpreter to make Shoes work.
It was a sad day for me, because really the only reason I hung out in Ruby
was because of _why. Mr. Why actually blessed me with his presence during
one of my hacking sessions and made me feel smarter by association. I
showed him Ragel (which he used to write Hpricot), and showed him some vim
tricks, and he talked to Obie. It was great just having him warming the
air near me.
In contrast to _why, other Nice Ruby People didn’t seem so nice. Austin
Ziegler once called me an asshole to my face in front of a bunch of people.
Ryan Davis said I act like a pussy online, and then tried to threaten me
physically on a cold New York street. Ara T. Howard spent a lot of time
telling people I didn’t know shit about systems (when I found the memory
leak he thought was part of the system). Dave Thomas actually
devoted an entire 20 seconds of his key note just to insult my work on
Mongrel. Kevin Clark repeatedly called me names without anyone saying anything
to him, because “fuck you FUCK YOU” is obviously nice.
But _why was nice all around. I mean sure, there was that spat with
Hpricot and Nokogiri over who had the fastest HTML parser on the planet.
And sure he just wrote a weirdly passive aggressive blog post mentioning me
that tells people not to feed the trolls (which oddly feeds the trolls).
And he insulted a heartfelt blog post I wrote to get
people to find help when they’re in trouble by going to a church. And yeah
I never said one bad thing about him (because honestly, I really do want
to be him when I grow up).
Other than all that he’s the real Jesus in this. The true saint. The one
to get the Nice Ruby People back on track to taking that wonderfully stable
Ruby interpreter his friend Matz wrote to the edges of all that is possible
in computing. Well, probably just the edges of what hundreds of thousands
of lines of C pre-processor code can do, but that’s still pretty far in
most circles.
If it weren’t for guys like _why holding down the real Nice Ruby Community
spirit, I don’t know where they’d be. I mean _why’s work is so successful
without being commercial, and yet is so similar to so many commercial
applications that other people have written already. People read his code
to find out all the great meta programming tricks they need to make their
software wonderfully readable. His book on Ruby is a classic training tool
that makes excellent Meta Programmers out of everyone.
The Truth About Trolls
You mean, people couldn’t figure out I was a fucking troll? How fucking
stupid do you have to be when my fucking blog is called “Zed’s So Fucking
Awesome”? It was entirely my intention that dickwads in the Ruby Old Guard
would would leave me the fuck alone. Either because of fear that I had
dirt on them, or fear that I could influence people with my writing.
Seriously, go back and look at all the times I’ve taken the Ruby Old Guard
to task for something stupid. You notice a trend? I don’t strike first.
Every time I say something about them, it’s in response to something stupid
they’ve written that’s just too juicy to not destroy. With a community
so hypocritical it’s just so easy to tear them apart when they make stupid
claims.
Take DHH’s Rails Myth #2
as the perfect example of how to be a passive aggressive asswipe. If you
have half a brain, you’ll read that post and see all the underhanded insults
and insinuations about my mental health masked with an air of concern. DHH
even emailed me claiming this little myth was written in the nicest possible
way.
If DHH were an actually positive nice person, he would have written this one
myth very differently. Instead of focusing on the past and on me, he would
have just said two things:
- In the past, Rails crashed, that is true. I should have been honest with everyone.
- Now, however, thanks to the work of many people, Rails does not crash, and we’re constantly
working to keep it that way.
That’s all you have to write. No mentioning of mental states, no invoking
the Troll. Just admit your fault, and talk about how things are different.
But, doing that would mean that DHH and rails core would have to admit that
they hoodwinked everyone. When I talk about the 400 restarts/day admission,
I am not talking about the stability of Ruby now, I’m talking about
how DHH lied to everyone about Ruby’s stability then.
Again, nice people don’t fucking lie to millions of people who believe in
them.
The truth about trolls is that many times, they are just pointing out what the
community doesn’t want to see. When the dust settles, and most people have
left for something else, they can always look back and see large kernels of
truth in what the trolls said. I’ve seen it with C, C++, Java, and now Ruby.
Which is sad, because ignoring the trolls is really what kills a community
off.
2008-11-13
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.
2008-11-11
I’m quickly coming to the end of my first semester in music school
and am considering taking a consulting gig for the two month
break we have. Not really sure what’s available these days, as
I actually haven’t touched a computer for the entire semester.
First off, I learned a ton so far and have improved my technique so
much, but I’m still way behind in what I need to know for the next
semester. I’ll be spending any spare time I have studying guitar,
piano, and voice so I can roll into the next semester ready to go.
That means at least 3 hours a week of private lessons and about
four hours a day of practice, which isn’t hard. These days I
get up at 6am to practice anyway so I’ll just continue that.
Now I have a choice: I can continue living poor for the next
two months and just do nothing but music, or I can try to get
a job to make the rest of the year easier.
In order to figure out this dilemma, I’m curious if anyone
has offers for a two month gig. If there’s something good
then I’ll do a job. If not, then I’ll continue to study.
If you have a job you think I might find interesting, then
contact me. If you have a job that’s totally mindless and
pays alright with flexible hours, then definitely contact me.
Here’s to being a starving artist!
2008-10-30
In this world there are these weird little dickheads who
think that they have some kind of magical powers manipulating others
to do their bidding. They spend their days making people around them
dance like marionettes in a sick little play that only they find
funny. The sad truth about manipulators is their machinations are only
powerful and effective in their own mind.
If you read my previous blog post about Matthew Kaufman
it may have sounded like Matt was in trouble. He was threatened and
thrown out of his apartment by some big evil bad man. Matt promptly
disappeared and potentially could have been hurt. He was a ghost who
simply left a bizarre panic ridden voice mail for me.
At the time I debated even doing anything. This Matt character could
need help, or he could just be a manipulator trying to use me
as some kind of blunt weapon against his enemy. This is why I took
my time trying to help the guy. I had the feeling he was playing
a game, but after debating it and gathering the evidence I decided
to try and help.
You see, if I did nothing, there was a chance that Matthew could
have been dead. If he had died and I could have helped him then
I would have hated myself.
Today however, someone who read my blog post finally got access
to his twitter feeds and sent me this tweet from him:
All that we need to make us happy is
something to be enthusiastic about. :)! (today)
That means he’s alive, probably doing well, and is now on my fucking
shit list.
I’m more than willing to help out a total stranger who needs my help,
so long as it doesn’t involve me handing them money or risking my life.
Hell, I’ve stopped fights between random people many times, putting
my self at risk. I’ve pulled battered women out of abusive relationships.
Helped kids who were being beaten by bullies. I got no problem stepping
up and protecting the weaker ones in our world.
When someone takes advantage of this by trying to manipulate me they
are seriously fucking with the wrong guy. Here’s a tweet from Matt
on the 25th:
yes, zed shaw, …
EVIDENCE AND OBSERVATION … not 20 year
old defined logic and reason
12:35 PM Oct 25th
That’s when this dick fucker gave me the call. His crazy ass probably
read some fucking essay of mine and concocted this wild pussy ass passive
aggressive scheme to get back at his arch nemesis Michael. Matt
probably sat in a big chair with a high back and black leather
stroking his feminine fucking fingers together saying, “Yes, yes,
dance my minions. Dance!”
I knew there was a good chance he was fucking with me, but I had
no way to find out unless someone who knew him had evidence he was
alright. A good long series of fairly happy tweets over the last
few days says he’s doing just fine.
He doesn’t need my help at all, what he needs is a severe ass
kicking.
Which brings me to my favorite thing about manipulators:
All passive aggressive manipulators are pussies.
Anytime you meet that guy who thinks he’s some fucking criminal
mastermind who manipulates you into doing his bidding, just remember
that. One good punch in the fucking nose and he’ll realize that
he actually doesn’t have control over anyone.
In Matt’s case, I better find an apology in my fucking email queue or a
very nice voice mail. It is seriously uncool to make people think
you are hurt when you are not.
And, I’m still not the A-Team.
More Reasons Why Reddit Blows
If you just take this story on Hacker News
vs the same On Reddit
you’ll start to realize why Reddit is a total joke. I don’t even bother
reading Reddit, and usually just wait until a friend sends me a link to
something stupid redditors are saying. In this case, you can clearly see
that the folks who participate in Hacker News are worth listening to:
I hope this has a happy ending. — qwph
The majority of the comments are well thought out, longer than just a
single sentence, and either debate the topic or try to help.
Meanwhile, we have the whore’s cunt known as reddit:
Zed’s dead, baby. — Canadian_Infidel
The majority of the comments are one-liners with stupid fucking jokes
about the A-Team and me being the Z-Team. Oh, hahahahaha, such comic
fucking genius. No, they don’t even try to mask their collective
stupidity and instead just skip right over the fact that someone needed to
be found and into unoriginal middle school quality gag humor.
I’ve said it before, but all those morons do is provide entertainment
for the smarter people in the room. Their stupid one-liner “commentary”
is not a part of the conversation. It’s not social media. All it
amounts to is the maximum their dipshit little ADD infested brains
can handle in focus.
Their one-line comments are insignificant when compared
with the real conversation happening amongst the one-percenters out there.
BTW, reddit-whores, in NYC if you call 311 to ask for anything related
to the police they transfer you to 911. 911 is basically the NYPD’s
main contact, and is designed to take insane amounts of calls and route
them fast and efficient. Unlike your podunk little shit-hole town
where the whole emergency system can be knocked out by two crank callers
and a homeless guy pissing on the building.
Old Posts