taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

javascript-trap.html (17571B)


      1 <!--#set var="PO_FILE"
      2  value='<a href="/philosophy/po/javascript-trap.lt.po">
      3  https://www.gnu.org/philosophy/po/javascript-trap.lt.po</a>'
      4  --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
      5  --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.lt-diff.html"
      6  --><!--#set var="OUTDATED_SINCE" value="2016-03-27" -->
      7 
      8 <!--#include virtual="/server/header.lt.html" -->
      9 <!-- Parent-Version: 1.77 -->
     10 
     11 <!-- This file is automatically generated by GNUnited Nations! -->
     12 <title>JavaScript spąstai</title>
     13 
     14 <!--#include virtual="/philosophy/po/javascript-trap.translist" -->
     15 <!--#include virtual="/server/banner.lt.html" -->
     16 <!--#include virtual="/server/outdated.lt.html" -->
     17 <h2>JavaScript spąstai</h2>
     18 
     19 <p>Pagal <a href="http://www.stallman.org/">Richard Stallman</a></p>
     20 
     21 <p><strong>Jūs galbūt šito nesuvokdami kiekvieną dieną savo kompiuteryje
     22 leidžiate nelaisvas programas &ndash; per savo tinklo naršyklę.</strong></p>
     23 
     24 <p>Laisvos programinės įrangos bendruomenėje, idėja, kad nelaisvos programos
     25 išnaudoja jų naudotojus yra žinoma.  Kai kurie iš mūsų visiškai atsisakome
     26 įdiegti nuosavybinę programinę įrangą ir daug kitų nelaisvę laiko smūgiu
     27 prieš tą programą.  Daug naudotojų žino, kad ši problema taikoma
     28 programiniams priedams, kuriuos naršyklės siūlo įdiegti, kadangi jie gali
     29 būti laisvi arba nelaisvi.</p>
     30 
     31 <p>Bet naršyklės leidžia kitas nelaisvas programas, apie kurias jos jūsų
     32 neatsiklausia ar jums net neužsimena &ndash; programos, kurias turi, ar
     33 nurodo į, tinklapiai.  Šios programos dažniausiai yra parašytos JavaScript,
     34 nors kitos kalbos taip pat yra naudojamos.</p>
     35 
     36 <p>JavaScript (oficialiai vadinama ECMAScript, bet mažuma naudoja tą
     37 pavadinimą) kažkada buvo naudojama mažiems tinklapių padekoravimams, tokiems
     38 kaip miela, bet neesminė navigacija ir vaizdavimo ypatybės.  Šiuos buvo
     39 priimtina laikyti paprastais HTML žymėjimo išplėtimais, o ne kaip tikrą
     40 programinę įrangą; jie reikšmingos problemos nesudarė.</p>
     41 
     42 <p>Daug svetainių vis dar naudoja JavaScript tokiu būdu, bet kai kurios ją
     43 naudoja svarbioms programoms, kurios atlieka didelius darbus.  Pavyzdžiui,
     44 Google Docs į jūsų mašiną bando atsiųsti JavaScript programą, kuri apima
     45 pusę megabaito, kompaktiška forma, kurią mes galėtume pavadinti
     46 Užslėpt-scenarijumi, nes joje nėra jokių komentarų ir vos keli tarpai, ir
     47 metodų pavadinimai yra vienos raidės ilgio.  Programos šaltinio kodas yra
     48 pageidautina forma jos modifikavimui; kompaktiškas kodas nėra šaltinio kodas
     49 ir tikrasis šitos programos šaltinio kodas naudotojui nėra prieinamas.</p>
     50 
     51 <p>Naršyklės įprastai jums nepraneša kada jos įkrauna JavaScript programas.
     52 Kai kurios naršyklės turi būdą JavaScript išjungti visiškai, bet net jei
     53 jums ši problema yra žinoma, jums kiltų daug problemų identifikuoti tas
     54 nepaprastas, nelaisvas programas ir jas užblokuoti.  Tačiau, net laisvos
     55 programinės įrangos bendruomenėje dauguma naudotojų nežino apie šią
     56 problemą; naršyklių tyla linksta ją nuslėpti.</p>
     57 
     58 <p>Yra įmanoma JavaScript programą išleisti laisva programine įranga, šaltinio
     59 kodą platinant pagal laisvos programinės įrangos licenciją.  Jei ta programa
     60 yra savarankiška &ndash; jei jos funkcionavimas ir paskirtis yra
     61 nepriklausomi nuo puslapio, kuriame ji patalpinta &ndash; tai yra gerai; jūs
     62 ją galite nukopijuoti į failą savo mašinoje, jį modifikuoti ir atverti tą
     63 failą su naršykle jo leidimui.  Bet tai yra neįprastas atvejis.</p>
     64 
     65 <p>Įprastu atveju, JavaScript programos yra numatytos veikti su konkrečiu
     66 puslapiu ar svetaine ir to puslapio ar svetainės funkcionavimas priklauso
     67 nuo jų.  Tada iškyla dar viena problema: net jei programos šaltinis yra
     68 prieinamas, naršyklės nesiūlo būdo leisti jūsų modifikuotą versiją vietoje
     69 originalios, kai lankomasi tame puslapyje ar svetainėje.  Šis efektas yra
     70 palyginamas su tivoizacija<sup><a href="#TransNote1">1</a></sup>, nors iš
     71 principo ir ne tiek sunkus įveikti.</p>
     72 
     73 <p>JavaScript nėra vienintelė tinklo svetainių naudojama kalba naudotojui
     74 atsiųstoms programoms.  Flash palaiko programavimą per išplėstos JavaScript
     75 variantą; jei mes kada nors turėsime pakankamai išbaigtą, laisvą Flash
     76 grotuvą, mums reikės spręsti nelaisvų Flash programų problemą.  Silverlight
     77 atrodo tikėtina sukurs problemą panašią į Flash, tik blogesnę, kadangi
     78 Microsoft ją naudoja kaip platformą nelaisvai kodavimo ir dekodavimo
     79 programinei įrangai.  Laisvas Silverlight pakaitalas neatlieka darbo laisvam
     80 pasauliui, nebent jis įprastai pristatomas su pakaitine laisva kodavimo ir
     81 dekodavimo programine įranga.</p>
     82 
     83 <p>Java programėlės taip pat leidžiamos naršyklėje ir kelia panašias
     84 problemas.  Bendrai, bet kokio tipo programėlės sistema kelia šio tipo
     85 problemą.  Laisvos vykdymo aplinkos programėlei turėjimas mus priartina tik
     86 tiek, kad susidurtume su ta problema.</p>
     87 
     88 <p>Teoriškai yra įmanoma programuoti su HTML ir CSS, bet praktikoje šis
     89 gebėjimas yra ribotas ir nepatogus; net kažkokio mažmožio padarymas yra
     90 įspūdingas įkirtis.  Tokios programos turėtų būti laisvos, bet CSS nėra
     91 rimta problema naudotojų laisvei 2016&nbsp;m.</p>
     92 
     93 <p>Išsivystė stiprus judėjimas, kuris tinklo svetaines kviečia komunikuoti tik
     94 per formatus ir protokolus, kurie yra laisvi (kai kurie sako
     95 &bdquo;atviri&ldquo;); taip sakant, kurių dokumentacija yra paviešinta ir
     96 kuriuos bet kas yra laisvas įgyvendinti.  Su programų tinklapiuose buvimu,
     97 tas kriterijus yra būtinas, bet nepakankamas.  Pati JavaScript, kaip
     98 formatas, yra laisva ir JavaScript naudojimas tinklo svetainėje nebūtinai
     99 yra blogai.  Tačiau, kaip mes pamatėme anksčiau, jis taip pat nebūtinai yra
    100 gerai.  Kai svetainė naudotojui persiunčia programą, nėra pakankama tai
    101 programai būti parašyta dokumentuota ir aiškia kalba; ta programa turi būti
    102 laisva, irgi.  &bdquo;Tik laisvos programos persiųstos naudotojui&ldquo;
    103 privalo tapti to kriterijaus dalimi tinkamam tinklo svetainių elgesiui.</p>
    104 
    105 <p>Tyliai įkraunant ir leidžiant nelaisvas programas yra viena iš keleto
    106 problemų, iškeltų &bdquo;tinklo aplikacijomis&ldquo;.  Terminas
    107 &bdquo;tinklo aplikacija&ldquo; buvo suprojektuotas nepaisyti fundamentalaus
    108 skirtumo tarp programinės įrangos pristatytos naudotojams ir programinės
    109 įrangos leidžiamos serveryje.  Jis gali reikšti naršyklėje leidžiamą
    110 specializuotą klientinę programą; jis gali reikšti specializuotą serverinę
    111 programinę įrangą; jis gali reikšti specializuotą klientinę programą, kuri
    112 iš vien veikia su specializuota serverine programine įranga.  Kliento ir
    113 serverio pusės kelia skirtingas etines problemas, net jei jos yra taip
    114 glaudžiai integruotos, kad jos argumentuotai sudaro vienos programos dalis.
    115 Šis straipsnis nagrinėja tik kliento pusės programinės įrangos problemą.
    116 Mes nagrinėjame serverio problemą atskirai.</p>
    117 
    118 <p>Praktiniais terminais, kaip mes galime elgtis su nelaisvų JavaScript
    119 programų tinklo svetainėse problema? Pirmas žingsnis yra išvengti jos
    120 leidimo.</p>
    121 
    122 <p>Ką mes turime mintyje &bdquo;nepaprastomis&ldquo;? Tai yra laipsnio
    123 reikalas, taigi, tai yra paprasto kriterijaus, kuris duoda gerus rezultatus,
    124 projektavimo reikalas, o ne vieno teisingo atsakymo suradimas.</p>
    125 <p>
    126 Mūsų preliminari politika yra JavaScript programą laikyti nepaprasta jei:</p>
    127 
    128 <ul>
    129   <li>ji atlieka AJAX užklausą ar yra įkraunama kartu su scenarijais, kurie
    130 atlieka AJAX užklausą;</li>
    131 
    132   <li>ji įkrauna išorinius scenarijus dinamiškai ar yra įkrauta kartu su
    133 scenarijais, kurie taip daro;</li>
    134 
    135   <li>ji apibrėžia funkcijas ar metodus ir arba įkrauna išorinį scenarijų (iš
    136 html), arba yra įkrauta kaip toks;</li>
    137   
    138   <li>ji naudoja dinamines JavaScript konstrukcijas, kurias yra sunku analizuoti
    139 neinterpretuojant tos programos ar yra įkrauta kartu su scenarijais, kurie
    140 naudoja tokias konstrukcijas.  Šios konstrukcijos yra:
    141     <ul>
    142       <li>eval funkcijos naudojimas;</li>
    143       <li>metodų kvietimas su kvadratinių skliaustų žymėjimu;</li>
    144       <li>naudojimas bet kokios kitos konstrukcijos, nei teksto grandinės raidinio, su
    145 tam tikrais metodais (Obj.write, Obj.createElement, ...).</li>
    146     </ul>
    147   </li>
    148 </ul>
    149 
    150 <p>Kaip mes galime atskirti, kad JavaScript kodas yra laisvas? Šio straipsnio
    151 pabaigoje mes siūlome konvenciją, kuria nepaprasta JavaScript programa
    152 tinklapyje gali nurodyti URL kur jos šaltinio kodas randasi ir gali nurodyti
    153 jo licenciją irgi, naudojant stilizuotus komentarus.</p>
    154 
    155 <p>Pabaigai, mums reikia pakeisti laisvas naršykles tinklapiuose pastebėti ir
    156 užblokuoti nepaprastą, nelaisvą JavaScript.  <a
    157 href="/software/librejs/">LibreJS</a> programa pastebi nelaisvą, nepaprastą
    158 JavaScript jūsų lankomuose puslapiuose ir ją užblokuoja.  LibreJS yra IceCat
    159 ir IceWeasel (ir Firefox) priedas.</p>
    160 
    161 <p>Naršyklės naudotojams taip pat reikia patogios priemonės nurodyti JavaScript
    162 kodą naudojimui <em>vietoje</em> JavaScript tam tikrame puslapyje.  (Šis
    163 nurodytas kodas gali būti visiškas pakaitalas ar modifikuota laisvos
    164 JavaScript programos tame puslapyje versija.)  Greasemonkey yra arti
    165 galėjimo šitą padaryti, bet nevisai, kadangi ji negarantuoja JavaScript kodo
    166 puslapyje modifikavimo prieš tos programos vykdymo pradžią.  Vietinio
    167 įgaliojimo naudojimas veikia, bet jis dabar yra per daug nepatogus būti
    168 realiu sprendimu.  Mums reikia sukonstruoti sprendimą, kuris yra patikimas
    169 ir patogus, kaip ir svetainių dalinimuisi pakeitimais.  GNU projektas norėtų
    170 parekomenduoti svetaines, kurios yra dedikuotos tik laisviems pakeitimams.</p>
    171 
    172 <p>Šios ypatybės padarys įmanomu JavaScript programai įtrauktai į tinklapį būti
    173 laisva realia ir praktine prasmėmis.  JavaScript daugiau nebus konkreti
    174 kliūtis mūsų laisvei &ndash; ne daugiau nei C ir Java dabar yra.  Mes
    175 galėsime atmesti ir net pakeisti nelaisvas, nepaprastas JavaScript
    176 programas, lygiai taip, kaip mes atmetame ir pakeičiame nelaisvus paketus,
    177 kurie yra siūlomi įdiegti įprastu būdu.  Mūsų kampanija tinklo svetainėms
    178 išlaisvinti jų JavaScript gali tada prasidėti.</p>
    179 
    180 <p>Tuo tarpu, yra vienas atvejis kai yra priimtina leisti nelaisvą JavaScript
    181 programą: išsiųsti nusiskundimą tinklo svetainės operatoriams, sakantį jie
    182 turėtų išlaisvinti arba pašalinti JavaScript kodą toje svetainėje.  Prašome
    183 nedvejokite laikinai aktyvuoti JavaScript to padarymui &ndash; bet
    184 prisiminkite po to ją vėl išjungti.</p>
    185 
    186 <p><strong>Ačiū jums <a href="/people/people.html#mattlee">Matt Lee</a> ir <a
    187 href="http://ejohn.org">John Resig</a> už jų pagalbą apibrėžiant mūsų
    188 pasiūlytą kriterijų, ir David Parunakian už pagalbą man šią problemą
    189 sužinoti.</strong></p>
    190 
    191 <h3 id="AppendixA">A priedas: konvencija laisvų JavaScript programų išleidimui</h3>
    192 
    193 <p>Nuorodoms į atitinkamą šaltinio kodą, mes rekomenduojame</p>
    194 <pre dir="ltr">
    195 
    196     // @source:
    197 
    198 </pre>
    199 
    200 <p>užbaigiant su URL.  Tai patenkina GNU GPL reikalavimą platinti šaltinio
    201 kodą.  Jei tas šaltinis yra kitoje svetainėje, jūs privalote pasirūpinti <a
    202 href="/licenses/gpl-faq.html#SourceAndBinaryOnDifferentSites">tinkamu to
    203 sutvarkymu</a>.  Šaltinio kodas programai būti laisva yra būtinas.
    204 </p>
    205 
    206 <p>Įkelto į puslapį JavaScript kodo licencijos parodymui, mes rekomenduojame
    207 tos licencijos pastabos patalpinimą tarp dviejų tokios formos pastabų:</p>
    208 <pre dir="ltr">
    209 <!--TRANSLATORS: Do not translate these license notices.  The <pre>
    210 
    211     elements have dir="ltr" explicitly set to cater for RTL languages.-->
    212 
    213     @licstart  The following is the entire license notice for the 
    214     JavaScript code in this page.
    215     ...
    216     @licend  The above is the entire license notice
    217     for the JavaScript code in this page.
    218 
    219 </pre>
    220 <p>Žinoma, visa tai turėtų būti patalpinta keleto eilučių komentare.</p>
    221 
    222 <p><a href="/licenses/gpl.html">GNU GPL</a>, kaip daug kitų laisvos programinės
    223 įrangos licencijų, reikalauja licencijos kopijos platinimo su abejomis
    224 &ndash; šaltinio ir dvejetaine, programos formomis.  Tačiau, GNU GPL yra
    225 pakankamai ilga, jog jos įtraukimas puslapyje su JavaScript programa gali
    226 būti nepatogus.  Jūs galite tą reikalavimą pašalinti, kodui, kuriam jūs
    227 turite autorių teises, su licencijos pastaba, kaip ši:</p>
    228 <pre dir="ltr">
    229 
    230     Copyright (C) YYYY  Developer
    231 
    232     The JavaScript code in this page is free software: you can
    233     redistribute it and/or modify it under the terms of the GNU
    234     General Public License (GNU GPL) as published by the Free Software
    235     Foundation, either version 3 of the License, or (at your option)
    236     any later version.  The code is distributed WITHOUT ANY WARRANTY;
    237     without even the implied warranty of MERCHANTABILITY or FITNESS
    238     FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
    239 
    240     As additional permission under GNU GPL version 3 section 7, you
    241     may distribute non-source (e.g., minimized or compacted) forms of
    242     that code without the copy of the GNU GPL normally required by
    243     section 4, provided you include this license notice and a URL
    244     through which recipients can access the Corresponding Source.
    245 
    246 </pre>
    247 
    248 <p>Aš dėkoju Jaffar Rumith už mano dėmesio atkreipimą į šią problemą.</p>
    249 
    250 <h3 id="AppendixB">B priedas: laisvų JavaScript programų viešinimas esant žiniatinklio
    251 administratoriumi</h3>
    252 
    253 <p>Jei jūs esate žiniatinklio administratorius savo svetainėje dislokuojantis
    254 laisvą JavaScript programinę įrangą, viešinant informaciją apie tų failų
    255 licencijas ir šaltinio kodą aiškiai ir pastoviai jūsų lankytojams padeda
    256 užsitikrinti, kad jie leidžia laisvą programinę įrangą, ir jums padeda
    257 atitikti licencijos sąlygas.</p>
    258 
    259 <p>Vienas metodas nurodyti licencijas yra tas vienas apibūdintas anksčiau <a
    260 href="#AppendixA">A priede</a>.  Antras metodas &ndash; <a
    261 href="/licenses/javascript-labels.html">JavaScript licencijos tinklo
    262 etiketės</a>, gali būti labiau patogus sumažintoms JavaScript kodo
    263 bibliotekoms, ypatingai kai jūs jų neparašėte.</p>
    264 
    265 <div class="translators-notes">
    266 
    267 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    268 <h3>Vertėjo pastabos</h3>
    269 <ol>
    270 <li id="TransNote1">Tivoizacija (anglų k.: tivoization) yra praktika, kai
    271 įrenginyje įdiegtą laisvą programinę įrangą gali pakeisti tik vienas
    272 gamintojas.</li>
    273 </ol></div>
    274 </div>
    275 
    276 <!-- for id="content", starts in the include above -->
    277 <!--#include virtual="/server/footer.lt.html" -->
    278 <div id="footer">
    279 <div class="unprintable">
    280 
    281 <p>Bendrus FSF ir GNU užklausimus prašome atsiųsti į <a
    282 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.  Taip pat, yra ir <a
    283 href="/contact/">kiti būdai susisiekti</a> su FSF.  Neveikiančių nuorodų ir
    284 kiti pataisymai arba pasiūlymai gali būti atsiųsti į <a
    285 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    286 
    287 <p>
    288 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    289         replace it with the translation of these two:
    290 
    291         We work hard and do our best to provide accurate, good quality
    292         translations.  However, we are not exempt from imperfection.
    293         Please send your comments and general suggestions in this regard
    294         to <a href="mailto:web-translators@gnu.org">
    295 
    296         &lt;web-translators@gnu.org&gt;</a>.</p>
    297 
    298         <p>For information on coordinating and submitting translations of
    299         our web pages, see <a
    300         href="/server/standards/README.translations.html">Translations
    301         README</a>. -->
    302 Mes dirbame sunkiai ir labai stengiamės, kad pateiktume tikslius, geros
    303 kokybės vertimus.  Tačiau mes nesame išimtys netobulumui.  Prašome siųskite
    304 savo komentarus ir bendrus pasiūlymus šia prasme į <a
    305 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p>
    306 <p>Mūsų tinklapių vertimų koordinavimo ir pateikimo informaciją pamatykite
    307 <a href="/server/standards/README.translations.html">Vertimų
    308 PERSKAITYKITEMANE</a>.</p>
    309 </div>
    310 
    311 <!-- Regarding copyright, in general, standalone pages (as opposed to
    312      files generated as part of manuals) on the GNU web server should
    313      be under CC BY-ND 4.0.  Please do NOT change or remove this
    314      without talking with the webmasters or licensing team first.
    315      Please make sure the copyright date is consistent with the
    316      document.  For web pages, it is ok to list just the latest year the
    317      document was modified, or published.
    318      
    319      If you wish to list earlier years, that is ok too.
    320      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    321      years, as long as each year in the range is in fact a copyrightable
    322      year, i.e., a year in which the document was published (including
    323      being publicly visible on the web or in a revision control system).
    324      
    325      There is more detail about copyright years in the GNU Maintainers
    326      Information document, www.gnu.org/prep/maintain. -->
    327 <p>Copyright &copy; 2009-2013, 2016 Richard Stallman</p>
    328 
    329 <p>Šiam puslapiui taikoma <a rel="license"
    330 href="http://creativecommons.org/licenses/by-nd/4.0/deed.lt">Creative
    331 Commons Priskyrimas - Jokių išvestinių darbų 4.0 Tarptautinė licencija</a>.</p>
    332 
    333 <!--#include virtual="/server/bottom-notes.lt.html" -->
    334 <div class="translators-credits">
    335 
    336 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    337  </div>
    338 
    339 <p class="unprintable"><!-- timestamp start -->
    340 Atnaujinta:
    341 
    342 $Date: 2016/11/18 07:32:45 $
    343 
    344 <!-- timestamp end -->
    345 </p>
    346 </div>
    347 </div>
    348 </body>
    349 </html>