From b2a38adeb17ab27c7cd9711e9f92758b6a6fef87 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz
Date: Thu, 26 Dec 2013 23:58:19 -0500
Subject: [PATCH 1/5] Beginning concepts for article on JavaScript freedom
I am currently working with RMS on a release announcement that touches on this
topic, but felt that a permenant article on the actual project would serve an
even greater purpose of attrating additional free software supporters.
This is by no means meant to replace RMS' ``The JavaScript Trap'' article; it
merely expands upon it.
---
includes/header.html | 1 +
style.css | 58 ++++++++++++++++++++++++++++++++++++++++++++
whyfreejs.html | 28 +++++++++++++++++++++
3 files changed, 87 insertions(+)
create mode 100644 whyfreejs.html
diff --git a/includes/header.html b/includes/header.html
index 1bf727c..922cbc1 100644
--- a/includes/header.html
+++ b/includes/header.html
@@ -20,6 +20,7 @@
Manual
Source Code
Support / Bugs
+ Why Free JavaScript?
diff --git a/style.css b/style.css
index cbfbc9c..a0a6a79 100644
--- a/style.css
+++ b/style.css
@@ -372,6 +372,64 @@ pre.js, div.float {
padding: 1em;
}
+
+/** Free JS */
+#menu ul #whyfreejs {
+ position: absolute;
+
+ background-color: #f57900;
+
+ text-align: center;
+ line-height: 1.25em;
+
+ right: 0em;
+ width: 8em;
+ margin: -4.25em 0em 0em 0em;
+ border-radius: 0.5em 0em 0em 0.5em;
+}
+
+#menu ul #whyfreejs a:hover {
+ /* retain style */
+ background-color: #f57900;
+ border-radius: 0.5em 0em 0em 0.5em;
+}
+
+body.whyfreejs #menu {
+ background-color: #f57900;
+ border-bottom-color: #ce5c00;
+}
+
+body.whyfreejs #menu ul {
+ visibility: hidden;
+}
+
+h3.menuhead {
+ position: absolute;
+
+ font-size: 1.25em;
+ font-weight: normal;
+ letter-spacing: 0.2em;
+
+ top: -2.25em;
+ padding: 0px;
+ margin: 0px;
+}
+
+body.whyfreejs #content {
+ font-family: times;
+ text-align: justify;
+}
+
+body.whyfreejs #content h3 {
+ /* original body font */
+ font-family: arial, serif;
+}
+
+blockquote.quote {
+ font-style: italic;
+}
+
+
/* from manual (overrides some of the styles above) */
div.float {
padding: 0;
diff --git a/whyfreejs.html b/whyfreejs.html
new file mode 100644
index 0000000..0054211
--- /dev/null
+++ b/whyfreejs.html
@@ -0,0 +1,28 @@
+
+
+
+ It occurred to me that when we announce ease.js it would be a good occasion to
+ post something about the importance of making JavaScript code free.
+ —Richard Stallman
+
+
+
+ GNU ease.js is in a position to help the free software community by providing
+ features under a copyleft license that encourages developers to release their
+ own code under a compatible free software license. But not everyone may
+ understand why this decision and the urging of free (as in freedom) JavaScript
+ are so fundamentally vital to the future of a free and cooperative
+ Internet accessible to all users, including users of free software.
+
+
+
+ We need your help to protect the fundamental freedoms of Internet
+ users. This article is both a detailed description of the problem
+ from the perspective of a user and an appeal to developers to develop free
+ software for the Web; it is heavily influenced by Richard Stallman's article
+ The JavaScript
+ Trap—which you should also read—and has been written with his
+ input. If you already write free JavaScript, then thank you.
+
From d97fd5bca4c550c86bfb93dfee5669ad790dc9d0 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz
Date: Wed, 12 Mar 2014 21:02:46 -0400
Subject: [PATCH 2/5] Added Free JS essay
This essay will be released with the GNU ease.js 0.2.0 release announcement.
The "Another GNU Hacker Typist" image is linked to externally because this
website is hosted on the GNU domain.
---
style.css | 83 ++++++++++++++++++++++++++++++++++++++++-----
whyfreejs.html | 92 +++++++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 158 insertions(+), 17 deletions(-)
diff --git a/style.css b/style.css
index a0a6a79..37bde21 100644
--- a/style.css
+++ b/style.css
@@ -377,21 +377,20 @@ pre.js, div.float {
#menu ul #whyfreejs {
position: absolute;
- background-color: #f57900;
-
text-align: center;
line-height: 1.25em;
right: 0em;
width: 8em;
- margin: -4.25em 0em 0em 0em;
- border-radius: 0.5em 0em 0em 0.5em;
+ margin: -3.25em 0em 0em 0em;
}
+#menu ul #whyfreejs a {
+ color: #f57900;
+}
#menu ul #whyfreejs a:hover {
- /* retain style */
- background-color: #f57900;
- border-radius: 0.5em 0em 0em 0.5em;
+ /* undo default style */
+ background-color: transparent;
}
body.whyfreejs #menu {
@@ -408,7 +407,7 @@ h3.menuhead {
font-size: 1.25em;
font-weight: normal;
- letter-spacing: 0.2em;
+ letter-spacing: 0.15em;
top: -2.25em;
padding: 0px;
@@ -416,7 +415,6 @@ h3.menuhead {
}
body.whyfreejs #content {
- font-family: times;
text-align: justify;
}
@@ -425,6 +423,73 @@ body.whyfreejs #content h3 {
font-family: arial, serif;
}
+body.whyfreejs .essay {
+ position: relative;
+
+ background-image: url('//www.gnu.org/graphics/another-gnu-type-sm.png');
+ background-position: bottom right;
+ background-repeat: no-repeat;
+ background-color: white;
+
+ border: 1px solid #888a85;
+ border-width: 0.25em 1px;
+ border-radius: 0.5em;
+
+ margin: 0em 5em;
+ padding: 1em;
+}
+
+body.whyfreejs .essay p:first-child {
+ margin-top: 0em;
+}
+
+body.whyfreejs .essay .firsts {
+ font-variant: small-caps;
+ font-size: 1.1em;
+}
+
+body.whyfreejs .essay .sign {
+ font-variant: small-caps;
+ text-align: right;
+ font-size: 0.9em;
+
+ margin-top: -1em;
+}
+
+body.whyfreejs .essay .sign a {
+ color: inherit;
+}
+
+body.whyfreejs .essay dl dt.imp {
+ font-weight: bold;
+}
+body.whyfreejs .essay dl dt.imp+dd {
+ margin-bottom: 1em;
+}
+
+body.whyfreejs .essay dl dd {
+ margin-left: 1.5em;
+}
+
+body.whyfreejs p.imgattr {
+ display: inline-block;
+ position: absolute;
+
+ margin: -1em 0px;
+ padding: 0px;
+ font-size: 0.7em;
+
+ transform: rotate(-90deg);
+
+ width: 30em;
+ right: -14.5em;
+ bottom: 16em;
+}
+
+body.whyfreejs p.imgattr a {
+ color: #888a85;
+}
+
blockquote.quote {
font-style: italic;
}
diff --git a/whyfreejs.html b/whyfreejs.html
index 0054211..298a69d 100644
--- a/whyfreejs.html
+++ b/whyfreejs.html
@@ -9,20 +9,96 @@
- GNU ease.js is in a position to help the free software community by providing
- features under a copyleft license that encourages developers to release their
- own code under a compatible free software license. But not everyone may
- understand why this decision and the urging of free (as in freedom) JavaScript
- are so fundamentally vital to the future of a free and cooperative
- Internet accessible to all users, including users of free software.
+ GNU ease.js provides a set of unmatched and desirable features under a
+ copyleft license, which encourages developers to release their own code under
+ a compatible free software license. But not everyone may understand why this
+ decision—and the urging of free (as in freedom) JavaScript—are so
+ fundamentally vital to the future of a free and cooperative Internet that is
+ accessible to everyone, regardless of whether they exclusively use
+ free software.
We need your help to protect the fundamental freedoms of Internet
- users. This article is both a detailed description of the problem
- from the perspective of a user and an appeal to developers to develop free
+ users. This brief essay is an appeal to developers to develop free
software for the Web; it is heavily influenced by Richard Stallman's article
The JavaScript
Trap—which you should also read—and has been written with his
input. If you already write free JavaScript, then thank you.
+
+
+
+ Web pages increasingly include JavaScript code, which
+ raises the same ethical concerns as software written in any other
+ language: Non-free JavaScript can rob you of your right to study,
+ modify, and share the software that you are running. Unlike traditional
+ software, JavaScript usually enters your machine without prompting and often
+ without your knowledge---the simple act of visiting a web page may install
+ and execute a non-free program within your web browser.
+
+
+
+ JavaScript provides an often frictionless cross-platform distribution
+ mechanism that can be exploited without your permission; this amplifies
+ the effects of some of the most insidious anti-features, such as spying
+ on your activities and tracking your movements. If a web page executes
+ non-free code, how are you able to audit it (or have someone else do so
+ on your behalf) to ensure that it is not malicious? Further, how are
+ you or others able to modify the software to remove the malicious code?
+ (Unfortunately, the latter can be complicated even with free JavaScript,
+ but it can be done.)
+
+
+
+ But non-malicious programs sometimes need changes too. You deserve
+ control over all software that runs on your computer; why should you
+ sacrifice this freedom simply because JavaScript creates the illusion
+ of remote execution?
+
+
+
+ How many web sites have you visited today that download JavaScript
+ onto your computer? How many of them respect your freedoms? I chose
+ to license ease.js under the GPLv3+ because I believe that non-free
+ JavaScript should be eliminated, not enabled. Please help to spread
+ the word and join me in writing free JavaScript; without it, we will
+ have an Internet that is locked away from free software users; this is
+ not the spirit in which the Internet was created.
+
+
+
+ Mike Gerwitz
+
+ Author of GNU ease.js
+
+
+
+ - To join in on the FSF's Free JavaScript campaign:
+ -
+
+ https://fsf.org/campaigns/freejs
+
+
+
+ - More information on the JavaScript trap is available here:
+ -
+
+ http://www.gnu.org/philosophy/javascript-trap.html
+
+
+
+ - More information on free software and its freedoms:
+ -
+
+ http://www.gnu.org/philosophy/free-sw.html
+
+
+
+
+
+
+ Another Typing GNU Hacker
+
+
+
From c156c81419fe3101adbdea466e960b186c98afe8 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz
Date: Wed, 12 Mar 2014 22:27:25 -0400
Subject: [PATCH 3/5] Increased saturation of visited link color
Better contrast with white background; easier on the eyes. Saturation
increased by 20 (from the original Tango value).
---
style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/style.css b/style.css
index 37bde21..305ea65 100644
--- a/style.css
+++ b/style.css
@@ -34,7 +34,7 @@ a, a:active, a:link {
text-decoration: none;
}
a:visited {
- color: #729fcf;
+ color: #488acf;
}
a:hover {
text-decoration: underline;
From 6e461a2d021e29e519c7cf322d0ba5c9ee9e2a00 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz
Date: Wed, 12 Mar 2014 22:40:10 -0400
Subject: [PATCH 4/5] Added some links to free js essay
---
style.css | 1 +
whyfreejs.html | 27 ++++++++++++++-------------
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/style.css b/style.css
index 305ea65..b3218fb 100644
--- a/style.css
+++ b/style.css
@@ -456,6 +456,7 @@ body.whyfreejs .essay .sign {
margin-top: -1em;
}
+a.subtle,
body.whyfreejs .essay .sign a {
color: inherit;
}
diff --git a/whyfreejs.html b/whyfreejs.html
index 298a69d..a417c59 100644
--- a/whyfreejs.html
+++ b/whyfreejs.html
@@ -5,17 +5,18 @@
It occurred to me that when we announce ease.js it would be a good occasion to
post something about the importance of making JavaScript code free.
- —Richard Stallman
+ —Richard Stallman
- GNU ease.js provides a set of unmatched and desirable features under a
- copyleft license, which encourages developers to release their own code under
- a compatible free software license. But not everyone may understand why this
- decision—and the urging of free (as in freedom) JavaScript—are so
- fundamentally vital to the future of a free and cooperative Internet that is
- accessible to everyone, regardless of whether they exclusively use
- free software.
+ GNU ease.js provides a set of unmatched and desirable features under a copyleft license,
+ which encourages developers to release their own code under a compatible free software license.
+ But not everyone may understand why this decision—and the urging of free
+ (as in freedom) JavaScript—are so fundamentally vital to the future of a
+ free and cooperative Internet that is accessible to everyone,
+ regardless of whether they exclusively use free software.
@@ -34,8 +35,8 @@
language: Non-free JavaScript can rob you of your right to study,
modify, and share the software that you are running. Unlike traditional
software, JavaScript usually enters your machine without prompting and often
- without your knowledge---the simple act of visiting a web page may install
- and execute a non-free program within your web browser.
+ without your knowledge—the simple act of visiting a web page may
+ install and execute a non-free program within your web browser.
@@ -84,14 +85,14 @@
More information on the JavaScript trap is available here:
- http://www.gnu.org/philosophy/javascript-trap.html
+ https://www.gnu.org/philosophy/javascript-trap.html
More information on free software and its freedoms:
-
- http://www.gnu.org/philosophy/free-sw.html
+
+ https://www.gnu.org/philosophy/free-sw.html
From 2c314ed062bf5c27b986e780e7e50f296ebd1472 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz
Date: Wed, 12 Mar 2014 22:46:35 -0400
Subject: [PATCH 5/5] Added return link to free js essay
---
whyfreejs.html | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/whyfreejs.html b/whyfreejs.html
index a417c59..05c8a2c 100644
--- a/whyfreejs.html
+++ b/whyfreejs.html
@@ -103,3 +103,7 @@
+
+
+ « Return to GNU ease.js home
+