DFDL (Jezik opisa formata podataka)

Original: http://xfront.com/DFDL/index.html

Roger L. Costello

DFDL je XML jezik zasnovan na standardima za raščlanjivanje formata podataka, kako tekstualnih tako i binarnih formata.

Koristeći DFDL možete analizirati gotovo sve!

Izlaz raščlanjivanja je XML (ili JSON) dokument, koji predstavlja ulaznu datoteku.

DFDL can parse text and binary files

Ne samo da DFDL može raščlaniti datoteke podataka, već može i deparsirati XML (ili JSON) kako bi rekonstituisao originalni format podataka.

Primjer: JPEG --> DFDL --> XML --> DFDL --> JPEG

DFDL je super! Napravio sam gomilu tutorijala o tome i kako ga koristiti:

  1. Brzi pregled DFDL
  2. DFDL protiv ANTLR
  3. Parsiranje i poništavanje raščlanjivanja tekstualnih datoteka pomoću DFDL
  4. Parsing i unparsing binarnih datoteka pomoću DFDL
  5. DFDL shema usklađena s RFC za raščlanjivanje i deparsiranje CSV datoteka
  6. Kompletan vodič o DFDL, uključujući slajdove, primjere i laboratorijske vježbe

Posljednje ažurirano: 3. novembra 2021

XML nasuprot vezivanju podataka

Original: http://xfront.com/xml-versus-data-binding/index.html

Roger L. Costello

Usporedba XML-a s objektno orijentiranim i proceduralnim jezicima

The XML jezika (XSLTXML shemeXQuery, itd) su deklarativno, tj deskriptivnih nije propisana. Suprotno tome, java,  c++, pythonphp, itd. Su objektno orijentirani i proceduralni, tj. Preskriptivni, a ne opisni).

Stvoreni su mnogi alati za mapiranje (povezivanje) podataka i tipova podataka u xml-u sa strukturama podataka i tipovima podataka u objektno orijentiranim i proceduralnim jezicima i obrnuto. To se naziva vezivanje podataka.

Koristiti jedan model podataka ili obradu ili dva?

Jedan model: Neki ljudi zagovaraju obavljanje svih obrada pomoću xml jezika. Na primjer, prenesite podatke kao xml, zatim ih provjerite u xml shemi i zatim ih obradite pomoću xslt i xquery.

Dva (ili više) modela: Neki ljudi zagovaraju upotrebu kombinacije xml i objektno orijentisanih i/ili proceduralnih jezika. Na primjer, prenesite podatke kao xml, zatim upotrijebite vezivanje podataka da biste ih preslikali u strukture podataka, a zatim obavite svu obradu koristeći jedan ili više objektno orijentiranih i/ili proceduralnih jezika.

Prednosti jednog modela podataka/obrade (XML)

Mapiranje iz xml-a u strukture podataka u objektno orijentiranim i proceduralnim jezicima nije uređeno standardima. Na primjer, specifikacija xml sheme ne govori vam kako se njezini tipovi podataka preslikavaju na javu ili  c++. Zbog toga su neki alati za vezivanje podataka nepotpuni i ne mapiraju se čisto.

Mapiranje iz xml u objektno orijentirano/proceduralno ili obrnuto obično uključuje puno api poziva i puno programiranja. Stoga, umjesto da trošite svoje vrijeme na pisanje koda za rješavanje problema koji biste trebali riješiti, vi trošite značajan dio svog programskog napora pretvarajući se iz jednog sistema u drugi. To nije efikasno.

Kada se xml promijeni (npr. Promijeni xml shema), tada se moraju promijeniti strukture podataka u vašem objektno orijentiranom i proceduralnom kodu. To može biti vrlo teško i dugotrajno.

Imati dva različita modela istih podataka, razumjeti njihov odnos i organizirati se da ih sinkronizirate dodaje složenost iznad i iznad složenosti rješavanja problema koji biste trebali riješiti.

Dimitre Novatchev je napisao:

Moja lična zapažanja sasvim podržavaju… izjave o tome koliko je dodatnih resursa potrebno ako se podaci trebaju pretvoriti iz xml u predmete objekata. 70% – 80% cjelokupnog građevinskog posla može ići u ovu aktivnost. Nakon što sam nedavno završio takav posao, imao sam osjećaj da bih odlučio da upotrijebim samo jednu, xml predstavu, postigao bih rezultate za 3 do 4 puta manje vremena.

Format koji se koristi za razmjenu podataka (xml) je primaran u smislu da ga treba dogovoriti s drugim stranama, pa ima smisla koristiti ga i kao primarni format za obradu.

Pridržavanje xml jezika pruža prednosti jednostavnosti upotrebe. Na primjer, prije nekoliko godina napravio sam eksperiment: napisao sam neki xslt za rješavanje problema, a zatim sam isti problem riješio pomoću jave. Trebalo mi je 10 linija xslt-a i preko 100 linija Java-e. Iz jednog eksperimenta se ne može puno vidjeti, ali sva moja iskustva od tog vremena pojačavaju ovaj eksperiment.

Napomena: pridržavanje  xml  porodice tehnologija ne znači da se više ne koriste objektno orijentisani i proceduralni jezici. Umjesto toga, oni su gurnuti na niži nivo. Na primjer, xml validator sheme može se implementirati u java ili C++. Jedan XSLT procesor može biti implementiran u Java ili C++. Dakle, vi – programer – radite na xml razini, a ispod xml obrade nalaze se alati napisani na objektno orijentiranim i proceduralnim jezicima koji provode obradu.

XML technologies layered on top of object oriented and procedural tools

Fantastičan primjer potpunog rada u okviru xml porodice tehnologija vidimo sa Orbeon Forms. Naizgled integrira xformexml sheme i trajnu pohranu koristeći eXist xml bazu podataka. Ispod haube je gomila javascripta i ajaxa, s kojima programer nikada ne mora imati posla.

Prednosti upotrebe dva (ili više) modela podataka/obrade

Možda će neke koristi od performansi biti izvršavanje obrade u objektno orijentiranom ili proceduralnom jeziku, a ne u XML-u.

Nekim programerima je ugodnije raditi sa strukturama podataka nego raditi na funkcionalnim jezicima kao što je xslt.

Zahvalnice

Zahvaljujem sljedećim ljudima na njihovom doprinosu ovom dokumentu:

  • Roger Costello
  • Dave Czulada
  • Mukul Gandhi
  • Rick Jelliffe
  • Michael Kay
  • Robert Koberg
  • Boris Kolpackov
  • Jack Lindsey
  • Dimitre Novatchev
  • Bryan Rasmussen
  • Dennis Sosnoski

Posljednje ažuriranje: 1. aprila 2021

 

Nauka o formatu podataka

Original: http://xfront.com/Data-Format-Science/index.html

Roger L. Costello

Jeste li znali da se procjenjuje na desetke hiljada formata podataka.

Neki od popularnih formata podataka uključuju JPEG, TIFF, GIF, BMP, Shape datoteke, WAV, CSV, MP1, MP2, MP3, MPEG, WMV, VCard, Netflow, IPFix, Zip, RAR, PDF, Word, Powerpoint, Excel, XML, JSON, i tako dalje.

Ova stranica na Wikipediji ima popis nekoliko stotina najpopularnijih formata podataka: 

https://en.wikipedia.org/wiki/List_of_file_formats.

Vjerujem da bi formati podataka trebali biti znanstveno područje istraživanja. Trebali bi postojati naučnici za format podataka. Trebalo bi biti sposobno steći diplomu na univerzitetu iz oblasti nauke o formatu podataka. Trebali bi postojati univerzitetski profesori koji smišljaju napredne koncepte u oblikovanju teksta i binarnih podataka. Trebali bi postojati naučnici koji vrše metaanalizu formata podataka. Trebali bi postojati stručni časopisi o nauci o formatu podataka u kojima se objavljuju recenzirani članci.

Nažalost, ništa od toga danas ne postoji.

Popravimo to.

Posljednje ažuriranje: 8. listopada 2020

Hoće li računarske igre ikada biti legitimna umjetnička forma?

Original: http://www.designersnotebook.com/Lectures/ArtForm/artform.htm

Ernest W. Adams

2001. Konferencija programera igara

Ovo je približni transkript mog predavanja na Konferenciji programera igara 24. marta 2001. u San Joseu, Kalifornija.

Uvod

Pozdrav svima – moje ime je Ernest Adams, a ovo je “Hoće li računarske igre ikad biti legitimna umjetnička forma.” Ovo je predavanje prvotno trebalo biti panel, ali zaključio sam da i sam imam toliko toga da kažem o toj temi da bih, ako bih pokušao moderirati kao panel, jednostavno držao mikrofon čitav sat.

Za one od vas koji već duže vrijeme pohađate moja predavanja, znat ćete da je to točka u kojoj obično dajem odricanje odgovornosti da ono što ćete čuti nije mišljenje mog poslodavca. Prvi put ikada to ne moram da radim, jer sam sada svoj poslodavac. Prošlog ljeta napustio sam Electronic Arts, a sada sam slobodni savjetnik za dizajn igara. To znači da napokon mogu slobodno govoriti o EA-i i njihovim igrama, iako budući da je ovo predavanje o igrama koje bi mogle biti umjetnička djela, nemam puno razloga za raspravu o bilo kojim EA proizvodima. [Smijeh i aplauz.]

Kada sam prvi put počeo držati predavanja na Konferenciji programera igara, odradio sam uobičajene suve, dosadne prezentacije u obliku meta. Obično su sadržavale puno činjenica, ali nisu mnogo razmišljale. Tada sam 1994. godine odlučio promijeniti način predavanja i počeo iznositi puno razmišljanja, ali ne i mnogo činjenica. Za to postoji uljudno ime: plavo nebo. Pa, ovdje sam da vam kažem da će ovo predavanje biti otprilike onoliko plavo kao što možete dobiti. Morate znati da ako pohađate predavanje koje se bavi pitanjem “šta je umjetnost?” već si u velikoj nevolji.

Neću vam reći kako bilo šta raditi na ovom predavanju. Ako tražite savjet ili smjernicu, na pogrešnom ste mjestu. Nisam ovdje da bih vam pokazao put kojim treba hodati, već da bih vam pokazao da put kojim smo već krenuli nije nužno jedini put kojim treba ići.

Igre i filmovi

Tako da svoja predavanja dijelim na ona koja su nastala prije 1994. godine, dosadna predavanja i ona koja su započela 1994. godine i nastavila, dobra predavanja. I prvo dobro predavanje koje sam održao zvalo se Celluloid to Silicon: Propoved za pridošlice iz Hollywooda. I u tom predavanju žestoko sam napao ono što sam nazvao holivudskom metaforom – ideju da su računarske igre poput filmova, i što je još važnije da se mogu stvarati na isti način.

Morate razumjeti historijski kontekst. Hollywood se vraćao u industriju, otprilike treći put, i ovaj put izgledalo je kao da misle ozbiljno. Dolazak CD-ROM-a odjednom je značio da u svoje igre mogu ubaciti pravi sadržaj. “Interaktivni filmovi” bili su u bijesu. Bio sam prilično siguran da će to zeznuti i izgubiti puno novca i koštati puno programera posla, jer nisu ništa razumjeli u inženjerstvo. I naglasio sam da je inženjering ono što nas dijeli od Hollywooda i filmova: apsolutna potreba bavljenja inženjeringom naš se zanat bitno razlikuje od njihovog.

Tokom ovog današnjeg predavanja, čućete kako puno pričam o filmovima i zajedničkom interaktivnoj zabavi i filmu. Za onih nekoliko vas koji su zapravo bili u blizini da biste čuli moje predavanje 1994. godine, moram odmah naglasiti da nisam ni malo odstupio od pozicije koju sam tada zauzeo. Razlika je u tome što sada neću govoriti o zanatskom stvaralaštvu i zanatskom razvoju igara, već o umjetnosti filma i umjetnosti igara. I dalje vjerujem da je holivudska metafora pogrešna utoliko što se odnosi na stvarni proces konstrukcije ovih proizvoda; i nedostatak je utoliko što ne uspijeva riješiti razlike između linearne i nelinearne ili interaktivne i pasivne zabave. To su predavanja za drugi put. Ali postoje određene paralele između računarskih igara i filmova kao izražajnih oblika i na te paralele ovdje govorim.

Žao mi je zbog dugog odricanja odgovornosti; Jednostavno ne želim da me iko ko zapravo obraća pažnju na mene zadnjih sedam godina optužuje za licemjerje.

Što je umjetnost i čime se bavi?

Vrste umjetnosti

Ako potražite unos za “Umjetnost” u Enciklopediji Britannica, vidjet ćete da je umjetnost podijeljena na brojne vrste. Postoje književne umjetnosti, pisanje i drama, koje karakterizira prisustvo narativa. Film i televizija očito pripadaju književnoj umjetnosti. Zatim postoje ono što se naziva likovnom umjetnošću: skulptura i slikarstvo, muzika i ples. Zatim imamo dekorativne umjetnosti: tapete, tkanine i slične stvari. Arhitekturu, naravno, neki smatraju vidom umjetnosti i industrijskim dizajnom, ali u ovom se trenutku sve više udaljavamo od “čiste” umjetnosti i prelazimo na područja s više korisnih razmatranja. Na primjer, industrijski dizajn zapravo nije umjetnost koliko estetika primijenjena na utilitarni objekt. Granice između umjetnosti i neumjetnosti nisu čvrste i brze; to je vrlo siva zona.

Druga karakteristika književnih umjetnosti je da predmet koji vidite nije umjetničko djelo; tj. papir i mastilo koji čine knjigu samo su medij za isporuku, a ne samo djelo. Slično filmu, traka od plastike nije film; radije su slike i zvukovi snimljeni na plastičnoj traci film. Kod igara, CD-ROM nije igra; igra je softver i umjetnička djela koja su tamo zabilježena. To je za razliku od, recimo, skulpture, u kojoj je sam isklesan predmet umjetničko djelo.

Vjerujem da većina naših kompliciranijih proizvoda, ako su uopće umjetnost, spada u kategoriju književnih umjetnosti s filmovima i televizijom, jer sadrže elemente pripovijesti. Međutim, postoje izuzeci, koje ću spomenuti kasnije.

Filozofija umjetnosti

Na ovom mjestu dat ću vrlo kratak pogled na historiju filozofije umjetnosti, jer vrijedi znati o tome hoćemo li razgovarati o igrama kao umjetničkoj formi. Nekoliko stotina godina smatralo se da je umjetnost reprezentativna; da je umjetnost postojala kako bi prikazala osobu ili scenu ili predmet. Očito se ovaj pojam odnosio samo na vizuelne umjetnosti poput slikarstva i skulpture, a ne i na stvari poput glazbe i plesa. Smatrani su odvojenim oblicima koji nisu obuhvaćeni filozofijom. I donekle se smatralo da što je tačniji prikaz, to je bolja umjetnost. Drugim riječima, skulptura ili slika koja je izgledala točno poput predmeta bila je bolja od one koja nije.

Međutim, u dvadesetom stoljeću ovaj je pojam u potpunosti zamijenio ideja umjetnosti kao izraza. Ljudi su počeli osjećati da umjetnost nije namijenjena preciznom prikazivanju postojećih predmeta, već da služi kao izraz umjetnikove misli. To je imalo brojne prednosti. Jedno je omogućilo da se muzika i ples uvrste u ostale vidove umjetnosti, jer su oni naravno izraziti. I omogućio je slikarima i vajarima da počnu stvarati djela koja nisu vizuelne reprodukcije stvarnih stvari, već slike onakve kakve su ih vidjeli i kako su željeli da ih gledaoci vide. Pojam umjetnosti kao izraza izazvao je eksploziju novih vrsta umjetnosti i novih načina gledanja na stvari.

Postoje i druge teorije u filozofiji umjetnosti. Neki ljudi vjeruju da je funkcija umjetnosti prenošenje kulturnih vrijednosti s generacije na generaciju, da bi služila nekoj moralnoj svrsi. Drugi vjeruju da je umjetnost u osnovi hedonizam, da postoji da bi stvorila estetsko zadovoljstvo. Ali danas je daleko dominantna teorija umjetnosti umjetnost kao izraz.

Art traje

Još jedna karakteristika koju možemo primijetiti kod umjetnosti, ionako dobre umjetnosti, jest da ona traje. Postoje grčke statue stare 2300 godina kojima se i danas divimo. Postoje egipatske statue stare 5000 godina kojima se još uvijek divimo. Sada je istina da su te stvari stvorene u kamenu, izuzetno izdržljivom medijumu, i zato prirodno traju; ali ipak, ne bismo se trudili smještati ih u muzeje i gledati ih da ne mislimo da ih vrijedi pogledati. Mnogo je drugih starih, svakodnevnih predmeta koje se ne trudimo gledati izbliza. Ove nas drevne skulpture privlače ne samo zato što su stare, već i zato što ih smatramo estetski zanimljivima.

Postoje i neke vrlo stare igre. Ako odete u Egipat, možete vidjeti ljude kako se u pijesku igraju igara koje se hiljadama godina igraju na potpuno isti način. To ih zapravo ne čini umjetnošću, već ih čini vrlo dugovječnim igrama. Ipak, zanimljivo je da igre mogu trajati koliko i velika umjetnička djela, a pretpostavljam da je to zato što sadrže neku privlačnost koja traje stoljećima, uprkos promjenama u kulturi, jeziku, religiji itd.

Mislim da je vrlo malo vjerojatno da će ljudi igrati Bijeg s majmunskog otoka za tisuću godina od sada. Međutim, mislim da je zamislivo da će ljudi igrati Tetris za hiljadu godina od sada. Tetris je tako lijep, tako elegantno jednostavan da vjerujem da ima privlačnost koja bi mogla trajati stoljećima. Tetris ne pripada književnoj umjetnosti, jer nema narativ, već vizualnoj umjetnosti. Mislim da je Tetris djelo kinetičke skulpture i lako bih ga mogao vidjeti kako sjedi u muzeju umjetnosti – pogotovo ako ste oduzeli mehanizam za bodovanje, iz razloga na koje ću kasnije doći.

Mogu li igre biti umjetnost?

Umjetnost naspram popularne kulture

Dugo sam tvrdio da ono što radimo – ionako ono što većina nas čini – nije umjetnost. To je popularna kultura. Umjetnost u umjetničkim galerijama kupuju znalci umjetnosti, kritiziraju je likovni kritičari, čuva se u muzejima umjetnosti. Milioni ga ne otkidaju, a prodaju ga za 59,95 dolara na Toys ‘R’ Us. Ali činjenica da je većina onoga što radimo samo popularna kultura ne sprečava interaktivni medij da bude oblik umjetnosti. To samo znači da imamo tešku bitku koja će nas prepoznati – baš kao što su to učinili filmovi, prelazeći sa nikelodeona na ekran. Film je oblik umjetnosti, ali to ne znači da je svaki film umjetničko djelo. Neki jesu, a neki nisu, baš poput igara. Većina filmova nije umjetnost, već popularna kultura. A nema sumnje da ni velika većina igara nije umjetnost. Monopol nije umjetnost; poker nije umetnost; bejzbol nije umjetnost.

Umjetnost i interaktivnost

Pa zašto većina igara nije umjetnost? Jedna od mogućnosti koja mi pada na pamet je da interaktivnost isključuje umjetnost; da je umjetnost oblik komunikacije između umjetnika i gledatelja, a ako se gledatelj počne miješati, poruka se gubi. Svakako je tačno da interaktivnost ometa narativ: narativ se odnosi na kontrolu autora, dok interaktivnost govori o slobodi igrača.

Međutim, ne vjerujem da interaktivnost nužno onemogućava umjetnost. Chris Crawford, u svojoj knjizi Umijeće dizajniranja računarskih igara, napisao je: „Prava umjetnost putem računarskih igara je dostižna, ali nikada neće biti postignuta sve dok nemamo put ka razumijevanju. Moramo uspostaviti svoje estetske principe, okvir za kritiku i model za razvoj.” Ne slažem se s njim u vezi s modelom za razvoj – mislim kako je stvaranje umjetničkog djela nebitno – ali on ima pravo na novac oko ostalih stvari.

Gore u San Franciscu postoji čudan naučni muzej koji se zove Exploratorium. Ovaj muzej shvata ozbiljno da bi njegovi eksponati, iako ilustriraju naučne principe, trebali biti i estetski ugodni. Smatraju ih umjetničkim djelima, a neke od ljudi koji ih grade nazivaju “umjetnicima u rezidenciji”. Izložbe su lijepe, ali i poučne; a estetika igra ulogu u njihovom dizajnu. Ti su eksponati nužno interaktivni i njihova interaktivnost ne umanjuje njihov status umjetničkih djela.

Navikli smo da umjetnost smatramo ilustracijom ljudskog stanja ili razgovaramo o velikim problemima vezanim za nas same, ali zašto ona ne bi trebala ilustrirati naučne principe? Diane Ackerman je pjesnikinja koja je napisala niz pjesama sakupljenih u knjigu pod nazivom Planete. Ove pjesme nisu bile samo sulude emotivne stvari; precizno su opisali izgled planeta, njihovo ponašanje, njihov položaj u Sunčevom sistemu. Pjesme nisu ništa manje lijepe jer su naučno precizne; u stvari, za mene kao ljubitelj znanosti, oni su čak i više lepa kao naučno tačno.

Poruke umjetnosti

Ovo postavlja zanimljivo pitanje o ograničenjima onoga što umjetnost može reći. Umjetnost očito nije pedagogija; svrha mu nije podučavanje. Ali ipak je sposoban davati prilično složene izjave. Znamo da književnost, na primjer, ima teme. Tema romana je izjavna rečenica koja sažima poruku djela. Teme mogu biti trivijalne, poput “Smrt uzrokuje tugu”, ili mogu biti netrivijalne, poput “Smrt uzrokuje i druge emocije osim tuge”.

Mogu li igre imati teme? Vjerujem da mogu. Simulacije sigurno govore. Sim City, na primjer, kaže da je dobar sistem prijevoza neophodan za ekonomski prosperitet. To nikada nije eksplicitno navedeno; to je nešto što saznate tokom igranja igre. U stvari, otkriva se interaktivno – da niste u interakciji s igrom, nikada je ne biste saznali. Sada je to, naravno, jednostavna ekonomska izjava. Nije jako duboko, a umjetničko djelo čija poruka nije bila ništa više od „dobar transportni sistem je presudan za ekonomski prosperitet“ smatralo bi se prilično svakodnevnim. Ali to ilustrira te mjere da igre su u stanju da govori stvari.

Postoje i nejezički načini izražavanja. Skulptura, na primjer, ne mora nužno imati teme. Sadržaj skulpture ne možete uvijek destilirati u izjavnu rečenicu. Ali možda ćete to moći destilirati u emociju: nejezički izraz osjećaja. I ne vidim zašto igre ne mogu učiniti isto.

Učinak stanja pobjede

Jedna od ključnih karakteristika mnogih igara je da imaju uvjete za pobjedu. Nisam sasvim siguran je li ovo kompatibilno s umjetnošću, iako se još nisam odlučio na tu temu. Čim uspostavite uvjet za pobjedu, dajte igraču gol, igrač počinje raditi na nečemu. Koncentrišu svoju pažnju na postizanje cilja. Nisam uvjeren da možete imati iskustvo ocjenjivanja umjetnosti ako istovremeno radite na cilju.

Zanimljivo je da je Tetris igra bez uvjeta za pobjedu. Ne možete pobijediti u Tetrisu. I zato, iako radite kao ludi, vaš um nije koncentriran na cilj.

Neke druge karakteristike umjetnosti

Umjetnost ima sadržaj

Jedna od stvari u vezi s umjetnošću je da mora imati sadržaj. Zbog toga bejzbol i poker nisu umjetnost: nemaju sadržaj. Ništa se ne izražava. Monopol nema gotovo nikakav sadržaj: ima male kućice i dijelove koji se kreću, ali zasigurno nije dovoljno da budete “umjetnost”. Kada kažemo “Igranje pokera ima umjetnost”, ono što zapravo mislimo je da postoji zanat za igranje pokera – da postoji ispravan i pogrešan način za to, te da igranje pokera zahtijeva visok stupanj vještina. Ali čin igranja pokera nije estetski čin. Nema sadržaj. Nije ekspresivno.

Umjetnost ima estetiku

Druga stvar kod umjetnosti je da je estetska, ima pravila za određivanje ljepote i ružnoće. Sada je u 20. stoljeću izbačena ideja da je umjetnost jednostavno trebala biti lijepa. Ali bez obzira na to, umjetnost bi nas trebala privući na neki način.

Umjetnost sadrži ideje

Umjetnost mora imati sposobnost izražavanja ideja. Film je oblik umjetnosti jer ima estetsku i sposobnost davanja izjava. Većina igara ne daje izjave, ali onda to ne čine ni filmovi o Jamesu Bondu. Većina računarskih igara interaktivni su zabavni ekvivalent romanima i filmovima Jamesa Bonda. Roman je oblik umjetnosti, ali romani o Jamesu Bondu nisu umjetnost. Da bi roman bio umjetnost, mora biti više nego samo zabavan. Da bi slika bila umjetnost, mora biti više nego samo dekorativna.

Želim spomenuti dvije igre za koje mislim da su sadržavale puno ideja. Jedan je bio Planescape: Muka, iz igre Interplay. Bila je ovo igra o besmrtnom čovjeku koji je izgubio ime i pamćenje. Igra se odnosila na njegovu potragu da sazna njegovo ime i da sazna razlog njegove besmrtnosti, moguće kako bi mogao trajno umrijeti. Usput upoznaje neobičnu kolekciju ljudi za koje se čini da ga svi znaju, ali koje ne poznaje, a svaki od njih posjeduje dio ključa svoje prošlosti. Ovo sada nije sjajna literatura, nije Anna Karenina ili nešto slično; zapravo nije bitno bolji od vašeg prosječnog fantastičnog romana u mekim koricama. Ali sadržavao je mnogo zanimljivijih ideja od većine hack-and-slash RPG-a, i uživao sam u Planescape: Muka jako puno. Smatrao sam to estetski intrigantnim.

Druga igra bila je Ravnoteža snage, Chrisa Crawforda. Izašao je oko 1986. godine i mislim da je to jedna od najboljih računalnih igara ikad napravljenih. Ravnoteža snaga bila je simulacija globalne politike. Sovjetski Savez i SAD se bore da maksimiziraju svoj geopolitički prestiž na račun jedni drugih, podržavajući prijateljske vlade i svrgavajući ili destabilizirajući neprijateljske vlade širom svijeta. Ova me igra naučila svakojakim stvarima o globalnoj politici koje nisam znao, a zapravo je u njoj bilo toliko dobro da ju je State Department počeo koristiti za obuku diplomata. Sada, kao Sim City, ovo je bila simulacija, tako da ideje koje je sadržavao nisu bile estetske ideje, ali ipak su bile zanimljive i nove, i to je jasan dokaz da igre mogu sadržavati ideje.

Zapravo sam imao prilično neobično emocionalno iskustvo igrajući Ravnoteža snaga, jer sam jednom pokušao igrati s ruske strane. Naravno da smo navikli igrati igre s neprijateljske strane u ratnim igrama – letite na simulatoru leta Drugog svjetskog rata i možete letjeti bilo njemačkim ili savezničkim avionima, ali sve to zapravo znači da su karakteristike performansi aviona drugačiji. Ali igrajući Ravnoteža snaga s ruske strane, stekao sam neposredno i visceralno iskustvo protiv čega su se Sovjeti zapravo borili. Način na koji je igra dizajnirana, Amerikanci imaju puno novca, ali vrlo malo muškaraca pod oružjem, dok Rusi imaju vrlo malo novca, ali tone ljudi pod oružjem. To znači da su njihovi mehanizmi utjecaja na svjetsko mišljenje zaista prilično ograničeni i grubi. Lako im je poslati trupe, ali ne mogu si priuštiti kupovinu prijatelja širom svijeta slanjem mlijeka u prahu izgladnjeloj djeci i sličnim stvarima. A druga stvar koju sam primijetio je da su svi američki prijatelji izuzetno bogati i moćni – Britanija i Francuska, Njemačka i tako dalje – dok su svi ruski prijatelji bili izuzetno siromašni. A iskustvo igranja ove igre bilo je prilično čudno. Evo ih, okruženi neprijateljima i ugovornim organizacijama dizajniranim da ih privedu. To mi je zaista preokrenulo pogled na svijet, jer se nikada prije nisam stavio na njihovo mjesto, a nekoliko sati nakon toga osjećao sam se prilično čudno.

Umjetnost čini da osjećate stvari

A umjetnost bi trebala učiniti da nešto osjetite. To je dio umjetnosti. I igre vas nedvojbeno mogu natjerati da osjećate stvari, ali da bi ih prihvatili kao oblik umjetnosti, moraju se potruditi. Da se filmovi nikada nisu pomakli dalje od nikelodeona, nikada ne bi bili prihvaćeni kao oblik umjetnosti. Ali filmovi, čak i nijemi filmovi, očito su bili izdanak drame pozornice, a scena je vrlo drevna i dobro razumljiva umjetnička forma. Koreni računarskih igara nisu u filmovima ili na sceni; oni su u igri, u društvenim igrama i tako dalje. A to očito nisu umjetničke forme, jer imaju toliko manje naglaska na estetskom i zato što obično ne čine da osjećate stvari.

Umjetnost nije formulativna

Još jedna važna karakteristika dobre umjetnosti je da ona nije formulativna. Umjetnik Salvador Dali počeo se smatrati pomalo prevarom u kasnijim godinama, jer je njegovo djelo postalo formulativno; prestao je da inovira. Mislim da saga Ratova zvijezda počinje gubiti bilo kakvu tvrdnju da je nekada trebala biti umjetničko djelo, jer je sve više formulativna i sve je više pokretana razmatranjem robe.

Korisnost i isplativost

Sve ove karakteristike umjetnosti – izražavanje ideja, tjeranje da osjećate stvari, neformalnost i tako dalje – nadmašuju korisnost. Umjetnost ne znači biti koristan. A donekle i oni nadmašuju razmatranja o prodaji. Umjetnost ne uključuje trgovinu. Niko ne stvara umjetničko djelo s pretpostavkom da će biti pretvoreno u majice i kutije za ručak. Ključna stvar o umjetnosti je sljedeća: Ne radi se o tome što kupac želi kupiti. Radi se o onome što imate da kažete. Djelo ne mora raditi sve stvari koje sam gore spomenuo, ali ako ne radi niti jednu od njih, šanse su da nije umjetničko djelo.

Uloga zabave

Sad sam na početku ovog predavanja rekao da će to biti propovijed; Zanemario sam spomenuti da je to bila jeretička propovijed.

Još u februaru napisao sam kolumnu za veb-magazin Gamasutra pod nazivom “Dogma 2001: Izazov dizajnerima igara”. A ova je kolumna bila namjerno pokretanje čuvenog filma Dogme 95 u filmu. U svojoj kolumni predložio sam niz nečuvenih pravila za industriju igara čija je svrha bila razvesti dizajn igre od tehnologije, kako bi potaknuo razmišljanje o dizajnu igara bez pozivanja na bilo koju određenu tehnologiju. Bila su to pravila poput: “Projektni dokumenti ne smiju sadržavati nikakve reference na bilo koji hardver instaliran unutar ciljane mašine.” Imao sam i druga pravila kojima je cilj obeshrabriti izvedenice dizajna igara. Na primjer, rekao sam, “U vašoj igri neće biti vitezova, vilenjaka, patuljaka ili zmajeva, tačka.” Ne možete raditi pucanje u prvom licu, prema Dogmi 2001; to je zabranjeni oblik. I na kraju sam završio rekavši da je inovativni igrački moral moralni imperativ, a sva druga razmatranja bila su sporedna.

Pa, u raspravi koja je uslijedila, na oglasnim pločama programera igara, sigurno sam vidio da sam potaknuo puno rasprava, što je bila moja glavna poanta. I, što je zanimljivo, primijetio sam da me samo oko 50% strastveno vrijeđaju ljudi koji su mislili da ne znam ništa o industriji igara; i 50% strastveno branili, uglavnom naivni došljaci koji su mislili da ovo zaista predstavlja zanimljiv izazov i poziv na promjenu vrsta igara koje su vani. I to mi je reklo da sam postupio ispravno. Da su me 100% klevetali ili 100% hvalili, tada bih propao, jer je moja poanta bila navesti ljude da govore o tim pitanjima.

Ali nešto što sam primijetio u raspravama je da su neki ljudi istakli da u Dogmi 2001. nije bilo rasprave o zabavi. Pitali su: “Zašto se zabava ne spominje? Zašto nije slučaj da je zabava moralni imperativ, a sve ostalo je sporedno od toga?”

Pa – dolazi hereza – zabava nije sve ono o čemu smo radi. Osporavam da bi zabava trebala biti naš najviši cilj. Sada više niko ne želi igrati društvenu igru koja nije zabavna. Ali mi nismo samo kompjuterizovane društvene igre. Da li su knjige i filmovi samo o laganoj zabavi? Jesu li samo “zabavni”? Ne nisu.

Ako sve što radimo je snimanje Schwartzenegger filmova i tinejdžerskih komedija, onda ne iskorištavamo punu snagu medija! Picassova Guernica nije “zabavna”. Niko ne ide gledati tu sliku iz zabave.

Britanija, u kojoj živim, je zemlja ispunjena ratnim spomenicima stotinama hiljada ljudi koji su umrli u Prvom i Drugom svjetskom ratu. A kad ga vidim, obično volim da se popnem i pogledam ga. Volim čitati imena na njemu i razmišljati o tome šta su ti ljudi radili. Ali to ne radim iz zabave. Zapravo to radim posebno da bih osjetio tugu i žaljenje. Činim to da oplakujem te mrtve ljude. Činim to kako bih se podsjetio na žrtvu koju su podnijeli.

Jednom sam pročitao prilično laganu knjigu koja je sugerirala da se razlozi ljudi za odabir stvari uvijek mogu pripisati zabavi ili učenju ili oboje. Smešno. Ne gledam ratne spomenice da bih se zabavljao i ne gledam ih da bih nešto naučio; Gledam ih da nešto osjetim.

Toliko radimo u ovoj industriji, koncentriramo se tako isključivo na hvatanje zabave da smo izgubili dodir – ili nikada nismo imali dodir – s bilo kojim drugim osjećajima. Nije ni čudo što je toliko djela u našem mediju jednako plitko i bezveze! Naše igre su video ekvivalent tematskom parku. Tematski park je mjesto dizajnirano da maksimizira zabavu. Ali znaš šta? Odrasla sam. Više ne provodim puno vremena u tematskim parkovima. Ponekad umjesto toga odem pogledati ratne spomenice. Postoje trenuci kada bih ono što bih zaista radije bio oplakivati ​​mrtve od globalnog požara, ljude koji su umrli kako bih mogao živjeti u slobodi, nego se voziti okolo i okolo u izmišljenom avionu.

U ovom trenutku neki od vas možda govore: „Svemogući Bože, kakav depresivan dizajner igara. Ako se tako osjećate, maknite se iz industrije, ovdje vam nije mjesto.” Pa, imam vijesti za tebe. Ako je to način na koji vi osjećati, onda ste osudili samo da bude dizajner tematskih parkova. Imam širu viziju od te. Vjerujem da je ovaj medij sposoban i za više. Naučili ste kako potaknuti jednu jedinu emociju i to je sve do čega vam je stalo! Da ste pisac, mogli biste ikada pisati samo humorističke kolumne. Da ste filmski režiser, mogli biste ikada raditi samo komedije.

Prije mnogo godina moja supruga je otišla s prijateljima gledati film Narančasti vojnik. Nikad ga nisam vidjela, ali rekla je da je to bio vrlo intenzivan, vrlo potresan film. A nakon što je sve završilo, svi su izašli iz kina prilično potreseni i neko vrijeme šetali dalje u tišini. I na kraju je moja supruga rekla: „To je bio nevjerovatno dobar film. Jako mi je drago što sam došao. Ne želim to više nikada vidjeti.”

Nije istina da je zabava sve što radimo. Takođe radimo napetost, a ponekad i užas, i – daleko češće nego što bismo trebali – frustraciju. Ali zabava je precijenjena vrijednost. A ako želimo da nas smatraju umjetnošću, pogled izvan nje jedna je od prvih stvari koje moramo učiniti.

Šta je potrebno da bismo bili oblik umjetnosti?

Pa šta je potrebno da budemo oblik umjetnosti? Pa, mislim da je odgovor prilično jednostavan. Moramo se ponašati poput drugih oblika umjetnosti. Da bi igre bile prepoznate kao oblik umjetnosti, moraju raditi neke stvari koje rade druge vrste umjetnosti – što ljudi očekuju od umjetničkih oblika. Još važnije, moramo se početi ponašati kao da vjerujemo da smo umjetnička forma. Svoj rad moramo tretirati kao oblik umjetnosti i ponašati se kao da očekujemo da i javnost to učini.

Treba nam estetska

Potrebna nam je estetska ili raznolika. Ako pogledate filmove, ne ocjenjuje ih jedna estetika, već nekoliko njih. Ocjenjuju ih kinematografija, montaža, kvalitet glume i kvaliteta priče itd. I poput filmova, potreban nam je način da procijenimo umjetničku zaslugu elemenata koji čine igre. Moramo procijeniti priču ako postoji; moramo ocijeniti glumu ako postoji; moramo prosuditi besprijekornost iskustva, što je ekvivalent montaži u filmovima. Moramo prosuditi u kojoj mjeri svi elementi igre djeluju zajedno u harmoniji, bez ikakvih lažnih nota. Mnogo je igara nekada imalo neskladne prijelaze između interaktivnog i neinteraktivnog segmenta igre, ali u posljednje vrijeme to postajemo bolji.

Možda čak i pronađemo način da sami igrački sud procijenimo prema estetici: je li uglađen, lagan, prirodan? Opet, igranje u Tetrisu je estetski ugodno. Kada igrate zaista dobru igru, više ni ne vidite stavke izbornika na ekranu, tipke. Oni postaju druga priroda.

Moramo eksperimentirati

Moramo eksperimentirati, moramo isprobati nove stvari, moramo riskirati.

Razmislite o impresionizmu u slikarstvu. Sada je prepoznat kao jedan od najvećih pokreta u slikarstvu. Poznato je bilo isključeno iz Francuske akademije, a prva emisija impresionističkih slika morala je biti postavljena u nečijoj kući, jer je niko drugi neće ugostiti. Ali impresionizam nije bio tehnologija slikanja. Boja i platno i dalje su bili isti kao i uvijek. Niti se impresionizam prvenstveno bavio gledanjem novih stvari. Donijelo je neku novu temu, ali uglavnom, Impresionizam je bio novi način gledanja. Radilo se o tome da oko nije kamera. Ta slika ne mora biti reprezentativna.

Šta je naš ekvivalent impresionizmu? Ko od nas otvara novi teren u igranju, na način na koji je impresionizam otvorio novi teren u slikarstvu?

Moramo izazvati igrača

Najveća umjetnička djela, ona koja se izlože u muzejima i o kojima se zauvijek govori, su ona koja su riskirala i otvorila novo tlo. Umjetnost mora otvoriti novo tlo ili je to samo zanat, ukras. Velika umjetnost izaziva gledatelja. Zahtijeva da gledatelj raste, proširi svoj um, vidi stvari koje prije nisu viđene, misli na stvari o kojima se prije nije razmišljalo. Impresionizam je izazvao naše razumijevanje čemu služi slikarstvo. Romantični pokret u muzici izazvao je slušaoca; reklo je da se u glazbi mogu raditi emocije, a ne samo melodična “ljepotica”.

To nije uvijek lako u drugim medijima. Ali ko zna više o postavljanju izazova od nas? Izazvati igrača je upravo ono o čemu je riječ! Ljudi dolaze na naša djela jer žele biti izazovni.

Možete reći da mi predstavljamo drugačiju vrstu izazova, da su naši izazovi postići nešto, uvjet pobjede, dok velika umjetnost izaziva gledatelja da stvari vidi i čuje na drugačiji način, ne da nešto postigne, već da dobije novu vrstu razumijevanja. Ipak, zašto ne bismo mogli izazvati igrače da postignu ne samo uvjet za pobjedu, već i svojevrsno razumijevanje?

Sim City izaziva igrača da shvati odnos između efikasnog transporta i ekonomskog prosperiteta. Kao što sam rekao, to nije estetsko razumijevanje, ali nije ni posebno uvjet pobjede. Vjerujem da smo sposobni izazvati igrače kako estetski, tako i logično. Moramo se samo potruditi. Trik za nas je osmisliti nove izazove, a ne varijante istih starih. Novi žanrovi interaktivne zabave.

Naše nagrade se moraju promijeniti

Sljedeća stvar za koju vjerujem da se mora dogoditi je da se naše nagrade moraju promijeniti. Niko nikada ne dobija umjetničku nagradu na osnovu tehničkih zasluga ili izrade svojstvene umjetničkom djelu. Ako kipar dobije nagradu za skulpturu, to nije zbog kvaliteta zavarivanja. Ako je zavarivanje loše, možda neće dobiti nagradu, ali samo dobro zavarivanje nije dovoljno.

Ljudi dodijeljuju Oscara za tehničke zasluge filmova, ali primijetit ćete da je to uvijek mnogo manja ceremonija koja se održava u hotelskoj plesnoj dvorani, a ne u velikom, lijepom kazalištu. Ne emituje se na TV-u. Jedini ljudi koji prisustvuju tehničkim Oscarima su filmski tehničari, a ne blistave zvijezde. Veliki javni Oscar odnosi se na umjetnost, a ne na zanat.

Ali pogledajte naše nagrade za igre. Svi se bave zanatom. Najbolje programiranje. Najbolji zvuk. Ne dodeljujemo nagrade za najbolju priču ili najbolju glumu. I zasigurno su ti elementi tradicionalno najslabiji dijelovi igara. „Najbolja grafika“ kao kategorija nagrade posebno je dvosmislena. Neki ljudi misle da su najbolja grafika koja se prikazuje najvećom brzinom, ili koja koristi NURBS ili koja najsličnije oponaša vizuelnu stvarnost. To nije dobra grafika, to je dobra grafička tehnologija!

Potrebne su nam nagrade koje poštuju estetski sadržaj, a ne samo tehnološku sposobnost.

Ne trebaju nam recenzenti, već kritičari

Nagrade nisu dovoljne. Takođe nam trebaju kritičari da prepoznaju umjetničke zasluge. Nemamo ni kritičara. Ono što imamo su recenzenti. I pogledajte ih! Većina njih su oni koji se bave razvojem igara, igrači s osnovnim znanjem engleskog jezika jedva dovoljnim da kažu nešto korisnije od “sranja” ili “kamenja”. Pravi kritičari u svoju profesiju donose ne samo znanje o mediju o kojem razgovaraju, već široko čitanje i razumijevanje estetike i ljudskog stanja.

Sad znam da neki od vas u ovom trenutku kažu: “To je smiješno. Recenzenti igara ne trebaju biti dobro obrazovani, ne trebaju biti duboko promišljeni, samo trebaju znati što je zabavno.” I u pravu si. To je sve što recenzentima igara treba. Ali kritičari interaktivne zabave trebaju donijeti više: mudrost, zrelost, prosudbu, razumijevanje.

Još jedan prigovor koji sam čuo na ovaj argument je da jednostavno nema igara koje zaslužuju takvu dubinu razmišljanja. Da biste, ako biste uzeli intelekt velikih svjetskih umjetničkih kritičara i primijenili ga na igre, bili potpuno protraćeni. Ali mislim da smo sami krivi. Ne vjerujem da je to temeljna slabost medija. Činjenica da tamo ne postoje igre koje zaslužuju detaljnu analizu je zato što ih nismo napravili, niti zato što ih ne možemo napraviti.

Sad sam pročitao neke akademske filmske kritike, i uglavnom je bilo dosadno i nečitko. A Bog zna da ne želim da se naša industrija zaglibi u “pokrete” i “raskole” i sitne međusobne borbe, a da ne spominjemo puko drkanje, koje je prokletstvo svijeta umjetnosti. Šteta jadnog gada koji u ovom trenutku odluči da želi staviti boju na platno. Ima 1000 godina istorije koju treba opravdati i 10.000 kritičara, svaki sa svojom sjekirom za brušenje, svi koji gledaju preko njegovog ramena. Čudo je što uopće pokušavaju slikati; Znam da bi me to sigurno preplašilo.

Ali mislim da još ne moramo brinuti o tome. Trenutno smo toliko daleko od toga da smo umjetnost da nam to ne predstavlja problem. Ono što kažem je da za umjetničku formu nisu potrebni samo recenzenti koji uspoređuju jednu igru ​​s drugom, već i kritičari koji mogu razgovarati o značenju igre u širem kontekstu.

Ako pogledate film poput 2001: Odiseja u svemiru, svi recenzenti su se pokolebali, jer se nijedna njihova tradicionalna metrika nije primijenila. Bez romantike, bez akcije, bez napetosti, bez drame u tradicionalnom smislu te riječi. Gotovo bez glume. Ali kritičari su imali terenski dan! Budući da je 2001. bila bogata idejama, bila je krcata njima od jednog do drugog kraja!

2001: Svemirska odiseja veliko je umjetničko djelo. Ispunjava sve potrebne kriterije. Sadrži sadržaj, u redu: preko 3 sata. Nešto govori – zapravo mnogo stvari. Čini nas da nešto osjetimo. 2001. je u pojedinim trenucima bila dosadna. Bilo je to namjerno dosadno. Stanley Kubrick rekao je, “Putovanje u svemir ne vrvi oko svemira; putovanje u svemir je dugo, sporo i dosadno i učinit ću da to osjetite.” I to je, moji prijatelji, definicija umjetničke hrabrosti.

2001. godina nije formulativna; otvorilo je novo na sve načine, od kojih su neki i tehnološki, iako nisu nužno bili presudni za njegov uspjeh kao umjetničko djelo. To je zaista izazvalo gledatelja. Doneo nam je nove načine da vidimo bilo koji broj stvari: putovanje u svemir i računare, sve do čovjekovog mjesta u svemiru. Postavljalo je mnogo vrlo zanimljivih pitanja.

Gdje je naša 2001: Svemirska odiseja? Kada će jedan od nas napraviti igru ​​koja je bila briljantna i inovativna kao film iz 2001. godine?

Zaključak

Na kraju, na nama je hoće li interaktivna zabava biti legitiman oblik umjetnosti. Morat ćemo objaviti puno PR materijala, kako bismo javnosti i štampi dali do znanja da i sami vjerujemo da je ono što radimo oblik umjetnosti

Moramo promijeniti svoje nagrade kako bismo prepoznali umjetničke zasluge, a ne samo tehnološku sposobnost ili zanat.

Moramo promijeniti način na koji gledamo na naše igre, tako da se one kritiziraju, a ne samo pregledavaju.

Možda čak, Bog nam pomogne, moramo ići toliko daleko koliko su to činili filmovi i stvoriti kult ličnosti oko dizajnera igara na način da oni imaju kult ličnosti oko filmskog režisera. Ovo je jednom pokušano. Electronic Arts je osnovan s idejom da programere igara treba promovirati poput rock glazbenika i tretirati ih kao rock glazbenike. Na kraju su napustili tu ideju kad su igre postale dovoljno velike da ih više nije stvarala grupa veličine rock sastava i kada je slava koju su započeli natjerala dizajnere da traže više novca.

Ne znam da li je to dobra ideja, ali vjerojatno bi to promijenilo. Za umjetnost je potreban umjetnik. Jedan od apsolutnih zahtjeva svakog umjetničkog djela je da ono bude umjetno. I vjerujem da da bismo nas ozbiljno shvatili kao umjetničku formu, moramo ljude koji je čine ponovno vratiti u prvi plan.

Dogme 95 izjavio je da su filmovi otišli predaleko u tom smjeru, da su prenaglašili ideju filmskog reditelja kao vizionarskog, na štetu drame. Ali mislim da nismo otišli dovoljno daleko. Svako djelo interaktivne zabave koje se želi smatrati dostojnim umjetničkog oblika mora imati glavno ime vizionara na prednjoj strani. Svi u industriji znaju tko su Sid Meier, Brian Moriarty, Peter Molyneux i Will Wright, ali nije dovoljno da svi u industriji znaju ta imena; potrebna su nam ova imena da postanu kućne riječi. Moramo da Sid Meier postane poznat kao Francis Ford Coppola ili Gabriel Garcia Marquez.

Ali najviše od svega, i prije nego što napravimo bilo koju od tih drugih stvari, moramo početi stvarati interaktivnu zabavu koja je vrijedna vrste pažnje koju umjetnički oblici dobivaju. Netko će morati ustati i reći: “Stvorit ću računarsko, interaktivno umjetničko djelo. I to neće biti elektronički tematski park i neće biti interaktivni film o Jamesu Bondu.”

Moramo preuzeti te rizike. Moramo otvoriti novi teren. Moramo osmisliti estetiku. Moramo izazvati igrača da dođe do novih oblika razumijevanja.

Odgovor na pitanje koje je naslov ovog predavanja je odlučno DA – ali samo ako mi, sami tvorci, imamo hrabrosti i vizije za to.

Ovdje je završena lekcija.

Analiza komutativnosti

Original: https://www.isi.edu/~pedro/CA/commutativity.html

Pedro Diniz ([email protected])

Sažetak

Paralelne mašine nude obećanje o značajnom povećanju performansi omogućujući višestrukim procesorima da istovremeno izvršavaju različite dijelove računanja. Programeri su tradicionalno razvijali aplikacije za paralelne mašine koje koriste izričito paralelne jezike. Za razliku od serijskih programskih jezika, izričito paralelni jezici predstavljaju složen model programiranja karakteriziran takvim pojavama kao što su zastoj, neefikasno izvršavanje i, na strojevima za prijenos poruka, potreba za direktnim upravljanjem kretanjem podataka računanjem. Očigledne programske prednosti sekvencijalne imperativne programske paradigme pokrenule su, dakle, razvoj tehnika analize i prevodilaca dizajniranih za automatsku paralelizaciju serijskih programa.

Trenutni paralelni prevoditelji čuvaju semantiku izvornog serijskog programa čuvanjem ovisnosti podataka. Ovi prevoditelji pokušavaju identificirati neovisne dijelove izračuna (dva dijela računanja su neovisna ako niti jedan ne upiše dio podataka koji drugi pristupaju), a zatim generiraju kod koji istodobno izvršava nezavisne dijelove. Značajno ograničenje ovog pristupa je poteškoća u provođenju analize ovisnosti koja je dovoljno precizna da se razotkriju znatne količine istodobnosti. Dok su istraživači uspjeli razviti razumno efikasne algoritme za petlje gnijezda koja manipuliraju gustim matricama koristeći funkcije srodnih pristupa, ostvaren je mali napredak u uspješnoj automatskoj analizi programa koji manipuliraju strukturama podataka zasnovanim na pokazivačima. Istraživači su pokušali da izgrade potpuno automatske sisteme, ali najperspektivniji pristupi zahtijeva od programera da dostavi napomene koje određuju informacije o globalnoj topologiji manipuliranih struktura podataka. Drugo, temeljnije ograničenje pristupa zasnovanih na zavisnosti od podataka je nemogućnost paralelizacije računanja koja manipuliraju strukturama podataka sličnih grafovima. Nadimci koji su inherentno prisutni u tim strukturama podataka onemogućavaju statičko otkrivanje neovisnih dijelova koda, prisiljavajući prevodilac da generira serijski kod. Konačno, očuvanje ovisnosti podataka za programe koji periodično ažuriraju zajedničke strukture podataka može umjetno ograničiti količinu izložene istodobnosti, jer zadaci moraju odgoditi ažuriranja sve dok nisu sigurni da svako ažuriranje neće promijeniti relativni redoslijed čitanja i upisivanja u zajedničku strukturu podataka.

Analiza komutativnosti je okvir statičke analize za otkrivanje operacija na putu do posla. Dvije operacije mijenjaju se kad generiraju isti rezultat bez obzira na redoslijed kojim se izvršavaju. Analiza komutativnosti eliminira mnoga ograničenja postojećih pristupa utemeljenih na podacima, umjesto očuvanja relativnog poretka pojedinačnih čitanja i upisivanja u pojedinačne memorijske riječi, komutativnost analizom objedinjuje i podatke i izračunavanje u velike jedinice zrna. Zatim statistički analizira izračunavanje pri ovoj preciznosti kako bi otkrio kada komadi računanja tvore, tj. Generiraju isti rezultat bez obzira na redoslijed kojim se izvršavaju. Ako su sve operacije potrebne za obavljanje određenog računanja, prevodilac može automatski generirati paralelni kôd. Iako rezultirajući paralelni program može narušiti podatkovne ovisnosti izvornog serijskog programa, još uvijek je zajamčeno da će stvoriti isti rezultat.

Ovaj pristup ima nekoliko zanimljivih svojstava. Budući da se analiza komutativnosti ne oslanja na informacije o topologiji manipuliranih struktura podataka, prevodilac koji koristi analizu komutativnosti ne mora analizirati dijelove koda koji grade strukturu podataka. Analiza komutativnosti je stoga pogodna za nepotpune proračune, poput aplikacija koje manipuliraju postojanim podacima (npr. Objektno orijentirane baze podataka) ili aplikacije koje manipuliraju geografski disperziranim podacima (npr. Mobilni računi na World Wide Webu). U tim slučajevima kôd koji je izvorno izgradio strukturu podataka možda neće biti dostupan ili možda više ne postoji. Analiza komutativnosti je posebno pogodna za računanja koja manipuliraju grafovima. Ovo je važan aspekt analize komutativnosti, jer su računi koji manipulišu ovim podacima podataka suštinski izvan dosega analize ovisnosti podataka.

Koristili smo sistemski orijentisan pristup da bismo procijenili sposobnost analize komutativnosti za izdvajanje i iskorištavanje značajnih količina paralelizma u kompletnim aplikacijama. Izgradili smo paralelni kompajler koji koristi komutativnost kao svoju primarnu paradigmu analize. Ovaj prevodilac uzima kao ulaz nenajavljeni sekvencijalni program napisan u podskupini C++ i generira paralelni kod za višeprocesor zajedničke memorije. Koristeći ovaj paralelizator prevodilac, automatski paraleliziramo nekoliko aplikacija, uključujući Barnes-Hutov N-body solver, kôd za simulaciju tečne vode i seizmički model modeliranja. Za sve ove aplikacije analiza komutativnosti može otkriti znatnu količinu istodobnosti, a generirani paralelni kod pokazuje vrlo dobre performanse. Na 16 procesora, automatski paralelna verzija Barnes-Huta radi između 11 i 12 puta brže od izvorne sekvencijalne verzije; za aplikaciju za simulaciju vode, automatski paralelna verzija radi između 7 i 8 puta brže od izvorne sekvencijalne verzije; za seizmičku primjenu modeliranja, automatski paralelna verzija radi oko 12 puta brže od izvorne sekvencijalne verzije.

Ovi eksperimentalni rezultati su vrlo ohrabrujući. Ove su aplikacije vrlo dinamične prirode – ili manipuliraju sofisticiranim strukturama podataka zasnovanim na pokazivačima ili pokazuju vrlo nepravilne obrasce pristupa podacima. Iskorištavanje paralelnosti krupnog zrna u aplikacijama s ovim karakteristikama prepoznato je kao vrlo težak problem. Nismo svjesni niti jednog drugog prevoditelja ili tehnike sastavljanja koji bi mogao izvući značajne količine istodobnosti za ta izračunavanja. Nadalje, pozitivni eksperimentalni rezultati pružaju konkretne dokaze o praktičnom značaju analize komutativnosti kao tehnike automatske paralelizacije kompajlera.



Povezane publikacije

Zašto šifriramo

Original: https://www.schneier.com/blog/archives/2015/06/why_we_encrypt.html

Bruce Schneier

Šifriranje štiti naše podatke. Štiti naše podatke dok sjede na našim računarima i u podatkovnim centrima, a štiti i kada se prenose internetom. Štiti naše razgovore, bilo da su u pitanju video, glas ili tekst. Štiti našu privatnost. Štiti našu anonimnost. A ponekad, ona štiti naše živote.

Ova zaštita je bitna za sve. Lako je vidjeti kako šifriranje štiti novinare, branitelje ljudskih prava i političke aktiviste u autoritarnim zemljama. Ali šifriranje štiti i nas ostale. Štiti naše podatke od kriminalaca. Štiti ga od konkurencije, susjeda i članova porodice. Štiti ga od zlonamjernih napadača, a štiti ga i od nezgoda.

Šifriranje najbolje funkcionira ako je sveprisutno i automatski. Dva oblika šifriranja koje najčešće koristite – https URL-ovi na vašem pretraživaču i veza slušalica-toranj za vaše pozive na mobitel – rade tako dobro jer ni sami ne znate da su tamo.

Šifriranje bi trebalo biti omogućeno za sve prema zadanim postavkama, a ne za značajku koju uključite samo ako radite nešto što smatrate vrijednim zaštite.

Ovo je važno. Ako šifriranje koristimo samo kad radimo sa važnim podacima, onda šifriranje signalizira važnost tih podataka. Ako samo disidenti koriste šifriranje u nekoj zemlji, vlasti te zemlje imaju jednostavan način njihove identifikacije. Ali ako ga svi koriste cijelo vrijeme, šifriranje prestaje biti signal. Jednostavno razgovor ne može razlikovati od duboko privatnog razgovora. Vlada ne može saopštiti disidente od ostatka stanovništva. Svaki put kada koristite šifriranje štite nekoga ko ga treba koristiti da bi ostao živ.

Važno je zapamtiti da šifrovanje ne prenosi magično na sigurnost. Mnogo je načina kako da se kriptira krivo, a mi ih redovito vidimo u naslovima. Šifriranje ne štiti vaše računalo ili telefon od hakiranja i ne može zaštititi metapodatke, poput adresa e-pošte, koje je potrebno nešifrirati kako bi vam pošta mogla biti isporučena.

Ali šifriranje je najvažnija tehnologija za očuvanje privatnosti koju imamo i ona koja je jedinstveno prikladna za zaštitu od masovnog nadzora – onakva kakvu rade vlade koje žele kontrolirati svoju populaciju, a kriminalci koji traže ranjive žrtve. Prisiljavajući obojicu da ciljaju napade na pojedince, mi štitimo društvo.

Danas vidimo povraćaj vlade protiv šifriranja. Mnoge države, od država poput Kine i Rusije do demokratskijih vlada poput Sjedinjenih Država i Velike Britanije, ili govore ili provode politike koje ograničavaju snažno šifriranje. Ovo je opasno jer je tehnički nemoguće, a pokušaj će nanijeti nevjerovatnu štetu sigurnosti interneta.

Sve su to dva morala. Prvo, trebali bismo potaknuti kompanije da standardno nude šifriranje svima. I drugo, trebali bismo se oduprijeti zahtjevima vlada da oslabe enkripciju. Svako slabljenje, čak i u ime legitimnog provođenja zakona, sve nas dovodi u opasnost. Iako kriminalci imaju koristi od snažne enkripcije, svi smo puno sigurniji kada svi imamo jaku enkripciju.

Ovo originalno pojavio u Osiguravanje sigurne prostore na mreži.

UREĐENO DODATI: Prošlog mjeseca, ja blog o izvještaju UN-a o vrijednosti tehnologije enkripcije na slobodu u svijetu ljudi. Ovaj esej je predgovor u pratećem dokumentu:

Da podrže zaključke sadržane u izvještaju Specijalnog izvjestioca, Privacy International, Međunarodnog dana ljudskih prava Pravna klinika Pravnog fakulteta Harvard i člana 19 objavili prateća knjižica, Osiguranje sigurne prostore na mreži: Šifriranje, na mreži anonimnost i ljudska prava koji istražuje utjecaj mjera da ograniči online enkripciju i anonimnost u četiri pojedinih zemalja – Velika Britanija, Maroko, Pakistan i Južna Koreja.

Objavljeno 23. juna 2015. u 6:02

UMETNOST MISDIREKCIJE

Original: https://dannorth.net/the-art-of-misdirection/

Pazi mađioničara. Gledajte kako baca novčić u ruku, zatvara ruku, pokazuje vam zatvorenu ruku, otvara je cvjetanjem i novčića nema! On se smiješi. Gledate njegovu drugu ruku. Preokrene ga i otvori ga istim cvjetanjem. Ni tamo! Zatim ti uzme ruku, zatvori je u šaku, otvori je i stane novčić!

Sad gledajte ponovo. Ovog puta pazite na drugu ruku. Dok on prebacuje gornju ruku i stisne šaku, ugledate novčić kako klizi u donju ruku u mnogo manjem pokretu. Otvori praznu ruku i pomakne donju ruku prema vrhu. Zanemarite očigledan pokret. Umjesto toga, primjetite kako vodi novčić među srednjim prstima. Zanemari kako otvara drugu ruku i umjesto toga vidiš kako opet diskretno baca novčić u prvu ruku. Konačno osjetite kako on gurne novčić u vaš dlan dok zatvara vaše prste. Magija? Možda ne. Ali klasična iluzija.

Čarolija deluje pogrešno. Mađioničar koristi vašu sklonost gledanju očitog, dok se stvarna radnja odvija drugdje. Kad se očigledno učini dovoljno uvjerljivim, teško je čak i zamisliti da potražite negdje drugdje. Ekonomisti imaju naziv za učinak samo gledanja na jednom mjestu: oni to zovu Opportunity Cost. Što god da radite trenutno dolazi po cijenu svega ostalog što biste mogli raditi umjesto toga, a tu su i druge stvari koje biste mogli raditi. Ali ne razmišljate o drugim stvarima, jer ste zauzeti koncentracijom na očigledno.

Skriveni trošak razvoja softvera

Kako se to odnosi na prakse razvoja softvera? Nova praksa obično započinje kao dobronamerni savet: „Isprobali smo ovu stvar (stand-up, par programiranje, TDD, spaljivanje ljestvica, iteracije, automatizacija izrade) i to nam je dobro uspelo. Možda biste i vi trebali probati!”

Prerano je u prilogu dnevni red: „Pokušali smo to i mislimo da možemo zaraditi novac pokazujući ljudima kako to da rade. Trebali biste ga koristiti jer djeluje! Evo bijelog papira za to.”

Usput, ako pročitate taj spisak praksi i mislite „ali to su sve dobre stvari za napraviti“, razgovaram s vama. Gdje ne radi tehnika? Što biste drugo mogli raditi? Koji su kompromisi u odabiru ove alternative?

Posljednjih nekoliko godina radio sam s timovima koji su bili produktivniji od svega što sam vidio prije. Njihove metode su bile kombinacija „tradicionalnih“ agilnih tehnika i ludih, kontraintuitivnih praksi koje su mi zadale kulturološki šok. Morao sam naučiti gomilu primljene mudrosti pre nego što sam uspeo da počnem da razmišljam onako kako su to učinili.

Pokušajte s ovom dvodijelnom vježbom: Razmislite o praksi ili tehnici koju koristite prilikom razvoja softvera, možda i vaša omiljena vježba. Razumeo? Ok, 1. dio: zašto to radite? Kakve koristi vam donosi? Vjerovatno možete pomisliti na nekoliko. Zapiši ih. Sada, drugi deo: gde ga ne biste koristili i koje su neke alternative? Zapišite neke prednosti i nedostatke svakog od njih. Sačekaću

Verovatno ćete smatrati da je taj drugi deo mnogo teži. Ako ste uglavnom izmislili negativne ili ironične razloge za alternative, samo navodite više razloga za korištenje izvorne prakse. Ne možete da prođete preko alternative. Prevarili ste se!

TDD pod reflektorom

Kao primjer ću odabrati TDD jer je to jedna od najgorički zagovaranih praksi sa kojom sam se susreo, ali ovaj pristup možete primijeniti na bilo što. Mi ćemo pogledati TDD – stvarno ga pogledajte – i možemo li otkriti gdje sjaji i gdje nije toliko korisno.

Ako ste TDDer, razmislite o tome gdje to ne biste koristili i šta biste umjesto toga mogli učiniti. Nedavno sam vidio nekoliko ljudi koji ovo pitaju kao retorički ili čak ironični izazov, kao da biste bili ljuti kad biste ikad pomislili da ne koristite TDD.

Zagovornici TDD-a kažu da stvari poput „TDD omogućava stalne, sigurne promene“. To se često događa. „TDD omogućava novi dizajn.“ Možda. „Automatizirani testovi djeluju kao regresijski paket i sprečavaju vam ponovno unošenje grešaka.“ To se često događa. “Testovi djeluju kao živa dokumentacija.” “Softver vođen testom je čistiji i lakši za promenu od softvera koji nije testiran.” Zapravo ću se pobrinuti za ovaj. Video sam šokantne baze TDD-a i čiste i pogodne baze podataka bez automatiziranih testova.

Pogledajmo prigodni trošak – kompromise – u svakoj od ovih tvrdnji. Svaki bi mogao biti članak sam po sebi. Samo vam želim pružiti osjećaj da pronađete kompromise svojstvene zvučnim zalogajima poput ovih.

Oportunitetni trošak stalnih, sigurnih promjena

Šta ne želite voljeti u stalnim, sigurnim promjenama? Pa ponekad možete opisati problem, ali ne možete vidjeti očit odgovor. Aplikacije za financijsko trgovanje mnogo su slične: možete isprobati nekoliko pristupa i vidjeti kako oni rade, poput niza eksperimenata. Želite da svaki eksperiment bude jeftin, tako da možete isprobati nekoliko. TDDing će svaka opcija djelovati, svakako, ali bit će skuplje od skiciranja nečega ako se vidi da li se osjeća dobro.

Koliki su oportunitetni troškovi za sve to dodatno vrijeme provedeno na TDDing skice? Možete skicirati šest desetina ideja u vremenu koje je potrebno da TDD bilo koja od njih. I tu se ne završava. Rezultat jednog pokušaja može promijeniti vaše razumijevanje problema koliko nudi potencijalno rješenje, koje vas šalje u novom, neočekivanom smjeru. Neki zagovornici TDD-a reći će da je ovo niz uboda i ne morate ih TDD-a. Međutim, govorim o potpunom stavljanju softvera u proizvodnju i održavanju uspješnih eksperimenata kao proizvodnog softvera, tako da to zaista i ne vrijedi.

TDD zaključava u vašoj pretpostavci o željenom krajnjem cilju. Pretpostavlja se da znate odakle krećete ili barem odakle krećete. Ako ne znate kako rješenje uopće izgleda, ovo bi mogla biti nepoželjna strategija. Možda biste trebali odgoditi ulaganje u rješenje dok ne saznate više o problemu.

Oportunitetni trošak novog dizajna

Ponekad vas pravi dizajn ne gleda u lice. Bilo bi potrebno pomicanje perspektive, preispitivanje cijele premise, da se jednostavnost vidi kroz prividnu složenost. TDD govori o inkrementalnim promjenama i poboljšanju. Izvrsno je za pronalaženje lokalnih maksima, ali najbolje rješenje bi moglo zahtijevati radikalno promišljanje. Oportunitetni trošak u ovom slučaju je da budemo zarobljeni u ovom lokalnom maksimumu i propustimo veću pobjedu. U vitkom smislu, ovo je razlika između kaizen-a, stalnog poboljšanja i kaikaku-a, nagle transformacije. Niti jedno ne može uspjeti bez drugog, ali skloni smo fokusiranju samo na kaizen kao oblik optimizacije.

TDD je epitet kaizenskog programiranja. Da bi zablistao potrebno mu je okruženje u kojem se možete koraknuti, otići na mentalnu šetnju blokom, vratiti se i možda sve promijeniti. Potrebna vam je sveobuhvatna vizija, dizajn ili arhitektura velike slike. TDD vam to neće dati. Međutim, snažna provedba složenog ponašanja će imati koristi od inkrementalnog pristupa koji pruža TDD. Primijetit ćete da ne predlažem da ne upotrebljavam TDD, ali kvalificiram gdje i na koji način je to učinkovito.

Ne pišete softver jer želite softver, pišete softver da biste mu pružili mogućnost. Na nekoliko nedavnih aplikacija stigli smo do točke kada smo ponovo napisali sistem da bismo dodali novu mogućnost. Zvuči nepristojno, nebitno rasipno, ali ono što smo naučili doći do mjesta gdje su nam rekli da bi bilo efikasnije prepisati – često drugom tehnologijom – podskup aplikacije koja sadrži pravu vrijednost. Jedan sistem započeo je u Scali i prešao je, na komade, na Javu (sigurno u pogrešnom smjeru!). Još jedan je započeo u Python-u i prešao je na JavaScript i node.js. Još jedan je započeo u Pythonu i prepisan je u drugu aplikaciju Python! Svako prepisivanje je rezultat dobivanja softvera pred ljudima, radnicima kao i korisnicima i odgovaranja na njihove povratne informacije. U tom kontekstu nije bilo važno koliko je originalni kod kreiran ili testiran jer smo ga odbacili.

Nismo pretjerano uložili u softver okružujući ga sveobuhvatnim automatiziranim testovima, inače bi to bila skupa vježba. Ali šta je s softverom koji je preživio? Otkrili smo da je moguće proizvesti nivoe TDD kvaliteta nakon toga. Znamo kako izgleda dobro utemeljen softver i do ove faze smo znali da smo spremni uložiti u ovaj softver: on je dokazao svoju vrijednost. Počeli smo uvođenjem TDD stilu testova za složenije ili kritičnih dijelova koda, što nas je dovelo do refactor da bi ga više testirati, koji je stvorio prirodne šavovima i podsistema u kodu, što dovodi do veće refaktorisanih, i tako dalje. Ja sam opisuje ovu tehniku kao Šiljak i stabilizirati: dobiti nešto, bilo šta, u proizvodnju da traže brze povratne informacije, i ulagati u bilo kojem opstaje.

Oportunitetni trošak automatiziranih testova

Automatizirani testovi daju sigurnost da kôd radi ono što bi trebao. Ovo sugerira dva pitanja: Postoje li drugi načini za postizanje tog uvjerenja? A je li jamstvo uopće vrijedno?

Automatizirani testovi su dobri u vježbanju određenih dijelova koda. Da li biste uočili greške u tom kodu bez testova? Ne možete pomoći da ne primijetite nedostajuće ili nepovezano dugme za slanje. Ako aplikacija propadne na pola puta putem dohvaćanja podataka, što bi trebala učiniti? Jednom kada ste to kodirali da li će to prestati raditi? Hoće li vam automatizirani test dati još više sigurnosti? Šta biste mogli učiniti umjesto toga?

Vrijednost automatiziranog testa je funkcija brojnih stvari: kritičnost koda, utjecaj lošeg događaja, trošak ispravljanja loše stvari, koja može biti ugledna i operativna, vjerojatnost da ćete to učiniti ne primećujući ga redovnim korišćenjem u razvoju, vaše poznavanje domene. Kôd na ivicama sistema često je teže testirati od unutarnjeg koda. UI widgeti, vanjske integracijske točke, usluge trećih strana, automatiziranje mogu biti skupe. Da li trošak opravdava vrijednost? Opet ne kažem da to ne radim, već da dovodim u pitanje kompromise i odlučujem gdje ima smisla. Vidio sam kako timovi spašavaju razvojne napore stvarajući prekrasne automatizirane testne skupove koji gotovo da i nisu dobili dodatno jamstvo ili povratne informacije o korištenju aplikacije. Tamošnji ugledni troškovi su visoki: gube vjerodostojnost kod svojih dionika, koji bi radije vidjeli da im se značajke isporučuju. Opet trebate uspostaviti ravnotežu, shvaćajući gdje je automatizacija korisna, a gdje navika.

Oportunitetni troškovi testova kao žive dokumentacije

Postoji mnogo vrsta dokumentacije. Vrijedna dokumentacija vas educira. To vam govori stvari koje inače ne biste znali jer nisu očigledne. Želite znati šta ovaj sistem razlikuje od svih ostalih sličnih sistema koje ste vidjeli. (Takođe možete postavljati pitanje zašto dokumentirate ove prepirke, umjesto da ih eliminirate iz sistema i smanjite nivo iznenađenja za novopridošlog novaca, ali to je druga priča.)
Neki automatizirani testovi čitaju više poput povijesnih dokumenata, pružajući uvid u prošlost vremena. Možda se u jednom trenutku dogodila glupa buba gdje je osvježavanjem trenutnog statusa otpuštena adresa e-pošte do povratak officea. Oni primećen je odmah, naravno, tako da programeri napisao test pod nazivom “ne bi trebalo da pošalje e-mail na back office kada osvježavajuće trenutni status”Šta? Naravno da ne bi trebalo. Ali, s vremenom smo akumulirane mnoge od tih “Naravno da ne” testova, čime se povećava buka među signal, tako da postaje teže pronaći zaista korisne stambene dokumentaciju. Živim nije sinonim za koristan. Kuratorstvu žive dokumentacija – automatizirani testovi – je jednako važno aktivnost kao kustos bilo koje druge vrste dokumentacije. Prečesto ga je zanemarena.

Zaključak

Iako sam se u ovom članku fokusirao na TDD, postoji značaj u prepoznavanju oportunitetnih troškova i kompromisa u svim vašim postupcima i aktivnostima. Na TDD vidim kao vrijednu i važnu razvojnu tehniku, ali postoje konteksti u kojima on svijetli i drugi u kojima ga ometa. Dakle, nemojte uzimati ništa po nominalnoj vrijednosti, a umjesto toga potražite kompromise u svakoj odluci koju donesete, jer su takvi kompromisi tu bilo da ih vidite ili ne. A ako možete naučiti da ih uočite možete napraviti magiju.

Povijest: Ovaj članak je prvi put objavljen u Developer časopisu izdanje broj 2/2012, a dostupan je kao pdf download.

FIELD: prijateljsko integrisano okruženje za učenje i razvoj

Original: http://cs.brown.edu/people/spr/research/envfield.html

Steven P. Reiss

Pregled

FIELD je sveobuhvatno programsko okruženje, koje se sastoji od niza naših vlastitih alata, uglavnom za vizualizaciju softvera, i omotača za većinu UNIX programskih alata koji su postojali tokom njegovog razvoja. Omogućuje integrirano okruženje korištenjem centralnog poslužitelja poruka koji omogućava da razni omoti (i alati) međusobno šalju poruke. Integriranje alata s izvornim datotekama obavljeno je putem uređivača napomena koji je podržavao proizvoljne napomene na izvornim linijama i vezao ih uz poruke. Područje FIELD uključuje razne vizualizacije uključujući strukturne vizualizacije, vizualizacije strukture podataka i dinamičke vizualizacije kopije i datoteka.

Publikacije

FIELD: prijateljsko integrirano okruženje za učenje i razvoj, Kluwer Press, 1994.

Razgovarajte o FIELD.

Man stranice za FIELD alata.

FIELD uputstvo za upotrebu.

Poduka o korištenju FIELD. (Starija verzija)

SDT: programski jezik za ispravljanje pogrešaka, Neobjavljeni, 1989.

Vizualizacija za softversko inženjerstvo – programska okruženja, u Vizualizacija softvera, programiranje kao multimedijalno iskustvo, MIT Press, 1997. godine.

Vizualno praćenje izvršenja programa, Neobjavljeni, 1991.

Interakciji sa FIELD okolišSoftver prakse i iskustva, juni 1990. godine.

Povezivanje alat pomoću Poruka ProlaziIEEE Softver, juli 1990. godine.

Terenska podrška za C++Proc. USENIX C++ konferencija, april 1990. godine.

CCEL: metajezik za C++Proc. Drugi USENIX C++ konferencije, avgust 1992. godine.

Podrška za održavanje programa objektno orijentiranaIEEE Trans na softverskom inženjeringu decembra 1992. godine.

Jedan Empirijski Studija višestrukih više razvoj softveraSoftver Eng. Napomene decembra 1992. godine.

Prikaz programa i strukture podataka20. HICSS, januar 1987.

Koristeći GELO vizualizacije softverski sistemiProc. Uist ’89.

O korištenju napomene za integraciju izvor u program razvoja zaštite životne sredine, u Ljudski faktor u dizajn i analizu informacijskih sistema, Severna Holandija, 1990. godine.

 

Pogled na različitih alata

Pregled celokupnog okruženja

Uređivač napomena

Sučelje za uklanjanje pogrešaka

Prikazivač događaja

Preglednik snopa

Prikazivač varijable u praćenju

Standardni I/O prikazivač

Preglednik unakrsne referenca

Preglednik grafa poziva (prikazuje sve FIELD)

Preglednik grafa poziva koji prikazuje program u akciji

Preglednik hijerarhije klase

Preglednik performansi (prof/gprof)

Preglednik upravljanja konfiguracijom

Prikaz strukture podataka

Prikazuje se uređivač za podešavanje prilagođene strukture podataka

Prilagođeni prikaz strukture podataka

Visualizator gomile

I/O vizualizator

Vizualizator performansi

Demonstracijski videozapisi

http://cs.brown.edu/people/spr/research/envfield.html

Nabavite softver

Field je donekle prenesen u Linux i kasnije verzije Solarisa. Imajte na umu da mnogi dijelovi sustava nisu održavani i više ne rade. Konkretno, mnoge funkcije za uklanjanje pogrešaka i neki alati za profiliranje ne rade. Međutim, ako želite pogledati kod ili isprobati stvari, dobrodošli ste.

Preuzmite izvor.

Automatizirajte sigurnosne kopije

Original: https://www.grsoftware.net/backup/articles/automate_your_backup.html

Roberto Grassi, P. Eng.

Predsjednik, GRSoftware

Uvod.

Učinkovitost dobrog sigurnosna kopija programa ovisi o tome da učinkovito izvršavate sigurnosne kopije. Često smo toliko zauzeti da jednostavno zaboravimo ručno pokrenuti sigurnosnu kopiju!

Prilikom odabira kvalitetnog profesionalnog softvera za sigurnosno kopiranje trebate provjeriti koje mogućnosti imate za automatiziranje sigurnosnih kopija da biste ga mogli postaviti i zaboraviti na njega. Pa, GRBackPro profesionalni sigurnosni softver je jedan od rijetkih softverskih programa koji ne samo da omogućava ovaj nivo automatizacije, već vam omogućuje i postavljanje različitih strategija za automatizaciju koje se mogu pokrenuti istovremeno.

Izrada sigurnosne kopije pri isključivanju.

Prva metoda koju možete koristiti za automatizaciju sigurnosne kopije je izvršiti sigurnosnu kopiju na kraju radnog dana. Obično je doba dana kada je opterećenje CPU-a na računalu nisko, pa su resursi besplatni za brzu i pouzdanu izradu sigurnosnih kopija. Druga važna stvar je da ako osigurate da su sve aplikacije zatvorene, tada će sve vaše datoteke biti konzistentne. U stvari, čak i ako GRBackPro može izraditi sigurnosnu kopiju vaše datoteke podataka tijekom uporabe koristeći Kopija sjena volumena, bolje je napraviti sigurnosnu kopiju datoteke koja je savršeno konzistentna i koja je postavljena na dobro poznatoj točki (u ovom slučaju na kraju radni dan). Prvo što morate učiniti ako pokrenete sigurnosnu kopiju na kraju dana je zatvoriti sve aplikacije. GRBackPro nudi vam karticu Zadatak na kojoj možete GRBackPro zatvoriti aplikacije i zaustaviti usluge prije izvršenja sigurnosne kopije, a zatim ih pokrenuti, ako je potrebno, na kraju sigurnosne kopije. Imate dvije mogućnosti za izvršavanje sigurnosne kopije pri isključivanju. Prvi je definiranje događaja planera koji pokreće sigurnosnu kopiju kada isključite računalo. U tom slučaju pokrećete isključivanje, a zatim GRBackPro bilježi ovo stanje i pokreće sigurnosnu kopiju. Počevši od sistema Windows Vista, Microsoft je izmijenio postupak isključivanja kako bi korisniku omogućio brzo zatvaranje računara. GRBackPro može blokirati isključivanje kako bi imao vremena potrebno za dovršavanje sigurnosne kopije. Ne preporučujemo ovu metodu, jer imate manju kontrolu nad procesom izrade sigurnosnih kopija i isključivanja.

Predlažemo da umjesto toga koristite GRBackPro funkciju “Na kraju sigurnosne kopije”. Obično tražimo da se program isključi i isključi računar kada se sigurnosna kopija završi bez grešaka. Stoga, ako sve pođe dobro, vidjet ćete da će se vaše računalo nakon nekog vremena isključiti. Ako ostane UKLJUČEN, nastao je problem koji ćete morati provjeriti prije odlaska kući. Ako ovako postupite, vratit ćete vam mir kad odete kući.

Izrada sigurnosne kopije na umetanju diska odredišta.

Još jedna korisna značajka je mogućnost da se softver za izradu sigurnosnih kopija pokreće kada je pogon spreman ili drugim riječima kada je put dostupan. Radije razgovaramo o putu koji je dostupan jer nismo ograničeni na fizičko umetanje pogona, poput USB pogona, ali mogu uključivati ​​i mrežne staze.

Imati softver za sigurnosno kopiranje automatski pokrenuti sigurnosnu kopiju kada se dogodi jedan od gore navedenih događaja jer ne morate ručno pokrenuti sigurnosnu kopiju. GRBackPro nudi vam tu mogućnost iz integriranog rasporeda. Možete definirati događaj i dodati uvjetno izvršenje. Ovo se stanje može zasnivati ​​na dostupnosti staze. Ostale mogućnosti temelje se na upotrebi i opterećenju računara. Na primjer, izvršenje sigurnosne kopije možete usloviti ako ništa ne kucate ili ne pomičete miš. To bi moglo značiti da niko ne koristi računar, a time i izvršavanje sigurnosne kopije nikoga neće ometati.

Drugi mogući uvjet može biti izvršenje sigurnosne kopije samo ako je učitavanje CPU-a ispod određenog postotka, duže od određenog vremena. To jamči da će se sigurnosna kopija izvoditi samo kad nijednoj aplikaciji nisu potrebni resursi vašeg računara. U stvari, postoji mogućnost da imate pokrenut proces za koji treba vremena CPU-a, iako fizički ne koristite računalo. Ova je opcija inteligentna jer učinkovito mjeri opterećenje CPU-a kako bi bili sigurni da je CPU slobodan. Sa svakim uvjetnim testom, GRBackPro može se postaviti tako da ponovo pokuša uvjete definirane od strane korisnika, nakon čega, ako uvjet još uvijek nije ispunjen, događaj će biti označen kao propušten.

Ako imate grešku, obratite pažnju.

Ako želite automatizirati sigurnosnu kopiju i jednostavno zaboraviti na nju, tada morate imati dobru pouzdanu metodu koja će se savjetovati ako nešto pođe po zlu. Da, svaki softver za sigurnosno kopiranje stvara i upravlja datotekom dnevnika, ali morate je povremeno provjeravati kako ne bi bilo grešaka. Ako ne napravite sigurnosnu kopiju važnih datoteka, to je prava bol!

Tako da također morate automatizirati aspekt izvješćivanja sigurnosnog kopiranja. Program profesionalne izrade sigurnosnih kopija GRBackPro nudi vam i ovdje dobro rješenje. Na kartici Zadaci možete dodati zadatak koji će vam poslati poruku e-poštom u slučaju greške sigurnosne kopije. Ova obavijest putem e-pošte uključuje datoteke koje su uključene u grešku tako da odmah znate problem i možete odlučiti što ćete poduzeti. Ova opcija vam omogućava i daljinsko upravljanje računarom radeći sigurnosne kopije za vašu kompaniju. Možda imate postavljeno mnogo rezervnih poslova i ako bilo koji od njih krene po zlu, bit ćete obaviješteni. Naravno da možete tražiti da budete obaviješteni o tome da je sigurnosna kopija izvršena. GRBackPro vam može poslati e-poruku u obliku bilješke kada se pokrene sigurnosna kopija. Taj se e-mail uvijek šalje, pa ako se sigurnosna kopija ne pokrene, bit ćete upozoreni ako ne bude e-pošte.

Zaključak.

Uz gore navedene i druge značajke ugrađene u GRBackPro, možete biti sigurni da su vaši podaci sigurni. Možete lako postaviti sigurnosnu kopiju, a zatim zaboraviti na nju ako se ne dogodi neuspjeh. Tada ćete morati vratiti svoje podatke, ali možete biti sigurni da su vaši podaci sigurni i spremni za brzo vraćanje.

©Copyright by GRSoftware™ – Windows Server Backup Software. All rights reserved.

Kako instalirati SSL certifikat na WordPress mjestu

Original: http://www.zisman.ca/blog/2019-04-08%20-%20Install%20SSL%20Certificate%20on%20Wordpress.html

Alan Zisman

2019-04-08

Pre svega, šta je to SSL sertifikat? SSL je skraćenica od Sloj sigurnih utičnica, i ovaj digitalni sertifikat autentificira identitet vaše web stranice, a zatim šifrira sve informacije koje se šalju poslužitelju koristeći SSL tehnologiju.

Imati ovaj certifikat služi kao vrsta elektronskog pasoša, koji zauzvrat uspostavlja vaše akreditive dok poslujete na Internetu.

Svaki SSL certifikat se sastoji od sljedećih informacija:

● Ime vlasnika certifikata.

● Serijski broj i datum isteka certifikata.

● Kopija javnog ključa vlasnika certifikata.

● Digitalni potpis organa koji je izdao certifikat

Imati ovaj certifikat potvrđuje da postoji siguran kanal između točke A i točke B na Internetu.

Dakle, želite imati SSL certifikat za vašu WordPress stranicu. Pošto sve gore navedeno može biti besmisleno za vas, evo razloga zašto biste trebali imati certifikat. Ako imate e-trgovinu, morate imati ovaj certifikat prije nego prihvatite bilo koji oblik plaćanja.

Ako imate stranice zaštićene lozinkom na vašoj web-lokaciji, također želite znati da je to zaštićeno SSL certifikatom.

Šta ako ne kupujete i prodajete ništa na vašoj web lokaciji, ali prikupljate osjetljive informacije od svojih posjetitelja? Uz SSL certifikat, sve informacije su šifrirane i sigurne.

Kako drugačije možete osigurati vašu web lokaciju?

Koristite VPN

VPN je skraćenica za Virtual Private Network. To nije nešto što je specifično za WordPress, to je usluga koja može, a neki kažu da bi danas trebala koristiti svatko na internetu. Svrha ove mreže je da vam pomogne da ostanete anonimni dok ste na mreži i da osigurate ili kriptujete vaše podatke. Za korisnika WordPress-a, posebno onaj koji može pokrenuti neku vrstu posla, oni bi definitivno mogli koristiti zaštitu VPN-a. U zavisnosti od vašeg sistema, možda postoje neke funkcije koje treba da potražite, na primer, pogledajte ovaj pregled PureVPN-a.

Izaberite sigurnog domaćina

Prije nego instalirate novu WordPress stranicu, morate imati poslužitelj na kojem ćete ga ugostiti. Možda ćete biti u iskušenju da izaberete najjeftiniju uslugu hostinga koju možete pronaći, ali to nije nužno najmudriji način djelovanja. Vaša web stranica će biti sigurna samo kao poslužitelj na kojem se postavlja. Zato uzmite vremena i provedite istraživanje kako biste bili sigurni da je domaćin koji na kraju odaberete ugledan.

To ne znači da morate uzeti najskuplji raspoloživi host. Postoje neki izuzetno dobri hosting provajderi koji su relativno jeftini.

Sigurne lozinke

Postoje različiti načini da se osigura vaš WordPress sajt, ali zbog ovog članka bavimo se najosnovnijim i najlakšim za implementaciju.

Kada instalirate novu WordPress stranicu, dobijate opciju da promenite podrazumevano korisničko ime, a vi ste takođe dužni da izaberete lozinku. Uverite se da je lozinka duga, komplikovana lozinka, idealno sastavljena od slova, brojeva i simbola. Slova moraju biti mješavina gornjeg i donjeg slova. Napadi na grubu silu traže ime administratora kao i slabe lozinke. Ne olakšavajte hakerima da pristupe vašoj web-lokaciji.

Zaštitite stranicu za prijavu na WordPress

Ovo je korak koji će vam mnogi WordPress sigurnosni dodaci ponuditi za vas, ali to je i nešto što se može učiniti ručno s relativnom lakoćom. Jedan od koraka u kojem to možete uraditi je preimenovanje vašeg URL-a za prijavu. Podrazumevano, stranici za prijavu na WordPress se pristupa pomoću wp-login.php ili wp-admin.php nakon URL-a sajta. To znači da svatko tko zna URL vaše web-lokacije zna i URL za pristup administratoru web-lokacije ako ste ga promijenili.

Ono što želite da uradite je nešto ovako:

  • Promijenite wp-login.php na nešto poput cool_new_login
  • Promijenite wp-admin.php na nešto poput cool_new_admin

Instalirajte SSL certifikat

Mislili ste da sam zaboravio na ovo, zar ne? Ne. Evo koraka za dobijanje i instaliranje SSL certifikata.

U zavisnosti od toga gde je hostovan vaš sajt, možda ćete moći da dobijete SSL sertifikat bez nadoknade preko vašeg provajdera hostinga. Ako to nije slučaj, postoji niz drugih provajdera preko kojih možete kupiti certifikat. Godišnji troškovi se kreću od 5 do 200 dolara.

Ako vaš host pruža certifikat bez naknade, oni će imati način da se instalira na vašoj web-lokaciji. Ako ste kupili certifikat, možete se obratiti hostu i zamoliti ga da ga instalira za vas, ili odabrati WordPress dodatak koji će ga instalirati.