Tuesday 30 October 2012

Pröngissä tapahtui jänniä

Heitin vajaan vuoden ikäisen koodin, jota työstin puoli vuotta, pois ja korvasin sen koodilla jota on työstetty noinsuunnilleen kaksi viikonloppua. Seuraavaksi pitäisi lätkiä samalle pohjalle pieni bugtracker, mutta sitä odotellessa tämä posti toimii bugiraporttien keräämisessä hyvin.

Laajempi teksti Pröngistä tullee tällä viikolla, nyt voisin siirtyä tutimaan.

Sunday 14 October 2012

Muutama sana Pröngistä

800-luvun Englanti

Väitänpä villillä arvauksella, että kukaan yoolblogin lukija ei ole perehtynyt Bernard Cornwellin Saxon Stories - kirjoihin. Kerran Coolbasic-laudalla joku kehui kirjoja, mutta en tiedä tuleeko sieltä kuinka paljon lukijaliikennettä. Oikeassa elämässä tuntemani ihmiset ovat vain katsoneet hassusti aina kun olen hehkuttanut kyseisiä kirjoja. Eivät yhtä hassusti kuin hehkuttaessani Emacsia, mutta hassusti kuitenkin, etenkin Tässi. Muistan toki aina katsoa häntä hassusti hänen hehkuttaessaan sitä kirjailijaa, jonka nimi ei tule mieleen pitkän yön jälkeen. Hassusti katsomisen jälkeen sitten käsken häntä lainaamaan kyseisen kaverin tuotoksia minulle, jos vaikka ehtisin aloittaa uusia kirjoja ennen vuotta 2015.

Niin, Cornwellin kirjoista olin kertomassa. Kirjat kertovat alaotsikonmukaisen maan luonnista otsikonmukaiseen aikaan. Alkutilanteessa Britannia koostuu skottivaltakunnista, walesilaista valtakunnista, sekä anglosaksien valtakunnista: Northumbriasta, Merciasta, Itä-Angliasta ja Wessexistä. Tarinain päähenkilö, Uhtred, on northumbrialaisen linnanherran poika. Uhtred joutuu kuitenkin tuuliajolle kotoaan tanskalaisten tullessa. Isänsä kuolee taistelussa heitä vastaan, ja setänsä haluaa tappaa Uhtredin, jottei tämä voi viedä häneltä suvun linnaa.

Uhtred kuitenkin kasvaa suhteellisen turvallisesssa ympäristössä tanskalaisten parissa. Elämä on iloista. Tanskalaiset kaatavat englantilaisista kunigaskunnista kaikki paitsi Wessexin. Länsisaksit pistävät vastaan, aluksi koska tanskalaiset ovat varomattomia, myöhemmin koska engelsmannit oppivat käyttämään miekkaa. Ikävä kyllä Uhtredin tanskalaisen perheen viholliset tappavat heidät. Uhtred, joka on kasvanut miltei-parikymppiseksi miehenaluksi ja melko tanskalaiseksi, joutuu pakenemaan Wessexiin, koska muut tanskalaiset eivät katso saksinulikkaa kovin hyvällä. Sitten tarina vasta alkaa...

Uhtredista kasvaa englantilaisten terävin miekka. Opittuaan pitämään huolta itsestään hän haluaisi palata tanskalaisten pariin, kostamaan kasvattiperheensä, tappamaan setänsä, ja viettämään hyvää elämää kasvattiperheen taposta selvinneen ystävänsä kanssa. Valitettavasti höntti vannoi Wessexin kuninkaalle, Alfredille, valan. Valoja arvostetaan, sillä ne ovat ainoita asioita, joihin kaoottisessa, muuttuvassa maailmassa, voi luottaa. Jos herralleen vannotun valan rikkoo, ei todennäköisesti kukaan pidä valanrikkojalle vannottua valaa. Uhtred siis haluaa tanskalaisten pariin, mutta universumi potkii häntä päähän, ja aina kun hän tarinassa pääsee pohjoiselle kotiseudulleen, jokin epäonninen tapahtuma pakottaa hänet takaisin etelään.

Minun on helppo samaistua häneen.

Taitajuus

Worldskills-karsintojen web-designin karsintojen ohjelma julkistettiin tällä viikolla. En tiedä laitettiinko sitä laisinkaan julkiseen internetiin, mutta kilpailijoille tuli sähköpostilla yllättävä tieto että "Kannattaa osata kuun lopussa käyttää PHP:tä, XMLää, HTML5:ttä ja CSS:ää!". Kuulostaa hyvältä, muuta ei keskivertonettisivun tekoon tarvitse. XML tosin sattuu aivoon, koska sille on vaihtoehtoja, jotka eivät tunnu samalta kuin jääpuikko poikittain silmässä, mutta ei voi mitään. Sille on kirjastoja, jotka yrittävät lievittää tätä kipua. HTML5 on muutaman vuoden ikäinen muotisana, mutta sen alla olevat jutut ovat oikeasti kivoja. CSS on yleissivistystä. PHP taas... on tämän illan tekstin aihe.

Minulla on historiaa kyseisen kielen kanssa. Historia alkoi siitä kun 2010, muistaakseni, pohdin että mites Yooliin saisi saman taustasivun sisällytettyä jokaiselle sivulle, jolloin esim. taustakuvaa ei tarvinnut joka sivulle käsin muuttaa. Siihen riitti muutos yhteen tiedostoon. Yool oli ja meni, ja sitten tuli Pröng. Pröng oli alunalkaen aito bisnes-sovellus, jonka tehtävä oli tallentaa ja esittää dataa. Helppoa teoriassa, mutta käytännössä tähänastiset Pröngit ovat olleet koodin tasolla kamalia. Myönnän että tähän saattaa vaikuttaa se, että ohjelmistokehityksen kultaiset kirjoittamattomat säännöt eivät olleet minulla hallussa vielä pari vuotta sitten, mutta tekemällä olen oppinut. Osan vastuusta kuitenkin jakaa PHP, joka on kielenä on... eriskummallinen, mahtava, kamala ja loistava. Eniten kielessä ärsyttää tulkinta dynaamisista tietotyypeistä. Muuttuja voi sisältää MITÄ TAHANSA ja tulkki saattaa yllättäen, täysin varoittamatta muuttaa primitiivimuuttujan tyyppiä lennossa. Onneksi tilanteita joissa näin käy ei ole paljon, joten ne on helppo oppia.

Oliomalli on myös häiritsevä, mutta se johtuu Java-juuristani. Muutamankin kerran olen yrittänyt tehdä vahvasti tyypitettyä kokoelmaa, johon olen laittanut tietystä luokasta perittyjen luokkien olioita, ja lopulta olen herännyt ajattelemaan että hittoakohan olen taas tekemässä. Ehkä seikkailuni Common Lispin ja Clojuren kanssa helpottavat PHP:n kanssa työskentelyä, ehkä eivät.

Joka tapauksessa, olin keväällä, Taitajien jälkeen, niin täynnä PHP:tä, että vannoin etten halua enää ikinä kuulla koko kielestä. Pröngien koodit olivat olleet naurettavia, taitajista oli tullut php-hommista heikosti pisteitä, ja olin lopultakin tutustunut serverijavaan, joka tuntui tekevän serverikoodista taas hauskaa. Hienosti olin kuitenkin unohtanut että taitajien pisteet jaettiin enemmän ulkoasun kuin koodin perusteella, ja serverijava ei ole hopealuoti: se tuo mukanaan paljon omia haasteitaan, kuten ylenpalttinen XML:llä leikkiminen, sekä hitonkokoiset frameworkit. Nyt lausun jotain, joka kuulostaa samalta kuin Hynynen ja runokirjat: jos joskus en osaa kirjoittaa nettisivua ilman frameworkkejä, olen liian vanha nettisivujen tekemiseen.

En halunnut kohdata PHP:tä enää ikinä, mutta tässä minä taas olen. Lähdössä mittelemään taitojani PHP:llä. Tämä toivottavasti selittää edellisen otsikon viimeisen kappaleen. Uhtred halusi juhlimaan tanskalaisten kanssa, mutta universumi piti hänet Wessexissä, kristittyjen seurassa. Hän ei pitänyt tästä. En tykkää minäkään! Ellen sitten tykkää, en tiedä.

PHP:ssa on nimittäin muutama aivan loistava ominaisuus. Esimerkiksi seuraava PHP-koodi on aivan validi:

;pdo

>?php function HelloWorld() { Echo "Hello world!"; } $funktio = "HelloWorld"; $funktio(); ?<

Kokeilin äsken myös "HelloWorld"(); - kutsua, joka sentään tuotti errorin. Silti, yrittäkäpä C#ssä tai Javassa kutsua scopen sisällä olevaa funktiota merkkijonon perusteella. Arvaanpa ettei tule onnistumaan ilman ainakin kymmenen rivin reflektio-noitumista. :)

Okei, avasin Visual Studion ja kokeilin toteuttaa sitä C#:llä. Tässä toimiva tulos:

static void Main(string[] args) { Type type = typeof(Program); var Methodinfo = type.GetMethod("HelloWorld"); Methodinfo.Invoke(null, new object[]{}); } public static void HelloWorld() { Console.WriteLine("Hello world!"); Console.ReadLine(); }

Tuosta saisi itse asiassa helposti yksirivisen ohjelman (+ HelloWorld-funktion määritys), kun PHP vaatii funktiomäärityksen lisäksi vähintään kaksi riviä, mutta staattiset tyypit ja reflektointi tuovat silti mukanaan oman painonsa.

PHP:n tietokantakerros, PDO, on myös mukavin tietokantarajapinta, jota olen käyttänyt. Voittaa JDBC-toteutukset ja .NETin suoran SQL:n API:t joka päivä. Ikävä kyllä, kun peliin tuodaan ORMit tai työpaikkani sisäiset C#- ja Java-mapperit, PDO ei olekaan enää kiva. Kunhan ehdin, täytynee toteuttaa vastaava PHP:lle. Sen luulisi jopa olevan kivaa, koska ei tarvitse riidellä tyyppijärjestelmän kanssa. Siitä kuitenkin pian lisää...

Huomaan itsessäni pingpong-pallo - syndrooman. En tiedä johtuuko se Lisp-seikkailuista, vai vain yleisesti siitä että kieliä, joita katson tuntevani, on yli kaksi, mutta tämän tekstin voisi tiivistää näin: "Minä haluan 800-luvun englantiin! Lukeminen on kivaa! XML on perseestä! XML on kyllä kivaa. Lispii! PHP on perseestä! Java on kivaa! PHP on kivaa! Java on perseestä! Lispii! C#stä ei kyllä ole mihinkään! C# on kivaa! Lispi on muuten mukavaa!". Puhumattakaan siitä miten rönsyilevää tämäkin teksti on ollut...

Pröng

Miten tämä kaikki liittyy Pröngiin, jolla tämän tekstin kuitenkin - toivottavasti - otsikoin? Läheisesti. Olen kesästä saakka hokenut, kuinka aion kirjoittaa sen uusiksi Javalla, kunhan MEsE/yool-messenger on saatu pois alta. MEsE on yhä työn alla, joten Pröng pyörii koodilla, jonka julistin jo huhtikuussa olevan perseestä. Samoihin aikoihin, ensimmäisten plussakelien aikaan, työstin PHP:llä uuden pohjan, jota pystyi jo oikeasti sanomaan kauniiksi. Se ei ollut perinteistä PHP-sillisalaattia, vaan siinä seurattiin hyviä käytäntöjä, joita tällä kertaa pystyn jopa esittelemään. Näkymät rakentuvat kuten JSP: näkymien ainoa logiikka koostuu controllerin täyttämän taulukon täyttämisestä, sekä tämän taulukon perusteella HTML:n tulostamisesta. Controller taas toimii, noh, niinkuin MVC:ssä yleensä. Se omaa bisneslogiikan, jolla se sitoo tietokannan ja näkymät yhteen. Tiivistäen controllerit toimivat kuin servletit javamaassa. Ainoa jota en siihen pohjaan saanut aikaiseksi oli malli-abstraktio. Mikään PHP:lle valmiinaollut ORM ei vaikuttanut siltä, että jaksaisi opiskella, ja oman tekemiseen ei kärsivällisyys silloin riittänyt. Nyt, kuitenkin, kun olen vähän työssä tutkinut miltä ORM, jollaisen haluan, näyttää, pystyn sen miltei porttaamaan valmiista javakoodista.

Voisin ensi viikon viettää world-skills karsintoihin harjoitellen. Viikolla kun työstän PHP-mapperin ruokatunteina, tai hätätapauksessa abstraktoin suoraa PDO:ta, jonka myöhemmin korvaan asianmukaisella mapperilla, ja viikonloppuna teen ensin pohjat uudelle Pröngille (eli luonnosten syöttö- ja hakuAPI:t, sekä käyttäjäapin), sitten sivun, joka generoi XML:ää luonnoksista. Sen jälkeen on vuorossa sivuston tekeminen, ja jos hyvin käy, meillä on ensi viikolla uusi Pröng olemassa. Jos minulla ei ole ensi viikolla näytettäviä tuloksia tästä projektista, tiedätte ettei kisa tule menemään hyvin. Jos on, kaikki, sekä Pröngin käyttäjät (siis Tässi) ja kehittäjä (minä :P), voittavat. Toivottakaa onnea projektille!

Sitäpaitsi, loppuun haluan vielä sanoa nykyisen Pröngin laudan olevan kaikkein eniten pielessä ko. koodissa. Lupasin heittää phpBB3:n tai javafoorumin seuraavaan Pröng-iteraatioon, mutta nyt olen tullut ajatelleeksi yhtä asiaa. Luonnoksia, jotka tagaa "Keskustelu" - tagilla, voi pitää keskustelujen otsikkoina, ja niihin tulevia kommentteja viesteinä. Eikö? :)

Saturday 6 October 2012

Pohdintaa junamatkalta



Tyylisuuntia oikealla ja vasemmalla

Olin joskus koulussa. Siellä oli muuan kurssi, jossa tarkasteltiin suomalaista kulttuuria ja taidetta, ja se oli ilmeisesti pakollinen kaikille suomalaisille, alaikäisille toisen asteen opiskelijoille. Kurssi oli mielenkiintoinen, vaikka sen läpikotainen osaaminen ei ilmeisesti ollut aivan täysin vaadittavaa datanoideille. Kyseessä oli kuitenkin mukavan yleissivistävä kurssi, juuri sillee sopivan lukiomainen, ettei kukaan yleissivistystä pelkäävä, itseäänkunnioittava ammattikoululainen pitänyt siitä.

Kurssilla opimme monia, hienoja sivistyssanoja. Oli romantiikkaa, oli funktionaalisuutta, ja mikä tärkeintä: oli realismia. Tässä vaiheessa on hyvä huomauttaa mahdollisesti samalla kurssilla mukanaolleille lukijoille, että en oikeasti muista puoliakaan siitä mistä kurssilla puhuttiin; vedin nuo käsitteet hihasta. Joka tapauksessa, realismi jäi kurssilta päälimmäisenä mieleen, koska opettaja naurahti kun ilmoitin että minä en tykkää realismista - ainakaan maalaustaiteessa, josta silloin puhuttiin. Myöhemmin, kun saman kurssin vuoksi kävin ensimmäisen (muistaakseni), ainoan ja viimeisen kerran Ateneumissa, muistin olevani oikeassa. Söötit, värikkäät, romanttiset taulut-joiden-nimiä-ei-nyt-muistu-mieleen hivelivät sisäistä snobiani, kun taas harmaat, 1800-luvun suomalaisten arjesta kertovat taulut eivät olleet laisinkaan kivoja.

Nightwishin uusimmalla levyllä, Imaginaerumilla, löytyy kappale nimeltä Song of hyihit... Myself. Kappaleen viimeisiin säkeisiin kuuluu seuraava: "Careless realism costs souls". Kappaleesta löytyy paljon muitakin kivoja säkeitä, mutta tuo hivelee sielua syvältä joka kerta kun kappaleen kuulen. Lisäksi se pitää täysin paikkansa. Varomaton realismi on jotain, mitä jokaisen kannattaa varoa!

Varomattomia unelmia

Tässillä on mielenkiintoinen hokema. Se kertoo surullista tarinaansa ihmiskunnasta. Se kertoo kyynisyydestä, ja samalla haavoittuvuudesta. Se kuuluu näin: "Pessimisti ei koskaan pety". Kun ajatukset seuraavat tämän hokeman logiikkaa, ei junamatkalla odota näkevänsä Seepra-vaihtovetureita, ainoastaan linjamarsuja (Sr2) ja ehkä muutaman sudenkin (Sr1), kun niitä vielä on vielä olemassa reiluvajaa 110. Tällainen pessimisti ei odota kuulevansa Wildfire IIa Sonata Arctican keikalla, vaan on iloinen jos kuulee Only the Broken Heartsin, josta on ymmärtääkseni tullut tämän kiertueen aloituskappale. Hän ei hae töitä eikä koulua, kun ei kuitenkaan pääse mihinkään.

Myönnetään, realismi ja pessimismi eivät tarkoita täysin samaa asiaa, mutta silmissäni assosioituvat täysin samaksi.

Kaikilla on unelmia... tai ehkei kaikilla. Suurimmalla osalla? Minulla ainakin niitä löytyy muutama takataskusta. MERPGin unelmoin joskus valmistuvan, ja sen jälkeen unelmoin siitä, kuinka joku muukin kuin minä ja Tässi pitävät pelistä. Toinen blogissa paljonpuhuttu unelmankaltainen on lähteä britteinmaalle ylioppimaan. Tarkemmin sanoen skotlantiin, Dundeen Abertey - yliopistoon. Minulla on ohjelman tarkka nimikin jossain kotikoneella kirjoitettuna, mutta kotikone ei sattunut tänne Oulun pendoon mukaan :P Joka tapauksessa ohjelma liittyi pelien tekemiseen.

Yritänpä roolileikkiä: miten tätä unelmaa katsoisi hahmo, joka pelkää pettyvänsä? Skotlantiin pitäisi mennä? Nehän puhuu siellä englantia? Kieltä, jota minä luen ja kirjoitan joka päivä töissä, mutta jota ymmärrän korvillani korkeintaan keskinkertaisesti, olettaen aksentin olevan englantilaista tai amerikkalaista. Minähän katson Doctor Whot ja suomessa-julkaisua-odottavat Houset tekstit päällä. Tennantista ei ymmärrä mitään korvakuulolla, kun hän avaa suunsa skotlantilaisesti. Koulussa sitten opiskeltaisiin C:tä ja DirectXää, sekä konsoleiden SDKita? Apua! Siinähän pitäisi sitten oikeasti ymmärtää mitä tekee!

Yritänpä ajatella asiaa niinkuin itse ajattelen, ehkä vähän kliseisesti, mutta jos välttelisin kliseitä, ei MERPGiä olisi ja nämä blogit olisivat kuolleet jo 2010. Skotlannissa puhutaan englantia aksentilla, jonka ymmärtäminen saattaa olla haasteellista, mutta joka kuulostaa erittäin hyvältä. Lisäksi siellä pitäisi opiskella C:tä ja teollisten pelien vaatimia kirjastoja ja menettelytapoja. Loistavaa! Pääsenpä yrittämään Lomaproosan pelimuotoon sovittamista kolmannessa ulottuvuudessa!

Toivon todella että jokainen huomasi eron. Realistisesti ajateltuna juuri ja juuri ammattikoulun ja puoli lukiota lyhyellä matikalla käyneen nuoren on vähintäänkin hassua ajatella pelien tekemistä, koska (lukuunottamatta yhtä erittäin kivaa kurssia) tutkintoon kuuluu aika vähän mitään, minkä pohjalta tuonne kannattaisi lähteä. Toki koulutus bisnesohjelmien tekoon tarjoaa paremman pohjan kuin ei laisinkaan ohjelmointikokemusta, ja yhdestätoista englanninkurssista (Kaksoistutkinto <3) ei myöskään haittaa ole, mutta fysiikastakin kannattaisi ymmärtää jotain muuta kuin miltä näyttää voimanuoli, ja lyhyessä matikassa tutkitaan geometriasta juuri ja juuri ympyrät ja trigonometria. Hitot mistään vektoreista! Matriiseista puhumattakaan!

Nyt kun sain ilmaistua mikä minua kaksoistutkinnossa häiritsee, voinen rakentaa aasinsillan illan aiheeseen!

Onko tässä MITÄÄN järkeä?

En nyt muista kuinka paljon olen blogissa hehkuttanut noin kuukausi sitten alkanutta iltalukiotani. En myöskään konsolitason Emacsista jaksa lähteä lunttaamaan. Vaikka olisinkin hehkuttanut, tässä hieman kertausta: minulla on maanantaista torstaihin joka ilta, töiden jälkeen, oppitunteja töölössä. Päättyneellä jaksolla kursseina oli Pitkä Matikka ykkönen ja Saksa ykkönen. Alkavalla jaksolla kursseina on matikat kaksi ja kolme, sekä saksa kakkonen, jonka ottaminen on kyllä alkanut epäilyttää minua. En todellakaan osaa sanoa jatkanko saksaa kakkoskurssin jälkeen, mutta siitä lisää myöhemmin.

Keskimääräinen päiväni siis koostuu heräämisestä, tunnin-puolentoista työmatkasta, 8 tunnin koodinhakkauksesta, vähintään puolentoista tunnin opiskelusta ja tunnin-puolentoista kotimatkasta. Päivä pituus sellainen lähemmäs 10 tuntia. Kotona kun tekee kaiken, mitä kotona on tehtävä, jää tutimointiin äkkiä alle 8 tuntia aikaa. Ei kovin paljon juu, ja viikon loppua kohden alkaa kyllä päässä hiukan pyöriä.

Tässi naurahti kun ajattelin jossain tilanteessa ääneen, että hitto ku nykyään ei ole aikaa tehdä mitään ylimääräistä. Ilmeisesti suurin osa ihmisistä ajattelisi samaa pelkästä 8 tunnin työpäivästä ja paljon lyhyemmistä matkoista. Tämä aloitti tämän pienen pohdintaketjun, jota olen tässä jo muutaman tunnin ajan yrittänyt muotoilla. Vietänkö kaupungilla työskentelemässä ja opiskelemassa puolikkaita päiviä vain huvin vuoksi? Onko tässä touhussa mitään järkeä?

Tässä kuukauden sisään olen juossut, Doctor Whota lainatakseni, enemmän kuin koskaan ennen. Kun ajatustyöni tulos on valmis, pitäisi liukuhihnan seuraavan ongelman tulos olla selvillä. Kun työpäivä päättyy, pitäisi olla jo lukiossa. Kun lukio päättyy, pitäisi olla jo kotona nukkumassa. Onko tämän ketjun päässä muuta kuin loppuunpalanut nörtti?

On! Kuten olin sanomassa, saksa saattaa tippua opinnoistani jossain vaiheessa yksinkertaisesti siksi että en pysty irroittamaan sille niin paljon aikaa pitäisi. Se ärsyttää. Saksa on kiva kieli, opettaja on mahtava, eikä minulla ole aikaa katsoakaan kirjaa päin tuntien ulkopuolella. Ykköskurssi meni aika kivasti tehden läksyjä peruskoulupohjalta lennossa niitä tarkastaessa, mutta kun päästään aiheisiin joita ei peruskoulussa käsitelty, mistään ei tule mitään ellen saa aikaa opiskella.

Miksi kuitenkin olen hylkäämässä saksaa, enkä matikkaa? Helppoa, saksaa opiskelen koska se on kiintoisaa, kun taas matikkaa opiskelen koska se on kiintoisaa, Abertey tulee vaatimaan jonkinlaista yo-arvosanaa pitkästä matikasta, ja matikkaa voin soveltaa jokapäiväisessä työnteossani paljon enemmän kuin saksaa. Saksa on - valitettavasti - helppo priorisoida alemmaksi.

Tarina, jota olen tässä tekstissä yrittänyt kertoa, kierrellen sitä välillä läheltä, välillä erittäin kaukaa, on kuitenkin nyt tuleva. Eilen kuljin töistä rautatieasemalle syyssateessa ja -tuulessa, pää ja niska tulessa, pohtien kuinka illalla menee taas myöhäiseksi, kun edessä oli vielä Tässilläsaunomista ja pakkaamista tämän päivän Oulun-matkaa varten. Aamulla sitten olisi seiskalta herätys, joten yöunet eivät olisi pidempiä kuin viikolla nähdyt. Pohdin kysymystä, jota olen tässä tekstissä jo ehtinyt hokea monia kertoja: Mitä järkeä tässä on? Silloin tajusin sen. Realistisesti, tässä ei ole mitään järkeä! Käytännöllisesti, onko sillä mitään väliä!? Tämä on tajuttoman hauskaa!

Hitto ku minulla on vielä harjoiteltavaa tekstien koherenttiudessa. Tämäkin teksti lähti loppua kohden rönsyilemään viiteentoista suuntaan hallitsemattomasti, mikä toisaalta tekee hyvää kirjoittajan ajatukselle ja pohdinnalle, mutta on haastavaa lukijalle. Ehkä minä joskus opin suunnitelemaan näitä. Nyt, loppuilta koostuu junien harrastamisesta, hotellin ja ruoan etsinnästä, konsertista ja hyvistä öistä :P