Kohti Reinvent 2017 seminaaria

Vannoin itselleni että jättäisin tänä vuonna ulkomaan seminaarit sikseen, osittain iloisten perhetapahtumien johdosta, osittain kiristyvän maailmanpoliittisen tilanteen johdosta. Etenkin jenkkeihin on aika raskasta lentää, ja rajalla saa varautua kaikenlaisiin kummallisuuksiin, riippuen juuri sen viikon tilanteesta. Mutta kaikesta huolimatta näyttää että nokka vie kohti Las Vegasia, muutaman viikon päästä. Tuli tilaisuus lähteä, ja en voinut sitä missata.

https://reinvent.awsevents.com/

Re:Invent on AWS pilvipalveluiden suurin tapahtuma. 40 000 uuden rakentajaa kokoontuu yhteen, opiskelemaan ja yhdistämään tietojaan siitä, miten moderneilla pilvipalveluilla voidaan tuoda ihmisten arkea helpottavia ratkaisuja. Ja tietystikin, miten voidaan luoda uusia, ennennäkemättömiä innovaatioita.

Olen hivenen innoissani. Seminaarireissuja on tullut nähtyä aiemminkin, ja ne ovat aina mukavia tilaisuuksia ristiinpölyttää vähän kokemuksia ja näkemyksiä. Suomessa on lopulta aika pienet piirit ja ennen pitkää on tullut nähtyä variaatiot mitä tulee vastaan, ja tietysti projektejakaan ei aina tehdä siinä mittäkaavassa, mitä jenkkilässä voi osua tutkaan. On yksi asia kuulla jostain AWS palvelusta tai teknologiasta teoriatietoa, ja aivan toinen asia on kuulla mitä sillä on tehty, ja miten homma on onnistunut – tai ei.

Taas kerran on valinnan vaikeutta ilmassa. Yli 1000 perussessiota, ja kaikenlaisia ihania workshoppeja luvassa. Mahdottoman vaikeaa priorisoida ne parhaat. Onneksi meidän pajasta lähtee tällä kertaa vähän isompi iskuryhmä, niin voidaan vähän jakaa mielenkiinnon aiheita. Esim. analytiikan koneoppimisen puolelta on jo vahvaa edustusta. Itse aion sukeltaa tuonne devaajahattu päässä. Eniten kiinnostaa tietysti kaikki.

Omaan kalenteriini menee siis syväsykelluksia palveluihin, jotka jo tunnen, sekä pieniä tutustumisia aivan uusiin asioihin. Yksi kenttä, jota en ole vielä päässyt työhommissa luotaamaan, on Alexa puhekäyttöliittymä käytännön ongelmanratkaisussa, eli otin sitä puuhasteltavaksi vähän. Kuten olen useasti todennut, näppäimistö ja hiiri on niin arkaainen käyttöliittymä koneälyyn, että edelleen ihmetyttää että niitä käytetään kaikkialla. Johonkin ne sopivat, ja tietysti jossain ne ovat varsin nostalgisia. Mutta kun mietitään nykypäivän laitteiden verkostoitumista ja älykkyyden ja oppimisen tasoa (ja vääntöä ja muskelia), on ainakin mahdollisuus kokeilla jotain uutta. En tiedä onko se äänikäyttöliittymä, mutta omassa varovaisessa käytössä, ja muutamassa toteutuneessa digitalisaatiossa, jota olen seurannut, se on ainakin alustavasti hitonmoisen lupaava suunta.

Mitäs muuta otan mukaan? Suunta kohti serverless teemaa ainakin kiinnostaa. Meidän pajan Data Science-poppoolle se on jo arkipäivää, mutta devauspuolella voitaisiin ottaa rohkeampiakin askelia. Uudet (no uudet ja uudet…) teknologiat kuten Lambdat, streamit, kaipaavat devauspuolella tuekseen automaatiota, johon ollaan laadukkassa softatoimituksessa totuttu. Jatkuva integraatio, jatkuva testaus, jatkuva toimitus, vaativat vähän yhteensovitusta kun avataan käyttöön koko AWS paletti. Tästä teemasta otin pari sessiota ajatusteni tueksi, ja odotan mielenkiinnolla.

Kaikken eniten kuitenkin odotan taas sitä tilaa sessioiden välissä. Sessioista suurin osa valuu kuitenkin verkkoon ennen pitkää, ne voisi katsella kotisohvaltakin. Se mitä ei kotisohvalta koe on ne vertaiskeskustelut, innovointi, ideointi, haaveilukin, kontaktit, verkostot, omien ajatusten ravistelu ja kyseenalaistus, monipuoliset näkökulmat, ja miksei myös uudet tuotteet ja palvelutkin, mitä on tarjolla. Siinä on se syy, miksi jaksaa veivata toistakymmentätuntia ahtaassa metallituubissa kahteen suuntaan, jet lagien kera.

P.S. Jos luit tämän, ja olet itsekin menossa, voidaan vaikka moikata paikan päällä!

 

Mainokset

Raspberry Pi 2 kotiutui

Posti toi mukanaan paketin, jossa oli uudentuoksuinen Raspberry Pi 2 kapistus. Sille löytyykin heti käyttöä, mutta maltoin napsia pari kuvaa ja jaan vähän ensivaikutalmia tässä. Pahoittelen kuvien Nexus 6-laatua, liikkeellä on paljon laadukkaampaakin kuvitusta 😉

Raspberry Pi 2

Kuten on toitotettua, laite on aiempaa moninkerroin tehokkaampi, 900MHz quad core prosessorilla varustettu, ja kuitenkin alkuperäisen hintainen. Muitakin muutoksia löytyy rautapuolelta.

USB portteja on nyt kahden sijasta hubitettu neljä, ja muistikorttikin on pienentynyt MicroSD-kokoon.

USB Portit

Muistikortit

Komposiittivideo löytyy nykyään audioportista. Muuten tutun kaltainen kapistus. Jaahas, ei sitten muuta kuin käyttistä kortille.

Nyt on valinnanvaraa taas hiukan enemmän. Itse olen tykästynyt ennestään Raspbianiin jossa tulee Oraclen Javaa heti mukana hard floatilla. Mutta tarjolla myös mm. Snappy Ubuntu Corea, Pidoraa, Noobsia, Risc OS:ia, ja tietenkin se Windows 10.

Mutta mennään Raspbianilla vielä toistaiseksi, pari projektia mielessä sen päälle. Ja sinne plutkahti perus-käyttöönoton päälle vanha tuttu Java 8 (kuuluu nykyään distroon, ei vaadi sen enempää), ja uutena tulokkaana node.js, npm, sekä mongodb. Hassua kyllä nämä viimeisimmät vaativat erityisvimpautuksia raspbianiin – mutta eivät toki kovin ihmeellisiä. Tahkosin toimivat komennot scripteinä talteen – postailen ne ehkä vastaisuudessa tännekin. Tässä on vähän varaa valita haluaako kääntää itse vai käyttää muiden tekemiä 3rd party paketteja. Mongon kääntäminen ja asennus vei viimeksi tunteja (siinä muuten hyvä benchmarkki uudelle) joten tuikkasin 3rd party paketeista kaiken kehiin.

Tästä kuuluu ehkä vähän lisää joku toinen kerta 😉

MongoDB Raspberry PI:ssa

MongoDB käännetty, asennettu ja testattu RaspBerry PI:ssa (Kotiserveri Glassfish + EE 7 + Java 8 + MongoDB projekti).

Seurasin ohjeita seuraavista blogeista yhdistellen:

http://c-mobberley.com/wordpress/2013/10/14/raspberry-pi-mongodb-installation-the-working-guide/

http://ni-c.github.io/heimcontrol.js/get-started.html

Toisesta myös Node.js apuja. Joka tapauksessa, hyödyksi on että koneessa oli 512 megaa muistia, hyvä sammutella muistisyöpöt prosessit käännösten ajaksi ja varata tosiaan tunteja aikaa.

Kuva

Sitten katsotaan miten EJB paukuttelee ajastuksia ja logituksia Mongoon. Oisko tämä Big Datan vastakohta? 😉

Java 8 ja Glassfish 4 Raspberry Pihin

No niin, olen taas ollut Cyberhome-projektin parissa, eli tietotekniikkaa omaan kotiin. Projekti etenee laiskasti kun vapaa-ajalla ei jaksa/pysty/huvita ihan kaikkia iltoja koodailla ja säätää. Mutta eilen tuli vähän läpimurtoa taas Raspberry Pi (raspi) minitietokoneen osalta – siitä ja sen serkuksista on tarkoitus tulla autonomisen mutta tarvittaessa mobiilisti ohjattavan kodinohjausjärjestelmän aivot.

Raspberry Pi ohjaa kotia

Raspille on paljon artikkeleita pythonille, mutta päätin tapella siihen sensijaan Java-puolen kuntoon. Jotta saadaan vaikeustaso kohdalleen, uusimman release candidate version Java 8 versiosta. Siinä ei ollut sinällään mitään ihmettä, pudottelin Hard Float version JDK 1.8:sta arm prosesorille, purin sen /opt alle, fiksasin linkit ja ympäristömuuttujat, ja nyt pyörii Java 8 – ja lambdat ja streamit – täysimuotoisena.

Seuraava etappi oli Glassfish 4. Siihen oli yllättävän paljon ohjeistusta, mutta pääosin vain tiputin sen paikalleen /opt alle, ja säädin vähän muistia ja timeout arvoja, tähän tapaan:

<jvm-options>-XX:MaxPermSize=96m</jvm-options> 
 <jvm-options>-XX:PermSize=32m</jvm-options> 
 <jvm-options>-Xmx128m</jvm-options>
<thread-pool name="admin-thread-pool" max-thread-pool-size="50" max-queue-size="256" idle-thread-timeout-seconds="3600"></thread-pool> 
 <thread-pool name="http-thread-pool" idle-thread-timeout-seconds="3600"></thread-pool> 
 <thread-pool name="thread-pool-1" max-thread-pool-size="200" idle-thread-timeout-seconds="3600"></thread-pool>

Jep, se ei ole nopea, mutta se toimii. Full Java EE 7 Stack, plus uudet Java 8 piirteet.

Tämän päälle rojautin sinne MySql ajurit ja kannan. Ja asensin sen automaattikäynnistyväksi ajamalla Glassfish työkalun asadmin create-service. Tässä tulikin pikku pulma. Glassfish käynnistyi kyllä ajamalla sudo /etc/init.d/GlassFish_domain1 – kuten pitääkin. Mutta ei toiminut buutatessa automaattisesti.

Pikkasen yömyöhän kokeilemisen avulla löytyi ongelma yllättävästä päästä – tuossa Glassfish scriptissä tulisi olla oikeanlaiset headerit, ilman niitä se ei asennu palveluksi. Lisäsin sinne seuraavaa ja se alkoi toimimaan:

### BEGIN INIT INFO
# Provides: Glassfish
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

Sitten tuunasin vielä Netbeansin lähettämään työn alla olevat softat suoraan sftp:llä Glassfishin autodeploy-kansioon. Tästä oli hyvät ohjeet ant:lle, mutta halusin tehdä saman Mavenillä – ja pikku säätelyn jälkeen sekin onnistui. Se osuus taas näyttää tältä:

<build>
 <plugins>
<plugin>
 <artifactId>maven-antrun-plugin</artifactId>
 <executions>
 <execution>
 <phase>install</phase>
 <configuration>
 <tasks>
<echo level="info" message="Copying dist directory to remote Pi"/>
<exec executable="d:/utils/pscp.exe" dir="${basedir}">
<arg value="target/${project.build.finalName}.${project.packaging}"/>
<arg value="pi@raspissh:/opt/glassfish4/glassfish/domains/domain1/autodeploy"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Ja nyt on homma aika saumatonta. Tuo ylläoleva toki vaatii lisäksi oikeat työkalut, omassa tapauksessani putty-kirjaston ohjelmistoja, ja tuo raspissh avain pitää luoda ja asentaa paikalleen raspiin jotta salasanoja ei tarvitse kirjoitella vaan autentikointi hoituu lennossa avaimilla.

Päräytin varhaiskokeiluna Java EE 7 mukaisen REST palvelun joka käyttää Pi4J kirjastoa ja kääntää releitä ja kytkimiä ja ledejä päälle ja pois. Siihen päälle HTML5+JQuery käyttöliittymä joka niitä JSON komentoja heittelee sisään ja ulos. Alkaa näyttämään hyvältä. Kiitos Mavenin voin pajautella muutoksia vaikka tekstieditorilla ja asentaa uuden softan komentoriviltä.

Jahka saan vielä paketin vahvavirta-releitä ja vähän konsultointiapua, kodin automaatio etenee taas pykälällä. Tarkoitus on mm. ajastaa lämmitystoimintoja älykkäämmin säilyttäen silti override-mahdollisuudet mm. kännykällä ja ihan vanhanaikaisella Big Red Button(tm):lla.

Tässä pari vinkkiä mistä oli itselle säätäessä apua (mikään ei tietysti toiminut heti heittämällä kuin Strömsössä):

http://www.thehecklers.org/2013/10/27/glassfish4-raspberrypi/

http://blog.c2b2.co.uk/2013/06/getting-started-with-glassfish-4.html

https://blogs.oracle.com/speakjava/entry/integrating_netbeans_for_raspberry_pi

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/

Esineiden Internet

JavaOne 2013 seminaarin yllättävä teema IoT – Internet of Things jäi jylläämään päähän seminaarin jälkeen – eniten ehkä siksi että vaikka olen aina ennustellut monipuolisempien päätelaitteiden tulemista, en ymmärtänyt että sitä ei tarvitse enää odotella – se on jo täällä.

2013-09-23 09.40.24

Mutta näin teema avasi silmät siihen miten IoT on jo läsnä, olemassa, ja sitä käytetään isojenkin yritysten toimesta isoissa asioissa. Sen puitteissa on myös kunnon vanhan ajan innovaatiota, sitä paljon kuulutettua sykettä, ja nykyään on hauskoja aloittelijapaketteja joilla pääsee vauhtiin kokeilemaan ideoitaan. Tässä on vanhaa kunnon propellihattu-menoa. Ja kaiken keskelle Java EE 7 serveri kaikkine hienouksineen. 😉

Itsellenihän jäi seminaarista käteen yksi Raspberry Pi mikrotietokone. Olen sillä hieman jo leikkinyt, mutta ajanpuutteen vuoksi en ole ehtinyt mitään kovin ihmeellistä tehdä. Kuitenkin, tuohon 30$ laitteeseen olen asennellut langattoman verkon ja säätänyt sen toimimaan headless moodissa eli ilman näyttöä, näppistä tai hiirtä, asennellut siihen Java 7 u 40 SE version, ja ajellut PI4J kirjaston avulla ohjelmia jotka käskyttävät myös sitä mielenkiintoista GPIO porttia johon voi kytkeä kaikenlaisia vimpaimia. Ledivalot vilkkuvat jo iloisesti Javan käskemänä. Tilasin jenkeistä Adafruitin servonohjaus-piirisarjan (vielä kun ehtii kolvata) ja muutaman servomoottorin sen puolen testailuja varten.

Raspberry PI GPIO väylä on sen parasta antia

Originaali ajatukseni on ollut että nämä Internetin esineet ovat huokeita ympäristöään aistivia sensoripaketteja – jotka lähettävät aistimansa prosessoitavaksi keskuskoneelle. Osoittautui että ajatus oli varsin vaatimaton. Laitteet toimivat myös toiseen suuntaan, aistimisen ohella osaavat myös vaikuttaa ympäristöönsä. Koska tämä puoli on itselle uudempi, sinnehän pitää sukeltaa. 😉 Kehitysympäristönä Netbeans ja Maven.

Muutakin kiintoisaa osuu silmiin. Eilen verkkokauppa.com julkaisi tarinaa  etäläsnä-olosta myymälässä liikkuvalla robotilla. Selkeää propellihattuhommaa, ja kiintoisaa. IT viikon päivän aihe on tänään: Robottiautot tulevat, lait puuttuvat. VTT:n suunnalta on tullut julkaisua otsikolla: Esineiden ja asioiden Internet- seuraava teollinen murros.

Remote presence robot

Älykkäät serveriin ja toisiinsa kytketyt tabletteja tai edes älykelloja monimuotoisemmat vimpaimet tulevat ja ovat jo täällä. Tulevaisuuden keittiö tarjoaa ruokareseptejä ja apua kokkaukseen. Tulevaisuuden kotisairaala tarkkailee terveystietojasi kotosalla tai toimistossa ja osaa kiinnittää huomion muutoksiin ja poikkeuksiin. Tulevaisuuden auto osaa pysäköidä itsensä ilman että kuski on edes sisässä – tai navigoida ja ajaa itsenäisesti kohteeseensa. Sanoinko tulevaisuuden? Tulevaisuus on jo täällä, kaikki tämä toimii jo nyt. Ne pitää vain pakata 10x pienempään nättiin muovikoteloon ja lyödä hintalappu päälle.

 

(Mutta huoh, se tietoturva!)

Ja tuossa muutama IoT linkki näistä aiheista mistä puhuin, jos joku haluaa seurata polkuja tai vain sivistää itseään uuteen suuntaan 😉

http://www.youtube.com/watch?v=Holq_Oz6T3Q

http://www.itviikko.fi/uutiset/2013/10/14/verkkokauppacom-testaa-robottivierailuja-kaupassa/201314252/7

http://www.itviikko.fi/teknologia/2013/10/15/robottiautot-tulevat-lait-puuttuvat-emme-aio-olla-jarruna/201314258/7

http://www.vtt.fi/files/news/2013/smart_lightning/Esineiden_ja_asioiden_internet_Ailisto.pdf

http://www.tietoviikko.fi/kaikki_uutiset/esineiden+internet+voi+mullistaa+ruuanlaiton/a933023

http://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical