What I’m going to do is satire. And I’m going to teach you how to run your open source project in a fascist style. So friends, Ruby programmers, listen up. I discovered a revolution, a revolution in marketing open source. A revolution in marketing social media marketing. A revolution in promotion better than guy-liner. A revolution in you. It will change your life. It will change everyone’s life. The revolutionary technique is fascist propaganda. That’s right, fascism. 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 fascism based on what they did and what they said. And this opened my eyes to how useful fascism is for promoting shitty technologies.
For fascism to work, you need three obsessions. You need community, convincing them they are one. They have to be obsessed with community. They have to walk around and say things like, “That would be bad for the community. You should do that, that’s awful for the community.”
They then need to have some sort of humiliating element to draw everyone to this new community. It exploits insecurity and trust for their motivation.
And then you have to create an enemy, turning their fear into common action. We all know that everyone in Rails is really fond of making enemies out of things. By doing this you create two benefits. Unity, for expelling impure members; rival web frameworks, things like that. And profit, for gaining money and power beyond your wildest dreams.
So I came up with an acronym, because programmers really love acronyms. CHE-UP: Community, Humiliation, Enemy, Unity, Profit. The CHE side is your external face to the world. It binds your followers together like eggs in pancakes. The three obsessions interact to create idiotic fervor. Their brains turn off and they repeat your catchphrases, like “stabbed in the back” in Nazi Germany. Or “convention over configurations.” Or “events over threads.” Or “citizen journalists” at The Huffington Post.
Let me read an awesome quote for you.
The fascist leader wanted to bring his people into…the warmth of belonging to a race now fully aware of its identity, historic destiny, and power; the excitement of participating in a vast collective enterprise; the gratification of submerging oneself in a wave of shared feelings, and of sacrificing one’s petty concerns for the group’s good; and the thrill of domination.
Robert O. Paxton, The Anatomy of Fascism
Sound familiar?
The essential promise that you have to give is some imaginary upside. You don’t want the real one, because the real upside is for you. But something like, “Hey, if you help you’ll be famous.” Or, “You’ll make tons of money in my community.” Even better if it preys on some irrational fear like xenophobia or racism. And even more better if the promise is implied.
Early fascist movements flaunted their contempt for bourgeois values and for those who wanted only “to earn money, money, filthy money.” They attacked “international finance capitalism” almost as loudly as they attacked socialists. They even promised to expropriate department-store owners in favor of patriotic artisans, and large landowners in favor of peasants.
Robert O. Paxton, The Anatomy of Fascism
So remember, there’s what they said and what they actually did.
But this is what they actually did, the upside. Once bound together, you can utilize their irrational fervor and create a desperate unity of purpose to craft a beautiful Ponzi scheme to gain you profits and power.
Once in power, fascist regimes banned strikes, dissolved independent labor unions, lowered wage earner’s purchasing power, and showered money on armaments industries, to the immense satisfaction of employers.
Robert O. Paxton, The Anatomy of Fascism
The real upside: cash.
Once you have your obsessed followers, you can screw them over with backroom deals, Ponzi schemes, power grabs, manipulating public opinion, and most importantly: free work from suckers.
Next, I will demonstrate this revolutionary new propaganda technique in the real world. I’ll start with my own Freehackers Union, as a failure. Freehackers Union didn’t go anywhere. Does anyone remember the Freehackers Union? Oh, like five of you. Good, that’s probably why [inaudible].
So, I said, “We are a community of hackers. We have been humiliated for years by business [douches]. We must create a club that excludes the business douchebags. Unity; working as one we can fight them and take back control!” Yeah, so that didn’t really work, because we were all decentralized and sort of this anarchist group. And there really wasn’t a profit. So there’s no upside, so why would anyone want to join this? Don’t follow my lead. Fail.
Let’s try GNU. Community: we are a community of programmers releasing source code. Corporations with closed source have humiliated us for years! We must create Free Software to fight our capitalist enemies. Eventually fragmented by the open source community, so…they didn’t get as big as they could’ve. And they were actively against profit. So again, fail.
So don’t follow these in your project.
Instead, let’s look at something that’s not an open source project but sort of an open source project. By the way, I am not a Republican. When I criticize The Huffington Post for being a bunch of backstabbing, back room-dealing assholes, everyone thinks I’m a Republican. I’m not.
“We are a community of citizen journalists. We have been humiliated by Fox News and conservatives for years! We must fight against the mainstream media with grassroots journalism.” This convinced thousands of people to write for free. And The Huffington Post sold to AOL-Time Warner, a conservative news company.
I received this email from Ry Dahl on September 8th. “Hey, I heard about your podcast…” He wanted 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 buying his stuff and funding it? [Which was] funny, because when I was at their office and I went down there and talked to them, there were all these guys working on it and Joyent was funding the hell out of it. So why are they saying they’re funding it in November?
Let me give you guys a little calendar lesson. So, September I see Ry with a full team and tons of money being spent. October… November, Joyent claims they created the team. Why? Well, obviously there’s some kind of upside.
So let’s look at Node.js. “We are a community of JavaScript web developers. Threads have been humiliating us for years! We must use events to fight threads and make network programming easier!” Unity: this convinced thousands of programmers to work for Joyent for free, and accept a change to the contributor license agreement so they could relicense Node and make deals with Dell and Intel, and all sorts of other companies. And they were funding it for months and months and months before anyone showed up, making it look like Ry was a way better programmer than he actually is. The profit is Joyent will be the only company to really make money on Node.
Anyone remember this? When Linux was going to destroy Windows? This is from a mouse pad that someone I work with actually still owns. It’s ten years old. He keeps it clean and everything.
So let’s look at Linux. “We are a community of unix kernel hackers. Microsoft has been humiliating us for years! We must rise up against Redmond and destroy them with Tux!” This convinced thousands to craft software for Linux. And all the Linux companies made all this money.
How about Java? “We are a community of former C++ programmers. C++ has been humiliating us for years with its lack of garbage collection! We must defeat C++ and any companies that use it. Join the Java Community Process and be free.” …convincing billions of dollars in free development supporting corporations, while Sun Microsystems controlled the JCP behind the scenes for its partners.
Does anyone remember the JCP? Yeah. Fun, right?
Now, let’s go to Ruby on Rails. “We are a community of web developers.” In 2004, “Java has been humiliating us for years.” In 2005, “Angle brackets has been humiliating us for years.” In 2006, “Enterprisey has been humiliating us for years. Fuck you!” 2009, “WS-Death Star has been humiliating us for years.” And in 2011…I am your new enemy. “We must come together to defeat the evil [Java, XML, Enterprise, SOAP, Zed Shaw].” Puppies, small dogs, large dogs, whatever else he’s going to come up with.
Yes, people. I have become so powerful that I am the foil for an entire community of people. By the way, I thought he did awesome slides. This is just lame. I mean, that’s like a big X. Do it with a super awesome design X. Oh, and everybody: keep showing this picture. This picture has got me laid like crazy. I mean, I’m in Pisa, Italy playing a left-handed guitar upside down, looking like I know what I’m doing. That works.
This created a unity of thousands of programmers who wrote software for 37Signals. They can run a multi-million dollar business with only a handful of people because of this. Other companies actually have to pay people to get that.
So you must watch out for your enemies. It’s important that you know that enemies will stop you. Everyone basically knows fascism when they see it. Godwin’s Law demonstrates that. Eventually, as you discuss something, and all your rabid fans pile on one person and call him an idiot— Because you’re afraid of humiliation, you’re obsessed with humiliation. And whenever a troll says something you’ve got to shut him down, otherwise you’re going to get humiliated. But they can’t define it. Now that I’ve defined it via CHE-UP, you must be on guard. Choose your enemies wisely, for they will know what you’re up to.
The best enemy is no enemy. Just don’t have one. Communism did this great with capitalism. It’s going to take forever to kill capitalism. And even after they did, they could just call someone secretly a capitalist. Node.js is doing a great job of this with threads. We must applaud Node.js for their wonderful choice of enemies. Everybody [claps]. Great choice, right? They’re never going to get rid of threads. Because you need them.
Not like Java, XML, WS-Death-Star, Enterprisey, or me. Those are things you eventually kill off and you have to move on to the next one. For example socialists, trade unionists, communists, gypsies, and Jews. See, eventually you still have to pick your next one over and over again. And then you run out. It runs out of steam. Those enemies suck because you can destroy them. Then you need a new one.
The biggest risk to your fledgling regime is the truth. It’s the truth. The CHE side can’t know about the UP side. If the CHE side of your little operation knows about the UP side, and they know about your backroom deals, or they figure out the Ponzi scheme, and they see that you’re secretly making money (for example why are you funding a bunch of programmers to hack with one guy but claim the one guy works on it) then they’ll leave or revolt.
Here’s an example of what can happen to your regime if you’re not paying attention. See the red line? See the big drop in the blue line? Someday they might write one blog post that’s weird and sorta odd but really funny, and it can completely trash your entire operation. Because they just don’t like you.
Now, how on Earth will you stop the enemies of your revolution? Why, with believable lies, disinformation, and more propaganda! You have to say they’re paranoid. Because nobody will believe you’re using this pattern; that’s just crazy. You have to call them conspiracy theorists. Mention tinfoil hats as much as possible. You have to question their moral character. Maybe spread rumors about their sexuality, religion, anything really. Anything to keep them distracted 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 problem, my friends. I wrote a very nice book. I wanted kids, anyone, to learn how to code. I wrote a great book. And I kept running into programmers who thought they could do it better. And they had bizarre ideas. So I said you can’t modify it but you can distribute it for free.
And the first thing that some guy does with Ruby, on Rails, at Engine Yard, is he decides for whatever reason he’s going to rip out all the Python and put Ruby in it. This shows a complete lack of understanding of the student. It doesn’t matter what language students use.
But then, he decided to throw a big fit when I told him to have some class and quit giving my book out with Ruby in it. The reason why I got mad was because people were coming and asking me, “Why don’t you finish this book on Ruby?” I wasn’t doing a book on Ruby. What the fuck are you talking about?
So, this is the problem. The gist of the whole issue is that everyone in the industry thinks of this. This summarizes Ruby on Rails. But this is not Ruby. Would everyone agree with me that this does not represent Ruby? So let’s see if we can fix that.
Let’s start a community of true Ruby programmers. We have been humiliated for years by Ruby on Rails. We must destroy the enemy of Rails, before it destroys us! We can be unified against the Rails douchebags who make us look bad. We will profit when Ruby is free of Rails and respected once again.
Did it work?
Thanks for listening.
Further Reference
MountainWest RubyConf 2011 home page