Live data from Hacker News

GNU LibreJS

gnu.org

11–20 of 74 posts

Re: GNU LibreJS

#11
For the curious, this is what is considered "non-trivial":

  .it makes an AJAX request or is loaded along with scripts that make an AJAX request,
  .it loads external scripts dynamically or is loaded along with scripts that do,
  .it defines functions or methods and either loads an external script (from html) or is loaded as one,
  .it uses dynamic JavaScript constructs that are difficult to analyze without interpreting the program, or is loaded along with scripts that use such constructs. These constructs are:
    ..using the eval function,
    ..calling methods with the square bracket notation,
    ..using any other construct than a string literal with certain methods (Obj.write, Obj.createElement, ...).
( http://www.gnu.org/philosophy/javascript-trap.html )

I generally support Richard Stallman (or, as I've taken to referring to him lately, GNU/Stallman or GNU plus Stallman), but this is a set of directives so wildly out of step with common engineering practice that I have to question how seriously others will take it.

Or, perhaps, there's a deeper question here--can programs consumed from others on a network (such as embedded scripts) ever truly be considered free?

Re: GNU LibreJS

#12
post #5

This is self-imposed, owner-initiated DRM: it's software specifically to make your computer run fewer programs and be less useful, because it might hurt the owner to come to rely upon powerful non-free programs.

...there are a lot of developers in the Microsoft ecosystem with Silverlight and whatnot that probably have a deep appreciation for the sort of problems reliance on non-free platforms brings.

Re: GNU LibreJS

#13
post #4

Earlier quoted context omitted.

But how is the above sample 'unfree'?

The main goal of the GPL is to allow that programs can be understood and modified by user. A "trivial" javascript program accomplishes that, regardless of license. The sample above is "non-trivial" according to the set of heuristics they are using, so they are just saying "if the program is not trivial, then you need to explicitly state that it is GPL for us to consider it free"

Not GPL, but any free software license.

Re: GNU LibreJS

#14
post #9

Blocking "nontrivial JavaScript"?! You have got to be kidding me. Let's block Linux kernel for "nontrivial C" while we at it. It sure as hell looks far more nontrivial than an average js script.

I see what they did now. They're not blocking any nontrivial JavaScript altogether. They're blocking nontrivial JavaScript insofar as it's unlicensed, or not licensed with a free license.

So your trivial, unlicensed javascript can be allowed to run, but once you cross the heuristic threshold of non-triviality they've applied, you need to have a license so the user is sure they're not using some complex, non-free thing.

At first I thought it was blocking all "non-trivial" JavaScript, like you. That would be boneheaded of them.

If you were working at the EFF (on the Linux kernel), or on a Free Software project, I'm sure you wouldn't want to find out that you depend on some non-free binary-only modules that you've been running without knowing about it this whole time. The Linux kernel has a whole framework of "taint" for doing the exact same thing as this LibreJS. You are meant to know when you are running non-free kernel modules, if you are paying attention to the signals the kernel is sending.

Re: GNU LibreJS

#15
post #9

Blocking "nontrivial JavaScript"?! You have got to be kidding me. Let's block Linux kernel for "nontrivial C" while we at it. It sure as hell looks far more nontrivial than an average js script.

The kernel is under the GPL, generally. This code has no license.

Re: GNU LibreJS

#16

For the curious, this is what is considered "non-trivial": .it makes an AJAX request or is loaded along with scripts that make an AJAX request, .it loads external scripts dynamically or is loaded along with scripts that do, .it defines functions or methods and either loads an external script (from html) or is loaded as one, .it uses dynamic JavaScript constructs that are difficult to analyze without interpreting the…

> this is a set of directives so wildly out of step with common engineering practice

how so? It's just a set of guidelines for how program such as LibreJS might interpret what trivial JavaScript code looks like. If you think it's wrong, write to RMS and tell him, or tell me and I'll pass it along.

Re: GNU LibreJS

#17
post #5

This is self-imposed, owner-initiated DRM: it's software specifically to make your computer run fewer programs and be less useful, because it might hurt the owner to come to rely upon powerful non-free programs.

...there are a lot of developers in the Microsoft ecosystem with Silverlight and whatnot that probably have a deep appreciation for the sort of problems reliance on non-free platforms brings.

Which is an argument against using Silverlight, not for removing essentially all JS (breaking) from all websites.

Re: GNU LibreJS

#18

Earlier quoted context omitted.

...there are a lot of developers in the Microsoft ecosystem with Silverlight and whatnot that probably have a deep appreciation for the sort of problems reliance on non-free platforms brings.

Which is an argument against using Silverlight, not for removing essentially all JS (breaking) from all websites.

This doesn't do that, this is just a way to ensure any code you're running on your machine is free software. If you don't care about such things, then you wouldn't install this.

Right now, virtually all JavaScript is unlicensed.

Re: GNU LibreJS

#19
post #3
post #2

Their definition of "non-trivial" includes using computed member expressions, so the following program is not supported: var greetings = {world: "Hello World"}; var subject = 'world'; console.log(greetings[subject]); This is zealotry in action, who do they think is going to use this?

People who care more about freedom than comfort?

People who care more about the delusional ranting of Stallman than actually using any web service today?

Oh yeah, using jquery is "non-trivial".

What a load of crap.

Re: GNU LibreJS

#20

For the curious, this is what is considered "non-trivial": .it makes an AJAX request or is loaded along with scripts that make an AJAX request, .it loads external scripts dynamically or is loaded along with scripts that do, .it defines functions or methods and either loads an external script (from html) or is loaded as one, .it uses dynamic JavaScript constructs that are difficult to analyze without interpreting the…

The point is to know that you are running free software. If it's free and has a free license, then yes, it's easy to be considered free. Free. If it's trivial, you need not apply a license. Trivial. (You may disagree with their standard of trivial vs non-trivial, but if your objection is they set the bar too low, then you missed the point.)

Non-trivial and non-free? Not good for you young one, tread carefully. That is the point and it's obviously not clear, from reading this comment thread (I also didn't get it at first) but, that is clearly a gray area where free software activists/advocates could draw a line and shield themselves by saying "won't execute."

Find a program you would objectively call non-trivial in JS that does none of the things listed in the philosophy doc. If you can, the heuristic algorithm needs a patch to make sure it gets its license checked by LibreJS prior to runtime.

Post reply on HN