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

 

Vokoder na kanalu u Matlab

Original: https://sethares.engr.wisc.edu/vocoders/channelvocoder.html 

William A. Sethares (Bill)

Što je vokoder kanala?

Vokoder kanala djeluje kao banka filtera koja razbija dva dolazna izvora zvuka (nosač i modulator) u kompatibilna frekvencijska područja. Omotač unutar svakog podopsega modulatora nameće se na odgovarajući podpojas nosača i rezultirajući zvukovi se sabiraju. Kao što je prikazano dolje, ispravljačka nelinearnost praćena niskopropusnim filterom približava se omotaču zvuka unutar opsega. Vokoder kanala može se koristiti za generiranje klasičnog robotskog glasa kada se modulira govorom, a našao je opsežnu upotrebu kao specijalni efekt u Hollywoodu.

Vokoder kanala može se protumačiti kao banka filtera koja nameće omotač jednog zvuka (modulatora) na valni oblik drugog (nosača). Operacija omotača (predstavljena ovdje primjenom ispravljačke nelinearnosti g(x) praćene niskopropusnim filtrom) primjenjuje se odvojeno unutar svakog frekvencijskog opsega.

Moderne implementacije vokodera kanala obično zamjenjuju banke filtera FFT-ima. To je brže računski kada se koristi mnogo opsega, a nelinearnost i niskopropusno filtriranje mogu se lako postići pomoću veličine FFT-a. Byung Park je ovo programirao kao dio svog magistarskog projekta, a ovdje se pojavljuje (Matlab) kod. Datoteka “pomoć” za chanvocoder.m glasi:

function y = chanvocoder(carrier, modul, chan, numband, overlap)
% y = chanvocoder(carrier, modul, chan, numband, overlap)
% Channel Vocoder modulira signal nosača modulacijskim signalom
% chan = broj kanala (npr., 512)
% numband = broj opsega (<chan) (npr., 32)
% overlap = preklapanje prozora (npr., 1/4)
% napisali Park i Sethares 2005.

Kao što vidite, šanvokoderu su potrebna dva signala. Modulator je obično glas (govorite jasno i polako), a nosač je obično skladno bogat izvor zvuka (poput organa, sintisajzera ili obojene buke). Oboje moraju imati jednak broj pjesama, tj. Oboje moraju biti mono ili oboje stereo. Možete odabrati broj kanala (FFT-ovi su dužine 2*chan) i broj opsega (u koliko frekventnih opsega treba razbiti signal), kao i količinu preklapanja između uzastopnih FFT-okvira. Zvuk će se mijenjati ovisno o ovim vrijednostima. Tipično ćete koristiti chanvocoder.m sa zvučnim datotekama u .wav formatu. Na primjer, pretpostavimo da postoji .wav datoteka nazvana “carrier22.wav” i druga koja se zove “modulator22.wav.” Tipičan način pozivanja vokodera je:

modfile = 'modulator22';
carfile = 'carrier22';
outfile = 'vocodedsound.wav'
[modul, sr1] = wavread(modfile);
[carrier, sr2] = wavread(carfile);
if sr1~=sr2, disp('stope uzorkovanja se ne podudaraju'); end
y = chanvocoder(carrier, modul, 512, 16, .2);
wavwrite(y,sr1,16,outfile)

Ovo čita dvije zvučne datoteke pomoću naredbe wavread, provjerava podudaraju li se brzine uzorkovanja (ako nisu, nećete dobiti ono što očekujete), poziva funkciju chanvocoder, a zatim zapisuje izlaz kao drugu zvučnu datoteku koju možete slušati u Matlab ili koristeći bilo koji audio program sposoban za reprodukciju .wav datoteka. Da biste mogli provjeriti radi li sve, evo gore navedenih datoteka nosača modulatora, zajedno s rezultatima trebali biste čuti gornju skriptu. (Možda ćete trebati kliknuti desnim gumbom da biste preuzeli ove datoteke.) Nakon preuzimanja, pobrinite se da su one (zajedno sa samom funkcijom chanvocoder.m) postavljene na Matlab putanju. Trebali biste moći pokrenuti program i dobiti isti izlaz kao “vocodedsound.wav.” Korištenjem različitih zvukova nosača i modulatora možete stvoriti razne efekte. Možda će vas zanimati da uporedite ovu implementaciju sa Zerius Vocoder om na C jeziku – vidjet ćete da rade slično, i zaista, gornje test datoteke (carrier22 i modulator22) preuzete su sa Zerius web stranice.

 

 

 

Korištenje telekonvertera u makro fotografiji

Original: http://www.mplonsky.com/photo/Macro-telecon.htm

Verzija 1.1, 6-29-12 © 2009-12 M. Plonsky

Moj svakodnevni posao je profesor. Za slikanje sam se zainteresirao 1989. godine kada sam počeo da koristim računar/projektor za izvođenje predavanja. Počeo sam skenirati slike i naučio sam se oko digitalne tamne komore. Fotografijom sam se počeo zanimati 2001. godine. Počeo sam s fotoaparatima u stilu tačke i snimanja (s raznim dodacima) i kad su moje slike počele zarađivati; Uspio sam kupiti bolju opremu. Stoga sam se odvikao od digitalne fotografije. Neposredne povratne informacije koje pruža digitalni fotoaparat bili su ključni faktor moje brze krivulje učenja. Specijalizirao sam se za makro fotografiju.

 

Argument – Mrav i Bubamara se svađaju oko lisne uši.

Snimljeno sa Canon Digital Rebel, Tamron 2xTC i Canon od 100 mm makro.

Jedan od razloga zašto uživam u makro fotografiji je zato što vam omogućava da vidite ono što obično ne možete. Kada stvaram sliku, moj cilj je da gledaoci padnu u čudu kad je pogledaju. Makro sa velikim uvećanjem (ili ono što ja nazivam „ekstremnim makro“), kada se dobro izvede, obično izaziva ovu reakciju kod gledaoca (kao i kod mene). To je jedan od razloga zašto toliko uživam u njemu.

 

Vretenca s dvanaest pjegavih brkova

Snimljeno s Canon 20D, Tamron 2xTC i Sigma 180 mm makro.

Makrofotografija se obično definira činjenicom da je slika dobijena na filmskoj ravni bliska veličini objekta. Jednostavnije rečeno, makro fotografija je kad je snimite u približno prirodnoj veličini. Tako će vam istinski makro objektiv omogućiti fokusiranje do 1:1 ili 1x (tj. u prirodnoj veličini). Makro sočiva se razlikuju po žižnim daljinama i to utječe na „radnu udaljenost“ (ili na minimalnu udaljenost sočiva od objekta ili kako bi se snimila slika u fokusu). Objektivi veće žižne daljine daju vam veću radnu udaljenost. Ovo može biti korisno kod živih subjekata, ali otežava snimanje bez stativa.

 

Leti

Snimljeno s Canon 20D, Tamron 2xTC i Sigma 180 mm makro.

Iako većina makro sočiva ide samo na 1:1, postoji niz načina da se izađe iza ovog ograničenja uvećanja. U nastavku ću ih ukratko navesti i raspraviti.

1. Specijalizirane makro leće

Canon pravi objektiv nazvan MPE-65mm. Ovaj objektiv sa ručnim fokusom omogućava uvećanje od 1-5x. Radna udaljenost je oko 4 inča pri 1x i samo centimetar pri 5x. Iako je ovo objektiv iz snova za ekstremne makro fotografije, mala radna udaljenost je nedostatak. To je posebno slučaj kod fotografiranja živih predmeta. Nisu mi poznati drugi proizvođači koji imaju takav objektiv na raspolaganju.

2. Dioptrije ili leće izbliza

Oni se zavrnu na prednjoj strani sočiva i omogućuju da se fotoaparat fokusira bliže nego što bi to inače mogao. To je poput naočara za čitanje za kameru. Nedostatak njihove upotrebe je gubitak beskonačnog fokusa. Prednost je što su vrlo prenosivi i lako se postavljaju i uklanjaju.

3. Produžne cijevi

To su doslovno šuplje cijevi koje se uklapaju između fotoaparata i sočiva. Dolaze u raznim veličinama i mogu se slagati. Omogućuju sočivu da se fokusira bliže nego što bi to normalno bilo. Nedostatak njihove upotrebe je gubitak beskonačnog fokusa. Prednost njihove upotrebe je činjenica da ne dodaju staklo koje može pogoršati sliku. Varijacija na produžnoj cijevi od njih nespretan je uređaj koji se naziva „mijeh“.

4. Telekonverteri

Telekonverteri (TC) takođe se uklapaju između kamere i objektiva. To su posebne leće koje množe žarišnu daljinu sočiva. Imaju zanimljiv efekat na makro sočiva. Na primjer, uzmite u obzir 2xTC. Omogućio bi makro sočivu koje 1x uvećava mogućnost da radi 2x na istoj radnoj udaljenosti ili 1x na dvostrukoj radnoj udaljenosti. Prednost je što zadržavate beskonačni fokus. Neki tvrde da je nedostatak TC-a taj što oni pogoršavaju sliku. Iako se obično slažem s ovim argumentom u drugim oblastima fotografije, čini se da je mnogo manji problem s makro fotografijom. Možda je to zato što su makro sočiva dizajnirana da budu oštra u cijelom objektivu, a ne samo u sredini.

5. Obrtanje sočiva relativno kratke žarišne daljine na drugom objektivu

Teoretski, ako obrnete sočivo od 50 mm na objektiv od 100 mm, dobili biste oko 2x u prirodnoj veličini. Prstenovi za vožnju unatrag (ili makro spojnice) dostupni su kako bi to bilo lako. Prednost je što vjerojatno imate sve što vam treba, osim makro spojnice koja košta manje od 10 USD. Nedostatak je što je radna udaljenost samo centimetar ili dva, a sistem je obično težak.

6. Obrtanje sočiva kratke žarišne daljine na samoj kameri

Ovo može dobro funkcionirati, ali je vjerovatno najteže za napraviti. Na raspolaganju su adapteri koji olakšavaju pričvršćivanje. Problem je osvjetljenje. Za fokusiranje morate širom otvoriti objektiv, ali zaustaviti ga da biste snimili sliku. Takođe, ekspozicija se vrši ručno. Treba napomenuti da Novaflex pravi poseban aparat kako bi to olakšao.

7. Razne kombinacije gore navedenog

Znatiželjan sam i čini mi se da pomalo uživam u petljanju, pa sam probao sve vrste kombinacija i permutacija gore navedenog. Za ovaj je članak važno da ako ćete zajedno s TC koristiti produžne cijevi, dobit ćete veće povećanje stavljanjem cijevi između TC i sočiva, a ne između fotoaparata i TC.

Odlučio sam se u ovom članku usredotočiti na upotrebu TC-a jer ih mnogi već imaju i ne shvaćaju koliko mogu biti korisni u makro fotografiji. Iako snimam uglavnom sa Canon opremom, ono o čemu govorim odnosi se na bilo koji dSLR koji ima makro sočiva i TC-ove dostupne za svoj nosač (što većina i radi). U stvari, čak sam i koristio TC za makro fotografije kada sam imao kameru sa šiljastim tačkama i snimanjem. U ovom slučaju, na sočivo sam priložio dioptriju (ili dvije) (pomoću adaptera treće strane), a zatim sam priložio TC (koji je dizajniran za kamere sa strelicama i za snimanje) nakon dioptrije (dioptrija).

 

Vretenac livada

Snimljeno sa Canon Digital Rebel, Tamron 2xTC i Canon od 100 mm makro.

Važno pitanje koje treba imati na umu je da TC smanjuju količinu svjetlosti koja dolazi do ravnine filma. Drugim riječima, oni otvaraju otvor blende (i tako rezultiraju većom F vrijednosti). Otvor blende treba pomnožiti sa snagom TC-a. Neke kombinacije sočiva/fotoaparata (ono što ja nazivam „optičkim brakovima“) to shvataju i rade automatski, dok druge ne. Sljedećim postupkom možete utvrditi daje li optički brak ispravno očitanje vrijednosti F. Recimo da imate 100 mm F2.8 makro objektiv. Ako priključite TC, a objektiv vam i dalje kaže da možete snimati na F2.8, to neće uzimati u obzir TC. Moji makro objektivi ne uzimaju u obzir TC. Tako, generalno, makro snimam sa F16. Ako koristim 2xTC, moram postaviti kameru na F8 da bih snimao na F16 (2 x 8 = 16).

 

Podvezica zmija

Snimljeno sa Canon 20D, Kenko 3xTC i Canon od 100 mm makro.

Također bih trebao primijetiti da, dok neki optički brakovi funkcioniraju, drugi ne. Na primjer, uspio sam dobro snimati s Canon 20D, Kenko 3xTC i Canon 100mm macro. Međutim, ovo podešavanje ne funkcionira s mojim Canonom 40D. Pokušaj i greška su neophodni da bi se utvrdilo koji optički brakovi rade. Ponekad zalijepljivanje nekih igla na sočivu ili TC može dovesti do toga da brak uspije. Ponekad i male produžne cijevi postavljene na pravom mjestu mogu napraviti razliku.

Još jedan vretenac livada

Snimljeno sa Canon 20D, Kenko 3xTC i Canon od 100 mm makro.

Kad sam pripremao ovaj članak, lijena bubamara se pojavila na mom stolu, pa sam je stavila na bijeli komad mat papira i iskoristila kao temu za sve slike. Na samom dnu ovog članka nalazi se tablica koja pokazuje kako bubamara izgleda u raznim kombinacijama TC/sočiva. Kliknite na malu sliku za punu verziju. U nastavku opisujem opremu i tehnike korištene za snimanje slika.

Što se tiče opreme, koristio sam kameru Canon 40D i blic Canon MT-24EX (glave blica bile su prekrivene difuzorima Omnibounce). Objektivi koji su se koristili su Sigma 50 mm makro, Canon 100 mm makro, Sigma 180 mm makro i Canon 65 mm makro. Telekonverteri su koristili Kenko 1.4x, Tamron 2x i Kenko 3x. Kao što sam gore napomenuo, optički brak Canon 40D, Kenko 3xTC i Canon 100mm macro nije radio. Sa Canon 20D, 3xTC nije radio sa Sigma 180mm makronaredbom, pa ga nisam probao sa Canon 40D. Sad shvatam da sam trebao (i na kraju hoću). 3xTC dobro funkcionira sa MPE-65mm makronaredbom, ali činjenica da sam mogao pokazati 3x uvećanje sa Sigma 50mm makronom poslužila je cilju ilustracije.

 

Portret flaše

Snimljeno sa Canon 20D, Kenko 1.4xTC i Canon 65 mm makro.

Slika je u punom kadru pri punom uvećanju, pa je oko 7 puta veća.

Za sve slike u tablici postavio sam fokus na 1x u prirodnoj veličini i snimio koliko god je to kamera dozvoljavala. Svi snimci su punog kadra, ISO 200, 1/160, oko f16, i ručni. Kažem za F16 zbog gore spomenutog problema o TC-ima koji utječu na otvor blende. Tako sam, kad sam snimao slike bez TC-a, koristio F16. Sa 1.4xTC koristio sam F11 (1.4 x 11 = 15.4). Sa 2xTC sam koristio F8 (2 x 8 = 16). I na kraju, sa 3xTC sam koristio F6.3 (3 x 6.3 = 18.9). Sa svim slikama varirao sam kompenzaciju ekspozicije blica i položaj glava blica kako bih održao ekspoziciju konstantnom. Zatim sam dalje prilagodio ekspoziciju (po potrebi) u naknadnoj obradi kako bih učinio da slike izgledaju što sličnije kako bi se mogao lako vidjeti efekat TC-a. Očigledno je da TC povećavaju količinu sitne greške koja se može vidjeti u kadru, a samim tim povećavaju i uvećanje. Takođe treba napomenuti da se čini da kvalitet slike nije pogoršan kod TC-a.

 

Glava drvene krpelja

Snimljeno s Canon 20D, Tamron 2xTC i Canon 65 mm makro.

Slika je u punom kadru pri punom uvećanju, pa je oko 10 puta veća.

Treba napomenuti da se s povećanjem povećava dubina polja (DOF) ili se smanjuje količina slike u fokusu. Uz velika povećanja, DOF postaje tanak kao papir. Stoga se može očekivati da slike velikog uvećanja prikazuju manje slike u fokusu. Zapravo mi je bilo teže snimiti slike većeg uvećanja iz ovog razloga. Odnosno, pravilno postavljanje ravni fokusa postaje još kritičnije nego obično. Zapravo, ponekad kombinujem više slika (obično dvije) istog subjekta snimljenih uzastopno, koje imaju malo različite ravni fokusa u pokušaju da poveća DOF. Ova je tehnika, međutim, predmet drugog članka.

 

Sojina uši

Snimljeno sa Canon 40D, Kenko 3xTC i Canon 65 mm makro.

Slika je u punom kadru pri punom uvećanju, pa je oko 15 puta veća.

Nadam se da će vas članak i slike nadahnuti da isprobate tehniku. Zabavite se s tim!

TC Žižna daljina makroobjektiva
50 100 180 65
0
1.4
2.0
3.0      

 

Komponovanje slika za veću dubinu polja u makro fotografiji

Original: http://www.mplonsky.com/photo/article2.htm

Verzija 1.11, 12-4-06. © 2003-6 M. Plonsky

Makronaredbe sam počeo snimati 2000. godine tačkom i snimati digitalno. Sjećam se svog razočaranja zbog toga što nisam mogao ispuniti ekran objektom koji me zanimao. Pa sam pokušao (i i dalje se zabavljam) razne načine ispunjavanja okvira s vrlo malo. Čim sam počeo to raditi, primijetio sam da pitanje DOF-a postaje sve teže. Što sam povećao uvećanje, manje DOF je bilo dostupno. Danas koristim dSLR s makro lećama, produžnim cijevima, telekonverterima, dioptrijama, lećama obrnutim na drugim lećama, lećama obrnutim na kameri ili produžnim cijevima, itd. Ali DOF je i dalje nešto od čega želim više.

Iako mi se čini da imam sposobnost da fokusiram oči malih očiju, rezultati jedne slike često su manje nego zadovoljavajući. Na primjer, s glavom na metku muhe možete fokusirati oči, ali tada će nos biti van fokusa i obrnuto. Za bočni profil portreta djevojke možete fokusirati oko ili lice, ali ne oboje.

Ovo je kombinacija dva snimka uzastopno. Glavni kadar imao je lice i tijelo u fokusu, dok je drugi hitac imao fokus u oku.

Pročitao sam članak Freda Mirande u kojem je kombinirao dvije ekspozicije iste scene da bi postigao bolji tonalni opseg. To mi je dalo ideju da kombiniram dvije slike iste scene koje se razlikuju u ravni fokusa u nastojanju da poveća DOF. Svaka od slika u galeriji koja prati ovaj članak nastala je na ovaj način. Iako to nije lako izvesti i zahtijeva puno vježbe, zadovoljan sam tehnikom. Ako želite više DOF-a nego što vam daje fotoaparat i ako vam je ugodno u digitalnoj tamnoj komori, isprobajte tehniku.

Da bi tehnika uspjela, morate je imati na umu prilikom snimanja. Na primjer, snimite muhu s fokusiranim očima, a zatim malo pomaknite kameru i napravite isti snimak s fokusiranim nosom. Iako koristim Photoshop 7, bilo koji vrhunski uređivač slika trebao bi raditi. Jedna slika služi kao glavna slika, na primjer oči. Zatim pažljivo odaberem nos iz drugog kadra (obično sljedećeg kadra koji sam snimio). Ako budem imao sreće, mogao bih dobiti i treći metak s fokusiranim dijelom leđa muhe iza očiju.

Ovo je kombinacija dva snimka uzastopno. Glavni hitac imao je oči u fokusu, dok je drugi hitac imao fokus.

Kada biram značajku fokusa koja je više u fokusu za dodavanje na glavnu sliku, obavezno odaberem više nego što mi treba, a zatim uperim odabir prije kopiranja i lijepljenja u glavnu sliku. To će biti novi sloj. Važno je da dva uključena kadra budu što identičnija, osim za ravninu fokusa. To je teško izvesti s obzirom na to da je većina mojih snimaka iz ruke. Ponekad značajka (npr. Nos) ne odgovara sasvim. Morate ga preoblikovati tako da to i učini. To uključuje suptilne prilagodbe poput iskrivljavanja i promjene veličine pomoću alata za pretvaranje. (Ako prilagodbe nisu suptilne, dvije slike se previše razlikuju da bi tehnika dobro funkcionirala.) Nakon što se osobina lijepo uklopi, počnite brisati rubove tako da se stope s primarnom slikom do tačke na kojoj niko ne bi primijetio da su u pitanju dvije slike. Ovo može zahtijevati neko zamućenje rubova, kao i upotrebu alata za zakrpe i kloniranje na razne načine. Kada ste zadovoljni miješanjem, izravnajte sliku i još malo očistite rubove. Zatim počnite prilagođavati nivoe, kontrast, zasićenost, oštrinu itd. Kao što biste to obično radili za digitalni negativ.

Ovo je kombinacija dva snimka uzastopno. Glavni hitac imao je fokus u očima, dok je drugi hitac imao nos/usta u fokusu.

Nadam se da će vam ideja biti korisna. Zabavi se!

Ako ste zainteresirani za ovu tehniku, Christina Evans nedavno je napisala članak na Naturescapes.net

Estetski razvijeni virtualni ljubimci

Original: http://life.ou.edu/pubs/alife7a/

Thomas S. Ray
Zoologija, Univerzitet u Oklahomi, Norman, Oklahoma, 73019
Laboratoriji za istraživanje obrade ljudskih podataka ATR
2-2-2 Hikaridai, Seika-cho Soraku-gun, Kyoto 619-0288 Japan
[email protected]www.his.atr.co.jp/~ray/

Sažetak

Estetska, emocionalna i empatična selekcija primjenjuju se na izvedenicu evoluiranih virtualnih stvorenja Karla Simsa. Stvorenja koja nastanu mogu biti lijepa ili čudna i izazvati snažne reakcije kod ljudskih promatrača. Možda će biti moguće razviti virtualne kućne ljubimce s kojima ljudi mogu stvoriti snažne emocionalne veze.

Uvod

Evolucija je najveći kreativni proces koji znamo. Stvorio je duboku ljepotu žive prirode i dramu ljudskog uma. Čak su i umjetnosti epifenomen evolucije. Iako je teorijska nauka o evoluciji stara manje od dva vijeka, primijenjena nauka o evoluciji datira od početka civilizacije. Pripitomljavanje biljaka i životinja činilo je poljoprivrednu osnovu za nastanak civilizacije. Stoga uzgajanjem biljaka i životinja evoluciju koristimo kao alat za dizajn već desetine hiljada godina.

U proteklim decenijama naše se iskustvo u radu s evolucijom proširilo izvan organskog područja u digitalno. Danas uzgajamo računarske programe, digitalne organizme i medijsku umjetnost. Širenje evolucije u digitalni medij takođe je proširilo prirodu našeg odnosa prema evolucijskom procesu. Uzgoj biljaka i životinja sastojao se od ispitivanja kolekcije potomaka u jednoj generaciji i odabira onih koje ćemo koristiti kao roditelje sljedeće generacije, “selektivnog uzgoja”. Iako je selektivni uzgoj pretežno usmjeren na proizvodnju kvalitetnije hrane, ono je poprimilo i umjetnički kvalitet u uzgoju ukrasnih biljaka i kućnih ljubimaca.

Naš odnos prema digitalnoj evoluciji mnogo je širi. Obuhvaća širok spektar kontrole nad procesom (Ray 1998, Ray In Press). U jednoj krajnosti, postavili smo vještački životni sistem samoreplicirajućih se organizama koji evoluiraju prirodnom selekcijom i držimo ruke dalje od sebe, osim promatranja procesa. S druge strane, kontroliramo svaki aspekt reprodukcije i selekcije u sistemu. Čak i kada imamo potpunu kontrolu nad sistemom, reprodukcija i odabir mogu biti u potpunosti automatizirani, tako da se proces odvija bez ikakve ljudske intervencije, osim pokretanja procesa i tumačenja rezultata; uobičajena praksa u korišćenju genetičkih algoritama u inženjerstvu.

Postoje i primjeri digitalne evolucije u kojima, poput uzgoja biljaka i životinja, čovjek ispituje kolekciju potomaka i odabire one koji će postati roditelji sljedeće generacije. Jedan od najranijih primjera bio je program slijepog urara Richarda Dawkinsa (Dawkins 1987). Ovaj pristup podignut je u oblik umjetnosti pomoću Genetskih slika Karla Simsa (Sims 1991) i Galapagosa (Sims 1997). U Genetic Images i Galapagos, kao i u uzgoju ukrasnih biljaka, odabir se temelji na ljudskoj estetici.

Ovdje predstavljeni rad koristi estetski odabir, kao u Simsovim genetskim slikama, ali ga primjenjuje na drugi sistem koji je izvorno razvio Sims, poznat kao Evolved Virtual Creatures (Sims 1994a, Sims 1994b, preuzmi 9Mb video). U Simsovim evoluiranim virtualnim stvorenjima, genetski sistem definira razvojni proces koji generira tijelo izgrađeno od blokova, zglobne zglobove koji povezuju blokove i neuronski sklop za kontrolu kretanja zglobova. Evoluirana virtualna stvorenja (ovdje se nazivaju “stvorenja”) ugrađena su u simulaciju “stvarne” fizike, u kojoj doživljavaju sile inercije, trenja i po potrebi gravitaciju ili otpor fluida. Stvorenja se mogu razviti za plivanje, hodanje, skakanje, praćenje predmeta, nadmetanje za posedovanje predmeta i potencijalno za mnoge druge zadatke.

Ljudski promatrači imaju snažne emocionalne, empatične ili estetske reakcije kada promatraju bića Karla Simsa. Sims je stvorio Stvorenja za gore navedene zadatke, bez ljudske intervencije u evoluciji. Ovdje predstavljeni projekt uvodi sposobnost ljudi da vode put evolucije odabirom Bića na osnovu čovjekovih emocionalnih odgovora na Bića na način analogan uzgoju životinjskih ljubimaca. Vjeruje se da će to dovesti do evolucije Bića koja izazivaju još snažnije emocionalne, empatične i estetske odgovore. Ljudi mogu razviti virtualne kućne ljubimce s kojima stvaraju snažne emocionalne veze.

Metode

MathEngine

Karl Sims komentirao je da je najteži dio njegovog projekta Evolved Virtual Creatures bila simulacija fizike. To je bio najteži dio koda za pisanje, a simulacija fizike potrošila je više od 95% CPU ciklusa u pokretanju sistema. Karl je preporučio upotrebu fizičke biblioteke, a za ovaj projekt odabran je MathEngine.

Morfologija genom

Implementacija stvorenja započela je definicijom genetskih struktura koje kontroliraju morfologiju stvorenja. Genom definira usmjereni graf povezanih kutija. Svaki genom sadrži nasumično određen broj kutija. Dimenzije i boje kutija određuju se nasumično. Svaka kutija ima slučajni broj veza s drugim kutijama. Svaka veza nasumično je dodijeljena nekom od ostalih okvira u genomu. Za svaku vezu, mjesta kontaktnih točaka na svakoj od dvije povezane kutije se određuju slučajnim odabirom, a Eulerove koordinate odmorišnog zglobnog kuta veze između kutija se određuju slučajno. (Slika Sims, K. 1994a).

Genom se zatim prevodi u fenotip, tragom kroz nasumično povezane kutije. Ako se okvir poveže sam sa sobom, usmjereni graf je direktno rekurzivan. Rekurzija može biti neizravna, koja uključuje više od jednog okvira, kada niz veza na kraju vodi natrag na prethodni okvir. Genom uključuje nasumično određenu granicu direktne rekurzije. Tamo gdje se javljaju direktne rekurzije, preko rekurzivnog lanca kutija primjenjuje se slučajan broj gradijenata. Postoji dvadesetak znakova na koje mogu utjecati gradijenti, poput boje, dimenzija kutije i mjesta, kutova i krutosti spojeva između kutija.

Algoritam koji prevodi genotipove u fenotipove uključuje ograničenje ukupnog broja kutija, što efikasno ograničava indirektnu rekurziju. Praćenje veza genoma započinje slučajno određenim korijenskim okvirom koji ima slučajno određen broj veza s podređenim kutijama. Podređene kutije također sadrže slučajan broj (moguće nula) veza s podređenim kutijama. Tako je svaki okvir (osim korijena) povezan s jednim “roditeljskim” okvirom i slučajnim brojem podređenih okvira.

Spojevi aktuatora

Svaka “dječja” kutija ima jedan spoj sa roditeljskom kutijom. Zglob ima genetski definirane kutove odmora u odnosu na dječju i roditeljsku kutiju, a zglob sadrži oprugu koja ga vraća u prvobitnu orijentaciju kada je poremećen.
Dječja kutija uključuje pogon koji kontrolira Eulerove kutove (nagib, nagib, kotrljanje) na zglobu. Efektivno postoji osam mogućih aktuatora, ovisno o tome kojim se od Eulerovih kutova manipulira: nijedan; yaw; visina tona; kotrljanje; nagib+nagib; nagib+kotrljanje; pitch+roll; nagib+nagib+kotrljanje. Kojim se uglovima zapravo manipulira, ovisi o izlazima iz upravljačkog kruga (vidi sljedeći odjeljak).

Genom upravljačkog kruga

Pored genoma koji definira morfologiju, postoji i genom koji određuje strukturu upravljačkog kruga. Upravljački krug uključuje senzore, procesore i efektore. Efektori kontroliraju tri Eulerova kuta, nagib, nagib i kotrljanje na spojevima aktuatora između kutija. Postoje i efektori koji daju vrijednosti boja. Trenutno implementirani senzori osjećaju vrijeme, boju, Eulerove uglove spojeva aktuatora, položaj, brzinu, kutni moment i sile na pojedinačne kutije ili biće u cjelini, te relativni položaj predmeta. Elementi procesora uključuju veliki broj računskih primitiva kao što su sabiranje, množenje, veće od dnevnika, sinusa, tangente, arkozinuma, eksponenta, kvadratnog korijena, bitnog i itd.

Poput morfološkog genoma, kontrolni genom je nasumično konstruirani usmjereni graf. Kompletni upravljački sklop nasumično se kreira za svaku kutiju u genomu. Pored toga, kreira se jedan “globalni” upravljački krug koji nije povezan ni sa jednim okvirom. Grafikoni usmjereni upravljačkim krugom ugniježđeni su unutar usmjerenog grafa morfologije.

Za svaki krug određuje se slučajan broj elemenata kruga (neurona). Tip svakog neurona određuje se nasumično (npr. Efektor boje, senzor brzine, procesor kvadratnog korijena). Broj veza za svaki neuron ovisi o njegovoj vrsti. Neuroni su nasumično povezani. Veze su nasumično dodijeljene jednom od četiri bazena neurona: u globalnom krugu, u lokalnom krugu, u roditeljskom kutiju, u kćerkom boksu. Veze s drugim neuronima u lokalnom krugu mogu se odrediti na nivou genotipa, ali veze s neuronima u krugovima u drugim kutijama ili u globalnom krugu moraju se utvrditi u trenutku kada se genotip prevede u fenotip.

Otkrivanje sudara

U odsustvu otkrivanja sudara, uobičajeno je da morfologija rezultira oblicima u kojima kutije međusobno prodiru. Da bi se moglo otkriti i ograničiti međuprodiranje kutija, implementirana su dva algoritma za otkrivanje sudara. Međutim, niti jedan algoritam ne daje zadovoljavajuće rezultate. Sistem se obično izvodi s isključenom detekcijom sudara.

Fizička aktivnost

Da bi se podržalo ponašanje u plivanju, implementira se jednostavna dinamika fluida dodavanjem sile normalne na površinu, proporcionalnu njenoj površini i brzini, simulirajući tako otpor fluida. Ovaj simulirani otpor fluida može se uključiti ili isključiti. Iako simulirani otpor fluida dozvoljava ponašanje plivanja prirodnog izgleda, bića ponekad akumuliraju neprirodne količine zamaha, bilo linearnog ili kutnog impulsa.

Takođe, budući da se otkrivanje sudara uglavnom ne koristi, ponekad nekoliko kutija zauzima približno isti prostor. Budući da ne zanemarujemo skrivene površine pri izračunavanju otpora fluida, nekoliko kutija koje zauzimaju isto mjesto može generirati vrlo jaku silu vuče fluida, uzrokujući da ove strukture postignu neprirodno velike linearne ili ugaone brzine.

Jasno je da algoritmi dinamike fluida nisu potpuno tačni i trebaju daljnji razvoj. Međutim, cilj ovog projekta nije stvoriti tačnu simulaciju “stvarne” fizike. Cilj je stvoriti Bića koja izazivaju snažan emocionalni, estetski ili empatični odgovor kod ljudi. Uprkos greškama u simulaciji dinamike fluida, trenutni sistem proizvodi lijepe i zanimljive pokrete.

Da bi se podržalo ponašanje u hodu, osiguravaju se gravitacija, podloga i sile trenja. Gravitacija se može uključiti ili isključiti, a ravnina tla može biti propusna ili nepropusna.

Evolucija

Kako bi se omogućila evolucija, implementiran je bogat skup genetskih operatora koji utječu na sve genetski određene likove morfologije i komponenata ponašanja genoma. Korisnik može odabrati bilo koje stvorenje, zatim proizvesti genetske varijante od njega i odabrati među tim varijantama za roditelja sljedeće generacije. Na taj način korisnik može usmjeriti evoluciju kroz estetski odabir.

Pored toga, implementiran je genetski algoritam koji omogućava automatiziranu evoluciju određenih ponašanja. Karl Sims koristio je GA za automatizaciju evolucije izborom za: brzinu plivanja, brzinu puzanja/hodanja, visinu skakanja, sposobnost praćenja.

  

Sims je također koristio GA odabir za posjedovanje bloka kako bi stvorio koevolucijski scenarij.
    

Umjesto da koristim GA odabir za natjecanje, evoluiraću svoja stvorenja da zavole odabirom za kretanje jedno prema drugom, zatim maksimalni površinski kontakt, a zatim nastavak relativnog kretanja dok su u kontaktu.

Trenutno je u GA implementirana samo jedna funkcija fitnesa koja odabire mogućnost praćenja objekta koji se povremeno pomiče u slučajne položaje u odnosu na stvorenje. Ovo je prvi od tri koraka koji vode evoluciji izgleda naklonosti.

Rezultati

Usmjerena grafska struktura genoma pruža bogat skup morfologije i ponašanja nasumično stvorenih bića. Mnoga od ovih bića pokazuju estetski privlačne oblike, boje i pokrete. Mnogi od njih sposobni su za značajne količine plivanja i puzanja, čak i bez utjecaja evolucije kako bi poboljšali svoju sposobnost kretanja.

Akumuliran je zoološki vrt sa stotinama zanimljivih genoma. U početku je većina njih pronađena slučajnim pretraživanjem, bez pomoći evolucije. Ipak, evolucija se pokazala snažnim alatom za poboljšanje estetskih kvaliteta stvorenja. Većina mojih omiljenih stvorenja u zoološkom vrtu poboljšana je selektivnim uzgojem. Navešću nekoliko primjera omiljenih bića iz zoološkog vrta.

FlowerWave i potomci

Naišao sam na prilično lijepu formu koju sam izvorno nazvao CoilFlower, a CoilFlower01 i CoilFlower02 spremio sam u Zoološki vrt. CoilFlower01 je poput cvijeta koji ritmično cvjeta, a CoilFlower02 podsjeća me na val koji se srušio na sebe. Nešto kasnije, pregledavajući zoološki vrt, razvio sam naklonost prema njima i odlučio pokušati ih evoluirati. Također sam zaključio da zaslužuju bolje ime, pa sam preimenovao seriju FlowerWave.

Bio sam posebno zainteresiran za pokušaj razvijanja neke lijepe aktivnosti efektora neuronskih boja, što sam i uspio. Međutim, u procesu odabira za lijepe promjene boja, izgubio sam predivan oblik. Odlučio sam da upotrijebim novi alat koji sam razvio za selektivno fokusiranje mutacija. Isključio sam mutacije tijela i dopustio samo mutacije neuronskih mreža. Na taj način evoluirao sam ponašanje zadržavajući morfologiju fiksnom. Toliko o koevoluciji mozgova i tijela. Serija FowerWave evoluirala je tako da se može gledati s postavkama Color Effectors – Neuron i Body Shape – Ellipsoid. Važno je koristiti ove postavke kada ih pregledavate. Upečatljiva stvar kod njihovih efektora neuronskih boja je to što boje istječu iz baze cvijeta, krećući se od latice do latice.

Nakon velikog izbora, naišao sam na FlowerWave36. Ovo kombinira vrlo zanimljive promjene živčane boje sa sjajnom formom i pokretima. Boje teku iz baze.

   

Nastavivši tu seriju malo dalje, naišao sam na FlowerWave73. Boje pulsiraju u svjetlini i mijenjaju nijansu.

U ovom trenutku mislio sam da bi bilo zanimljivo držati fiksnu neuronsku mrežu i razvijati tijelo. Nakon daljnjeg odabira naišao sam na FlowerWave45.
  

Nakon što sam se dalje razvijao na ovaj način, zaključio sam da je vrijeme da pustimo da i mozak i tijelo evoluiraju zajedno. Na kraju me ovo odvelo do FlowerWave56, koji ima nevjerojatan slijed tokova boja.
   

To je formirao početak serije tokova boja, a to je loza koja je bila podvrgnuta najvećoj estetskoj selekciji tokom stotina generacija. U početku je boja tekla diskretnim koracima duž tijela. Odnosno, određena vrijednost boje preskakala je od kutije do kutije niz lanac. Htio sam vidjeti da li bi bilo moguće da boje teku kontinuiranije, s vrijednostima boja koje se postepeno mijenjaju, dok teku niz lanac. Ovo se pokazalo mogućim. Takođe, evoluirala su mnoga stvorenja osjetljiva na dodir, kod kojih dodir uzrokuje pulsiranje boje niz lanac. Ta se bića u Zoološkom vrtu mogu prepoznati po imenima ColorFlowB, ColorFlow2Head, ColorBiFlow, ColorSense, CoilFlower. Ovo su neka od estetski najspektakularnijih bića u zoološkom vrtu (moraju se gledati s postavkom “Boja – Neuron”). “Pomoć – Zoološki vrt” sadrži popis ovih bića i njihove individualne karakteristike, poput osjetljivosti na dodir ili kretanje. Sljedeće slike su (redom): ColorFlowB28, ColorFlowB53, ColorBiFlow14, ColorBiFlow14, ColorSense05, ColorFlow2Head03, CoilFlower04, CoilFlower05, CoilFlower06, CoilFlower06.
         

Atrakcija

Genetski algoritam korišten je za evoluciju bića koja prate objekt koji se na ekranu pojavljuje kao zelena kugla. Desetak njih uključeno je u zoološki vrt i mogu se prepoznati po tome što njihova imena počinju s “Atrakcija” i poprimaju oblike poput “AttractionDd22894”, pri čemu broj 22.894 znači da je to 22.894. genom koji je procijenjen genetskim algoritmom. Slike ispod su (redom): AttractionAa14986, AttractionDc13096, AttractionDd22894, AttractionEb09635, AttractionFa17134, AttractionFb14291, AttractionFe10397, AttractionGd15080.
       

Ladder13

Ladder13 rezultat su mog prvog iskustva s evolucijom stvorenja. Dok sam nasumično stvarao stvorenja, naišao sam na upadljiv oblik, koji se sastojao od šest ravnih ploča u nizu i dvanaest šipki raspoređenih sa po šest na obje strane. Iako me obrazac privlačio, bio je gotovo potpuno nepomičan. Odlučio sam pokušati odabrati za pokret. To se pokazalo izvodljivim, a u sljedećih nekoliko generacija pokreti svih dijelova postupno su se povećavali.
Tada sam slučajno naišao na pojedinca koji je eksplodirao (s fizičkom bibliotekom MathEngine, strukture će eksplodirati ako su sile prevelike). Eksplozija je nesretan rezultat jer znači nestanak bića. Međutim, eksplozija je također vrsta kretanja, i zapravo je kretanje bilo mnogo veće od bilo kojeg stvorenja u seriji do ovog trenutka. Odlučio sam odabrati eksplodirajuće stvorenje i pokušati smanjiti sklonost eksploziji daljnjim uzgojem.

U uzastopnim generacijama, vrijeme prije eksplozije se postupno povećavalo, sve dok eksplozija nije bila potpuno eliminirana. Međutim, nastalo stvorenje, Ladder13, zadržava fascinantan ostatak eksplozivne tendencije. Savršeno je uravnotežen na ivici između eksplozije i povlačenja. Ubrzo nakon rođenja, ravni paneli počinju da se trese, a zatim se lanac panela okreće, klizeći jedni kroz druge. Cijela kolekcija dijelova raspršuje se i počinje vrtjeti kao u vihoru. Kada se raštrkani dijelovi potpuno poremete, ravni paneli mogu ponovno početi tresti, a potresanje nekako vraća dijelove u prvobitne položaje. Predenje tada može na trenutak zastati, prije nego što se lanac ploča ponovo okrene, a sakupljanje dijelova ponovo zavrti i rasu se u neredu. Zanimljivo je gledati ovo stvorenje s postavkom Neuron Color Effectors.

Magnets02 i LittleArmShakey takođe pokazuju ovu fascinantnu ravnotežu između eksplozije i povlačenja. Međutim, za razliku od Ladder13, ovo dvoje će na kraju eksplodirati. Ako brzo eksplodiraju, jednostavno ih pokrenite, obično traju dugo prije nego što eksplodiraju.

   

SkyDiver04

Lanac od pedeset i pet vitkih ploča u spektru boja, SkyDiver04 pokazuje možda pet različitih obrazaca oblika i ponašanja. Rođen je sa svojim dugim tijelom ispruženim u prekrasan uzorak petlji i oblina (prvi oblik/ponašanje), ali tijelo odmah sažima u neku vrstu trokutaste harmonike (drugi oblik/ponašanje). U ovom obliku ostaje nekoliko minuta, lagano dišući i polako uvijajući tijelo sve više i više. Potom iznenada pukne i preustroji svoje tijelo u konusnu zavojnicu, petougaonu na malom i heksagonalnu na velikom kraju (treći oblik/ponašanje).

Ako ga ne ometaju nekoliko minuta, može započeti proljetni ples, zadržavajući uglavnom isti suženi oblik (četvrti oblik/ponašanje). Glava i rep istovremeno započinju snažnu kontrakciju, koja uzrokuje prolazak valova kroz tijelo, od repa prema glavi i od glave prema repu, dva vala koja se susreću u najdebljem dijelu tijela.

Treći i četvrti oblik morfološki su isti, ali se ponašaju različito (treći počiva, dok se četvrti ugovara). Stvorenje se spontano izmjenjuje između trećeg i četvrtog oblika, ali očito ostaje u ta dva oblika na neodređeno vrijeme ako ostane nesmetano. Evo distribucije frekvencije intervala između kontrakcija tokom prvog sata. Ako ostane nesmetano nekoliko sati, čini se da Stvorenje rasipa svoju energiju i zaustavlja kontrakcije.

Ako je drugi oblik poremećen, ubrzat će njegovu transformaciju u treći oblik. Uznemirivanje trećeg/četvrtog oblika uzrokovaće njegovo ponovno pretvaranje u drugi oblik. Ponekad ove poremećene transformacije rezultiraju hibridnim oblicima.

Slučajno, SkyDiver04 je rođen na strani y-z ravni koja odgovara negativnoj x-osi. Ako se u bilo kojoj fazi svog života Stvorenje povuče preko ravni y-z u pozitivno područje x-osi (koristite x taster), započinje graciozni ples napravljen od petlji (peti oblik). Čini se da će ostati u petom obliku sve dok je na pozitivnoj x strani y-z ravni. Ako se povuče natrag na negativnu x stranu ravnine y-z, transformirat će se natrag u oblike od dva do četiri. Ako tijelo pređe y-z ravninu, to može dati mješovite rezultate.

Slike ispod prikazuju prvi oblik SkyDiver04:

 

Slike ispod prikazuju drugi oblik SkyDiver04:
     

Slike ispod prikazuju treći oblik SkyDiver04:
   

Slike ispod prikazuju peti oblik SkyDiver04:
  

Spinner04

Pretražujući slučajne genome, naišao sam na lanac od pet ljubičastih blokova koji su se brzo izmakli kontroli. Mali izbor dovodi do lanca od sedam crvenih ravnih ploča u blago uvijenoj konfiguraciji, poput propelera. Oni se takođe počinju vrtjeti, kao da se mogu izmaknuti kontroli i eksplodirati. Ali kako se okretanje ubrzava, lanac se suptilno savija, zaustavljajući na trenutak zaustavljanje, a zatim okretanje započinje opet u novom smjeru, uvijek ubrzavajući, savijajući se, usporavajući do zaustavljanja i ponovo ubrzavajući.

FlatWorm05

Aktivni suženi lanac od petnaest ravnih četvrtastih ploča u promjeni ljubičastih nijansi i pasivni rep od oko četrdeset i osam malih šipki poredanih ukrštenim uzorkom, neke svijetloplave, neke mijenjajući nijanse ružičaste i žute boje. Masivno suženo tijelo i nježni rep spajaju se u plavo-sivi blok oko kojeg elegantno plešu. Pasivni rep prati vodstvo aktivnog tijela, kao u vanzemaljskom baletu.

 

Twister02

Konusni lanac od oko četrdeset osam blokova, isprva raspoređen u obrnutom žuto-zelenom kalemu, poput tornada. Zavojnica se brzo odmotava u zmiju, prebacujući se kroz svaku boju u spektru. Zmija se kovitla, uvija i pliva u nesigurnom vremenu, prije nego što se iznenada ponovo zavila u grčeću kaotičnu masu blokova brzo mijenjajućih boja.

Nakon nekog vremena, ova vrlo nesređena zavojnica raspoređuje se u vrlo geometrijski oblik, svaki put različit. Ponekad može imati oblik zgrade za struganje neba savršeno kvadratnih konusnih slojeva sa zlatnim blistavim pločama. Ponekad je to možda tordirana kula od svijetloplavih konusnih blokova. Smjesti se u potpuno nepomičan geometrijski oblik, iz kojeg se očigledno više nikada neće pomaknuti, osim ako ga se dodirne.

Kada se dodirne primjenom sile na neki dio tijela, ono se ponovno kreće. Stepen kretanja ovisi o snazi ​​i trajanju dodira i šansi. Može se ponovo potpuno odmotati u zmiju i uvijek na kraju poprimi drugi nepomični geometrijski oblik, svaki put drugačiji.

Jedanaest slika u nastavku predstavljaju vremenski slijed tipičnog ponašanja Twister02:

          

Na slici ispod prikazan je rijedak oblik otvorenog zavoja završnog mirovanja Twister02:

ColorfulWorm

Lanac od preko šezdeset blokova, dvije vrste, pronađeni slučajnim pretraživanjem, bez poboljšanja uzgojem. Ovaj se crv izvija i izvija, pokazujući najneverovatniji prikaz promenljivih boja.

     

SpazJerk

Također nasumičnim pretraživanjem pronađeno je pet plavih ili purpurnih prostorno pomičnih blokova raspoređenih otprilike u kvadrat povezan sa šest smeđih ravnih ploča i pričvršćenih na krak od sedam zelenih ili smeđih blokova koji se povremeno savijaju, a zatim iznenada trgnu.

Rasprava

Iako oblici i boje mogu biti lijepi i zanimljivi, pokret je taj koji ova stvorenja čini uvjerljivima. U prirodnom se svijetu mnoge stvari kreću, ali samo se živa bića kreću vlastitom snagom i voljom. Stoga, kada vidimo artefakte koji se kreću vlastitom snagom i voljom, možemo biti skloni osjećaju da su živi. Ali to ovisi o mnogim aspektima njihovog izgleda i kretanja. Automatska vrata osjećaju naš pristup i otvaraju se vlastitom snagom i voljom, ali mi ne osjećamo da su živa. Oni su samo mehanički uređaji.

Neka bića ovog djela imaju tako jednostavan izgled i pokrete da djeluju mehanički da izazovu sličan odgovor. Ipak, druga bića imaju više organskih oblika i suptilnijih pokreta zbog kojih izgledaju vrlo životno. Raspon oblika i ponašanja koje uočavamo među stvorenjima pokazuje da se preklapaju sa poznatim organskim oblicima života. Na primjer, vidimo mnoga bića sa zmijskim oblicima i pokretima. Ipak, postoje i mnogi oblici koji se potpuno razlikuju od bilo kojeg poznatog oblika života. Ipak, na svoj jedinstveni način izgledaju živi, ​​poput vanzemaljskih oblika života. Ali naravno, oni nisu živi, ​​oni su dinamični sistemi koji se poigravaju s našom percepcijom onoga što je živo.

Širok spektar oblika i ponašanja među stvorenjima izaziva širok spektar odgovora ljudskih korisnika. Stvorenja mogu izgledati predivno, elegantno, senzualno, nervozno, bizarno, čudno. Selektivni uzgoj može poboljšati bilo koju od ovih osobina.

Budući da ovaj rad nije pokušao tačnu simulaciju “stvarne” fizike, stvorenja se ponekad čine onostranim. Dijelovi tijela se međusobno prožimaju ili se potpuno odvajaju ili se razdvajaju. Promatranje ovih čudnih stvorenja vodi nas u drugi svijet. Možda se još čine živima, ali potpuno pod svojim uvjetima.

Zahvalnice

Ovaj rad potpomognut je istraživačkim ugovorom između Nippon Telegraph and Telephone Corporation i Univerziteta u Oklahomi. Zahvaljujem Timu Tayloru što me je ubrzao s MathEngineom. Zahvaljujem MathEngine-u što je njihov softver učinio dostupnim i pružio opsežnu tehničku podršku.

Dostupnost softvera

Ovaj softver je dostupan za besplatno preuzimanje na: http://life.ou.edu/VirtualLife/

Reference

Dawkins, Richard. 1987. The Blind Watchmaker. Norton.

Ray, T. S. 1998. La vita artificiale. In: Frontiere Della Vita, Estratto Dal Volume I. Gilbert, Walter, and Glauco Tocchini Valentini, [eds.], 109-125. Istituto della Enciclopedia Italiana, Fondata da Giovanni Treccani.

Ray, T. S. In press. Artificial Life. In: “From Atoms to Mind”, Gilbert, Walter, and Glauco Tocchini Valentini, [eds.]. Istituto della Enciclopedia Italiana Treccani. Rome. http://life.ou.edu/pubs/fatm/

Sims, K. 1991. “Artificial Evolution for Computer Graphics,” Computer Graphics (Siggraph ’91 proceedings), Vol.25, No.4, July 1991, pp.319-328.

Sims, K. 1994a. “Evolving Virtual Creatures,” Computer Graphics (Siggraph ’94) Annual Conference Proceedings, July 1994, pp.15-22. New York: ACM Siggraph.

Sims, K. 1994b. “Evolving 3D Morphology and Behavior by Competition,” Artificial Life IV Proceedings, R. Brooks and P.Maes [eds.], MIT Press, 1994, pp.28-39.

Sims, K. 1997. “Galapagos”.

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

FreeBSD na Telstra-ovoj Bigpond ADSL mreži

Original: https://logicsquad.net/freebsd/PPPoE-how-to.html

Paul Hoadley

Logic Squad

2003-03-31

Sažetak


Ovaj dokument opisuje kako postaviti FreeBSD sistem za povezivanje s Telstra-ovom Bigpond ADSL mrežom. Tvrdi se da su informacije dovoljne – sigurno postoje drugi načini za to. Informacije se možda ne odnose na ISP-ove koji nisu Telstra (Australija).

1. Pred-povezivanje

1.1. Preliminarna pitanja

Dijelovi ovog dokumenta pretpostavljaju da je čitač u stanju ponovno prevesti kernel. Naročito, ako je išta od sljedećeg istinito, bit će potrebna repilacija kernela:

  • Podrška za rl vozača Ethernet uređaj nije prethodno sastavljen u kernel. (GENERICkernel ne imati podršku za ovu vozača.)

  • Sustav pokreće verziju FreeBSD prije 4.2-RELEASE, u tom slučaju moraju se izvršiti izmjene u izvoru kernela opisane u nastavku.

Prekomponovanje kernela relativno je jednostavno i dobro je opisano u FreeBSD priručniku. Sve promjene u konfiguracijskim datotekama opisanim kroz njih očito trebaju biti izvršene kao root korisnik.

1.2. Uređivanje veze s Telstrom

Telstra ne podržava povezivanje uređaja koji pokreću FreeBSD na Bigpond ADSL mrežu. U praksi to znači samo dvije stvari:

  • Trebat će vam mašina koja pokreće jedan od podržanih operativnih sistema Windows ili Macintosh koji su prisutni kada instalacijski program dođe da uspostavi vezu.

  • Nećete dobiti pomoć od telefonske službe za pomoć Bigponda ako se pojavi problem sa vašim FreeBSD sistemom. Ako se problem dogodi i vjerujete da je to udaljeno za vaš ADSL modem, često je korisno imati na raspolaganju originalni Windows ili Macintoshsistem na kojem možete testirati vezu dok razgovarate sa osobljem službe za pomoć.

2. Veza

2.1. Pitanja hardvera

Korišteni hardver bio je onaj koji isporučuje Telstra: SMC EZ kartica 10/100 NIC i Alcatel SpeedTouch Home ADSL modem. Telstra je počela da gura upotrebu USB-Ethernet adaptera između uređaja i modema. Zbog nedostatka takvog adaptera za testiranje, ovaj se dokument ne odnosi na taj hardver.

2.1.1. SMC EZ kartica 10/100 NIC

Odgovarajući pogonitelj uređaja za ovaj NIC je rl. Ako nema, dodavanje linije

device         rl0

na vašu konfiguracijsku datoteku kernela biti će dovoljno da se ova PCI kartica pronađe pri pokretanju.

[Important] Bitan

Još nemojte prekompolirati kernel — u nastavku se mogu izvršiti dodatne promjene.

Dodajte rl0 na popis mrežnih sučelja u sustavu /etc/rc.conf:

# You may have more than two interfaces
network_interfaces="rl0 lo0"
# There is no need to supply rl0 with an IP address
ifconfig_rl0="media 10baseT/UTP up"

Za usporedbu, ovo je izlaz ifconfig ifconfig rl0 na mojoj mašini:

# ifconfig rl0 rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::2e0:29ff:fe66:305f%rl0 prefixlen 64 scopeid 0x1
        ether 00:e0:29:66:30:5f
        media: Ethernet 10baseT/UTP
        status: active

2.1.2. Alcatel Speedtouch kućni ADSL modem

Povezivanje ADSL modema je jednostavno, ali se razlikuje od povezivanja standardnog serijskog modema:

Ovaj dijagram prikazuje kako biste postavili FreeBSD uređaj da bude gateway za vaš LAN. sis0 je prikazan kao interno sučelje samo kao demonstracija. Možda imate drugi NIC koji zahtijeva drugi upravljački program uređaja. Ako nemate lokalnu mrežu, relevantna je samo veza s rl0.

2.2. Pitanja softvera

2.2.1. Konfiguracija kernela

Prema FreeBSD Priručnik, podrška netgraph više ne treba da bude sastavljena u kernel. Ako nije pronađena podrška netgraph, ppp mogu učitati ga u kernel za vrijeme izvođenja.

2.2.2. Izmenang_pppoe.c

[Important] Bitan

Ovu izmjenu treba izvršiti samo za sisteme prije FreeBSD 4.2-RELEASE. Opisane promjene inkorporirane su u izvor kernela naFreeBSD 4.2-RELEASE.

2.2.2.1. Pozadina

Ovaj se odjeljak može sigurno preskočiti ako vas ne zanima zašto izvor treba mijenjati.

Opis PPP-a preko Ethernet protokola možete pronaći u RFC 2516. Iz nekog razloga, Telstra-ovi pristupni koncentratori osjetljivi su na redoslijed kojim su oznake smještene u početni PADI paket. Jednostavna izmjena izvora zamijeniti redoslijed [Service-Name] i [Host-Uniq] Oznake su sve što je potrebno. Ako vas zanima kako proces otkrivanja propada, a to već niste učinili, pokrenite tcpdump u drugom prozoru ili na drugoj konzoli. Ako koristite X Windows, pokrenite rezervni xterm sa xterm &. Ako ste na konzoli, prelazite između virtualnih terminala koristeći Alt+F1Alt+F2 i tako dalje. As root, trčati:

# tcpdump -e -i rl0 -s 1500 not ip

Ovisno o verziji FreeBSD koju pokrećete i u kojem gradu živite, proces će umrijeti u nekom trenutku prije nego što je sesija postavljena.

2.2.2.2. Izmena ng_pppoe.c
  1. Spremite odgovarajuću razliku od jedne od tri veze dolje u datoteku /tmp/ng_pppoe.diff. Razlikuje se od originala 3.4-R, 4.0-R i 4.1.1-R izvori su ovdje povezani, ali Aaron Hill je spreman stvoriti razlike za sve druge verzije koje ljudi mogu zahtijevati. Pogledajte odjeljak o Kontaktiranju autora ispod.

  2. Idite u traženi direktorij:

    # cd /usr/src/sys/netgraph
  3. Napravite sigurnosnu kopiju izvornog izvora:

    # cp ng_pppoe.c ng_pppoe.c.bak
  4. Primjeni razl:

    # patch < /tmp/ng_pppoe.diff

2.2.3. Prekompilirajte kernel

Ako su napravljene bilo kakve izmjene konfiguracijske datoteke kernela ili samog izvora kernela kao što je gore opisano, kernel bi se trebao ponovo prevesti kako je opisano u FreeBSD Priručnik. Potom bi mašinu trebalo ponovo pokrenuti.

2.2.4. Izmena /etc/ppp/ppp.conf

Sljedeće ppp.conf je dovoljno za spajanje na Telstra Bigpond ADSL Mreža:

default:
 set device PPPoE:rl0:bigpond
 set speed sync
 set mru 1492
 set mtu 1492
 set ctsrts off
 enable lqr
 add default HISADDR
 set timeout 0
 set redial 0 0

 # Network Address Translation (NAT)
 nat enable yes
 nat log yes
 nat same_ports yes
 nat unregistered_only yes
 enable dns

bigpond:
 set authname yourname@bigpond
 set authkey yourpassword

2.2.5. Izmena /etc/rc.conf

/etc/rc.conf mogu se modifikovati tako da omoguće automatsko povezivanje u vrijeme pokretanja:

ppp_enable="YES"
ppp_profile="bigpond"
ppp_mode="ddial"

2.2.6. Izmena /etc/resolv.conf

Dodajte IP adrese poslužitelja imena koje je tehničar za instalaciju unio u vaš Windows ili Mac konfiguraciju. Na primjer, u Adelaideu su bili brojevi koje je uneo moj instalater:

nameserver 61.9.128.13
nameserver 61.9.128.16

Brojevi za vašu lokaciju mogu biti različiti.

3. Post-konekcija

3.1. Ispitivanje veze

Za testiranje koristite ppp interaktivni način rada:

# ppp

Ovo bi trebalo dovesti do poznatog interaktivnog upita:

ppp ON yourhost>

U odzivnik otkucajte dial bigpond, i ppp trebalo bi povezati na standardni način:

ppp ON yourhost> dial bigpond Ppp ON yourhost>
PPp ON yourhost>
PPP ON yourhost>

Kao što je svaki uzastopni pppp promjenama u P, to znači da u pregovorima napreduje. Naime, prvi Pukazuje na to da ZPP završi, drugi da je autentifikacija je završen, a treći nego IP broj je dodijeljen. Više informacija može se naći na man ppp.

Prvotno sam otkrio da je potrebno jedan ili dva pokušaja veze. Od modifikacije rc.conf, i dobivanje ppp da radim tiho u vreme pokretanja, međutim, nisam imao ovaj problem.

Konačno, pokušajte kontaktirati domaćina u mreži Telstra, najprije putem broja:

# ping 139.134.2.129 PING 139.134.2.129 (139.134.2.129): 56 data bytes
64 bytes from 139.134.2.129: icmp_seq=0 ttl=229 time=49.518 ms
64 bytes from 139.134.2.129: icmp_seq=1 ttl=229 time=49.758 ms
64 bytes from 139.134.2.129: icmp_seq=2 ttl=229 time=50.274 ms
^C
--- 139.134.2.129 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 49.518/49.850/50.274/0.315 ms

A onda po imenu:

# ping telstra.com PING telstra.com (139.134.2.129): 56 data bytes
64 bytes from 139.134.2.129: icmp_seq=0 ttl=229 time=48.037 ms
64 bytes from 139.134.2.129: icmp_seq=1 ttl=229 time=49.454 ms
64 bytes from 139.134.2.129: icmp_seq=2 ttl=229 time=49.913 ms
^C
--- telstra.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 48.037/49.135/49.913/0.798 ms

Imajte na umu da neka često postavljana pitanja sugeriraju pinging vašem najbližem susjedu, ali Telstra konfigurira neke svoje domaćine da ne odgovore na ICMP zahtjeve. Pinging mog najbližeg susjeda čini se da postoji problem kada ga nema:

# ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1454
        inet 61.9.135.135 --> 172.31.28.3 netmask 0xff000000 

# ping 172.31.28.3 PING 172.31.28.3 (172.31.28.3): 56 data bytes
36 bytes from GigabitEthernet4-0.wel-gw1.Perth.telstra.net
(203.50.113.18): Destination Host Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 5400 075d   0 0000  f5  01 3199 61.9.135.135  172.31.28.3 

^C
--- 172.31.28.3 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss

To ne ukazuje na problem.

A. Kontaktiranje autora

Autor ovog dokumenta je Paul Hoadley. Ovaj dokument opisuje samo ono što sam učinio da bih pokrenuo PPPoE FreeBSDmašina. Vaša kilometraža može varirati. Ako primijetite bilo kakve pogreške u ovom dokumentu ili je vaše iskustvo s ADSL mrežom Telstra bilo poprilično drugačije, molim vas javite mi.

Ja sam spreman da pomogne u rešavanju problema vezanih za postavljanje opisane u ovom dokumentu. Trebat će vam, međutim, da mi pošalje stvarne doslovno kopije poruka o grešci, kao i stvarne kopije datoteka su uključeni (uz korisničko ime i Lozinka informacije izbrisane). E-mail tvrdeći da “Moj rc.conf je baš kao i onaj na vašu stranicu, i to ne radi”, neće više nije dobio nikakav odgovor.

B. Krediti

Hvala puno Aaron Hill za komentare i za originalne izmjene izvora kernela koje su bile potrebne prije FreeBSD4.2-RELEASE. Ako  je potrebno da pokrenete stariju verziju FreeBSD Aaron je spremna na razlike za bilo koju drugu verzije ng_pppoe.c da su ljudi plutaju okolo. Podijelite kopiju ng_pppoe.c, a Aaron će poslati natrag razlika.

Zahvaljujem Ryan Trainoru na informacijama o USB-Ethernet adapterima koje isporučuje Telstra.