Devoxx 2018 - Feedback
Table of contents
- Purpose of this post
- HashTags
- FR : Tout ce que vous avez toujours voulus savoir sur la programmation fonctionnelle 5/5
- FR : Ceinture noire Karate en tests d’API REST 5/5
- FR : Sécurité des applications Web : les bons réflexes à avoir 5/5
- FR: Les 12 factors Kubernetes 5/5
- EN : SSL/TLS for Mortals 4/5
- FR : Université : Je passe à Gradle - Maturité performance et plaisir 4/5
- FR: En finir avec les problèmes de gestion de dépendances 4/5
- EN: HandsOn Kotlin 4/5
- FR : Keynote : L’ordinateur quantique 4/5
- FR : DDD & Event Sourcing à la rescousse pour implémenter la RGPD ? 4/5
- FR : Architecture hexagonale pour les nuls 4/5
- FR: Mes Applications en production avec Kubernetes 4/5
- FR : Suivre les avions des lignes avec un Raspberry Pi 3/5
- FR : Migrer à Spring Boot 2 lorsque l’on a une “vraie” application 3/5
- FR : Java dans Docker : Bonnes pratiques 3/5
- EN : Google CodeLabs 3/5
- EN: Troubleshooting & Debugging Production Microservices in Kubernetes 2/5 (requirements) 5/5 (demo)
- EN : Apache Maven and Java 9 2/5
- FR: Guide de survie NodeJS pour le développeur Java 2/5
- EN : Spring Framework 5 Features Highlights & Hidden Gem 2/5
- FR : Les exceptions, oui, mais pas n’importe comment 1/5
- Other Talks
- Conclusion
- Other Feedbacks (all in French)
- Bonus
Purpose of this post
Purpose of this page Emphasis on talks that may be useful for my co-workers. So “scores” are not here to say “this talk is bad” but how it may be interesting to them
HashTags
Those tags lets you find easily talks
- #DeployAndRun : mainly Kubernetes
- #Build : mainly gradle
- #LearnOrDiscover : open your mind
- #Security
- #Improve : Improve code, tests, design
FR : Tout ce que vous avez toujours voulus savoir sur la programmation fonctionnelle 5/5
- Tag : #LearnOrDiscover
- Speaker : Xavier Detant
- Video :
- Feedback : The best talk on this topic. A must see
FR : Ceinture noire Karate en tests d’API REST 5/5
- Tag : #Improve
- Speakers : Nicolas Comet, Benoît Prioux
- Slides : https://github.com/binout/karate-devoxxfr2018
- Video : https://www.youtube.com/watch?v=NYlPxd5dZOU
- Reference : https://github.com/intuit/karate
- Code : https://github.com/binout/karate-devoxxfr2018
- Feedback : very useful tool to test REST APIs BDD Style (it’s not BDD)
FR : Sécurité des applications Web : les bons réflexes à avoir 5/5
- Tag : #Security
- Speakers : Erik Lenoir
- Slides : https://www.slideshare.net/secret/nJ9wxIaEKMJJzx
- Video : https://www.youtube.com/watch?v=UW2ZsbhbFDY
- Feedback : A quickie (15”) on a wide subject which provides VERY useful tools and best practices
Web Security Notes
- Highly recommended : Use OWASP’s dependency-check to find vulnerable libraries in your all your dependencies
- OWASP’s Dependency track : Web app to track dependency-checks results
- Front-end :
- dependency check (beta) (link to find)
- Node Security Platform (bought by NPM)
- RetireJS
- Docker
- Opensource : Clair,
- Commercial : jFrog’s Xray,
- Commercial : Twistlock
- Code
- Sonar
- eslint-plugin-security (Nothing for Typescript so analyse transcripted code)
- Intrusion : Zed Attack Proxy (ZAP) : passive and active (docker available -> automation)
FR: Les 12 factors Kubernetes 5/5
- Tag : #DeployAndRun #LearnOrDiscover
- Speaker : Etienne Coutaud
- Slides : https://www.slideshare.net/EtienneCoutaud/12-factors-kubernetes
- Video : https://www.youtube.com/watch?v=ULUQ8ZjLFeI
- Feedback : Another good feedback, best practices about K8S
12 Factors K8S Best slides
- #1 Pods : See Slide 4 : Pods multi containers design patterns
- Slide 26 : The most important factors
- Slide 27 : The take away
- Slide 28 :
EN : SSL/TLS for Mortals 4/5
- Tag : #Security
- Speaker : Maarten Mulders
- Slides : https://www.slideshare.net/MaartenMulders2/ssltls-for-mortals-devoxx-fr-2018
- Video : https://www.youtube.com/watch?v=gyoe-ej8XNA
- Feedback : Explains really well what means S in TLS, Very useful to explain https, ssl, tls to somebody
- Notes :
- Tools : GUI to manipulate jks : Portecle
- Resources : https://idea-instructions.com/public-key/
FR : Université : Je passe à Gradle - Maturité performance et plaisir 4/5
- Tag : #BuildAndRun
- Speaker : @CedricChampeau @ljacomet
- Slides : https://ljacomet.github.io/gradle-devoxx-deep-dive/index.html
- Video : https://www.youtube.com/watch?v=tV7vAnzvI88
- Feedback : Nice introduction to gradle
- maven is inherit, gradle is compose
- tasks !
- If task is well made then it declares its inputs and outputs. Gradle computes hashes and can void rexecuting it
- There is cache server. The CI can build results for users !
- Do a ./gradlew tasks –all or ./gradlew build –dry-run
Switch to Gradle Notes
- Always use gradlew as starting point
- Configuration is stored in settings.gradle
Gradle Wrapper usage
- Use it from the root of the project -> No need to navigate to sub-modules
- ./gradlew task1 task2
- ./gradlew module_name:task
- ./gradlew tasks -> will list tasks
- ./gradlew help –task taskname
- ./gradlew build -x test -> build without tests, does not even compile tests
- ./gradlew test –continue -> executes all tests, if one fails do not stop )
- ./gradlew -t test -> continous tests, Ctrl-D to stop
Tasks
- assemble = production output (but no tests)
- Check = tests + sonar + lint, …
- build = check + assemble
Tips
- See org.gradle.works.max setting as gradle may otherwise use all cores
- clean -> no need to clean
- up-to-date -> gradle hashes inputs and ouputs so it knows when things are up-to-date
- –console=verbose -> if standard one is not verbose enough
- gradle init -> bootstrap project
Regarding the Build Scan tool
- HTML result of the build. Easy to navigate
- Local ? oui but limited. Otherwise on the web or Entreprise via docker image
Plugins
- they adds tasks
- and conventions
Build Cache
- Continuous Integration may have already built some artifacts and compiled some code
- Or locally yourself
- Use –build-cache (local cache)
- or gradle.properties to define a central cache to use
FR: En finir avec les problèmes de gestion de dépendances 4/5
- Tag : #BuildAndRun
- Speaker : @CedricChampeau
- Slides : https://melix.github.io/devoxxfr-gradle-5-dependency-mgmt/#/
- Video : https://www.youtube.com/watch?v=nk8-VfX7rj4
- Feedback : No dependency problems are not over. Yet Gradle 5 may give us the tools to do a better job
Gradle Dependencies Notes
- api != implementation dependencies
- maven is not tied maven central as gradle is not tied to jcentral
- Capability : in an app you need only one library for one capability (ex: log). Now you can tell
- dependency lock
- module set = a family of dependencies that must share the same version when used
- Good excludes (really better than maven)
EN: HandsOn Kotlin 4/5
- Tag : #LearnOrDiscover
- Speakers : Fabian Gutierrez, Sergio Dos Santos
- Code : https://github.com/sergiords/kotlin-hands-on
- Feedback : A good TDD Hands-on to write Java Kotlin code first and then notice that code can be made really less verbose with Kotlin
- Notes : see “solution” branch
FR : Keynote : L’ordinateur quantique 4/5
- Tag : #LearnOrDiscover
- Speaker : David Rousset
- Video : https://www.youtube.com/watch?v=ciM6xK05t2o
- Source : https://www.davrous.com/2018/04/20/lia-et-la-fin-du-silicium-introduction-aux-ordinateurs-quantiques/
- Feedback : A fascinating quick introduction
FR : DDD & Event Sourcing à la rescousse pour implémenter la RGPD ? 4/5
- Tag : #Improve
- Speaker : Guillaume LOURS, Jérôme Avoustin
- Slides : to come
- Video : https://www.youtube.com/watch?v=RK4mrpro2B4
- Feedback : Real life use of DDD & Event sourcing. It applies really well to GDPR (record life, …)
DDD Notes
- Keep the domain clean
- Frameworks go to Infra
- See Hexagonal Architecture
- Road to event sourcing :
- Domain model,
- Events
- Events that transform domain
- Event sourcing
FR : Architecture hexagonale pour les nuls 4/5
- Tag : #Improve
- Speaker : Youen Chéné
- Slides : https://drive.google.com/file/d/1jrZAb5WxcUE6omfNH-DFbeDFZzZxzPPS/view
- Video : https://www.youtube.com/watch?v=Hi5aDfRe-aE
- Pictures :
- Code : https://github.com/youenchene/featurebrawl
- Feedback : An efficient presentation on Hexagonal Architecture. A Topic worth exploring through Kata
- To Remember : Domain : Rule 1 : no framework or lib dependency!!!!!!!
FR: Mes Applications en production avec Kubernetes 4/5
- Speaker : Michael Morello
- Slides : https://fr.slideshare.net/barkbay/devoxx-france-2018-mes-applications-en-production-sur-kubernetes
- Video : https://www.youtube.com/watch?v=cqqLeS9mUyU
- Feedback : A real experience return on K8S in PROD
Kubernetes en production notes
- Command : kubectl get event -> to see what deployed occured
- Take a look at the security context (otherwise you are root) See Video at 9:13 and 11:10
- Take a look at Pod Security Policy to apply security to a list of pods
- Again : Memory and OOM killer
- Metrics : Prometheus recommended
- There are good sample of spring boot prometheus to expose metrics for prometheus
FR : Suivre les avions des lignes avec un Raspberry Pi 3/5
- Tag : #LearnOrDiscover
- Speaker : Guillaume Membré
- Slides : https://www.slideshare.net/MembreGuillaume/suivre-les-avions-des-lignes-avec-un-raspberry-pi-94522064
- Video : https://www.youtube.com/watch?v=NcmCdeY5Iuo
- Feedback : Lots of fun (but no code in this talk)
FR : Migrer à Spring Boot 2 lorsque l’on a une “vraie” application 3/5
- Tag : #Improve
- Speaker : Julien Dubois
- Slides : https://docs.google.com/presentation/d/1Fuu1_hevA6VuZMRcENvwad38r-UNGcytEQRIhXAKMXA/edit#slide=id.p
- Video : https://www.youtube.com/watch?v=lSYr4ugrC7U
- Feedback : A real feedback. 3rd party libraries -> be careful !
SpringBoot 2 Notes
- Spring platform bom stopped -> use bom spring boot
- Spring Boot 1.5 is for Java <= 8
- ElasticSearch not embeddable anymore
- spring-boot-propeties-migrator to help you switch to YAML
- spring boot actuator change (json change)
- Spring data. API change (optional is used)
FR : Java dans Docker : Bonnes pratiques 3/5
- Tag : #DeployAndRun
- Speaker : Charles Sabourdin, Jean-Christophe Sirot
- Slides : https://speakerdeck.com/kanedafromparis/tools-in-action-java-in-docker
- Video : https://www.youtube.com/watch?v=vzpU2jxrxJ8
- Feedback : Out Of Memory Killer can kill your java process because it uses to much memory. This talk presents options and measures you can use
Java Docker Notes
- docker : use –memoryswampiness to avoid swap
- Memory : How much memory java will use in your docker container ?
- java8 : use showsettings to estimate
- java9 : experimental settings to use (they are backported to java 8)
- java10 :
EN : Google CodeLabs 3/5
- Tag : #LearnOrDiscover
- Feedback :
- Google heavily uses gRPC ! Yes RPC…
- Bash console in browse
- So … there was a talk (I should have seen it…) : gRPC, échanges à haute fréquence ! (D. Caramelo, C. Sistare)
EN: Troubleshooting & Debugging Production Microservices in Kubernetes 2/5 (requirements) 5/5 (demo)
- Tag : #DeployAndRun
- Speakers : Baruch Sadogursky Ray Tsang
- Slides :
- Video : https://www.youtube.com/watch?v=1Ts1xlPN9yI
- Feedback :
- Great demo by funny and talented speakers about solving failing apps running on Google Cloud with Kubernetes
- Kudos for debug and log on the fly.
- BUT Requires Google Cloud with SlackDriver + jFrog (this explains 2/5)
EN : Apache Maven and Java 9 2/5
- Speaker : Robert Scholte
- Slides : https://www.slideshare.net/RobertScholte/apache-maven-and-java-9-and-10-devoxx-france-2018
- Video : https://www.youtube.com/watch?v=kZhJ0_Doyqw
- Feedback : Java 9 Modularity is hard, Maven future looks not so bright
FR: Guide de survie NodeJS pour le développeur Java 2/5
- Speaker : Cyril Delmas
- Slides : https://docs.google.com/presentation/d/1eMTW7Ir7fse1MYT_QeWRVwfSkMHUWizauY9XwLHFbPw/edit#slide=id.p
- Video : https://www.youtube.com/watch?v=No8A3AGuWFI
- Feedback : Good talk but haters will still hate…JS
NodeJS Notes
- Use Prettier (See VSCode)
- Learn Chrome debugger and profiler
EN : Spring Framework 5 Features Highlights & Hidden Gem 2/5
- Tag : #Improve
- Speaker : Juergen Hoeller
- Video : https://www.youtube.com/watch?v=WWmRr_6FO1U
- Feedback : Maybe useful
- Reminder to myself : See @CrossOrigin annotation
FR : Les exceptions, oui, mais pas n’importe comment 1/5
- Video : https://www.youtube.com/watch?v=oY_E-yLgtRk
- Feedback : Nothing new and 30% of PHP
Other Talks
Talks I haven’t seen, but I should have and I will
- Swagger 2 est mort, vive OpenAPI 3 (S. Lecacheur, G. Bloquel)
- Du DDD dans mon legacy ! live coding (T. Pierrain, B. Boucard, J. Grodziski) ?/5
- Video : https://www.youtube.com/watch?v=dzKKqS5ewLg
- Feedback : I haven’t seen this talk. I’ll watch it for sure
- Prise de décisions asynchrone, pourquoi et comment? (B. Delacrétaz)
- Video : https://www.youtube.com/watch?v=xkC4zjtAyRc
- Note : Should be useful for us
- Pourquoi vous devriez arrêter d’utiliser les field injection
- Travailler sans hiérarchie ? Expérience chez SonarSource (PY. Nicolas)
- Du monolithe à la structure modulaire en utilisant Maven, IntelliJ et Stan4J (B. Brotosumpeno)
Conclusion

and “Save the date. #devoxxfr 2019 aura lieu les 17, 18 et 19 avril 2019”
Other Feedbacks (all in French)
- Romain Linsolas - Mon retour sur Devoxx France 2018
- Java & moi - 15 prises de notes à Devoxx France 2018
- Erwan Deruelle - Retour sur Devoxx France 2018 - Les conférences les plus…
- Sébastien Lecacheur - Devoxx France 2018, encore et toujours !
- Blog d’Ippon - Une journée à Devoxx - Les universités
- Viaxoft Labs- DEVOXX France 2018 : le débrief
- Un jeudi à Devoxx, découvrez le retour des Xebians !
- Un vendredi à Devoxx, découvrez le retour des Xebians !
- Link-Value - Ce que vous avez raté à Devoxx France
Bonus
- Java & Moi - Initiation à Apache Cassandra To redo the hand-Lab at home


