Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    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.

    Visit blogHN submissions
    Web DevelopmentOpen Source & LinuxProgramming
    What HN says

    HN 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.

    Stats for nerds
    19HN people shared it
    13linked in comments
    306story points
    May 2017last shared
    2011people per year2017

    Top posts on HN

    1. 1
      I give permission for IBM [...] to use JSLint for evil.
      2 people · 186 points · first shared 2013 · 55 comments on HN
    2. 2
      Why I think Node.JS is a terrible platform
      1 person · 100 points · first shared 2012 · 141 comments on HN
    3. 3
      Sketching helped me avoid getting stuck
      1 person · 5 points · first shared 2011 · Discussion on HN
    4. 4
      Why I'm choosing CouchDB
      2 people · 3 points · first shared 2012 · Discussion on HN
    5. 5
      A comparison between Backbone.js and Knockout.js
      2 people · 3 points · first shared 2012 · Discussion on HN
    6. 6
      Adding web sockets to Flask apps
      1 person · 3 points · first shared 2012 · Discussion on HN
    7. 7
      Coroutines vs explicitly async APIs
      1 person · 2 points · first shared 2012 · 1 comments on HN
    8. 8
      IBM and its minions …
      12 people · 1 points · first shared 2011 · Discussion on HN
    9. 9
      Interesting hack to create html templates in javascript
      1 person · 1 points · first shared 2013 · Discussion on HN
    10. 10
      What you need to know about music to write a music keyboard app
      1 person · 1 points · first shared 2011 · Discussion on HN

    What HN people wrote when they linked it

    • jerfMar 2017

      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…

    • GFischerJul 2015

      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-from-your-license-because-it-is-evil-itself

    • SanddancerApr 2013

      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.

    • hasenjNov 2012

      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

    • captn3m0Dec 2016

      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

    • pellaDec 2015

      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&prefix=false&page=0&dateRange=all&type=all

    Related

    Justin Etheredgecodethinked.com27 people

    After reading “Rails is yesterday’s software”, I need to reply

    Justin Etheredge
    Personal · last shared 2017
    Bekk Openopen.bekk.no17 people

    Step by step from jQuery to Backbone

    Bekk Open
    Company · last shared 2017
    Marijn Haverbekemarijnhaverbeke.nl111 people

    Lezer

    Marijn Haverbeke
    Personal · last shared 2026
    Ayende Rahienayende.com151 people

    Career planning: Where do old devs go to?

    Ayende Rahien
    Personal · last shared 2026
    Hasura Blogblog.hasura.io26 people

    Deploying a ReasonML React app with Docker

    Hasura Blog
    Company · last shared 2020
    V8 Blogv8.dev272 people

    The cost of parsing JSON

    V8 Blog
    Company · last shared 2026
    MyNoSQLnosql.mypopescu.com66 people

    Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS)

    MyNoSQL
    Publication · last shared 2016
    DailyJSdailyjs.com112 people

    Backbone.js: Hacker's Guide

    DailyJS
    Publication · last shared 2017