Mjesečne arhive: January 2008

MapReduce je loš i neskalabilan RDBMS

Maa da.

Neki RDBMS stručnjaci su se sjetili kritizirati MapReduce algoritam (i njegovu implementaciju u Googleu), navodeći kako je on suboptimalan za RDBMS stvari.

I fulali ceo fudbal.

Naime, dok su s jedne stvari njihove kritike sasvim točne, s druge strane skroz zaboravljaju da postoje i primjene u kojima relacijske baze nisu najbolji tool for the job.

Connecting to AIM/ICQ with telepathy-gabble

…is possible starting from today, because AOL seems to have implemented official XMPP<->AIM bridge!

I don’t have the link to the official anouncement (if there is any), and got the good news via Florian Jensen’s Weblog. It’s great to see XMPP getting more and more acknowledge as the de-facto standard IM protocol (today already 4 big “networks” use it – Jabber, GTalk, AIM and ICQ).

Of course, Telepathy users have already had the ability to connect to their AIM/ICQ accounts using great telepathy-haze which provides suppor for a host of protocols using Pidgin’s libpurple.

But, for this excercise, we’ll be using telepathy-gabble and the XMPP protocol. You’ll need a recent telepathy-gabble (0.7.2 is fresh from the oven, 0.7.1 should also work) and loudmouth (1.3.3 is the latest, 1.3.2 will probably work too). If you’re using Ubuntu Hardy Heron or Debian Unstable, you may already have the required packages available in your nearby repos.

The reason newer gabble is needed is because AOL XMPP doesn’t do old-style SSL (on port 5223), but TLS is required. Sadly, they don’t seem to have a valid certificate installed, so for now you’ll have to set ignore-ssl-errors flag (or, alternatively, not set require-encryption because it defaults to not ignoring ssl errors). Also, it seems their server are getting quite overloaded (or are still pretty buggy), so it might take several attempts to successfully establish connection. Also, from my experience, AOL really hates it if you try to reconnect too fast, so keep that in mind.

Params for the connection are:

  • server: xmpp.oscar.aol.com
  • port: 5222
  • username: uin@aol.com (or your aim username, presumably)

Now we wait to see what MSN does. (If you don’t want to wait, there’s telepathy-butterfly and pymsn, and, of course, again telepathy-haze :)

Screencastanje pomoću GStreamera – oneliner

Trebao sam ovih dana napraviti neki screencast. Nakon malo traženja na netu, naišao sam na zgodni Istanbul (i nešto manje zgodni Byzanz – dobra stvar je što napravi GIF animaciju screencasta, loša stvar je što se većina viewera ruši na multi-megabajtnim GIF datotekama :), no iz nekog razloga i Istanbul, i izravno grabanje koristeći ffmpeg su mi užasno spori i zauzimaju sav CPU. Vjerojatno zato što koristim open-source ati drivere bez neke akceleracije…

Prije (ponovnog) kretanja u avanturu sa ATIjevim binarnim driverima za Linux u nadi da će se stvar time automagično popraviti, probao sam sa GStreamer onelinerom i primjetio da on troši minimalno resursa i radi sasvim dobro. Nakon malo podešavanja parametara, naišao sam na savršenu kombinaciju, a ovaj blog post je način da si to negdje zapišem (tko zna, možda nekome bude i korisno).

Dakle, za GStreamer ste već vjerojatno čuli da je multimedijska platforma za Linux. No zanimljivo za ovu priču, uz njega dolazi i komandnolinijski alat za kreiranje multimedijskih pipelineova kojem samo navedete potrebne elemente/pluginove/module koji obrađuju zvuk ili sliku, potjerate signal kroz njih, i na kraju dobijete nešto.

Prevedeno u problem screencastanja:

gst-launch-0.10 ximagesrc ! ffmpegcolorspace ! \
video/x-raw-yuv,framerate=3/1 ! theoraenc ! oggmux ! \
filesink location="movie.ogg"

Objašnjenje: ximagesrc graba sliku (fullscreen), ffmpegcolorspace to prebacuje iz RGB u YUV format, meni je za screencast bilo dosta 3 FPS-a (za mojih 1600×1050 na tim jadnim driverima i gstreamer pojede sav proc i nije mu dosta na 25fpsa), potom theoraenc zakodira, oggmux spremi u prikladan format i na kraju filesink zapiše na disk.

Kao što se vidi iz priloženog, u screencastu nisam koristio audio pa je pipeline prilično jednostavan. Može se složiti i da se uzima audio s mikrofona (ili neke mp3ce ili slično) uz dosta kompliciraniji pipeline, ali to mi za ovu priliku nije trebalo.

Outsourceanje jeftinim Indijcima^WHrvatima

Viđeno na TechCrunchu:

Naturally it’s a cost thing. I spoke to one startup CEO last year who hired five programmers in India who had PhD level qualifications for $45,000 a year each, and the company he used to hire these guys came with a long list of US, English and Australian based startups currently using their services. I’ve even heard that some VC’s now look for outsourcing strategies in business plans and even recommend startups go down that path to save money, particularly when they’re starting out.

U prijevodu, dotični startup je prošao vrlo jeftino morajući platiti svakom samo 18,750 kn (prema srednjem tečaju HNB-a na dan pisanja posta) mjesečno. Prava sitnica. Jes’ da se radi o doktorima znanosti, ali vjerujem da ni domaći doktori iz područja računalnih znanosti ne bi bili žalosni sa tim parama…

Stoga evo ideje: pustimo tu prazne priče o nekakvim domaćim web2.0 i web2.5 i web3.0 projektima, lijepo zagrnimo rukave i mlatimo pare, i usput pripomognimo državi imajući izvozni proizvod :-)

Šalu na stranu, isti članak spominje i da je Kevin Rose outsourceao svoj Digg nekom timu programera, te se preporučuje startupima da to rade radi rezanja troškova. Samo ja ne kužim kakve veze to sa startupom ima. To je (skoro pa) tipični posao po narudžbi, imaš naručitelja s idejom i parama, imaš realizatora, i to je to. Po tom principu je i gradnja stanova po Zagrebu prepuna startupova (druga sličnost sa gradnjom stanova u Zagrebu je i da tamo predviđaju bubble :).