Monday, March 7, 2016

Istorijski trenutak za inteligenciju

Pre par meseci, Google-ov DeepMind tim je objavio rad u Nature, u kojem su opisali AlphaGo - veštačko inteligentan softver koja je prva u istoriji uspela da pobedi profesionalnog igrača u partiji bez hendikepa. (Kim Myungwan 9d je u svojoj analizi tih partija, bez nekog posebnog razloga, odlučio da se AlphaGo kao igraču obraća u ženskom rodu - mažnjavam). Pobeđeni je najbolje rangirani igrač u Evropi - Kinez po imenu Fan Hui. DeepMind je istog trenutka najavio da će AlphaGo igrati protiv Lee Sedola u martu. (čita se "Ji Setol" - transkripcija korejskog je smešna)

Ovo je velika vest. Programeri, kao i profesionalni igrači su bili ubeđeni da ovako nešto neće da se desi barem još pet do deset godina. Mnogi mediji porede ovaj momenat sa onim iz 90ih, kada je IBM-ov DeepBlue pobedio Kasparova. Ali ovaj momenat nije kao taj momenat.

Friday, February 26, 2016

GSP (uvod u distribuirane sisteme)


Kao i mnogo drugih ljudi, nalazim se u nezgodnoj situaciji da često koristim gradski prevoz u Beogradu. Situacija je nezgodna na raznorazne načine, ali mene lično ponajviše bockaju sitne, u principu beznačajne, iracionalnosti putnika. Ovaj tekst će se baviti jednom takvom iracionalnošću. Slobodno skočite na poslednji pasus za skraćenu verziju teksta.


Distribuirani sistem je (laički rečeno) stvarno mnogo računara upregnutih da zajedno rešavaju jedan problem. Kada imate veliki zadatak koji se neće u razumnom roku završiti na jednom računaru, skroz ima smisla da uposlite više računara da rade istovremeno, i da preko mreže razmenjuju međurezultate i eventualno se sinhronizuju. (fun fact: pojedinačni računar u distribuiranom sistemu se zove "čvor" - termin očigledno treba da nas asocira na čvorove mornarskih mreža, a ne na čvorove u stablima ... zašto stabla uopšte imaju "čvorove"? mislim čvorovi u stablima jesu nezgodni za sečenje, ali to je prilično tanak izgovor; i pored toga, čvor u fizičkoj mreži se na engleskom i dalje zove "knot", dok se čvor u ovakvom sistemu na engleskom zove "node" ... jezici su blesavi)

Tuesday, February 16, 2016

Pravda je slepa (ali mi nismo)


Uvod

Isfrustiran sam.

Više puta sam razgovarao sa pravnicima koji su mi pričali o idealu pravde, koji, (po definiciji) ne možemo da dostignemo, ali (po prirodi) moramo da mu težimo. Neka ideja je da za svaki problem postoji savršeno pravedna odluka kao razrešenje, i pravni sistem bi trebalo da teži ka tome da obezbedi proces donošenja odluke koji omogućava dolaženje do ideala.

Prirodno, moje prvo podpitanje je - kako to da konačnu odluku u pravosudnom sistemu bez izuzetka donose ljudi, i to pritom eksplicitno u skladu sa svojom savešću? Meni to deluje kao teženje u sasvim suprotnom pravcu od ideala, pošto su ljudi inherentno grešni1. Tipičan odgovor se svodi na sleganje ramenima i mumlanje odgovora oblika: "moramo s nečim da se snađemo". Ok.

blind justice

Kratka digresija - čitava situacija me zapravo asocira na krizu softverske industrije. Ovde nije u pitanju moderna kriza - naime, radi se o problemu o kojem je Dijkstra pričao još daaaaaaavno davno (fazon pre skoro pola veka) u svojim najranijim EWD-ovima2. Ispostavi se da je moderan softver toliko kompleksan da neformalan "ad-hoc" pristup pisanju softvera koji je industrija preuzela može da proizvede u najboljem slučaju softver za koji znamo da ima greše, nikako softver koji ih nema. Trenutno imamo takav razvojni proces da većinu vremena nismo skroz sigurni šta radimo. Čak i softver koji se izvršava u superkritičnim uslovima ume da ima defekte (sa kojom god iole racionalnom definicijom pojma). Ovde bi naš pravnik sa početka teksta ponovo slegnuo ramenima, kao što su učinili i brojni programeri, poslodavci i korisnici. Za to vreme, Dijkstra je u svojoj učionici revnosno pokazivao da korektan softver nije ideal - čovečanstvo poseduje neophodne alate za savladavanje kompleksnosti ... u matematici.