www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/philosophy javascript-trap.pl.html po/javas...


From: Yavor Doganov
Subject: www/philosophy javascript-trap.pl.html po/javas...
Date: Mon, 26 Dec 2011 01:26:19 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Yavor Doganov <yavor>   11/12/26 01:26:19

Modified files:
        philosophy     : javascript-trap.pl.html 
Added files:
        philosophy/po  : javascript-trap.pl-en.html 

Log message:
        Automatic update by GNUnited Nations.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/javascript-trap.pl.html?cvsroot=www&r1=1.12&r2=1.13
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/po/javascript-trap.pl-en.html?cvsroot=www&rev=1.1

Patches:
Index: javascript-trap.pl.html
===================================================================
RCS file: /web/www/www/philosophy/javascript-trap.pl.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- javascript-trap.pl.html     5 Oct 2011 00:35:37 -0000       1.12
+++ javascript-trap.pl.html     26 Dec 2011 01:26:07 -0000      1.13
@@ -111,30 +111,51 @@
 klienta. Oprogramowanie na&nbsp;serwerach omawiamy osobno.</p>
 
 <p>W&nbsp;kwestiach praktycznych, jak możemy sobie radzić z&nbsp;problemem
-niewolnych programów JavaScript na&nbsp;stronach internetowych? Oto plan
-działania.</p>
+niewolnych programów JavaScript na&nbsp;stronach internetowych? Pierwszym
+krokiem jest aby&nbsp;go nie uruchamiać.</p>
 
-<p>Po&nbsp;pierwsze, potrzebujemy praktycznego kryterium dla nietrywialnych
-programów JavaScript. Skoro pojęcie &bdquo;nietrywialności&rdquo; jest
-stopniowane, jest kwestią zaprojektowania prostego kryterium dającego dobre
-rezultaty, raczej niż ustalania jednej poprawnej odpowiedzi.</p>
-
-<p>Naszą propozycją jest by traktować programy JavaScript jako nietrywialne
-jeśli robią one jakiekolwiek żądania AJAX oraz&nbsp;traktować je jako
-nietrywialne także wtedy, gdy definiują metody bądź&nbsp;ładują 
zewnętrzne
-skrypty, bądź&nbsp;są ładowane jako takie.</p>
-
-<p>Na&nbsp;zakończenie tego artykułu proponujemy konwencję, według której
-nietrywialne programy JavaScript na&nbsp;stronie internetowej mogłyby podać
-URL pod&nbsp;którym znajduje się ich kod źródłowy, a&nbsp;także przy
-wykorzystaniu stylizowanych komentarzy określać swoją licencję.</p>
-
-<p>Musimy zmienić wolne przeglądarki by wspierały wolność użytkowników 
stron
-zawierających JavaScript. Przede wszystkim, przeglądarki powinny być
-w&nbsp;stanie poinformować użytkownika o obecności nietrywialnych niewolnych
-programach JavaScript, zamiast uruchamiania ich. Może <a
-href="https://addons.mozilla.org/en-US/firefox/addon/722";>NoScript</a>
-mógłby być zaadaptowany do&nbsp;tego celu.</p>
+<p>Po&nbsp;pierwsze, co mamy na&nbsp;myśli przez &bdquo;nietrywialne&rdquo;?
+Skoro pojęcie &bdquo;nietrywialności&rdquo; jest stopniowane, jest kwestią
+zaprojektowania prostego kryterium dającego dobre rezultaty, raczej niż
+ustalania jednej poprawnej odpowiedzi.</p>
+<p>
+Nasza wstępna zasada jest aby&nbsp;program JavaScript był nietrywialny
+jeśli:</p>
+
+<ul>
+  <li>robi żądania AJAX lub&nbsp;jest ładowany ze skryptami, które robią 
żądania
+AJAX,</li>
+
+  <li>ładuje dynamicznie zewnętrzne skrypty lub&nbsp;jest ładowany razem ze
+skryptami, które to robią,</li>
+
+  <li>definiuje funkcje i&nbsp;albo ładuje zewnętrzny skrypt (z wnętrza 
html)
+lub&nbsp;jest ładowany jako taki,</li>
+  
+  <li>używa dynamiczne struktury JavaScript, które są trudne 
do&nbsp;analizowania
+bez&nbsp;uruchamiania programu, lub&nbsp;jest ładowany razem ze skryptami,
+które używają takich struktur. Te struktury to:
+    <ul>
+      <li>używanie funkcji eval,</li>
+      <li>wywoływanie funkcji za&nbsp;pomocą kwadratowych nawiasów,</li>
+      <li>Używanie konstrukcji innych niż ciąg znaków z&nbsp;niektórymi 
funkcjami
+(Obj.write, Obj.createElement, ...).</li>
+    </ul>
+  </li>
+</ul>
+
+<p>Jak rozróżnić czy&nbsp;dany kod JavaScript jest wolny? 
Na&nbsp;zakończenie
+tego artykułu proponujemy konwencję, według której nietrywialne programy
+JavaScript na&nbsp;stronie internetowej mogłyby podać URL pod&nbsp;którym
+znajduje się ich kod źródłowy, a&nbsp;także przy wykorzystaniu 
stylizowanych
+komentarzy określać swoją licencję.</p>
+
+<p>W&nbsp;końcu musimy zmienić wolne przeglądarki aby&nbsp;rozpoznawały
+i&nbsp;blokowały nietrywialny JavaScript na&nbsp;stronach
+internetowych. Program <a href="http://lduros.net/librejs/";>LibreJS</a>
+wykrywa niewolny, nietrywialny JavaScript na&nbsp;stronach, które
+odwiedzacie i&nbsp;go blokuje. LibreJS jest dodatkiem dla IceCat
+i&nbsp;IceWeasel (i dla Firefoksa).</p>
 
 <p>Użytkownicy przeglądarek potrzebują wygodnej metody określenia kodu
 JavaScript, którego chcą użyć <em>zamiast</em> JavaScript na&nbsp;wybranej
@@ -157,6 +178,12 @@
 oferowane nam do&nbsp;instalacji. Nasza kampania dla stron internetowych by
 uwolnić ich JavaScript może się wtedy zacząć.</p>
 
+<p>W&nbsp;międzyczasie jest jeden przypadek gdzie jest dopuszczalne 
uruchamiać
+niewolny program JavaScript: aby&nbsp;wysłać zażalenie do&nbsp;operatorów
+witryn internetowych, że&nbsp;powinni uwolnić lub&nbsp;usunąć JavaScript ze
+stron. Nie wahajcie się włączyć JavaScript tymczasowo aby&nbsp;to zrobić,
+ale&nbsp;pamiętajcie go potem wyłączyć.</p>
+
 <p><strong>Podziękowania dla <a href="/people/people.html#mattlee">Matta
 Lee</a> i&nbsp;<a href="http://ejohn.org";>Johna Resiga</a> za&nbsp;ich pomoc
 w&nbsp;definiowaniu naszej propozycji kryterium, oraz&nbsp;dla Davida
@@ -260,11 +287,13 @@
 
 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
 Tłumaczenie: Jan Wieremjewicz 2010; poprawki Jan Owoc 2010, 2011.</div>
+
+
  <p>
 <!-- timestamp start -->
 Aktualizowane:
 
-$Date: 2011/10/05 00:35:37 $
+$Date: 2011/12/26 01:26:07 $
 
 <!-- timestamp end -->
 </p>

Index: po/javascript-trap.pl-en.html
===================================================================
RCS file: po/javascript-trap.pl-en.html
diff -N po/javascript-trap.pl-en.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ po/javascript-trap.pl-en.html       26 Dec 2011 01:26:13 -0000      1.1
@@ -0,0 +1,297 @@
+<!--#include virtual="/server/header.html" -->
+<title>The JavaScript Trap</title>
+<!--#include virtual="/server/banner.html" -->
+<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
+
+<h2>The JavaScript Trap</h2>
+
+<p>by <a href="http://www.stallman.org/";>Richard Stallman</a></p>
+
+<p><strong>You may be running nonfree programs on your computer every
+day without realizing it&mdash;through your web browser.</strong></p>
+
+<p>In the free software community, the idea that nonfree programs
+mistreat their users is familiar.  Some of us refuse entirely to
+install proprietary software, and many others consider nonfreedom a
+strike against the program.  Many users are aware that this issue
+applies to the plug-ins that browsers offer to install, since they can
+be free or nonfree.</p>
+
+<p>But browsers run other nonfree programs which they don't ask you
+about or even tell you about&mdash;programs that web pages contain or
+link to.  These programs are most often written in JavaScript, though
+other languages are also used.</p>
+
+<p>JavaScript (officially called ECMAScript, but few use that name) was
+once used for minor frills in web pages, such as cute but inessential
+navigation and display features.  It was acceptable to consider these
+as mere extensions of HTML markup, rather than as true software; they
+did not constitute a significant issue.</p>
+
+<p>Many sites still use JavaScript that way, but some use it for major
+programs that do large jobs.  For instance, Google Docs downloads into
+your machine a JavaScript program which measures half a megabyte, in a
+compacted form that we could call Obfuscript because it has no
+comments and hardly any whitespace, and the method names are one
+letter long.  The source code of a program is the preferred form for
+modifying it; the compacted code is not source code, and the real
+source code of this program is not available to the user.</p>
+
+<p>Browsers don't normally tell you when they load JavaScript programs.
+Most browsers have a way to turn off JavaScript entirely, but none of
+them can check for JavaScript programs that are nontrivial and
+nonfree.  Even if you're aware of this issue, it would take you
+considerable trouble to identify and then block those programs.
+However, even in the free software community most users are not aware
+of this issue; the browsers' silence tends to conceal it.</p>
+
+<p>It is possible to release a JavaScript program as free software, by
+distributing the source code under a free software license.  But even
+if the program's source is available, there is no easy way to run your
+modified version instead of the original.  Current free browsers do
+not offer a facility to run your own modified version instead of the
+one delivered in the page.  The effect is comparable to tivoization,
+although not quite so hard to overcome.</p>
+
+<p>JavaScript is not the only language web sites use for programs sent to
+the user.  Flash supports programming through an extended variant of
+JavaScript.  We will need to study the issue of Flash to make suitable
+recommendations.  Silverlight seems likely to create a problem similar
+to Flash, except worse, since Microsoft uses it as a platform for
+nonfree codecs.  A free replacement for Silverlight does not do the job
+for the free world unless it normally comes with free replacement codecs.</p>
+
+<p>Java applets also run in the browser, and raise similar issues.  In
+general, any sort of applet system poses this sort of problem.  Having
+a free execution environment for an applet only brings us far enough
+to encounter the problem.</p>
+
+<p>A strong movement has developed that calls for web sites to
+communicate only through formats and protocols that are free (some say
+&quot;open&quot;); that is to say, whose documentation is published and which
+anyone is free to implement.  With the presence of programs in web
+pages, that criterion is necessary, but not sufficient.  JavaScript
+itself, as a format, is free, and use of JavaScript in a web site is
+not necessarily bad.  However, as we've seen above, it also isn't
+necessarily OK.  When the site transmits a program to the user, it is
+not enough for the program to be written in a documented and
+unencumbered language; that program must be free, too.  &ldquo;Only free
+programs transmitted to the user&rdquo; must become part of the criterion
+for proper behavior by web sites.</p>
+
+<p>Silently loading and running nonfree programs is one among several
+issues raised by &quot;web applications&quot;.  The term &quot;web
+application&quot; was designed to disregard the fundamental
+distinction between software delivered to users and software running
+on the server.  It can refer to a specialized client program running
+in a browser; it can refer to specialized server software; it can
+refer to a specialized client program that works hand in hand with
+specialized server software.  The client and server sides raise
+different ethical issues, even if they are so closely integrated that
+they arguably form parts of a single program.  This article addresses
+only the issue of the client-side software.  We are addressing the
+server issue separately.</p>
+
+<p>In practical terms, how can we deal with the problem of nonfree
+JavaScript programs in web sites?  The first step is to avoid running
+it.</p>
+
+<p>What do we mean by &quot;nontrivial&quot;?  It is a matter of
+degree, so this is a matter of designing a simple criterion that gives
+good results, rather than finding the one correct answer.</p>
+<p>
+Our tentative policy is to consider a JavaScript program nontrivial if:</p>
+
+<ul>
+  <li>it makes an AJAX request or is loaded along with scripts that make
+    an AJAX request,</li>
+
+  <li>it loads external scripts dynamically or is loaded along with
+    scripts that do,</li>
+
+  <li>it defines functions or methods and either loads an external script
+    (from html) or is loaded as one,</li>
+  
+  <li>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:
+    <ul>
+      <li>using the eval function,</li>
+      <li>calling methods with the square bracket notation,</li>
+      <li>using any other construct than a string literal with
+       certain methods (Obj.write, Obj.createElement, ...).</li>
+    </ul>
+  </li>
+</ul>
+
+<p>How do we tell whether the JavaScript code is free?  At the end of
+this article we propose a convention by which a nontrivial JavaScript
+program in a web page can state the URL where its source code is
+located, and can state its license too, using stylized comments.</p>
+
+<p>Finally, we need to change free browsers to detect and block
+nontrivial nonfree JavaScript in web pages.  The program
+<a href="http://lduros.net/librejs/";>LibreJS</a> detects nonfree,
+nontrivial JavaScript in pages you visit, and blocks it.  LibreJS is
+an add-on for IceCat and IceWeasel (and Firefox).</p>
+
+<p>Browser users also need a convenient facility to specify JavaScript
+code to use <em>instead</em> of the JavaScript in a certain page.
+(The specified code might be total replacement, or a modified version
+of the free JavaScript program in that page.)  Greasemonkey comes close
+to being able to do this, but not quite, since it doesn't guarantee to
+modify the JavaScript code in a page before that program starts to
+execute.  Using a local proxy works, but is too inconvenient now to be
+a real solution.  We need to construct a solution that is reliable and
+convenient, as well as sites for sharing changes.  The GNU Project
+would like to recommend sites which are dedicated to free changes
+only.</p>
+
+<p>These features will make it possible for a JavaScript program included
+in a web page to be free in a real and practical sense.  JavaScript
+will no longer be a particular obstacle to our freedom&mdash;no more than
+C and Java are now.  We will be able to reject and even replace the
+nonfree nontrivial JavaScript programs, just as we reject and replace
+nonfree packages that are offered for installation in the usual way.
+Our campaign for web sites to free their JavaScript can then begin.</p>
+
+<p>In the mean time, there's one case where it is acceptable to run a
+nonfree JavaScript program: to send a complaint to the website
+operators saying they should free or remove the JavaScript code in the
+site.  Please don't hesitate to enable JavaScript temporarily to do
+that&mdash;but remember to disable it again afterwards.</p>
+
+<p><strong>Thank you to <a href="/people/people.html#mattlee">Matt Lee</a>
+and <a href="http://ejohn.org";>John Resig</a> for their help in
+defining our proposed criterion, and to David Parunakian for
+helping to make me aware of the problem.</strong></p>
+
+<h3>Appendix: a convention for releasing free JavaScript programs</h3>
+
+<p>For references to corresponding source code, we recommend</p>
+<pre dir="ltr">
+
+    // @source:
+
+</pre>
+
+<p>followed by the URL.</p>
+
+<p>To indicate the license of the JavaScript code embedded in a page, we
+recommend putting the license notice between two notes of this form:</p>
+<pre dir="ltr">
+<!--TRANSLATORS: Do not translate these license notices.  The <pre>
+    elements have dir="ltr" explicitly set to cater for RTL languages.-->
+    @licstart  The following is the entire license notice for the 
+    JavaScript code in this page.
+    ...
+    @licend  The above is the entire license notice
+    for the JavaScript code in this page.
+
+</pre>
+<p>Of course, all of this should be contained in a multiline comment.</p>
+
+<p>The <a href="/licenses/gpl.html">GNU GPL</a>, like many other free
+software licenses, requires distribution of a copy of the license with
+both source and binary forms of the program.  However, the GNU GPL is
+long enough that including it in a page with a JavaScript program can
+be inconvenient.  You can remove that requirement, for code that you
+have the copyright on, with a license notice like this:</p>
+<pre dir="ltr">
+
+    Copyright (C) YYYY  Developer
+
+    The JavaScript code in this page is free software: you can
+    redistribute it and/or modify it under the terms of the GNU
+    General Public License (GNU GPL) as published by the Free Software
+    Foundation, either version 3 of the License, or (at your option)
+    any later version.  The code is distributed WITHOUT ANY WARRANTY;
+    without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+
+    As additional permission under GNU GPL version 3 section 7, you
+    may distribute non-source (e.g., minimized or compacted) forms of
+    that code without the copy of the GNU GPL normally required by
+    section 4, provided you include this license notice and a URL
+    through which recipients can access the Corresponding Source.
+
+</pre>
+
+<p>I thank Jaffar Rumith for bringing this issue to my attention.</p>
+</div>
+<!--#include virtual="/server/footer.html" -->
+
+<div id="footer">
+
+<p>
+Please send FSF &amp; GNU inquiries to 
+<a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.
+<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+</p>
+
+<p>
+Please see the 
+<a href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting
+translations of this article.
+</p>
+
+<p>Copyright &copy; 2009, 2010 Richard Stallman</p>
+
+<p>This work is licensed under the Creative Commons Attribution-No
+Derivative Works 3.0 United States License. To view a copy of this
+license,
+visit <a 
href="http://creativecommons.org/licenses/by-nd/3.0/us/";>http://creativecommons.org/licenses/by-nd/3.0/us/</a>
+or send a letter to Creative Commons, 171 Second Street, Suite 300,
+San Francisco, California, 94105, USA.</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+$Date: 2011/12/26 01:26:13 $
+<!-- timestamp end -->
+</p>
+</div>
+
+<!-- <div id="translations"> -->
+<!-- <h4>Translations of this page</h4> -->
+<!--  -->
+<!-- Please keep this list alphabetical by language code. -->
+<!-- Comment what the language is for each type, i.e. de is German. -->
+<!-- Write the language name in its own language (Deutsch) in the text. -->
+<!-- If you add a new language here, please -->
+<!-- advise address@hidden and add it to -->
+<!--  - /home/www/html/server/standards/README.translations.html -->
+<!--  - one of the lists under the section "Translations Underway" -->
+<!--  - if there is a translation team, you also have to add an alias -->
+<!--  to mail.gnu.org:/com/mailer/aliases -->
+<!-- Please also check you have the language code right; see: -->
+<!-- http://www.loc.gov/standards/iso639-2/php/code_list.php -->
+<!-- If the 2-letter ISO 639-1 code is not available, -->
+<!-- use the 3-letter ISO 639-2. -->
+<!-- Please use W3C normative character entities. -->
+<!--  -->
+<!-- <ul class="translations-list"> -->
+<!-- Arabic -->
+<!-- <li><a 
href="/philosophy/javascript-trap.ar.html">&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;</a>&nbsp;[ar]</li>
 -->
+<!-- English -->
+<!-- <li><a href="/philosophy/javascript-trap.html">English</a>&nbsp;[en]</li> 
-->
+<!-- Spanish -->
+<!-- <li><a 
href="/philosophy/javascript-trap.es.html">espa&#x00f1;ol</a>&nbsp;[es]</li> -->
+<!-- Farsi (Persian) -->
+<!-- <li><a 
href="/philosophy/javascript-trap.fa.html">&#x0641;&#x0627;&#x0631;&#x0633;&#x06cc;</a>&nbsp;[fa]</li>
 -->
+<!-- French -->
+<!-- <li><a 
href="/philosophy/javascript-trap.fr.html">fran&ccedil;ais</a>&nbsp;[fr]</li> 
-->
+<!-- Polish -->
+<!-- <li><a 
href="/philosophy/javascript-trap.pl.html">polski</a>&nbsp;[pl]</li> -->
+<!-- Russian -->
+<!-- <li><a 
href="/philosophy/javascript-trap.ru.html">&#x0440;&#x0443;&#x0441;&#x0441;&#x043a;&#x0438;&#x0439;</a>&nbsp;[ru]</li>
 -->
+<!-- </ul> -->
+<!-- </div> -->
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]