JavaOne 2011 San Francisco – 3/4

Kolmas päivä JavaOne seminaaria ei lähtenytkään käyntiin keynotella vaan nyt keskitytään tiukkaan asiaan. Tänään teemoja omassa kalenterissani olivat mm. G1 roskankeruun tuunaaminen, JavaFX sovellusten automatisoitu yksikkötestaus, Kinect, sekä JAX-RS uusin versio.

Muutin suunnitelmia viime hetkellä:
 Generational garbage collection tuning osoittautui koskevan IBM virtuaalikonetta ainoastaan, ja sitäpaitsi perusvinkkejä joita olen itse opettanut jo vuosia Tehokas Java kurssilla. menin varasijalla olleeseen esitykseen joka oli dynaamisten scriptikielten turpaanvetokisa. Toisin sanoen JRuby, Groovy, Scala ja Clojure kielten asiantuntijat ottivat toisistaan – tai ainakin toistensa kielistä – mittaa. Yleisö valitsi voittajat demojen ja trash talkin perusteella. Vaikka Ruby sai suosiota ja sen polustaja käytti referenssinä 10 miljardin projektia, yleisö äänesti Scala sekä Groovy kielet jaetulle voittajasijalle. Hännänhuipuksi jäi odotettavasti Clojure. Kaikki näistä kielistähän ovat mielenkiintoisia,mutta kaikkea ei voi osata jokainen yhtäaikaa. Tieturikin on panostanut näissä Scalaan toistaiseksi, tosin Groovy ja Grails alkavat jo ylittää uutiskynnystä niinsanoakseni. Ja itse pidän myös Jruby ja Ruby On Rails tyylistä.Tämä on muuten kirjoitettu ipadillä, ykkösversiolla. Sen näppis on häkellyttävän hyvä nopeaan kymmensormijärjestelmään tottuneelle. Testasin rinnan Motorola Xoom näppistä, ja se on jostain kumman syystä käsittämättömän hisas ja kankea. Ja miksi shift näppäintä on pakko painaa ensin ja erikseen kun applessa sen voi painaa totutusti pohjaan ja kirjoittaa monta isoa kirjainta samalla kertaa? Haluan androideihin paremman näppiksen! Pari kirjoitusvirhettä sallittakoon, iPadin touchpad näppis on vain _melkein_ yhtä hyvä kuin aito näppis 😉

No niin, seuraava tuleva versio Java ee7:stahan tulee olemaan kiintoisaa. Siitä puhutaan jo nyt tulevaisuuden PaaS standardina. Se ei kuitenkaan ole kaikki mitä on tuloillaan, tässä pari makupalaa:

– EJB 3.2 tulee sisältämään uudistuksia jotka pääosin liittyvät tuohon multi-tenancy piirteeseen, eli ajoon eri ympäristöissä, pilvessä tai ei, ja tietysti lisää annotaatioita, parempi yhteensopivuus muiden EE perheen tekniikoiden kanssa, jne.  Ehkä kiinnostavin ja mullistavin piirre olisivat uudet QoS annotaatiot sekä Cache API.

– JSF 2.2 tuunaa muutamaa pikkuasiaa. Esim nykymallissa monet EE annotaatiot toiivat lähinnä managed beaneissä, tulevassa versiossa myös validatoreissa, konverttereissa, custom komponenteissa, jne. Lisäksi luvassa paljon hienosäätöä, lisää voi lukea esim. http://jdevelopment.nl/jsf-22/

JPA 2.1 tulee tukemaan stored procedureja paremmin, tukee ON osaa joineissa antaen siis valita millä perusteella joinit tapahtuvat.. Lisäksi ’fetch groups’ ja ’fetch plans’ auttavat optimoimaan mitä dataa milloinkin haetaan, jos ei kaikkea halutakaan kerralla.

Lisäksi ahmin lisää JavaFX asiaa koska Tieturin tarjonnassa on nyt siitä uutta koulutusta tuoreeltaan ja täytyy tietää pintaa syvemmältä aiheesta. mm. layout management oli kiinnostava aihe – jälleen eroja ja parannuksia Swingiin verrattuna. Oracle muuten viestii selvästi että Swingiin ei enää panna paukkuja, se kuihtuu pois. Kiintoisaa mm. miten JavaFX:ssä max ja preferredsize toimivat, ja miten ruudulta voi kätkeä osia tilapäisesti rikkomatta käyttöliittymää. Luennon esitti Oraclen Amy Fowler, joka on myös innokkaasti tweettaillut ja blogannut viikosta.

Kiintoisa luento oli myös Physics in JavaFX, jossa käytiin läpi fysiikkamallinnusta esim. Angry Birds tyyppisissä peleissä. Fysiikan laithan koskevat kaikkia muita paitsi Chuck Norrisia.

Joka tapauksessa, luennon aiheena oli fysiikkamoottorin kytkeminen JavaFX esitysmuotoon, ja PhysicsFX moottorin julkistus joka helpottaa asiaa. Hauska havainnollinen esimerkki hyödyistä oli mp3 soitin joka havainnollistaa soitettavat biisit palloina joita tippuu suppilosta. Mitä hyötyä on siitä että applikaatio näyttää hauskalta ja sitä on mukava katsella? No olisiko meillä jo riittävän paljon niitä kivuliaasti käytettäviä työajanhallintasoftia joissa tarvitaan insinöörikoulutus ja 20 napinpainallusta per operaatio... 😉

 

Jaahas, ja lisää huomenissa. Torstai on seminaarin viimeinen päivä ja viimeinen tilaisuus imeä tietoa, verkostoitua, haalia demoja, esitteitä, visioita, ja vaikutteita joten voi olla että tänään täytyy Oracle Appreciation Event ottaa kevyen kaavan mukaan 😉

 

 

 

 

 

 

 

 

 

 

 

JavaOne 2011 San Francisco – 2/4

No niin, uusi aamu San Franciscossa toi mukanaan seuraavan keynoten, tällä kertaa aiheena Java strategia. Oracle Technology Network järjesti pienimuotoiset juhlat edellisenä iltana ja vaikka siellä tuli vain piipahdettua ennen nukkumaan menoa, oli juhliin taas panostettu, puheiden suhde juhlimiseen oli sopiva, ja ainoat puku päällä olevat esiintyjät oli paikallinen Electro-bändi 😉

Sulattelin vielä eilen kuulemaani. Tulevan Java 8 version Lambda Expressions piirre on selkeästi yritys tuoda funktionaalista ohjelmointia mieto ripaus mukaan Javaan. Ei tehdä Javasta scalaa tai haskellia tai muutakaan, mutta esim. kokoelmien käsittelyn suhteen voidaan säästää hurja määrä koodia verrattuna vanhaan. Toisaalta hintana on uusien operaattorien tuominen mukaan ja sitä myöten se että uusi Java koodi ei välttämättä ensimmäistä kertaa historiassa näytä enää ollenkaan siltä Java I peruskurssin kamalta mitä opitaan alunperin.

Pistän vähän esimerkkejä lambdaj:stä kun ehdin, mutta tällä hetkellä liikkeellä on paljon virheellistä tietoa ja kun koodia ei vielä aivan helposti pääse kääntelemään tai ajamaan niin olen vähän epäluuloinen esimerkkien suhteen. Joka tapauksessa osallistuin sessioon jossa käytiin läpi paljolti mihin ne sopivat ja mihin ei ja pari ahaa elämystä syntyi. Tosin Scala-kielen pohjalta oli jo aika selvää että ensimmäinen sovelluskohde ovat kokoelmat ja niiden iterointi, järjestäminen, mäppääminen, jne. Tuossa kuvassa anyway esimakua:

Entäpä Jigsaw sitten? Ei voi olla tykkäämättä tekniikasta jonka avulla viimein päästään eroon jar helvetistä, classpathista, ja bootstrap classpathista. Huomattavaa on myös että riippuvuuksien hallintamekanismin ohella sen avulla jdk ja jre saadaan modulaarisiksi, ja saadaan ne käynnistymään nopeammin, ja käyttämään vähemmän muistia. Tätäkin työtä on jo aloitettu mutta taas mennään eteenpäin.

Ilolla panin myös merkille miten Jigsaw on suunniteltu mahdollisimman yhteensopivaksi Maven ja OSGI järjestelmien kanssa. Niillä on kuitenkin laaja käyttäjäkunta, ja jos Jigsaw yrittäisi korvata ne, sotahan siitä tulisi. Maven yhteensopivuus olisi näillä näkymin häkellyttävän hyvä – molempiin suuntiin. OSGIn kanssa oli jotain laajempia perustavaa laatua olevia ristiriitoja. Itse kun en OSGI järjestelmää syvällisesti tunne niin selitykset hieman menivät ohi.

JavaFX oli esillä taas aamun keynotessa.. Siitä tulee open sourcea. Osa Java SE alustaa… Ja se pyörii iOS:ssä eli esim. iPadissä.. 😉 Ja tietysti Linuxissa.

Osallistuin hands-on labiin jossa tehtiin JavaFX:llä lääketieteen sovellusta. Valitettavasti ohjeet olivat huonot, ympäristöt puutteelliset, ja suorastaan virheelliset, ja tapeltuani aikani niiden kanssa nappasin vain koodit ja ohjeet mukaan ja siirryin eteenpäin. JavaFX on vielä sen verran nopeasti liikkuva kohde ja varusteet vähän beta tasoa että ehkä se tuottavuus tulee puolen vuoden päästä. Joka tapauksessa, GA:n myötä sen ei enää pitäisi liikkua niin hurjasti. FXML on kiintoisa tekniikka leiskojen tekoon ja sen myötä on palattu taas alkuperäiseen ideaan workflowsta jossa suunnittelijat tekevät näytöt ja koodaajat pistävät ne toimimaan. Aika samantapaista tauhkaa kuin .NET ja Android alustalla.

Kuuntelin myös arkkitehtuuriluennon JavaFX:stä pintaa syvemmältä, ja näin aukesi mm. parhaat käytännöt säikeiden ja muistinkäytön suhteen. Kiinnostavaa tietoa saattaa olla että JavaFX säiemalli ei ole enää kuten Swingissä. Säikeitä on nyt enemmän. Tämä on tietysti hyvä asia suorituskyvyn kannalta mutta uutta hahmotettavaa kuitenkin.

Olen paljon pyöritellyt Java 7 Fork&Join frameworkiä, tänään oli ilo osallistua esitykseen jossa käytiin läpi sen palasia pintaa syvemmältä. Erityisesti sitä miten se toimii ja missä se toimii parhaiten, sekä missä se ei toimi. Esiintyjä oli erittäin hyvä kuivakan huumorinsa kera, ja mieleen jäi erityisesti kohta: ’In a beautiful, perfect world there would be one subtask for each core to run, but .. world is not beautiful. And it’s not perfect.’ 😉 Oli lainauksen takana asiaakin, Forkatut tehtävänpalaset pitää tosiaan jakaa säikeille ja paloitella sopiviin kokoihin thresholdin mukaan. Hyvä algoritmi oli KOKO/(MAGICNUMBER * CORES AVAILABLE), eli periaatteessa magicnumber voisi siis olla vaikka 1, jolloin työ jaettaisiin ytimien määrällä.. Mutta johtuen siitä että ytimet käyttävät aikaa muuhunkin kuten roskankeruuseen ja työt valmistuvat eri tahtiin, hyväksi havaittu magic number on… 8! 😉 Osoittakaa vääräksi jos pystytte 😉

No niin, päivä kääntyy taas kohti iltaa ja on aika blogata. Edellämainittujen ohella oli kiinnostava luento JPA 2.1 päivityksistä. Osaa käyttäjistä kiinnostanee mm. tuki Stored Procedureille. Lisäksi oli paljon suorituskyky-infoa siitä miten sitä kannattaa ja miten sitä ei kannata käyttää. Pistän lisätietoa näistä loppuraporttiin ja pari linkkivinkkiä jos vain muistan – luentokalvojahan saa sinällään raapia netistä jos omaa tunnukset, ja Tieturin kursseille valuu parhaat käytännöt taas kun ehdin päivittelemään 😉 Mistään rakettitieteestä ei ole kuitenkaan kysymys vaan fiksuja parhaita käytäntöjä. Haaviin muuten jäi myös EJB 3.2 tulevia piirteitä ja Java versio 8, 9, ja … 10 😉

Ai niin, ja Twitter liittyi OpenJDK:hon – IBM:n ja Applen ja muiden iloisten veikkojen ohella siis. Ja tässä vähän isompi uutinen….

Tomee eli Tomcat+EE 6 Web Profile serveri.. Julkistettiin ja ladattavissa jo osoitteesta http://openejb.apache.org/downloads.html – kiintoisa uusi alusta siis, ottaen huomioon pelkän tomcat webin suosion.

Java One 2011 San Francisco – Prelude

No niin, saapuminen San Franciscoon, kone myöhässä pari tuntia hurrikaanin vuoksi, ja kauhea härdelli lentoasemilla kuten aina. Loppu hyvin kaikki hyvin, sain tavarat hotelliin ja asetuin kodiksi. Uskomatonta miten kalliissa jenkkihotellissa wi-fi on erikseen maksullinen, suomessa on tottunut että jopa rupisemmissa pikkuhotelleissakin on nykyään ilmainen wi-fi tai edes kaapeliyhteys. Lisäksi tämä jenkkien high-speed internet muistuttaa nopeudeltaan 1200bps modeemeita joita tuli 80-luvulla käytettyä bbs:n pyörittelyyn.. Mitähän tykkäisivät jenkkiläiset meikäläisen kotilaajakaistasta jossa bitit vilkkuvat 200Mbs tahtiin..?

Joka tapauksessa, konferenssi on alkanut. Tsekkasin varustepaketin, ja tänä vuonna ei näemmä konferenssiohjelmaa saa enää paperilla ollenkaan, vaan vain virtuaalisena. Sinänsä hatunnoston arvoinen temppu, mutta kun android versio ei jostain syystä näytä aikataulua, ja sessioissa tulee varmasti olemaan taas viime hetken peruutuksia ja muutoksia, ja javaone sessiot tänäkin vuonna on hajautettu ympäriinsä lähestön hotelleihin, niin kiintoisa viikkohan tästä tulee.. 😉 Hupaisaa kyllä ipad versio toimii paremmin ja ajattelinkin tällä reissulla bloggailla ja liikuskella puhtaasti ipadin varassa. Jetlag vaivaa sen verran että kovin raskasta ohjelmaa ei voi sunnuntaille ottaa, mutta eipä java sessiot täysipainoisesti vielä tänään käynnistykään.

Huhutaan jostain kiinnostavista julkistuksista.. Nähtäväksi jää miten laajalti kiinnostavia. Katselin Larry Ellisonin Oracle Openworld keynoten, joka nyt ei itselle sisältänyt maatajärisyttävän kiinnostavia asioita. Mieleen jäi kuitenkin kiintoisa perustelu sille miksi Exalogic ja Exadata serverit ovat hintansa väärtejä. IBM:ää kyrmytettiin sillä että heillä on maailman nopein superkone – integer laskutoimituksiin. Exalogic + Exadata yhdistelmää kehuttiin nopeimmaksi datan siirtämiseen ja Javan ajamiseen. Jos olisi liikaa dollareita taskussa niin kyllähän nuo alustat vakuuttavalta vaikuttavat, mutta itse pyörin eniten Intel Linux ja Windows purkkien parissa, ja joskus harvemmin törmää IBM purnukoihin.

Joka tapauksessa, San Franciscossa on uusi aamu, ja sitten kohden alkavaa JavaOne Technical Keynotea, jossa toivon mukaan on enemmän asiaa jaettavaksi asti. Ja siitä se päivä sitten alkaa 😉

Joka tapauksessa Larry Ellisonin keynote on tänään sunnuntaina, ja huomenna aamulla on Java technical keynote, eli saapa nähdä mitä tulee näkyville..