Tämä on Janne Aukian blogi.
Fiilistelen arkea, taidetta ja tekniikkaa.

Kuutio

Vuoden 2009 retrospektiivi

2.1.2010 klo 17:47

Aral Balkanin blogipostauksen inspiroimana ajattelin vähän fiilistellä mennyttä vuotta 2009.

Suurin asia vuonna 2009 on ollut seurata meidän tyttäremme kasvamista. On aika mieletöntä, että yhden vuoden aikana voi oppia ryömimään, konttaamaan, kävelemään ja puhumaan. Ja lisäksi myös laulamaan, tanssimaan, lukemaan kirjoja — ja jekuttamaan vanhempiaan.

Kesällä olin nelisen kuukautta kotona tyttäremme kanssa. Oli mukavaa saada itse otetta lapsenhoidosta ja omaa käsitystä siitä, miten päivärutiini toimii. Se toi itsevarmuutta lapsenhoidossa. Suosittelen kotona olemista myös muille isille — kotona lapsen kanssa kahden oleminen on paljon yleisempää esimerkiksi Ruotsissa kuin Suomessa. Pientä mökkihöperyyttä huomasin jo tuona aikana tulevan: kun Anni tuli töistä, oli minulla jo monesti fiilis, että olisi mukavaa käydä kaupungilla tai edes kauppakeskuksessa.

Syksyllä aikaa ja energiaa vei putkiremontti, jonka vuoksi olimme evakossa kolmisen kuukautta. Onneksi remontti alkaa olla jo pääpiirteissään ohi. Jäljellä on vain kaikkien pikkuasioiden hoitamista ja laittamista, jotka vievät aina oman aikansa. Myöskään tyttäremme huonetta emme ehtineet vielä tämän vuoden puolella remontoimaan, vaikka niin olimme alun perin ajatelleetkin.

Vuoden alussa asetettu tavoite lukea kirja kuukaudessa ei toteutunut alkuunkaan. Ehkä vuodelle 2010 vuosi asettaa ylimalkaisemman tavoitteen nähdä, ajatella ja oppia uutta.

Töistä

Vuonna 2009 vaihdoin myös työpaikkaa ja työnkuvaa. Edellisenä vuonna tein pienen softafirman markkinointia: kirjoitin whitepapereita, suunnittelin esitteitä ja istuin palavereissa suunnittelemassa tuotemarkkinointia. Vuoden alussa olin isojen päätösten edessä, kun mietin, menisinkö pikkufirmaan töihin tekemään markkinointitehtäviä, lähtisinkö jatko-opiskelemaan koneoppimista, työskentelisinkö koodarina vai saisiko minusta ux-asiantuntijan. On hankalaa miettiä pitkälle eteenpäin, mitä oikein tekisi. Joillekin ihmisille on selkeää, mitä he haluavat tehdä työkseen. Itse olen tottunut puuhaamaan monenlaisia asioita ja yhden osa-alueen valitseminen tuntuu rajoittavalta.

Lopulta päädyin töihin Futuriceen. Siellä olen tehnyt pääasiassa ohjelmistonkehitystä, vähän konseptoinnilla ja visioinnilla höystettynä. Ohjelmoinnissa on mukavaa, että työn tulokset ovat konkreettisia, työ on asiakkaalta laskutettavaa ja oman toteutuksen osalta melko vapaata. Silti voi olla, että jossakin vaiheessa kaipaa myös muunlaisia työtehtäviä. Pääsin nopeasti vauhtiin ohjelmistonkehityksessä. Käyttöliittymiä lähellä voi hyödyntää myös muuta osaamista: ymmärrystä käyttäjistä ja kykyä käyttää fotaria tarvittaessa.

Tänä vuonna olen nauttinut selkeistä projekteista ja siitä, että työ ja vapaa-aika ovat pysyneet hyvin erillään. Töitä hakiessa oli kuitenkin kiinnostavaa tavata erilaisia ihmisiä ja pohtia rooleja joissa voisin toimia. Myös myöhemmin vuoden aikana olen käynyt mielenkiintoisia keskusteluja eri ihmisten kanssa liittyen siihen, minkälaisia hankkeita voisi joskus tulevaisuudessa viedä eteenpäin. Uusille konsepteille on oma aikansa.

Työkaluista

Vuoden aikana olen käyttänyt ja opetellut paljon eri tekniikoita, mikä on ollut omalta osaltaan kiinnostavaa. Olen ohjelmoinut Flexiä, tehnyt Javascriptiä eri frameworkeillä, mobiiiliwidgettiprototyyppejä ja verkkopalvelukehitystä Drupalilla. Nykyaikaisesta webbipalvelun käyttöliittymäkehityksestä on myös muodostunut selkeä kuva.

Konsepteissa mielenkiintoista on ollut miettiä paikannus- ja karttapohjaisia palveluita sekä webissä että mobiilisti. Näissä tuntuisi olevan vielä paljon potentiaalia, mutta erilaisia startupejakin tällä alueella on paljon. Kokeilullisten karttavisualisointien pohjalta pitää kyllä saada jotakin tehtyä myös nyt alkavana vuonna.

Vuoden lopussa pidin töissä sisäisen presentaation html5:stä ja webin tulevaisuudesta, jonka osalta sain paljon hyvää palautetta:

@jaukia spreading some HTML5, CSS3 and WebGL love. Some truly awe-inspiring stuff! http://twitpic.com/tqwe8.

Esittäminen oli mukavaa ja sitä voisi yrittää harjoitella jotenkin myös ensi vuonna. Oli hauska huomata, että aihepiiri joka kiinnostaa itseä voi myös innostaa toisia. Esityksessä kävin läpi muun muassa css3-transformaatioita, webgl:ää ja canvas-elementin käyttämistä. Samasta setistä olisi mukavaa pitää myös julkinen esitys jossakin vaiheessa. Ehkä voisin pitää yrityksen sisäisen presentaation vaikkapa neogeografiasta/-kartografiasta tai avoimen datan hankkeista.

Vuoden lopussa huomaan käyttäväni yhtä aikaa blogia, Facebookia, Deliciousia, Google Readeria ja Twitteriä ihmisten kanssa kommunikointiin ja viestintään. Yhdistelmä on jo vähän liikaa, mutta jokaisella välineellä tuntuisi olevan vähän eri käyttötavat ja sosiaaliset piirit. Tilanne on kestämätön, mutta en ole vielä keksinyt ongelmaan patenttiratkaisua.

Alkuvuodesta saamani iPhone vaikutti tapaan jolla käytän verkkopalveluita. Kesällä huomasin käyväni RSS-feediäni läpi joskus hiekkalaatikon reunalla. Samoin olen lukenut Facebookia bussimatkoilla töihin ja käyttänyt iPhonen kameraa arjen dokumentointiin.

Reissuista vauvan kanssa ja ilman

Vuoden aikana teimme muutaman matkan vauvan kanssa. Jo vuoden vaihteessa 2008-09 kävimme Barcelonassa. Ihmettelimme kaupunkia suurimman sesonkiajan ulkopuolella ja harjoittelimme lapsen kanssa matkustamista.

Huhtikuussa matkasimme Lontoossa. Marylebone oli hyvä tukikohta Lontoon tutkimisessa ja reissussa tuli myös pohdittua esimerkiksi historiaa ja rahavirtoja 1500-luvun maailmassa.

Kesällä kiersimme Suomea autolla. Tämä matkustustapa tuntui reppureissaamiseen tottuneelle eksoottiselta tavalta matkustaa. Kävimme ensimmäistä kertaa Jyväskylässä ja ihmettelimme siellä, kuin oikeat turistit, Aallon arkkitehtuuria.

Syksyllä kävin Tallinnassa veljesmatkalla isän kanssa. Oli mukavaa, että saatoimme reissata yhdessä ja oli muutama päivä aikaa rauhassa saunoa, syödä ja olla vapaalla.

Harrasteprojekteista

Varsinaisten työprojektien lisäksi vuodelle 2009 sai mahtumaan myös muutaman harrasteprojektin. Ideat harrasteprojekteihin syntyivät kesällä hiekkalaatikon laidalla istuessa, vaikka kesällä en koneeseen liiemmin koskenut.

Maaliskuussa plottasin uuden version matka-aikakartasta. Tämä pohjautui vanhaan kouluharjoitukseen jonka teimme joskus aikanaan Annin kanssa. Lopputulos oli aika kiinnostava ja tarjoaisi myös paljon jatkokehitysmahdollisuuksia. Karttojen osalta innostuin Stamenin tekemistä visualisoinneista, jotka motivoivat minua vuoden aikana.

Elokuussa visualisoin osakedataa, johon käytin Pythonia. Osakkeiden klusterointi toimi varsinkin jenkkidatalle hyvin, mutta suomalaisten osakkeiden osalta tulokset olivat kummallisia. En analysoinut niitä tarkemmin.

Marraskuussa kokeilin myös vanhojen karttojen esittämistä ja vertaamista uusiin karttoihin. On mukavaa, että demo toimii jo tällaisenaan.

Vuoden lopussa innostuin ActionScriptin muuttamisesta ohjelmallisesti Javascriptiksi. Teinkin jotain kokeiluja tähän liittyen Antlr:lla, mutta mahdollinen jatkokehittely jää vielä tuleville vuosille.

Vuoden isoin harrasteprojekti oli äidin sukukirja, jonka saimme Annin kanssa valmiiksi lopulta joulukuussa. Taitoimme sen ja painatimme sen Lulussa. Projekti oli yllättävän työläs, sisältäen kuvien asemointia, tekstin siistimistä ja lopulta vielä painatusta. Lopputuotteena syntyi pino kovakantisia, kansipaperillisia kirjoja, joita voi jakaa sukulaisille. Täytyy miettiä, mihin tässä projektissa opittuja taitoja voisi hyödyntää. Lulun kautta voisi painattaa jotakin muutakin.

Alkavalle vuodelle

Ehkä tuleva vuosi on samaa kuin edellisenä mutta hieman rauhallisemmin. Toivon, että voisin keskittyä parantamaan ja optimoimaan sitä mitä tänä vuonna on saanut aluilleen. Tämä tarkoittaa omaa kotia, ohjelmistonkehitystä ja perheen kanssa olemista. Ohjelmistonkehittäjänä olisi mukava saada kontaktia ja kuulua jollakin tavalla ammatilliseen yhteisöön. En tiedä kuitenkaan, mitä tämän pitäisi käytännössä tarkoittaa.

Vuodessa ehtii paljon: elämää eletään yhtä aikaa monella eri tasolla. On projekti-ideoita, työtä, perhettä ja kirjoja. Matkustamista ja lapsen elämän seuraamista. Perheellisenä on haasteena löytää aikaa kaikille elämän tasoille ja monesti se vaatii erilaisten asioiden tekemistä päällekäin, peräkkäin ja pieniin palasiin pilkottuna. Arjen päivät jakautuvat tunteihin, minuutteihin ja sekunteihin. Kokonaiskuva eletystä elämästä muodostuu selvemmin vasta jälkikäteen.

Toivottavasti omat läheiset ihmiset pysyvät terveinä vuonna 2010. Ja toivottavasti kaikki jaksavat nähdä elämän moninaisuuden liikaa murehtimatta. Vinkiksi uudelle vuodelle voi ottaa Internetin self-help-tulvasta vaikkapa Charlie Hoehnin, 23v, elämänviisauden: Chase after the things that interest you and make you happy. Stop acting like you have a set path, because you don’t. No one does. Tästä tulee vielä hyvä vuosi!

3d-kirja Javascriptillä vaiko oma ristiinkääntäjä?

22.12.2009 klo 10:02

Mietin että voisi tehdä 3d-kirjan javascriptillä jota voisi selailla kursorilla sivuja kääntämällä. Kirja tuntuisi kuin oikealta, sillä sivujen käyttäytymisen pohjana olisi 2d-fysiikkamalli. Tietysti olisi hienoa jos kirjan sivuille voisi piirtää Canvas-elementin avulla ja piirrokset saisi myös talteen palvelimelle.

Toteutukseen ajattelin käyttää Box2d-fysiikkaengineä ja WebGL:ää – tai sitten css3 3d-muunnoksia. Box2d-kirjastosta on olemassa Javascript-porttaus, joka on portattu automaattisesti vanhasta ActionScript-versiosta kirjastosta.

Tässä kohtaa ajatukset alkoivat kuitenkin jo harhailla — kirjastojen automaattinen porttaaminen kielestä toiseen voisi olla myös kiinnostavaa. Aloin miettiä oman porttauksen tekemistä ja katsoinkin työkaluvaihtoehtoja. Voisin joko konveroida sen uudemmasta ActionScript-portista, tai sitten suoraan vaikka Javasta.

Javaa voisi kääntää JavaScriptiksi GWT:llä, mutta en tiedä, olisiko syntyvän koodin lisenssi silloin myös googlefioitua. Apuna voisi käyttää GWT Exporter-kirjastoa tai sitten j2js-esimerkkikoodia.

ActionScriptin voisi kääntää JavaScriptiksi varmaankin melko triviaalisti, joko omalla parserilla tai Javalle löytyvän Rhino-JavaScript-moottorin Token ja TokenStream -luokkia puukottamalla. Tietysti myös RegExpillä, jos haluaa tehdä sen likaisesti.

Yksi projekti-idea muuttuikin kahdeksi. Kumpaakohan tekisin, vai teenkö kumpaakaan?

Koodin kommentointi versionhallinnalla

24.11.2009 klo 9:26

Olisi mahtavaa, jos Git-tyylisen versionhallinnan saisi näkymään ohjelmointiympäristössä niin, että jokaisen koodipätkän osalta ruudulla näkyisi jatkuvasti, millä kuvauksella (ja kenen tekemänä) se on kommittoitu. Eräänlainen paranneltu “Show annotations”, siis. Tällä tavoin kommittikuvaukset toimisivat samalla koodin dokumentaationa. Onkohan tällaista tehty?

Garalde, oma Skype-tyyli

10.11.2009 klo 10:10

Tein Garalde-Skype-tyylin (zip), kun vakiotyyli alkoi ahdistaa. Pohjana on Skypen perustyyli. Tyyliä on testattu ainoastaan Macissa ja sen pitäisi asentua tuplaklikkaamalla.

Briefly in English: Garalde is a theme for Skype for Mac. It has been tested on Skype 2.8.0.722.

Kahviloita!

8.11.2009 klo 14:35

Helsingissä on monta kahvilaa joissa haluaisin käydä ja syystalvi on mitä parhainta aikaa kahviloissa istumiselle (jos sille vain sattuu saamaan aikaa).

Kaffecentralenista ja La Torrefazionesta pitäisi saada hyvää kahvia. Alun perin La Torrefazione on ilmeisesti suunniteltu tiski-espresso-paikaksi, samaan malliin kuin Italian kahvilat. Miksi moisia ei ole lähiöissä joissa oikeasti haluaisi hyvän espresson matkalla töihin?

Villipuutarha voisi olla myös kiinnostava. Ja Dylanin aamiasta kehuttiin Hesarissa. Myös Cafe Posto voisi olla hyvä. Olisikos muita paikkoja missä kannattaisi käydä?

Helsingin karttojen vertailusivu

5.11.2009 klo 10:15

Sain valmiiksi ensimmäisen version Historiallinen Helsinki -sivusta, jossa voi verrata helposti karttoja Helsingistä eri vuosilta. Ideoin tätä jo vuosi sitten. Seuraavat paikat ovat kartalla aika kiinnostavia vertailtavia:

  • Lastenkoti lastenkodinkadulla
  • Ruoholahden muutokset
  • Länsisatama
  • Kyläsaari ja verkkosaari
  • Kalasatama
  • Kaisaniemenkatu
  • Töölönlahti
  • Linjaluonnokset (kuudes linja!)

Tarkoituksena on tuoda sivulle lisää karttoja, tuunata käyttöliittymää (mahdollisesti aikajana ja navigaatiokontrollit) sekä tehdä jonkinmoinen selitysnäkymä, jossa voi tuoda esiin kiinnostavia yksityiskohtia kartalla.

Syntetisaattoreita iPhonelle

10.10.2009 klo 12:28

Yöllä mietin, että iPhonelle voisi olla kiva tehdä retrosyntetisaattor, kunnes tajusin, että niitä täytyy olla jo olemassa. Ja niinpä olikin, vieläpä aika kiinnostavia sellaisia.

DopplerPad on Yamahan Tenori-Onin tyylinen soitin, jonka melkein voisin jopa ostaa.

DB-303 on viimeistellyn oloinen 303-emulaattori retrokuorin Rebirthin tapaan. Neljän euron hinta ei olisi kohtuuton. TechnoBox olisi monipuolisempi, mutta käyttöliittymä ei ole yhtä sympaattinen.

Lisäksi tuli vastaan Intuan BeatMaker, ohjelmoitava rumpukone/sampleri, sekä Noise.io.

Kansalaisosallistujan työkalut -finalistit

26.9.2009 klo 14:51

Kansalaisosallistujan työkalut -kilpailun finalistit on nyt julkistettu. Joukossa on ihan kiinnostavia projekteja:

  • Tax Tree visualisoi verojen kulumisen puuna.
  • Nomen est Omen hakee tietoa sukunimistä.
  • Legiskoopin avulla voi seurata eduskunnassa hyväksytyistä laeista sekä ketkä ovat äänestäneet puolesta ja ketkä vastaan.

Fonttien klassifikaatiota

26.9.2009 klo 14:40

Voisi tehdä jonkinmoisen piirreanalyysin fonteille ja sitten jotenkin visualisoida fonttien samanlaisuutta.

Ääntä nuottiriveillä

26.9.2009 klo 14:39

Voisi tehdä visualisaation, jossa biisien spektrogrammeja olisi plotattu tyhjien nuottirivien päälle.

Samanlaisia yrityksiä

6.9.2009 klo 22:49

Tein vielä uuden kokeilun osakedatalla, jossa ryhmittelin hierarkisesti osakkeet siten, että samoina päivinä nousevat ja laskevat osakkeet ovat lähellä toisiaan. Kuvan piirtämiseen käytin PyObjC:n Quartz-bindauksia, joille tein vähän selkeämmän wrapperin. Vaihdoin siihen Applen Python-rajapinnoista siksi, että Applen versiot eivät tuntuneet toimivan enää Snow Leopardissa (kuten ei moni muukaan asia).

Klusteroinnin laskemiseen käytin R:ää Rpy2-rajapinnan yli, mikä onnistui melko jouhevasti.

Värikkäitä osakkeita

31.8.2009 klo 15:08

Tein uuden version osakekurssien visualisoinnista. Kannattaa katsoa kuvan isompi versio (pdf). Ideana on, että käppyrät on normalisoitu suhteessa keskiarvoon. Taustalla näkyy harmaina kaikki S&P 500 -osakkeet ja etualalle on valittu kolme alaa (IT, Household ja Finance) sekä jokaisesta niistä yksi osake (Apple, Wal-Mart, Bank of America).

Tätä plottaillessa tajusi taas, kuinka melkein kaikessa visualisoinnissa on olennaista näyttää, miten yksittäiset datapisteet saavat arvoja suhteessa muihin datapisteisiin. Monesti tämä onnistuu parhaiten keskiarvoon vertaamalla.

Kuva on tehty Pythonilla Applen Core Graphics -rajapintoja käyttäen. Muuten olisin käyttänyt Cairoa, mutta jotenkin CMYK-värien tuen puuttuminen tuntui rasittavalta.

Mitä kuvasta sitten näkee? Visualisoinnin pitäisi kyetä vastaamaan kysymyksiin. Lähtökohtana graafille on ollut kysymys: “Mitä voidaan nähdä osakkeiden käyttäytymisestä näyttämällä iso määrä osakedataa samassa näkymässä?” Lopulta eri versioita tehdessä huomasin, että perinteisestä graafiplotista tulee aika epäselvä kun dataa on paljon. Esimerkiksi satojen graafiviivojen värikoodaaminen ei kerro kovinkaan paljoa, sillä eri värisiä käppyröitä on niin paljon, että sekamelska näyttää lähinnä lankakerältä.

Seuraavia asioita kuvaajasta kuitenkin voi nähdä:

  • Vuoden 2008 lopusta lähtien finanssialan osakkeet ovat pudonneet suhteessa muihin ja Bank of America on ottanut iskua selvästi finanssialan keskiarvoa enemmän.
  • Ruualla ja kotitaloushyödykkeillä (vihreä) on mennyt hyvin suhteessa muihin osakkeisiin ja Wal-Martilla jopa poikkeuksellisen hyvin. Suhteellinen kuvaaja näyttää Wal-Martin menestyksen absoluuttista kuvaajaa paremmin.
  • Applen osakkeen arvo on kasvanut tasaisesti suhteessa muihin osakkeisiin koko vuoden 2009 ajan, mutta silti sen keskimääräinen menestys on ollut vain hieman yli muun IT-alan.
  • Osakkeiden hajonta keskiarvon ympärillä kasvaa vuoden 2008 lopussa, eli erot paremmin ja huonommin menestyvien osakkeiden välillä suurenee (tämä näkyy selvemmin edellisen postauksen kuvasta). Tämä korjausliike näyttäisi kuitenkin loppuvan 2009 tammikuussa, josta eteenpäin osakkeiden hajonta pysyy suurin piirtein samana.

Harmaiden, taustalla olevien käppyröiden funktiosta en ole aivan varma. Ainakin ne antavat jonkinmoisen fiiliksen siitä, millä välillä graafin arvot tapaavat liikkua.

Graafi olisi parempi, jos sitä voisi käyttää interaktiivisesti. Silloin olisi helppoa kursorilla kokeilla, mitä eri osakkeet ovat ja verrata niitä toisiinsa.

Osakedataan voisi kokeilla myös DNA:n visualisointiin käytettävää heatplotia. Siinä ei tulisi ongelmaa päällekäisistä graafiviivoista, mutta siitä voisi silti saada jonkinmoisen yleiskuvan osakkeiden käyttäytymisestä ryhmittelemällä samalla tavalla käyttäytyvät osakkeet lähelle toisiaan.

Osakkeiden visualisointia

25.8.2009 klo 16:27

Tein pikaisen kokeilun field-grafiikkaympäristössä osakkekurssien visualisoimiseksi. Alkuperäinen idea osakekurssien visualisoinniksi tuli pari kuukautta sitten.

Yllä kaikki S&P 500 -indeksin osakkeet plotattuna päällekkäin alkaen 1.1.2008 ja päättyen tänään. Data on haettu Yahoon webservicellä ja lista indeksin firmoista on täältä. Osakkeiden kurssi on normalisoitu siten, että arvot on jaettu osakkeen alkuarvolla.

Muokattu 26.8.2009. Korjasin koodin ja vaihdoin kuvan uuteen. Graafin asteikko on nyt myös lineaarinen ja alkupäivä on 1.1.2008. Seuraavaksi voisi alkaa tuunailla tästä hienompaa. Vertailun vuoksi, buginen kuva on täällä.

Geolokaatioita ja reittiaikoja

19.8.2009 klo 11:21

Voisi yhdistää “Espoon Geologiset Kohteet 2006″ -tietoa ja reittiopasdataa, niin saisi selville sellaiset geologiset kohteet, joihin pääsee järkevästi julkisella liikenteellä.

Processingia 200 merkillä

17.8.2009 klo 10:53

Open Processingin saitilla on käynnissä Tiny Sketch -kisa, jossa tavoitteena on koodata mahdollisimman hieno, korkeintaan 200 merkin mittainen Processing-ohjelma. Intouduin tekemään kisaan muutaman kokeilun, vaikka en tiedäkään, onko moisten koodaaminen kovin tervehenkinen harrastus. Javan ja Processingin verboosin syntaksin vuoksi 200 merkkiin ei kovin monta koodiriviä saa mahdutettua.

good buys on software pirodr! 666