JFokus 2014 loppuraportti

Osallistuin tänä vuonna JFokukseen sekä kuuntelijana että myös näyttelyn puolella yläkerrassa. Meillä oli täkynä LeapMotion laite ja se herättikin huomiota. Olen jo aiemmin bloggaillut sen koodailusta, joka on erityisen hauskaa Java 8 Lambdoilla ja JavaFX:llä.

With Great Power Comes Great Responsibility

Seminaarissa näytti toistuvan jo viime vuoden San Fransciscon JavaOne seminaarin teemat – osittain jopa samat luennot, slidet ja vitsit. Kuumia pääteemoja näyttää tälläkin vuodella olevan:

  • Tuleva Java 8 ja sen kaikki muutokset,mutta erityisesti Lambdat
  • Internet of Things muodossa: Halpoja laitteita jotka mittaavat/ohjaavat, helposti koodattavissa
  • Reaktiiviset käyttöliittymät ja JavaScriptin uusi tuleminen

Itse innostuin myös uudella tavalla Stream API:sta. Kuten Venkat Subramaniam sanoi jo JavaOne seminaarissa – Lambdat ovat porttihuume, ja Streamit ovat se kova huume johon ne johtavat, ja joista on vaikeampaa päästä eroon. Streameissä manifestoituu kaikki se uusi hyvä (ja huono) mitä Java versio 8 tuo mukanaan, ja ne tuovat valtavasti voimaa koodaajan arkeen.Ja niitä voi alkaa käyttämään heti. Tätä heijastaen Tieturin Java 8 kurssilla Streamien osuutta tullaan syventämään.

Venkat puhuu Lambdojen ja Streamien voimasta

Java 8 julkaisu on 18. Marraskuuta – oletko valmis? Release Candidate 1 on saatavilla heti, ja paljon tietoa. Uusien piirteiden myötä tulee uskomattomasti voimaa – tehokkuuta ja koodauksen selkeyttä – mutta myös vastuuta ja sudenkuoppia. Paras alkaa treenaamaan, montaa vuotta näitä ei voi väistellä enää. Itse ajan RC1 versiota Java 8:sta Raspissani ja muutama muukin päivittäisessä käytössä oleva työkalu on suoraan JDK 8:lla rakennettu.

Java 1.8.0 RC1 in Raspberry Pi

Mielenkiintoista on myös,että koska tämä ei ole Oraclen seminaari, myös Google näkyi täällä, ja osallistuin mielenkiintoiseen esitykseen tänä vuonna julkaistavasta Google Glass-älylaseista. Pär Sikö piti hyvän esityksen niiden ohjelmoinnista. Ne ovat näemmä käytössä jo mm. palomiehellä ja parillakin lääkärillä työssä, ja koodausmahdollisuudet sen kun vain lisääntyvät.Uuden GTK rajapinnan myötä monetkin Android 4:lle kehitetyt sovellukset ovat siirrettävissä uuteen käyttöön – kunhan vain käyttöliittymän rajoitukset huomioidaan.

Google Glass - What's Best In Life?

Tuli itsekin kokeiltua niitä – lasit reagoivat kiitettävän nopeasti komentoihin ja näyttö on kirkas,selkeä ja hieno. Käyttöliittymä saa tottumattoman takeltelemaan, etenkin kun jotain menee pieleen. Mielenkiintoista miten olemassaolevat Android kehitysvälineet – ja myös osaaminen – sopivat suoraan tälle.

JFokus

Ruotsin JFokus on skandinaavisen softakehittäjän kannalta mielenkiintoinen ja helposti saatavilla oleva seminaari jota voin lämpimästi suositella.

JFokus 2014

Matka alkoi taas kohden Tukholmaa – määränpäänä JFokus 2014 – Ruotsin suurin kehittäjäkonferenssi. Sisältö näyttäisi suuntautuvan samantapaiseksi kuin JavaOne viime vuonna – luvassa siis Lambdoja ja Esineiden Internettiä IoT – kaikenlaista kiinnostavaa.

Minä tulen tänä vuonna päivystämään Tieturin/Informatorin standilla – hihasta voi tulla nykäisemään tai osallistumaan LeapMotion laitteen arvontaan. Toivon mukaan ehdin pari esitystäkin kuuntelemaan.

http://www.jfokus.se/jfokus/

JFokus 4/4 – Se oli siinä

Scalasta

JFokuksen toinen eli viimeinen päivä on nyt ohi ja viimeiseen asti riitti tiivistä asiaa. Toisen päivän kuningasteemana oli Scala. Scala ninjailu veti salin niin täyteen että osa joutui seisoskelemaan pitkin käytäviä. Hauska esitys toi tunnissa esille olennaiset piirteet hyvin tiiviissä paketissa, ja tuotiin myös esille sudenkuoppia ja pulmia joita aloittelija kohtaa. Suomessa ensimmäinen Scala kurssi on myös pidetty, ja jatko-osia tahkotaan syksylle. Itse pidän Scalaa hyvin raikkaana tuulena kuutisentoista vuotta Javaa tahkonneena. Onko Java uusi Cobol ja Scala uusi Java? Ehkäpä ei, mutta kokeile molempia ja muodosta oma mielipiteesi.

Scalan kehittäjä Martin Odersky piti myös esityksen kokoelmista, ja siinä sivussa Scalan ilmaisuvoimasta, ja antoi myös roadmappia mitä uusissa versioissa on tuloillaan. Kun ytimien määrä ja rinnakkaisuuden tarve alati kasvaa, tarvitaan perinteistä säieohjelmointia tehokkaampia malleja, nimenomaan ohjelmoijan kannalta. Scalan kokoelmissa on paljon funktionaalisia ominaisuuksia joita hyödyntämällä sovelluksen käyttöä voi helposti skaalata ylöspäin.

Scrum, Kanban ja ketterä suunnittelu

Scalan ohella päivä täyttyi sitten HTML 5:lla ja ketteryydellä. Olen jo aiemmin nähnyt mihin HTML5 pystyy joten se on kovin kiinnostava uusi suuntaus, mutta toisaalta ei kovin monimutkainen. HTML harrastajille siinä on paljon uutta, mutta ohjelmoijille taas aika suorasukaista tekniikkaa. HTML harrastajilla tarkoitan tässä niitä lukuisia jotka tietävät että b tekee lihavoinnin ja h1 on otsikko mutta eivät tiedä mitä span tekee tai miten tehdään toimiva lomake. Olen kursseilla nähnyt oppilaiden tekevän jo uskomattomia asioita HTML 5:lla, kun heillä on hetkinen aikaa käytössään, ja Google on myös kärkäs näyttämään erilaisia kikkoja. Aika hyvin tekniikalta jonka virallinen ensispesifikaatio on vamis 2014 😉

Mielenkiinto ketteryyteen oli melkoinen, lisää näkökulmia tekijöiltä ja käytännön kokemuksia. Neal Ford on erinomainen puhuja ja Emergent Design luennossa oli paljon ajatuksia siitä miten käytännössä voit suunnitella fiksusti. Eli ei etupainotteisesti, mutta ei myöskään unohtaen suunnittelu kokonaan. Esityksessä oli mm. testivetoisesta kehityksestä, mutta myös jälkikäteen refaktoroinnista ja teknisen velan merkityksestä. Itseen teki vaikutuksen välineet ja mittarit joilla voi perustella teknisen velan purkamista projektin tilaajapuolelle. Neal Ford mainitsi SOA:n esimerkkinä tarpeetoman monimutkaisesta antipatternista 😉

Henrik Knibergillä oli erinomainen esitys Scrum ja Kanban käytännöistä: Tarkasti ottaen 15 loistavaa vinkkiä. Mitään kovin ristiriitaista ei esitetty, vaan osa ideoista oli hyvinkin tuttuja, mutta muutama hyvin perusteltu juttu taas herätti mielenkiinnon: esim. älä laske tuntimääriä taskeille, ja tee automatisoidusta testauksesta oma backloginsa josta osia virtaa ajan myötä sprintteihin hyvin priorisoituna. Tämä oli käytännössä päivitys alan perusteokseen Scrum and XP from the trenches – ja osa asioista mitä tuossa kirjassa rummutettiin olikin nyt listalla asioita joita EI pidä tehdä. Näin muuttuu maailma neljässä vuodessa 😉

Eli päivä alkaa olla paketissa, ja alkaa matka takaisin Helsinkiin. Jälkimietteinä Java näyttäisi voivan vahvasti, ja niin koko IT ala. Innovaatio on taas vahvaa ja paljon tapahtuu. Aika palata sorvin ääreen ja alkaa käyttämään uusia asioita liikearvon tuottamiseen 😉

Tässäpä muutama linkkiresurssi reissua koskien:

http://www.infoq.com/minibooks/scrum-xp-from-the-trenches

http://en.wikipedia.org/wiki/Cyclomatic_complexity

http://javancss.codehaus.org/

http://www.jfokus.se/jfokus/

http://vaadin.com/home

Sekä tietysti:

http://www.tieturi.fi/java

JFokus 3/4

No niin, puolet seminaarista on nyt lusittuna.

NoSQL on saanut konferenssissa paljon huomiota vaihtoehtona, mikä on hieman hupaisaa kun pääsponsorina on suuri relaatiokantavalmistaja. Itse suhtaudun NoSQL ratkaisuihin vielä varauksella. On paikkansa missä ne ovat hyviä, mutta mitään järisyttävän uutta ei ideassa ole. Hiljattain juolahti omaan mieleen ajatus mikä voi olla täysi susi..  tai sitten neronleimaus. 90-luvulla työskentelin agenttitiimissä tutkien älykkäitä agentteja jotka liikkuvat verkostossa. Ja hiljattain pohdin tietokantojen toimintaperiaatetta.. Sitä miten älykkyys on siirtynyt pitkälti kannoista businesslogiikkakerroksiin.. Mutta mitä jos kantapalvelimet omaisivat yksinkertaisen rajapinnan ja osaisivat keskustella suoraan keskenään? Ja rajapinnan kautta voisi lähettää sopivan kriteeripaketin, jossa voi olla suoritettavaa logiikkaa.. Ja mitä jos palvelimet osaisivat keskenään reititellä haut kaikkialle missä niitä tarvitaan, ja suorittaa ne, ja aikanaan palauttaa vastaukset takaisin.. Eli tällaisista haaveilen. Tämä olisi toki tehtävissä esim. ESB ja SOA tekniikoin mutta pohdiskelin vain ajatusleikkinä älykästä kantaklusteria jossa agentit liikkuvat ja suorittavat rinnakkaisia hakuja.

Android

No niin, sivurönsy siinä, NoSQL on joka tapauksessa pop. Toinen asia mikä on pop – ei suurena yllätyksenä – on Android alusta. Siinä missä erään matkapuhelinvalmistajan uusin Microsoft strategia pommitti osakekurssit takaisin 2000-luvun alimpiin tasoihin, ja hävitti taivaan tuuliin 4,4 miljardia arvoa, ja aikaansai  osakkeenomistajien kapinaliikkeen.. Android se jatkaa porskuttamistaan ja kasvattaa markkinaosuuttaan.

Disclaimer: Todettakoon kuitenkin että historia vasta näyttää päätösten viisaudet, ja Windows Phone 7 vaikuttaisi olevan paljon aiempia tekeleitä parempi alusta. Toisaalta historia myös kertoo että Microsoftin kumppanuushankkeet ovat usein olleet turmiollisia partnereille, ja Microsoft ei ole ollut tunnettu innovaatioistaan viimeisinä vuosikymmeninä. Google Android alusta pääsee myös kiinni Googlen lukuisiin sähköisiin palvelurajapintoihin, kuten haku, käännös, kartat, ja ties mitä tulevaisuus tulee vielä pyörittämäänkään mielettömässä hajautetussa myllyssä. Juuri palvelut on pääsyy miksi uskon Android alustaan ohi muiden. Mutta onhan se kiva että alustaan tulee uusia piirteitä. Toinen asia mikä mobiililaitteissa kiinnostaa on tulevaisuuden käyttöliittymät ja tulevaisuuden sensorit.

Seminaarissa oli esillä mm. Android pelien fysiikkamallinnus ja Sony Ericssonin uusimmat tuulet.. Niistä kävi kertomassa Erik Hellman, ja esillä oli mm. Sonyn Playstation Android XPeria Play, joka on siis PSP:n jatko-osa, mutta täysin Android vetoinen. Esityksessä pohdiskeltiin myös kolmiulotteisia käyttöliittymiä jotka ovat mahdollisia mm. raa’an prosessoriväännön vuoksi, sekä turbobuustattua multitouchia, jossa ei tyydytä enää yhden tai kahden sormen käyttöön vaan jopa kolmen tai useamman, ja erilaisten eleiden käyttöön ohjauksessa. Lisäksi on mahdollista käyttää kosketustapahtuman voimakkuuslukemaa, joka kuvaa siis sitä miten laajalla pinta-alalla painallus tapahtuu. Tästä saa taas uuden dimension käyttöön, mieleen tulee esim. siveltimenveto, tai kohdistimen siirto vs valinta, jne.

Puhetta oli myös antureista ja ANT+ protokollasta jolla Android voi seurata langattomasti esim. sydämensykettä ulkoisista antureista. Tämä mahdollistaa esim. lääketieteen sovelluksia jotka seuraavat ja raportoivat sydämen tilasta vaikkapa reaaliajassa – halvoin kustannuksin ja käyttäjälle lähes näkymättömästi. Mielenkiintoinen eyecandy oli myös 3d-taustakuva joka voidaan laskea mistä hyvänsä 2d-kuvasta ja muuttaa 3d käänneltäväksi. Kuulostaa ehkä pieniltä asioilta mutta yhtäkaikki vaikuttavan näköistä. Itsekin odotan kovasti uusia asioita 2011 vuoden Android puhelimilta..

Gigahertsin tuplaydinprosessorilaitteilta joissa on tusinan verran antureita voi jo odottaa innovaatioita – ensimmäinen PC kone jolla aloitin koodailemaan oli 4 megahertsiä ja sekin oli aikanaan jo paljon.. Nyt taskusta löytyy jo aika uskomatonta tehoa – muutama vuosi sitten ajoin C64 emulaattoria Androidini sisässä, ja siihen riitti paljonkin nöyremmät prosessorit. Monella on rannekellossaan jo tehokkaammat prosessorit kuin ammoin kuusnepassa, ja hyvin sekin veti.

SOA

Omalta osaltani päivä päättyikin sitten Jeff Genenderin vauhdikkaaseen esitykseen SOA vinkeistä. SOA on itselle sen verran lähellä sydäntä oleva asia että paljoa uutta ei esityksessä tullut, mutta toisen konkarin mielipiteet vahvistivat omia, ja asiat oli hauskasti esitetty ja hyvin perusteltu. Yksi ajatus jäi bonuksena mieleen.. Ei ole oikeaa tapaa tai menetelmää tehdä SOA:aa, ja olosuhteista riippuen hyvä design pattern voi toisissa olosuhteissa ollakin antipattern.

Joka tapauksessa, päivä päättyi tapahtumaan jossa oli paljon syötävää ja liian vähän juotavaa. Tulin jututtaneeksi suorituskyky-expertti Kirk Pepperdineä, ja aiheena oli mm. Scala kääntäjän suorituskykyparannukset sekä Actorit. Ja teemaan liittyen, huomenna sitten uusi päivä, jota ajattelin ladata runsaalla määrällä Scalaa. Yksi esitys on Martin Oderskyn, ja käsittelee kokoelmien suorityskykyä ja rinnakkaiskäsittelyä.

JFokus 2/4 – tarinoita Tukholmasta

No niin, edelleen ollaan siis Tukholmassa ja JFokus konferenssissa. Osallistujia täällä on hieman yli 1100, joista se satakunta tuli Suomen puolelta aamulautalla.

Aamun avasi räväkästi Henrik Ståhl Oralelta, ja mitä keynoteihin tulee tämä oli piristävää vaihtelua. Henrik puhui Oraclen ahneudesta ja arvosteli Oraclen toimintaa Machiavellin silmin 😉 Toden sanoakseni esitys oli hyvin huumoripitoinen, yllättävänkin suora ajoittain, ja siinä vastattiin taas hyvin kysymyksiin joita Java kehittäjät ovat pohtineet ja myös julkisesti ruotineet. Javan ja Oraclen näkymiä luotailtiin kolmesta näkökulmasta: Niccolo Machiavellin, Duken, sekä rahan jumalan Mammonin.

Machiavellillä on muuten ollut jo aikanaan PR puoli hyvin hallussa, monet viisaudet pätevät (entistä enemmän) tänä päivänä. Pelottavaa.. Oli miten oli, aamu oli kiintoisa ja rentouttava. Esityksen lopussa tuli myös esille roadmap ajatuksia aina Java 9:ään asti. Nyt kannattaa kaikkien kynnelle kykenevien pistää ehdotuksia HotSpot + JRockit JVM yhdistelmän nimeksi, tai muuten sen nimeksi tulee Fusion JVM 😉

Esityspuolelta mieleen jäi Oraclen standin Brainwaves peli jossa piti aivonsa alfa aallot rentouttamalla saada kuula leijumaan ilmassa mahdollisimman pitkään. Tiedä sitten onko hyvä asia mutta kun pistin anturit päähäni kuula pomppasi melkein samantien kattoon, liekö sitten tuo aivojen tyhjentäminen vahva puoleni. Valitettavasti kuulan liikkeistä innostuminen toi aktiviteetia ja tipautti kuulan maahan. Paikallinen ennätys oli 22 sekuntia leijuntaa (eli tyhjä pää), ja kuulemma joiltakuilta onnistuu pari minuutiakin. Itseä kun nuo UI puolen asiat aina kiinnostavat, ja kun en usko että monitori, hiiri ja näppäimistö on se lopullinen ratkaisu tietokonetta käskyttäessä, niin tällaiset poikkeukselliset ratkaisut kiinnostavat. Tuossa linkit vielä Neurosky laitteeseen ja yleensä aiheesta: http://www.neurosky.com/ http://gajitz.com/mind-games-four-games-you-control-with-your-brain/

Brainwaves anturien oikea käyttö on liikkumisrajoitteisten ihmisten käyttöliittymissä, ja keskittymällä kuulaa pystyikin ohjaamaan. Kontrolli oli vielä omasta yrityksestä kaukana mutta eiköhän tuossa muutamassa päivässä olisi jo vauhdissa. May the Force be with you!

Sieltä sitten takaisin maan pinnalle. Eric Evans puhui ketterästä DDD:stä, Domain Driven Developmentista, ja sen sudenkuopista ja parhaista käytännöistä. Toistuvana kaavana suomalaisten firmojen kanssa olen aika ajoin kuullut miten ketteriä menetelmiä kuten Scrum:ia kirotaan alimpaan manalaan ja haukutaan miten ne eivät toimi. Useimmiten kun kuulen tällaista ja kyselen lisää, selviää kaksi asiaa aina toistuvasti: 1) Projektissa ei olekaan Product Owneria ja piirteiden priorisointia, vaan kyseessä onkin Scrummerfall eli on tehty speksit, on tehty suunnittelu alussa, ja sitten ohjelmoijatiimille sanotaan että olkaa ketteriä. Ja 2) on aamupalaverit ja iteraatiot, mutta toteutuksen osalta on lähinnä omaksuttu että ei suunnitella, eikä dokumentoida varsinkaan, eli jätetään suunnittelu ja testaus kokonaan pois iteraatiosta ja hakataan vain päätä seinään tekemällä lyhytnäköistä koodia jota ei ehditä saamaan iteraatiossa edes valmiiksi. Tässä esityksessä ei suoranaisesti menty Agile menetelmiin tai prosesseihin, vaan käytiin läpi miten DDD:tä voi tehdä hyvinkin luonnollisesti keskustelujen kautta.

Tähän väliin hieman kehuja Vaadin frameworkille tehdystä seminaarin aikatauluohjelmasta, ainakin vielä osoitteessa http://www.jfokus.se/jfokus/page.jsp?id=vschema ja http://code.google.com/p/devoxx-schedule-2010/ – varsin näppärä ja toimiva kontrolli ja sovellus. JFokushan fiksusti julkaisi REST rajapinnat joilla seminaaritietoja saa esille.. Ihan piruuttani koodasin itsellenikin niiden varaan Android mokkulan, joskin jaossa oleva virallinen versio on huomattavasti parempi. Mutta oma on aina oma vaikka onkin ruma.

Hupaisa yksityiskohta: IPhonellekin oli tehty seminaarisofta, mutta se ei ole ehtinyt hyväksyntäprosessien läpi vielä joten iPhone mistajat… sorry! 😉 Henrik Ståhl muuten lipsautti aamun keynotessaan miten Javan tavoite on pyöriä myös iPhonessa tulevaisuudessa, saapa nähdä oliko tässä konkretiaa vai unelmointia..

JFokus 1/4 – hyvää syntymäpäivää Vaadin!

No niin, keskellä talvilomaa on aikaa käydä seminaareissakin vaihteeksi. Kohteena on Tukholmassa järjestettävä Java-kehittäjien seminaari JFokus, ja päätin lähteä matkaan Vaadin porukan sponsoroimalla laivaristeilyllä, joka sisältää mm. luentoja ja verkostoitumista.

Silja Europa risteily sujui mukavasti, ja päädyin lumiseen Tukholmaan jossa pakkasasteita on n. puolet siitä mitä Helsingissä tällä hetkellä – käytännössä siis melkein lämmin rantaloma. Osallistuin eilen tilaisuuteen jossa kävi ilmi että suosittu Vaadin framework on melkeinpä päivälleen 10 vuotta vanha – kun huomioidaan sen juuret. Nykyisessä GWT vetoisessa muodossahan se ei ole montaa vuotta ollut, mutta serveripään koodi on ollut lähes saumattoman yhteensopivaa alkuajoista alkaen. 10 vuotta vanha vaadin taitaa olla jo aika poro. 😉 Edelleen pidän Vaadin frameworkissä siitä miten komponentisointia ja uudelleenkäyttöä on viety äärimmilleen GWT:n avulla – mutta serveripään tilanhallinnalla on saatu kevennettyä kovasti paljon AJAX tietoturvapulmia – lukuisat AJAX sovellusten tietoturvareiät ovat muuten asia josta muuten tulevina vuosina tullaan vielä seminaareissa jauhamaan.  Tällä hetkellä niitä lähinnä hyödynnetään 😉

Illan luennoissa Arun Gupta Oraclelta kävi kertomassa miten OSGI, Glassfish ja Java EE 6 pelaavat yhteen, ja jälleen kerran syntyi uusia ideoita ja ymmärrystä. OSGI vetoisuus on varmasti sovelluspalvelimille hyvä asia, koska käytännössä niitä monet haluavat kustomoida, ja OSGI mahdollistaa mahdollisimman sulavan modulaarisen rakenteen, jonka avulla saadaan mm. nopeampi kännistyminen kun turhia palveluita ei ladata, ja sujuvampi päivitys kun uusia palveluita tarvitaan lisää.

David Chandler Googlelta kävi kertomassa GWT:n uusista kujeista ja antoi nipun tehovinkkejä siihen, miten GWT:stä saa kaiken irti, mm. miten JavaScript kääntämisvaihetta voi rutkasti nopeuttaa kehityksen aikana. Mieleen jäi myös uusi HTML 5 Canvas widget. Hupaisaa muuten miten W3C:n roadmap HTML 5 suhten on julkaista finaaliversio 2014… 😉 Kovasti sitä käytetään jo nyt.

Tässä vaiheessa uupumus voitti ja jouduin vetäytymään hyttiin herkkää aamuviiden herätystä varten. Kuulematta jäi Vaadin frameworkin tulevista piirteistä, mutta yritän paikata aukon sivistyksessä myöhemmin. Joka tapauksessa, Tukholmassa ollaan, ja nyt on aika poimia materiaalit ja aloittaa seminaarin päivä 1. Luvassa itselleni mm. Scalaa ja Androidia. Ja jos haluaa etäältä seurata tapahtumia reaaliajassa, twitter avainsanat #Jfokus ja #vaadin toimivat, samoin kanavat @Jfokus ja @Vaadin