H
Hasen
dev.hasenj.org · Personal blog · on HN since 2011
Hasen is a programmer who writes about web development, covering Backbone.js, Knockout.js, Node.js, CouchDB, Flask, and software licensing.
What HN saysHN mostly links his post on Douglas Crockford's JSLint license exemption for IBM "to use for evil", in discussions of the JSON license and open source terms.
19HN people shared it
13linked it in comments
13stories submitted
306story points
9 years agolast shared
2011people per year2026
Most-shared posts
- 1IBM and its minions …12 people · 1 points · first shared 2011 · discussion on HN
- 2I give permission for IBM [...] to use JSLint for evil.2 people · 186 points · first shared 2013 · 55 comments on HN
- 3Why I'm choosing CouchDB2 people · 3 points · first shared 2012 · discussion on HN
- 4A comparison between Backbone.js and Knockout.js2 people · 3 points · first shared 2012 · discussion on HN
- 5Why I think Node.JS is a terrible platform1 people · 100 points · first shared 2012 · 141 comments on HN
- 6Sketching helped me avoid getting stuck1 people · 5 points · first shared 2011 · discussion on HN
- 7Adding web sockets to Flask apps1 people · 3 points · first shared 2012 · discussion on HN
- 8Coroutines vs explicitly async APIs1 people · 2 points · first shared 2012 · 1 comments on HN
- 9Tools for Front End development1 people · 1 points · first shared 2015 · discussion on HN
- 10What you need to know about music to write a music keyboard app1 people · 1 points · first shared 2011 · discussion on HN
- 11Interesting hack to create html templates in javascript1 people · 1 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
hasenj · 2012-11-16
Backbone.js is not going to solve your DOM spaghetti problems.
You will still bind to events, you will still manipulate the DOM, you will still do all the manual work.
I really recommend looking at Knockout.js instead.
It really gets rid of all the DOM manipulation code that tends to become so complex and spaghetti like.
How? It provides a declarative language for two-way binding between the UI and the data.
Check out this example: http://jsfiddle.net/FEVbz/
In the HMTL pane, edit the input boxes and watch as the other DOM elements update automagically.
Notice how simple and clean the Javascript code is. All it's doing is initialization and setup. Nothing else. No event binding. No dom manipulation. No spaghetti. No nothing.
Shameless plug:
Here's an article I wrote about why I think Knockout.js is so much better than Backbone.js
http://dev.hasenj.org/post/35572197519
Sanddancer · 2013-04-20
I'd argue that history shows otherwise. GPLv3, with its increased restrictions, proved a bridge too far for a lot of projects, to the detriment of everyone. Apple, the FreeBSD project, the OpenBSD project, etc have all put in efforts to divest themselves of GPL encumbered code because it increased the costs of using the software. Because the wording of things like the patent clauses were so questionable, it became much cheaper in terms of lawyer time, etc, to either use older software that was still under GPLv2, or to use software using less-encumbered licenses, like BSD and MIT.
That balding middle manager needs to make sure that that license is acceptable by his boss, by the people in the legal department, etc. For example, an innocuous throwaway line of a program that can only be used for "good, not evil," ends up needing to get the lawyers involved for clarification and special waivers ( http://dev.hasenj.org/post/3272592502/ibm-and-its-minions ). If the internal costs of using an encumbered program are too great, then chances are, it just won't get used; the company will either write their own version, or use a commmercial variant.
hdhzy · 2017-05-12
See also "don't use for evil" clause in JSON library by Douglas Crockford and a special exemption for IBM: "I give permission for IBM, its customers, partners, and minions, to use JSLint for evil." [0].
[0]: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
captn3m0 · 2016-12-24
That is true. Re-posting what current_call posted above:
https://opensource.org/osd
The license must not discriminate against any person or group of persons.
That is the legal definition to be compliant as per OSI. The JSON license did not fulfill it. However, since then, the JSON spec/schema has been worked out under ECMA 5 standardisation, so you can JSON for all your evil projects now without a worry. [1]
JSLint, however, you will need to get a waiver like IBM did.[2]
[1]: https://news.ycombinator.com/item?id=3693108
[2]: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
pella · 2015-12-07
see JSLINT license ( https://github.com/douglascrockford/JSLint/blob/master/jslint.js "The Software shall be used for Good, not Evil." )
Only one documented exceptions : Douglas Crockford “I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.” http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
More info - see HN archivum : JSLINT + EVIL https://hn.algolia.com/?query=jslint%20evil&sort=byPopularity&…
LoSboccacc · 2015-09-18
at IBM? half the company probably is. http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
ams6110 · 2014-05-07
Reminds me of Crockford's JSON license: "The software shall be used for Good, not Evil" [1] and his story of how IBM objected to that, and he wrote them a special exception "I give permission for IBM, its customers, partners, and minions, to use JSLint for evil." [2]
1: http://www.json.org/license.html
2: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
johnsoft · 2013-07-23
That reminds me of this blog post – http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
btilly · 2013-03-02
I think of that every time I hear about the IBM exemption to jslint's license. See http://dev.hasenj.org/post/3272592502 for what that is if you do not know.
It is only funny until you realize the likely reason that IBM's lawyers are taking that term so seriously. (You think they don't still have clients who are despotic dictators?)
technomancy · 2012-05-09
> Patent trolls aren't illegal, but they're evil
If you use Douglas Crockford's JSON library, then arguably its license could make you turn them down on legal grounds: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions =)
wulczer · 2011-04-13
By the way, just to prove I'm not such a stiff, I rememberd and quickly found this: http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
It genuinely made me laugh :)
jerf · 2017-03-30
It doesn't actually say anything. It doesn't say you have permission to do anything, it doesn't say "If you do this I won't sue you", it doesn't license patents, it doesn't promise that as long as you conform to the license that you won't get in trouble in the future (that's the "estoppel" comment in the article [1]).
A normal human being reading the license will get the almost-certainly-correct impression that the author of the code will not come after them for anything they do, especially if it's a small usage. Lawyers must worry about two reasonable scenarios: First, some large usage causing the original licenser to decide to change their mind [2]. To put it in terms most of HN will understand, what if you release some code under the WTFPL license and discover that the Trump administration is using it. Would you be tempted to wedge your way into the legal ambiguity and sue them over it? Your specific answer doesn't matter; you need merely believe that there are plenty of people jumping out of their seats and yelling YES! to make my point, as that is enough to send shivers down a big-company lawyer's spine.
And second, even if you are confident that the original author wouldn't sue, if the rights to the package get transferred to someone else, you have to worry about whether that licenser will change their mind as above. If a new party changes their mind about the license, some of your legal defenses get a lot harder. The bigger you are as a target, the more you have to…
GFischer · 2015-07-22
Reminds me of the JSON / JSLint clause :) and the funny IBM story
https://en.wikipedia.org/wiki/JSLint
"The JSLint license is a derivative of the MIT License. The sole modification is the addition of "The Software shall be used for Good, not Evil.""
The story (transcript from a conference):
"About once a year, I get a letter from a lawyer, every year a different lawyer, at a company – I don’t want to embarrass the company by saying their name, so I’ll just say their initials – IBM…
[laughter]
…saying that they want to use something I wrote. Because I put this on everything I write, now. They want to use something that I wrote in something that they wrote, and they were pretty sure they weren’t going to use it for evil, but they couldn’t say for sure about their customers. So could I give them a special license for that?
Of course. So I wrote back – this happened literally two weeks ago – “I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.”
[laughter and applause]
And the attorney wrote back and said: “Thanks very much, Douglas!”"
http://dev.hasenj.org/post/3272592502/ibm-and-its-minions
That said, these kind of clauses do cause legal problems.
https://www.change.org/p/douglas-crockford-remove-the-not-evil-clause-…