Kamioni i fizika podsvijesti

Parkiranje kamiona s prikolicom prava je umjetnost, a pogotovo kamiona s dvije prikolice. Tako je i upravljanje našim nesvjesnim dijelom prava umjetnost. Ovaj mali dio gdje sjedi vozač, to je logika: nema smisla brinuti, nema smisla ljutiti se, i tako dalje. Onda imamo prvu prikolicu koja se kreće pod sasvim drugim kutovima. A onda imamo i drugu prikolicu koja se kreće pod sasvim trećim kutovima. Dok se prikolicama kamiona indirektno još i može upravljati, za ove naše prikolice nisam toliko siguran.

Kad promatram sebe, vidim da nas ima više. Kad se uznemirim, u meni se javlja neko dijete, mogu mu ja reći i objasniti što god hoću, ali ono ne razumije, ne zna hrvatski jezik, srce bubnja bez pitanja. Ispod je neko neobično biće – osjetljivo, mekano, sklisko, nejasne teksture i nepravilnih oblika, fluidno, muljevito, neuhvatljivo. Ondje vrijede drugačija pravila. Ako ovdje “iznad” vrijedi, recimo, klasična njutnovska fizika, onda je ispod neka relativistička ili kvantna. Kao i kod sebe, tako i kod druge osobe ponekad naletim na nekoga tko uopće nije ona – aktivira se neka davno ranjena podosobnost i onda više ne znam s kime razgovaram.

U međuljudskim odnosima prije sam uglavnom pratio verbalni sadržaj razgovora, tko što tvrdi i tko je u pravu. Bezbroj puta u glavi sam se vraćao na stare svađe i točno znao “što sam trebao reći”. Sad shvaćam da drugačijom rečenicom ne bih ništa promijenio. Jer sadržaj je samo pakiranje: bitan je medij, ono što se odvija na osjećajnoj razini, kakvu emociju tko odašilje. Je li to ljubav, prihvaćanje, zaigranost, puštanje ili možda strah, samoobrana, agresija, moć, kontrola… I onda je cijela situacija mnogo jasnija. Nije bitno tko je što rekao, nego: ja zračim X, ti zračiš Y.

Zato postoje stvari koje se ne mogu riješiti analizom i riječima. Zato su neke savršeno racionalne rasprave suvišne ili čak kontraproduktivne. Zato je moguće svim srcem nekome htjeti i pokušati pomoći, a nesvjesno napraviti suprotno. Možda tada treba naprije zašutjeti, a onda se s drugom osobom dogovoriti da ćemo, osim tišinom, razgovarati jedinim jezikom koji naši djetinji dijelovi mogu donekle razumjeti – iracionalnim. Dopustiti da govorimo gluposti, stvari koje nemaju smisla, stvari koje zvuče užasno, stvari koje su očito kontradiktorne, stvari koje se ne usudimo reći, stvari koje možda i nisu istina ali nam eto nekako padne na pamet da ih izgovorimo. (Ako nemamo osobu koja bi pristala s nama tako razgovarati, barem imamo bilježnicu.) Pa kad moj iracionalni dio počne razgovarati s tvojim, možda nekamo dospijemo. Sigurno ne do zaključka – taj pojam u ovom kontekstu nema smisla. Nego nekamo, tko zna.

Ja, ja i Irena

U naslovu je film sa Jimom Carreyem – ali ovaj tekst nije o filmu, nego o glazbi. I o meni! I malo o Ireni.

U četvrtak Irena Žilić nastupa u Tvornici Kulture. Kad je prošli put ondje svirala, bio je to fantastičan koncert, ne znam jesam li još igdje tako uživao. Možda jedino kad je svirala u Močvari na Valentinovo 2021. godine – spasila me usred lockdowna, kad nisi imao kamo izaći – pred minijaturnom publikom koju je sačinjavalo desetak solidno razmaknutih parova. Na ulaznice sam kliknuo sam čim je bilo počelo preuzimanje i već minutu poslije sve su bile rasprodane. Zadnji put Irenu sam slušao prije nekoliko mjeseci na INmusicu gdje je nastupala kao Neon Wife. Padala je kiša i nisam imao zaklona, ali koga briga, ljeto je i svira Irena. Svidjela mi se jedna nova pjesma koju je tada izvela, ne znam joj ni naslov – još je neobjavljena, a ja čekam.

Imam, naravno, oba njezina albuma na CD-u; pisao sam joj komentare ispod YouTube videa; poslao poneki mail; stavio akorde njezine pjesme na Ultimate Guitar. Baš sam divan obožavatelj. Jednom sam joj prišao ispred KSET-a, nešto sam baljezgao. Pitao sam je što znači jedan zagonetan stih – točnije, tko ili što je little friend by my side u pjesmi The Moon. Nije htjela otkriti, a ja sam rekao da je to sigurno mobitel. Mislim da joj je bilo smiješno. (Tu pjesmu je poslije obradila ni manje ni više nego Morcheeba. Ni oni valjda ne razumiju taj stih.)

U bivšem bendu svirali smo njezine Cricket and Mouse i The Moon. Kad je moj brat na svoj Instagram story stavio fingerstyle cover Irenine pjesme Defeats, ona ga je podijelila u svom storyju i bili smo jako sretni. Irena odlično svira gitaru; za nekoliko pjesama koristi nestandardne tuninge i mislim da ih je pokupila od Laure Marling. (To vam je kad drugačije naštimate gitaru pa se svi akordi drugačije sviraju, ali drugačije i zvuče, a to je poanta. Mnoge pjesme Stonesa odsvirane su u open-G tuningu i inače ne bi zvučale tako dobro.) Jednom je na Instagramu, na moj upit, napisala koji tuning koristi za Cricket and Mouse (ili je to možda bio Scars, zaboravih) – a isti tuning koristi Laura Marling u svojoj pjesmi Goodbye England Covered In Snow i nisam ga našao ni u jednoj drugoj pjesmi na svijetu. Laura je engleska verzija Irene, genijalna kantautorica s već sedam odličnih albuma. Zbog udaljenosti je nikad nisam čuo uživo, ali jednom ću, ako treba, obići svijet da je vidim.

Eto, toliko o Ireni – i o meni. Mnogi moji tekstovi o glazbi, a i drugi, prikriveno su autobiografski. Svatko uvijek piše o sebi. San nikad nije o onome koga sanjamo, nego o onome tko sanja.

Računalo i šah

Šahovski svijet ovih dana bruji o potencijalnom varanju stanovitog velemajstora. Postoje statistički indikatori varanja, korišteni ponajviše od stranica za online igranje poput chess.com, koji mjere koliko se potezi igrača podudaraju s potezima koje bi u istoj poziciji igrali šahovski programi (koji su odavno daleko nadmašili ljudske prvake). Ispada da rezultati mogu biti kontroverzni: dok stručnjak za šahovsko varanje Ken Regan ne pronalazi ništa sumnjivo u partijama Hansa Niemanna, analize od prije nekoliko dana koje kolaju društvenim mrežama upućuju na suprotno, tj. na neobično veliku podudarnost s računalom u nekim njegovim partijama.

Htio sam staviti nekoliko poveznica, ali ima toliko toga da ne znam odakle bih počeo, pa je najbolje ostaviti ovaj tekst čistim od linkova i skočiti na zaključak – jumping to conclusions! A praktični zaključak glasi: tko god je sklon statistici, može napraviti doktorat o detekciji varanja u šahu na osnovi poteza, jer to se područje očigledno tek razvija. Štoviše, čini mi se relativno jednostavno napisati nekakav znanstveni rad iz ovog područja. Zašto? Postoji stotinu načina da mjerimo performans igrača i uspoređujemo ga sa strojem; dovoljno je od golemih mogućnosti skrojiti neku metriku, ili nekoliko njih, koja daje dobre rezultate na bazama šahovskih partija. Tanak sam s vremenom, ali neću se žaliti ako mi se javi netko tko želi surađivati i odraditi dosadniji dio posla – istraživanje dosadašnjih radova, usporedba s postojećim mjerama, bla bla – a ja da pomognem s idejama 😀 😀

Ipak, osobno me više privlači nešto mnogo beskorisnije, nešto što su drugi već napravili i to daleko bolje – izrada programa koji dobro igra šah. Recimo, bolje od mene – s tim bih bio sasvim zadovoljan. To bih radio iz čiste zabave, kao lijep, težak i prilično bogat programerski izazov. Bogat u smislu različitih podizazova koji se javljaju: od optimizacije utroška vremena i memorije, do samog algoritma, redoslijeda pretraživanja pozicija i rezanja grana (pruning) te ključnog i najtežeg dijela – evaluacije pozicije. Nije lako ni odabrati jezik: program u C++-u bio bi daleko brži od onog u Pythonu, ali u Pythonu je brže i ljepše programirati, a budući da sve to radim iz gušta, moj je odabir jasan… Jedini je uvjet da ne koristim nikakve postojeće šahovske biblioteke. Ali smijem koristiti baze šahovskih partija!

Za one koji ne znaju, a zanima ih, pokušat ću ugrubo objasniti kako računalo igra šah.

Za početnu ilustraciju odaberimo jednostavniju igru: kružić-križić. U bilo kojoj poziciji ove igre možemo razmišljati ovako: ako ja odigram ovo, što će protivnik igrati? Ako on odigra ovo, što ću nakon toga ja igrati? Ako ja na to odigram ovo, što će onda on… I tako dalje, sve do kraja, do pozicije gdje je jasan pobjednik (ili je neriješeno). Kada postoji više mogućih odgovora, treba isprobati sve “grane stabla”. Uz dovoljno vremena i papira možemo nacrtati sve dohvatljive pozicije i točno znati što treba igrati da bismo zajamčili pobjedu ili izbjegli poraz. Tako će, naravno, igrati i računalo.

U šahu se primjenjuje sličan postupak, ali postoji velika razlika. U križić-kružiću već nakon nekoliko poteza dolazimo do kraja, do pozicije za koju znamo ishod (pobjeda/poraz/neriješeno). U šahu je broj pozicija prevelik i analiza ne može doći do kraja. Možda možemo pregledati sve pozicije do kojih možemo doći nakon jednog, dva, tri, četiri i pet poteza – ali u nekom trenutku moramo stati jer smo vremenski i memorijski ograničeni. Mnoge od predviđenih pozicija neće biti ništa jasnije, ništa bliže završetku partije od pozicije u kojoj se trenutačno nalazimo. Što onda?

Dolazimo do ključnog dijela šahovskog programa, a to je evaluacija pozicije. Kad provjerava neku poziciju, ako se više nema vremena granati, program mora na drugi način ocijeniti koliko je ta pozicija poželjna. Ta procjena bit će neki broj: recimo, od -10 do 10, gdje nula znači da su snage izjednačene, pozitivan broj znači prednost bijeloga, a negativan broj prednost crnoga. Ali kako se on računa? Program Stockfish procjenjuje poziciju zbrajajući elemente za koje iskustvo kaže da su važni: vrijednosti figura, sigurnost kralja, struktura pješaka, kontrola središta ploče, napadanja, odmakli pješaci itd. Težinski parametri u formuli podešavaju se strojnim učenjem na osnovi goleme baze partija šahovskih velemajstora – za koje znamo kako su završile, pa za sve pozicije koje su se javile u tim partijama znamo kakav je bio njihov ishod. Općenito, u takav program ugrađeno je mnogo ljudskog znanja o šahu. To nije slučaj s još boljim programima kao što je AlphaZero koji ne koristi nikakvo ljudsko znanje o šahu (osim samih pravila). On poziciju ubacuje u golemu formulu koja ljudskom oku nije razumljiva – neuronsku mrežu – čije brojeve podešava kad sazna je li pogriješio, a uči igrajući sam protiv sebe.

To su osnovne ideje u pozadini šahovskih programa. Naravno, preskočili smo mnoge detalje, ali kraće je slađe. Ne znam hoću li se na kraju upustiti u programiranje ovako nečega, ali ako se netko želi natjecati, možda me to dodatno motivira… 😉

Radost ili radost ako

Postoje dva tipa ljudi. Jedni se probude s to-do listom u glavi i nemaju mira dok sve ne naprave. Drugi se probude mirni i sretni, a sve što naprave je bonus.

Većina ljudi koje znam, uključujući mene, naginje ovoj prvoj skupini. Sretni smo kad nešto riješimo ili kad se nešto dogodi – ili, u slučaju straha, kad se ne dogodi. Naravno, nakon što je cilj dostignut, javlja se neka nova budućnost, neke nove brige i novi ciljevi pa zapravo nikad nismo na cilju. Ovi drugi, nekim čudom, sretni su i prije. Sretni po defaultu, dok god im se ne događa ništa osobito loše.

Ova dihotomija preslikava se i na religiju. U kršćanstvu, recimo, govori se o spasenju “po vjeri” i/ili “po djelima”, a različiti glasovi (od Biblije naovamo) stavljaju naglasak na jedno ili na drugo. Za razliku od zasluge koja je prisutna i u židovstvu i islamu, ideja milosti odgovara ovoj “sreći unaprijed”: Bog mi spasenje nudi besplatno, prije nego što išta učinim. Djela onda proizlaze iz primljene radosti – nisu meritum nego samo nuspojava. Slično, u budizmu i drugim strujama sklonima meditaciji, mnogi glasovi tvrde nešto na ovom tragu: već si prosvijetljen (samo to ne znaš).

Je li ta defaultna sreća nužna da bismo uspijevali? Na prvi pogled nije, jer među ljudima možemo pronaći svaku od četiri kombinacije: sretan i produktivan, sretan i neproduktivan, nesretan i produktivan, nesretan i neproduktivan. Stoga, well, zašto biti sretan ako možeš biti uspješan?

Ipak se čini da, u mnogim slučajevima, komadić radosti mora doći prije. Onaj tko je na dnu mora dobiti impuls ljubavi da bi se uopće mogao početi penjati. Mora osjetiti da je vrijedan, unatoč svemu, jer zna da bezvrijedno ne vrijedi spasiti. Nastavit će puzati u alkoholu (ili tko zna čemu) jer duboko vjeruje da ne zaslužuje bolje.

Početak, možda, može biti susret – ma koliko kratak – s osobom za koju nekim čudom osjeti da ga bezuvjetno prihvaća. Možda joj na trenutak povjeruje.

Temeljnu radost sam sebi ne mogu stvoriti, koliko god se trudio. Razlog je jednostavan: čim se trudim, zapravo sam u onoj prvoj skupini koja pokušava nešto zaslužiti, biti sretan ako, spasiti se djelima. I time se opet uvjetujem, odgađam. Postoji li rješenje?

Evolucijski smo podešeni na druge ljude. Milost, kao i u kršćanstvu, može doći samo od druge osobe. Kao djeca, bezuvjetnu ljubav primali smo od roditelja (ili smo barem trebali). Taj duboki osjećaj vrijednosti nekima možda ostane dovoljan za čitav ostatak života. No uglavnom ga moramo jedni drugima zalijevati. I za to nema formule. Ponekad, naš partner, prijatelj ili stranac osjeti da ga volimo i da ne mora ama baš ništa učiniti. I sretan je.

I tu postoji kvaka: slutim da, tko zna zašto, neki duboki dio nas ne razlikuje davanje od primanja. Kad nekome istinski praštam, praštam i sebi. Kad osjetim da prihvaćam i volim, osjećaj nije usmjeren samo prema van – dvosmjeran je, svesmjeran, neusmjeren. Neki dio nas ne razlikuje sebe od drugoga. Iskoristimo taj bug.

Sia i znakovni jezik

Nemojmo se svađati, idemo spavati, poslije će biti bolje. To je grubi sažetak teksta pjesme Soon We’ll Be Found koju sam prvi put čuo u hrvatskom Voiceu kad ju je izvrsno otpjevala Mirna Ružić. Zalijepio sam se za melodiju, zalijepio za pjesmu, potražio tekst i potražio spot.

U spotu Sia umače ruke u bijelu boju i potom njima pokazuje tekst pjesme znakovnim jezikom. Tražeći po webu značenje te geste, našao sam informaciju da je u pjesmi riječ o Sijinom bivšem dečku koji je – gluh. On, dakle, ne može čuti pjesmu, ali ovako barem može vidjeti pjesmu.

Ali bio sam potpuno zapanjen tek kad sam pogledao live izvedbe pjesme. Na svim (ili gotovo svim) nastupima Sia ovu pjesmu, osim glasom, izvodi i znakovnim jezikom! U videu iz 2019. godine, čak jedanaest godina nakon što je pjesma objavljena, Sia u nekom manjem abijentu (lounge baru?), sjedeći na stolcu, izvodi pjesmu uz pratnju akustičnog gitarista, a rukama i dalje prevodi tekst znakovnim jezikom. Za koga?

Dečko je odavno bivši, godinama daleko. Unatoč tome, Sia na svojim nastupima neumorno oživljava neki pradavni dan, neku svađu staru više od desetljeća, pokazujući rukama znakove koje publika u toj dvorani mahom neće razumjeti. Nemojmo se svađati, idemo spavati, poslije će biti bolje. Iako po svemu sudeći nije bilo bolje, Sia svoje znakove pokazuje u zrak, sve se iznova događa, propadljivo i prolazno pretvara se u vječno. Taj uporan ali suptilan, nekima možda i neprimjetan performans, toliko je genijalan i originalan da ne znam s čime bih ga uopće usporedio, u koju kategoriju svrstao – to je umjetnost iz najdubljeg izvora.

Sia i njezino ritualno izvođenje pjesme znakovnim jezikom podsjeća na religije i njihove rituale, različite obrede na oltarima. Kao i kod Sie, odgovarajućeg slušatelja odnosno primatelja nema – ali unatoč tome, ili baš zbog toga, liturgiju možemo smatrati umjetnošću. Umjetnost uvijek sadrži djelić suvišnosti, djelić besmisla.

Arhiviranje starih objava o algoritmima

Ovaj blog započeo je 2018. godine kao niz savjeta i zadataka iz domene natjecateljskog programiranja. U međuvremenu se njegova tematika značajno proširila, a i promijenila, pa o informatičkim zadatcima nisam pisao još od svibnja prošle godine.

Budući da sadašnji (i budući) pratitelji Blogaritma na njemu čitaju znatno drugačije tekstove od onih koje je čitala njegova prvotna publika, a i ti stari tekstovi još uvijek imaju svoju publiku, odlučio sam pojednostavniti život i jednima i drugima pa sam objave koje se tiču zadataka i natjecanja prebacio na novu stranicu: https://rekurzija.wordpress.com/. Blogaritam je sada “čišći” i više friendly čitateljima koje ne zanimaju informatička natjecanja, a onaj tko traži samo takve materijale, lakše će ih naći na novoj stranici jer mu neće smetati moje novije filozofske pizdar objave.

Za one koje to zanima, u nadolazećoj sezoni državnih natjecanja možda ću ostati u nekoj pomoćnoj ulozi, ali više neću biti voditelj kategorije Algoritmi SŠ. U pozadini svega je nešto što je mogao naslutiti svatko tko je malo dulje pratio Blogaritam – informatička natjecanja sve manje me zanimaju. Njima se u raznim oblicima bavim još od početka srednje škole, najprije kao natjecatelj, a kao autor zadataka već trinaest godina – najprije za ZRS, a onda najviše za HSIN i posredno za AZOO. Ne bih znao ni nabrojiti sva natjecanja koja sam suorganizirao, a zadataka koje sam sastavio sigurno je preko dvjesto, od kojih su neki (p)ostali vrlo lijepi i popularni. Uživao sam u tome, taj mi je posao bio jako zanimljiv i zabavan, ali nakon više od desetljeća nastao je zamor. Srećom, u novim generacijama naziru se izvrsni autori, svježi s natjecanja i genijalni na više načina.

Imam potrebu spomenuti još jedan mali demotivirajući faktor – za školsko, županijsko i državno natjecanje honorari su nam zadnje dvije godine kasnili po 12 mjeseci, a ove godine već sedam mjeseci and counting (samo nebo je granica). Odgovarajuće osobe podsjećam svakih mjesec dana, ne toliko radi sebe koliko radi mojih suradnika studenata, dobivajući ili ignore ili kojekakva objašnjenja i prebacivanje odgovornosti. Naravno da to nije velik novac i taj bih posao mogao raditi i badava, ali nije lijep osjećaj kad te netko uporno pravi budalom.

Blogaritam će, naravno, ostati matematičko-računarski na mnoge načine. Sve je to isprepleteno. Stay tuned!

Reljef svih tekstova

Matematički rečeno, skup svih mogućih književnih djela (ili skladbi, ili slika…) jest metrički prostor: tekstovi koji se razlikuju u malom broju riječi međusobno su blizu; tekstovi koji se razlikuju u mnogo riječi imaju veliku međusobnu udaljenost.

Na tom prostoru moguće je definirati funkciju kvalitete – o tome da je kvaliteta objektivan pojam već sam argumentirao. Graf kvalitete čini reljef s mnogim brdima (dobrim tekstovima) i dolinama (lošim tekstovima):

Prostor tekstova ima mnogo više dimenzija, ali radi jednostavnosti zamislimo ga ovako.

Ako točke ovog prostora predstavljaju pjesme, što radi dobar pjesnik? Traži dobru pjesmu, odnosno, traži visoku točku u ovom prostoru. Penje se!

Ugrubo, proces stvaranja sastoji se od dviju faza. U prvoj fazi tražimo (ili već imamo) ideju o tome što želimo stvoriti (napisati, skladati, naslikati…). Što smo kreativniji, to imamo širi raspon ideja. U kontekstu gornje skice, to znači da imamo veliku mapu, dobar dalekozor i dobar terenac koji nas može odvesti u razne dijelove prostora.

Ali kreativnost nije dovoljna, jer terenac dolazi samo do podnožja strme planine, ne može planinariti. Potrebne su još dvije komponente: dobar ukus (da znamo gdje smo, na kojoj visini – koliko je nešto kvalitetno) i vještina penjanja na brdo. Vještina zapravo ne može bez dobrog ukusa pa njega možemo smatrati preduvjetom: on je filter kroz koji provlačimo svoj uradak. Kad netko objavi nešto loše, to znači da u vlastitom opusu nije uspio razaznati što valja, a što ne valja.

Mnogi imaju samo kreativnost pa smisle hrpetinu ludih ideja od kojih nijednu ne znaju pažljivo i disciplinirano izrezbariti da može doprijeti do čitatelja ili slušatelja. Nemamo svi isti mozak i kad nešto pišem ili govorim, trebam znati kako razmišlja čitatelj ili sugovornik da bih uspješno prenio poruku. Tu je potrebna i doza empatije i socijalne inteligencije i sličnih stvari. Malen broj ljudi ima potrebnu vještinu penjanja na brdo – pospješivanja teksta (prepravljanja, dodavanja, izbacivanja…) do trenutka kad to više nije moguće, do vrha brda ili planine, do “lokalnog maksimuma” kako bi rekli matematičari.

Naravno, ni vještina sama nije dovoljna, jer ako nismo kreativni, popet ćemo se na vrh samo onog brda koje nam je blizu, ali nećemo ugledati veće planine. Možemo biti majstori i znati se dobro popeti na svaku planinu koju pronađemo, i možda se našem vrhu neće naći prigovor – tekst će biti savršen u smislu da nema manjkavosti, nije ga moguće poboljšati malim promjenama – ali i dalje će to biti samo lokalni maksimum; negdje drugdje postoje viši vrhovi. Za razliku od običnog majstora, nobelovac prije istog postupka penjanja nekim čudom nađe ljepšu, veću planinu, a onda od nekoliko njezinih vrhova uspije otkriti i popeti se na najviši.

Zvono i ja

Postoje svakakvi satovi: ručni, zidni, džepni, oni na mobitelu, laptopu ili TV-u… Ali ovih dana shvatio sam da postoji još jedna vrsta sata, korištena stoljećima. Zvučni sat! Drugim riječima, crkveni zvonik.

Zvonik na Prviću i u sličnim mjestima, gdje ljudi žive bez uređaja, prirodno i u skladu sa suncem, glasno zvoni u šest, dvanaest i osamnaest sati. To nisu drugo nego alarmi: za buđenje, za ručak i za večeru. Osim te trostruke bučne zvonjave koja traje preko dvije minute, zvonik se uredno oglašava svakih pola sata, kazujući ljudima bez satova koliko je sati. Na svaki puni sat, bio dan ili noć, čuje se onoliko otkucaja koliko je sati, pa se tako i u ponoć čuje dvanaest otkucaja, u tri sata tri otkucaja i slično. Dodatno, na svaki polusat – kao sada, u deset i trideset – čuje se jedan otkucaj. Tako svi u krugu od nekoliko kilometara mogu, samo slušajući zvona, u svakom trenutku znati približno vrijeme, kao da im ga sama nebesa oglašavaju.

Istina, tradicionalni “alarm” zvonika u šest ujutro jadnog me izbudi, ali sve ostalo me smiruje. To je zvono simbol savršene pravilnosti tijeka vremena i izmjene dana i noći, na koju nas bez iznimke podsjeća svakih pola sata. Ono je i simbol tradicionalnog, zdravog ustajanja i lijeganja sa suncem. I najvažnije: simbol rutine, ponavljanja i stalnosti. Ponekad želim da mi svaki dan bude isti. Da nema mobitela, promjene i dinamike. Da se usidrim i sve da stoji. Najljepši dan u životu bio mi je onaj koji je bio toliko tih i polagan da ga se uopće i ne sjećam.

Nadopunitelj

Nekad sam pisao o pravilnom tipkanju koje koristi svih deset prstiju. Ta je objava bila pisana primarno za (natjecateljske) programere jer dolazi iz prve faze Blogaritma, ali vrijedi i šire. Pisati svim prstima udobno je i brzo.

Nažalost, ne mogu svi tako: neke osobe s teškoćama tipkaju mnogo sporije. Moja draga prijateljica svoja književna djela – među kojima se rađa i jedan roman – piše samo jednim prstom. Motiviran tim izazovima, odlučio sam napraviti programčić za autocomplete.

Nadopunitelj je jednostavan uređivač teksta (poput recimo Notepada), ali čim počnete tipkati neka slova, on vam predlaže najvjerojatnije riječi koje jednostavno birate pritiskom na tipku od 0 do 9, bez potrebe za pomicanjem ruke na miša ili strelice. Trenutačno su podržani hrvatski i engleski jezik. Tekst se može na standardan način kopirati i zalijepiti u word, e-mail ili na neko drugo mjesto, a postoji i opcija Copy All unutar Edit izbornika.

Izvorni kod (repozitorij) nalazi se na https://github.com/satja/potpun. Kako Nadopunitelj predlaže riječi? Za učestalosti pojavljivanja pojedinih riječi u hrvatskom jeziku koristio sam Ljubešićev infleksijski rječnik, a učestalosti bigrama (parova riječi koje dolaze jedna za drugom) izračunao sam iz korpusa hrWaC od nekoliko gigabajta tekstova s hrvatskih web stranica. Dakle, program za prijedloge uzima u obzir i prethodno napisanu riječ, pa će primjerice nakon “bez o…” prvi prijedlog biti obzira. O detaljima algoritma predlaganja možda ću pisati nekom drugom prilikom, ali nije ih teško rekonstruirati iz izvornog koda.

Program za instalaciju na Windowsu može se preuzeti na ovoj poveznici, uz napomenu da će Windows iz opreza (budući da ne zna što program radi) sigurno prikazati upozorenje koje trebate zaobići. Koliko znam, jedini način da spriječim taj negativni user experience pri instalaciji jest kupovina nekog code-signing certifikata, što nije toliko jeftino. Možda nekad bude.

Ali to nije sve! Postoji i ekstenzija FluentTyper za web preglednike (Firefox, Edge i Chrome) s vrlo sličnom funkcionalnošću – ja nisam njezin autor, ali sam pomogao da u nju uđe i hrvatski jezik s podatcima koje sam izvukao, te nagovorio autora da omogući nadopunjavanje brojkama 0-9 (treba ih omogućiti unutar Options).

Toliko za sada, javljajte mi se s feedbackom ili pitanjima ako negdje zapnete. I naravno, ako znate nekoga kome bi Nadopunitelj mogao pomoći, pošaljite mu!

Installer: https://github.com/satja/potpun/releases/download/installer/nadopunitelj_1.0_installer.exe

Chrome ekstenzija: https://chrome.google.com/webstore/detail/fluenttyper-autocomplete/mbjlobpodpimgbkmlmjiblnmfgajmebm

O bestočnim tvrdnjama

U matematici smo učili da krug sadrži kružnicu (liniju) i cijelu njezinu unutrašnjost. Međutim, učiteljica je znala napomenuti da, po nekima, kružnica ne pripada krugu – krug je po njima samo unutrašnjost, bez rubne linije. Tada sam se pitao tko je u pravu – pripada li kružnica krugu ili ne – i činilo mi se da je riječ o dubokom pitanju.

Poslije sam shvatio da u tom pitanju, zapravo, nema nikakve dubine i da nema točnog odgovora – samo trebamo odlučiti hoćemo li krug definirati na jedan ili drugi način. Ispada da je u nekim slučajevima prikladnija jedna, a u nekim slučajevima druga definicija (ovisno, primjerice, o tome bavimo li se otvorenim ili kompaktnim skupovima) i samo je važno da ne bude zabune, tj. da je u svakom trenutku jasno koja je definicija “na snazi”.

U gimnaziji nas je profesor Mladinić jednom pitao: zašto na brojevnoj crti negativne brojeve prikazujemo lijevo, a pozitivne desno? Zašto nije obrnuto? Nudili smo razna objašnjenja, ali profesor nas je malo razočarao kad je jednostavno odgovorio: “Dogovor! To je dogovor!” Meni se činilo da dublji razlog leži u činjenici da pišemo s lijeva na desno, ali onda sam se sjetio da je i to samo dogovor – neki narodi pišu u suprotnom smjeru. Ponovno “pravopis”!

Ima još primjera. Učili smo da su prirodni brojevi 1, 2, 3, 4, … i tako dalje – ali mnogi taj skup počinju od nule, ne od jedinice (primjerice, u teoriji skupova to ima smisla). Je li nula prirodan broj, ili nije? Ako vam se to pitanje čini imalo dubokim, varate ste – to je samo stvar definicije; riječ je o čistoj “pravopisnoj” dvojbi.

Za ovakve tvrdnje – koje se ne odnose na neku neovisno provjerljivu činjenicu nego ovise o semantici, tj. značenjima pojmova – neki filozofi koriste frazu no fact of the matter. Odlučio sam smisliti hrvatsku riječ za istu stvar: bestočno. (Ni točno ni netočno; prema bez-točno uz glasovnu promjenu z > s po uzoru na analogne riječi kao što su bestidno, bestežinsko itd.) Evo primjera bestočnih tvrdnji za koje ljudi često ne shvaćaju da su bestočne:

  • “Brak je zajednica muškarca i žene.” (Da, ako se tako dogovorimo. Ali svemir je potpuno indiferentan.)
  • “Život počinje začećem.” (U kojoj točno nanosekundi? Život je moguće, čak i znanstveno, definirati na stotinu načina – ali u suštini nećemo saznati ništa novo. Što se mene tiče, život počinje s trideset godina.)
  • “Hrvatski, bosanski, crnogorski i srpski (ni)su isti jezik.” (Koliko slično je “preslično”? 90%? 95%? Koliko zrna čini hrpu? 10? 20? Ja kažem 15.)

Jedan moj prijatelj dobro je rekao da se ovakve i slične rasprave svode na, programerskim rječnikom, imenovanje varijable. Bestočne tvrdnje, dakle, same po sebi nisu ni točne ni netočne, nego njihova istinitost ovisi o manje ili više proizvoljno odabranoj definiciji ili kriteriju. Rasprave o njima često su besmislene – sukob se ne vrti oko neke činjenične istine, nego se pod krinkom objektivnosti podmeću različite definicije i tako se vrijeme i energija troše na nešto što je samo semantika, upotreba različitog jezika.

Naravno, nije baš sve relativno: čak i za bestočne tvrdnje postoje bolje i lošije definicije. Recimo, u matematici se prost broj definira kao prirodan broj veći od 1 koji je djeljiv samo s 1 i sa samim sobom (recimo, 5 ili 19 su prosti brojevi, dok 21 nije prost jer je djeljiv s 3 i 7). Zašto je broj 1 isključen iz definicije? Ne bi li on po svemu trebao biti prost? Iako time gubi na eleganciji, definicija prostog broja isključuje broj jedan – jer kad bi on bio prost, posljedice ne bi bile baš elegantne. Mnogi teoremi imali bi iznimku, između ostalog i onaj najvažniji, da se svaki broj može samo na jedan način rastaviti na proste faktore. Konkretno, 20 = 2 ⋅ 2 ⋅ 5 više ne bi bio jedini rastav broja 20 – mogli bismo dodati proizvoljno mnogo jedinica, npr. 1 ⋅ 1 ⋅ 1 ⋅ 2 ⋅ 2 ⋅ 5.

Što je onda zaključak? Ima smisla raspravljati oko definicija, ali samo ako smo potpuno transparentni u tome da zagovaramo određenu definiciju, a ne činjenicu. Posljedično moramo sniziti pretenzije o dosegu i značaju onoga što tvrdimo. U praksi to uglavnom nije slučaj.