SlideShare a Scribd company logo
@theNeomatrix369
Are you pairing with tools to
improve code quality ?
Leaning on tools & techniques to improve code quality
@theNeomatrix369
About me
Mani (@theNeomatrix369)
● LJC Associate
● Adopt OpenJDK and JSR (JCP Member)
● blog: http://neomatrix369.wordpress.com
● github: http://github.com/neomatrix369
● bitbucket: https://bitbucket.org/neomatrix369
Avatar: courtesy of Recworks: Dan Smallman @dsrecworks
@theNeomatrix369
- I’m only sharing my learning experience - YMMV !
- Experimental yet practical methods
- Learning via validating and verifying
- A silver bullet to solve all problems
- One shirt fits all solution
- Not about any specific product
Disclaimer
@theNeomatrix369
Agenda
- How it all started for me...
- First steps to learning to use these tools...
- Inventions
- Observations
- Introspection
- Discoveries
- Conclusion
@theNeomatrix369
How it all started for me...
@theNeomatrix369
My first computer - 8088 processor
(8-bit processor)
My first game - Digger (not PacMan)
Mid-1990s
@theNeomatrix369
Between 2000-2010
Career started as a hobby - years later become
a profession
@theNeomatrix369
Early 2010
Desire…more
knowledge,
experience & skills
@theNeomatrix369
Communities
...met dev. communities in London and other parts of Europe!
LSCC
@theNeomatrix369
Sowing of seeds...
@theNeomatrix369Source: SonarQube (aka Sonar)
What does code quality mean to you ?
Is it the seven axes of quality ?
@theNeomatrix369
How do we improve quality ?
@theNeomatrix369
Pair programming is good...
@theNeomatrix369
...but not always available...
@theNeomatrix369
Then I had an idea...
@theNeomatrix369
Why not use tools...
@theNeomatrix369
First steps to learning to
use these tools...
@theNeomatrix369
Treemaps are awesome...
10,000 feet view !
@theNeomatrix369
Dashboard - my own Quality metrics
@theNeomatrix369
Issue violations & Duplications
Checkstyle, Findbugs, PMD rules
@theNeomatrix369
What is Cyclomatic
Complexity
or
Complexity ?
@theNeomatrix369
In simple words, it is the
number of pathways
due to decision logic in a software
program.
See Wikipedia definition
@theNeomatrix369
Complexity See Definitions glossary
@theNeomatrix369
Refactoring saves the day...
Higher complexity (CCI: 4)
void doSomethingBasedOnCurrentState( int state ) {
switch ( state ) {
case INACTIVE: //doSomethingForInActiveState(); break;
case ACTIVE: //doSomethingForActiveState(); break;
case UNKNOWN: //doSomethingForUnknownState(); break;
}
}
Lower complexity (CCI: 1)
public enum CurrentState {
INACTIVE { void doSomething() {} },
ACTIVE { void doSomething() {} },
UNKNOWN { void doSomething() {} };
abstract void doSomething();
}
CCI Source: SonarQube (Complexity scores)
@theNeomatrix369
Refactoring resources...
@theNeomatrix369
Test coverage -
unit & integration tests
Hint: EclEmma, JaCoCo and IntelliJ Code Coverage
@theNeomatrix369
Performance tuning tools(short and long feedback loops)
- Application behaviour
- GC behaviour (on the JVM)
- Early or late feedback (during
development, or post- development)
- Profiling
Some known tools: Java Mission Control, Java
Flight Recorder, jconsole, GC Viewer, VisualVM,
HeapAnalyzer, PerfAnal, JAMon, HPJMeter,
HonestProfiler, mjProf, Eclipse Memory Analyzer
(MAT)
@theNeomatrix369
Performance tuning tools(short feedback loop)
Profiling tools
- Honest profiler
- mjProf
- Eclipse Memory Analyzer (MAT)
- others
@theNeomatrix369
Performance tuning tools(short feedback loop)
Profiling tools
XRebel
(lightweight)
runtime java
profiler
@theNeomatrix369
Performance tuning tools(short feedback loop)
JITWatch* - @chriswhocodes
Understand...Java HotSpot Just-In-Time (JIT) compiler...
program execution.
Hot Method too big - among other JIT optimisation errors
Java 7 and Java 8 core methods above the default hot method inlining threshold
*an Adopt OpenJDK F/OSS project
@theNeomatrix369
Performance tuning tools(long feedback loop)
Censum - jclarity.com
- GC Analysis, similar to GC Viewer
- Additional metrics and graphs
- Built-in analytics,
recommendations & heuristics
@theNeomatrix369
The others...
Google CodePro
Coverity ThreadSafe
IntelliJ IDEA Squale
Veracode
@theNeomatrix369
Collaborate...
share, crowd-source, machine learning...
(Hippie completion)
@theNeomatrix369
Inventions...
@theNeomatrix369
Strategies (checklists)
[ ] Strategy (method in the madness)
[ ] Strategy (interesting, ear-marked)
Find the checklists in the Resources section at the bottom
@theNeomatrix369
Continuous Inspection
Individual
inspections
(local first)
@theNeomatrix369
Continuous Inspection
(local first)
Some more individual inspections
@theNeomatrix369
Rule of thumb
Metrics Rule Mitigating action
Method complexity >= 6 pathways Refactor: split method
Class complexity >= 60 pathways Refactor: split class
LCOM4 >=2 responsibilities Refactor: new class / subclass
RFC per class > 40 connections
(both ways - afferent &
efferent)
Refactor: reduce dependencies
and dependents, split class
Source: SonarSource resource, Book: SonarQube in Action
@theNeomatrix369
Observations...
@theNeomatrix369
Repetition...helps build
muscle memory
@theNeomatrix369
Kata (型) ?
きょうしつ (kyoushitsu)
@theNeomatrix369
Katas - individual parts
issues violations
duplications
code (test) coverage
mutation testing
quickcheck
immutability check
complexity check
performance check
@theNeomatrix369
Introspection...
@theNeomatrix369
Trust but verify
Trust your tool(s)…
…believe in your method(s)
Adopt advice from peers & experts…
...but also evaluate it yourself
@theNeomatrix369
Do these factors make up
quality ?
developer: knowledge and skills
x
tool: tunability, features & capabilities
x
(environment & team)
@theNeomatrix369
(when you take a plunge)
...its not just about tools, there is more….
Discovery…
@theNeomatrix369
Discovery…
...firstly a tool is only
a temporary scaffolding…
@theNeomatrix369
Discovery…
...its about methods and
techniques...
(because tools are only a
dumb conduit)
@theNeomatrix369
Discovery…
(...if you dive deeper…)
its about the practise
and developing good habits
"I'm not a great programmer; I'm just a good programmer with great
habits.” Kent Beck, http://en.wikiquote.org/wiki/Kent_Beck
@theNeomatrix369
Realisations...
Writing good quality code takes
practice, effort and time
@theNeomatrix369
Quality is a concerted effort of not just a single
developer but a team of developers !
Realisations...
@theNeomatrix369
- Repetition
- Measuring progress
- Early detection
- Short feedback loop
- Reliable pairing
- Filling the (missing) gap
- Powerful & effective ally
Conclusion
@theNeomatrix369
Summary
● Personal story
● Various methods & techniques: processes
● Strategies (checklists)
● Inventions & observations: continuous inspection (local first) & katas
● Discoveries and Realisations
● (My) conclusion
@theNeomatrix369
Gratitude - big thanks !
...to the dev communities of London and Europe!
LSCC
@theNeomatrix369
Q & A
Keep them coming !
@theNeomatrix369
Its time to share your methods and
help improve our craft !
Please tweet your feedback at
@theNeomatrix369
@theNeomatrix369
Devoxx UK -
TBA 2016
Socrates UK -
TBA 2016
Conferences
@theNeomatrix369
Let’s change the Java ecosystem, together!
Daniel Bryant @danielbryantuk
Mani Sarkar @theNeomatrix369
With support from the JCP, London Java Community and Java communities worldwide
@adoptajsr
@adoptopenjdk
members@adoptajsr.java.net
adopt-openjdk@googlegroups.com
adoption-discuss@openjdk.java.net
@theNeomatrix369
Resources
● SonarQube resources
● SonarQube Nemo project
● Discussions on Sonar on JavaRanche
● Installing SonarQube (formerly Sonar) on MacOsX Mountain Lion
● Using SonarQube on MacOsX Mountain Lion
● SonarGraph (http://www.hello2morrow.com/products/sonargraph)
● Jitwatch: http://github.com/AdoptOpenJDK/jitwatch
● QuickCheck (https://bitbucket.org/blob79/quickcheck)
● Mutation Testing (http://pitest.org/ or http://ortask.com/mutator/)
● Mutability Detector (https://github.com/MutabilityDetector/)
● AssertJ - fluent assertions for Java (plus other fluent libraries)
● Censum (@jclarity product - see http://www.jclarity.com/censum/)
● Profilers: HonestProfiler, mjProf, Eclipse Memory Analyzer (MAT)
● Books: Sonar in Action (http://www.manning.com/papapetrou/), Software
Craftsmanship by Sandro Mancuso, Uncle Bob’s Clean Code
@theNeomatrix369
Predecessor to this presentation...
http://bit.ly/1lk8NDW
to improve code quality !
SonarQubetm
@theNeomatrix369
Strategy (method in the madness)
[ ] Unit & Integration test coverage:
EclEmma, JaCoco, IntelliJ Code Coverage check
[ ] Most violated rules (Blockers, Critical, Major, Minor violations)
[ ] Duplication removal - DRY
[ ] Complexity (package-, file/class-, method-levels)
[ ] Performance: profiling (memory, cpu, hardware)
[ ] Performance: GC analysis*, JMH benchmarking*
* Java/JVM platforms only
@theNeomatrix369
Strategy (interesting, ear-marked)
[ ] Analyse & apply Squale reports
[ ] Apply SonarGraph
[ ] Apply Mutation testing (i.e. PITest, Mutator)
[ ] Apply generative tests (QuickCheck)
[ ] Apply Mutability Detector library
[ ] Analyse using JitWatch (improve JIT attempts)
[ ] Analyse using Censum (improve GC)
@theNeomatrix369
Quality of Music - truth table
Quality of instrument
(material)
How tuned the
instrument is?
Skills & experience of
the performer
Quality of music
(outcome)
Bad Not tuned Not skilled / Skilled Very Bad
Bad Tuned Not skilled / Skilled Bad
Medicore Not tuned Not skilled / Skilled Below Average
Good Tuned / Not tuned Not skilled / Skilled Average
Good Tuned Skilled Good
Very good Tuned Highly skilled Very good
@theNeomatrix369
Novice to expert...
In the beginning, learning from past experiences,
building up knowledge and experience with
repetitions, finally excelling with your own efforts...
@theNeomatrix369
Layers of quality
Continuous Deployment*
Continuous Integration*
Code quality
Tools & Methods
(Developing) Good Habits
@theNeomatrix369
Layers of quality (contd.)
Continuous Deployment*
Continuous Integration*
See what Dr. Daniel Bryant has to say about the above:
http://slidesha.re/1rKdOdU
http://slidesha.re/VwKDB0
(Devops the TDD approach)

More Related Content

What's hot

Sonar Metrics
Sonar MetricsSonar Metrics
Sonar Metrics
Keheliya Gallaba
 
Automation is Easy! (python version)
Automation is Easy! (python version)Automation is Easy! (python version)
Automation is Easy! (python version)
Iakiv Kramarenko
 
Brownie
BrownieBrownie
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
Weverton Timoteo
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
Steve Zhang
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
Peter Kofler
 
Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)
Masaki Nakagawa
 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)
Peter Kofler
 
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng NghĩaTech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Nexus FrontierTech
 
Testing for people who hate testing
Testing for people who hate testingTesting for people who hate testing
Testing for people who hate testing
Sam Bolgert
 
Managing code quality with SonarQube - Radu Vunvulea
Managing code quality with SonarQube - Radu VunvuleaManaging code quality with SonarQube - Radu Vunvulea
Managing code quality with SonarQube - Radu Vunvulea
ITSpark Community
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot Framework
Somkiat Puisungnoen
 
A journey with Target Platforms
A journey with Target PlatformsA journey with Target Platforms
A journey with Target Platforms
Mickael Istria
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
Xebia Nederland BV
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
Pekka Klärck
 
Lighning Talk: PHP build process
Lighning Talk: PHP build processLighning Talk: PHP build process
Lighning Talk: PHP build processBryan Agee
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Peter Kofler
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the Rings
Asheesh Mehdiratta
 
EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?Samsung Open Source Group
 

What's hot (20)

Sonar Metrics
Sonar MetricsSonar Metrics
Sonar Metrics
 
Automation is Easy! (python version)
Automation is Easy! (python version)Automation is Easy! (python version)
Automation is Easy! (python version)
 
Brownie
BrownieBrownie
Brownie
 
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
 
Sonar
SonarSonar
Sonar
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)
 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)
 
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng NghĩaTech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
 
Testing for people who hate testing
Testing for people who hate testingTesting for people who hate testing
Testing for people who hate testing
 
Managing code quality with SonarQube - Radu Vunvulea
Managing code quality with SonarQube - Radu VunvuleaManaging code quality with SonarQube - Radu Vunvulea
Managing code quality with SonarQube - Radu Vunvulea
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot Framework
 
A journey with Target Platforms
A journey with Target PlatformsA journey with Target Platforms
A journey with Target Platforms
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
Lighning Talk: PHP build process
Lighning Talk: PHP build processLighning Talk: PHP build process
Lighning Talk: PHP build process
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the Rings
 
EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?
 

Similar to Leaning on the two Ts

TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
ssusercaf6c1
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Nacho Cougil
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
Nacho Cougil
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
Nacho Cougil
 
How to crack java script certification
How to crack java script certificationHow to crack java script certification
How to crack java script certification
KadharBashaJ
 
Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"
Demi Ben-Ari
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
César Hernández
 
Elasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ SignalElasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ Signal
Joachim Draeger
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
Nacho Cougil
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
Red Hat Developers
 
Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testing
Alan Richardson
 
Pycon 2012 Scikit-Learn
Pycon 2012 Scikit-LearnPycon 2012 Scikit-Learn
Pycon 2012 Scikit-Learn
Anoop Thomas Mathew
 
TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
Nacho Cougil
 
Behaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About TestingBehaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About Testing
dn
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testing
malcolmt
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Codemotion
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Demi Ben-Ari
 
JDK Tools For Performance Diagnostics
JDK Tools For Performance DiagnosticsJDK Tools For Performance Diagnostics
JDK Tools For Performance Diagnostics
Baruch Sadogursky
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Applitools
 
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
Chetan Khatri
 

Similar to Leaning on the two Ts (20)

TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
How to crack java script certification
How to crack java script certificationHow to crack java script certification
How to crack java script certification
 
Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
 
Elasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ SignalElasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ Signal
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
 
Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testing
 
Pycon 2012 Scikit-Learn
Pycon 2012 Scikit-LearnPycon 2012 Scikit-Learn
Pycon 2012 Scikit-Learn
 
TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
 
Behaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About TestingBehaviour Driven Development and Thinking About Testing
Behaviour Driven Development and Thinking About Testing
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testing
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
 
JDK Tools For Performance Diagnostics
JDK Tools For Performance DiagnosticsJDK Tools For Performance Diagnostics
JDK Tools For Performance Diagnostics
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
 
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
TransmogrifAI - Automate Machine Learning Workflow with the power of Scala an...
 

More from Mani Sarkar

How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?
Mani Sarkar
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
Mani Sarkar
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Mani Sarkar
 
Cli in the browser
Cli in the browserCli in the browser
Cli in the browser
Mani Sarkar
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraints
Mani Sarkar
 
Kanban kata
Kanban kataKanban kata
Kanban kata
Mani Sarkar
 
Refactoring developer habits
Refactoring developer habitsRefactoring developer habits
Refactoring developer habits
Mani Sarkar
 
Essential technical skills
Essential technical skillsEssential technical skills
Essential technical skills
Mani Sarkar
 
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
Mani Sarkar
 
How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !
Mani Sarkar
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
Mani Sarkar
 
Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)
Mani Sarkar
 
Adopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentationAdopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentation
Mani Sarkar
 
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Mani Sarkar
 
Java2 days 2013-lambda
Java2 days 2013-lambdaJava2 days 2013-lambda
Java2 days 2013-lambda
Mani Sarkar
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
Mani Sarkar
 
Java2 days 2013-j-treg
Java2 days 2013-j-tregJava2 days 2013-j-treg
Java2 days 2013-j-treg
Mani Sarkar
 
History of java
History of javaHistory of java
History of java
Mani Sarkar
 

More from Mani Sarkar (18)

How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?How to contribute to Adopt OpenJDK?
How to contribute to Adopt OpenJDK?
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
 
Cli in the browser
Cli in the browserCli in the browser
Cli in the browser
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraints
 
Kanban kata
Kanban kataKanban kata
Kanban kata
 
Refactoring developer habits
Refactoring developer habitsRefactoring developer habits
Refactoring developer habits
 
Essential technical skills
Essential technical skillsEssential technical skills
Essential technical skills
 
How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...How is Java / JVM built ? Back then and now...
How is Java / JVM built ? Back then and now...
 
How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !How is Java / JVM built ? Adopt OpenJDK is your answer !
How is Java / JVM built ? Adopt OpenJDK is your answer !
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
 
Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK presentation (slide deck)
 
Adopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentationAdopt OpenJDK, Betterrev blind ignite presentation
Adopt OpenJDK, Betterrev blind ignite presentation
 
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
 
Java2 days 2013-lambda
Java2 days 2013-lambdaJava2 days 2013-lambda
Java2 days 2013-lambda
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
 
Java2 days 2013-j-treg
Java2 days 2013-j-tregJava2 days 2013-j-treg
Java2 days 2013-j-treg
 
History of java
History of javaHistory of java
History of java
 

Recently uploaded

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 

Recently uploaded (20)

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 

Leaning on the two Ts