Svi postovi sa bloga: Area51. Web dizajn, web razvoj, programiranje

Sinoć sam sa ortakom imao kraću diskusiju o tome da, kada se odbace sve dogme i religijska verovanja, ipak “postoji nešto” (sa čim se ne slažem, ali to je druga priča).

soul.jpg

Njegov glavni argument u diskusiji je postojanje duše i “naučno dokazana” činjenica da je telo izgubi 21 gram na masi onog trenutka kada čovek umre. To što je napravilo razliku u masi u stvari duša koja je napustila telo (po njegovim rečima, bolje bi joj bilo da ode na mesto gde ima dosta žena, “komad” kad god treba i neograničena količina žetona za Sega Rally, or else!).

Ulaziti u takve diskusije uz pivo definitivno ne ide tako da smo temu jako brzo napustili i okrenuli se “tekućim pitanjima”, ali opet, nešto mi nije dalo mira i hteo sam da vidim kakav to “naučni dokaz” postoji da duša postoji i da ima masu. I evo je priča…

Početkom prošlog veka (1907. godine) doktor Duncan MacDougall je izvršio eksperiment gde je merio promene u masi ljudi u finalnim stadijumima teške, neizlečive bolesti. Kako bi mogao izmeriti masu duše napravio je krevet koji je mogao da meri promene u masi i izabrao pacijente koji boluju od bolesti za koje poznato da, pri smrti, ne izazivaju grčenja i nagla pomeranja tela.

article.jpg

Kao uzorak, koristio je 6 ljudi i 15 pasa. Kod pasa nije dolazilo do promene u masi što ga je uverilo da je njegov stav da životinje nemaju dušu, zasnovan na njegovim religijskim verovanjima, ispravan. U tekstu navodi da, iako bi bilo idealno da je dobio umiruće pse, to nije bilo ostvarivo, što nas navodi na jedno razmišljanje - on je te pse ubijao, najverovatnije trovao. Toliko o tome da psi nemaju dušu, a on ima.

Kod ljudi je imao manjih problema - dolazilo je do gubitka mase, ali rezultati nisu bili usklađeni. Dva “uzorka” su morala biti odbačena jer je jedan umro dok su krevet i skala podešavani, a drugi zato što skala nije bila dobro podešena. Kod ostalih je primećen gubitak mase, ali se u jednom slučaju masa “vratila”, dok je kod drugih trajno opadala - u nekim slučajevima trenutno, a u nekim progresivano.

Kada se podvuče crta, nakon što su rezultati objavljeni štampa ih je prenela javnosti. Iako je doktor rekao da je uzorak mali i da bi se trebalo izvršiti još merenja kako bi se došlo do podataka na koje se možemo osloniti, ideja da je duša teška 21 gram (prvi subjekt) je postala deo naše svakodnevice.

100 godina kasnije, ovaj eksperiment se ne uzima kao naučni dokaz da duša postoji i/ili da ima masu usled malog uzorka i nemogućnosti da izvuče bilo kakva pravilnost iz dobijenih rezultata. Cela stvar je samo još jedna u nizu stvari koje su radoznali ljudi radili kroz istoriju kako bi odgovorili na neka pitanja koja su ih zanimala. Više o samom eksperiment i stvarima koje su ga pratile možete pročitati u ovom članku (na engleskom).

Za ličnu organizaciju kod mene pale samo olovka i papir. Nikakav fancy softver koji se sinhronizuje sa koječim preko koječega, integriše se u moj browser, telefon, nikakav sistem foldera u koje slažem i preslažem liste i beleške itd. Previše je to posla.

Umesto toga, sistem je jednostavan - uzme jedan A4 list i presavijem ga 3 puta tako da je izdeljen na 8 delova. Svaki deo je jedan dan. Na vrhu stranice napišem datum, a ispod listu stvari koje bih želeo da završim taj dan. Obično može da stane 5 - 10 stvari na tu osminu stranice što je uglavnom i više nego što u toku dana mogu da sredim. Ako za jedan dan mogu da skinem 5 stvari koje su mi se ujutro vrzmale po glavi to je bio dobar dan.

Ovaj “sistem” ne koristim svaki dan, ali se osete dani kada imam spremnu listu pred sobom i krećem se kroz nju. Tada uvek uradim više.

Moguć dodatak ovome je i anti todo lista. U ovu listu zapisujete stvari koje ste toga dana uradili, nalazile se one na todo listi ili ne. Svrha ove liste je da vam kaže gde vam je otišao dan ako se zapitate kako to da ste tako malo stvari rešili, a ceo dan ste radili. Par neplaniranih telfonskih razgovora, odlazak u poštu ili banku, na klopu itd vrlo lako mogu da pojedu par sati, a da i ne primetite da se to desilo.

simple-todo.jpg

contract.jpg

Pratim par foruma i zajednica koje se uglavnom bave softverom kao biznisom i biznisom generalno. Među raznim diskusijama koje na njima vode često se jave ljudi sa problemima uzrokovanim nepotpisivanjem ugovora:

Nekada davno sam sa bratom krenuo u posao i on im je obećao četvrtinu firme. To nikada nije stavljeno na papir jer, pobogu, brat je u pitanju. 12 godina kasnije firma vredi desetke miliona, ali ne postoji način da dođem do svog dela jer me brat kulira. Kada god krenem sa tom pričom, on nađe način da skrene temu ili prekine razgovor…

ili:

Imao sam brutalnu ideju, ali, pošto sam prevashodno tehničar, a ne prodavac, trebao mi je neko ko će umeti to da proda. Sklopi sam dogovor sa firmom koja nije direktno na tom tržištu, ali već ima iskustva na sličnom. Ja ću prodavati preko njih i dobijati procenat. Sada, kada se cela priča uhodala i postala profitabilna niko neće da me pogleda. Svi me izbegavaju, a pošto ništa nije potpisano ne postoji pravni način da dođem do svog dela.

i tako dalje i tako dalje.

U zadnjih par meseci koliko sam aktivan u tim zajednicama stvarno sam pročitao svakakve horor priče. Zato, kada je posao u pitanju, treba se držati starog dobrog papira.

Usmeni dogovor je OK za manje stvari i sa bliskim prijateljima, ali krupnije projekte i stvari vezane za vlasništvo nipošto ne smete prepustiti rečima. Crno na belo, potpisano, pečatirano i overeno u sudu - to je jedino što radi posao i štiti sve strane u slučaju bilo kakvog spora.

Sa druge strane, čuo sam primere da postoje određene biznis kulture gde se prve stvari namerno rade bez ugovora kako bi se videlo koliko su saradnja i igrači ozbiljni. Ovo je neko pomenuo u usputnom razgovoru i ne znam koliko je istina. Deluje mi OK za male, test projekte i “opipavanje”, ali za bilo šta ozbiljnije ugovor je jedino što pije vodu.

Pre neko veče smo bili do Beograda da se vidimo sa drugarima i pogledamo The Dark Knight. Utisak koji sam imao kada smo izašli iz sale je da je film dobar, ali to je bilo to - bez superlativa. Međutim, kako vreme prolazi i kako razmišljam o detaljima iz filma sve više i više mi se sviđa; toliko da ću ići još jednom da ga pogledam.

Džoker je uznemiravajuće lud. Ne lud kao bolestan, već lud u načinima na koje govori ono što želi da kaže. U ponekim momentima su njegovi postupci toliko smešni da se ceo bioskop valjao, ali u pozadini je uvek bilo destruktivno ludilo. Uz scene “Here’s my card” i “Give me a minute” idu i scene gde objašnjava kako je dobio glazgovski osmeh, njegovi “socijalni” eksperimenti, priča o ljudima i njihovoj sebičnosti, o tome kako i zašto je tu gde je i radi to što radi itd. Totalni freak.

Neću više da kvarim, pogledajte film. Tona akcije, komičnih scena i jedan jako, jako sjeban lik.

why-so-serious.jpg

Jedna je posebna:

wonka.jpg

Primetio sam da u razvoju prve verzije aplikacije imaju tri osnovne faze u pogledu toga kako cela stvar izgleda:

  • Postavljanje skela - ovo je početna faza kada se spremi framework, rasporede osnovni moduli, podesi autentifikacija, upload i slične ostale stvari koje će aplikacija koristi. Ukoliko ste uhodani sa platformom na kojoj radite ovo ide jako brzo - maksimalno par dana.
  • Ružno pače - u ovoj fazi polako gradite funkcionalnost aplikacije, ali stvari ne izgledaju i ne rade baš najbolje. Rupe u funkcionalnosti su na sve, ono što radi obično zahteva još dosta vremena da dođe na očekivani nivo, interfejs nije još uvek lepo “seo” itd.
  • Peglanje - početak ove faze se preklapa sa krajem prethodne, a zvanično počinje onog trenutka kada kažete da je dosta dodavanja novih stvari i da treba da se fokusirate na pegalanje onog što je tu. Ovo ne bi bio loš trenutak da uvučete neke beta testere u priču. Ljudi koji su sveži sa aplikacijom će sigurno primetiti gomilu stvari koje su vama, kao nekom ko ne skida pogled sa nje već dosta vremena, promakle.
  • Na kraju ovog puta je jedna sporija faza, gde može malo da se odahne i napune baterije. Već sam je pominjao u ovom tekstu. Posle ide gomila bugova koje će ljudi pronaći kada počnu da koriste softver. Pa nove verzije koje krpe te bugove, dodaju nove funkcije (i nove bugove) i tako u krugu…

    Pored finansijske dobiti (ili neke druge ako ne ciljate na zaradu), nagrada je i to da ste stvorili nešto novo iz ničega. Neki uživaju u tome, neki ne, ali tu je u svakom slučaju.

    ugly-duckling.jpg

    Nešto o čemu razmišljam u skorije vreme je kako povući alate u pozadinu i omogućiti ljudima da ih koriste, a da ne moraju da imaju stalan kontakt sa njima i kada taj pristup ima smisla.

    time-machine-logo.gifPrimer jedne tehnologije koja se vodi tom logikom je Time Machine - backup softver koji dolazi uz novi Mac OS. Ne zahteva puno od vas - ako primeti slobodan hard disk ili particiju pitaće da li može da ga koristi. Recite Yes i to je to - od tog trenutka nadalje Time Machine će početi da pravi backupe i prestati da vas smara sa pitanjima.

    “Nevidiljivost” ovog alata se ogleda u tome što se od vas ne očekuje ništa da bi on radio. Nastavljate da koristite računar kao i ranije, a Time Machine stoji u pozadini i radi svoje bez da vas cima ili da vi morate nešto da mu kažete. Kada vam zatreba fajl iz backupa on je na par klikova, ali do tad alat kao da ne postoji.

    Ovakav pristup ima jako mnogo smisla kada je potrebno korisnicima pružiti nešto što nije direktno vezano za alate koje koriste u radu, ali je tu da taj rad podrže. Ako se tako gleda softver za kolaboraciju i upravljanje projektima je dosta blizak Time Machineu. Sam sebi nije svrha, ali vam omogućava da posao uradite brži i uz manje zabune.

    javascript.jpg Najveći problem koji imam pri JavaScript razvoju je konstantno mešanje konstrukcije, stilova i ponašanja u istom kodu.

    Što se stilova tiče njih je relativno lako držati odvojene u zasebnom fajlu, ali opet se često dešava da se svojstva moraju menjati direktno iz JavaScripta… Ne mogu se imati klase baš za svaku moguću situaciju koja nam treba.

    Kao što rekoh, stilovi nisu problem - problem je konstrukcija i ponašanje koje se kači na nju. Do sada nisam našao dovoljno fleksibilan metod koji omogućava kasnu separaciju između te dve stvari.

    Kod PHP-a je lako jer on ne uključuje ponašanje već radi po run through principu (protrčiš i zaboraviš). Na primer, kada u activeCollabu korisnik zatraži projekat posetivši URL tipa:

    http://projects.mycompany.com/projects/12

    kontroler će od modela tražiti da učita projekat #12 i proslediti ga viewu da ga isti ispiše u pogodnom obliku. Run through - učita, ispiše, zaboravi da se ikad išta desilo.

    Kod JavaScripta stvari ne idu baš tako lako jer HTML nije samo view već i konstrukcija. Evo ga primer:

    var add_option_button = $('<button type="button">Add option</button>').appendTo('body');
    

    To bi u PHP-u bilo dosta - samo ispiši HTML i prosledi ga browseru. Ali, ovo dugme bez ikakvog ponašanja prikačenog na njega ne radi ništa. Zato moramo da dodamo ponašanje NAKON što je konstrukcija složena.

    $('<button type="button">Add option</button>').click(function() {
    alert('clicked!');
    }).appendTo('body');
    

    Ovo je samo jednostavan primer. Složeniji problemi mogu bili jako komplikovani sa jako mnogo nivoa konstruisanja elemenata i kačenja ponašanja na njih, intervalima i timerima, događajima… U celoj toj gužvi jako je teško jasno odvojiti slojeve što dovodi do koda od koga se ljudima često prevrne stomak kada ga prvi put vide.

    PS: Primeri se oslanjaju na jQuery JavaScript biblioteku.

    Sad baš videh na Web.Start sajtu da su snimci ovogodišnjih predavanja postavljeni ovde. Eto prilike da oni koji nisu bili vide o čemu se pričalo, a mi, kojima je kafana bila izuzetno draga, vidimo neka zanimljiva predavanja koja smo propustili.

    web.start.gif

    word-count.jpgDok sam bio klinac i tokom srednje mogao sam da sedim po ceo dan i čitam. Sećam se da sam jedno leto stukao “Rat i mir” za manje od tri nedelje. Sada su stvari skroz drugačije - ne mogu da se zadržim na nekom tekstu duže od 3 pasusa, posebno na internetu. Uvek mi nešto drugo odvuče pažnju pa mi duži tekstovi stoje otvoreni u tabovima danima dok ih čituckam malo po malo.

    Verujem da nisam jedini. Takođe verujem da nije potrebno mnogo reči da bi se prenela poruka ili obradila neka tema. Čini mi se kao da ljudi pokušavaju da natrpaju previše stvari u svoje postove kako bi obradili sve potrebne detalje. :

  • Prvo mindset - otarasite se osećaja da nešto mora biti dugačko i opširno da bi bilo vredno nečije pažnje. Čak je čest slučaj da ljudi upravo opširnošću pokušavaju da sakriju svoju neposobnost da kažu nešto konkretno. Setite se samo “sranja” na ispitima…
  • Kraći tekstovi, 250 do 500 reči, izlomljeni u par kraćih celina. Ta dužina se meni pokazala kao dovoljna da se nešto kaže, a da ne davi i ne zahteva dubok udah pre čitanja. Sve preko 1000, 1500 reči je previše ako mene pitate.
  • Ne mora sve da bude pokriveno jednim postom. Umesto jednog masivnog posta napravite seriju postova i tako u detalje obradite temu.
  • Koristeći liste možete osetno da skratite tekstove jer omogućavaju da se nešto opiše korak po korak uz zadržavanje konteksta. Ukoliko su elementi liste duži od par reči naznačite najbitnije stvari kako bi se lista mogla brzo preletati. Ako nekog baš zanimaju detalji pročitaće sve.
  • Pročitajte svoj tekst par puta pre nego što kliknete Publish dugme. Na taj način možete da izbacite gomilu viška i osetno podignete kvalitet teksta.
  • Kao i uvek, ne može se generalizovati. Nekada nešto mora da bude opisano nadugačko i naširoko. Ti slučajevi su ipak pre izuzetak, nego pravilo. Ovaj tekst ima nešto manje od 350 reči. Da li je preneta dovoljna količina informacija? Da li je rečeno nešto konkretno? Ja se iskreno nadam… )

    blogodak blog

    Blogodak?

    Blogodak je vaš pogled na domaću blogosferu. Prijavite se i napravite sopstvenu listu blogova koje pratite.

    O projektu

    Podrška

    MyCity.co.yu

    DevProTalk