Jeste li vidjeli moga sina Janka?!

Jedna od neprocjenjivih stvari koju imam od komunikacije sa ljudima koji imaju background u društvenim znanostima, ekonomiji i željezničkom prometu je što se uvijek potrude da mi objasne “što ja to u biti radim”. Svačićev trg 1 i Preradovićevu 18 kao mjesto mog prosvjetljenja zamjenio je u zadnje vrijeme Friendfeed. Tako nekako ispada s obzirom na ovaj drugi ulet u zadnjih par dana. Za razliku od Milatovog kopiranja klasičnog njih2 uleta ovaj zadnji je bio ipak ok i izvukao je osmjeh iz mene.

“Netko ovdje sigurno poznaje programera kulturpunkt.hr – molim vas recite mu/joj da odjebe s tim javascipit linkovima, izluđuju me.” Napisao je “netko” na friendfeedu. Taj “netko” ima dosta slobodnog vremena pa prekriženih nogu i s rukama u krilu radije voli postati ovakve zahtjeve na friendfeed nego kliknuti na impressum link. Oni su power google reader useri zasigurno pa i ne vide taj link. RSS 2.0 feed direktno u korteks mozga. Matrix spika.

Ako zanemarimu ovu nebulozu da postoji šansa da je žena isprogramirala kulturpunkt.hr ostaje ovaj kriptični dio oko javascript linkova i “odjebavanja”. Uključen sam u taj projekat od samog početka i naslušao sam se svakojakih priča o tom projektu, mojoj ulozi unutra i načinima nagrađivanja mog rada ali moram priznati da je ovo jedna od rjetkih situacija koja je izmamila iz mene osmjeh. Pa pobogu, zar sam uza cijelu listu mojih odgovornosti (a vjerujte mi da je to bila zanimljiva lista) u tom projektu sad postao odgovoran i za sadržaj koji unose članovi redakcije. Linkovi u članku su pogrešno uneseni, nisu dodatno provjereni i članak je kao takav bio objavljen. Da li sam ja kao “programer” odgovoran jer se radilo o nepostojećim URL-ovima? Da li bi postojala odgovornost mene kao “programera” u tom projektu da se radilo o nekoj klasičnoj gramatičkoj grešci ili greška mora nužno biti povezana sa nekim tehničkim terminom? Npr. ako je autor članka napisao da je na izborima 45% glasača glasalo za opciju A a 72% za opciju B da li bi se i ovdje povlačila moja odgovornost kao “programera” ili njega kao autora članka. Da mi ljudi na ulici (ili friendfeedu) viču “odjebi sa svojim izračunima programeru/ko”!




To nas sve dovodi do klasičnog pitanja koje si svaki brucoš filozofije (a možda i komparativne književnosti) pita dok ispija par piva u Krivom putu sa svojim istomišljenicima:”Da li je LAMP (Linux, Apache, MySQL, PHP) kao tehnologija napredniji i bolji od ASP.NET-a”. Kažem to jer je index.hr (news portal pogonjen ASP.NET-om ili čime već) prepun gramatičkih grešaka te nebuloznih rečeničnih konstukcija (to name a few). Pitam se pitam što to njihovi programeri rade….
Ah ti Windowsi….

Kad se perliše potuku iliti kad community ode kvragu


U maniri scenarija Jelene Veljače i produkcije Romana Majetića nakon dosta mjeseci porođajne muke desio se i taj TWiki fork! Za one koji ne znaju fork u ovom kontekstu znači da je jedan dio TWiki zajednice uzeo izvorni kod i započeo zaseban projekat koji je neovisan od starog TWiki projekta. Zašto je to nekome uopće zanimljivo, zašto bi se uopće netko trebao brinuti a i sto mu gromova, gdje je tu uopće drama?!

TWiki projekat je prije nekih 10etak godina kao klon JosWikija započeo lik koji se zove Peter Thoeny. Bio je to jedan simpatičan strukturiran wiki specifičan po svojoj ideji “Web” -ova koji omogućuju da se site podjeli na manje cjeline. Od samog početka projekat je bio izdan pod GPL licencom ali Peter je bio jedina osoba koja je imala pravo na TWiki trademark. To se kasnije ispostavilo kao uzrok dosta problema i trzavica koje su u konačnici i dovele to podjele.

Kod free software projekata TWikijeve veličine dobar i kvalitetan community sa dobrim leaderom ili dobro posloženom organizacijom je izrazito bitan za uspjeh. Počela se tu s vremenom oko TWikija okupljati neka ekipa ali sve je to nekako kilavo ispalo. Peter je ispao nekomunikativan lik. Ekipa je ispala previše u banani i ta agonija je trajala par godina. Nekih 5-6 godina Peter se i nije bavio nekim razvojem TWikija i sve je bilo na tom nesretnom communitiju. Jedan dio ekipe je samo gunđao i odbijao išta raditi, jer Peter je eto kriv za sve. Drugi dio ekipe je nešto i razvijao ali krajnji korisnici su znali dosta puta biti nakon pritužbi tipa “na Safariju ova forma ne radi” biti otpiljeni sa tipičnim programerskim elitističkim odjebima “tko uopće i koristi Apple”. Naravno uvijek je tu i jedan Debianovac koji ima svoje ideje kako bi to sve trebalo posložiti.


Negdje prošle godine Peter je došao do nekih novaca od VC-ovaca, odlučio je osnovati TWiki.net kao konzultantsku firmu i predlagao je da trademark sa njega pređe na twiki.net. Community programera koji je zadnjih nekoliko godina radio na razvoju nije želio ni čuti za takvu ideju. Malo se pregovaralo, malo su se neki modeli governancea predlagali da bi na kraju sve završilo prošli tjedan na dan objavljivanja nove verzije. Na dan objave cijeli community se nađe na Chatu (#twiki kanal točnije), dogovore se “dnevni red”, odrade se stvari i nova verzija se stavlja za download. Ovaj put je Peter došao i kao točku stavio relaunch twiki.org.

Bez najave je svima koji su do tada bili uključeni u projekat onemogućio pristup do servera i na web site je stavljeno novo pravilo korištenja (na koje se trebalo pristati prilikom ulogiravanja) koje kaže da sav materijal napisan na web siteu pripada firmi twiki.net. Naravno trademark TWiki je prebačen na firmu, dosadašnjim developerima je rečeno “ako vam se ne sviđaju nova pravila slobodno forkajte, imate pravo na to, ali ako budete koristili naziv TWiki bilo gdje budemo vas tužili”.

Onda je počelo kukanje “ne možeš se tako ponašati, mi smo napisali sav code, propast će ti firma bez nas!”. Pa su malo emocije proradile i kilalo se Petera sa fork kanala itd. itd… Za sad fork projekat ima privremeno ime “Next Wiki” iliti nextwiki. Šaljivi njemački developeri. Source je baziran na zadnjoj objavljenoj verziji i isto tako kao i twiki.net planiraju neke veće promjene na projektu. Naravno, svi su sad oduševljeni što više nema tog Petera da koči stvari i blah blah napokon su ostali sami i sad će se vidjeti koliko je community kao takav u biti trul i kako velik broj problema nije bio rezultat Peterovih loših odluka već odraz njihove nesposobnosti.

Sve u svemu meni ostaje da čekam par mjeseci i vidim koja će frakcija pobjediti, to više zbog održavanja trenutne instalacija. Onako među nama mogu reći da smo mi već odlučili napraviti naš poseban “fork” 🙂 Ali pssstttt o tome. Mislim da nam je TWiki super poslužio kod projektiranja nekog prototipa onoga što želimo, kod poslagivanja stvari kad nismo ni sami znali što točno želimo. Wikiji super dođu za tako nešto. Ali sad smo već u situaciji da možemo posložiti stvari znatno kvalitetnije a i pomaknuti stvari u neke komercijalnije smjerove.

Što se tiče samog TWikija mislim da je ovo najbolja stvar koja mu se mogla dogoditi. Svi smo mi nekad bili u situaciji kad je jednostavno najbolje reći “doviđenja”. Šteta što je sve ispalo ovako jadno ali barem su forkaši sad nabrijani pa se možda stvari malo i pomaknu. Predugo je TWiki bio težak za instalirati, pun security rupa, nedovršen API, spor, spor, nevjerovatno spor itd…

* http://www.twiki.org/
* http://www.nextwiki.org/

FM Bookstore ili kako objaviti svoju knjigu

Lulu je print on demand publishing kompanija koju je osnovao koosnivač Red Hata Bob Young. Funkcionira po principu da uploadaš gore gotov PDF svoje knjige, odabereš dimenziju i vrstu papira, odabereš cijenu za knjigu (download i papirnatno izdanje) i to je to. Naravno da treba još par operacija izvesti ne bi li knjiga postala dostupna za naručivanje ali u principu to je to ako želite objaviti svoju knjigu.

Uvez je dobre kvalitete, otisak je dobar (crno bijeli ili u boji), papir (meki, tvrdi, glossy) je ok… U principu sve je ok i dobre kvalitete osim činjenice da ne mogu naručiti knjigu u Hrvatsku.

Činjenica da primjerak knjige ide na printanje tek kad se naruči nama u flossmanuals.net super odgovara. Puno bi bolju kvalitetu i cijenu dobili da u nekoj lokalnoj tiskari to printamo ali ovako se ne moramo mučiti sa skladištenjem par stotina knjiga koje eventualno neće biti ni prodane a i sa njihovom dostavom i naplatom (naši manuali su free, osim što se plaća nekih $15 potrebnih za tiskanje). Naravno, ne treba nam nikakav početni kapital za pokretanje te priče. Možda najbolja stvar je što se PDF (koji se koristi za tiskanje) generira automatski iz materijala koje pisci editiraju preko Weba (text i slike). Nitko ne radi prijelom (što je super, jer znači jedna osoba manje i puno puno brže) ali postoji drugačiji template i style za PDF izdanje (može se i birati) sa mogućnošću intervencije na naslovnici. Za to koristimo XHTML2PDF (formerly known as Pisa) kojeg smo (Luka Frelih) fino i modificirali ne bi li poslužio našim potrebama. Promjene su naravno vraćene communitiju 🙂
Za sad cijeli proces objavljivanja knjige u papirnato izadnje ide polu automatski ali cilj je i onaj drugi dio submitanja na lulu.com automatizirati. Super mi je da sam sam uspio da se taj dodatak sustavu nazove Objavi. Pitaj boga kako to anglosaksonci izgovaraju…

Bilo bi katastrofalno da nije tako ali jedna od super stvari kod FLOSS Manuals je što imamo dobro dokumentaciju o svojim alatima i njihovom korištenju. Tako da imamo i za Bookstore widget. Lulu.com ima neki defaultni mali widget koji se može ubacivati u stranice (na acinom binarnom siteu to je sa lijeve strane) ali nama nije bio dovoljno dobar tako da sam sklepao neki novi u JavaScriptu (slideshow, pageing, random order itd.). Upute ovdje pa ako mislite da je reklamiranje slobodnih Inkscape manuala npr. ok stavite si na svoj site! Mi od tog ništa ne dobijemo osim slave i djevojaka.

http://en.flossmanuals.net/bookstore

Linkovi:
* http://www.flossmanuals.net/
* http://www.lulu.com/
* http://www.xhtml2pdf.com/
* http://en.flossmanuals.net/bookstore

mount /Sljeme prvi put!

Nešto je kilavo bilo krenulo ali se na kraju desio i prvi “mount /Sljeme”. Odaziv autističnih razmjenjivača je bio kao i obično nikakav. Više im se dalo protraćiti subotu u mami ne radeći ništa nego biti vani na svježem zraku i grahu sa kobasicama. Anywho, njihov gubitak. Za koji tjedan idemo ponovo.

Još jedan video iz produkcije binarnog. Ruka se trese kao nikad do sada ali nošenje stativa a i samo snimanje videa mi nije bila primarna zadaća. U svakom slučaju, bio je to jedan super provod.

Moja mala Pišekica


Pisao sam prije o nezgodana koje mi se dešavaju kad sam ljudima prvi u imeniku. Katkada se to čak i isplati…

Evo attachirao sam jednu normalniju i usput ju malo deformisao da se ne prepozna o kome se radi. Moja mala Pišekica mi u zadnje vrijeme šalje MMS-ove iz kreveta. Ne znam kome su orginalno trebale ići ali meni uredno na kraju dođu. Honey, samo ti šalji i dalje!

Objavljen Inkscape manual [FLOSS Manuals]

Inkscape manual je napokon objavljen! Manual je rezultat Google financiranog Inkscape Book Sprinta koji je Inkscape Documentation Team imao prije nekoliko tjedana u Parisu. Uskoro ce manual biti proširen sa dodatnih 16 poglavlja a objavit će se i francuski prijevod.

Anywho, ako ste ikad pokušali da se igrate sa vektorskom grafikom na Linuxu ovo će vam sigurno dobro doći:

http://en.flossmanuals.net/Inkscape

Kako Aco bira prijatelje

Na oglas o novim prijateljima je bilo različitih reakcija. Od uvrijeđenih poznanika do ideja da je moj stan javna igraonica. U svakom slučaju, kao i svaki majstor i ja volim iskoristiti alate koje svakodnevno koristim da mi olakšaju život. Stvar je dosta modularna tako da se može lako proširivati sa novim Acinim uslovima. Podrška za Profile (Aco je veseo, Aco je depresivan, Snjeg pada vani i Aci je milo) bi svakako dobro došla.

Kroz ovaj priority queue prođu svi.


from heapq import heappush, heappop
import datetime

DOBRO, VALJA, JEBENO  = 0, 1, 2
NECE, HOCE = False, True
MUSKO, ZENSKO = False, True

ACINE_GODINE  = datetime.date.today().year-1976
FAKTOR_GODINA = -20

acin_um = {"vrckast":  lambda val: -2,
           "stan":     lambda val: val == True and -10 or 1,
           "auto":     lambda val: val == True and -5 or 0,
           "star":     lambda val: round(abs(ACINE_GODINE-val)/100.0*FAKTOR_GODINA),
           "wii":      lambda val: val == True and -5 or 0,
           "udan":     lambda val: val == True and 10 or 0,
           "zauzet":   lambda val: 2,
           "spol":     lambda val: val == True and -10 or 0,
           "ima_maca": lambda val: 0,
           "sise":     lambda val: (-2,-5,-10)[val],
           "guza":     lambda val: (-2,-5,-10)[val]
           }

def create_prijatelj(name, **kw):
    return (reduce(lambda a, b: a+b, map(lambda opc: acin_um[opc](kw[opc]) , kw.keys())), name)

potencijalni = []

heappush(potencijalni, create_prijatelj("osoba jedan",
                                        sise    = JEBENO,
                                        guza    = VALJA,
                                        stan    = False,
                                        vrckast = True)
         )

# itd.. itd... itd..

heappush(potencijalni, create_prijatelj("osoba n",
                                        wii     = HOCE,
                                        udan    = True
                                        )
         )

print "* drum roll *"
print "Najbolji kandidat za acinog novog prijatelja je: ", heappop(potencijalni)[1]

Rezultat u pozitivi


Zadnja dva mjeseca na poslu testiramo sustav za evidenciju radnog vremena. Ništa specijalno, kontrola ulaska i izlaska (sa par razlicitih funkcija) i online provjera evidencije i izrada reportova.

Do sada je sustav funkcionirao tako da rano ujutro nabije osam sati minusa (pazeći na standardnu pauzu i poslovne izlaske) i onda lagano odbija vrijeme od toga. Problem je bio što se sustav nije najbolje ponašao a i u bazu nisu redoviti upisivani godišnji odmori i slične stvari. Rezultat toga je bio da bi neki od nas bili i po 40 sati u minusu. Nije to baš najbolji osjećaj kad provučeš karticu i vidiš “-36 sati”. Tako da je zbog poljuljanog morala i negodovanja promjenjena taktika. Od ranog jutra krećeš sa nulom i lagano nabijaš provedene sate u plus. Iz osobnog iskustva moram priznati da je puno bolji osjećaj ispunjenja kad ideš kući i vidiš “+07:30” a ne “-36:21” 🙂

S haktivistima na badmintonu

Kao i obično, Aco Pretnja u prvom dijelu malo laprda a u drugom predstavlja sourceve i slikice. Pa si vi birajte…

Hrvatski dizajn

Bio sam na otvaranju Izložbe hrvatskog dizajna 0708 na Zagrebačkom velesajmu. Napomenuo mi Namčer da će biti neki njegov rad tamo pa sam odlučio navratiti da vidim usput i neke ostale. Ostao sam ugodno iznenađen kad sam sreo Linu koja mi je rekla da je i rad na kojem sam radio s njom tamo izložen. Baš lijepo rekoh si ja.



Sretoh još neke ljude i pričasmo o “životu i svemiru” i kako to obično biva popričasmo i o tom projektu “Sir i vrhnje” koji je tamo izložen. Ono što me svaki put zapanji je da me ljudi ne mogu zamisliti u japi dizajnu (badminton s kolegama sa posla itd) ali i da u isto vrijeme radim na nečemu kao što je “Sir i vrhnje”. Kažu ljudi i ja citiram “iz izloga br. 3 danas biram identitet br. 2. :))” ! Razumljivo mi je sve to, i sam sam se zatekao da razmišljam o tome (pače, čak sam i počeo nešto pisati na tu temu) ali ne vidim zašto je to tako teško shvatljivo.

Zar ta ta jedna obična košulja od par stotina kuna koju obučeš jednog dana na sebe toliko odredi u očima drugih ljudi? Obučeš košulju i to je to…. gospodin Enterprise Replikacija is in the house. Svašta…. Anywho, bez obzira na košuljice radim ja i dalje sve one stvari koje sam radio i prije. Definitivno se zbog nedostatka vremena štedim ali nisam prestao. Ali ok, neki kuže a neki ne kuže zašto se ja bavim tim stvarima i to je tako.

Organizacija podataka

Kako mi religija nalaže da moram uz laprdanje imati i neku tehničku priču evo par rečenica o tome kako je složen materijal u pozadini. Inače site je totalna koma jer se netko prilikom backupa podataka nakon havarije malo igrao sa encodinzima.

Naime, što se organizacije podataka u ovom projektu radi (ne o priči) radi se o 6 zagrebačkih tržnica i bakicama koje dolaze i prodaju sir i vrhnje na njima. Znači 6 tržnica kroz 7 dana u tjednu i neodređenom broju bakica na svakoj toj tržnici. Jedna baba uvijek ide samo na jednu tržnicu i jedna baba uvijek iste dane dolazi na tržnicu. Znači klikneš da određeni dan na određenoj tržnici. Dobiješ popis svih baba koje dolaze taj dan. Odabereš određenu babu i dobiješ sve fotografije, video i zvučne zapise koji postoje o toj babi (nevezano za dan).



Daklem, postojala je ekipa koja je sa opremom išla po tržnicama i pričala sa babama. Došli bi kući i prebacivali bi snimljene materijale na svoje osobno računalo. Prvo su kreirali tih 6 direktorija: “branimirac”, “britanac”, “dolac”, “kvatric”, “tresnjevka” i “utrine”. Onda su kreirali unutar direktorija “branimirac” direktorije za svaku babu koja dolazi na taj (i samo na taj) plac direktorij i tamo snimili sve foto, video i zvučne zapise o njoj. Zvuči jednostavno.

E sad. Ja sam bio mjesec dana na residencu u Novom Sadu kad se ovo radilo i kad sam se vrati uletio sam jer je kao nedostajalo vremena, deadline i te spike. Anywho, netko je nagovorio ekipu koja je ovo slagala da je ovo loš dizajn i da osobno računalo jednostavno ne može na osnovu ovakvog dizajna dobiti informaciju koja baba se nalazi na kojoj tržnici ili dobiti video od pojedine babe. Osobna računala su jako glupa. Tako da je preporučen bolji, ljepši i noviji dizajn.

Nakon što je sigurno par sastanaka potrošeno na specificiranje ovog bisera krenulo se na posao. Naime, netko je trebao svih 4,000 datoteka preimenovati. Marljivi ljudi su pljunuli u šake i tjedan i pol dana poslije sve su datoteke bile preimenovane (pa ti izračunaj svaki dan par sati puta koliko dana jednako koliko kunića i nečijeg dragocjenog vremena). 12 znakova plus ekstenzija. 1000 mogućih kombinacija za šifru babe bezveze potrošeno na nekih sveukupno 20-30 baba. Bespotrebno kopiranje gomile nepotrebnih informacije kroz svih 4000 datoteka. I na kraju ušteda prostora sa ograničavanjem broja datoteka određenog tipa (slika, audio, video) na samo 9. Tko je ikad snimio više od 9 slika uopće. Mislim, o čemu mi pričamo! O postotku greške kod unosa ovako kriptičnih imena na setu od 4,000 datoteka neću ni razmišljati (pogledajte online koliki je neki standardni prosjek unosa krivih podataka). Sve u svemu, Priceless i totalno za http://thedailywtf.com/ ! Ali to je jednostavno bilo nužno, jer tako osobna računala funkcioniraju. Binarno. Neki to ljudi kuže, dok drugi naivno kreiraju direktorij unutar direktorija i tamo stave svoje materijale. Ahh….Amateri!

Počinju “mount /Sljeme” druženja

“mount /Sljeme” su formalna druženja djela Razmjene vještina koji više pazi na svoje zdravlje a nakon dobre fizičke aktivnosti voli se počastiti grahom sa kobasicama. Ako se netko bude raspitivao ako samo naruči grah da li je to grah u kojem je prije toga bila kuhana kobasica koja je naknadno izbačena preporučavamo štrukle!

Ovo druženje tek treba da se desi zato su prijave dobro došle! Za ovo prvo druženje su u igri Maris i Aco (Aco Pretnja, ne Mali Aco koji je isto dobro došao).

Mjesto radnje: Sljeme http://www.sljeme.hr/
Vrijeme radne: neki vikend http://en.wikipedia.org/wiki/Weekend

U privatnom natječaju za naziv Hobbesov prijedlog “mount /Sljeme” je definitivno pobjedio “Sljemeskop”. Hip hip hura!

Više informacija na:
http://wiki.razmjenavjestina.org/razmjenavjestina/index.cgi?po%C4%8Dela_su_mount_sljeme_dru%C5%BEenja
http://wiki.razmjenavjestina.org/razmjenavjestina/index.cgi?mount_sljeme