Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Mongrel2 Is Now BSD Licensed (sheddingbikes.com)
83 points by jcsalterego on July 19, 2010 | hide | past | favorite | 40 comments


Like others on here yesterday, I also hoped the big announcement was a corporate sponsorship/hiring of some sort to let Zed just get on with the tech without any hassles.. :-) (Hello VMware?) Ah well, this is still good.

Just one "but":

I believe that Mongrel2 has the chance to break the religious hold that programming languages have on organizations, businesses, and the average working programmer.

Aren't most open source infrastructure and HTTP based projects programming language agnostic? (Incumbents Apache, lighttpd and nginx, for example, as well as proxies like Varnish and Squid.) What's the deeper idea behind this statement that warrants presenting it as a new concept? I'm all for bold attempts to break the status quo but the way I interpret what he's proposing is the status quo..


Technically, any protocol if it's going to succeed is language agnostic. It'd be retarded to do a language specific protocol unless you're like Erlang and don't have to care about other languages as much.

The difference is Mongrel2 makes this assertion explicit and does everything it can to stay simple but still support languages you need to use. It does this by having a simple base protocol for doing fast async backends with 0MQ or HTTP, and by making the configuration system language agnostic as well.

That means if you run a Perl shop, then you can keep using your existing Perl HTTP setups with Mongrel2, write new stuff as 0MQ where needed, change parts to C++, and write configuration automation for your Mongrel2 clusters in Perl. Or any language. It doesn't care.

Compared to other servers, which still try to embed some specific language or write their own (Node, Varnish VCL), or have some odd config file only they understand, or force you to mod_* install languages, or use FastCGI in some bastard way, or hack up proxy configs to get page caching, ... this makes Mongrel2 much more agnostic.

But more importantly it comes down to the project's philosophy. I have a specific goal that no language will be king, so I'm going to architect the server so that nobody dominates. Same thing I did with Mongrel1 where I refused to let Rails dominate.


One of the things I really like with Tornado is that there's a handful of test apps that ship in every release. This means people learning it always have a definitive, up - to - date demo of the code, rather than relying on some blog from 6 months ago which uses the previous API.

It would be super sweet if your minichat examples in various langages were shipped in the base Mongrel2 package. If you're about to say I should do this myself, you're right, and I might try it once I've finished shipping my app and have time to investigate.


I was actually wondering the same thing, Peter, it's had me thinking I'm missing something obvious. Zed?


If you read until the end of the article, he says:

"I'm also actively pursuing sponsorship and may have some more announcements later."


Sure, and I did. That doesn't change that today's announcement was not what was anticipated.


I like the BSD license. I made my first money on the nets by benefitting a lot from BSD licenses, and all open source software I ever write will be BSD.

I believe - if you want it to be free, make it free. If you want it to be closed, then make it closed. The in-between that is the GPL is not cool.

I do wonder though, how many people have contributed to this project? It seems to me it would be a better idea to have a single sponsor than several big sponsors. Someone who has a vested interest in making Mongrel2 work.


There's about 5 people who've made contributions, mostly in writing external projects to implement protocol handlers for their favorite language (C++, Ruby, PHP, and Python so far). Most of the work is done by myself though since it's rather early for other folks to get in, but I'm looking for contributors.

Anyway, stay tuned for more information on the sponsorship thing.


What little I've managed to open source so far, is licensed under what amounts to a 2-clause BSD + what I call the "Diane Bruce clause".

http://it.toolbox.com/blogs/bsd-guru/have-we-lost-the-fun-21...

* db@FreeBSD.ORG wrote this file. As long as you retain this notice you * can do whatever you want with this code, except you may not * license it under any form of the GPL. * A postcard or QSL card showing me you appreciate * this code would be nice. Diane Bruce va3db


Is there a reason you would choose to make up your own, untested, license rather than something that has been examined by legal professionals? Did the MIT, BSD or GPL licenses not meet your needs?


Pique, whimsy. Same reasons as db really.


Such a clause seems to indicate that you would prefer that your code be incorporated into a proprietary project to it being incorporated into another open-source project. Is this the case?

If not, why adopt a license that is incredibly hostile to the free-software folks, explicitly forbids them from incorporating it into their projects, and allows people to incorporate it into proprietary projects freely?

If so, why open source it at all?


>Such a clause seems to indicate that you would prefer that your code be incorporated into a proprietary project to it being incorporated into another open-source project. Is this the case?

Nope. Please don't put words in my mouth either, thank you.

>If not, why adopt a license that is incredibly hostile to the free-software folks

Spare me. It's hostile to GPL/affero, not to open source in general.

>allows people to incorporate it into proprietary projects freely?

You know this whole web thing we've been doing, where we can take any javascript library we like and use it in professional / day-to-day work?

Yeah, that. I'd kind of like to preserve the usefulness of code for actual work.

Pardon me for having a day job.

>If so, why open source it at all?

Because I want to preserve peoples' right to do anything they want with it. The only way to ensure that is to make certain a GPL fork never happens.

GNUists thought they were being cute with copyleft, claiming it was preserving 'user rights' by using the same tactics as traditional copyright.

It was a perversion that preempted peoples' ability to use any of the code in their actual day to day work, thereby enslaving them to same proprietary code all over again.

Then, the Javascript and other universal web exchanges of code start occurring and BSD takes off because people want to actually use the code, not toy with it on the weekend.

http://jquery.org/license

jQuery's status as an MIT licensed project is pretty much exemplary of what I'm trying to encourage.

Are you then to claim that jQuery is hostile to open source because it'll allow proprietary projects to make use of it?


> Nope. Please don't put words in my mouth either, thank you.

I was not trying to put words in your mouth. I was trying to understand your motivation.

> Spare me. It's hostile to GPL/affero, not to open source in general.

I said "free software", not "open source". People who consider themselves "free software" people tend to be the ones who belief in free software as an issue of morality; they tend to prefer copyleft licenses as a result.

> You know this whole web thing we've been doing, where we can take any javascript library we like and use it in professional / day-to-day work?

I don't do this whole web thing in any serious manner, but yes, I'm aware of it.

> Yeah, that. I'd kind of like to preserve the usefulness of code for actual work.

But if you came up with a great scheduler implementation or some such, you wouldn't want the Linux kernel to be able to use it?

You wouldn't want gitorious to be able to use some useful library you've written?

According to http://www.blackducksoftware.com/oss/licenses#top20 , over 60% of open-source/free software is licensed under some from of GPL or LGPL. Even assuming that figure is excessively high, do you really want them to not be able to use it, just because they chose to adopt a license that, while more restrictive than BSD, is less restrictive than other licenses that you allow people to create forks of your code with?

> Because I want to preserve peoples' right to do anything they want with it. The only way to ensure that is to make certain a GPL fork never happens.

If you licensed with a normal BSD, MIT, or similar license, a GPL fork wouldn't make the original BSD version go away, any more than a company using your software in their proprietary software would make your original BSD version disappear. Besides, how many GPL forks of BSD projects are there? There are many more proprietary forks of BSD projects. A much more likely scenario that your license prevents is for a [L|A]?GPL licensed project to use a library you've licensed under it. Why is this so undesirable?

> GNUists thought they were being cute with copyleft, claiming it was preserving 'user rights' by using the same tactics as traditional copyright. > It was a perversion that preempted peoples' ability to use any of the code in their actual day to day work, thereby enslaving them to same proprietary code all over again.

The GPL restricts the ability of people to redistribute modified proprietary versions of code. Your license restricts the ability of people to redistribute open source version of code. I'm not saying it eliminates that ability; it just prevents it from ever being incorporated into or linked with any GPL program.

> jQuery's status as an MIT licensed project is pretty much exemplary of what I'm trying to encourage.

Then just release it as MIT or BSD licensed. Disclaim copyright to the extent legally possible. Do something that doesn't restrict the ability of people to incorporate your code into other open source/free software projects more than it does the ability of people to incorporate it into proprietary software.

> Are you then to claim that jQuery is hostile to open source because it'll allow proprietary projects to make use of it?

No. I also didn't say that you're hostile to open source. I said that your licensing is hostile to '"free software" folks', in other words, people who refer to what they do as "free software". jQuery's licensing isn't hostile to them because it allows them to freely incorporate it into their projects to the same extent it allows proprietary projects to do so. Your license allows incorporation into proprietary software but restricts incorporation into the projects of the free software folks.


> people tend to be the ones who belief in free software as an issue of morality; they tend to prefer copyleft licenses as a result.

I don't believe in restriction. That's my morality.

>I don't do this whole web thing in any serious manner, but yes, I'm aware of it.

That explains a lot.

>But if you came up with a great scheduler implementation or some such, you wouldn't want the Linux kernel to be able to use it?

They can use it, they just can't relicense it. Frankly if there was some kind of humanitarian issue, I'd be open to discussion, but getting a new scheduler into the Linux kernel is a political issue, not a licensing one. Ask Con Kolivas.

>You wouldn't want gitorious to be able to use some useful library you've written?

They can use it, they can't relicense it.

> over 60% of open-source/free software is licensed under some from of GPL or LGPL

and most of it is trash. Why do I care? the stuff I use.

Me. That I use, on a day-to-day basis in my work is BSD/MIT.

GPL only touches tools/platforms, not actual code.

>If you licensed with a normal BSD, MIT, or similar license, a GPL fork wouldn't make the original BSD version go away

Fully aware. I still don't care.

> how many GPL forks of BSD projects are there?

Need I demonstrate how many times GNUists have stolen and relicensed BSD code before calling it their own, thus continuing the spread of their disease?

>Then just release it as MIT or BSD licensed.

I'll do as I please, thank you. You're welcome to find the nearest cliff and test a new form of human powered flight though.

>Do something that doesn't restrict the ability of people

I'd ask the same of the FSF/GPL fanatics. I wouldn't have to do this if they didn't exist.

> I said that your licensing is hostile to '"free software" folks'

And?

>Your license allows incorporation into proprietary software but restricts incorporation into the projects of the free software folks.

Doesn't restrict incorporation, just requires that it not be relicensed. They can package it in there however they like, they just don't get to rubber-stamp their STD on it.


Where in the BSD License does it say you can re-license the code? Or does this just mean no including this code with GPL code?


Where in the BSD license does it say that you can't?


There have been multiple cases where GPL fanatics stole BSD code and relicensed it without discussing it with the original creators, which is technically permitted, but dirty as hell.

Some wireless drivers for Linux derived from this theft. (Broadcom, being one)


There is a certain amount of cognitive dissonance evident here.

The whole point of favouring the BSD license over the GPL is that you don't care how people license the code that they incorporate your code into. It makes no sense at all to be happy with someone "stealing" BSD code and putting it into a closed-source product, but not be happy with them putting it into a GPL-licensed product.


Actually, the OpenBSD people grumble about all the companies incorporating their code (mostly OpenSSH) and not contributing anything back, too. There's a difference between what is legally allowed and what is (considered) ethical.

It's just that the GNU people, being (more or less) on the same team and fond of open-source retoric, are more vulnerable to pressure.


The whole point of favoring BSD over GPL, in addition to prohibiting a GPL fork, is that I want the code and all derivations to be free for personal and commercial use with no obligations made upon the user/re-implementer.


Then you have chosen completely the wrong license, because that is not what the BSD license provides. The BSD license allows derivations to be unmodifiable, or to be useable only with a fee paid, or any other restriction the copyright holder (of the derivation) cares to add.

For example, a derivation of your code could be licensed under the hypothetical ICBINTGPL License ("I Can't Believe It's Not The GPL") that was the same as the GPL in all but name.

The tension in what you want is evident in your comment: you "want the code and all derivations to be [list of attributes]", which implies obligations on the user of the code (amusingly, GPL-like obligations!); but you also want "no obligations made upon the user/re-implementer". So you want obligations that there be no obligations. That's the problem I'm trying to point out.


>Then you have chosen completely the wrong license, because that is not what the BSD license provides.

You're silly, you haven't read the license. It's not BSD.

http://github.com/bitemyapp/Scroot/blob/master/LICENSE

There's no problem, and you aren't going to argue this into anything productive.

I've made my decision, I'm going to let people do anything they want except relicense it in GPL or sue me.

There is no debate here. I'm sorry I shared it in a fit of feeling 'cute'.


Well, I dislike the spirit of the GPL for similar reasons.

But I find that clause even worse; because it is the same spirit as the GPL masquerading as something different :)

One of the joys, I find, with BSD/MIT licensing is that you can watch the code do amazing things with no restriction.


Often BSD-licensed code achieves many of the same things the GPL was designed to achieve through entirely voluntary actions.


Zed, this is great. It seems we've both come to the same conclusion; as much as I respect what the Free Software movement has done, if I create something awesome, I want as many people to use it as possible. There is enough crappy software out there that I'd rather have it improved for everyone than worry about ekeing out every last possible cent.


As well as language religion, I hate license religion. I GPL things I think will only attract douchebags if it were totally free, like with Lamson. I AGPL things mostly as a joke, like I did with MulletDB.

In this case, I believe the cause of getting languages out of my damn web server operations is strong enough that BSD is a better choice.


Licensing things as a joke is generally why I use the WTFPL over 'real' BSD.


I need to start signing my emails with "And I promise not to buy guitars with it,".


Don't lie, you know you couldn't keep that promise. :-)


Isn't "break the religious hold that programming languages have on organizations," kinda-well-I-dont-know religious?

I don't know about you, but I just had a religious experiences reading the post. I got the experience when I used http://kayakhttp.com/ for the first time. It changed my life!!!

Programming languages have religious backing not due to HTTP or anything technology related but due to management fearing polyglotism/increased complexity by redundant code/multi-deployment/multi-service management/other people issues.

To end the religion that infests programming is to end humanity. And, unless Mongrel2 has skynet built into it, it's not going to break the religious hold that programming languages have on organizations.

But, I'll drink some of zed's koolaid and hope to live in a state of denial.


Yes, any human belief is a religion and temporary. This is just a religion that tries to accept all of them, kind of like Unitarians. :-)

(BTW, obvious troll is obvious).


The world might be a better place if the norm were meta-religions like, "A Alphabetic Unitarianism," wherein adherents practice all religions in alphabetic order.


Or someone, hint hint, could build skynet into Mongrel2.

I'm just say'in.


"Copyright (c) 2010, Zed A. Shaw and Mongrel2 Project Contributors."

Couldn't this be some sort of loophole that "Mongrel2 Project Contributors" isn't defined right there in the license?

I know, it's BSD license, not much point in finding a loophole, but still.


The voice of reason on the desert of political correctness.


How does this guy get any coding done? He's always writing rants and waving his hands to get attention. He writes, "Send an email and I'll add your name to the donation page." I hope he doesn't get a million donation emails asking to have their names listed. If so, he'll never be able to code another line.


Well, actually if I got a million donations I'm pretty sure I could:

A) Hire a bunch of people to enter them in, if it were important.

B) Just use my lamsonproject.org software to automatically make a list of contributors.

Because, you see, at that point I'd be both rich as hell and a bad ass programmer who can automate things, while you'll still be a troll. :-)


OK, so I'm a troll, but how do you get any coding done while doing all this other stuff?


No need to down vote. This is a thinly veiled compliment. It's a good question. Zed's output has been insane for the past few months. How he manages to keep up the pace is a very valid question.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: