199 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
 
Latest 7 Posts
SmartNSF webinar recording available
Tue, Jun 20th 2017 81
I have bad case of FOMO this week
Wed, May 31st 2017 12
Very unexpected (and weird) question
Tue, May 30th 2017 12
Speaking at Engage 2017 about SmartNSF
Thu, May 4th 2017 9
What to expect in upcoming SmartNSF Beta 3 release?
Mon, Mar 20th 2017 8
What to expect in upcoming SmartNSF Beta 3 release?
Mon, Mar 20th 2017 5
Re: Domino REST performance analysis
Wed, Mar 15th 2017 4
Top 10
SmartNSF webinar recording available
Tue, Jun 20th 2017 81
Very unexpected (and weird) question
Tue, May 30th 2017 12
I have bad case of FOMO this week
Wed, May 31st 2017 12
Automatic building of NSF from (git) repository
Thu, Feb 6th 2014 10
[In Czech] GeeCON 2016 - Praha
Mon, Oct 24th 2016 10
Engage 2014
Fri, Mar 21st 2014 9
7th technical conference of the Czech Lotus User Group (SUTOL) - 11/11/2015
Thu, Mar 19th 2015 9
Working with PDF files in XPages apps
Sun, May 29th 2016 9
A quick follow up on last post
Fri, Aug 26th 2016 9
Speaking at Engage 2017 about SmartNSF
Thu, May 4th 2017 9


[In Czech] GeeCON 2016 - Praha
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious
martin jinoch    

Na úvod je asi vhodné uvést, že s organizováním a přednášením na konferencích nějaké zkušenosti mám a ačkoliv se v následujících řádcích někde vyjadřuji kriticky, tak celkově byl GeeCON výborně zvládnutý a přes hodně slušnou návštěvnost jsem nikde nezaznamenal výraznější problémy.

Konečně se mi zadařilo mít čas zajít na GeeCON. A navíc díky Romanu Pichlíkovi z CZ Podcastu jsem měl volný vstup, takže dokonalá win-win situace. O to více, že jsem se na organizaci nepodílel ani nepřednášel, což pobyt na konferenci výrazně ulehčuje.
Trochu problém mám pravda s ranním vstáváním, ale zjevně o něm organizátoři věděli a začátek prvního dne byl v 9:40. Dělat konferenci v kině v nákupním centru by mne popravdě nenapadlo. Velké plus této varianty jsou velikosti plátna a světelnost projektorů. Tady se prostě nestane, že by někdo neviděl nebo nemohl přečíst slidy. Pohodlné sedačky už jsou trochu "dvousečné", dá se v nich velmi snadno usnout. To se hned na druhé přednášce povedlo jednomu účastníkovi, který navíc seděl v první řadě. Chrápáním trochu rušil, ale přednášející to zvládl s přehledem ("This guy clearly loves graphs"). Polský JUG, který GeeCON organizuje na jaře v Krakově a na podzim v Praze, si do Prahy přivezl kompletní tým, včetně cateringu.

Keynote od hlavního sponzora Y Softu mne ničím nezaujala (stejně jako expozice Y soft world s asi břišními tanečnicemi nebo co to mělo být). Výrazně lepší byla následující od Oracle Labs konkrétně od Jardy Tulacha. Kluci tam pracují na vlastní verzi JIT překladače, nazvaného GraalVM, který nejen že je pro běh javových programů rychlejší než standardní, ale s využitím další jejich technologie Truffle umožňuje běh programů i v dalších jazycích, třeba JavaScriptu nebo R. A to kolikrát rychleji než v nativních implementacích. V přednášce zaznělo i to, že Hotspot C2 compiler, který je v standardním Oracle JDK, není moc dobrý ve zpracování kódu Java 8, konkrétně lambda výrazů. Celý je napsaný v C++ a prý se v tom kódu nikdo nevyzná a nechtějí do toho tímpádem moc zasahovat :-). GraalVM je napsaný v Javě, integrování nových jazyků přes Truffle se dělá taky v Javě. Ale je to laboratorní projekt, těžko říct, jaké úmysly s ním Oracle do budoucna má. Zatím je to ale opensource, takže hurá na github a můžete se kouknout, jak to celé funguje.

Na konferencích vybírám přednášky podle dvou kritérií: buď je to něco naprosto mimo moje pole působnosti, nebo naopak něco, co používám často. V druhém případě si na přednáškách snažím potvrdit, že mi v dané oblasti neujel vlak. V prvním případě se jen nechávám inspirovat. Proto jsem zvolil následující moc nesouvisející přednášky:

Who’s Afraid of Graphs? - David Ostrovsky
Jak název napovídá, přednáška byla o Graph databases. David podle mne velmi přehledně a poutavě popsal jejich silné a slabé stránky. Kupříkladu jejich neškálovatelnost. Ta se obchází třeba více identickými kopiemi databáze v clusteru, kdy router směřuje stejné dotazy vždy na stejnou repliku, aby je měla nakešované.
Co jsem si odnesl: i Elasticsearch má podle všeho Graph API, se kterým se dá poměrně pěkně pohrát.

Effective and Clean Java Code? Tips and Tricks from the Real World - Edson Yanaga
Jedna z "potvrzovacích" přednášek. Svižně, přehledně předvedená a vysvětlená taková základní řemeslná latina, s důrazem na Domain driven development. Kód by měl být k dispozici na githubu.
Co jsem si odnesl: zatím mi vlak neujel.

Need for speed: tools for JVM tuning - Andrey Adamovich
Tohle byla naopak přednáška o něčem, co jsem zatím nikdy nemusel řešit. Přehled dostupných většinou volných nástrojů pro sledování a nastavování parametrů JVM. Taková ta přednáška, kde si začnete dělat poznámky, co si chcete vyzkoušet, a v půlce přestanete psát, protože píšete úplně všechno.

Hot code is faster code - addressing JVM warm-up - Mark Price
Tohle mne naprosto nadchlo, byť to nejspíš nikdy nevyužiju. Zkusím to shrnout, ale doporučuju každému kouknout na záznam, až bude k dispozici. Díky JIT se často používané metody překládají do velmi optimalizovaného strojového kódu a jejich běh je tedy rychlý (jakmile se nějaká metoda nevolá dost často, je z tohoto vyjmuta, vrátí se zpátky do skupiny "cold" částí programu a jejích několik dalších volání může tedy probíhat dokonce jen interpretovaně, než se zase díky četnosti volání teoreticky dostane mezi "vyvolené"). To znamená, že po nějaké době běhu programu jsou jeho nejvytíženější části nejvíce optimalizované. A právě to "po nějaké době běhu programu" může znamenat problémy pro systémy, u kterých záleží na rychlosti. Jednou z možností, jak zajistit optimální nastavení takového programu, je nasimulovat mu zátěž co nejpodobnější té produkční, ale ještě dříve, než ono produkční zatížení přijde (Mark popisoval jejich případ s otevřením burzy). Aplikace tedy musí poznat, že se jedná o data "testovací" a nenaložit s nimi v rozhodujícím kroku jako s produkčními (nekoupit/neprodat/neposlat peníze atd.), ale všechny ostatní části aplikace musí zatížit k nerozeznání od opravdových vstupů.
Další z variant je prý "přehrát" log Hotspot překladače (je na to komerční produkt, jehož název jsem neudržel v paměti), ve kterém je právě uložena historie těch optimalizací a přesunů do "hot" zóny. To nicméně předpokládá, že se od minulého zalogování kód neměnil, aby identifikátory tříd a metod v logu odpovídaly metodám v aktuálním kódu aplikace. Mark popisoval, že u nich mají v test prostředí dokonalou kopii produkce, která umožňuje (na úrovni siťových switchů!) přehrávat přesně to, co se na produkci dělo. To samo o sobě mi přijde jako parádní věc a hrozně rád bych si s něčím takovým pohrál.

Naprostý omyl pro mne bylo jít na Enterprise Java in the cloud, kterou prezentoval Dmitry Kornilov. Očekával jsem asi něco jiného než výčet technologií v jednotlivých edicích J2EE resp. Java EE a seznam modulů, které se v další verzi budou měnit nebo budou odstraněny. Směřování do cloudu je pochopitelně velmi aktuální a mne spíš zajímaly detaily, jak (ne že) bude v další verzi Java EE tento směr podporován.

Plánoval jsem zajít i na večerní párty na parníku, ale nakonec jsem se tam po mezipřistání doma už nevykopal. Jak se ukázalo, bylo to dobře. Podle ohlasů na twitteru se jednalo o hladovou a suchou jízdu. Tedy pro běžné účastníky, přednášející a sponzoři měli jiné podmínky. Buď dělám party pro všechny, nebo jen pro vybranou skupinu. Mít v rámci jedné akce různé podmínky pro dvě skupiny mi nepřijde šťastné.

Den druhý

Tady už organizátoři dost vyzkoušeli moje limity a první přednáška začínala v 9 hodin. Přednášku jsem sice fyzicky stihl, ale k vědomí se probírám až kolem desáté, takže How to bake reactive behavior into your Java EE application pořád nevím. Snad se Ondra Mihályi nebude zlobit.

Na One VM to rule them all Jakuba Podlešáka a Jana Štoly už jsem byl v rámci svých možností v kondici a to, co GraalVM a Truffle nabízí, se mi moc líbí. Bylo to naznačeno už v keynote, ale rychlost běhu nejen javových aplikací pod tímhle VM je hodně dobrá. Ne že bych si snad plánoval napsat vlastní programovací jazyk, ale jak to na mě jednou přijde, určitě budu koukat po GraalVM/Truffle.

What is your application doing when you are not around? - Adam Dubiel
Adam se hned na začátku přiznal, že je control freak a pohled na dashbordy ukazující, co se děje v aplikacích, ho baví. Praktické rady, jak v aplikaci nahradit logování uběhlých milisekund mmezi sledovanými operacemi komplexnějším přístupem, jaké metriky má smysl sledovat, jaké vlastně nemají nijak velkou vypovídací schopnost, i když se nás mozek snaží přesvědčit, že je tomu naopak, atd. Já sice nehodlám přiznat, že bych snad mohl být control freak, ale ty dashboardy rozhodně musím mít!

Na TDD: That's not what we meant a Steva Freemana jsem se moc těšil, navíc jak známo člověk raději přijímá informace, které jsou mu blízké, takže tady jsem si vyloženě užil. Přemýšlet o návrhu kódu před začátkem implementace je mi vlastní, Test Driven Development je v tom navíc velmi nápomocný. Kupříkladu tohle jsem v různých kódech viděl tolikrát! Líbil se mi Stevův nedogmatický přístup k používání TDD nebo třeba k volbě jmen testovacích metod.
Co jsem si odnesl

JVM dive for mere mortals od Jakub Kubryńského pro mne bylo po čtvrtečním Hot code is faster code - addressing JVM warm-up už vlastně zbytečné a pokud bych si měl vybrat, kterou z těch dvou zvolit pro získání přehledu, co a jak se v JVM děje, určitě by vyhrál Mark Price. Nicméně tento slide je myslím velmi užitečný.

Reverse engineering clean code - Jakub Marchwicki
Krátké zamyšlení o vztahu designu fyzických objektů (přístrojů, nábytku, ...) a přístupu k navrhování api a kódu obecně. Trochu nepřekvapivě se poznatky z první oblasti dají úspěšně používat i v oblasti druhé.

Dirty Hacks With Java Reflection Heinz Kabutze na závěr byla lahůdka. I když vlastně všechny ukázané techniky byly unsafe :-) Opět doporučím počkat na záznam a mezitím koukněte na kód.

Na závěr jen poznámka: jsem dost citlivý na kvalitu kávy (zly jazykové tvrdí, že přecitlivělý). Ale tady to bylo tragické. Hnědá tekutina vydávaná za filtrovanou kávu snad ani nezaslouží komentář. Pro všechny účastníky tak byl k dispozici jeden kávovar s ucházející kávou, ale ono si ho naštěstí zase tolik lidí nevšimlo, takže u něj nebyly nekonečné fronty. A viděl jsem i pár lidí, kteří nelenili a vybíhali do okolních kaváren v obchodním centru.



---------------------
http://jinoch.cz/czech-geecon-2016-praha
Oct 24, 2016
11 hits



Recent Blog Posts
81
SmartNSF webinar recording available
Tue, Jun 20th 2017 7:02a   Martin Jinoch
Did you miss webinar about SmartNSF on June 13? No problem! Go ahead and learn about the cool new features coming in next release! Recording is available here: https://www.youtube.com/watch?v=CN-DFWvjWx4.
12
I have bad case of FOMO this week
Wed, May 31st 2017 8:37a   Martin Jinoch
This week hosts two events I would love to attend: DNUG 44 in Berlin and Social Connections 11 in Chicago. Being part of the team organizing an event and then not be able to go to the event sucks. Big time. With the rest of the team already in Chicago (and asleep now) or en route there, our usual chat channels are quiet this morning. That feels strange. I keep checking my internet connection if it is working. Seems to be ok. At DNUG IBM has just announced acquisition of XCC! Congratulations to
12
Very unexpected (and weird) question
Tue, May 30th 2017 4:10p   Martin Jinoch
"Are you available for XPages training for beginners?" was the question asked recently. I am not making this up. I really am not. My first reaction (after several seconds - or perhaps minutes - of total suprise) was: "Whaaat? Why would anybody for crying out loud now START to learn XPages?" Then we talked a bit about dates and after realizing I can only do it in September I was sure they won't want me to do it anymore. To my even bigger surprise they came back. And it got even better today:
9
Speaking at Engage 2017 about SmartNSF
Thu, May 4th 2017 1:02p   Martin Jinoch
I think I can call it a tradition now, as I every year since 2011 travel to Belgium (or Netherlands) to attend and sometimes even to speak at Engage (formerly BLUG) user group event. This year the latter applies. Christian Guedemann and I will be presenting SmartNSF (https://wiki.openntf.org/display/XRAPI/SmartNSF) and its role in application modernization "movement". The session is scheduled for Monday, May 8 from 11:45 to 12:30 in room D. Gorilla. Looking forward to meeting yellowverse peop
8
What to expect in upcoming SmartNSF Beta 3 release?
Mon, Mar 20th 2017 11:35a   Martin Jinoch
Changes We've decided to rename strategies to make the names shorter, yet still descriptive enough. We've basically removed all SELECT_ and ALL_ parts of the names. For example SELECT_ALL_DOCUMENTS_FROM_VIEW is from now on DOCUMENTS_FROM_VIEW. Extending the life of your keyboard is just a positive side effect of this change. Bug fixes Date format of returned DATETIME items was broken, so we fixed it. Bigly! ARRAY_OF_DOUBLE data type was returning array of nulls instead of array of actual doubl
5
What to expect in upcoming SmartNSF Beta 3 release?
Mon, Mar 20th 2017 10:35a   Martin Jinoch
EDIT: Beta 3 has been released: https://openntf.org/main.nsf/project.xsp?r=project/SmartNSF/releases/CCB... Changes We've decided to rename strategies to make the names shorter, yet still descriptive enough. We've basically removed all SELECT_ and ALL_ parts of the names. For example SELECT_ALL_DOCUMENTS_FROM_VIEW is from now on DOCUMENTS_FROM_VIEW. Extending the life of your keyboard is just a positive side effect of this change. Bug fixes Date format of returned DATETIME items was broken, so
4
Re: Domino REST performance analysis
Wed, Mar 15th 2017 7:18a   Martin Jinoch
Csaba Kiss has published blogpost http://xpagexplorer.org/domino-rest-performance-analysis/ about his findings regarding performance of various REST technologies available on Domino now. Just a couple of remarks: use case for reading 10000 documents at once is probably very far from most real world scenarios some may argue ReadViewEntries method is not REST service per se. And it is a core function deep in the HTTP server, probably developed in C. That's something we can't beat I guess SmartN
3
Re: Domino REST performance analysis
Wed, Mar 15th 2017 7:18a   Martin Jinoch
Csaba Kiss has published blogpost http://xpagexplorer.org/domino-rest-performance-analysis/ about his findings regarding performance of various REST technologies available on Domino now. Just a couple of remarks: use case for reading 10000 documents at once is probably very far from most real world scenarios some may argue ReadViewEntries method is not REST service per se. And it is a core function deep in the HTTP server, probably developed in C. That's something we can't beat I guess SmartN
4
SmartNSF Beta 2 released
Tue, Mar 7th 2017 9:50a   Martin Jinoch
You may have noticed that there is new project available on OpenNTF.org site. It is called SmartNSF (https://openntf.org/main.nsf/project.xsp?r=project/SmartNSF/summary) and it aims to help developers build REST services on top of the Domino databases. Unlike other approaches I am aware of, this project adds Designer integration and smart definition of routes, data retrieval strategies and returned values in one place. And this definition is made using Groovy syntax. How cool is that?:-) You can
3
SmartNSF Beta 2 released
Tue, Mar 7th 2017 8:50a   Martin Jinoch
You may have noticed that there is new project available on OpenNTF.org site. It is called SmartNSF (https://openntf.org/main.nsf/project.xsp?r=project/SmartNSF/summary) and it aims to help developers build REST services on top of the Domino databases. Unlike other approaches I am aware of, this project adds Designer integration and smart definition of routes, data retrieval strategies and returned values in one place. And this definition is made using Groovy syntax. How cool is that?:-) You can




Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition