25.6.2008

Soveltuvuusarvio

Kävin sitten soveltuvuusarviossa. Soveltuvuuasrvio sisälsi personallisuutta kartoittavan ennakkotehtävän, ryhmätyötehtävän, haastattelun ja kaksiosaisen älykkyystestin. Meni hyvin, vaikka olinkin aika väsynyt, koska kissat olivat valvottaneet minua viime yönä.

Ryhmätyötehtävä oli viime kerralla, yli neljä vuotta sitten, aika samanlainen. Meni ihan putkeen, olin sopivasti aktiivinen, osasin ottaa hommat hanskaan aina tarvittaessa ja pidin ryhmämme puolesta pääoasan loppuyhteenvedosta, joka onnistui aika hyvin.

Haastattelukin meni aika hyvin, vaikka HR-konsultti oli sitä mieltä, että minulla on hiemen liikaa taipumus stressata hommista ja minun pitäisi yrittää ottaa asiat rennommin. Sukuvika vissiin, kun ei suksi luista. Toisena ongelmana tunnustin, että minun on vähän vaikea tehdä päätöksiä ja tapana jahkailla niiden kanssa.

Älykkyystesti oli täysin erilainen kun aikaisemmin. Toinen osa sisälsi tilastojen tulkintaa ja apuna sai käyttää laskinta ja paperia. Toinen osa taas oli luetun ymmärtämistä ja loogista päättelyä. Tehtävinä annettiin lyhyitä tekstikatkelmia ja esitettiin tekstiä koskeva väittämä. Ja piti vastata pitikö väittämä tekstin perusteella paikkansa vai ei vai onko niin, että tekstistä ei voi väittämän totuusarvoa päätellä. Yllättäen matemaattisempi testi jäi minulta pahasti kesken ja toisen testin vastaukset taas kerkesin jopa tarkastamaan. Mielenkiintoista kuulla tulokset.

Konsultti sanoi haastattelun jälkeen aikovansa suositella minua hakemaani tehtävään. Konsultti tekee arviosta raportin. Raportin saan viimeistään ensi maanantaina. Aika pian sen jälkeen varmistuu saanko paikan. Tuntuu siltä, että jos en kämmännyt palikkatestejä, on aika todennäköiseltä, että saan paikan.

Kesken haastattelua kaveri soitti ja kännykkä hälytti, vaikka olin laittanut sen hiljaiseksi. Oli hieman noloa kaivaa iPhone esille ja sammuttaa se.

24.6.2008

SproutCore

Surffailin vähän Applen uuden MobileMe-palvelun esittelysivuja. Itse palvelua kiinnostuneempi olin websovellusten hyvin työpöytämäisistä käyttöliittymistä. Selaimessa toimivat versiot sovelluksista muistuttavat hämmästyttävän paljon Mac OS X:ssä toimivia esikuviaan. Webmail muistuttaa käyttöliittymältään todella paljon Mac OS X:n Mail ohjelmaa ja samoin kalenteri iCalia. Näppäinoikotiet toimivat, hakutulokset päivittyvät lennossa, drag'n'drop toimii, yms. Ero selaimessa toimivan sovelluksen ja normaalin tietokoneohjelman välillä ei enää ole iso.

Tähän mennessä tällaiset palvelut ovat yleensä perustuneet joko Flashin tai Javan käyttöön. Kummankaan käyttö ei ole kovin hyvä ratkaisu. MobileMe-palvelu ei pohjaudu näistä kumpaankaan, vaan se on toteutettu SproutCore-nimiseen sovelluskehyksen avulla. SproutCore on tietysti Open Sourcea. SproutCore käyttää työpöytämäisten websovellusten luontiin Ajaxia eli se kykenee toimimaan selaimessa olevilla standarditeknologioilla eli JavaScriptillä, HTML:llä ja CSS:llä. Tällä hetkellä Firefox ja Safari ovat tuettuja. IE7 tuki on tulossa. Javaa tai Flashiä ei siis enää tarvita vaikka haluaisi luoda hyvin tavallisia ohjelmia muistuttavia websovelluksia.

Tekniikasta SproutCoren wiki sanoo:

SproutCore is also a set of development tools influenced by Rails and adopting Javascript best practices. A standard application directory tree is auto-generated, as are models, views, and controllers. HTML is written with the erb (embedded Ruby) templating system using helpers to generate boilerplate HTML and Javascript for UI elements. Testing is built-in. For deployment, the build system consolidates distributed segments of HTML, CSS, and Javascript (and minimizes the Javascript) producing a small set of completely static files.


SproutCore ei yritä tarjota kokonaisratkaisua kolmitasoarkkitehtuurin toteuttamiseen vaan keskittyy asiakaspäähän, eli selaimessa toimivaan käyttöliittymään. Palvelin ja tietokantakerroksen toteuttamiseen pitää käyttää muita ratkaisuja. Eli:
SproutCore is Server-agnostic
SproutCore applications are deployed as a directory of files: no dynamic server-side code is required. You can deliver a SproutCore application to the browser from any web server or web host without special configuration.

In addition, SproutCore can interact with any HTTP application server at runtime including Rails, Tomcat, WebObjects, and WebDav, via XHR calls. SproutCore includes out-of-the-box support for ReST-style backends that accept and receive JSON-formatted data.

Hieman raskas SproutCore on, kuten varmaan moni muukin JS-kehys. Pikaisessa testissäni huomasin, että parin rivin "Hello World"-sovelluksen mukana pitää siirtää lähes satoja kilotavuja JavaScript-koodia. Muilta osin ensivaikutelmani oli hyvin positiivinen.

Applen päätös käyttää SproutCorea mailin web-versioon on kuitenkin mielestäni vähän kyseenalainen. Käyttöliittymästä tulee varmaan aivan mainio, mutta epäilen että ratkaisusta tulee liian raskas. Webmailia kuitenkin tulee käytettyä monesti huonoilla laitteilla ja epämääräisten verkkoyhteyksien päästä. Googlen gmail-tyylinen kevyt käyttöliittymä sopii webmailiin paremmin.

Webissä on tarvetta niin erilaisille palveluille, että tietenkään mikään sovelluskehys ei tietenkään ratkaise kaikkia tarpeita. Flash on edelleen paras ratkaisu peleihin ja multimediaan. SproutCore näyttäisi sopivan hyvin silloin kun ei olla tekemässä vain sivua vaan selaimessa toimivia hyötyohjelmia, joissa tarvitaan työpöytämäinen käyttökokemus. Kevyemmät ratkaisut taas sopivat normaaleille sivustoille.

13.6.2008

Aalto-korkeakoulu

Innovaatioyliopistomme sai hyvän nimen. Alvar Aalto kun on ylivoimaisesti yliarvostetuin arkkitehtimme. Aallon arkkitehtuuri ei ole toimivaa, eikä kaunista. Finlandia-talon marmori ei kestä, eikä akustiikka toimi. Kolmijalkainen tuoli ei tahdo pysyä pystyssä, muitakin esimerkkejä on loputtomasti. Helsingin parhaalle paikalle, historiallisesti arvokkaaseen ympäristöön Aalto taas sai suunniteltua järkyttävän ruman valkoisen kuution (Enson pääkonttori). Onko mikään Aallon suunnitelema rakennus oikeastaan kaunis? Kuten Comic Book Guy sanoisi: "Worst Architect.. EVER!"

Huippuyliopistomme on siis nimetty harvinaisen osuvasti.

Tämäkin teksti varmaan näyttää aika hölmöltä, kun Aalto-korkeakoulu tuottaa Suomelle Nobel-palkinnon, aivan aikataulun mukaisesti vuonna 2020.

12.6.2008

Loman tarpeessa

Kevään työt on melkein tehty ja kiire on ohi.

Viimeinen tärkeä deadline oli eilen, kun meillä oli konferensissa pieni teknologiademo esillä. Demon tekeminen meni viime metreille, kun kuulin vasta viime viikon lopulla, että olisi pitänyt käyttää rajapinnan uusinta versiota, eikä sitä versiota minkä olimme saaneet projektin alussa yhteistyökumppaniltamme.

Porttaus uusimmalle versiolle vei sitten viimeiseen yöhön saakka. Puoli kahdelta aamuyöllä lopetin demon koodaamisen ja aamulla kuudelta oli lähtö Helsinkiin. Demoon jäi kuitenkin bugi, jonka vuoksi jouduimme hajautetun demon sijaan ajamaan sitä yhdellä koneella. Bugin vuoksi en ollut aivan tyytyväinen. Kaikki yhteistyökumppanimme edustajat, joiden kanssa juttelin, olivat kuitenkin oikein tyytyväisiä demoon ja konferenssivieraatkin näyttivät tykkäävän.

Laitokselta lähti konferenssiin minun lisäksi neljä tutkijaa, eikä silti koko porukasta kukaan tajunnut tehdä esitettä, ottaa mukaan laitosta esittelevää julistetta tai demomme lisäksi ylipäätään ottaa mukaan mitään materiaalia, jolla oltaisiin voitu markkinoida tutkistamme. Kyllä se nähtävisti niin on, että kaikki pitäisi tehdä itse.

Viimeiset viikot on tosiaan tullut paiskittua hikipäässä töitä ja viikonloppujakin pari mennyt töiden puitteissa. Seuraavat pari viikkoa onkin rauhallista dokkarien kirjoittelua, koodien siivomista ja sitten lomalle. Alan todella olla loman tarpeessa.

Se viime viikolla ollut haastattelukin meni ilmeisesti ihan hyvin, koska kutsuivat seuraavaan vaiheeseen eli soveltuvuusarvioon.

7.6.2008

Coplien

Pattern ja Agile -guru Jim Coplien vieraili laitoksella. Coplien veti meille päivän patterni-workshopin, johon osallistuin.

Coplien on terävä kaveri ja hänellä on aika kärkkäitä mielipiteitä.

Coplienin mielestä esimerkiksi tunnetuimmassa Pattern kirjassa eli GoF:ssa, ei oikeasti ole ollenkaan oikeita patterneja vaan vain koodausmenetelmiä C++:n (ja smalltalkin) puutteiden paikkaamisen. Coplienin mukaan kirjan kirjoittajat eivät edes tajunneet mitä patternit oikeasti ovat. Myöhemmässä elämässään kuulemma yksi heistä oli tajunnut mitä Patternit ovat ja siksi meilasi asiasta vuonna 2004 Coplienille.

Coplien väitti myös, että GoF:n "patternien" käyttö saattaa jopa heikentää ohjelmien laatua. Coplien kertoi yhdestä tutkimuksesta, jossa ohjelmista oli poistettu GoF:n patternit ja tämän seurauksena ohjelmien laatu parantui! Tietenkin kyseessä saattaa olla vain se, että yleensä ohjelmien laatu parantuu, kun niitä saa jälkikäteen kirjoitella ratkaisevilta osin uusiksi.

Väitteet olisivat aika rohkeita lähes keneltä tahansa muulta henkilöltä kuin Coplienilta, sillä GoF:n patterneista osa on peräisin Coplienin kirjasta "Advanced C++ Programming Styles and Idioms" ja GoF:ssa kyseiseen kirjaan myös viitataan. Tämän lisäksi Coplien on patterniyhteisössä arvostettu hahmo ja ollut esimerkiksi perustamassa Pattern Languages of Programs -konferensseja.

Coplienilla tosiaan oli tarkka näkemys mitä patternit, patterni-kielet ja näiden mahdollisuudet ovat. Coplienin mukaan maailmassa ehkä n. 10 henkeä tajuaa asian, joten en aio enempää nolata tässä itseäni yrittämällä selittää omaa käsitystäni asiasta.

Itseluottamusta ei gurulta tosiaan puutunut ja esiintymistyyli muistutti matkasaarnaajaa. Täytyy myöntää, että ihailen kaverin rohkeutta, uskoa ja omistautumista näkemykselleen.

5.6.2008

Haastattelu

En olekaan vähään aikaan kirjoittanut tänne mitään. Tekosyy on sama vanha eli kiire. Maanantaina ja tiistaina olisi pitänyt olla kolmessa paikassa yhtä aikaa. Ouluun tuli Bostonissa tapaamani tutkijaporukka vierailulle ja olisin päässyt osallistumaan heidän minikonferenssiinsa. Arkkitehtuurien arviontiprojektissa taas oli kaksikin tehtävää. Olisi pitänyt osallistua yhteen arviointiin ja lisäksi toimia isäntänä asiantuntijalle, joka saapui Unkarista arvioimaan yhden yhteistyökumppanimme järjestelmää. Koska olen tavallaan vastuussa kyseisestä yhteistyökumppanista oli pakko isännöidä vierasta.

Ouluun olisin halunnut lähteä. Suhteiden ylläpito olisi ollut tärkeää ja konferenssi olisi sisältänyt mielenkiintoista asiaa. Illanvietot yhteistyöyrityksen piikkiin olisivat varmasti olleet hauskoja.

Viime viikonloppu meni koodatessa, koska toisen projektin demo piti saada tällä viikolla valmiiksi. Nyt se toimii ja yhteistyökumppanilta saatiin hyvää palautetta videostamme joka esittelee alustaa ja demoamme. Edellisviikonloppu taas meni harjoitustöitä tarkastaessa. Tänä viikonloppunakin viimeistelen demoa, kun ensi viikolla pienessä konfernssissa sitä varmaan pitää esitellä.

Tänään kävin työhaastattelussa. En ollut ihan parhaimmillani. Olin istunut aamupäivän Pattern-workshopissa ja kolmen tunnin istuminen workshopissa oli syönyt energiaa. Haastattelun lopuksi haastattelija halusi testata asiantuntemustani. Ideana oli, että haastattelija sanoi yhden sanan ja minun piti vastata mitä mieleeni tulee. Tajusin idean aluksi vähän väärin ja oletin haastattelijan haluavan yhden sanan vastauksen. Haastattelija sanoi Gnome ja minä vastasin "ikkunointi". Haastattelija katsoi minua silmät pyöreänä ja pyysi täsmentämään. Aikani änkytettyäni tajusin, että tarkoitus oli lyhyesti kuvata käsitettä eikä vastata yhdellä sanalla. Myöhemmin sain sentään vähän pelastettua kasvojani kun tiesin mikä Dalvik on.

Pyysin noin tonnia parempaa palkkaa kuin tällä hetkellä tienaan. Vähän hävetti pyyntö sanoa, vaikka olin palkkapyynnön tarkkaan miettinyt. Palkka on käsittääkseni sellainen mitä hyville asiantuntijoille talo maksaa. Eli pari pykälää korkeammalla kuin vastavalmistuneiden dippainssien, mutta ei peruspalkka vedä vertoja ylitöitä tekeville lääkäreille, lakimiehille tai päteville ekonomeille. Pyyntö ei kuulemma ole ongelma. Lupasivat ensi viikolla kertoa jatkuuko haastatteluprosessi.

Paikka kuulosti hyvälle. Työssä keskipisteenä olisi ilmeisesti Python-ajoympäristö. Ihan mielenkiintoista asiaa siis ja vanhasta kokemuksestani olisi työssä varmaan iloa. Toinen haastattelijoista tiesikin vanhan pomoni (alan guru talossa) ja kollegani, joka oli todella pitkään ollut talossa samantyylisten projektien parissa.

Nyt kun asiaa ajattelen, niin siirtyminen teollisuuteen tuntuu yhä vain houkuttelevammalta. Kun kerran minulla on kiire ja stressiä, miksi ihmeessä en olisi kiireinen ja stressaantunut kunnon palkalla, ihan oikeiden tavoitteiden saavuttamiseksi? Mielessäni pyörii armeijan mainosten slogan: "Tee työtä, jolla on tarkoitus".

Parin viikon sisään kuulen pääsenkö tutkijakouluun. En oikeastaan enää tiedä, haluanko oikeastaan päästä sinne. En ole kovinkaan innostunut tutkimussuunnitelmastani ja olen luullakseni enempi kiinnostunut Python-ajoympäristöstä. Ja toki edelleen eniten ammattillisesti kiinnostaa Java-virtuaalikoneet :)