Jaký byl Geekon Prague 2015

Ve čtvrtek a v pátek (22. – 23. října) v CineStaru na Černém Mostě proběhla již druhá instance konference Geecon Prague. Jak podtitulek “Let’s move the Java world!” napovídá, tématem byla Java, JVM, systémová architektura a tak vůbec.

Program byl poměrně rozsáhlý. Ve čtvrtek proběhla úvodní keynote následovaná 15 téměř hodinovými přednáškami (paralelně ve třech sálech) a na závěr potom ještě 6 lightening talků. V sobotu potom dalších 24 přednášek (ve čtyřech sálech) a závěrečná společná keynote. O obsah tedy skutečně nebyla nouze.

Mezi tím vším byly samozřejmě ještě pauzy postát nad kávou či malinovkou v předsálí kinokomplexu a pokouknout po stáncích sponzorů, takže oba dny byly plné od rána do večera. Krom pití bylo na stole stále něco k snědku. Což bylo na jednu stranu dobře, je fajn, když člověk nemusí běhat po krámech, aby zahnal hlad. Na druhou stranu odhaduji, že příjem cukru za dva dny Geekonu jsou srovnatelné s mým přijmem cukru za předchozí tři týdny :).

Co se týče přednášek, byly poměrně různorodé, za což jsem vděčný. Od J2EE a ClassLoaderů, přes nové projekty Oracle až po trochu filosofické a “soft skills” prezentace.

Prezentance

Den první

Konference začala přednáškou s titulkem Level up, kde Grant Ingersoll hovořil o paralelách mezi vývojem software a počítačovými hrami, které Grant zpozoroval v praxi. Za mě bohužel jedna z nejslabších kusů, ale možná to bylo tím, že jsem prošvihl prvních cca 15 minut. Jednalo se o hodně obecné poučky typu: “Nečekejte, až po vás uživatelé začnou něco požadovat, předvídejte a dodejte to, ještě než vědí, co vlastně chtějí”.

Potom už se každý rozprchl do sálů tam, kam chtěl. Já jsem navštívil následující přednášky:

How to handle large amounts of events, ve které Krzysztof Dębski mluvil hodně o jejich zkušenostech s Apache Kafka a problémech, které řešili při změně architektury z monolitické aplikace na clusterovou aplikaci. Např. jak se vyhnout výpadkům i při tom, když se Kafka vypořádává se změnami v clusteru, problémech s defaultním nastavením a pod. Přednáška byla poměrně zajímavá, ale myslím že lidé, kteří o Kafce předtím neslyšeli, asi měli co dělat, aby udrželi krok.

Další prezentace – Infrastructure as Code byla hodně praktická. Radek Šimko povídal o DevOps a o tom, proč používat nástroje jako Vagrant, Puppet, Docker apod. Hodně letem světem, ale myslím, že to je přesně to, co obecenstvo chtělo vidět. Přece jen Geecon je konference pro vývojáře, kteří do deploymentu nemusí moc vidět, takže demonstrace technologií a osvěta o tom, proč je dobré je používat, je na místě. Krom zajímavého obsahu v téhle přednášce zazněl za mě asi nejlepší vtip Geeconu. Něco ve smyslu:

People usually set up server like this …

sudo apt-get install vim

sudo apt-get install nano

… that is after they realize they don’t actually know how to use vim

Následovala přednáška o ClassLoaderech v Javě. Byla dost technická, ale dobře pochopitelná a zajímavá. Dozvěděli jsme se například, že při přetypování v Jave hraje roli i to, jaký ClassLoader třídu nahrál, jaké ClassLoadery v Javě jsou, a jak si implementovat vlastní.

On a Quest Towards the Fastest VM on the Planet! byla za mě asi nejvíc “cool” technická přednáška Geeconu. Jednalo se vlastně o demo nového bytecode compileru Graal, na kterém Oracle pracuje a Truffle, což je nové API pro hostování jazyků jako je Ruby, JavaScript, R, ale i C pod JVM. Jaroslav Tulach v ní předvedl i živé demo, kde měl program napsaný v Javě, Ruby a JavaScriptu (Ruby a JavaScript běžely pomocí Truffle v JVM) a debuggerem mohl z NetBeans skákat jak do Ruby, tak do JavaScriptu. Vedle toho bylo druhé demo, kde ukazoval rychlost (na výpočtu prvočísel) nativního Ruby a Ruby, které běží na Truffle/Graal. Rozdíly byly markantní. JVM Ruby měl tuším 15000 prvočísel během pár vteřin, zatím co nativní Ruby se k tomu ani nedostal.

A pro mě poslední přednáška dne: Clean Coders Hate What Happens To Your Code When You Use These Enterprise Programming Tricks. Už z krásného clickbait názvu bylo jasné, že se člověk nebude nudit. Kevlin Henney se velice vtipně opřel do Java enterprise kódu. V téhle přednášce jsem se hodně našel. Jeden z hlavních konceptů, o kterém Kevlin mluvil, byl poměr signálu a šumu v kódu. V tomhle má Java podle mě problémy. Ve změti getterů, setterů, equals a hashCode metod, importů, komentářů a anotací se špatně soustředí na to, na čem se člověk snaží pracovat.

Pak následovali už jen lightening talky, na které mi bohužel nezbyl čas.

Den druhý

V pátek nebyla na záčátku žádná společná keynote. Začlo se rovnou výběrovými přednáškami.

Začal jsem s prezentací What is code. Jakub Marchwicki v ní přednášel o tom, jak zakódovat znalosti přímo do zdrojáku. Z části se prolínala se čtvrteční prezentací “Infrastructure as a code”, ale krom infrastruktury Jakub ukazoval i další věci. Např. jak pomocí asciidocu vygenerovat dokumentaci, která v sobě includuje detaily přímo ze zdrojáku. Konkrétně to ukazoval na závislostech z .pom souboru.

Následovala trochu filosofická přednáška Your role in world project, ve které se Milen Dyankov zamýšlel nad úlohou programátorů a vývojářů ve společnosti. Tvrdil, že vývojáři začínají hodně ovlivňovat svět a s časem bude jejich vliv jen stoupat. Hovořil o etickém kodexu programátorů a nakonec o tom, jak v Liferay (firma, kde pracuje) podporují svoje zaměstnance v dobrovolnických programech – např. kopání studen v rozvojových zemích a podobně. Byla to moc pěkná přednáška, fajn změna od technických detailů a k zamyšlení.

Po tom jsem navštívil dvě přednášky o mikroservisech. První – The dangers of building microservices kde Christopher Batey mluvil hlavně o testování mikroservis. V demu dal několik tipů na zajímavé nástroje, např. tc, linuxový nástroj, který umožňuje simulovat delay na síti. Nebo wiremock, server který umí simulovat http službu, a dá se nastavit přes RESTové rozhraní.

Druhá přednáška byla na téma vývoje mikroservis – Microservices the lean way. Bruno Bossola v ní ukazoval, jak jednoduše jdou psát mikroservisy v node.js a zmiňoval se o best practices při vývoji mikroservis. Např. že je dobrý nápad mít autodiscovery služeb, místo pevné konfigurace v souborech a rovnou ukázal i jednoduchou implementaci. Jedna zajímavost z jeho přednášky byla poznámka o (ne)škálovatelnosti Ruby on Rails. Hovořil o tom že Rails hostují na několika velkých serverech, zatímco všechno ostatní se jim vejde na jeden server střední velikosti.

Další přednáška byla dependency injection v Javě. Za mě bohužel asi nejnudnější přednáška celého Geeconu. Ne tedy vinou řečníka, ten byl vtipný a odvážil se i na live coding. Ale bohužel, j2ee je pořád taková hrůza, jakou si pamatuju ze školy.

Celý Geecon jsem zakončil přednáškou od lidí z LMAXWhat I Learned Writing a Trillion $ Trading System, která byla hlavní důvod, proč jsem na Geecon vlastně šel. LMAX je forexová burza, která je známá pro svou velice nízkou a spolehlivou latencí. Z přednášky jsem se dozvěděl, že za to vděčí obrovskému množství testů. Jejich testovací cluster ma přes 1000 CPU a RAM se počítá v terabytech. Hovořili i o nutnosti mít historická data z testů, aby např. viděli, jestli se nezhorší performance některých prvků a pod. Zajímavé bylo slyšet, jakým způsobem pracují. Všichni dělají v jedné větvi a musí do ní commitovat. Pokud po commitu nějaký test selže, nastane tzv. embargo. Při embargu musí všichni přestat pracovat na tom, co dělají a začít řešit odstranění embarga (tedy chyby, kvůli které selhal test). Výsledkem jejich snažení je, že se nebojí releasovat něco tak mission critical, jako je forexová burza, a dělají release každých 14 dni. To také považují za svoji největší konkurenční výhodu.

Po tom jsem už musel odejít, takže jsem neviděl závěrečnou keynote na téma agilního vývoje.

Shrnutí

Celkově se mi Geecon líbil. Organizace byla bez problému, všechno bylo na čas a i když bylo v předsálí vždy dost husto, tak na nic nebyly nějaké velké fronty. Rozhodně bych šel znova a to samé bych doporučil každému, koho zajímá JVM a věci s ním spojené. Dokonce i wifi fungovalo dostatečně dobře na to, abych pro kolegu restartoval server :)

Další ohlasy

Zdroj: https://www.zdrojak.cz/?p=16304