Why I Do Not Support a Node Foundation

I’ve been aware of the node foundation plans for a while. I have been part of the initial discussion group with Joyent back in May, was part of the node technical advisory board (for a bit), and had extensive discussions about this with pretty much every major players in the community. I have opted to keep my opinions offline until now because I didn’t want my (strongly held) positions to become the “opposition” and add more friction to what was already a pretty messy process. But now that the decisions have been made by both the io.js folks (to fork) and Joyent (to form a foundation), I am free to rant publicly.

For the sake of full disclosure, I am generally opposed to any foundation.

This comes from extensive first-hand experience with participating and forming similar foundations. I was an active participant of the early OpenID Foundation, I represented Yahoo in the formation of the OpenSocial foundation and wrote the intellectual property and working group process documents, I was a founding member and first president of the Open Web Foundation, and I had extensive engagement with the W3C organization. These experiences taught me that foundations are an unnecessary evil.

My main problem with foundations is that as soon as money is involved, the organization takes on a life of its own, and the mechanism will do anything to sustain itself. The first words out of IBM’s Todd Moore’s mouth about the foundation was that the next step is going to be to hire an executive director. I don’t know if Mr. Moore was expressing the position of the foundation or his own agenda but this is exactly the kind of misguided attitude that dooms such efforts.

Consider this – once you hire people to work for the foundation, these people’s livelihood depends on the foundation’s financial stability. This means they spend a significant amount of time raising funds and ensuring their paying members are happy and getting value out of it. No matter how much you try to balance the needs of the community the foundation was allegedly created to serve, it inevitably becomes a voice for its moneybags.

This is not to say all foundations are evil or unnecessary.

There are many examples of foundations that add value and support their communities effectively. The important distinction is what triggers the creation of the foundation and who are the main players behind it. In the node foundation case, the triggers were lack of technical progress on node and some concerns about ownership of the node trademarks. Both of these issues could have been quickly resolved without a foundation.

The great thing about the io.js effort is that it grew out of strong frustration with specific shortcomings in the Joyent process. Namely, the governance model, the lack of code of conduct, the sharp drop in contributions, and a release process that was predictable in its unpredictability. These concerns triggered the initial discussions about a foundation but when it came time to actually address them, the io.js community realized that all they needed to do was to simply focus on fixing things. They didn’t set a foundation, raised money, or registered marks. They simply created the work space needed to get shit done.

On the trademark side, Joyent has long claimed that their work to protect the node marks provided an important service to the community and to node. I disagree. I think trademarks should only be used to protect business interests, not to put someone in a benevolent position to decide what’s in the best interest of a community, especially one as diverse as node. I don’t think a node trademark adds any value. What exactly do we need protection from?

(As an aside, I’d like to point out that my disagreement with Joyent on the trademark policy and foundation plans does not take away from my gratitude and appreciation for everything they have done for node and the huge impact their support had on its success so far).

Node is a subset of the JavaScript community which is flourishing without any active trademark protection. Can you imagine what would have happened to the language and innovation (especially the recent work) if the Oracle corporation who owns the mark for JavaScript dictated to people what is a certified version of the language? I think there is value in someone registering important marks (and then not defending them) only so no one else can do it for evil purposes. Joyent owning the marks and not protecting them would be the ideal. While Oracle owns the JavaScript mark, I cannot find any record of that mark being used or enforced.

Now, I can understand why IBM, a company who never turned down an opportunity to exploit and make a buck wants a foundation. It’s how they manage their relationships with communities to promote their business agenda. I am not calling them evil – just that as a large corporation with a lot of history, I am confident their best interest is not aligned with mine. I would like to note that I am no hater of corporations – I’ve happily worked for Citi, Yahoo, and Walmart to name a few.

What I cannot understand is why the community should want a foundation. What will a foundation provide that we are not already doing a fantastic job at? I am hearing foundation supporters talk about events, sponsorship, marketing, and training. Sounds like a lot of people excited about potential funds flowing their way.

Node and JavaScript events are doing amazing with nothing but grassroots efforts all around the world. Companies are eager to sponsor node development by hiring full and part time developers to work on node and io.js. Node is one of the fastest growing technologies without anyone hiring an ad agency or paying for marketing. And between the free node schools effort and the paid offering of many node companies, along with a growing selection of books, training is well taken care of.

When my employer was approached to be a founding member of the foundation, I recommended they pass on the grounds that it adds no value to them. Walmart already employs two node core developers, along with almost 100 developers who use node on a daily basis and contribute significantly to open source. Walmart has also been a top sponsor of NodeConf for the last few years. Since they are not going to double their support, should Walmart direct all these funds to the foundation instead? How would that increase their influence and improve an already fantastic community?

(I do not speak for, or necessarily represent the position of the Walmart corporation).

The only real argument made so far in support of a foundation is the issue of controlling the trademarks. It could have been easily resolved by Joyent releasing them to the public domain and allowing the community and the market to sort things out. I can tell you for a fact that my employer would not have had any problems dealing with the “ensuing confusion and chaos”. Every other platform has multiple flavors competing, some open source and some commercial. What makes node so special it needs trademark protection?

Since the node foundation is a foregone conclusion, we’ll just wait and see what value it adds. Meanwhile, we should stay alert to make sure the sponsoring corporations are not fucking node up.

Got comments? I’m @eranhammer.

Names and Diversity

(Previously titled Nipples and Poop)

Last month I got to experience a childhood dream, one I never imagined possible. I got to sit in the front row and watch Monty Python live on stage. Twice! It was magical. It was the best 40th birthday gift to myself possible – getting to relive being 10 with the fully emotional impact of reliving well memorized moments.

I grew up watching VHS tapes of the Flying Circus. It had tremendous influence over my humor, but more importantly, the way I look at life. The absurdity of it all. The total disregard for institutions and sacred cows. If you’ve ever spent an evening with me, I am sure you’ve heard some fucked up stories about something I did against the very fabric of the institution I was part of – school, army, college, work. It’s who I am.

When I set course on hapi, an explicit goal was to change the way enterprise software is created.

Not just technically, but culturally. The configuration architecture was designed to make it simpler for entry level developers to jump right into complex requirements. The plugin architecture was designed to support a large team by breaking up large monolithic systems into smaller, self-contained parts. And the module names, logos, and references were designed to make people smile and stop taking enterprise engineering so fucking seriously.

Not everyone finds the same jokes funny.

People who grew up loving the Ren and Stimpy cartoons come into the hapi world with a grin on their face. A sense of giddiness from bringing that world of silliness into their day job. Others find it silly and just ignore it dismissively. That’s ok. The trick is to know who you are going to offend and lose as the price of making a joke.

When I was asked to name a hapi plugin that takes automatic core dumps when the process fails, I named it ‘poop‘. It was a perfect pun. We now have a module that very serious ops people at large companies, my employer included, have to use and they have to say ‘poop’ in their very serious meetings. This is powerful change, and it is because it is silly.

Sure, some people find it offensive enough not to use, and that’s fine. It’s a tiny module that is trivial to recreate. It’s not like I named the entire framework ‘doodie’. But the key here is that the group of people who might find ‘poop’ offensive isn’t exclusively any segment of the population. People who take themselves too seriously are not a protected class.

That’s not the case with ‘nipple’.

The nipple module was initially created as an internal component that no one was meant to use except for those working on hapi core. I know this sounds like an excuse for picking an inappropriate name, and it is, but it was also what was going through my mind – a public private joke. And I’m sorry for that.

The problem is, that in the larger context of a community built around the hapi framework, this turns off women from using and contributing to the project. That’s unacceptable! There is no acceptable rationale for creating an environment hostile to any segment of the population.

Creating an environment in which a woman is forced to say “nipple” to a predominately male audience is unacceptable. I don’t think that requires any explanation. It might also create a situation considered sexual harassment in many places. This has nothing to do with political correctness which is all about appearances.

What is interesting about the ‘nipple’ experience is that no one brought this issue up. I’ve had very open, frank conversations with women about making a significant shift in diversity within the hapi community and while other topics came up, this didn’t (even though it turned out to be on their mind). But when I asked plainly on Twitter what did people think, the response was strong, quick, and overwhelming.

The issue only came up as part of my review of all hapi language for potentially offensive words or expressions. I have made it my goal to dramatically change the makeup of the hapi community. I want to create a project that’s the role model of inclusiveness and diversity. The gold standard in how to build the most inclusive and safe environment in open source. Clearly we have a long way to go.

A big part of that includes reaching out to people and soliciting contribution. You change a community by starting with the diversity of its leadership. So I set to contact people from under-represented groups within the hapi leadership. All of a sudden, I felt a bit uncomfortable asking a female developer if she wanted to take lead on ‘nipple’. It stopped being funny in my head.

An hour after asking for feedback, the ‘nipple’ module was renamed to ‘wreck’, a pun on ‘req’ (common short name for ‘request’ in node). It’s still silly. We are going to continue and review the language used around the project and solicit feedback. I am going to continue asking questions, and I am confident we’ll get this right.

Bringing this topic up surfaced some unhappiness with our use of non-descriptive (and outright silly) names for modules. Turns out, a lot of people don’t share my sense of humor. No surprise there. But that’s missing an important point. hapi was created to be silly, to change the stiff corporate culture, one silly module name at a time. We take our code more seriously than most.

Looking at the audience at the Monty Python show, gender diversity was very much present. Silly humor doesn’t automatically translates to a boy’s club environment. The burden is clearly on me (us) to make sure that’s the case, but I am not ready to give up on silly.

I think the line between ‘nipple’ and ‘poop’ is clear, between offensive and silly, but this perspective, of course, is open to a community debate.

Speakers Creativity Budget

Node in the enterprise

TL;DR – if you are producing a conference, please offer your speakers a ‘creativity budget’ to make their presentations better.

I’m been a public speaker for a while. I derive great pleasure from speaking to a live audience, big or small. While preparing for and then delivering a talk takes huge amount of my time and energy, I keep accepting more speaking opportunities because it forces me to push the envelope on my craft. That is, my engineering, creative craft.

I set very high standard for myself (which I usually fall short of, but isn’t that the point?) which include:


  • Talks should be entertaining first, educating second
  • Slides and props are meant to delight and excite, not document or narrate
  • Never repeat a talk (training sessions excluded)

For the same reason I believe most developers should not do design, I contract the artwork for my presentations. Over the past few years, I’ve enjoyed a fantastic artistic collaboration with Chris Carrasco who has created all the artwork used in my presentations. I have also learned to rely on props and other costly production elements. These all play a significant role in enhancing my talks.

They also cost money.


Most of my talks this year cost around $500 to produce. Some much more.

My ReatimeFood presentation cost over $5000 (which was paid for jointly by &yet, me, and the 24 participants who sat the special tables where food was served). My Fuck OAuth talk cost $1200 on artwork and shirts (and it would not have been as good without the shirts – it was absolutely an essential element). The Leek Seed bedtime story at NodeSummit cost $450 to produce (and it will be the main thing anyone will remember from that talk).


Creativity is expensive and I’ve been fortunate enough to have the means to cover these costs out of my own pocket (I rarely ask my employer to cover these costs since they don’t really benefit from them). You can see a sample of my slides on the right and can find some of my decks here.

Quality conferences like NodeConf and RealtimeConf have long offered to cover speakers’ travel costs. They are produced by people who care deeply about quality and they recognize that top speaking talent demands top treatment. Conferences are business after all. But I think we need to go one step further.

I’d like to propose a new speaker benefit: a creativity budget.

Fuck OAuth

This is pretty simple. Each conference will make available a budget to reimburse speakers for costs such as artwork, props, hardware, or other materials that will enhance and elevate their presentations. For most conferences, I would set this at $300-500.

This will work similarly to how travel is covered today, by reimbursing speakers for submitted invoices, or by the event produce paying the costs directly. I would also encourage the organizers to promote and push speakers to spend the money. Almost every presentation can benefit from higher production value and the conference as a whole will be elevated. There is a reason so many people attend conferences these days, just to stare at their laptop all day.

Sled and OAuth 2.0

As for how to fund it, there are many creative ways. Asking for talk sponsorship, selling premium experiences, asking those with means to crowdfund it, or simply charging a bit more for tickets in exchange for a better conference experience. We’ve seen conferences with incredible production values over the last couple of years, but we have not seen any noticeable improvement in the quality of the talks. Let’s fix it.


The biggest misconception about affirmative action is that it puts less qualified individuals ahead because of their gender or the color of their skin. If an affirmative action program results in lesser individuals getting ahead, it is poorly designed. This misconception is based on the misguided notion that we can score every person on a linear scale and simply pick off the top of the list. Human beings just don’t work that way.

In a rich, multidimensional reality, we must consider not only the attributes of the individuals, but also the makeup of the community we are trying to build. Setting a goal of more women, blacks, gays, etc. is pointless. That’s a stupid goal. Setting quotas is mechanical and more likely alienate others instead of bringing them in.

The point is to take a look at your community and ask yourself what would make it more open and accepting? Who are the people at the margin trying to join? Why don’t they feel comfortable and welcomed? This is not an academic, theoretical exercise. You actually have to ask and listen.

In geek culture at present time, that’s often women. When men hang out together, especially at a conference where alcohol is served, they create (without intention or malice) an environment that can be unwelcoming to women. This is something we’ve been hearing from many people trying to be part of our community.

Affirmative action is not about getting less qualified women to speak at a conference at the expense of more qualified men. That would be wrong and unsustainable. It is about finding the best female talent and showcasing it so that other women feel motivated and welcomed. So that everyone will benefit from a diverse range of opinions. When hiring a new engineer or curating a conference, the goal is to enrich the team or experience, not just to add a few skill sets.

I resent members of an outsider group (be it women, blacks, gays, etc.) use their own personal success story as a way of dismissing the real adversity others in their group still face. The fact that I have been very fortunate in my life as a gay man to never experience intolerance aimed at me does not, even for a second, diminish the real and painful challenges facing many gay men today. Drawing a conclusion that just because I found a welcoming home within my community means that it is no longer an issue for others is egotistical and hurtful. I wouldn’t even assume that the geek subculture I belong to is completely beyond bias, given that I don’t know more than a handful of other openly gay men within that subculture.

If you have been successful, you have a responsibility to help those who are still looking from the outside in. If you are a woman or a minority, just showing up can accomplish plenty. If you are gay, vegan, Mormon, etc., talk about it so that others will know and appreciate the unique perspective you bring in from that experience. You don’t need to perform an interpretive dance on stage or put it on a t-shirt. Just mention it in conversation, on Twitter, or in a blog post. Letting others know that they are not alone is an immensely powerful gesture.

The measurement of diversity isn’t in numbers. It is in the perception of those trying to join as to how welcoming a community is.

Realtime Conference, the Imagination Platform

Last year, if you recall, I was a bit upset about some specification I participated in… I wrote a blog post, followed by another post, then went silent. I felt very strongly that everything I had to say was right there in the posts and that an ongoing online feud will only weaken the points I was trying to make. For a couple of months I received weekly requests to come speak at conferences about it. These were all security, platform, or API conferences where this topic would be a perfect match. I turned them all down.

What bothered me was the feeling that if I were to do a talk about it, it has to be to a completely different audience. I would have to break out of the echo chamber and turn a very technical and procedural set of arguments into something more culturally and emotionally meaningful. And it must be funny, which none of the people my posts were aimed at found amusing.

So when the invitation from the Realtime Conference team showed up in my inbox, my first reaction was to turn it down like all the others. But then when I read it, something clicked. For the first time, I wasn’t invited to explain why the protocol sucked. I was asked if I was interested in “sharing some of what [I] feel are [my] ‘lessons learned’ from that experience”. Here was an invitation to engage in a meaningful, emotional exercise that wasn’t trying to recreate my posts. It was about moving on. I immediately replied “sure!”. Continue reading

Is the Party Winding Down at Facebook?

A picture started to emerge from casual conversations I’ve had over the past few weeks with friends working at Facebook. I have noticed how Facebook engineers are using a different, more restrained vocabulary to describe their jobs. What once was ‘amazing’ is now ‘challenging’, ‘exciting technology’ turned to ‘learning a lot’, and ‘having fun’ toned down to ‘still engaged’. They are all very ‘content’. Continue reading

Netflix Forcing the Issue Too Soon

(A note to my long-time readers, I’m planning on expanding this blog to include opinions about current technology trends and news beyond my usual fare of standards, open web, and engineering posts.)

This morning I logged into my Netflix account and changed my plan from 3 DVDs + Streaming to DVDs Only. Despite the excellent analysis by many about Netflix’s reasons for the recent changes, the fact is that today the company is making $95.88 less annually from me than they did the day before. That’s a lot of money to lose from a single, loyal customer. Continue reading