javascript-trap.html (17165B)
1 <!--#set var="PO_FILE" 2 value='<a href="/philosophy/po/javascript-trap.hr.po"> 3 https://www.gnu.org/philosophy/po/javascript-trap.hr.po</a>' 4 --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html" 5 --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.hr-diff.html" 6 --><!--#set var="OUTDATED_SINCE" value="2015-12-31" --> 7 8 <!--#include virtual="/server/header.hr.html" --> 9 <!-- Parent-Version: 1.77 --> 10 11 <!-- This file is automatically generated by GNUnited Nations! --> 12 <title>Zamka JavaScripta</title> 13 14 <!--#include virtual="/philosophy/po/javascript-trap.translist" --> 15 <!--#include virtual="/server/banner.hr.html" --> 16 <!--#include virtual="/server/outdated.hr.html" --> 17 <h2>Zamka JavaScripta</h2> 18 19 <p>napisao <a href="http://www.stallman.org/">Richard Stallman</a></p> 20 21 <p><strong>Možda pokrećete neslobodne programe na svojem računalu svaki dan, a 22 da toga niste ni svjesni—kroz vaš internet preglednik.</strong></p> 23 24 <p>U zajednici slobodnog softvera je poznato da neslobodni programi 25 maltretiraju svoje korisnike. Neki od nas u potpunosti odbijaju instalaciju 26 vlasničkog softvera, a mnogi drugi smatraju neslobodu udarom na 27 program. Mnogi korisnici su svjesni da se taj problem odnosi i na priključke 28 koje preglednici nude za instalaciju, koji mogu biti slobodni ili 29 neslobodni.</p> 30 31 <p>Međutim, preglednici pokreću i druge neslobodne programe pri čijem 32 pokretanju vas ne pitaju za dopuštenje, ili vam čak ni ne govore za 33 njih—to su programi koje internetske stranice sadrže ili imaju 34 poveznicu na njih. Ti programi su najčešće napisani u JavaScriptu, iako se 35 koriste i drugi jezici.</p> 36 37 <p>JavaScript (službeno zvan ECMAScript, ali samo nekolicina koristi to ime) je 38 nekoć bio korišten za manje ukrase u internetskim strancima, za slatke ali 39 nebitne izbornike i značajke prikaza. Bilo je prihvatljivo to smatrati pukim 40 proširenjima HTML oznaka, radije nego pravi softver; nisu tvorili značajan 41 problem.</p> 42 43 <p>Mnoge lokacije još uvijek koriste JavaScript na taj način, ali neke ga 44 koriste za značajne programe koji rade veliki posao. Na primjer, Google Docs 45 presnimi na vaše računalo JavaScript program veličine pola megabajta u 46 kompaktnom obliku, koji možemo nazvati <i>Obfuscript</i><sup><a 47 href="#TransNote1">1</a></sup> zato jer nema komentara i gotovo ništa 48 praznih znakova,a imena metoda se sastoje od jednog slova. Izvorni kod 49 programa je poželjan oblik za njegovu izmjenu; kompaktni kod nije izvorni 50 kod, i pravi izvorni kod ovoga programa nije dostupan korisniku.</p> 51 52 <p>Obično vas preglednik ne obavještava kada učitava programe pisane u 53 JavaScriptu. U većini preglednika postoji način da se JavaScript u cijelosti 54 isključi, ali niti jedan od njih ne može provjeriti jesu li programi pisani 55 u JavaScript ne-trivijalni i neslobodni. Čak i ako ste svjesni ovoga 56 problema, trebao bi vam poveliki trud da identificirate i tada blokirate te 57 programe. Međutim, čak i u zajednici slobodnog softvera većina korisnika 58 nije svjesna ovoga problema; šutnja preglednika vodi prema prikrivanju toga.</p> 59 60 <p>Moguće je objaviti program pisan u JavaScriptu kao slobodan softver - 61 distribucijom izvornog koda pod licencom slobodnog softvera. Međutim, iako 62 je izvorni kod programa dostupan, ne postoji lagani način da pokrenete svoju 63 izmijenjenu inačicu umjesto originala. Sadašnji slobodni preglednici ne nude 64 mogućnost pokretanja vaše vlastite izmijenjene inačice umjesto one koja je 65 pružena na stranici. Efekt je usporediv sa tivoizacijom, iako ne toliko 66 težak da se prebrodi.</p> 67 68 <p>JavaScript nije jedini jezik kojeg internetske lokacije koriste za programe 69 poslane korisniku. Flash podržava programiranje kroz proširenu varijantu 70 JavaScripta. Morat ćemo proučiti problem Flasha da napravimo prikladne 71 preporuke. Čini se da će Silverlight po svoj prilici napraviti problem 72 sličan Flashu, samo još gori, pošto ga Microsoftovi koristi kao platformu za 73 neslobodne programe za čitanje i pisanje kodiranih formata. Slobodna zamjena 74 za Silverlight neće izvršiti zadaću za slobodni svijet osim ako ne dođe 75 normalno sa slobodnim zamjenama za te programe. </p> 76 77 <p>Java apleti<sup><a href="#TransNote2">2</a></sup> se također vrte u 78 pregledniku, i predstavljaju slične probleme. Općenito, svaka vrsta sustava 79 apleta predstavlja tu vrstu problema. Posjedovanje slobodnog okruženja za 80 izvršavanje apleta nas vodi samo do toga da se sretnemo s tim problemom.</p> 81 82 <p>Razvio se snažan pokret koji poziva web lokacije da komuniciraju samo kroz 83 formate i protokole koji su slobodni (neki kažu "otvoreni"); to 84 jest, čija dokumentacija je objavljena i koje je svatko slobodan 85 implementirati. S prisustvom programa u web stranicama, taj kriterij je 86 nužan, ali ne i dovoljan. Sam JavaScript, kao format, je slobodan, i 87 korištenje JavaScripta na internetskoj lokaciji nije nužno loše. Međutim, 88 kako smo vidjeli iznad, nije nužno i u redu. Kada lokacija prenese program 89 korisniku, nije dovoljno za program da bude napisan u dokumentiranom i 90 neopterećenom jeziku; taj program mora biti također i slobodan. “Samo 91 slobodni programi preneseni korisniku” moraju postati dio kriterija za 92 ispravno ponašanje internetskih lokacija.</p> 93 94 <p>Tiho učitavanje i pokretanje neslobodnih programa je jedan od nekoliko 95 problema koje stvaraju "web aplikacije". Termin "web 96 aplikacija" je zamišljen kako bi zanemario osnovnu distinkciju između 97 softvera dostavljenom korisnicima i softvera koji se pokreće na 98 poslužitelju. Može upućivati na specijalizirani program klijenta koji se 99 pokreće u pregledniku; može upućivati na specijalizirani softver 100 poslužitelja; može upućivati na specijalizirani program klijenta koji radi 101 ruku pod ruku sa specijaliziranim softverom na poslužitelju. Strana klijenta 102 i strana poslužitelja postavljaju različita etička pitanja, čak iako su 103 toliko blisko integrirani da dvojbeno oblikuju dijelove jednog 104 programa. Ovaj članak adresira samo pitanje softvera na strani 105 klijenta. Adresiramo problem poslužitelja odvojeno.</p> 106 107 <p>U praktičnim terminima, kako možemo riješiti problem neslobodnih programa 108 pisanih u JavaScriptu na internetskim lokacijama? Prvi korak je izbjegavanje 109 njihova pokretanja.</p> 110 111 <p>Što mislimo pod "ne-trivijalno"? Stvar je u stupnju, dakle to je 112 stvar dizajniranja jednostavnog kriterija koji daje dobre rezultate, radije 113 nego nalaženja jednog točnog odgovora.</p> 114 <p> 115 Naša probna politika je da smatramo program pisan u JavaScriptu 116 ne-trivijalnim ako:</p> 117 118 <ul> 119 <li>radi zahtjev AJAX-u<sup><a href="#TransNote3">3</a></sup> ili je učitan 120 zajedno sa skriptama koji rade zahtjev AJAX-u,</li> 121 122 <li>učitava vanjske skripte dinamički ili je učitan od strane skripata koje to 123 rade,</li> 124 125 <li>definira funkcije ili metode i ili učitava vanjsku skriptu (iz HTML-a) ili 126 je učitan kao jedna od njih,</li> 127 128 <li>koristi dinamičke JavaScript konstrukte koji su teški za analizu bez 129 interpretiranja programa, ili je učitan zajedno sa skriptama koje koriste 130 takve konstrukte. Ti konstrukti su: 131 <ul> 132 <li>korištenje <i>eval</i> funkcije, </li> 133 <li>pozivanje metoda notacijom uglatih zagrada,</li> 134 <li>korištenje bilo kojeg drugog konstrukta osim doslovnog znakovnoga niza sa 135 određenim metodama (Obj.write, Obj.createElement, ...).</li> 136 </ul> 137 </li> 138 </ul> 139 140 <p>Kako možemo razaznati je li kod u JavaScriptu slobodan? Na kraju ovoga 141 članka predlažemo konvenciju kojom ne-trivijalni program pisan u JavaScriptu 142 u internetskoj stranici može izjaviti URL na kojem se nalazi njegov izvorni 143 kod, i može također izjaviti svoju licencu, korištenjem stiliziranih 144 komentara.</p> 145 146 <p>Naposljetku, moramo izmijeniti slobodne preglednike da otkrivaju i blokiraju 147 ne-trivijalan neslobodni JavaScript u internetskim stranicama. Program <a 148 href="/software/librejs/">LibreJS</a> otkriva neslobodni, ne-trivijalni 149 JavaScript u stranicama koje posjećujete, i blokira ga. LibreJS je 150 priključak za IceCat i IceWeasel (i Firefox).</p> 151 152 <p>Korisnici preglednika isto trebaju i prikladne alate kako bi specificirali 153 JavaScript kod koji će se koristiti <em>umjesto</em> JavaScripta na 154 određenoj stranici. (Specificirani kod može biti potpuna zamjena, ili 155 izmijenjena inačica slobodnog programa pisanog u JavaScriptu na toj 156 stranici.) Greasemonkey ima mogućnosti za to, ali ne u potpunosti, jer ne 157 garantira izmjenu JavaScript koda na stranici prije nego program započne sa 158 izvršavanjem. Korištenje lokalnog <i>proxy</i><sup><a 159 href="#TransNote4">4</a></sup> poslužitelja funkcionira, ali je trenutno 160 previše nepogodno da bude pravo rješenje. Moramo konstruirati rješenje koje 161 je pouzdano i pogodno, kao i lokacije za razmjenu izmjena. Projekt GNU bi 162 htio preporučiti lokacije koje su posvećene samo slobodnim izmjenama.</p> 163 164 <p>Te značajke će omogućiti da program pisan u JavaScriptu uključen na web 165 stranici bude slobodan u stvarnom i praktičnom smislu. JavaScript više neće 166 biti naročita prepreka našoj slobodi—ništa više nego su to trenutno C 167 ili Java. Bit ćemo u mogućnosti odbiti i zamijeniti neslobodne i 168 ne-trivijalne programe pisane u JavaScriptu, kao što smo odbili i zamijenili 169 neslobodne pakete koje se nude za instalaciju na uobičajeni način. Tada može 170 poč eti naša kampanja da internetske lokacije oslobode svoj JavaScript.</p> 171 172 <p>U međuvremenu, postoji jedan slučaj kada je prihvatljivo pokrenuti 173 neslobodni program pisan u JavaScriptu: da se pošalje žalba operatorima 174 internetske lokacije govoreći da bi oni trebali osloboditi ili ukloniti 175 JavaScript kod koji je na lokaciji. Molim vas, ne oklijevajte da privremeno 176 omogućite JavaScript da biste to napravili—ali sjetite se da ga 177 onesposobite nakon toga.</p> 178 179 <p><strong>Zahvaljujem se <a href="/people/people.html#mattlee">Mattu Leeu</a> 180 i <a href="http://ejohn.org">Johnu Resigu</a> za njihovu pomoć u definiranju 181 našeg predloženog kriterija, i Davidu Parunakianu na pomoći da postanem 182 svjestan ovog problema.</strong></p> 183 184 <h3 id="AppendixA">Dodatak A: konvencija za objavljivanje slobodnih programa pisanih u 185 JavaScriptu</h3> 186 187 <p>Za reference na odgovarajući izvorni kod, preporučamo</p> 188 <pre dir="ltr"> 189 190 // @source: 191 192 </pre> 193 194 <p>i u nastavku URL. To zadovoljava zahtjev GNU GPL-a za distribucijom izvornog 195 koda. Ako je izvorni kod na nekoj drugoj lokaciji, tada morate pripaziti da 196 se <a 197 href="/licenses/gpl-faq.html#SourceAndBinaryOnDifferentSites">pobrinete za 198 to na ispravan način</a>. Izvorni kod je nužan da program bude slobodan. 199 </p> 200 201 <p>Da biste ukazali na licencu JavaScript koda umetnutog u stranicu, 202 preporučamo da stavite obavijest o licenci između dviju bilješki ovoga 203 oblika:</p> 204 <pre dir="ltr"> 205 <!--TRANSLATORS: Do not translate these license notices. The <pre> 206 207 elements have dir="ltr" explicitly set to cater for RTL languages.--> 208 209 @licstart The following is the entire license notice for the 210 JavaScript code in this page. 211 ... 212 @licend The above is the entire license notice 213 for the JavaScript code in this page. 214 215 </pre> 216 <p>Naravno, sve ovo bi trebalo biti sadržano u više-linijskom komentaru.</p> 217 218 <p><a href="/licenses/gpl.html">GNU GPL</a>, kao i mnoge druge licence 219 slobodnog softvera, zahtijeva distribuciju kopije licence zajedno i u 220 izvornom kodu i u binarnom obliku programa. Međutim, GNU GPL je toliko 221 dugačka da uključivanje na stranicu s programom pisanom u JavaScriptu može 222 biti nepogodno. Možete ukloniti taj zahtjev za kod nad kojim imate autorska 223 prava, s ovakvom obavijesti o licenci:</p> 224 <pre dir="ltr"> 225 226 Copyright (C) YYYY Developer 227 228 The JavaScript code in this page is free software: you can 229 redistribute it and/or modify it under the terms of the GNU 230 General Public License (GNU GPL) as published by the Free Software 231 Foundation, either version 3 of the License, or (at your option) 232 any later version. The code is distributed WITHOUT ANY WARRANTY; 233 without even the implied warranty of MERCHANTABILITY or FITNESS 234 FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. 235 236 As additional permission under GNU GPL version 3 section 7, you 237 may distribute non-source (e.g., minimized or compacted) forms of 238 that code without the copy of the GNU GPL normally required by 239 section 4, provided you include this license notice and a URL 240 through which recipients can access the Corresponding Source. 241 242 </pre> 243 244 <p>Zahvaljujem Jaffaru Rumithu što mi je skrenuo pažnju na ovaj problem.</p> 245 246 <h3 id="AppendixB">Dodatak B: Objavljivanje slobodnih programa pisanih u JavaScriptu ako ste 247 webmaster</h3> 248 249 <p>Ako ste webmaster koji implementira slobodan softver u JavaScriptu na svojoj 250 lokaciji, jasno i dosljedno objavljivanje informacija o licencama tih 251 datoteka i o izvornom kodu pomaže vašim posjetiteljima da budu sigurni da 252 pokreću slobodan softver, i pomaže vama da se pridržavate uvjeta licence.</p> 253 254 <p>Jedna metoda izjavljivanja licenci je ona opisana iznad u <a 255 href="#AppendixA">Dodatku A</a>. Druga metoda, <a 256 href="/licenses/javascript-labels.html">JavaScript web oznake licence</a>, 257 može biti pogodnija za biblioteke umanjenog JavaScript koda, posebno ako ih 258 niste vi napisali.</p> 259 260 <div class="translators-notes"> 261 262 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> 263 <h3>Bilješke prevoditelja</h3><ol><li id="TransNote1">Od <i>obfuscated</i> 264 (namjerno nerazumljiv i višeznačan) i <i>script</i> (programski kod 265 namijenjen izvršavanju u interpreterima).</li><li id="TransNote2">Male 266 aplikacije pisane u Javi koje se izvršavaju u virtualnome stroju.</li><li 267 id="TransNote3">Asinkroni JavaScript i XML. Tehnika razvoja aplikacija koja 268 omogućava učitavanje podataka sa poslužitelja bez remećenja prikaza stranice 269 na klijentu.</li><li id="TransNote4">Poslužitelj koji služi kao posrednik za 270 zahtjeve klijenta prema nekom drugom poslužitelju.</li></ol> </div> 271 </div> 272 273 <!-- for id="content", starts in the include above --> 274 <!--#include virtual="/server/footer.hr.html" --> 275 <div id="footer"> 276 <div class="unprintable"> 277 278 <p>Molimo vas, općenite upite o FSF & GNU šaljite na <a 279 href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Postoje i <a 280 href="/contact/">drugi načini kontaktiranja</a> FSF-a. Prekinute poveznice i 281 ostale ispravke ili prijedloge možete poslati na <a 282 href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 283 284 <p> 285 <!-- TRANSLATORS: Ignore the original text in this paragraph, 286 replace it with the translation of these two: 287 288 We work hard and do our best to provide accurate, good quality 289 translations. However, we are not exempt from imperfection. 290 Please send your comments and general suggestions in this regard 291 to <a href="mailto:web-translators@gnu.org"> 292 293 <web-translators@gnu.org></a>.</p> 294 295 <p>For information on coordinating and submitting translations of 296 our web pages, see <a 297 href="/server/standards/README.translations.html">Translations 298 README</a>. --> 299 Radimo naporno i dajemo sve od sebe kako bismo pružili točne, visoko 300 kvalitetne prijevode. Međutim, nismo oslobođeni od nesavršenosti. Molimo 301 vas, šaljite svoje komentare i općenite prijedloge u tom smislu na <a 302 href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>. 303 Za informacije o koordiniranju i dostavljanju prijevoda naših mrežnih 304 stranica, pogledajte <a 305 href="/server/standards/README.translations.html">PROČITAJME za 306 prijevode</a>.</p> 307 </div> 308 309 <!-- Regarding copyright, in general, standalone pages (as opposed to 310 files generated as part of manuals) on the GNU web server should 311 be under CC BY-ND 3.0 US. Please do NOT change or remove this 312 without talking with the webmasters or licensing team first. 313 Please make sure the copyright date is consistent with the 314 document. For web pages, it is ok to list just the latest year the 315 document was modified, or published. 316 317 If you wish to list earlier years, that is ok too. 318 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 319 years, as long as each year in the range is in fact a copyrightable 320 year, i.e., a year in which the document was published (including 321 being publicly visible on the web or in a revision control system). 322 323 There is more detail about copyright years in the GNU Maintainers 324 Information document, www.gnu.org/prep/maintain. --> 325 <p>Copyright © 2009, 2010 Richard Stallman</p> 326 327 <p>Ovo djelo dano je na korištenje pod <a rel="license" 328 href="http://creativecommons.org/licenses/by-nd/3.0/us/deed.hr">licencom 329 Creative Commons Imenovanje-Bez prerada 3.0 SAD</a>.</p> 330 331 <!--#include virtual="/server/bottom-notes.hr.html" --> 332 <div class="translators-credits"> 333 334 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> 335 <b>Prijevod</b>: Marin Rameša 2013., Martina Bebek 2013.</div> 336 337 <p class="unprintable"><!-- timestamp start --> 338 Zadnji put promijenjeno: 339 340 $Date: 2016/11/18 07:32:45 $ 341 342 <!-- timestamp end --> 343 </p> 344 </div> 345 </div> 346 </body> 347 </html>