www-commits
[Top][All Lists]
Advanced

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

www/philosophy javascript-trap.pt-br.html po/ja...


From: GNUN
Subject: www/philosophy javascript-trap.pt-br.html po/ja...
Date: Fri, 26 Nov 2021 10:00:52 -0500 (EST)

CVSROOT:        /web/www
Module name:    www
Changes by:     GNUN <gnun>     21/11/26 10:00:51

Modified files:
        philosophy     : javascript-trap.pt-br.html 
Added files:
        philosophy/po  : javascript-trap.pt-br-diff.html 

Log message:
        Automatic update by GNUnited Nations.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/javascript-trap.pt-br.html?cvsroot=www&r1=1.20&r2=1.21
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/po/javascript-trap.pt-br-diff.html?cvsroot=www&rev=1.1

Patches:
Index: javascript-trap.pt-br.html
===================================================================
RCS file: /web/www/www/philosophy/javascript-trap.pt-br.html,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- javascript-trap.pt-br.html  5 Sep 2021 10:06:05 -0000       1.20
+++ javascript-trap.pt-br.html  26 Nov 2021 15:00:51 -0000      1.21
@@ -1,4 +1,9 @@
-<!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" -->
+<!--#set var="PO_FILE"
+ value='<a href="/philosophy/po/javascript-trap.pt-br.po">
+ https://www.gnu.org/philosophy/po/javascript-trap.pt-br.po</a>'
+ --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
+ --><!--#set var="DIFF_FILE" 
value="/philosophy/po/javascript-trap.pt-br-diff.html"
+ --><!--#set var="OUTDATED_SINCE" value="2021-09-27" --><!--#set 
var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" -->
 
 <!--#include virtual="/server/header.pt-br.html" -->
 <!-- Parent-Version: 1.96 -->
@@ -13,6 +18,7 @@
 <!--#include virtual="/server/banner.pt-br.html" -->
 <!--#include virtual="/philosophy/ph-breadcrumb.pt-br.html" -->
 <!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/outdated.pt-br.html" -->
 <!--#include virtual="/server/top-addendum.pt-br.html" -->
 <div class="article reduced-width">
 <h2>A Armadilha do JavaScript</h2>
@@ -332,7 +338,7 @@
 <p class="unprintable"><!-- timestamp start -->
 Última atualização:
 
-$Date: 2021/09/05 10:06:05 $
+$Date: 2021/11/26 15:00:51 $
 
 <!-- timestamp end -->
 </p>

Index: po/javascript-trap.pt-br-diff.html
===================================================================
RCS file: po/javascript-trap.pt-br-diff.html
diff -N po/javascript-trap.pt-br-diff.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ po/javascript-trap.pt-br-diff.html  26 Nov 2021 15:00:51 -0000      1.1
@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<!-- Generated by GNUN -->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>/philosophy/javascript-trap.html-diff</title>
+<style type="text/css">
+span.removed { background-color: #f22; color: #000; }
+span.inserted { background-color: #2f2; color: #000; }
+</style></head>
+<body><pre>
+&lt;!--#include virtual="/server/header.html" --&gt;
+&lt;!-- Parent-Version: 1.96 --&gt;
+&lt;!-- This page is derived from /server/standards/boilerplate.html --&gt;
+&lt;!--#set var="TAGS" value="essays licensing traps" --&gt;
+&lt;!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --&gt;
+&lt;title&gt;The JavaScript <span 
class="removed"><del><strong>Trap&lt;/title&gt;</strong></del></span> <span 
class="inserted"><ins><em>Trap - GNU Project - Free Software 
Foundation&lt;/title&gt;</em></ins></span>
+&lt;!--#include virtual="/philosophy/po/javascript-trap.translist" --&gt;
+&lt;!--#include virtual="/server/banner.html" --&gt;
+&lt;!--#include virtual="/philosophy/ph-breadcrumb.html" --&gt;
+&lt;!--GNUN: OUT-OF-DATE NOTICE--&gt;
+&lt;!--#include virtual="/server/top-addendum.html" --&gt;
+&lt;div class="article reduced-width"&gt;
+&lt;h2&gt;The JavaScript Trap&lt;/h2&gt;
+
+&lt;address class="byline"&gt;by &lt;a 
href="https://www.stallman.org/"&gt;Richard
+Stallman&lt;/a&gt;&lt;/address&gt;
+
+&lt;p&gt;&lt;strong&gt;You may be running nonfree programs on your computer 
every
+day without realizing it&mdash;through your web 
browser.&lt;/strong&gt;&lt;/p&gt;
+
+&lt;!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  --&gt;
+
+&lt;div class="announcement"&gt;
+&lt;hr class="no-display" /&gt;
+&lt;p&gt;Webmasters: there are
+&lt;a href="/software/librejs/free-your-javascript.html"&gt;several 
ways&lt;/a&gt;
+to indicate the license of JavaScript programs in a web site.&lt;/p&gt;
+&lt;hr class="no-display" /&gt;
+&lt;/div&gt;
+
+&lt;p&gt;In the free software community, the idea that
+&lt;a href="/philosophy/free-software-even-more-important.html"&gt;
+any nonfree program mistreats its users&lt;/a&gt; is familiar.  Some of us
+defend our freedom by rejecting all proprietary software on our
+computers.  Many others recognize nonfreeness as a strike against the
+program.&lt;/p&gt;
+
+&lt;p&gt;Many users are aware that this issue applies to the plug-ins that
+browsers offer to install, since they can be free or nonfree.  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.&lt;/p&gt;
+
+&lt;p&gt;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, and disregard the issue.&lt;/p&gt;
+
+&lt;p&gt;Some sites still use JavaScript that way, but many use it for major
+programs that do large jobs.  For instance, Google Docs tries to
+install into your browser a JavaScript program which measures half a
+megabyte, in a compacted form that we could call Obfuscript.  This
+compacted form is made from the source code, by deleting the extra
+spaces that make the code readable and the explanatory remarks that
+make it comprehensible, and replacing each meaningful name in the code
+with an arbitrary short name so we can't tell what it is supposed to
+mean.&lt;/p&gt;
+
+&lt;p&gt;Part of the &lt;a href="/philosophy/free-sw.html"&gt;meaning of free
+software&lt;/a&gt; is that users have access to the program's source code
+(its plan).  The source code of a program means the preferred form for
+programmers to modify&mdash;including helpful spacing, explanatory
+remarks, and meaningful names.  Compacted code is a bogus, useless
+substitute for source code; the real source code of these programs is
+not available to the users, so users cannot understand it; therefore
+the programs are nonfree.&lt;/p&gt;
+
+&lt;p&gt;In addition to being nonfree, many of these programs
+are &lt;em&gt;malware&lt;/em&gt; because
+they &lt;a 
href="https://github.com/w3c/fingerprinting-guidance/issues/8"&gt;snoop
+on the user&lt;/a&gt;.  Even nastier, some sites use services which record
+&lt;a 
href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/"&gt;all
+the user's actions while looking at the page&lt;/a&gt;.  The services
+supposedly &ldquo;redact&rdquo; the recordings to exclude some
+sensitive data that the web site shouldn't get.  But even if that
+works reliably, the whole purpose of these services is to give the web
+site other personal data that it shouldn't get.&lt;/p&gt;
+
+&lt;p&gt;Browsers don't normally tell you when they load JavaScript
+programs.  Some browsers have a way to turn off JavaScript entirely,
+but even if you're aware of this issue, it would take you considerable
+trouble to identify the nontrivial nonfree programs and block them.
+However, even in the free software community most users are not aware
+of this issue; the browsers' silence tends to conceal it.&lt;/p&gt;
+
+&lt;p&gt;To be clear, the language JavaScript is not inherently better or 
worse 
+for users' freedom than any other language.
+It is possible to release a JavaScript program as free software, by
+distributing the source code under a free software license.  If the
+program is self-contained&mdash;if its functioning and purpose are
+independent of the page it came in&mdash;that is fine; you can copy it
+to a file on your machine, modify it, and visit that file with a
+browser to run it.  It's even possible to package it for installation
+just like other free programs and invocation with a shell command.
+These programs present no special moral issue different from those
+of C programs.&lt;/p&gt;
+
+&lt;p&gt;The issue of the JavaScript trap applies when the JavaScript
+program comes along with a web page that users visit.
+Those JavaScript programs are written to work with a
+particular page or site, and the page or site depends on them to
+function.&lt;/p&gt;
+
+&lt;p&gt;Suppose you copy and modify the page's JavaScript code.
+Then another problem arises: even if the program's source
+is available, browsers do not offer a way to run your modified version
+instead of the original when visiting that page or site.  The effect
+is comparable to tivoization, although in principle not quite so hard
+to overcome.&lt;/p&gt;
+
+&lt;p&gt;JavaScript is not the only language web sites use for programs sent
+to the user.  Flash supported programming through an extended variant
+of JavaScript, but that is a thing of the past.  Microsoft 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 adequately for the
+free world unless it normally comes with free replacement codecs.&lt;/p&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+
+&lt;p&gt;It is theoretically possible to program in HTML and CSS, but in
+practice this capability is limited and inconvenient; merely to make
+it do something is an impressive hack.  Such programs ought to be
+free, but CSS is not a serious problem for users' freedom as of
+2019.&lt;/p&gt;
+
+&lt;p&gt;A strong movement has developed that calls for web sites to
+communicate only through formats and protocols that are free (some say
+<span class="removed"><del><strong>&quot;open&quot;);</strong></del></span>
+<span class="inserted"><ins><em>&ldquo;open&rdquo;);</em></ins></span> that is 
to say, whose documentation is published and which
+anyone is free to implement.  However, the presence of JavaScript programs
+in web pages makes that criterion insufficient.  The JavaScript language
+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 can be bad&mdash;if
+the JavaScript program is nonfree.  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;Transmits only 
free
+programs to the user&rdquo; must become part of the criterion
+for an ethical web site.&lt;/p&gt;
+
+&lt;p&gt;Silently loading and running nonfree programs is one among several
+issues raised by <span class="removed"><del><strong>&quot;web 
applications&quot;.</strong></del></span> <span 
class="inserted"><ins><em>&ldquo;web applications.&rdquo;</em></ins></span>  
The term <span class="removed"><del><strong>&quot;web
+application&quot;</strong></del></span> <span 
class="inserted"><ins><em>&ldquo;web
+application&rdquo;</em></ins></span> was designed to disregard the fundamental
+distinction between software delivered to users and software running
+on a 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.&lt;/p&gt;
+
+&lt;p&gt;In practical terms, how can we deal with the problem of nontrivial 
nonfree
+JavaScript programs in web sites?  The first step is to avoid running
+it.&lt;/p&gt;
+
+&lt;p&gt;What do we mean by <span 
class="removed"><del><strong>&quot;nontrivial&quot;?</strong></del></span> 
<span class="inserted"><ins><em>&ldquo;nontrivial&rdquo;?</em></ins></span>  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.&lt;/p&gt;
+&lt;p&gt;
+Our current criterion is to consider a JavaScript program nontrivial
+if any of these conditions is met:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;it is referred to as an external script (from another 
page).&lt;/li&gt;
+
+  &lt;li&gt;it declares an array more than 50 elements long.&lt;/li&gt;
+
+  &lt;li&gt;it defines a named entity (function or method) that calls anything 
other
+      than a primitive.&lt;/li&gt;
+
+  &lt;li&gt;it defines a named entity with more than three conditional
+      constructs and loop construction.&lt;/li&gt;
+
+  &lt;li&gt;code outside of named definitions calls anything but primitives and
+      functions defined further up in the page.&lt;/li&gt;
+
+  &lt;li&gt;code outside of named definitions contains more than three
+      conditional constructs and loop construction, total.&lt;/li&gt;
+
+  &lt;li&gt;it calls &lt;b&gt;eval&lt;/b&gt;.&lt;/li&gt;
+
+  &lt;li&gt;it does Ajax calls.&lt;/li&gt;
+
+  &lt;li&gt;it uses bracket notation for dynamic object property access,
+which looks like 
&lt;b&gt;&lt;em&gt;object&lt;/em&gt;[&lt;em&gt;property&lt;/em&gt;]&lt;/b&gt;.&lt;/li&gt;
+
+  &lt;li&gt;it alters the DOM.&lt;/li&gt;
+  
+  &lt;li&gt;it uses dynamic JavaScript constructs that are difficult to
+    analyze without interpreting the program, or is loaded along with
+    scripts that use such constructs.  Specifically, using any other
+    construct than a string literal with certain methods
+    (&lt;b&gt;Obj.write&lt;/b&gt;, &lt;b&gt;Obj.createElement&lt;/b&gt;, and 
others).&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;How do we tell whether the JavaScript code is free?  In a &lt;a 
+href="/licenses/javascript-labels.html"&gt;separate article&lt;/a&gt;,
+we propose a method 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.&lt;/p&gt;
+
+&lt;p&gt;Finally, we need to change free browsers to detect and block
+nontrivial nonfree JavaScript in web pages.  The program
+&lt;a href="/software/librejs/"&gt;LibreJS&lt;/a&gt; detects nonfree,
+nontrivial JavaScript in pages you visit, and blocks it.  LibreJS is
+included in IceCat, and available as an add-on for Firefox.&lt;/p&gt;
+
+&lt;p&gt;Browser users also need a convenient facility to specify JavaScript
+code to use &lt;em&gt;instead&lt;/em&gt; 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.&lt;/p&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+
+&lt;p&gt;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.&lt;/p&gt;
+
+&lt;!-- any links that used to point to the appendices should point to
+     free-your-javascript.html instead.  --&gt;
+
+&lt;div class="announcement"&gt;
+&lt;hr class="no-display" /&gt;
+&lt;p&gt;Webmasters: there are
+&lt;a href="/software/librejs/free-your-javascript.html"&gt;several 
ways&lt;/a&gt;
+to indicate the license of JavaScript programs in a web site.&lt;/p&gt;
+&lt;hr class="no-display" /&gt;
+&lt;/div&gt;
+
+&lt;p&gt;&lt;strong&gt;Acknowledgements:&lt;/strong&gt; I thank &lt;a 
href="/people/people.html#mattlee"&gt;Matt Lee&lt;/a&gt;
+and &lt;a href="https://johnresig.com/"&gt;John Resig&lt;/a&gt; for their help 
in
+defining our proposed criterion, and David Parunakian for
+bringing the problem to my attention.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;&lt;!-- for id="content", starts in the include above --&gt;
+&lt;!--#include virtual="/server/footer.html" --&gt;
+&lt;div id="footer" role="contentinfo"&gt;
+&lt;div class="unprintable"&gt;
+
+&lt;p&gt;Please send general FSF &amp; GNU inquiries to
+&lt;a href="mailto:gnu@gnu.org"&gt;&lt;gnu@gnu.org&gt;&lt;/a&gt;.
+There are also &lt;a href="/contact/"&gt;other ways to contact&lt;/a&gt;
+the FSF.  Broken links and other corrections or suggestions can be sent
+to &lt;a 
href="mailto:webmasters@gnu.org"&gt;&lt;webmasters@gnu.org&gt;&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;&lt;!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to &lt;a href="mailto:web-translators@gnu.org"&gt;
+        &lt;web-translators@gnu.org&gt;&lt;/a&gt;.&lt;/p&gt;
+
+        &lt;p&gt;For information on coordinating and contributing translations 
of
+        our web pages, see &lt;a
+        href="/server/standards/README.translations.html"&gt;Translations
+        README&lt;/a&gt;. --&gt;
+Please see the &lt;a
+href="/server/standards/README.translations.html"&gt;Translations
+README&lt;/a&gt; for information on coordinating and contributing translations
+of this article.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;!-- Regarding copyright, in general, standalone pages (as opposed to
+     files generated as part of manuals) on the GNU web server should
+     be under CC BY-ND 4.0.  Please do NOT change or remove this
+     without talking with the webmasters or licensing team first.
+     Please make sure the copyright date is consistent with the
+     document.  For web pages, it is ok to list just the latest year the
+     document was modified, or published.
+     
+     If you wish to list earlier years, that is ok too.
+     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+     years, as long as each year in the range is in fact a copyrightable
+     year, i.e., a year in which the document was published (including
+     being publicly visible on the web or in a revision control system).
+     
+     There is more detail about copyright years in the GNU Maintainers
+     Information document, www.gnu.org/prep/maintain. --&gt;
+
+&lt;p&gt;Copyright &copy; 2009-2013, 2016-2019, 2021 Richard Stallman&lt;/p&gt;
+
+&lt;p&gt;This page is licensed under a &lt;a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/"&gt;Creative
+Commons Attribution-NoDerivatives 4.0 International 
License&lt;/a&gt;.&lt;/p&gt;
+
+&lt;!--#include virtual="/server/bottom-notes.html" --&gt;
+
+&lt;p class="unprintable"&gt;Updated:
+&lt;!-- timestamp start --&gt;
+$Date: 2021/11/26 15:00:51 $
+&lt;!-- timestamp end --&gt;
+&lt;/p&gt;
+&lt;/div&gt;
+&lt;/div&gt;&lt;!-- for class="inner", starts in the banner include --&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</pre></body></html>



reply via email to

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