Jfokus 2014, konferensen

Nu är jfokus 2014 över och jag försöker mig på att summera några intryck från den.

På inledande keynoten gjorde roboten Neo ett försök att imponera men ramlade mitt i Thriller. Vi konstaterar inte utan viss behållning att det fortfarande förefaller vara betryggande lång tid kvar innan robotarna tar över.

download

På tal om robotar, förra året visade vi upp en seende robotarm med JavaFX och OpenCV, men i år fick den stanna hemma så vi kunde fokusera på Continuous Delivery i vår monter.

I sessionen Navigating the Stream API gav Maurice Naftalin en inspirerande genomgång av hur man programmerar med Java 8 streams. For-loopen är på väg att bli ett anti-pattern. Lambdas är verkligen en jättegrej för Java och det första steget jag sett som effektivt har möjlighet att kunna adressera problemet med att ta tillvara det ökande antalet processorkärnor. Riktigt coolt kan det bli i kommande versioner om libben under ytan kan lägga ut parallell exekvering på GPUer.

DSC_0029

Även Akka adresserar multicore med sin asynkrona programmeringsmodell. Daniel & Daniel från Omegapoint berättade om sina erfarenheter av Akka. Jag fick med mig att Akka är intressant även om man programmerar i Java och även om man bara använder det som ett library för en del av systemet där Akkas arkitektur utgör en naturlig lösning på ditt problem.

Jigsaw var på tapeten som vanligt, men nu verkade OSGi-perspektivet dimmat bort, fokus verkar ligga på att kunna spetta upp JVM:en i hanterbara delar, vilket i och för sig är behjärtansvärt. Vi kör väl vidare med OSGi tills vidare.

Dragningen som Lars Sjödin från King höll var kul och intressant. Every day is like a little DDOS attack. A billion games played per day. Jag minns med behållning svaret ungefär ”We are using like Russian Technology, robust and simple” som förklaring på hur de kunde hantera så höga laster, och frågan ”Do you handle your financial transactions in a more secure way?” där svaret var ”The opposite, less secure” och därefter en bra förklaring varför. Svaret på bra prestanda och hög skalbarhet är åter att bara ha tillstånd i DB och i klienter, simpel och robust arkitektur och att offra krav på absolut datakonsistens i alla lägen. Precis som Facebook.

Särskilt intressant tycker jag var seminarierna relaterade till Continuous Delivery och DevOps. Fokus var på hur.

Första dragningen dag 2 var Developing for multi-component environment while keeping your sanity med Baruch Sadogursky från JFrog. De har två produkter: Artifactory och Bintray.

Han berättade hur väl det fungerade att arbeta med virtualiserade utvecklarmaskiner. Vi delar dessa tankar och delar också lösningen. JFrog kör med Vagrant, Virtualbox och Chef. Vi har kommit till samma slutsats att det är en bra idé att virtualisera även utvecklingsmiljöerna för att minimera strul, men slanten vi singlade för att välja provisioneringsverktyg landade för oss på Puppet-sidan. Medan JFrog singlade slant mellan Chef och Puppet så verkar Thoughtworks istället hysa varma känslor för Ansible.

Seminariet med Axel Fontaine gav en hel del. Hans infallsvinkel på Continuous Delivery är i hög grad praktisk, det gillar jag. Axel fick mig att inse två saker: För det första att det ändå kan vara en bra idé att detektera körmiljö och att skeppa med alla miljöspecifika konfigurationer i deploymentpaketet. Om man som utvecklare begriper sig på sunda beroenden så vill man förstås inte lägga in beroenden till olika miljöer i artefakten eftersom det är ett beroende åt fel håll, den konfigen borde ligga i respektive miljö, men jag inser nu att med Continuous Delivery sitter hela deploymentkedjan ihop med deploymentmiljöerna på ett annat vis än om vi levererade en programvarukomponent att användas någonstans där vi inte vet kontexten. Av samma anledning så kan man skippa propertyfiler och lösa konfigurationer i allmänhet och istället ha konfiguration som kod. Vill man ändra committar man en ändring och kickar bygget igenom deploymentpipelinen. Det är ett praktiskt approach till detta som jag gillar. Jag tar med mig det.

Dragningen av Michael Hütterman kring erfarenheter av Release med Maven, Git, Hudson och Jenkins var lite tunn jämfört med vad jag väntat mig, kanske för att sessionen var för kort, men hans grundläggande upplägg på byggpipeline liknar de flesta andra vi sett.

Ett riktigt coolt och i hög grad lovande initiativ som jag tror kommer att rädda oss från att Gxxgle även tar kontrollen över våra värmepannor, dörrlås och larmsystem, är standardiseringarna runt IoT på XMPP som Joachim Lindborg på SUST berättade om i XMPP in the world of IoT – An open standard for interoperable IoT.

En tydlig trend som märks väl här på Jfokus är att Javascript fortsätter att vinna mark på klientsidan och att Angular och Bootstrap går i fronten där.

Yeoman med Angular, Grunt och Bower gör faktiskt Javascript till en mer än uthärdligt, kanske till och med en riktigt trevlig och produktiv, miljö, även för oss utvecklarrävar som kommer från statiskt typade språk som Java.

Vi har alltså tagit till oss javascript och i vårt nuvarande projekt har vi också klurat ut hur man på ett bra sätt integrerar javascriptklienten med backendsystemet i Maven med enhetstest, testtäckning och automatisk kodanalys och därmed också i en Continuous Delivery Pipeline.

Martin Thompson, som höll den avslutande keynoten, höll ett underhållande föredrag Mechanical Sympathy där det genomgående temat var att vi för att lyckas måste förstå hur våra maskiner fungerar bättre än vi i allmänhet gör och att hålla det enkelt och robust.

Tänk som om du byggde en racerbil, sättet att vinna är att skala av allt onödigt för att spara vikt.

Det ligger mycket i det.

DSC_0039

På slutet körde Mattias ett litet retrospektiv. Imponerande med tanke på att teamet hade 1600 medlemmar.

Tack Mattias och alla ni andra som hjälpt till för en mycket bra konferens!

IT Consultant at CAG Edge. Cloud and Continuous Delivery specialist, software developer and architect, Node.js, Java.

Publicerad i Cloud Computing, Continuous Delivery, Java, OSGi

Kategorier

WP to LinkedIn Auto Publish Powered By : XYZScripts.com