PyCon Finland 2015



Yksi Pyconin mielenkiintoisimpia oppeja oli se, miten Pythonin avulla voi taistella haittaohjelmia vastaan.

PyCon Finland 2015 on Python-kielestä kiinnostuneille suunnattu konferenssi, jonka järjestää Python Suomi ry. Tässä blogauksessa esittelen mielenkiintoisimmat huomiot ja oivallukset niin puheista kuin tapahtuman toimivuudestakin.

Kuin rasvattu käärme

Pycon lähti osaltani käyntiin hieman kankeasti, kun bussini jumiutui ruuhkaan ja missasin vaihtoratikan. Puhujana minun olisi syytä olla ajoissa. Pamahdinkin paikalle kirjaimellisesti viime hetkellä.

Nimikylttiä ei näkynyt rekisteröinnissä! Sainkin sen suoraan järjestäjältä, minkä jälkeen konferenssi sujui kuin rasvattu salami, tai käärme. Taukoja oli sopivasti ja tekniikkakin toimi paremmin kuin yleensä tällaisissa tapahtumissa. Hektisen aamun jälkeen oli mukavaa viettää päivä kitkattomasti soljuvassa tapahtumassa.

Nähtävissä netissä

Mainitsemisen arvoista on etenkin se, että PyCon kuvattiin ensimmäistä kertaa ammattilaisten voimin, ja kaikki talkit tulevat myöhemmin nähtäväksi YouTubeen. Konferenssissa oli kaksi erillistä trackiä, joten kaikkia puheita ei ehtinyt näkemään livenä, vaikka olisi miten halunnut. Onneksi ne voi nyt tsekata jälkikäteen netistä. Kaikki näkemäni puheet olivat hyviä, mutta tässä kohokohdat.

Kafka – jonojärjestely täydellisellä logituksella

Keynotesta on tietysti pakko sanoa pari sanaa. Spotifyn Jyrki Pulliainen esitteli puheessaan Solid data structures in Python with logs Kafkaa, joka on LinkedInin kehittämä viestijonojärjestelmä täydellisellä logituksella, jota pystyy myös hajauttamaan. Homman juju on siinä, että viestijonon voi palauttaa aiempaan tilaan ja kelata eteenpäin haluamaansa pisteeseen. Ehkä mielenkiintoisin käyttökohde tälle olisi tietokantamuutos, jossa luodaan uusi tietokanta päivitetyllä schemalla ja ajetaan vanhan tietokannan transaktiot Kafkasta sisään. Se ei tosin sovellu hyvin töihin, joissa täytyy yrittää uudelleen epäonnistunutta tehtävää, koska jokainen tehtävä on uusi transaktio.

Hakukone, johon asianajajat rakastuvat

Priidu Kull on entinen asianajaja, nykyinen koodari. Hän kertoi puheessaan Building a Product for Legal Professional projektistaan, jossa hän pyrkii luomaan hakukoneen lakidokumenteille. Hakukoneen päämääränä on olla sellainen, että juristit käyttävät sitä mielellään. Hakukone rakentuu asianajajien workflow’n ympärille. Tästä talkista teki erityisen mielenkiintoisen se, että puheen lopuksi Kull keskusteli yleisönsä kanssa projektinsa sisällöstä ja kysyi heidän näkemystään sen ongelmakohdista. Keskustelua syntyi etenkin siitä, miten haut olisi parasta toteuttaa – tekstien hakeminen kun ei ole ihan helppoa. On hienoa nähdä koodaaja avoimena ja vielä hienompaa, kun hän on harvinaisesti sekä asianajaja että koodaaja. Tämän lisäksi opin, että virolainen oikeusjärjestelmä ei ole aivan samanlainen kuin suomalainen.

Python vs. haittaohjelma

F-Securen Matteo Cafasso kertoi ja näytti livenä talkissaan Hunting malware with Python kuinka haittaohjelmia ajetaan. Puheen aikana pääsi näkemään myös F-Securen vakavaa suhtautumista tietoturvaan. Cafasso kertoi, että läppäriä, jolla ajetaan malwarea millään tavalla, kutsutaan punaiseksi läppäriksi. Tämä tarkoittaa, että jos koneelle on mitenkään saatettu malwarea, edes virtuaalisesti sillä ajettavaan ympäristöön, ei konetta saa kytkeä mihinkään paitsi videotykkiin – eikä etenkään laittaa siihen muistitikkua. Hän näytti kolme erilaista haittaohjelmaa ja kertoi niiden toiminnasta.

Ohjelmistovirheitä voi ennustaa

Tommi Penttisen puheessa Bug forecasting by visualizing code evolution  käsiteltiin sitä, miten ohjelmistovirheitä voi ennustaa visuaalisin menetelmin. Hän viittasi paljon Adam Thornhillin kirjaan Your Code as a Crime Scene sekä käytti samaisen Code Maat -ohjelmistoa versiohallinnan kuvaamiseen. Sillä voi nähdä paitsi koodimoduulien omistajuutta, myös paljonko muutoksia koodi on vaatinut. Tästä voidaan päätellä riskikkäitä alueita ja mahdollisia puutteita testauksessa. Jos tällaiset haasteet havaitaan ajoissa, voi niihin myös puuttua ennen kuin nk. tekninen velka kasaantuu holtittoman suureksi ja korjaaminen tulee kalliimmaksi kuin heti hyvin tekeminen.

Lightning talkit

Lightning talkeja oli vain muutama. Niiden lisäksi PyConin sponsorit pitivät omat puheenvuoronsa. Suurin osa niistä oli odotesti rekry-puheita, paitsi Local Bitcoinsin, joka keskittyi Bitcoin-maailman tapahtumiin ja Bitcoinia muistuttaviin muihin blockchain –teknologioihin. Oli virkistävää, että kerrankin sponsori ei ollut vain rekrytoimassa, vaan esitteli uusia näkemyksiä.

Pluginit Pythonissa

Oma talkkini oli nimeltään Plug in with Python. Kerroin sen aikana, mitä pluginit ovat ja miten niitä voi koodata sovelluksiin. Itseäni kiehtoo ohjelmien eräänlainen väärinkäyttö, eli toiminnallisuuden muokkaaminen. Kävin läpi hieman erilaisten ohjelmistojen plugin-arkkitehtuureja ja omaa aiempaa koodia. Valmisteluksi olin tehnyt yksinkertaisen tekstinmuokkaajan PyQt5-käyttöliittymäkirjastolla. Lopuksi tein myös hieman livekoodausta, joissa näytin yleisölle, miten hommat hoituvat käytännössä.

Mitäs Dockerille kuuluu?

PyConin lopuksi oli perinteinen illallinen, jossa päästiin jatkamaan tauoilla lupaavasti alkanutta verkostoitumista. Yksi konferenssien parhaita puolia on se, kun pääsee näkemään tuttuja, joita ei niiden ulkopuolella juuri kohtaa. Lisäksi tietenkin pääsee tapaamaan aivan uusia ihmisiä. Jatkoilla juttelimme paljon Dockerista ja siitä, kärsiikö se samoista ongelmista kuin vuosi sitten. Vuosi sitten oli paljon keskustelua esimerkiksi virheviestien logituksen vaikeudesta ja parhaiden käytäntöjen puuttumisesta. Parhaat käytännöt ovat ilmeisesti kehittyneet hyvin viime vuoden aikana, ja logitukseen on jonkinlaista ratkaisua. Pienten terävien kulmien takia minusta ei tullut suoraan Docker-fania; se ratkoo kyllä ongelmia, mutta ongelmiin on muitakin päteviä ratkaisuja. Siitä huolimatta heräsi halu päästä perehtymään siihen tarkemmin. Päivä päättyi rennosti oluttuopilla One Pintissa.

 //Kuva: Tambako the Jaguar, Flickr

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *