What I’m going to do is satire. And I’m going to teach you how to run your open source project in a fas­cist style. So friends, Ruby pro­gram­mers, lis­ten up. I dis­cov­ered a rev­o­lu­tion, a rev­o­lu­tion in mar­ket­ing open source. A rev­o­lu­tion in mar­ket­ing social media mar­ket­ing. A rev­o­lu­tion in pro­mo­tion bet­ter than guy-liner. A rev­o­lu­tion in you. It will change your life. It will change every­one’s life. The rev­o­lu­tion­ary tech­nique is fas­cist pro­pa­gan­da. That’s right, fas­cism. How’s that, you ask? Sit back and I’ll show you how.

I read this book, Robert Paxton’s The Anatomy of Fascism. I read many books but this was the best one. And it describes fas­cism based on what they did and what they said. And this opened my eyes to how use­ful fas­cism is for pro­mot­ing shit­ty technologies.

For fas­cism to work, you need three obses­sions. You need com­mu­ni­ty, con­vinc­ing them they are one. They have to be obsessed with com­mu­ni­ty. They have to walk around and say things like, That would be bad for the com­mu­ni­ty. You should do that, that’s awful for the community.” 

They then need to have some sort of humil­i­at­ing ele­ment to draw every­one to this new com­mu­ni­ty. It exploits inse­cu­ri­ty and trust for their motivation. 

And then you have to cre­ate an ene­my, turn­ing their fear into com­mon action. We all know that every­one in Rails is real­ly fond of mak­ing ene­mies out of things. By doing this you cre­ate two ben­e­fits. Unity, for expelling impure mem­bers; rival web frame­works, things like that. And prof­it, for gain­ing mon­ey and pow­er beyond your wildest dreams. 

So I came up with an acronym, because pro­gram­mers real­ly love acronyms. CHE-UP: Community, Humiliation, Enemy, Unity, Profit. The CHE side is your exter­nal face to the world. It binds your fol­low­ers togeth­er like eggs in pan­cakes. The three obses­sions inter­act to cre­ate idi­ot­ic fer­vor. Their brains turn off and they repeat your catch­phras­es, like stabbed in the back” in Nazi Germany. Or con­ven­tion over con­fig­u­ra­tions.” Or events over threads.” Or cit­i­zen jour­nal­ists” at The Huffington Post.

Let me read an awe­some quote for you.

The fas­cist leader want­ed to bring his peo­ple into…the warmth of belong­ing to a race now ful­ly aware of its iden­ti­ty, his­toric des­tiny, and pow­er; the excite­ment of par­tic­i­pat­ing in a vast col­lec­tive enter­prise; the grat­i­fi­ca­tion of sub­merg­ing one­self in a wave of shared feel­ings, and of sac­ri­fic­ing one’s pet­ty con­cerns for the group’s good; and the thrill of domination.
Robert O. Paxton, The Anatomy of Fascism

Sound famil­iar?

The essen­tial promise that you have to give is some imag­i­nary upside. You don’t want the real one, because the real upside is for you. But some­thing like, Hey, if you help you’ll be famous.” Or, You’ll make tons of mon­ey in my com­mu­ni­ty.” Even bet­ter if it preys on some irra­tional fear like xeno­pho­bia or racism. And even more bet­ter if the promise is implied.

Early fas­cist move­ments flaunt­ed their con­tempt for bour­geois val­ues and for those who want­ed only to earn mon­ey, mon­ey, filthy mon­ey.” They attacked inter­na­tion­al finance cap­i­tal­ism” almost as loud­ly as they attacked social­ists. They even promised to expro­pri­ate department-store own­ers in favor of patri­ot­ic arti­sans, and large landown­ers in favor of peasants.
Robert O. Paxton, The Anatomy of Fascism

So remem­ber, there’s what they said and what they actu­al­ly did.

But this is what they actu­al­ly did, the upside. Once bound togeth­er, you can uti­lize their irra­tional fer­vor and cre­ate a des­per­ate uni­ty of pur­pose to craft a beau­ti­ful Ponzi scheme to gain you prof­its and power.

Once in pow­er, fas­cist regimes banned strikes, dis­solved inde­pen­dent labor unions, low­ered wage earn­er’s pur­chas­ing pow­er, and show­ered mon­ey on arma­ments indus­tries, to the immense sat­is­fac­tion of employers.
Robert O. Paxton, The Anatomy of Fascism

The real upside: cash.

Once you have your obsessed fol­low­ers, you can screw them over with back­room deals, Ponzi schemes, pow­er grabs, manip­u­lat­ing pub­lic opin­ion, and most impor­tant­ly: free work from suckers.

Next, I will demon­strate this rev­o­lu­tion­ary new pro­pa­gan­da tech­nique in the real world. I’ll start with my own Freehackers Union, as a fail­ure. Freehackers Union did­n’t go any­where. Does any­one remem­ber the Freehackers Union? Oh, like five of you. Good, that’s prob­a­bly why [inaudi­ble].

So, I said, We are a com­mu­ni­ty of hack­ers. We have been humil­i­at­ed for years by busi­ness [douch­es]. We must cre­ate a club that excludes the busi­ness douchebags. Unity; work­ing as one we can fight them and take back con­trol!” Yeah, so that did­n’t real­ly work, because we were all decen­tral­ized and sort of this anar­chist group. And there real­ly was­n’t a prof­it. So there’s no upside, so why would any­one want to join this? Don’t fol­low my lead. Fail.

Let’s try GNU. Community: we are a com­mu­ni­ty of pro­gram­mers releas­ing source code. Corporations with closed source have humil­i­at­ed us for years! We must cre­ate Free Software to fight our cap­i­tal­ist ene­mies. Eventually frag­ment­ed by the open source com­mu­ni­ty, so…they did­n’t get as big as they could’ve. And they were active­ly against prof­it. So again, fail.

So don’t fol­low these in your project.

Instead, let’s look at some­thing that’s not an open source project but sort of an open source project. By the way, I am not a Republican. When I crit­i­cize The Huffington Post for being a bunch of back­stab­bing, back room-dealing ass­holes, every­one thinks I’m a Republican. I’m not.

We are a com­mu­ni­ty of cit­i­zen jour­nal­ists. We have been humil­i­at­ed by Fox News and con­ser­v­a­tives for years! We must fight against the main­stream media with grass­roots jour­nal­ism.” This con­vinced thou­sands of peo­ple to write for free. And The Huffington Post sold to AOL-Time Warner, a con­ser­v­a­tive news company.

I received this email from Ry Dahl on September 8th. Hey, I heard about your pod­cast…” He want­ed to put zeromq in Node. I’m like…huh, that’s a lot like what I’m doing with Mongrel2. Odd.

Then, on November 9th, he announced that Joyent was buy­ing his stuff and fund­ing it? [Which was] fun­ny, because when I was at their office and I went down there and talked to them, there were all these guys work­ing on it and Joyent was fund­ing the hell out of it. So why are they say­ing they’re fund­ing it in November?

Let me give you guys a lit­tle cal­en­dar les­son. So, September I see Ry with a full team and tons of mon­ey being spent. October… November, Joyent claims they cre­at­ed the team. Why? Well, obvi­ous­ly there’s some kind of upside.

So let’s look at Node.js. We are a com­mu­ni­ty of JavaScript web devel­op­ers. Threads have been humil­i­at­ing us for years! We must use events to fight threads and make net­work pro­gram­ming eas­i­er!” Unity: this con­vinced thou­sands of pro­gram­mers to work for Joyent for free, and accept a change to the con­trib­u­tor license agree­ment so they could reli­cense Node and make deals with Dell and Intel, and all sorts of oth­er com­pa­nies. And they were fund­ing it for months and months and months before any­one showed up, mak­ing it look like Ry was a way bet­ter pro­gram­mer than he actu­al­ly is. The prof­it is Joyent will be the only com­pa­ny to real­ly make mon­ey on Node.

Anyone remem­ber this? When Linux was going to destroy Windows? This is from a mouse pad that some­one I work with actu­al­ly still owns. It’s ten years old. He keeps it clean and everything.

So let’s look at Linux. We are a com­mu­ni­ty of unix ker­nel hack­ers. Microsoft has been humil­i­at­ing us for years! We must rise up against Redmond and destroy them with Tux!” This con­vinced thou­sands to craft soft­ware for Linux. And all the Linux com­pa­nies made all this money.

How about Java? We are a com­mu­ni­ty of for­mer C++ pro­gram­mers. C++ has been humil­i­at­ing us for years with its lack of garbage col­lec­tion! We must defeat C++ and any com­pa­nies that use it. Join the Java Community Process and be free.” …con­vinc­ing bil­lions of dol­lars in free devel­op­ment sup­port­ing cor­po­ra­tions, while Sun Microsystems con­trolled the JCP behind the scenes for its partners.

Does any­one remem­ber the JCP? Yeah. Fun, right?

Now, let’s go to Ruby on Rails. We are a com­mu­ni­ty of web devel­op­ers.” In 2004, Java has been humil­i­at­ing us for years.” In 2005, Angle brack­ets has been humil­i­at­ing us for years.” In 2006, Enterprisey has been humil­i­at­ing us for years. Fuck you!2009, WS-Death Star has been humil­i­at­ing us for years.” And in 2011I am your new ene­my. We must come togeth­er to defeat the evil [Java, XML, Enterprise, SOAP, Zed Shaw].” Puppies, small dogs, large dogs, what­ev­er else he’s going to come up with.

Yes, peo­ple. I have become so pow­er­ful that I am the foil for an entire com­mu­ni­ty of peo­ple. By the way, I thought he did awe­some slides. This is just lame. I mean, that’s like a big X. Do it with a super awe­some design X. Oh, and every­body: keep show­ing this pic­ture. This pic­ture has got me laid like crazy. I mean, I’m in Pisa, Italy play­ing a left-handed gui­tar upside down, look­ing like I know what I’m doing. That works.

This cre­at­ed a uni­ty of thou­sands of pro­gram­mers who wrote soft­ware for 37Signals. They can run a multi-million dol­lar busi­ness with only a hand­ful of peo­ple because of this. Other com­pa­nies actu­al­ly have to pay peo­ple to get that.

So you must watch out for your ene­mies. It’s impor­tant that you know that ene­mies will stop you. Everyone basi­cal­ly knows fas­cism when they see it. Godwin’s Law demon­strates that. Eventually, as you dis­cuss some­thing, and all your rabid fans pile on one per­son and call him an idiot— Because you’re afraid of humil­i­a­tion, you’re obsessed with humil­i­a­tion. And when­ev­er a troll says some­thing you’ve got to shut him down, oth­er­wise you’re going to get humil­i­at­ed. But they can’t define it. Now that I’ve defined it via CHE-UP, you must be on guard. Choose your ene­mies wise­ly, for they will know what you’re up to.

The best ene­my is no ene­my. Just don’t have one. Communism did this great with cap­i­tal­ism. It’s going to take for­ev­er to kill cap­i­tal­ism. And even after they did, they could just call some­one secret­ly a cap­i­tal­ist. Node.js is doing a great job of this with threads. We must applaud Node.js for their won­der­ful choice of ene­mies. Everybody [claps]. Great choice, right? They’re nev­er going to get rid of threads. Because you need them.

Not like Java, XML, WS-Death-Star, Enterprisey, or me. Those are things you even­tu­al­ly kill off and you have to move on to the next one. For exam­ple social­ists, trade union­ists, com­mu­nists, gyp­sies, and Jews. See, even­tu­al­ly you still have to pick your next one over and over again. And then you run out. It runs out of steam. Those ene­mies suck because you can destroy them. Then you need a new one.

The biggest risk to your fledg­ling regime is the truth. It’s the truth. The CHE side can’t know about the UP side. If the CHE side of your lit­tle oper­a­tion knows about the UP side, and they know about your back­room deals, or they fig­ure out the Ponzi scheme, and they see that you’re secret­ly mak­ing mon­ey (for exam­ple why are you fund­ing a bunch of pro­gram­mers to hack with one guy but claim the one guy works on it) then they’ll leave or revolt.

Here’s an exam­ple of what can hap­pen to your regime if you’re not pay­ing atten­tion. See the red line? See the big drop in the blue line? Someday they might write one blog post that’s weird and sor­ta odd but real­ly fun­ny, and it can com­plete­ly trash your entire oper­a­tion. Because they just don’t like you.

Now, how on Earth will you stop the ene­mies of your rev­o­lu­tion? Why, with believ­able lies, dis­in­for­ma­tion, and more pro­pa­gan­da! You have to say they’re para­noid. Because nobody will believe you’re using this pat­tern; that’s just crazy. You have to call them con­spir­a­cy the­o­rists. Mention tin­foil hats as much as pos­si­ble. You have to ques­tion their moral char­ac­ter. Maybe spread rumors about their sex­u­al­i­ty, reli­gion, any­thing real­ly. Anything to keep them dis­tract­ed from the truth that you’re just doing it to get free work out of a bunch of suckers.

Now, let’s apply what we’ve done here. I always liked Ruby. I believe it will be destroyed by Ruby on Rails. Projects like Puppet and Chef are the keys to Ruby’s future. Let’s apply what we’ve learned, and see if this works.

This is the is the prob­lem, my friends. I wrote a very nice book. I want­ed kids, any­one, to learn how to code. I wrote a great book. And I kept run­ning into pro­gram­mers who thought they could do it bet­ter. And they had bizarre ideas. So I said you can’t mod­i­fy it but you can dis­trib­ute it for free.

And the first thing that some guy does with Ruby, on Rails, at Engine Yard, is he decides for what­ev­er rea­son he’s going to rip out all the Python and put Ruby in it. This shows a com­plete lack of under­stand­ing of the stu­dent. It does­n’t mat­ter what lan­guage stu­dents use. 

But then, he decid­ed to throw a big fit when I told him to have some class and quit giv­ing my book out with Ruby in it. The rea­son why I got mad was because peo­ple were com­ing and ask­ing me, Why don’t you fin­ish this book on Ruby?” I was­n’t doing a book on Ruby. What the fuck are you talk­ing about?

So, this is the prob­lem. The gist of the whole issue is that every­one in the indus­try thinks of this. This sum­ma­rizes Ruby on Rails. But this is not Ruby. Would every­one agree with me that this does not rep­re­sent Ruby? So let’s see if we can fix that.

Let’s start a com­mu­ni­ty of true Ruby pro­gram­mers. We have been humil­i­at­ed for years by Ruby on Rails. We must destroy the ene­my of Rails, before it destroys us! We can be uni­fied against the Rails douchebags who make us look bad. We will prof­it when Ruby is free of Rails and respect­ed once again.

Did it work?

Thanks for listening.

Further Reference

MountainWest RubyConf 2011 home page