Kello on 6:20 ja hieron silmiäni Toijalan rautatieasemalla. Odottelen Helsingin junaa, joka on tietysti hieman myöhässä. Edellisen illan BitHack varasti muutaman tunnin yöunilta, mutta se ei haittaa, onhan edessä ensimmäinen Agile-seminaarini.

Vielä tässä kohtaa en voi aavistaa kuinka samaa mieltä voin olla päivän puhujien kanssa. Mm. responsiivinen organisaatio on toimintatapa, jota edistän omassa roolissani Team Leadina Bitwisella. Tässä kertomuksessa paneudunkin vahvasti Sami Honkosen puheenvuoroon. Lue lisää

Mitä ovat Segelbättrebåt, Keijon pojat, Kumiankka ja kumppanit, Immutable, Immersive, Source ja Rinnakkaisuutta tositarkoituksella?  No, tiistaisen Bithackin seitsemän osallistujatiimiä – tiätty! Vaikka joukkueiden nimiin oli haettu huumoria, oli itse kisaaminen totisinta totta.

Tilaisuuden lämmittelijänä ja  aiheeseen johdattelijana toimi ex-bitwiser, nykyään Sandvikilla työskentelevä Johannes Koskinen. Hän luennoi aiheesta: Rinnakkaisuutta koneenohjausjärjestelmissä – totta vai tarua.

Koskisen Johanneksen luentoa kuunneltiin korva tarkkana.

Tehtävän kimppuun

Tehtävänantona joukkueilla oli toteuttaa abstrakti rajapinta IBitlogger siten, että:

* palautus koostuu yhdestä cpp-tiedostosta
* ohjelma kääntyy ilman varoituksia
* koodin tyyli on yhdenmukainen ja selkeä
* ohjelma tulostaa tiedostoon ja stdout:iin oikealla tavalla muotoiltuja lokiviestejä (aika, loglevel, tiedosto, viesti)
* ohjelma on thread-safe, eli rajapintaa voidaan kutsua turvallisesti useasta eri threadista
* ohjelma on mahdollisimman tehokas

Joukkueet saivat toteutusta varten kaiken muun valmiina, paitsi tehtävänannossa vaaditun cpp-tiedoston, jonka oli tarkoitus sisältää toteutus IBitlogger -rajapinnalle. Lue lisää

On perjantaipäivä. Firman chattiin kilahtaa muistutus pian alkavasta kahvitaukoaktiviteetista. Lähes kaikki bitwiserit säntäävät klo 14 firman kahvioon ja pian kahvikoneelle onkin muodostunut pitkä jono. Osa porukasta on kuitenkin saapunut jo viisi minuuttia aiemmin paikalle ja heidän käyttäytymistään ohjaa maistuvan kahvin lisäksi jokin muu. Juuri uusittu taukotila mukavine sohvineen ei nyt kiinnosta eikä myöskään shakkilaudan peräti jännä tilanne. Sen sijaan porukka marssiikin päättäväisesti kohti kahvion vieressä sijaitsevaa neukkaria. Lue lisää

Vuosi sitten alkanut projekti pääsi eilen välietappiinsa, kun  Bitwisen älykiekkojärjestelmä ja sitä hyödyntävä Tappara-applikaatio olivat ensimmäisen kerran käytössä Tampereen Hakametsän hallissa.

Valehtelisimme, jos väittäisimme, ettei jännittänyt.

Viimeiset viikot projektilaiset ovat tehneet pitkää päivää, jotta kaikki varmasti toimisi H-hetkellä. Jossain vaiheessa on vain pakko laittaa se ensimmäinen versio ulos. Ja meille ja Tappara-applikaatiolle se oli eilen. Kehitystyö toki jatkuu yhtä tomerana edelleen. Lue lisää

Bitwisen Bootcamp on ohjelmistoalan opiskelijoille tarkoitettu työskentelyjakso, jonka aikana he pääsevät osallistumaan oikeisiin asiakasprojekteihin bitwisereiden rinnalla. Työtehtävien lisäksi opiskelijat pääsevät mukaan tapahtumiin, jotka kutkuttavat joko kuntoa tai makuhermoja.

Bootcamp on ollut pidetty konsepti ja se sai hopeaa Vastuullisin kesäduuni 2015 -kilpailun PK-yritysten sarjassa.

Nyt kesä 2017 on ohi ja iloksemme useimmat bootcampiläiset jatkavat bitwisereina – opintojen ohessa. Parhaiten kesäfiilikset kertoo bootcampiläinen itse, joten annoimme näppäimistön yhdelle heistä:

”Tammikuussa 2017 olin malttamaton. Lue lisää

Esittelin kirjoituksen edellisessä osassa kaksi erilaista tapaa toteuttaa tilakone ohjelmointikielen tasolla. Ensimmäistä tapaa kutsuimme tapahtumapohjaiseksi malliksi. Sitten esittelin tästä ”standardimallista” hieman poikkeavan mallin, jota kutsuimme tilaa lukevaksi tai pollaavaksi malliksi. Tässä sarjan viimeissä osassa kuvaan minkälaisia käytännön ongelmia tilakoneen toteutuksessa voi olla, ja miten mallit pystyvät vastaamaan näihin haasteisiin.

Tilaräjähdysongelma

Kun erilaisten tapahtumien ja niitä lähettävien rinnakkaisten toimijoiden lukumäärä kasvaa, tapahtuu tilakoneen tilasiirtymien sekä ulospäin lähtevien käskyjen kaikkien mahdollisten lomitusten määrässä tyypillisesti eksponentiaalinen kasvu. Lue lisää

Kuten sarjan ensimmäisessä osassa lupasin, esittelen tässä osassa kaksi hieman toisistaan poikkeavaa lähestymistapaa siihen, miten tilakone voidaan käytännössä toteuttaa ohjelmointikielellä. 

Ensimmäiseksi tarkastelemme melko suoraviivaista tapaa toteuttaa tilakone. Oletamme, että kielenä on Javan tai C#:n tapainen olio-ohjelmointikieli. Lähestymistavassa tilat ovat luokkia ja tapahtumat niiden metodeja. Esimerkkinä käytämme 1. osassa esiteltyä suljetun tilan valvontajärjestelmää. Lue lisää

Tilakonetta voi käyttää reaktiivisen ohjelmistojärjestelmän mallintamiseen ja toteutukseen tilanteessa, jossa täytyy sekä reagoida reaalimaailmasta tuleviin tapahtumiin että saada vastineeksi aikaan muutoksia maailmassa. Esimerkkinä käytän valvontajärjestelmää suljetulle tilalle.

Tilakoneella tarkoitetaan systeemiä, joka koostuu tiloista ja niiden välisistä tilasiirtymistä. Tilasiirtymiä aiheuttavat yleensä jotkin ulkoa tulevat syötteet, ja ne voivat tuottaa ulospäin näkyviä tuloksia.

Yksinkertaisimmillaan tilakone lukee jonoa symboleita, suorittaa tilasiirtymiä syötteiden mukaisesti ja joko hyväksyy tai hylkää tietyt syötejonot tai tuottaa siirtymien tuloksena jonon tulosarvoja. Lue lisää

Kvanttitietokone on mielestäni konseptina erityisen mielenkiintoinen. Kuitenkin mielestäni liian moni ihminen ei ymmärrä siitä muuta kuin sen mystisyyden, joten kunnianhimoinen kun olen, aion tässä tekstissä yrittää selittää sinulle lukija, mitä tämä fysiikan muotisana oikeasti tarkoittaa! Joten otetaanpa loikka tuntemattomaan, seuraa vain minua.

Joitain kuukausia sitten maailmalla levisi kulovalkean tavoin video, jossa Kanadan pääministeri Justin Trudeau vastaa toimittajan heittoon kvanttitietokoneista. Vaikka pääministerin selitys onkin jokseenkin puutteellinen, antaa se silti jotain kuvaa siitä, mikä erottaa normaalin tietokoneen kvanttitietokoneesta. Lue lisää

Aiemmassa blogikirjoituksessani käsittelin responsiivisen käyttöliittymäsuunnittelun perusteita. Tällä kertaa tutustutaan tarkistuslistan avulla muutamiin mielenkiintoisiin responsiivisuuden haasteisiin.

Uuden web-projektin käynnistyessä ulkoasun suunnittelu tulee yleensä käsiteltäväksi hyvin alkuvaiheessa prosessia. Kaikissa tapauksissa projektin kokonaiskuva ei ole vielä erityisen hyvin selvillä, joten monesti joudutaan varautumaan erilaisiin tilanteisiin, jotka saattavat realisoitua tai jäädä toiveiksi. Ulkoasun kannalta eräs tärkeä alkuvaiheen valinta on se, lähdetäänkö eri laitteita varten tekemään eri versioita sivustosta vai käytetäänkö responsiivista suunnittelua, jonka myötä ulkoasu mukautuu laitteelle sopivaksi. Lue lisää