Jedna od zadnjih epizoda “30 Rock“-a me podsjeti na nešto što sam radio u ona davna vremena dok sam još imao živaca kodirati 24 sata u komadu. Ne vjerujem ali možda se ipak potrudim i pokušam osposobiti prastaru 386-icu da na njoj pronađem sve te zaboravljene bitova.
Kao velik broj mojih projekata i ovome je na kraju trebalo onih zadnjih 20% ne bi li se finalizirao. Ono što ga ipak razlikuje od ostalih je što sam na ovome prestao raditi jer se projekat u jednom trenutku transformirao u nešto drugo. Vjerovali ili ne ali Pornodrom kao gnutella based server za razmjenu pornjave (sa web front i back endom) se transformirao u ništa drugo doli web kolaboracijski alat za web publishing pod nazivom TamTam. Znam, znam.. TamTam nisam napisao ja već Guru® Neno. Svi mladi haktivisti kiber festivala od Baltika pa do Crnog mora to odavno znaju… Ah, ah.. ali ajmo taj dio priče za sad ostaviti za neki drugi post.
Pretpostavljam da ne treba spominjati da je samo ime “Pornodrom” referenca na Cronenbergov film “Videodrome“?! Uglavnom, Gnutella se tek pojavila i bilo je očito da se radi o nečem vrućem. Postojeći clienti nisu zadovoljavali moje potrebe i osjetio sam potrebu da sebi kao konzumentu olakšam upotrebu cijele te mreže. Koji bolji razlog za pisanje softwarea nego izrada nečega što koristim svakodnevno. Tko će mi bolje napisati software nego ja sam?! Tko zna bolje moje potrebe od mene samoga ?!
Pisati svoj pear-to-peer nema smisla i zato je cijeli sustav bio zamišljen kao nadogradnja nad arhitekturom već postojećeg i raširenog protokola. Nadogradnja u smislu metapodataka za same sadržaje koji se razmjenjuju, naprednijeg pretraživanja, mogućnosti previewa (slike i videa), lakšeg pregleda sadržaja koji drugi ljudi shareaju, komunikacija s ljudima, “agenti” koji pamte preference i konstantno pretražuju mrežu u potrazi za zanimljivim sadržajem itd. Da..da.. dosta toga su imale svakojake mreže i clienti koji su se pojavili poslije, ali u tom trenutku oni nisu bili na tržištu. Uglavno, ta “nadogradnja” je značila da se Pornodrom ponaša kao tipičan Gnutella node koji je bio u stanju slati neke dodatne sadržaje koje su neki napredniji clienti znali interpretirati. Onima koji nisu ti dodatni sadržaji nisu smetali i normalno su komunicirali sa Pornodromom.
Meni je osobno killer dio cijele priče bila mogućnost pristupu serveru preko weba. Zašto? Pa zato što sam imao pristup unixoidnim serverima koji su na brzim Carnetovim linkovima. Pornodrom na njima visi 24/7 te skuplja i sharea s drugima podatke koji se arhiviraju na njemu. U određenom trenutku spojim se preko ultra spore modemske veze na jedan od tih nodova te u browse modu (nešto kao web image gallery sa thumbnailovima) pregledam raspoloživ sadržaj i obrišem nepotrebno. Možda zvuči smješno ali skidati 300Kb sliku preko modema (ili ne do bog gnutelle) da bih rekao “ahhhh….” mi nije bila neka velika sreća. Bolje je pogledati mali animirani GIF-ić koji barem otprilike dočarava što se dešava u videu pa se tek onda odlučiti na download od par desetaka minuta ili sati. Anywho, ako ustreba jedan rcp i fileovi su nakon dosta vremena lokalno na disku.
Sramim se i priznati ali eto, napravio sam cijeli “application server” sa svojim gnutella bibliotekama za sve to. U pozadini python, ZODB kao objektna baza podataka i neki moj template (je*eš python programera koji nije napravio svoj template engine) engine u pozadini. Nikad ja nisam ništa napisao ako mu nisam prvo dao ime. Ovo čudo se zvalo “Thunder” i imalo je čak male munjice za logo. Uglavno, različiti aplikacije unutar Thundera koje međusobno komuniciraju. Web sučelje sa public dijelom kojem pristupaju drugi korisnici (za browse i skidanje sadržaja) te posebno administrativni dio za managiranje Pornodroma i gnutella servera.
U jednom trenutku cijela ta ideja i arhitektura se samo transferirala u nešto drugo i negdje po putu izgubila gnutella server i moje autorstvo 🙂 Čudni su putovi bitova…. čudni…. sad ga imaš a sad ga nemaš ali uvijek dobiješ neko smeće od BLOB-a za kraj.