Emacs on koodaajan monitoimityökalu

Helsingin kaupungin ohjelmistokehittäjä Timo Tuominen rakentaa virkatyönään ohjelmistoja ja edistää avoimen lähdekoodin hyödyntämistä Helsingin kaupungilla. Unix-fanin lempityökalu, Emacs-tekstieditori, taipuu niin sähköpostin lukuun, Tetriksen peluuseen kuin rajapintojen tutkimiseen.

Valokuva.
Helsingin kaupungin ohjelmistokehittäjä Timo Tuomisella on Emacsin näppäinkomennot selkäytimessä.

Helsingin kehittäjäsivustolla on jo toistakymmentä rajapintaa, joiden dataa moni kehittäjä hyödyntää rakentamissaan palveluissa. Monet rajapinnoista ovat kaupungin omien sovelluskehittäjien käsialaa. Yksi kaupungin sovelluskehittäjistä on Timo Tuominen, jonka kirjoittama koodi syntyy poikkeuksetta Emacs-tekstieditorilla.

Tuomisen ja monen muun koodaajan suosikkieditorin ensimmäinen versio julkaistiin UNIX-ympäristöön jo 1980-luvulla. Sen kehittäjä on vapaiden ohjelmistojen supertähti Richard Stallman. “Se ei anna kovin modernia vaikutelmaa itsestään, mutta kehittäjäyhteisö on aktiivinen ja uusia versioita julkaistaan säännöllisesti, Timo Tuominen naurahtaa.

Kosketusnäyttöjen ja puheohjauksen aikakaudella Emacs näyttää todellakin kivikautiselta. Mutta kun monimutkaisilta vaikuttavat näppäinkomennot ovat selkäytimessä, koodaus sujuu. Sitä paitsi Emacs on todellinen sveitsiläinen linkkuveitsi. “Kirjoitan sillä myös dokumentit ja muistiinpanot, hallitsen työtehtävät, luen sähköpostit ja pelaan Tetristä”, Tuominen listaa.

“Tällä voi vaikka katsoa miten Tetris on koodattu”, Tuominen näyttää. Muutama muutos koodiin, ja Tetris-palikoiden pyörimissuunta vaihtuu muutamassa sekunnissa. “Emacsin oppiminen on valitettavasti monivuotinen prosessi. Useimmat luovuttavat ennen kuin pääsevät hyötymään opiskeluun uhraamastaan ajasta”, Tuominen varoittaa.

Kaupungin rajapintojen rakentaminen on Tuomisen perustyötä, ja Emacsilla rajapintoihin tutustuminen käy kätevästi. Rajapintakyselyjä voi toki tehdä vaikka verkkoselaimella, mutta Emacsin perustoiminnoilla esimerkiksi oleellisen tiedon suodattaminen rajapinnan palauttamasta tuhansien rivien mittaisesta vastauksesta käy nopeasti. Selaimen kautta ei myöskään pysty kirjoittamaan rajapintoihin. Emacsilla onnistuvat POST-komennot, joilla voi lähettää dataa rajapintaan. “Esimerkiksi kaupungin palauterajapintaa joutuu usein testaamaan ja lähettämään sinne vikailmoituksia.”

Juuri nyt Tuomisen työpöydällä on kaupungin uusi rajapintapalvelu Tunnistamo. Se on keskitetty autentikointirajapinta, jonka avulla kaupungin palveluihin pääsee käsiksi esimerkiksi Google-, Facebook- tai YLE-tunnuksin. “Kaupungin työntekijät voivat tunnistautua omilla tunnuksillaan, ja myös vahva tunnistautuminen on suunnitteilla. Minä olen ottamassa projektin ohjia käsiini. Siinä on vähän tuotteistusta, dokumentaatiota ja paketointia, jotta rajapinta on helppo ottaa käyttöön.”

Kuvakaappaus Varaamo-palvelun etusivusta.
Timo Tuomisen kollegoiden rakentamasta Varaamo-palvelusta voi varata kaupungin tiloja ja laitteita käyttöönsä.
Kuka?

Timo Tuominen s. 1980

Koulutus: FM, tietojenkäsittelytiede
Työpaikka: Ohjelmistokehittäjä, Helsingin kaupungin tietohallinto

Avoimen datan suosikkityökalut

  1. Emacs-tekstieditori ja sen restclient-lisäosa.
  2. Linuxin curl- ja jq-komennot. “Olen vanhan koulukunnan UNIX-fani, pidän yksinkertaisista tekstipohjaisista komennoista, jotka hoitavat vain yhden asian kerrallaan ja joita voi yhdistellä toisiinsa.”
  3. Git-versionhallintatyökalu “Se on Linus Torvaldsin alullepanema.”

Mitä tehnyt avoimella datalla
Vapaa-ajalla esim. Menneisyyden sää, töissä mm. avoimeen dataan pohjautuvat Pääkaupunkiseudun palvelukartta ja Ulkoliikuntakartta.

Mikä data kiinnostaisi
“Helsingin kaupungin kattavat talousdatat: toteutuneet tilaukset yhdistettyinä sopimuksiin ja niistä tehtyihin päätöksiin sekä laajempaan budjettiin. Ensi askel otettiin vuonna 2014, kun Helsinki avasi ostodatansa. Olisi hienoa, jos tätä saisi yhdistettyä laajempiin kokonaisuuksiin ja poliittisiin päätöksiin.”

Mac, Windows vai Linux
Linux

Twitter @tituomin

Avoimuuden edistäjä

Julkishallinnon ulkoistamisbuumi on siirtänyt ohjelmistokehittäjät lähes poikkeuksetta yksityisiin yrityksiin. Helsingillä on kuitenkin ollut omaa ohjelmistokehitystä jo vuosien ajan. Tuomisen ura kaupungilla alkoi jo vuonna 2009, kun hän suoritti siviilipalvelustaan Helsingin kirjastossa. Sitä seurasi tietojenkäsittelytieteen opintoja, sitten EU:n rahoittamana kumppanikoodarin pesti Helsingin kaupungilla. Vuonna 2015 projektityö vaihtui vakituiseen työpaikkaan Helsingin avoimen ohjelmistokehityksen tiimissä. Viime kesän organisaatiouudistuksen myötä in-house-ohjelmistokehityksellä on nyt ensimmäistä kertaa ikioma laatikkonsa kaupungin organisaatiokaaviossa. Lisäksi ohjelmistokehityksen tiimillä on käytössään puitesopimus, jolla voi hankkia lisää työvoimaa ulkopuolisilta ketteriltä koodausfirmoilta.

Kaupungin tietohallinnon oman ohjelmistokehitystiimin tehtäviin kuuluvat avoimien rajapintojen rakentaminen sekä erilaiset kokeiluhankkeet. Tärkeä osa työtä on toimia avoimuuden sanansaattajana: edistää ketterää ohjelmistokehitystä sekä avoimen lähdekoodin hyödyntämistä. “On kyllä hienoa, että olen saanut koko urani tehdä töitä avoimen lähdekoodin ja avoimen datan parissa.”

Mitä hyötyä Helsingille on omista ohjelmistokehittäjistä? Tuomisen mukaan softan tuotanto lähellä käyttäjiä johtaa paremmin käytettäviin ohjelmistoihin. “Kun me kehitämme ohjelmistoja joustavasti ja ketterästi, ne mukautuvat käyttäjän tarpeeseen, eikä toisin päin. Valmiita ohjelmistotuotteita käytettäessä käy usein niin, että käyttäjien pitää muokata toimintaansa ohjelmistojen mukaan.”

Kehitystyötä helpottaa myös se, että kehittäjät ja softan käyttäjät ovat samaa organisaatiota. “Meidän on helppo tehdä yhteistyötä ohjelmistojen tuoteomistajien kanssa. Heillä taas on paras tieto vaikkapa siitä asiakaspalveluprosessista, jota softa palvelee.”

HRI ja Helsingin omat koodaajat ovat tehneet yhteistyötä jo vuosia. Tätä nykyä yhteistyö on entistä mutkattomampaa, kun töitä tehdään samassa organisaatiossa ja yhteisissä tiloissa Ympyrätalossa.

Avoimesta datasta Timo Tuominen ei osaa pysytellä erossa edes vapaa-ajalla. Yksi onnistuneimmista tekeleistä on vuoden 2014 Apps for Finland -kilpailuun tehty Menneisyyden sää, joka sai alkunsa ilmastonmuutosahdistuksesta. “Sää on aihe, josta keskustellaan paljon. Minulla oli sellainen näppituntuma, että syyskuut ovat lämmenneet. Halusin kokeilla, näkisikö sen omin silmin.”

Simppeli verkkopalvelu on yhä edelleen, vuosia myöhemmin, täydessä iskussa. Esimerkiksi Helsingin Kaisaniemen ja Helsinki-Vantaan lentoaseman mitatut lämpötilat saa kaivettua palvelusta aina vuodesta 1959 lähtien. Lämpimät kesät 2018 ja 2014 erottuvat vuoden aikajanalta kirkkaanpunaisina. “Jos haluaisi vetää johtopäätöksiä ilmastonmuutoksesta, tarvittaisiin kyllä vähän tilastollista analyysiä. Mutta lumiset lapsuuden talvet ovat edelleen mielessä, ja kyllä sieltä 1980-luvulta löytyi tosi kylmiä talvia.”

Kuvakaappaus Menneisyyden sää -palvelusta.
Menneisyyden sää -palvelu on Tuomisen vapaa-ajan projekti, josta voi tutkia menneiden vuosien lämpötiloja, lumen syvyyksiä ja sademääriä Ilmatieteenlaitoksen havaintopisteissä ympäri Suomen.