Decrypting outgoing IPSec traffic

Sniffing plaintext traffic on IPSec endpoint works for incoming traffic, since it’s already decrypted, but outgoing traffic can not be sniffed in original form but only as ESP packets with encapsulated original. This also means that these packages can’t be sniffed with dst address of real destination, but address of IPSec peer.

You need to get some traffic with tcpdump/Wireshark/tshark/whateva, but when you analye it, you will need Wireshark built with gcrypt support.

So, fire up your favourite pcap compatible sniffer and get outgoing packets by setting dst address filter with address of IPSec peer. While sniffing, get encryption and authentication keys and algos by hitting

ip xfrm state

or

racoonctl show-sa esp

There is also nice perl script written by some anon dude on wireshark mailing list. Script prepares above command output to Wireshark friendly form. Play with it a little. *BEWARE* you IPSec/IKE daemon is probably rekeying every half an hour so you might need to split sniff and analyze separately with different keys.


open(RACOON, "racoonctl show-sa esp|") || die "can't execute racoonctl successfully\n";

$sa = 1;

while (<RACOON>) {

chop();

# look for a line starting with an IP addr… yes, I know there are
# better regexps… but racoon seems to only have one line starting with…
if (/^[0-9]/) {
($ip1, $ip2) = split(/\s+/, $_);
# print the SA #1 line for wireshark
print “SA #$sa:\t\t\tIPv4|$ip1|$ip2|*\n”;
$sa++;
}
if (/^\s*E: aes-cbc/) {
if (!$aes_1) {
# print “AES-1:\t0x”;
print “Encryption Key #1:\t0x”;
($x, $x, $x, $one, $two, $three, $four) = split(/\s+/, $_);
$aes_1 = “$one$two$three$four”;
# print “AES-1: $aes_1\n”;
print “$aes_1\n”;
}
else {
# print “AES-2:\t0x”;
print “Encryption Key #2:\t0x”;
($x, $x, $x, $one, $two, $three, $four) = split(/\s+/, $_);
$aes_2 = “$one$two$three$four”;
# print “AES-2: $aes_2\n”;
print “$aes_2\n”;
}
}

if (/^\s*A: hmac-sha1/) {
if (!$hmac_1) {
# print “HMAC-1:\t0x”;
print “Authentication Key #1:\t0x”;
($x, $x, $x, $one, $two, $three, $four, $five) = split(/\s+/, $_);
$hmac_1 = “$one$two$three$four$five”;
# print “HMAC-1: $hmac_1\n”;
print “$hmac_1\n”;
}
else {
# print “HMAC-2:\t0x”;
print “Authentication Key #2:\t0x”;
($x, $x, $x, $one, $two, $three, $four, $five) = split(/\s+/, $_);
$hmac_2 = “$one$two$three$four$five”;
# print “HMAC-2: $hmac_2\n”;
print “$hmac_2\n”;
}
}

}

Fire up wireshark and open your sniff
Just paste these values into Preferences->Protocols->ESP, enable decryption too and hit apply. Enjoy your plaintext traffic.

Thailand Series: Vodic za balkanca

Kada ici na Thailand?

Najbolje vrijeme za otic na Thailand je od početka studenog do kraja veljace kada je razdoblje hladne klime. U ostatku godine, Thailand nije ugodno mjesto za ljude naviknute na nasu, balkansku klimu zbog ogromne vlage u zraku pa se boravak na otvorenom može pretvoriti u pakleno iskustvo s otežnim disanjem. FYI na tajlandu nema 4 godisnja doba kao kod nas, nego ima hladno, toplo i kisno. Klima je tropska.

Kako otici na Thailand?

Avionom! No shit Sherlock. Svakako izbjegavati Aeroflot, normalna cijena povratne karte po osobi je oko 5k kn, a ako malo zakasnite s bookiranjem, penje se i do 8k ili 10k. Planirajte put barem 6 mjeseci ranije, dogovorite na vrijeme godisnji na poslu (tocne dane) i bookirajte kartu sto prije. Isto vrijedi i za hotele i resorte koji nude popuste (10-15%) ako bookirate sobe ranije.

Kako putovati Thailandom? 

Opet, avionom! Za vrijeme sezone, busevi i vlakovi kasne i po nekoliko sati, a da biste stigli od Bangkoka do, recimo, Ko Phi Phia, trebate kombinirati vlak (s krevetom), pa privatni taxi do busa, pa bus, pa opet privatni taxi do pjera i katamaran/trajekt/brod. Ako vam vlak kasni, necete uloviti dogovoreni prijevoz sto ce rezultirati opcim kaosom i u najboljem slucaju cete izgubiti samo pola dana zasluzenog odmora na plazi. Generalno, vlak je ok sredstvo prijevoza, ima aircon i krevete, cist je i siguran. Ali za sigurnost vlastitog uma i zivaca, vozite se lijepo avionom i kupite karte na vrijeme pa nece ni biti skupe. Air Asia i Bangkok Airlines imaju ok lokalne linije, a vecina popularnih mjesta na moru ili otocima ima zracnu luku. Ako pak zelite ili morate ici zemljanim putevima, imate agenciju  na stanici za vlak u Hua Lampong, Bangkok koji ce vam organizirati lokalno putovanje (karte za vlakove, brodove, buseve, smjestaj… bez provizije).

 Što vidjeti u Bangkoku?

  • Tapkajući po Bangkoku shvatiš da je cijeli grad jedan veliki buvljak. Recimo na Sukhumvit Roadu možeš kupiti dildo, šlape, dres od Barcelone, kopiju viagre u bilo koje doba dana ili noći na uličnim štandovima. Svakako mjesto koje treba posjetiti je Chatuchak Weekend Market, ogromni Hrelić veličine… hm, nemam pojma. Uglavnom, ogroman je. Prodaje se sve, od polovnih knjiga, umjetnina, lažnih Armani satova, kućnih ljubimaca… Market radi samo subotom i nedjeljom i ogromna je guzva.
  • Bangkok obiluje hramovima, a oni koje se svakako isplati pogledati su Wat Phra Kaew i Grand Palace, Wat Arun, Wat Pho i Golden Mount. Kad prelazis Chao Praya rijeku do Wat Arun hrama, nije lose svratiti ni muzeja medicinskog fakulteta gdje je izlozena zanimljiva zbirka konzerviranih sijamskih blizanaca i tijela osakacenih na vrlo zivopisne nacine.
  • Barem jedan zalazak sunca u Bangkoku treba docekati na 8x. katu Baiyoke Sky Hotela gdje se nalazi rotirajuca kupola, lounge itd. Baiyoke je najvisa zgrada u Bangkoku i pogled odande je must see.
  • Vožnja tuktukom od mjesta do mjesta lako pređe u naviku, ne treba ju platiti vise od 150THB, a u suprotnom su vas preveslali. I ovako su vas preveslali, al jebiga. Inace vozaci tuktukova su specijalna gamad, pokusati ce trejdat ultrajeftinu voznju pod uvjetom da vas odbace do svog draguljara ili krojaca. *NE IDITE* tamo jer se necete izvuci bez da kupite moronsko odijelo ili lazno kamenje. Dakle, tuktuk od tocke A do tocke B, nema stajanja. U pravilu ce vas vozac voziti kroz shortcute i ulicice gdje hrpa lokalnih likova nesto utovara, pretovara, odvozi, dovozi i u takvim ulicima obicno bude zastoj u prometu pa drzite vrijedne stvari na vidiku.
  • Sukhumvit Road je poznat po kurvaluku, prosetajte se ulicom i bez problema cete nesto ubosti, s tim da se prvo treba opijati. WARNING: shemale se na Thaiu kaze kathoey/ ladyboy, a ima ih u post-operation i pre-operation stanju. Ko pita ne skita.
  • Day trip do Ayuthaye za sve ljubitelje hramova i povjesnih siteova. Ne znam u kakvom je stanju poslije popave, ali sigurno se ima sto za vidjeti.

Kuda na kupanjac? 

Najbliže Bangkoku nalazi se Hua Hin, nekakav ok resort u kojem nisam bio, a kojeg mi je preporucila frendica iz Singapura, tamo valjda si idu u Hua Hin.Na istocnoj obali, u Tajlandskom zaljevu nalaze se Koh Samui, Koh Pha Ngan i Koh Tao. Na zapadnoj obali, u Andamanskom moru je Koh Phi Phi Don (Beach s DiCaprijem je sniman na Koh Phi Phi Lay, to je otocic krajem), Ko Lanta i Phuket. Bili samo na Phi Phiu i Samuiu i iskreno mi je Samui puno bolje sjeo. Phi Phi je mrtav u 22h, nista ne radi, plaza je lijepa ali nije za kupanje jer je ogradjeni dio preplitak. Samui je puno zivlji, a nije toliko iskomercijaliziran i umjetan kao Phi Phi. Pored je Koh Tao, raj za svakog tko voli ronjenje.

 

How to write nice, pseudo device independent obj-C for iOS

When developing iOS app that works on both iPhone and iPad, there are probably many places where you have to apply different size of image, font, button, whatever… If you insert device discrimination snippets, code becomes dirty and unreadable. What you want is to have as much code as possible to look like there is no any difference whether running on iPad or iPhone. Since macros are resolved even before compile time, but besides @2x and ~ipad image nomenclature, there is no some magical way to decide which size of cell, label, button (…) to use, iPhone one or iPad. You have to do that in runtime using one of built-in calls to iOS API.

Check this ugly example:

#define IMAGE_WIDTH_IPAD 100
#define IMAGE_HEIGHT_IPAD 100
#define IMAGE_WIDTH_IPHONE 80
#define IMAGE_HEIGHT_IPHONE 80
- (void)doSomething
{
  ...
  // if device iPad, use large height and width, if iPhone, use small
  float IMAGE_WIDTH = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) ? IMAGE_WIDTH_IPHONE : IMAGE_WIDTH_IPAD;
  float IMAGE_HEIGHT = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) ? IMAGE_HEIGHT_IPHONE : IMAGE_HEIGHT_IPAD;
  iconView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT)];
  ...
}


Of source, you can put that huge call into another MACRO that evaluates device discrimination, but still, there are two variables that make code fuzzy.
Now, check this example:

#define IMAGE_WIDTH_IPAD 100
#define IMAGE_HEIGHT_IPAD 100
#define IMAGE_WIDTH_IPHONE 80
#define IMAGE_HEIGHT_IPHONE 80
//CRUCIAL
#define DEVICE_IS_IPHONE ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
#define IMAGE_WIDTH (DEVICE_IS_IPHONE ? IMAGE_WIDTH_IPHONE : IMAGE_WIDTH_IPAD)
#define IMAGE_HEIGHT (DEVICE_IS_IPHONE ? IMAGE_HEIGHT_IPHONE : IMAGE_HEIGHT_IPHONE)
- (void)doSomething
{
  ...
  // nice code, if you read it you have no clue which crap is going on behind simple looking macro
  iconView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT)];
  ...
}

There, DEVICE_IS_IPHONE is a macro evaluated before compile time, but actual evaluation of expression is happened at run-time. Therefore, every time you use constant defined this way, call is made determine which device is app running on, if there isn’t too many of them, it’s not a problem. And code is readable :)

T-Com scam series: MaxADSL QoS

Toliko dugo ne živim u Đakovu da se još vrlo malo smatram Đakovčanom. Kako god, svako malo, tipa jednom u dva mjeseca, kapnem doma do svojih, vidjet starce i sestru, par frendova do kojih mi je još stalo itd itd… Enivej, nije se još dogodio takav posjet Đakovu, a da nije uključivao rješavanje problema s MaxTV-om, ADSL-om, ruterima, antenama, laptopima i svim ostalim sranjima za koje moja okolina smatra da sam ekspert i da baš volim tražit drivere za printere, defragmentirat diskove i brisat viruse, a posebno razgovarati s T-Com službom za podršku… sigh… Tu dolazimo i do današnje epizdoe, ali prije toga, mali uvod u problematiku…

Kako živi T-Com?
Tko imalo zna kretanje cijena Internet i IPTV usluga u Rvata, vjerojatno se pitao kako T-Com uspijeva opstati pored Optime, Bneta, BTNeta, Iskona, Metroneta, H1 i inih koje više ne znam niti nabrojati, a svi redom nude usluge po cijena prema kojima T-Com izgleda kao… kao T-Com, valjda nema boljeg primjera. E pa, sva ta sila, nazovimo ih tako, inih operatera nema svoju infrastrukturu u svim malim vukojebinama i bespućima Lijepe Naše, nego je T-Com još uvijek tata-mata i nema druge alternative nego se lijepo naguzit, duboko udahnit i platit da “Živimo zajedno”. Eto, valjda tako živi T-Com.

Srž problema
To nas dovodi i do problema naše priče. Stari je bio isfrustriran malim brojema kanala na telki, meni dopizdilo svaki put kad dodjem doma hakiravat susjedov wlan ili wireless udrugu da bi pročitao mailove (nije tad još bilo ajfona) i stari doneo povijesnu odluku da ubodu 3u1 u T-Comu. Bilo to sve divno i krasno mjesec dva dana, telka malo štekala, smrzlo bi se tu i tamo, ali jebiga, tehnologija u nastanku, ovo ono. Bili T-Comovi inženjeri (LMFAO), mijenjali rutere, mjerkali ovo, mjerkali ono, pa sve kao u redu, al niš ne valja. Stari im jebao rodbinu ne do sedmog koljena nego do sedmog stoljeca pa kao pocela telka radit bez smrzavanja. Internet kako tako, ali eto… Prošla ljeta i zime, vukla se nekako sva ta tehnologija, malo naprijed, malo nazad.

Brezobrazluk
Zadnjih nekoliko puta kako sam bio doma, bio mi nekako Internet sporiji, al mi se nije dalo još i s tim zajebavat, ionako dođem na dan, dva, proletim ko vihor i uteknem nazad u Metropolu. Silom prilike, tjedan dana sam doma. Link zakucan na 150 KB, nekako mi smrdi sve da ću opet nazvat 0800 9000. Tako i bi, zovem ja sad, javi se lik, kažem mu link mi je zakucan na 150 KB, šta se događa… pokušava on samnom debagirat WLAN ovo ono, kao možda sam daleko, možda ovo možda ono… Nekako mu uspijevam objasnit da dobro znam kako mi mreža doma izgleda i da nema s njom problema, ide on probat izmjerit brzinu linka. Kaže, izmjerio je 5Mbita na parici što nije dosta za MaxTV i ADSL na 4Mbita… Pa naravno da nije, pas vam mater T-Comovsku.

Vrhunac
Uglavnom, ustanovili smo da su T-Comovi inženjeri limitirali MaxADSL link na 1Mbit (4Mbit flat je ono što plaćamo), kako se ne bi pojavljivali problemi na MaxTV-u, kojem treba isto 4Mbita. Jednostavno matematikom, ako imas 5 jabuka, a trebas 8, imas problem. Evidentno je to da T-Com mjesecima naplaćuje uslugu koju nije u stanju isporučiti (i to su znali i prešutno postavili limit na MaxADSL). Tip s kojim sam razgovarao mi je rekao da je prijavio kvar te da mogu poslati pismeni zahtjev da nam smanje iznos mjesečne pretplate. I šta sad, nije meni krivo što, jebiga, ne valja parica, ne skida se nešto ovako brzo ili onako brzo, nego što netko od lopova nije nazvao i rekao “gle, ne može internet onako baš brzo kako mi kažemo da može, nego malo sporije, aj ak oćeš pa ti smanjimo pretplatu” i svima srce na mjestu. Ovo smatram prijevarom najpodlijeg oblika. Zadnje što želim je moliti ih da mi smanje pretplatu, ionako istječe uskoro 2 godine ugovora pa zbogom T-Come, jednom za svagda, želim ti dugu starost i tešku bolest.

iOS app ratings

Partially inspired by this great article.

AppStore rating system isn’t something developers like, generally. There are several problems which I found myself:

1. Developer will not receive any notification about new rating/review. There is no problem if all ratings are 5-star, but let’s be more reallistic… Bad ratings are omnipresent and usually tackle a problem with your application. In some cases, bad ratings are actually feature requests rather than bug reports. So, if developer doesn’t often check ratings, someone can report a bug that stays untouched until dev sees it. AppStore rating/review maybe wants to be both, but it actually isn’t any of it.

2. Developer can’t reply to a rating. If someone writes a review telling “I want (imagine some feature) in this app”, you can’t tell him that you are working on it and it will be there in next update. You can just hope that this user will keep this app and download your next update.

3. Bad ratings. Every rated app will receive at least one bad rating. This is not something Apple should bother with, but no one wants a bad rating to make new shiny app unpopular.

How to tackle all 3in1? Make in-app links (buttons, whateva…) to redirect happy user to rate app on the AppStore and unsatisfied user to send you an email. So, you removed a bad rating from AppStore, you got notified about something bad in you app instantly and you know who sent you email and you can respond directly to unsatisfied user. Awesome!

Instrusive or not? I really hate those pop-ups asking me to rate app. I don’t want to bother a user who is using my app to rate it when he wants to use the app. So, I still use Appirater, which I found to be one of greatest open source frameworks for iOS SDK, but I just don’t make a callbacks to Appirater. What I do is using Appirater config and method to open AppStore url, but when user wants to rate, e.g. tapping a button.

Xcode4.0.x and source control

I can remember my early days of colleague when students were gathered into a small teams working on a week-projects. We all know these Node_FinalVersionThisIsReallyFinalOkNowItsFinalFixedv47.cpp files shared via e-mail and how confusing all this could get. Along with computer-aided software development in general, source control software evolved from crappy CVS to GIT and others which got so nicely integrated into IDEs (Eclipse Team) and file managers so people started to use it not just for software versioning but versioning and sharing of any files.

Since I discovered beautys of SVN in my early days, I use personal repository to store some small projects source code, bunch of simple bash and perl scripts, old code that I may reuse sometimes, random files I need very often (like CV), artwork… It may be an overuse, but this suites my needs and I don’t have any issues with current setup for couple of years. Few times I considered moving to GIT, but eventually gave up as I didn’t have real need to make a step into it. And because of laziness too…

Anyway, lately I’m using Xcode on daily basis for iPhone development. Xcode has few diseases but in bottom line, it’s one fine IDE, comparable to Eclipse/STS I use daily too. What I really can’t understand is why Xcode can be so awesome and still suck at one of basic features that any IDE must have. Several times I tried to setup repositories in Organizer to handle my code, ending shit-pissed off and confused with such idiotic design and implementation of such a simple (ok, it’s not so simple, but anyway…) feature. Still today, I’m using Terminal commands to commit/update code and really hope that in some of future realeses, Xcode would do VCS better…

P.S. Xcode now hangs with “Checking source control status” message… blegh

Updating iPhone from VirtualBox machine

If you run some soft of Linux and you have iPhone which you sync in virtual machine in VirtualBox, you may run into problems when updating iPhone firmware…
When iPhone gets into recovery mode, usb can’t be attached to virtual machine in VirtualBox…

Finally, I found out that you have to run VirtualBox as root!

Setting up Subversion server with SSH login and mail notifications on FreeBSD

I combined few tutorial I found on interwebs to set this up and don’t wanna loose it, so I puttin it here…

Make sure you have installed OpenSSH server and Subversion packages.

First, create user “svnadm” for admin and group “svnusers”.
Then add svnadm to svnusers group.

pw usermod svnadm -G svnusers

All users that are supposed to use svn should have umask 002 in .cshrc or .bashrc. That prevents destroying group write permissions during SSH session.

Make directory where you want to store your repos, let’s say /usr/local/svnrepos

mkdir /usr/local/svnrepos

Next, we will restrict access to this area only for root and svn users:

chown -R root:svnusers /usr/local/svnrepos
chmod -R u+wrx,g+wrx,o-wrx /usr/local/svnrepos

Then, rename svnserve binary to svnserve.bin and create svnserve script wrapper and make it executable:

########### svnserve #######
#!/bin/sh

exec /usr/local/bin/svnserve.bin -r /path/to/repos/root “$@”
############################

After that, su to svnadm user and create repo, named, let’s say, studsvn.

su – svnadm
svnadmin create /usr/local/svnrepos/studsvn
chmod -R o-rwx /usr/local/svnrepos/studsvn

Configure repository

cd /usr/local/svnrepos/studsvn/conf

edit svnserve.conf and make it look like this (just uncomment stuff):
[general]

anon-access = none
auth-access = write

Test your connection like this:

svn list svn+ssh://<user-id>@<host>/studsvn

If it doesn’t work, you probably screwed some permissions, so make sure that your users are in svnusers group, that they have umask 002 in their default shel
l’s rc file and svn repo has recursive g+rwx.

After that, you may want to have mail notifications for your commits like perforce has.

You need mailer.py script, so you either install svnmailer package, or compile from ports (mail/svnmailer).

After that, you will be able to use mailer.py. Sort of. First, copy it from
/usr/local/share/subversion/hook-scripts/mailer/mailer.py to /usr/local/bin or create symlink.

Then, get to /usr/local/svnrepos/studsvn/hooks and copy post-commit.tmpl to post-commit, make it executable and then edit it.

You will also need mailer.conf, so copy it from /usr/local/share/subversion/hook-scripts/mailer/tests/mailer.conf to your <repository_path>/hooks (seems best
to me) and edit it to suit your needs. You also need smtp server which will allow relaying. Do it yourself. Be sure to edit from_addr, to_addr and reply_to
in mailer.conf.

Enjoy massive distribute spam attack.

Londonske avanture i DevSummit&EuroBSDCon@Cambridge

Dojmovi iz Japana jedva da su se slegli,  a ja sam opet negdje na 10000 m. Ovaj put u drugu stranu, gdje se sat pomice unatrag kad sletis. Enivej, na faksu koji je poceo gotovo odmah po povratku iz Japana, sam uspio biti prvi tjedan. I to ne sasvim jer sam pola predavanja ili prespavao ili je bilo toliko dosadno da sam otisao ispijat kavu i citat mailove. Odlucio i upisat Objektno Oblikovanje kod Zvone Radikalnog umjesto neceg sto sam upikao jer nije bilo niceg drugog, a nesto sam morao. Cini se Zvone OK. Tjedan proletio, ja zbrisao doma pobrat harac i posteno se zacugat (2x) prije neg opet odem.  U nedjelju stigao u Velo Misto i odjurio pogledat neki stan blizu FER-a, pa se cini da ce po povratku u domovinu past i selidba. O tom u nekom drugom postu.

Jos dok sam bio u Tokiu, doletio mail od mentora najboljeg na svijetu, a u mailu se spominje London/Cambridge, EuroBSDCon i FreeBSD DevSummit. Naravno, pristao, a osim toga ubo i par dana o svom trosku u Londri. Da stvar bude jos bolja, skontao da su u isto vrijeme u Londonu i Ivana&Ivana. Dok sam pristajao na put i bookirao hostel, to nisam znao pa mi bilo kiselo zamisljat kak cu to sve sam i kak ce mi bit dosadno, pa mi pao kamen sa srca kad sam skontao da cu se imat s kim druzit. Jos mi bolje bilo kad se javila Ana i rekla da i ona ide na DevSummit. Uglavnom, rano u ponedjeljak ujutro stigao na Pleso, smrknuo kavu i nakon dva sata blejanja u tepih od oblaka i neku knjigu o japanskom koju sam sfurao stizem na Gatwick Airport. Engleski travnati krajolici izgledaju predobro iz pticje perspektive. Na Gatwicku kupio adapter za UKplug (5.5 faking funti, ako netko ide, nek me pita da mu posudim) i kartu za Southern Express vlak do London Victorie i zbrisao.

Vidio nes predobro sto kod nas totalno nije moguce, cak ni kad bi imali dvije zeljeznicke kompanije. Dvoje glupih Spanjolaca kupilo karte za Gatwick Express i sjelo u Southern Express. Kondukter dosao i pun razumijevanja za strane drzavljane objasnio im da mogu izac i vratit se na Gatwick pa se ukrcat na Gatwick Express ili kupit kartu za Southern pa trazit povrat love od karte za Gatwick Express kad stignu na Victoriu (radi se o odvojenim kompanijama i ne mogu prihvacati karte jedna od druge). Nakon četiri godine frekventnog putovanja s HŽ-om, imam razloga pretpostavit da bi prosjecni hrvatski kondukter ponudio 20% jeftiniju “kartu” da nitko ne vidi dok on stavlja lovu u džep, a o povratu love za drugu kartu ne treba uopce razmisljati.

Oko podne dogmizao do Astor Victoria hostela, ugodnog mladenacki raspolozenog mjestasca na Belgrave Roadu. Zakljucao prtljagu i krenuo istrazivat. U međuvremenu poslao SMS Ivani&Ivani. Primjetio masu Indijaca, Kineza, Japsa, raznih muslimana, crnaca, cak i Palestinca jednog. Skroz suprotnost od Tokia i totalno kewl kad na ulici mozes cut toliko jezika i vidit toliko boja i stilova odjevanja. Nasli se na Piccadillyu i glupirali se neko neodređeno vrijeme. Onda kasnije isli na koncert David Graya gdje sam u biti saznao tko je David Gray. Poslije koncerta bio mrtav pa se odmah po zavrsetku teleportirao natrag  hostel. Bio u cetvretokrevetnoj sobi na petom katu (vidi se Big Ben) s nekim likom iz Portugala. Kasnije bio i neki par iz JAR-a, ali sam njih vise-manje prespavao. Iduci dan odradili sav onaj sightseeing stuff, British Museum, London Eye, Big Ben… Bili i u tajlandskom koji je u biti zapadizirana verzija azijske kuhinje u kojoj fale zacini. Bilo dobro enivej. Navecer se druzili s Pericom i nekom curom iz Argentine koja pije ultrazakon caj. Dala mi da probam, navuko se i nastavio se natakat iako me upozoravala da bi mogao dobit ljevpro. Nisam dobio ljevpro;) Dan poslije odradio jos malo sightseeing, ukljucujci British Library i History of Medicine Museum. Navecer se nasao s Anom i Markom na King’s Crossu i krenuli put Cambridga. Prije puta kupio Ethernet kabel, 2 metra. Opet 5.5 funti. Pas mater i London.

Predobro je i to sto kad ides na put koji placa netko drugi, ne ides od stanice od sobe pjeske nego taxijem. Prvu noc spavali u Selwyn Colleagueu, vrlo ugodnom mjestu koje po noci izgleda kao nekakva Harry Potter style skola, ali u biti je bolje od svih mjesta u kojima sam spavao u Engleskoj. Doruckovali Full English Breakfast, jaja, slanina, kobasice… Ostale noci spavali u Robinson Col., gdje mi sobe nisu bile bas tako kewl, ali definitivno nelose. Prva dva dana na DevSummitu vidio prezakon likova, ukljucujuci PhD ekipu cije knjige imam doma pa do autora vrlo bitnih RFC-a (ako ne znas sta je RFC, nemoj googlat, nema veze). Zabava se nastavila i na EuroBSDConu, vidio stvarno dobrih predavanja, dobio masu novih ideja… Ana bila vrlo ugodno drustvo, ne znam kak bi izdrzao sve te likove sam:). Vecerali prvu vecer u indijskom (chilli, be careful :-) , drugu u japanskom (u kojem u biti rade Kinezi), trecu imali veceru u Clare Colleague (ne znaci da nije dobro ako nije egzoticno) i kasnije zavrsili u baru, a cetvrtu jeo cips i mars delight. Do japanskog restorana smo se vozili camcima (famozni punting, nije rijetkost da netko i zapliva :-) cija stabilnost ne ulijeva mnogo povjerenja, pogotovo kad se lik od stotinjak kila s praznom bocom skupog vina ljulja lijevo-desno i bas mu je zabavno. Cambridge sam po sebi izgleda vrlo oldstyle, sa svim onim kewl zgradama, kapelicama, no mozda ipak malo preakademski za moj ukus. Malo nocnog zivota ne bi skodilo.

Zadnje jutro, odradio shopping u Cambridgu, klisnuo na vlak do King’s Crossa u Londonu i spiskao ostatak love na Oxford Streetu. Skupio prtljagu i predvecer stigao na Heathrow. Zadnje sitnise uvalio u zamjenu za duty-free Lindt i Toblerone. Kraj mene u avionu sjedio neki Japanac pa ga udavio. Vratio se u domovinu oko 23h po lokalnom vremenu.

Japan Series: Onsen, Okinawa bar i let doma

Posljednja dva radna dana odradili prilicno laganim tempom. U nedjelju stigao i Yang iz Taiwana, skroz smjesan lik od nekih 40-ak godina, orijentiran na kurve i tjedno uređivanje frizure svog psa. Jesam vec rekao da su Azijati bizarni?

“… Osmi dan, shvati Bog da je O.K., ali da moze bolje. I tad, stvori onsen, umoci dupe unutra i zaboravi na svijet. I tako bi do dana danasnjega. Kadgod netko napusti svijet, pridruzi se Bogu u onsenu, kojeg ljudi nazvase raj.”

Enivej, kraj rada na drvenoj kucici obiljezili tako da nas je Kazuko-san odvela u onsen. Onsen sam po sebi zasluzuje poseban post, ali meni se ne da. Uglavnom, radi se o prirodnim izvorima ljekovite vode od koje su Japanci napravili odmaralista za duh i tijelo. Ima ih u cijelom Japanu, a kako se radi o dobrom biznisu, u zadnje vrijeme se kopaju i umjetni onseni. Voda je ista, pa kog briga jel izasla sama na povrsinu ili su joj malo pomogli. Onsen u kojem smo mi bili se zove King of Bath, a ima 16 razlicitih kupelji, dvije saune, totalno opremljeno predvorje sa ogromnim stolicama koje masiraju svaki dio tijela (ovo se posebno placa)… Postoje i mjesani, ali onseni uglavnom imaju poseban dio za zene, poseban za muske jerbo se unutra hoda gol, ono ko od majke rođen. Bitno je naglasit da ljudi s tetovazama nisu dobrodosli, jer su u Japanu tetovirani uglavnom Yakuze, a s njima ne treba imat posla. Temperatura u bazencicima je prilicno visoka, al se u toj vodi tijelo tako opusti da je to nevjerojatno. Osim bazencica imaju i mramorne fotelje u koje sjednes, a vrela vodi klizi ledjima, rukama… Mene najvise dojmile plitke kade u koje legnes na ledja, pola tijela je u vreloj vodi, a pola vani. Taj, kao i jos nekih je u dijelu koji je vani u vrtu. Mi smo bili navecer, pa je dozivljaj predobar. Lezis u vreloj vodi do pola, nije ti ni prehladno ni pretoplo, glava ti je natkrivena, a pada i lagana kisa po prednjem dijelu nogu koji nije u vodi (ovo je dio koji nije feature onsena, pa javna zahvala Zoranu Molekuli i njegovim carobnim mocima), a vidis i zvijezde. Ukratko, selim se u Japan cim prije.

U srijedu uzeli dan off i odlucili spiskat ostatak para i pokupovat suvenire. Uzeli bicikle i pravac Tachikawa. Besciljno cruisali i trosili… Na kraju dana, Kazuko-san nas odvela u dvoranu da gledamo kendo trening. Kendo sensei ima oko 80 godina, a treniraju i njegova zena i sin. Zenski dio populacije bio vidno odusevljen prisustvom zapadnjaka, a drugi sensei koji prica engleski nam objasnio osnove kendoa i dao nam shinoi (mac od bambusa) da malo probamo. Totalno japansko iskustvo. Obecali mu da cemo doc sljedece ljeto jer sutra idemo doma i nastavili do Okinawa bara gdje nas ceka ostatak ekipe, Hiro i Kazuko, Saigusa, Yang, Sarah i Joel.

Kako i Sarah/Ling ide doma u cetvrtak, njena zelja za oprostajku je bio Okinawa bar. Uglavnom, Okinawa je otok prilicno udaljen od Japana, cak blize Kini, ali i dalje dio Japana. Zbog kineskog utjecaja ima prilicno karakteristicnu glazbu i obicaje. Jedan tip odande zivi sa curom 5 min od Kazuko i tamo kuha Okinawa hranu i svira shamisen, tradicionalni instrument sa tri zice (pogledat video1 2 3 4 5..) U Okinawi jedu svinjske nogice pa morali i to probat, kao i  jos hrpu raznih jela. I pili kojesta, sake, pivu, vino od rize, jos neku cugu kojoj ne znam imena… Krenulo se i pjevat i svirat, pa se cak i dogodilo u jednom trenutku da Branko i ja iz sveg glasa pjevamo himnu, rvacku pravu. Nisam siguran da postoji video toga, ali ako ga ikad dobijem, nikom ga necu pokazat. Dosli doma, napisali jedni drugima vrlo dirljiva pisamca i posakrivali ih po raznim mjestima…

U cetvrtak, probudili se u 5 ujutro po Tokyo vremenu, potukli ostatak cornflakesa, bacili tus i nasli se s Ling pred kucom. Izasli i Hiro, Kazuko i Saegussa pozdravit se. Kazuko nas odbacila do Hino Stationa i Branko, Ling i ja napustili Hino. Na Narita Terminal 2 se rastali s Ling, ona put Hong Konga na nastavak turneje, a Branko i ja na Terminal 1, pa Pariz i na kraju Zagreb. Na Nariti svratili u McDonalds na hamburgere s okusom rastanka. Zadnje papirnate yene podrobili na novo upotpunjenje kucnih biblioteka. Nakon 12 sati u Boeingu 777, koji je malko skuceniji od Airbusa s kojim smo dosli, stizemo na Charles De Gaulle u ponoc po Tokyo,  a 17 poslijepodne po pariskom vremenu. Malo svrljali po trgovinama, ukrcali se na novi avion i sretno stigli u Zagreb oko 21:30.

All in all, pricat da je bilo jednostavno otic u Japan na mjesec dana je prilicna bajka, pocevsi od duljine leta, klime, hrane… Al se isplati :) I’ll be back Tokyo, Kyo no hiva sayonara, mata ne :)

WordPress Themes