SlideShare a Scribd company logo
The Bleeding Edge
Richard Warburton and Martijn Verburg
http://www.jclarity.com
"Toto, I’ve a feeling we’re
not in Kansas anymore"
- Dorothy, Wizard of Oz
Who are we?
● jClarity - We solve performance problems
● Richard - Engineer, Author, Speaker
● Martijn - CEO, Author, Speaker, Cat Herder
The Status Quo
What is jClarity building?
How we pick Technology
Technology Scorecard
A Brave New World
The Bleeding Edge
We have a lot of Java EE Experience
● LJC is on the JCP Executive Committee
● Martijn is a CERTIFIED BEA Weblogic
○ Something, something, something Darkside

● Lots of experience and deep community
But what if you don’t use that?...

… we don’t!
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
The Answer
..to your performance problems

Easy Access, Lightweight and Low Impact
The Bleeding Edge
Daemon, Aggregator & UI
● Daemon
○ Needs to be Low Impact, Low Traffic, Self-Updating

● Aggregator
○ Non-blocking I/O, Sockets > HTTP, High Availability

● UI
○ Rich Browser App, Accepts server-push events
Doesn’t really fit the Java EE World
● Daemon: Java EE is not low impact
● Server: Java EE is mainly about req/resp
● UI: Java EE lacks support for push events
○ Java EE 7 has Websockets now
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
The Bleeding Edge
Our Methodology
Stolen ‘Adopted’ from Matt Raible
1.
2.
3.
4.
5.

Identify Ranking Criteria
Weight each criteria
Score each solution
Multiply and add
Prototype top two choices
The Bleeding Edge
Observations
● Cons
○ Still Subjective
○ No guarantees

● Pros
○ Incorporates diverse feedback
○ Avoids bike-shedding
○ Avoids Technology Dictatorship
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
What Tech Stack did we pick?
The Bleeding Edge
AngularJS
● Client-side Javascript framework
● Model-View-Whatever (MVC or MVVM)
● Two-Way Data Binding
● Directives used to encapsulate components
AngularJS - Positives
● Html5 concepts without adoption issues
● Declarative - easy to understand and read
● Simple code structure
● Client side templating
AngularJS - Negatives
● Karma Framework doesn’t integrate well
● Use of $scope.$apply
● People are familiar with jQuery
○ Declarative learning curve.
● Javascript tooling still kinda sucks
AngularJS - Scorecard

"Real win over hand rolled Javascript"
MongoDB
● NoSQL Document Store
● “Scalable” - easy sharding
● “Fault Tolerant” - easy data replication
● The new DB sexy!
The Bleeding Edge
MongoDB - Positives
● Document Modelling
● Nice API
● Easy to adopt and get started
● Easy Replication and Sharding
● Can be Fast*
MongoDB - Negatives (1)
● Security
○ we compiled an SSL-enabled mongo
○ pwning folks? Find out if they use Mongo!
○ tool support
● Data Integrity Concerns
● Split Brain - election algorithm failures
MongoDB - Negatives (2)
● Difficult to automatically sysadmin
● Immaturity of Drivers/Connectors (PHP)
● Document model is limited
● New query language to learn
● Poor timezone support
MongoDB - Scorecard

"Consider your security strategy well."
"Is a document store what you really need?"
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented
○ Lightweight Eventbus
○ No Shared Mutable State

● Non-blocking I/O
● Websocket Support
Vert.x
● Polyglot Reactive Programming Framework
● Message Passing Oriented
○ Lightweight Eventbus
○ No Shared Mutable State

● Non-blocking I/O
● Websocket Support
The Bleeding Edge
Vert.x - Positives
● No shared state, easy concurrency
● Eventbus to the browser!
● Community++
● Polyglot
○ We used Groovy and Java
Vert.x - Negatives
● Immaturity:
○ Released 2.0 without supporting 1.3
○ Testing Framework not quite there
● NIH Logging
● Inter Machine Eventbus Security
○ Not originally designed for the open internet
Vert.x - Scorecard

"It's perfect…. for the RIGHT use case."
Chef
● Automates server configuration
○ Centralised repo of pre-built recipes
○ Ruby based DSL

● Can also automate application deployment
○ Run update to deploy config/binaries
Chef - Positives
● Lots of Java/JVM recipes
● Ability to set roles and override properties
● Centrally controlled configuration
● Provides structure and deployment model
Chef - Inconsistent
knife cookbook upload apache2

knife role from file roles/foo/bar.rb

knife data bag from file users john.json
Chef - Negatives
● Managing dependencies is difficult
○ Use Librarian to help

● Not Declarative
○ e.g: doesn’t remove old config

● Still very complex
○ Steep learning curve
Chef - Scorecard

"Chef, it's way better than shell scripts"
Common Bleeding Edge Themes
1. Immaturity
2. Lack of tooling
3. Problems at the boundary
The Status Quo
What is jClarity building?
How we picked Technology
Technology Scorecard
A Brave New World
The Bleeding Edge
Technology ←→ $$$$$$$
What are you paying for?
● What does your support contract get you?
● Who does it get you?
● What’s the lock-in?
A La Carte Open Source
● Popular with $0 budget startups
● Commercially funded tech
● Strong Community Support
● Benefits elsewhere
The 'A La Carte' Relationship
● Be part of the community
○ We participated in Vertx IRC/London meetings

● Don’t diverge - upstream Patches
○ Vert.x, mod-mongo, Jacoco

● Open Source your plumbing
○

https://github.com/johnoliver/release-version-plugin
How do I do this?
● Low risk project
○ 20% time?

● Ask for forgiveness,
not permission!
● Don’t fear “them”
The Bleeding Edge
Q&A
Get your Free Trials at: http://www.jclarity.
com

@jclarity

More Related Content

PDF
The innerHTML Apocalypse
PDF
JavascriptMVC: Another choice of web framework
PDF
Scriptless Attacks - Stealing the Pie without touching the Sill
PPTX
Real World Single Page App - A Knockout Case Study
PPTX
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
PDF
JavaScript From Hell - CONFidence 2.0 2009
PDF
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
PPTX
Beginning jQuery
The innerHTML Apocalypse
JavascriptMVC: Another choice of web framework
Scriptless Attacks - Stealing the Pie without touching the Sill
Real World Single Page App - A Knockout Case Study
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
JavaScript From Hell - CONFidence 2.0 2009
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
Beginning jQuery

What's hot (12)

PDF
Dev and Blind - Attacking the weakest Link in IT Security
PPTX
An overview of node.js
PDF
Devoxx%202008%20Tutorial
PPTX
First Steps to Be Non-blocking on the Web
PDF
2013 - Brian Stanley - Memcached, Cached all the things
PDF
Spring shell for everyone
PDF
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
PPTX
Introduction to node.js
PPT
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
PDF
Introduction to Node.js
PDF
Umbraco development across large and distributed teams
PPTX
You know what iMEAN? Using MEAN stack for application dev on Informix
Dev and Blind - Attacking the weakest Link in IT Security
An overview of node.js
Devoxx%202008%20Tutorial
First Steps to Be Non-blocking on the Web
2013 - Brian Stanley - Memcached, Cached all the things
Spring shell for everyone
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Introduction to node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
Introduction to Node.js
Umbraco development across large and distributed teams
You know what iMEAN? Using MEAN stack for application dev on Informix
Ad

Similar to The Bleeding Edge (20)

PDF
The Final Frontier
PPTX
Be faster then rabbits
PDF
30 Skills to Master to Become a Senior Software Engineer
PDF
10 kickass-technologies-modern-developers-love
PPTX
The Professional Programmer
PDF
IBM InterConnect: Java vs JavaScript for Enterprise WebApps
PDF
JavaOne 2014: Java vs JavaScript
PPTX
Architectures, Frameworks and Infrastructure
PDF
Open Source Secret Sauce - Lugor Sep 2011
PDF
OSMC 2010 | Monitoring mit Icinga by Icinga Team
PDF
JBoss Architect Forum London - October 2013 - Platform as a What?
PPTX
Full stack development using javascript what and why - ajay chandravadiya
PDF
Tooling for the JavaScript Era
PPTX
Webdevcon Keynote hh-2012-09-18
PPT
Tech showcase
PPT
Tech showcase2003
PDF
Icinga 2011 at Nagios Workshop
PDF
Icinga 2011 at Chemnitzer Linuxtage
PDF
A Day in the Life of a Silicon Valley Startup
PDF
The State of Rust Web Frameworks
The Final Frontier
Be faster then rabbits
30 Skills to Master to Become a Senior Software Engineer
10 kickass-technologies-modern-developers-love
The Professional Programmer
IBM InterConnect: Java vs JavaScript for Enterprise WebApps
JavaOne 2014: Java vs JavaScript
Architectures, Frameworks and Infrastructure
Open Source Secret Sauce - Lugor Sep 2011
OSMC 2010 | Monitoring mit Icinga by Icinga Team
JBoss Architect Forum London - October 2013 - Platform as a What?
Full stack development using javascript what and why - ajay chandravadiya
Tooling for the JavaScript Era
Webdevcon Keynote hh-2012-09-18
Tech showcase
Tech showcase2003
Icinga 2011 at Nagios Workshop
Icinga 2011 at Chemnitzer Linuxtage
A Day in the Life of a Silicon Valley Startup
The State of Rust Web Frameworks
Ad

More from RichardWarburton (20)

PDF
Fantastic performance and where to find it
PDF
Production profiling what, why and how technical audience (3)
PDF
Production profiling: What, Why and How
PDF
Production profiling what, why and how (JBCN Edition)
PDF
Production Profiling: What, Why and How
PDF
Java collections the force awakens
PDF
Generics Past, Present and Future (Latest)
PDF
Collections forceawakens
PDF
Generics past, present and future
PDF
Jvm profiling under the hood
PDF
How to run a hackday
PDF
Generics Past, Present and Future
PDF
Pragmatic functional refactoring with java 8 (1)
PDF
Performance and predictability (1)
PDF
Performance and predictability
PDF
Twins: Object Oriented Programming and Functional Programming
PDF
Pragmatic functional refactoring with java 8
PDF
Introduction to lambda behave
PDF
Introduction to lambda behave
PDF
Performance and predictability
Fantastic performance and where to find it
Production profiling what, why and how technical audience (3)
Production profiling: What, Why and How
Production profiling what, why and how (JBCN Edition)
Production Profiling: What, Why and How
Java collections the force awakens
Generics Past, Present and Future (Latest)
Collections forceawakens
Generics past, present and future
Jvm profiling under the hood
How to run a hackday
Generics Past, Present and Future
Pragmatic functional refactoring with java 8 (1)
Performance and predictability (1)
Performance and predictability
Twins: Object Oriented Programming and Functional Programming
Pragmatic functional refactoring with java 8
Introduction to lambda behave
Introduction to lambda behave
Performance and predictability

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PPTX
Cloud computing and distributed systems.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Cloud computing and distributed systems.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Network Security Unit 5.pdf for BCA BBA.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation_ Review paper, used for researhc scholars

The Bleeding Edge

  • 1. The Bleeding Edge Richard Warburton and Martijn Verburg http://www.jclarity.com
  • 2. "Toto, I’ve a feeling we’re not in Kansas anymore" - Dorothy, Wizard of Oz
  • 3. Who are we? ● jClarity - We solve performance problems ● Richard - Engineer, Author, Speaker ● Martijn - CEO, Author, Speaker, Cat Herder
  • 4. The Status Quo What is jClarity building? How we pick Technology Technology Scorecard A Brave New World
  • 6. We have a lot of Java EE Experience ● LJC is on the JCP Executive Committee ● Martijn is a CERTIFIED BEA Weblogic ○ Something, something, something Darkside ● Lots of experience and deep community
  • 7. But what if you don’t use that?... … we don’t!
  • 8. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 9. The Answer ..to your performance problems Easy Access, Lightweight and Low Impact
  • 11. Daemon, Aggregator & UI ● Daemon ○ Needs to be Low Impact, Low Traffic, Self-Updating ● Aggregator ○ Non-blocking I/O, Sockets > HTTP, High Availability ● UI ○ Rich Browser App, Accepts server-push events
  • 12. Doesn’t really fit the Java EE World ● Daemon: Java EE is not low impact ● Server: Java EE is mainly about req/resp ● UI: Java EE lacks support for push events ○ Java EE 7 has Websockets now
  • 13. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 15. Our Methodology Stolen ‘Adopted’ from Matt Raible 1. 2. 3. 4. 5. Identify Ranking Criteria Weight each criteria Score each solution Multiply and add Prototype top two choices
  • 17. Observations ● Cons ○ Still Subjective ○ No guarantees ● Pros ○ Incorporates diverse feedback ○ Avoids bike-shedding ○ Avoids Technology Dictatorship
  • 18. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 19. What Tech Stack did we pick?
  • 21. AngularJS ● Client-side Javascript framework ● Model-View-Whatever (MVC or MVVM) ● Two-Way Data Binding ● Directives used to encapsulate components
  • 22. AngularJS - Positives ● Html5 concepts without adoption issues ● Declarative - easy to understand and read ● Simple code structure ● Client side templating
  • 23. AngularJS - Negatives ● Karma Framework doesn’t integrate well ● Use of $scope.$apply ● People are familiar with jQuery ○ Declarative learning curve. ● Javascript tooling still kinda sucks
  • 24. AngularJS - Scorecard "Real win over hand rolled Javascript"
  • 25. MongoDB ● NoSQL Document Store ● “Scalable” - easy sharding ● “Fault Tolerant” - easy data replication ● The new DB sexy!
  • 27. MongoDB - Positives ● Document Modelling ● Nice API ● Easy to adopt and get started ● Easy Replication and Sharding ● Can be Fast*
  • 28. MongoDB - Negatives (1) ● Security ○ we compiled an SSL-enabled mongo ○ pwning folks? Find out if they use Mongo! ○ tool support ● Data Integrity Concerns ● Split Brain - election algorithm failures
  • 29. MongoDB - Negatives (2) ● Difficult to automatically sysadmin ● Immaturity of Drivers/Connectors (PHP) ● Document model is limited ● New query language to learn ● Poor timezone support
  • 30. MongoDB - Scorecard "Consider your security strategy well." "Is a document store what you really need?"
  • 31. Vert.x ● Polyglot Reactive Programming Framework ● Message Passing Oriented ○ Lightweight Eventbus ○ No Shared Mutable State ● Non-blocking I/O ● Websocket Support
  • 32. Vert.x ● Polyglot Reactive Programming Framework ● Message Passing Oriented ○ Lightweight Eventbus ○ No Shared Mutable State ● Non-blocking I/O ● Websocket Support
  • 34. Vert.x - Positives ● No shared state, easy concurrency ● Eventbus to the browser! ● Community++ ● Polyglot ○ We used Groovy and Java
  • 35. Vert.x - Negatives ● Immaturity: ○ Released 2.0 without supporting 1.3 ○ Testing Framework not quite there ● NIH Logging ● Inter Machine Eventbus Security ○ Not originally designed for the open internet
  • 36. Vert.x - Scorecard "It's perfect…. for the RIGHT use case."
  • 37. Chef ● Automates server configuration ○ Centralised repo of pre-built recipes ○ Ruby based DSL ● Can also automate application deployment ○ Run update to deploy config/binaries
  • 38. Chef - Positives ● Lots of Java/JVM recipes ● Ability to set roles and override properties ● Centrally controlled configuration ● Provides structure and deployment model
  • 39. Chef - Inconsistent knife cookbook upload apache2 knife role from file roles/foo/bar.rb knife data bag from file users john.json
  • 40. Chef - Negatives ● Managing dependencies is difficult ○ Use Librarian to help ● Not Declarative ○ e.g: doesn’t remove old config ● Still very complex ○ Steep learning curve
  • 41. Chef - Scorecard "Chef, it's way better than shell scripts"
  • 42. Common Bleeding Edge Themes 1. Immaturity 2. Lack of tooling 3. Problems at the boundary
  • 43. The Status Quo What is jClarity building? How we picked Technology Technology Scorecard A Brave New World
  • 46. What are you paying for? ● What does your support contract get you? ● Who does it get you? ● What’s the lock-in?
  • 47. A La Carte Open Source ● Popular with $0 budget startups ● Commercially funded tech ● Strong Community Support ● Benefits elsewhere
  • 48. The 'A La Carte' Relationship ● Be part of the community ○ We participated in Vertx IRC/London meetings ● Don’t diverge - upstream Patches ○ Vert.x, mod-mongo, Jacoco ● Open Source your plumbing ○ https://github.com/johnoliver/release-version-plugin
  • 49. How do I do this? ● Low risk project ○ 20% time? ● Ask for forgiveness, not permission! ● Don’t fear “them”
  • 51. Q&A Get your Free Trials at: http://www.jclarity. com @jclarity