PyCon Finland 2016

Viikon sisään kaksi konferenssia! Sokerina pohjalla molempien aiheena oli Python-ohjelmointikieli. Ensimmäinen oli PyCon Finland ja toinen PyCon Ireland.  Julkaisen PyCon Irelandista kertovan blogauksen myöhemmin.

Suomen konferenssi kesti yhden maanantaipäivän, mutta oli sitäkin paremmin täynnä ohjelmaa. Päivän alussa järjestettiin salamapuheet, nuo korkeintaan viisi minuuttia kestävät esitykset, joiden aihe on vapaa. Yleensä nämä pidetään tapahtuman päätteeksi, mutta tapahtuman lopussa kannettavien ja projektorien kanssa säätämisen välttämiseksi nämä oli siirretty alkuun. Tämä tosin rajoitti kenties osallistumista, koska usein ideoita voi tulla konferenssin aikana aiheista, joista puhua. Ehkä ajatuksena oli, että ei päätetä konferenssia turhautumiseen ja ainakin salamapuheet olivat hyviä. Varsinaisista esityksistä minulle mieleenpainuvimmat olivat tietojenkäsittelyyn ja tekoälyyn liittyviä.

Käsialatunnistustietokanta

Aleksei Tiulpinin esitys Machine Learning with Python havainnollisti MNISTin käsialantunnistustietokannan käyttöä www-palveluna. Hän kävi läpi teoriaa ja esitteli sitten tekemäänsä ohjelmistoa, jossa selaimeen pystyi piirtämään numeron ja palvelun takana pyörivä tekoäly kertoi minkä numeron luulee olevan kyseessä milläkin todennäköisyydellä.

Tekoälyä työpaikkailmoituksiin

Myös Clemens Westrupin Representation Learning and Deep Sequential Modeling for Predicting Topics of Sentences in Job Advertisements oli mainio. Puhuja kävi läpi miten Oikotien englanninkielisiä työpaikkailmoituksia voi luokitella tekoälyn avulla, kunhan ensin saa kerättyä dataa siitä, mitä sisältö yleensä on.

Yksikkötestit data-analyysin maailmassa

Viimeisenä tästä kategoriasta täytyy mainita Unit Testing in the Scientific Python Stack, jonka piti Antti Kaihola. Tässä puhuja näytti, miten data-analyysin maailmassa voidaan suorittaa yksikkötestejä – eri menetelmiä ja havaintoja sekä bugin kirjastossa.

Valtavirran unohtama ZODB

Lisäksi nostaisin Asko Soukan ZODB-esityksen korkealle. ZODB on valtavirran kenties unohtama – tai tiedostamaton – Python-objektitietokanta. Tähän tietokantaan voi tallentaa suoraan Python-ohjelman ajonaikaisia rakenteita. Yleensä ajonaikaiset rakenteet käännetään JSON-muotoon tallennettavaksi, joten oli mielenkiintoista kuulla miten muutoin tämän voi tehdä. Lisäksi ZODB:ssä on suurin osa vakiintuneiden tietokantojen ominaisuuksista.

Älä unohda tietoturvaa

Päällekkäisyyksien takia ainakin Joona Hoikkalan CertBot-aiheinen esitys Closing the gap with TLS adoption täytyy ehdottomasti katsoa Youtubesta. Tietoturva on tärkeä asia, joka laiminlyödään liian usein.

***
Kuva: Flickr Creative Commons, Chris Parker.

Vastuunoton lyhyt oppimäärä

Kävin pari viikkoa sitten Wakarun DevOps-seminaarissa puhumassa vastuusta; siitä mitä se on, kuinka siihen päästään ja mitä esteitä matkan varrella on. Puheeni taustalla on Christopher Averyn vastuuprosessi, englanniksi the responsibility process. Vastuuprosessi kuvaa, kuinka ihmismieli reagoi ongelmiin ja vastoinkäymisiin.

Vastuuprosessi toimii näin:

Elämässä tulee vastaan ongelma, esimerkiksi aamun kiireessä kadonneet auton avaimet tai projektipalaveri, joka alkaa aina aina myöhässä.

Ensimmäinen refleksimme on syyttää jotakin toista henkilöä ongelmasta:

“Kamala kiire ja auton avaimet hukassa, hitto vie vaimo on taas ne siirtänyt!”

“Palaveri alkaa taas vartin myöhässä, saamarin projektipäällikkö kun se aina myöhästelee!”

Kun tilanne hieman kypsyy, seuraavaksi selittelemme, miksi ongelma on ympäristön syy:

“Noh, tämähän nyt on vain sitä lapsiperheen arkea: huusholli sekaisin ja kaikki hukassa.”

“Meidän yrityskulttuuri on sitten syvältä kun kaikki ovat aina myöhässä eikä ketään kiinnosta.”

Hetken kuluttua siirrymme seuraavaan vaiheeseen, häpeään:

“Pöh, olenpa tyhmä. Olisinhan minä voinut ne avaimet laittaa valmiiksi illalla.”

“Tiesinhän minä, että palaveri myöhästyy, olinpa typerä kun hermostuin.”

Ja hetken kuluttua onkin vuorossa vaihe nimeltä pakko:

“Kaipa minun on pakko puhua vaimon kanssa, ettei koskisi avaimiini.”

“Typerä palaveri. Mutta täällä sitä on istuttava, koska pomo käski.”

Jos ongelma on vakavampi kuin avainten häviäminen tai palaveri, voi käydä niin, että häpeän tai pakon tunteminen käy niin tuskalliseksi, että mielemme pistää lapun luukulle ja luovuttaa. Tällöin kiellämme koko ongelman olemassaolon ja haemme parempaa oloa vaikkapa punaviinistä tai suklaasta.

Vastuunotto on ongelman omistamista

Mikäli edellisistä vaiheista pääsee eteenpäin, on mahdollista saapua paikkaan, jonka nimi on vastuunotto. Vastuunotto on mielentila, jossa haluamme omistaa ongelman ja jossa voimme käyttää kaikkea aivokapasiteettiamme asian ratkaisemiseen. Vastuunotto voisi kuulostaa vaikka tältä:

“Mitähän niiden autonavaimien kanssa oikein tapahtui? Ehkäpä vaimo ei niitä siivonnutkaan. Hmm. Pitääpä miettiä miten ne eivät häviäisi tulevaisuudessa. Asentaisinko vaikka avaimia varten ovensuuhun ripustuspaikan?”

“Projektipäällikkö on myöhässä joo, mutta mistähän se johtuu? Voisinkohan tehdä asialle jotakin? Miksi ylipäätään hermostuin – mikä tarpeeni ei täyttynyt, joka puolestaan aiheutti tunteen? Mitäpä jos ottaisin tämän palaverin vetääkseni? Tai itse asiassa, mietitäänpäs vielä tarvitseeko minun edes tähän palaveriin osallistua? Kuinka voisin sen perustella pomolleni?”

Syyttäminen, selittely, häpeä, pakko ja luovuttaminen ovat vastuuprosessin ensimmäiset viisi mielentilaa. Niissä ei sinänsä ole mitään pahaa tai tuomittavaa, koska me ihmiset olemme tällaisiksi kehittyneet ja kasvaneet. Ikävää näissä mielentiloissa on se, että ongelmat eivät niissä ratkea, maailma ei edisty emmekä me siellä työssämme tai ihmisinä kehity. Kun syyttelemme ja selittelemme, olemme voimattomia emmekä voi tehdä asioille mitään, koska jonkin ulkopuolisen tekijän kuten henkilön tai yrityskulttuurin on muututtava. Kun taas tunnemme häpeää tai pakkoa, olemme voimattomia, koska joko meidän pitäisi muuttua tai meidän nyt vain on pakko kestää tilanne. Luovuus tai looginen ongelmanratkaisu on näissä mielentiloissa mahdotonta.

Vastuunoton lähtökohta on vapaa tahto

Miten elämässä sitten voi ottaa enemmän vastuuta? Lähtökohtana on oma vapaa tahto ja valinta. Vastuunottoa ei voi toiselle pakottaa eikä sitä voi itseltä vaatia, koska silloin joutuu mielentilaan pakko tai häpeä. Avaimia vastuullisempaan elämään on kolme:

  1. Aikomus toimia vastuunoton mielentilasta kun ottaa päähän, eikä syyttelystä, selittelystä, häpeästä tai pakosta.
  2. Tietoisuus omasta mielentilasta, itsestä ja ympäristöstä.
  3. Haastaa itseni ja kuvani todellisuudesta ja etsiä sitä, mikä on totta.

Vastuun harjoittaminen vaatii paljon työtä ja itsensä kohtaamista. Työkaluja avuksi onneksi löytyy, esimerkiksi päiväkirjan kirjoittaminen, meditointi, toisten tarkkailu sekä harjoitusryhmät. Olennaista on harjoittaa itseään tunnistamaan mielentilojaan ja haastamaan oletuksiaan ja arvojaan. Vielä olennaisempaa on antaa itselleen anteeksi ja oppia virheistä, koska niitä kuitenkin aina tulee ja koska itsensä kehittäminen häpeän mielentilasta on vaikeaa.

Kovan työ kuitenkin kannattaa. Jumissa, pakon alla tai tilanteen uhrina olemisen kokemus voikin yhä useammin muuttua oivallukseksi, jota seuraa omistajuus ja halu toimia. Puurtamisen palkinto on omassa elämässä vapaus, valinnanvara ja voimaantuminen.

***

Tämän artikkelin on alunperin kirjoittanut Ari Tanninen. Sitä ovat sittemmin muokanneet muut Codenton työntekijät.