SlideShare a Scribd company logo
Devoxx 2014 summary
Artem Oboturov
April 24th 2014
Universit´e de la performance by OCTO
Tools :
benerator at http://databene.org/ is a tool for test data
generation
gatling at http://gatling-tool.org/ - stress tool for
HTTP
graphite at http://graphite.wikidot.com/ for scalable
realtime graphing (e.g. to vizualize performance results)
whisper is a fixed-size database of numeric data over time
carbon is a backend for graphite
metrics http://metrics.codahale.com/ library to
introduce points of performance measurement
collectd http://collectd.org/ is a daemon which
periodically collects system performance statistics
Microbenchmarking avec JMH by OCTO
JMH is a Java harness for building, running, and analysing
nano/micro/milli/macro benchmarks written in Java and
other languages targetting the JVM
Opensource and a part of OpenJDK project :
http://openjdk.java.net/projects/code-tools/jmh/
http://hg.openjdk.java.net/code-tools/jmh/
Start learning by using samples: http://hg.openjdk.java.
net/code-tools/jmh/file/tip/jmh-samples/src/main/
java/org/openjdk/jmh/samples/
Annotation-driven framework, generates code from the
annotated sources, and bench-marks the generated version
(which would better reflect a real execution)
Mesurer directement depuis le CPU: les compteurs de
performance by Ullink
Overseer is a Java framework that makes it possible on Linux
systems by simplifying access to real-time measurement of
low-level data such as Hardware Performance Counters
(HPCs), IPMI sensors, and Java VM internal events. Overseer
supports functionalities such as HPC-management,
process/thread affinity settings, hardware topology
identification, as well as power-consumption and temperature
monitoring.
OverHpc relies on libpfm41 for the management of HPCs.
Hardware topology information is gathered through the
libhwloc library.
More data are acquired from IPMI-compatible sensors with
the Intelligent Platform Management Interface3, a
standardized interface used by system administrators to
manage computer systems and monitor their operations.
Ansible in action - le provisionning au bon niveau
d’abstraction
Ansible is an IT automation tool. It can configure systems,
deploy software, and orchestrate more advanced IT tasks such
as continuous deployments or zero downtime rolling updates.
http://docs.ansible.com/
[Just another one] DevOps util
Reusable playbooks : Ansible Galaxy
https://galaxy.ansible.com/
Deux ann´ees de Continuous Delivery au pays des traders
by GLE:FP
Maven plugins for deployment and versioning management:
Deployit used to deploy a Deployment Package to an single
environment
http://tech.xebialabs.com/deployit-maven-plugin/
Build-number is designed to get a unique build number for
each time you build your project http:
//mojo.codehaus.org/buildnumber-maven-plugin/
Versions is used when you want to manage the versions of
artifacts in a project’s POM
http://mojo.codehaus.org/versions-maven-plugin/
Deployment MUST be automated
Test are better in ISO-production environment
Release should become a ”Non-event”
Am´elioration de build maven by Courtanet
Inifinitest : each time a change is made on the source code,
all the tests that might fail because of those changes, are run
be an IDE plugin http://infinitest.github.io/
Moreunit another unit test framework
http://moreunit.sourceforge.net/
Maven timeline plugin
https://github.com/dgageot/maven-timeline
Les Applications R´eactives : un nouveau paradigme pour
lever les d´efis de l’´economie num´erique by InTech
Reactive manifesto by Typesafe (Scala, Akka, etc)
http://www.reactivemanifesto.org/
Look into Scala Promise API and Java 8 CompletableFuture
API
IntelliJ IDEA tips and tricks by Jetbrains
Use keyboard only
To learn how to use only the keyboard, try to use the Key
promoter plugin which shows to user how one can easily
make the same action using only keyboard (menus and
toolbar button mouse clicks initiates shortcut display).
Print the IntelliJ keymap for your OS and use it
Use structural search
Multi-cursor edit
Building a Real-Time Risk Analysis System in Java by
GLE:FP (1)
Maven best practices proposed :
source: javaformatter + jrx https:
//code.google.com/p/maven-java-formatter-plugin/
https:
//maven.apache.org/plugins/maven-jxr-plugin/
packaging: appassembler + war + assembly
http://mojo.codehaus.org/appassembler/
appassembler-maven-plugin/
release: release + changes + buildnumber https:
//maven.apache.org/plugins/maven-changes-plugin/
http://maven.apache.org/maven-release/
maven-release-plugin/
Building a Real-Time Risk Analysis System in Java by
GLE:FP (2)
Maven best practices proposed :
documentation : site markdown + sample/snippet +
linkcheck + pdf + umlgraph
dependency: version + overview + enforcer-plugin +
dependency-tree
test : pitest + failsafe + jacoco + checker
Exception monitoring in logs (The Elasticsearch ELK Stack)
logstash is a tool for managing events and logs
http://logstash.net/
elastic search http://www.elasticsearch.org/
kibana - the RT data visualization dashboard
http://www.elasticsearch.org/overview/kibana/
BOF BrownBagLunch France
The concept (from Wikipedia): a brown bag seminar, session or
lunch is generally a training or information session during a lunch
break. The term ”brown bag” refers to the packed lunch meals
that are either brought along by the attendees or provided by the
host. In the USA, these are often packed in brown paper bags.
Brown bag seminars will normally run for one or two hours.
http://en.wikipedia.org/wiki/Brown_bag_seminar
The site: http://www.brownbaglunch.fr/
Specialists list: http://www.brownbaglunch.fr/baggers.html
Virtualization 2.0 et kernel linux by Xebia
No hypervisor : use linux control groups
Control hardware resource usage
Resources isolation via namespaces
lxc-{create | start | ls | stop }
33 things you want to do better by T. Bujok (1)
Libraries:
lombock annotations to be used to simplify Java POJOs
@Data @Builder @Log4j @Cleanup @Delegate
http://projectlombok.org/
lambdaj https://code.google.com/p/lambdaj/
slf4j TODO : remove .printStackTrace - it does not show the
source of error; TODO : remove Log4j loggin with no
formatting clause (idem)
spock is a testing and specification framework for Java and
Groovy applications. https://code.google.com/p/spock/
unitils is an open source library aimed at making unit and
integration testing easy and maintainable @InjectInto
@InjectIntoStatic http://www.unitils.org/
gauva : cache, optional, multivalue sets, etc
33 things you want to do better by T. Bujok (2)
Testing:
junitparams @Params, $() = new Object[]{};
https://code.google.com/p/junitparams/
awaitility await().atMost(5,
SECONDS).until(costumerStatusIsUpdated());
https://code.google.com/p/awaitility/
byteman byte code injection : could be used for tracing, etc
http://www.jboss.org/byteman
Try to use more Groovy for scripting and development

More Related Content

PPTX
Guide: How to Build OpenCV 3.0.0
PDF
Installing OpenCV 2.4.x with Qt
PDF
Installing OpenCV 2.3.1 with Qt
PDF
How to write a well-behaved Python command line application
PDF
Using openCV 3.1.0 with vs2015
PDF
Open Source tools overview
PDF
Design choices of golang for high scalability
PPTX
OpenDaylight Developer Experience 2.0
Guide: How to Build OpenCV 3.0.0
Installing OpenCV 2.4.x with Qt
Installing OpenCV 2.3.1 with Qt
How to write a well-behaved Python command line application
Using openCV 3.1.0 with vs2015
Open Source tools overview
Design choices of golang for high scalability
OpenDaylight Developer Experience 2.0

What's hot (20)

PDF
Debugging of (C)Python applications
PDF
Modeling Software Systems in Experimental Robotics for Improved Reproducibility
PDF
Getting Started with EasyBuild - Tutorial Part 2
PPTX
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
PDF
How to setup MateriApps LIVE!
PDF
LibreOffice oss-fuzz, crashtesting, coverity
PDF
HiPEAC 2019 Tutorial - Maestro RTOS
PDF
The Scientific Filesystem
PDF
Continuous Delivery di una WebApp - by example
PDF
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PDF
Don't Fear the Autotools
PDF
"Making OpenCV Code Run Fast," a Presentation from Intel
PPTX
Intro to-venv-py3
PDF
Conan.io - The C/C++ package manager for Developers
PDF
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
PDF
Git, CMake, Conan - How to ship and reuse our C++ projects?
PDF
Droidcon Summary 2021
PDF
Golang Project Layout and Practice
ODP
Some wonderful Linux softwares for daily use
ODP
Cross Platform Objective C Development Using Gn Ustep
Debugging of (C)Python applications
Modeling Software Systems in Experimental Robotics for Improved Reproducibility
Getting Started with EasyBuild - Tutorial Part 2
Install, Compile, Setup, Setting OpenCV 3.2, Visual C++ 2015, Win 64bit,
How to setup MateriApps LIVE!
LibreOffice oss-fuzz, crashtesting, coverity
HiPEAC 2019 Tutorial - Maestro RTOS
The Scientific Filesystem
Continuous Delivery di una WebApp - by example
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
Don't Fear the Autotools
"Making OpenCV Code Run Fast," a Presentation from Intel
Intro to-venv-py3
Conan.io - The C/C++ package manager for Developers
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Git, CMake, Conan - How to ship and reuse our C++ projects?
Droidcon Summary 2021
Golang Project Layout and Practice
Some wonderful Linux softwares for daily use
Cross Platform Objective C Development Using Gn Ustep
Ad

Viewers also liked (8)

PDF
How to Upgrade Your Peanut Butter & Jelly Sandwich
PPT
110621 Brown Bag Lunch - iPhone & Android Apps for Business
PPT
BrownBag Lunch 24Nov09 - Monetization 2.0
PPT
Effective Communication & Where do good ideas come from_Kavita and Seema
PPTX
Brown bag lunch series
PPTX
Sharing resources
PPT
Brown Bag Lunch Strategy
PPTX
2013 Edelman Global Entertainment Survey
How to Upgrade Your Peanut Butter & Jelly Sandwich
110621 Brown Bag Lunch - iPhone & Android Apps for Business
BrownBag Lunch 24Nov09 - Monetization 2.0
Effective Communication & Where do good ideas come from_Kavita and Seema
Brown bag lunch series
Sharing resources
Brown Bag Lunch Strategy
2013 Edelman Global Entertainment Survey
Ad

Similar to Devoxx 2014 [incomplete] summary (20)

PDF
Dealing with large code bases. cd ams meetup
PPTX
Building trust within the organization, first steps towards DevOps
PDF
Learning on Deep Learning
PDF
Blazing Fast Feedback Loops in the Java Universe
PPTX
Devoxx Belgium 2015
PDF
The Diabolical Developer's Guide to Surviving Java 9
PDF
Intelligent Projects with Maven - DevFest Istanbul
PDF
F3-DP-2015-Milata-Tomas-java-ee-batch-editor (1)
PPTX
Belfast JUG 23-10-2013
DOCX
ESB APPLICTAION IMPROVEMENT -2024 - this
PDF
Building XWiki
PDF
BMO - Intelligent Projects with Maven
PDF
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
KEY
4 maven junit
PDF
Optimizing Java Chris Newland James Gough Benjamin J Evans
PPTX
The_Little_Jenkinsfile_That_Could
PDF
The Art Of Performance Tuning - with presenter notes!
PDF
Hadoop Summit 2010 Challenges And Uniqueness Of Qe And Re Processes In Hadoop
PDF
JDK Tools For Performance Diagnostics
PPTX
How to build a debuggle runtime
Dealing with large code bases. cd ams meetup
Building trust within the organization, first steps towards DevOps
Learning on Deep Learning
Blazing Fast Feedback Loops in the Java Universe
Devoxx Belgium 2015
The Diabolical Developer's Guide to Surviving Java 9
Intelligent Projects with Maven - DevFest Istanbul
F3-DP-2015-Milata-Tomas-java-ee-batch-editor (1)
Belfast JUG 23-10-2013
ESB APPLICTAION IMPROVEMENT -2024 - this
Building XWiki
BMO - Intelligent Projects with Maven
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
4 maven junit
Optimizing Java Chris Newland James Gough Benjamin J Evans
The_Little_Jenkinsfile_That_Could
The Art Of Performance Tuning - with presenter notes!
Hadoop Summit 2010 Challenges And Uniqueness Of Qe And Re Processes In Hadoop
JDK Tools For Performance Diagnostics
How to build a debuggle runtime

Recently uploaded (20)

PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administraation Chapter 3
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Nekopoi APK 2025 free lastest update
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ai tools demonstartion for schools and inter college
PDF
medical staffing services at VALiNTRY
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
AI in Product Development-omnex systems
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
Understanding Forklifts - TECH EHS Solution
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Design an Analysis of Algorithms II-SECS-1021-03
Design an Analysis of Algorithms I-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administraation Chapter 3
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Nekopoi APK 2025 free lastest update
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ai tools demonstartion for schools and inter college
medical staffing services at VALiNTRY
Navsoft: AI-Powered Business Solutions & Custom Software Development
How to Choose the Right IT Partner for Your Business in Malaysia
AI in Product Development-omnex systems
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......

Devoxx 2014 [incomplete] summary

  • 1. Devoxx 2014 summary Artem Oboturov April 24th 2014
  • 2. Universit´e de la performance by OCTO Tools : benerator at http://databene.org/ is a tool for test data generation gatling at http://gatling-tool.org/ - stress tool for HTTP graphite at http://graphite.wikidot.com/ for scalable realtime graphing (e.g. to vizualize performance results) whisper is a fixed-size database of numeric data over time carbon is a backend for graphite metrics http://metrics.codahale.com/ library to introduce points of performance measurement collectd http://collectd.org/ is a daemon which periodically collects system performance statistics
  • 3. Microbenchmarking avec JMH by OCTO JMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targetting the JVM Opensource and a part of OpenJDK project : http://openjdk.java.net/projects/code-tools/jmh/ http://hg.openjdk.java.net/code-tools/jmh/ Start learning by using samples: http://hg.openjdk.java. net/code-tools/jmh/file/tip/jmh-samples/src/main/ java/org/openjdk/jmh/samples/ Annotation-driven framework, generates code from the annotated sources, and bench-marks the generated version (which would better reflect a real execution)
  • 4. Mesurer directement depuis le CPU: les compteurs de performance by Ullink Overseer is a Java framework that makes it possible on Linux systems by simplifying access to real-time measurement of low-level data such as Hardware Performance Counters (HPCs), IPMI sensors, and Java VM internal events. Overseer supports functionalities such as HPC-management, process/thread affinity settings, hardware topology identification, as well as power-consumption and temperature monitoring. OverHpc relies on libpfm41 for the management of HPCs. Hardware topology information is gathered through the libhwloc library. More data are acquired from IPMI-compatible sensors with the Intelligent Platform Management Interface3, a standardized interface used by system administrators to manage computer systems and monitor their operations.
  • 5. Ansible in action - le provisionning au bon niveau d’abstraction Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. http://docs.ansible.com/ [Just another one] DevOps util Reusable playbooks : Ansible Galaxy https://galaxy.ansible.com/
  • 6. Deux ann´ees de Continuous Delivery au pays des traders by GLE:FP Maven plugins for deployment and versioning management: Deployit used to deploy a Deployment Package to an single environment http://tech.xebialabs.com/deployit-maven-plugin/ Build-number is designed to get a unique build number for each time you build your project http: //mojo.codehaus.org/buildnumber-maven-plugin/ Versions is used when you want to manage the versions of artifacts in a project’s POM http://mojo.codehaus.org/versions-maven-plugin/ Deployment MUST be automated Test are better in ISO-production environment Release should become a ”Non-event”
  • 7. Am´elioration de build maven by Courtanet Inifinitest : each time a change is made on the source code, all the tests that might fail because of those changes, are run be an IDE plugin http://infinitest.github.io/ Moreunit another unit test framework http://moreunit.sourceforge.net/ Maven timeline plugin https://github.com/dgageot/maven-timeline
  • 8. Les Applications R´eactives : un nouveau paradigme pour lever les d´efis de l’´economie num´erique by InTech Reactive manifesto by Typesafe (Scala, Akka, etc) http://www.reactivemanifesto.org/ Look into Scala Promise API and Java 8 CompletableFuture API
  • 9. IntelliJ IDEA tips and tricks by Jetbrains Use keyboard only To learn how to use only the keyboard, try to use the Key promoter plugin which shows to user how one can easily make the same action using only keyboard (menus and toolbar button mouse clicks initiates shortcut display). Print the IntelliJ keymap for your OS and use it Use structural search Multi-cursor edit
  • 10. Building a Real-Time Risk Analysis System in Java by GLE:FP (1) Maven best practices proposed : source: javaformatter + jrx https: //code.google.com/p/maven-java-formatter-plugin/ https: //maven.apache.org/plugins/maven-jxr-plugin/ packaging: appassembler + war + assembly http://mojo.codehaus.org/appassembler/ appassembler-maven-plugin/ release: release + changes + buildnumber https: //maven.apache.org/plugins/maven-changes-plugin/ http://maven.apache.org/maven-release/ maven-release-plugin/
  • 11. Building a Real-Time Risk Analysis System in Java by GLE:FP (2) Maven best practices proposed : documentation : site markdown + sample/snippet + linkcheck + pdf + umlgraph dependency: version + overview + enforcer-plugin + dependency-tree test : pitest + failsafe + jacoco + checker Exception monitoring in logs (The Elasticsearch ELK Stack) logstash is a tool for managing events and logs http://logstash.net/ elastic search http://www.elasticsearch.org/ kibana - the RT data visualization dashboard http://www.elasticsearch.org/overview/kibana/
  • 12. BOF BrownBagLunch France The concept (from Wikipedia): a brown bag seminar, session or lunch is generally a training or information session during a lunch break. The term ”brown bag” refers to the packed lunch meals that are either brought along by the attendees or provided by the host. In the USA, these are often packed in brown paper bags. Brown bag seminars will normally run for one or two hours. http://en.wikipedia.org/wiki/Brown_bag_seminar The site: http://www.brownbaglunch.fr/ Specialists list: http://www.brownbaglunch.fr/baggers.html
  • 13. Virtualization 2.0 et kernel linux by Xebia No hypervisor : use linux control groups Control hardware resource usage Resources isolation via namespaces lxc-{create | start | ls | stop }
  • 14. 33 things you want to do better by T. Bujok (1) Libraries: lombock annotations to be used to simplify Java POJOs @Data @Builder @Log4j @Cleanup @Delegate http://projectlombok.org/ lambdaj https://code.google.com/p/lambdaj/ slf4j TODO : remove .printStackTrace - it does not show the source of error; TODO : remove Log4j loggin with no formatting clause (idem) spock is a testing and specification framework for Java and Groovy applications. https://code.google.com/p/spock/ unitils is an open source library aimed at making unit and integration testing easy and maintainable @InjectInto @InjectIntoStatic http://www.unitils.org/ gauva : cache, optional, multivalue sets, etc
  • 15. 33 things you want to do better by T. Bujok (2) Testing: junitparams @Params, $() = new Object[]{}; https://code.google.com/p/junitparams/ awaitility await().atMost(5, SECONDS).until(costumerStatusIsUpdated()); https://code.google.com/p/awaitility/ byteman byte code injection : could be used for tracing, etc http://www.jboss.org/byteman Try to use more Groovy for scripting and development