JavaOne 2014
Create the Future
@MarkStoetzer
& @brampatelski
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/731542/logo-first8.eps-conversie.jpg)
Java is the future
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/701538/Screen_Shot_2014-10-07_at_8.18.53_PM.png)
Technologies
The future is Java
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/701523/Screen_Shot_2014-10-07_at_8.13.49_PM.png)
Trends
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727782/Java_ME_efforts.png)
JAVA ME / ME embedded
Java SE embedded
- SE embedded 8 release in 2015
- Update release at end of year
Java SE
- Java SE 9 release planned for 2016
- Contains JigSaw
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727788/java-EE-roadmap.png)
Mobile
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727819/mobile-innovation2.png)
Community
Embedded
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727821/mbed-adoption.png)
Future java developers
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727828/IMAG0253.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/727830/kids.jpg)
Devoxx4Kids
&
First
Java Related Tools
Agile
Internet of Things
Evolutionary architecture
Modularity
Performance
Evil / Agile skills
Agile
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
Evolutionary
vs.
Emergent
Agile
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
Last responsible moment
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723823/jit.jpg)
Agile
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
Architect and develop for evolvability:
- Ease of change
- Coupling
- Lightweight documentation
- Continuous effort
Agile
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
Be conservative in what you send
and liberal in what you receive
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723827/l_liberal-conservative_1200x675a.jpg)
Agile
Postel's law
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
Architect for testability
Agile
- System knowledge
- Business sensible components
- Testing at many levels
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723830/Conway.png)
Agile
Evolutionary architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723822/rebecca-parsons-2204028.jpg)
- Database refactoring
- Continuous delivery
- Choreography
- Contract testing
Agile
Techniques
Modularity
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720016/600px-jigsaw-svg.png)
Jigsaw:
Delayed to JDK9
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724162/Bert_Ertman.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724164/Paul_Bakker.jpg)
Agile
Modularity
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720027/osgi.jpeg)
OSGi
Eclipse & BndTools for OSGi
Apache Felix OSGi impl.
Amdatu, HTML5, AngularJS, RabbitMQ, JPA
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724162/Bert_Ertman.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724164/Paul_Bakker.jpg)
Agile
Performance is a Social activity
Performance problems
- Outage
- User experience degradation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
Agile
Or is it?
Performance is a Social activity
- Risk reduction
- Improve reliability
- Increase maintainability
- Quantifyable impact
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
Agile
Performance tests
Performance is a Social activity
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
UAT is my desktop
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723839/performance_is_my_desktop.jpg)
Agile
Performance is a Social activity
Production-like data is too hard
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
Comparing apples with pears
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723845/apples-and-pears.jpg)
Agile
Evolutionary architecture
- Advice from Internet is not useful
- Default is good enough
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723848/Jenga-taking.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
Agile
Tuning by folklore
Performance is a Social activity
Throw over the wall mentality
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723851/throw_over_the_wall.png)
Agile
Performance is a Social activity
Blame donkey
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723854/donkey.png)
Agile
Performance is a Social activity
- Test
- Measure
- Analyze
- Discuss
- Proceed from step 1
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723836/0-00-30-83-201311-ob_f988cd_10845641605-306fa359cc-z-jpg.jpeg)
Agile
Guideline
Agile learning
Failing:
Who's fault is it?
-----------------------
What did we learn?
Should we change something?
Learning:
Cross-team Guilds
Workshops
Presentations
Monthly open-space day
Breakfast presentations
Lunch presentations
Code review
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724169/Mattias_Karlsson.jpg)
Agile
Evil / Agile skills
Invest
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720153/Screen_Shot_2014-10-13_at_12.14.30_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Workshops
Monthly open-space day
Lunch presentations
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724169/Mattias_Karlsson.jpg)
Evil / Agile skills
Invest
Listen
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720162/Screen_Shot_2014-10-13_at_12.16.10_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Evil / Agile skills
Invest
Listen
Empathy
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720172/Screen_Shot_2014-10-13_at_12.17.41_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Evil / Agile skills
Invest
Listen
Empathy
Adapt
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720194/Screen_Shot_2014-10-13_at_12.20.39_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Failing:
Who's fault is it?
-----------------------
What did we learn?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724169/Mattias_Karlsson.jpg)
Should we change something?
Go fast, fail often
Evil / Agile skills
Invest
Listen
Empathy
Adapt
Coach
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720205/Screen_Shot_2014-10-13_at_12.22.28_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724169/Mattias_Karlsson.jpg)
Code review
Evil / Agile skills
Invest
Listen
Empathy
Adapt
Coach
Assertiveness
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720210/Screen_Shot_2014-10-13_at_12.26.27_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Evil / Agile skills
Invest
Listen
Empathy
Adapt
Coach
Assertiveness
Creativity
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720213/Screen_Shot_2014-10-13_at_12.27.40_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724173/Screen_Shot_2014-10-14_at_12.24.46_PM.png)
Agile
Java
Related
Tools
JDK8
GS Collections
Oracle MAF
Checker framework
Groovy
Avatar.js
TypeScript
Vert.x
IDE's comparison
OWASP ZAP
CI / CD
Java PaaS
Java
Related
Tools
JDK8 / Streams
// applying 12% VAT on each purchase
// Without Lambda expressions:
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
for (Integer cost : costBeforeTax) {
double price = cost + .12*cost;
System.out.println(price);
}
// With Lambda expressions:
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.stream().map((cost) -> cost + .12*cost).forEach(System.out::println);
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724078/jimbethancourt.jpeg)
Java
JDK8 / Lambda
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724078/jimbethancourt.jpeg)
.onAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
anim.playFromStart();
}
})
.onAction((ActionEvent) -> { anim.playFromStart(); })
.onAction((e) -> { anim.playFromStart(); })
.onAction(e -> anim.playFromStart(); )
Java
GS Collections
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723707/don-300x300.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723734/compare.png)
Java
GS Collections
Related
Tools
- No Entry
- Watch out for entrySet()
- creates a lot of objects
- Use forEachKeyValue()
- Watch out for entrySet()
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723707/don-300x300.jpg)
Memory efficient Set and Map
Java
Oracle MAF
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/713246/Screen_Shot_2014-10-10_at_3.59.55_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724085/Shay_Shmeltzer.jpeg)
Mobile dev. dilemma:
Native vs Web?
Java
Oracle MAF
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/713256/Screen_Shot_2014-10-10_at_4.02.13_PM.png)
80+ components
XML format
Visual development
Declarative data binding
Rendering HTML5 / JavaScript
Theming through CSS
Native user exp
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724085/Shay_Shmeltzer.jpeg)
& AMX
Java
Oracle MAF & AMX
Related
Tools
Drag-n-drop development
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/713282/Screen_Shot_2014-10-10_at_4.06.59_PM.png)
- per user
- per instance / app
Supported by JDeveloper and Eclipse
Use native mobile features
Completely free to develop and test
www.oracle.com/maf
No other Oracle products needed
Licensing for prod-env
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724085/Shay_Shmeltzer.jpeg)
Java
Checker framework
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723740/wdietl_md.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723741/Optional-type-checking.png)
Java
Checker framework
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723740/wdietl_md.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723746/annotations.png)
Java
Checker framework
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723740/wdietl_md.jpg)
Dynamic checks
if (x != null) {
x.hashCode();
}
if (!RegexUtil.isRegex(userInput)) {
throw new RuntimeException(...);
}
Pattern p = Pattern.compile(userInput);
Java
Checker framework
Related
Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723740/wdietl_md.jpg)
Java 6 & 7 compatible
Annotations in comments
List</* @NonNull */ String> strings;
Voodoo comments for arbitrary source code
/* >>> import myquals.TRecv; */
....
int foo(/*>>> @TRecv MyClass this, */
@TParam String p) { ... }
Java
Related
Tools
Groovy / Metaprogramming
== file:///scores.dsl ==
players ‘Ben’, ‘George’, ‘Abe’
George 10
Ben 12
Abe 9
reportWinner
scores[:] // Create an empty Map
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724099/Venkat_Subramaniam.jpeg)
Java
Related
Tools
Groovy / Metaprogramming
def players(String[] names) {
names.each{ name ->
scores[name] = 0
}
}
== file:///scores.dsl ==
players ‘Ben’, ‘George’, ‘Abe’
George 10
Ben 12
Abe 9
reportWinner
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724099/Venkat_Subramaniam.jpeg)
Java
Related
Tools
Groovy / Metaprogramming
def methodMissing(String name, args) {
scores[name] = args[0]
}
== file:///scores.dsl ==
players ‘Ben’, ‘George’, ‘Abe’
George 10
Ben 12
Abe 9
reportWinner
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724099/Venkat_Subramaniam.jpeg)
Java
Related
Tools
Groovy / Metaprogramming
def getReportWinner() {
def max = -1
def winner = ''
scores.each { name, score ->
if (score > max) {
max = score
winner = name
}
}
"winner is $winner with score $max"
}
winner is Ben with score 12
== file:///scores.dsl ==
players ‘Ben’, ‘George’, ‘Abe’
George 10
Ben 12
Abe 9
reportWinner
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724099/Venkat_Subramaniam.jpeg)
Java
Related
Tools
Groovy in 2014 and beyond
Groovy 2.3
Closures ~ Lambda's
trait FlyingAbility {
String fly() {"I'm flying!"}
}
class Bird implements FlyingAbility {}
def b = new Bird()
assert b.fly() == "I'm flying!"
Traits ~ interface default methods
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724113/Screen_Shot_2014-10-14_at_12.04.18_PM.png)
AST
NIO2
JSON parser
Template engine
Docs / www.groovy-lang.org
Java
Related
Tools
Groovy in 2014 and beyond
Groovy 2.4:
Full-blown support for Android
Antlr4 support
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724113/Screen_Shot_2014-10-14_at_12.04.18_PM.png)
Java
Tools
Avatar.JS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723756/logo-avatar.js.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724126/Andrey_Kogun.jpg)
Java
Tools
Avatar.JS
Related
- Asynchronous
- Event driven
- Non blocking
- Single threaded
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723757/node-js-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724126/Andrey_Kogun.jpg)
Java
Tools
Avatar.JS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723759/nodelets.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724126/Andrey_Kogun.jpg)
Java
Tools
TypeScript
Related
M$ opensource
Type-system
Optional
100% JavaScript
Step by step adoption
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724129/Screen_Shot_2014-10-14_at_12.08.51_PM.png)
Java
Tools
Vert.x
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723762/Steven_CitronPousty-e1345151097234.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723763/Tim_Fox.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723766/vertx-logo.png)
inspired by Node.js
Java
Tools
Vert.x
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723762/Steven_CitronPousty-e1345151097234.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723763/Tim_Fox.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723768/IMAG0562.jpg)
Java
Tools
Vert.x
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723762/Steven_CitronPousty-e1345151097234.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723763/Tim_Fox.jpeg)
- Server
- Maximize CPU usage
- High availability
Java
Tools
Vert.x
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723762/Steven_CitronPousty-e1345151097234.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723763/Tim_Fox.jpeg)
Version 3
- Java 8 only
- Nashorn
- Runtime metrics
- Distributed data
Java
Tools
IDE's
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/718418/intellij-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/718422/netbeans0.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/718429/eclipse_a2_by_dj_fahr-d49mizm.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724142/Screen_Shot_2014-10-14_at_12.13.05_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724143/Anton_Arhipov.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724145/John_Arthorne.jpeg)
Java
Tools
OWASP ZAP
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723771/simonbennetts2_400x400.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723772/owasp_zap.png)
Java
Tools
OWASP ZAP
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723771/simonbennetts2_400x400.jpg)
- Easy to use pentest tool
- Free and opensource
- Useful for devs and professionals
- Automated security tests
What can it give you?
Java
Tools
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723771/simonbennetts2_400x400.jpg)
- Pages to ignore (logout, duplicates)
- Anti CSRF tokens
- Session handling
- Authentication
- Users
- Non standard data
OWASP ZAP
Tuning
Java
Tools
CI / CD - The deployment factory
Related
Deploy is scary -> Delay
Dependency mgt
Version stability
Delivery
Identical env: Chef, Vagrant, Docker
Automation
People
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724135/Screen_Shot_2014-10-14_at_12.10.30_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724136/Screen_Shot_2014-10-14_at_12.11.00_PM.png)
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723779/ipsaas.jpg)
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723810/IMAG0501.jpg)
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723812/IMAG0509.jpg)
Continuous delivery
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723815/Devops.png)
Shared goal: agility
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
- Puppet
- Chef
- Docker
- Etc.
Configuration as code
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
- Cloudbees
- Openshift
- Oracle
- Heroku
Public PaaS
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
- Apprenda
- Stackato
- Stratalux
- Jelastic
Private PaaS
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
- Vagrant
- AWS opsworks
- VisualOps
- Jelastic
- Skytap
Promising
Java
Tools
Java PaaS
Related
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723777/Jimmy_Ray.jpg)
- Features
- Technology stack
- Security and compliance
- Infrastructure
- Extensibility
Choose a PaaS
Internet
Things
Future Smart home
Java Smart car
Current Smart home
Wearables
Java robots with ROS
FIRST
How to talk to your house
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720357/Screen_Shot_2014-10-13_at_1.35.24_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720368/First_robot_announcer_in_the_world_.._Japanese_-_keys_mood.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720372/parrot-ar-drone.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720377/Drone.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720378/nano-drones.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720386/Hello-Kitty-Mini-Robot-Vacuum-Cleaner.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724178/Andra_Keay.jpg)
How to talk to your house
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720413/Screen_Shot_2014-10-13_at_2.10.19_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720427/Screen_Shot_2014-10-13_at_2.14.29_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724178/Andra_Keay.jpg)
Java Smart car @keynote
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724219/Screen_Shot_2014-10-14_at_12.44.55_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724221/Screen_Shot_2014-10-14_at_12.49.51_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724224/Screen_Shot_2014-10-14_at_12.45.37_PM.png)
Java Smart car @keynote
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724216/Screen_Shot_2014-10-14_at_12.50.39_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724221/Screen_Shot_2014-10-14_at_12.49.51_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724224/Screen_Shot_2014-10-14_at_12.45.37_PM.png)
Warp speed !!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/732264/keynote_demo4.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/732270/keynote_demo9.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/732275/keynote_demo10.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/732278/keynote_demo7.png)
Smart home for masses
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720323/Screen_Shot_2014-10-13_at_1.22.03_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720324/Screen_Shot_2014-10-13_at_1.22.24_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720325/Screen_Shot_2014-10-13_at_1.23.08_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720327/Screen_Shot_2014-10-13_at_1.23.01_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724187/Kai_Kreuzer.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724189/Screen_Shot_2014-10-14_at_12.29.39_PM.png)
Smart home Standards
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723915/wearables.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723919/small-formfactor.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723918/connectivity.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723923/smart-powermanagement.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723926/life-proof.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723930/doityourself.png)
Nowadays:
- Lots of devices available
- Devices with predefined features
- No Real standard
- Hard to combine products
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723937/adafruit.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723938/navspark.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723942/polar_heart_rate_monitor.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723945/polar_heart_rate_sensor.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723946/raspberry-pi.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723949/sparkfun_pulse_sensor.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723951/wearable-case.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723953/interaction.png)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723955/IMAG0399.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723956/IMAG0400.jpg)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723959/IMAG0401.jpg)
Internet
Things
Wearables
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723906/AngelaCaicedoSmall.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723907/Gerrit_Grunwald_klein.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723960/IMAG0402.jpg)
Java Robots & ROS
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723869/IMG_20130715_162534.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723870/Juggie.jpg)
Controlling Robots
Using Blender
Juggie
Java Robots & ROS
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723869/IMG_20130715_162534.jpg)
ROS
- Message bus
- Publish subscribe
- RPC
- Platform unaware
- Parameter service
- Concepts: JMS and JNDI
Java Robots & ROS
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723869/IMG_20130715_162534.jpg)
(cool) Open source libraries
- CMU Sphynx
- OpenDial
- Faceshift
Java Robots & ROS
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723869/IMG_20130715_162534.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723895/rsz_b--300x225.jpg)
Challenges:
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723896/plus.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/723897/Ros-logo.png)
- Establish build tools
- RaspBerry Pi and ROS
- Not well documented
- Communicating between C++ and java is tricky
Internet
Things
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/708839/FIRST_vert.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/724234/Screen_Shot_2014-10-14_at_12.56.30_PM.png)
Impressions
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720578/20141003_135136.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/brampatelski/images/720581/20141003_164411.jpg)
JavaOne
By Bram Patelski
JavaOne
Create the Future
- 4,465