Archive

Archive for September, 2008

Deary lazyweb: zanimljivi programerski linkovi?

September 30th, 2008 Senko No comments

U trenucima dosade (vidi ovo), početna točka za daljnje besciljno surfanje su mi često (polu)programerski siteovi poput Proggita ili Hacker Newsa.

Tako se često dogodi da neke od linkova pronađenih tamo proslijeđujem poznanicima. Ispravak netočnog navoda - rijetko, jer sam previše lijen - ali često nađem nešto što mislim da bi moglo biti relativno zanimljivo i nekom drugomi tko možda ne prati te siteove.

Jedno vrijeme sam mislio da takve linkove jednostavno dumpam na svoj twitter, ali onda bi bili ispremješani sa mojim osobnim porukama, a i na taj način nitko drugi ne bi mogao dodavati nove linkove.

Zato sam danas otvorio Zanimljivi linkovi vezani uz programiranje temu, koja bi mogla poslužiti kao svojevrsni linkdump za tu tematiku. Kad nađem nešto što mislim da bi moglo biti zanimljivo programski (ili geekovski ili nešto srodno :) nastrojenoj ekipi, namjeravam gore staviti link uz kratki opis.

Ukoliko mislite da stvar ima smisla, pozivam vas da posjetite temu ili se preplatite na njen RSS feed te da i vi kad naiđete na nešto zanmljivo što želite podijeliti s drugima stavite to gore. Osim samih postanja linkova, možemo ih gore i komentirati.

Categories: Croatian Tags:

Startup ideja - P2P grid computing

September 17th, 2008 Senko 7 comments

spheres

I P2P i grid/cloud computing su trenutačno totalno in. Naravno, P2P nam je poznat već dulje vrijeme, od Napstera preko BitTorrenta, pa do stvari poput Skypea ili Joosta (koji, čini mi se, nije baš zaživio). Cloud computing je na prvi pogled noviji izum, dok se ne sjetite stare Sunove “mreža je računalo”.

Dobra stvar kod (trenutne inkarnacije) cloud computinga je činjenica da svoju aplikaciju možete jednostavno hostati, ne brinući o hardveru ili hardverskim problemima, backupima, a ukoliko zatreba, lako stvar skalirate na 1000x više servera uz linearni trošak.

Dakle, stvar je sa perspektive korisnika odlična. Sa perspektive providera resursa za cloud computing, stvar je mnogo kompliciranija - trebate brinuti o svemu od prije navedenog, trebate imati ogromne data-centere, brinuti o njihovom smještaju, napajanju, hlađenju, osiguranju, na toliko veliki broj računala konstatno se događaju hardverski kvarovi, itd, itd. Zato niti ne čudi da su veliki provideri poput Amazona ili Googla primarno i korisnici svojih servisa, koje su tek naknadno odlučili otvoriti javnosti (kad je već cijeli sustav posložen, šteta malo ne zaraditi od njega).

Što nas dovodi do peer-to-peer sustava, koji rade na principu “ruka ruku mije”. Odnosno, svi korisnici u P2P sustavu žrtvuju dio svojih resursa koje ne koriste, kako bi u trenutku kad im treba mogli koristiti resurse drugih u sustavu. Primjeri popularnih P2P sustava su većinom za file-sharing (BitTorrent) i VoIP (Skype).

Ima li preklapanja između grida i p2pa? Novi startup Wuala je primjer peer-to-peer grid storagea (a jel im baš trebao pridjev “social” u taglineu? grr). Nekoliko blogova nedavno je sugeriralo primjenu p2p mehanizma u stvaranju konkurenta Googleu. Jedan je blog (u kontekstu rasprave o novim JavaScript engineima i profiliranju JS-a kao mainstream jezika) sugerirao da se računala korisnika iskoriste i za grid computing. [nažalost nemam link, ne mogu ga izguglati više]

Ovo posljednje mi zvuči kao zanimljiva ideja. Iako članak priča o korištenju JS-a u browserima za computing, problemima latencije zbog HTTP-a i sigurnosnih problema, sama srž ideje uopće nije loša. Na sličnoj ideji temelje se različiti @HOME projekti (SETI, DNA sequencing, razbijanje kriptografskih ključeva, itd), no oni su specijalizirani slučajevi, odnonsno radi se o posebno izgrađenim aplikacijama i sustavima za samo jednu primjenu.

Ako poopćimo stvar i dozvolimo izvođenje bilo kakvog koda (uz obraćanje pažnje na sigurnost sustava i onemogućavanje virusa ili zlonamjernih programa), mogao bi se razviti sustav u kojem korisnici mogu tražiti od drugih ili nuditi svoje CPU (možda i mrežne, ili diskovne kao što to radi Wuala) resurse drugim korisnicima.

Očito, trebalo bi dobro promisliti koju platformu ponuditi programerima za ovakav “grid”, a da stvar bude uspješna. Platforma mora biti već postojeća i popularna i podržavati mogućnost sandboxinga i limitiranja aplikacije koja se izvodi. Vjerujem da je najbolji izbor za tako nešto C#, odnosno .NET framework. Osim što je po defaultu prisutan na najproširenijem OS-u današnjice i ima poprilično dobru podršku i mindshare kod developera, postoje kvalitetne open source implementacije i za Linux i OSX sustave. Tehnološki sličnu stvar već rade u Second Lifeu, dakle očito platforma to može.

U ovakom sustavu, distribuirani program bio bi pisan tako da ga je moguće podijeliti u što veći broj što nezavisnijih zadataka, pojedini moduli distribuirali bi se peerovima, koji bi po završetku zadatka vratili rezultate. Prvi problem s ovim koji mi pada na pamet je mjerenje učinkovitosti neovisno o pojedinom računalu (u istom vremenu različita računala će obaviti različitu količinu posla) ili zadatku (neki zadaci traju dulje, a neki kraće). Jedno moguće rješenje je da platforma na svakom računalu radi benchmark CPU-a i računa faktor na osnovu kojeg se vremena izvođenja zadataka na različitim računalima mogu svesti na zajednički nazivnik.

Ekonomija cijele priče zasnivala bi se na činjenici da neki ljudi imaju slobodnih CPU resursa (npr. većina ljudi dok su na pauzi za ručak) dok drugima treba svaki MIPS kojeg mogu izvući (npr. neki ludi znanstvenici). Korisnici bi za svoje potrebe bili voljni platiti određeni iznos, koji bi se distribuirao peerovima na osnovu obavljenog posla (uz malu proviziju onome čiji je cijeli sustav, iliti startupu iz naslova). Na sličan način (ali za ljude umjesto procesora) radi Amazonov Mechanical Turk te bi se u projektu mogle iskoristiti i neke njihove ideje i rješenja.

Idealno, cijela stvar bi bila open source, za obavljeni posao dobijali bi se i plaćali krediti, tako da bi svi mogli istovremeno sudjelovati i kao naručitelji i kao izvođači poslova, arbiteri bi imali neku malu proviziju, dakle stvorio bi se cijeli jedan mali p2p ekosustav.

Zašto iznosim ovu ideju umjesto da već ove sekunde marljivo kuckam kod (ili bar pripremam term sheet :)? Zato što me zanima što vi, dragi čitatelji, mislite o ideji, što je očito dobro ili krivo, biste li bili voljni raditi na tome, koristiti ili investirati u ovakav sustav? Ima li sve to uopće smisla ili je to samo halucinacija?

I, da, naravno, ako ovakva stvar već postoji, slobodno spomenite. Nije da se sve može naći na Googlu :)

Categories: Croatian Tags:

Naslovnica je privremeno down

September 12th, 2008 Senko 8 comments

Zbog umm, tehničkih problema, privremeno je prekinut rad Naslovnice, web/rss agregatora vijesti iz domaćih medija. Problemi bi trebali biti riješeni do početka slijedećeg tjedna, a dotad dnevnu dozu vijesti možete potražiti na Cro-RSS ili CroPortal portalima.

Ispričavam se na neprilikama i molim vas za malo strpljenja :)

Usput i obavijest da dovršavamo novu verziju Naslovnice, pri čemu smo uzeli u obzir i vaše komentare, kritike i sugestije. Hvala Vam na feedbacku, ako ste nešto željeli reći a niste stigli, još nije kasno :-) Nova verzija ugledat će svjetlo dana RSN…

Categories: Croatian Tags:

Chrome this, Chrome that

September 5th, 2008 Senko 1 comment


Chrome

The amount of hype that the newest Google project has received is staggering. Googling for “google chrome” already gives more than 12 million results, and should soon join the 70+mil ranks of Britney Spears, Paris Hilton and other celebrities as one of the most buzzed up buzzword on the planet.

It will kill Windows, bring us into the Cloud Age, it’s been called a game changer, a Firefox/Opera/Safari killer, an operating system, the best thing since sliced bread, …

WTF. Let me repeat myself, W. T. F. The way it’s been received, they could’ve called it Google Christ.

Is the browser itself any good? Probably. Is it worth all this charade? No. In fact, the more I hear anyone and everyone and their dog blabbing about it, the more I grow dislike for it. But, whatever. Let me quickly go through killer features:

  • Tabs in separate processes. Good idea, tab isolation really helps when you hit a bloated site (and it does scale nicely on multicores). [not extremely innovative though, as I hear IE8beta already does the same])
  • Fast JavaScript implementation. Again, cool, but nothing special. Squirrelfish and TraceMonkey performance is close enough (or faster, depending on exact benchmark - but we all know benchmarks are lies anyways :). While V8 will ensure more competition, they could’ve just joined in with one of the other opensource projects (which both SquirrelFish and SpiderMonkey and Tamarin are).
  • Innovative UI. Which I confess I fail to see. The most disruptive change is placing the toolbar inside each tab. Cute (and really makes more sense), but no cleaner than Firefox (or even better, GNOME Epiphany) can do.
  • Start page. Basically what Opera does, plus a few things Aza Raskin is trying to tell us for quite some time.
  • Gears built-in. Nice, but since you already can use Gears with other browsers, not much of a change. Other browsers are moving in the same direction (with their respective solutions for offline web apps).
  • The comic. IMHO the best part of the Chrome story :-)

Are the abovementioned features great? Definitely. Are they really something extra, different, and impossible to see in a few months in any other browser? Nope.

Actually, it’s quite easy to implement most of them in a few hours of idle hacking, which I did. I proudly present you Senko Chrome, my very own competition to Google’s project (written in Python using the Gecko engine and GTK+ GUI toolkit, and probably only works on Linux). I’ve followed basically the same guidelines as Google folks, and my browser has the following features:

  • Tabs in separate processes, thus using the OS scheduler and having memory-hog protection between sites. Easy to test by going to two JS-heavy sites and using them both withouth freezes, delays and stutters (the more cores you have, the better, but already works fine on single core).
  • Fast JS performance. Not as fast as Chrome, since I’m using Firefox3 backend, but had I wanted, I could recompile it using the new TraceMonkey and achieve basically the same performance.
  • Less-cluttered UI with toolbar under each tab. Not as polished as Chrome (pun not intended), but hey, I only had couple of hours.
  • Start page, something similar to Chrome’s. Mine shows a search bar and a few favorite sites. Since I don’t track history between sessions, it’s actually a static page, but hey, I did only have a couple of hours. Besides, it’s like everything’s incognito, because I don’t save/remember anything.

Of course, not being a finished browser, many of the normal things (keyboard nav, open in new tab, right-click, etc) just don’t work in Senko Chrome, but hey, that’s beside the point.

Does this mean I think Google Chrome is worthless? Absolutely not. I think it’s an interesting browser, it’s pushing good features, and it will help stirr up the web browser competition and ultimately contribute in making a better Web for everyone.

But please, don’t get so hysterical over a bunch of features that can be implemented in an afternoon, mmkay?


Senko Chrome
obligatory Senko Chrome screenshot

(PS. If you want to try out Senko Chrome, you’ll need Python, PyGTK and Python bindings for GtkMozEmbed (Gecko embedding in GTK+). Unzip the archive in a folder and run schrome.py. If you want to run a single page (no tabs), run onepage.py directly).

Categories: Croatian Tags: