It's hardly "redoing an existing project". It's about giving user control on what he/she executes on his/her machine. It's just NoScript with automatic whitelisting of free software, nothing more.
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?You can put in arbitrary heuristics and argue how many expressions, lines, or words should be required for copyright status, but then there will always be up to a judge if you guessed right.
The options here seems to either not include any detection for the copyright scope, or try invent something and hope that people will send in patches when it hit a false positive.
If you think such plugin should detect something as trivial code which it currently classify as not, send in a patch.
I know people are going to say "what about minification", but c'mon, it's the 21st century, web servers know how to compress data streams when they send them and web browsers know how to decompress them. Minification for the purpose of saving bandwidth is a bugbear.
https://developers.google.com/web/fundamentals/performance/o...
Oh yeah, using jquery is "non-trivial".
What a load of crap.
.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?
Its not about engineering practice, its about ideology -- these are only blocked if they aren't attached to an appropriate license notice. This is a tool to maintain an ideologically pure experience, engineering has nothing to do with the purpose.
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.
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.
it uses dynamic JavaScript constructs that are difficult to analyze without interpreting the program
calling methods with the square bracket notation
feels like a totally arbitrary restriction. That has nothing to do with free software and everything to do with the difficulty of analysis. Stupid.
Actually, you can omit that completely. This extension does not need any triviality heuristics to do what it is meant to do. If it does it - it does it only to make life of its users a bit easier.
It's not about blocking non-trivial scripts. It's about allowing trivial scripts even if they're not explicitly marked as free.
That's like saying that choosing not to go out for drinks is self-imposed house arrest. Nonsense.
But, I was missing the point then. (Maybe I still am.)
I think the point of this thing is show web users a truth that they might not have thought about: that most javascript in the wild isn't licensed at all && they depend heavily on it.
To see this point clearly, try an experiment: install and activate the add-in. Now, try to do something on the web. Find a restaurant, buy airline tickets, comment on a post, author a post on your blog. Most likely, you can't do any of those things. That's the point. Even ardent free software supporters are depending on [large number] lines of non-free software every day.
That's the point of it.
Today, users have a choice: accept non-free javascript, or don't use the web.
Which brings us to a goal: we must change the web so that the majority of javascript is Free Software.
Right?
If you don't care about GPL/"as in speech"/etc then it's not for you, don't install it.
RMS is a zealot but he backs it up with his crazy ass longsoon unlocked bootloader laptop from china(and other unusual practices, look up his speech rider sometime)
I really enjoyed the part about not buying a parrot. Something along the lines of "If we haven't explored other options, then please don't book a hotel for me. I would rather stay at someone's house if someone will have me at their house. If there is someone with a parrot, I will generally prefer to stay with that person. Please also nobody should go out and buy a parrot, if you're not completely sure what you're getting into; having a parrot is a big commitment especially since they are very emotional creatures, and you can scar a parrot for life if you don't know how to take care of it. Also chances are the parrot will probably outlive you, so just don't go out and buy a parrot. It's a big decision and should not be taken lightly."
You know that's got to be in there I'm sure because someone actually did go out and buy a parrot for him once.
He's upgrading to a Thinkpad X60 with Trisquel GNU/Linux and Libreboot.
At this point I can't put my faith in web authors, since they could not even take care of prefixing the CSS for non-webkit browsers (not trying to fault the web authors, but trying to point out that prefixes were a less-from-ideal solution that ended up in the -webkit-disaster)... How can I expect from them to license their code with a free license?
On the other side, the awful practices (like using JS for animation, or tightly coupling the site code with the Tracking code) exists in most websites (including mainstream ones).
Some examples of JavaScript code under a free software license:
* jQuery
* extJS
* Handlebars
* Backbone
* Angular
* Ember
In fact, pretty much any JavaScript library that people are using. Then you have stuff like node, which is being used extensively on the server -- also free software.
Similarly, you can use Emacs and GCC to write nonfree software, but if you ask me to run it on my own computer, I can refuse.
Even the greatest original text services, think of "In the Beginning was the Command Line", which is served for free, are still copyrighted texts, and this is ok. If you think of a medial form that is genuine to the web, you probably wouldn't go without any algorithmic aspects, and JS is of all solutions for this still the most open one. (The source code is open and free for any one to inspect, even if it is not open sourced.) But JS, especially on the client-side, is more than just a tool, it's also a mean for expressing creativity, with all the potential of being/producing a text in its own rights.
This boils essentially down to, if you need algorithms, let go of any content.
Edit: I may note that I've done some (even awarded) web art myself, and I'm not making a cent from it. But I would be disgusted to see this copied from the very first minute something goes viral and see it served with ads plastered all over in some crude, barely functional fashion (since the copyist would be only interested in making some quick cents and not in the quality and preserving its aspects as a work. And I'm speaking of real cases here.)
(I read somewhere that html5+css3 can be turing complete)
ah yes, freedom
If I'm an abstainer and I refuse to go drinking to a friend, does it mean I'm infringing his freedom to take me drinking, or would he infringe my freedom if he would keep bothering me about that against my will?
It's my freedom to say no. I won't use this extension, as I don't really mind non-free JS code being executed by my browser (aka I don't mind some beer from time to time), but I fully support and understand people who develop and use it. There's simply no other way to use the web and not use non-free software, aside of disabling JS completely.
So, you exercise freedom 0 (the freedom to run the program) and install GNU LibreJS as an extension into your free web browser.
Now your browser blocks programs from running in your browser unless they are free software or trivial in their nature.
It is not evil to make proprietary software.
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.