[Top][All Lists]
[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 serwerach omawiamy osobno.</p>
<p>W kwestiach praktycznych, jak możemy sobie radziÄ z problemem
-niewolnych programów JavaScript na stronach internetowych? Oto plan
-dziaÅania.</p>
+niewolnych programów JavaScript na stronach internetowych? Pierwszym
+krokiem jest aby go nie uruchamiaÄ.</p>
-<p>Po pierwsze, potrzebujemy praktycznego kryterium dla nietrywialnych
-programów JavaScript. Skoro pojÄcie „nietrywialnoÅci” 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 traktowaÄ je jako
-nietrywialne także wtedy, gdy definiujÄ
metody bÄ
dź ÅadujÄ
zewnÄtrzne
-skrypty, bÄ
dź sÄ
Åadowane jako takie.</p>
-
-<p>Na zakoÅczenie tego artykuÅu proponujemy konwencjÄ, wedÅug której
-nietrywialne programy JavaScript na stronie internetowej mogÅyby podaÄ
-URL pod którym znajduje siÄ ich kod źródÅowy, a 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 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 tego celu.</p>
+<p>Po pierwsze, co mamy na myÅli przez „nietrywialne”?
+Skoro pojÄcie „nietrywialnoÅci” 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 program JavaScript byÅ nietrywialny
+jeÅli:</p>
+
+<ul>
+ <li>robi żÄ
dania AJAX lub jest Åadowany ze skryptami, które robiÄ
żÄ
dania
+AJAX,</li>
+
+ <li>Åaduje dynamicznie zewnÄtrzne skrypty lub jest Åadowany razem ze
+skryptami, które to robiÄ
,</li>
+
+ <li>definiuje funkcje i albo Åaduje zewnÄtrzny skrypt (z wnÄtrza
html)
+lub jest Åadowany jako taki,</li>
+
+ <li>używa dynamiczne struktury JavaScript, które sÄ
trudne
do analizowania
+bez uruchamiania programu, lub 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 pomocÄ
kwadratowych nawiasów,</li>
+ <li>Używanie konstrukcji innych niż ciÄ
g znaków z niektórymi
funkcjami
+(Obj.write, Obj.createElement, ...).</li>
+ </ul>
+ </li>
+</ul>
+
+<p>Jak rozróżniÄ czy dany kod JavaScript jest wolny?
Na zakoÅczenie
+tego artykuÅu proponujemy konwencjÄ, wedÅug której nietrywialne programy
+JavaScript na stronie internetowej mogÅyby podaÄ URL pod którym
+znajduje siÄ ich kod źródÅowy, a także przy wykorzystaniu
stylizowanych
+komentarzy okreÅlaÄ swojÄ
licencjÄ.</p>
+
+<p>W koÅcu musimy zmieniÄ wolne przeglÄ
darki aby rozpoznawaÅy
+i blokowaÅy nietrywialny JavaScript na stronach
+internetowych. Program <a href="http://lduros.net/librejs/">LibreJS</a>
+wykrywa niewolny, nietrywialny JavaScript na stronach, które
+odwiedzacie i go blokuje. LibreJS jest dodatkiem dla IceCat
+i 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 wybranej
@@ -157,6 +178,12 @@
oferowane nam do instalacji. Nasza kampania dla stron internetowych by
uwolniÄ ich JavaScript może siÄ wtedy zaczÄ
Ä.</p>
+<p>W miÄdzyczasie jest jeden przypadek gdzie jest dopuszczalne
uruchamiaÄ
+niewolny program JavaScript: aby wysÅaÄ zażalenie do operatorów
+witryn internetowych, że powinni uwolniÄ lub usunÄ
Ä JavaScript ze
+stron. Nie wahajcie siÄ wÅÄ
czyÄ JavaScript tymczasowo aby to zrobiÄ,
+ale pamiÄtajcie go potem wyÅÄ
czyÄ.</p>
+
<p><strong>PodziÄkowania dla <a href="/people/people.html#mattlee">Matta
Lee</a> i <a href="http://ejohn.org">Johna Resiga</a> za ich pomoc
w definiowaniu naszej propozycji kryterium, oraz 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—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—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
+"open"); 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. “Only free
+programs transmitted to the user” 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 "web applications". The term "web
+application" 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 "nontrivial"? 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—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—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 & GNU inquiries to
+<a href="mailto:address@hidden"><address@hidden></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"><address@hidden></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 © 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">العربية</a> [ar]</li>
-->
+<!-- English -->
+<!-- <li><a href="/philosophy/javascript-trap.html">English</a> [en]</li>
-->
+<!-- Spanish -->
+<!-- <li><a
href="/philosophy/javascript-trap.es.html">español</a> [es]</li> -->
+<!-- Farsi (Persian) -->
+<!-- <li><a
href="/philosophy/javascript-trap.fa.html">فارسی</a> [fa]</li>
-->
+<!-- French -->
+<!-- <li><a
href="/philosophy/javascript-trap.fr.html">français</a> [fr]</li>
-->
+<!-- Polish -->
+<!-- <li><a
href="/philosophy/javascript-trap.pl.html">polski</a> [pl]</li> -->
+<!-- Russian -->
+<!-- <li><a
href="/philosophy/javascript-trap.ru.html">русский</a> [ru]</li>
-->
+<!-- </ul> -->
+<!-- </div> -->
+</div>
+</body>
+</html>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- www/philosophy javascript-trap.pl.html po/javas...,
Yavor Doganov <=