SlideShare a Scribd company logo
@UnitAPI#JSR363DevoxxBE
The First IoT JSR: Units of Measurement
JSR-363
Werner Keil | Otávio Santana | Mohamed Taman
@wernerkeil | @otaviojava | @_tamanm
@UnitAPI
https://www.jcp.org/en/jsr/detail?id=363
http://unitsofmeasurement.github.io
@UnitAPI#JSR363DevoxxBE
The First IoT JSR: Units of Measurement
Werner Keil
•Consultant – Coach
•Creative Cosmopolitan
•Open Source Evangelist
•Software Architect
•Spec Lead – JSR363
•JCP EC Member
[www.linkedin.com/in/catmedia]
Twitter @wernerkeil | Email werner@catmedia.us
@UnitAPI#JSR363DevoxxBE
What is JSR-363?
5,999 miles
A Quantity
A Unit
Brussels
São Paulo
@UnitAPI#JSR363DevoxxBE
Why do we need JSR-363?
There are no specifications or standards for handling units in Java.
The current solution is to use primitives, that don’t provide any Type
Safety.
The errors are difficult to find using unit testing:
Interface and Internationalization (e.g. radian/degree, meters/feet);
Arithmetic operations (e.g. overflow);
Conversion between units (e.g. from same domain);
@UnitAPI#JSR363DevoxxBE
5,999 miles
A Quantity
A Unit
What is the problem, in code?
int distance = 5999; //in miles
float speed = airplane.getSpeed(); //in km/h
System.out.println(“TTD: “ + (distance/speed) + “ h”);
@UnitAPI#JSR363DevoxxBE
What is JSR-363?
A framework supporting robust representation and correct handling of
quantities.
JSR 363 establishes safe and useful methods for modeling physical
quantities.
@UnitAPI#JSR363DevoxxBE
What is JSR-363?
Interfaces and abstract classes supporting unit operations including:
Checking of unit compatibility;
Expression of measurement in various units; and
Arithmetic operations on units.
Concrete classes implementing standard unit types (base, derived), unit
conversion and representation.
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
CORE THEORY AND CONCEPTS
Some Basic Science behind the API
@UnitAPI#JSR363DevoxxBE
What is a Unit?
c. (a) Any determinate quantity, dimension, or magnitude adopted as a
basis or standard of measurement for other quantities of the same kind
and in terms of which their magnitude is calculated or expressed.
Oxford English Dictionary
Or … A well defined standard we all know?
Unit Definition
Second The duration of 9,192,631,770 periods of the radiation corresponding to the
transition between the two hyperfine levels of the ground state of caesium 133 atom
Kilogram The mass of the international prototype kilogram [a very special lump of metal]
Metre The distance travelled by light in a vacuum in
3.3356409519815204957557671447492e-9 seconds
@UnitAPI#JSR363DevoxxBE
A Standard Measurement …
“The nice thing about standards is that you have so many to choose
from.”
Andrew S. Tanenbaum,
Computer Networks 2nd ed., p. 254
Foot
Mile
Yard Chain
Fathom
Furlong
InchNautical Mile
Statute Mile
astronomical unit (AU)
Light year
Parsec(or meter)
Passus (roman)
Hand
ångström
Scots/Welsh/English Mile
Metre fermi micron
Thou (or mil)League
rod/perch/pole
nail
Barleycorn
link
ell Cubitfinger
palm
Poppyseed
Milli Centi Kilo
@UnitAPI#JSR363DevoxxBE
System of Units
System International d’Unites (SI)
The accepted basis for most scientific and engineering
activities.
Standard units for key physical quantities
(length, time, power etc.)
Standard prefixes
(kilo/micro etc.)
Standard dimensions…
@UnitAPI#JSR363DevoxxBE
Dimension
Allows analysis of a quantity by the rational powers of the 7 fundamental
dimensions (quantities are compatible when they have the same
dimensions):
length (L), mass (M), time (T), electric charge (I), absolute temperature
(Θ), amount of substance (N) and luminous intensity (J)
Examples:
Speed = length/time - it’s dimensions are L=1,T=-1 (rest 0) (e.g. metre/second - ms-1)
Acceleration is speed/time (m/s/s or ms-2) L=1, T=-2
Force is mass x acceleration M x ((length/time)/time) or M=1, L=1, T=-2
Molar Entropy: M=1 L=2 T=−2 Θ=−1 N=−1 (trust me!)
@UnitAPI#JSR363DevoxxBE
Quantity
A physical attribute of a thing. Something that can be measured and has
units. Compatible quantities have the same dimension…
Examples:
• Time
• Length
• Speed
• Amount of Substance
• Luminous Intensity
• Volume
• Mass
• Force
• Power
• Electrical Current
• Magnetic Flux Density
• Volumetric Flow Rate
• Fuel Economy*
• Percentage
• Eggs per carton
• Sheep per hour
• Bits and bytes …
… ∞
@UnitAPI#JSR363DevoxxBE
Unit Conversion
The process of conversion depends on the specific situation and the
intended purpose. This may be governed by regulation, contract,
technical specifications or other published standards.
Wikipedia
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
LEARNING FROM THE PAST…
Some examples of how things can go wrong…
@UnitAPI#JSR363DevoxxBE
Some real-life mishaps…
NASA “Star Wars” Initiative, 1983
Sea Level
@UnitAPI#JSR363DevoxxBE
Some real-life mishaps…
[Cost $125M]
“Preliminary findings indicate that one team used US/English units (e.g.
inches, feet and pounds) while the other used metric units for a key
spacecraft operation.”
NASA Mars Climate Orbiter, 1999
@UnitAPI#JSR363DevoxxBE
1983: The Gimli “Glider”
Photo: Wayne Glowacki
Maintenance workers performed a test that estimated that 7,682 litres of
fuel were in the tank. They knew they needed 22,300 kilograms of fuel
for the remaining flight, so the question was, How much fuel, in litres,
should be pumped from the fuel truck into the aircraft? They were
forced to resort to a manual calculation:
They multiplied 7,682 L by 1.77, the density of the fuel provided by the
refuelling company on their documentation: The aircraft, according to
their calculations, currently had 13,597 kg of fuel.
Subtracting from 22,300 kg, they decided they needed to add 8,703 kg of
fuel.
Dividing by 1.77 — the same density used in the previous calculation —
yields 4,916 L, which was pumped into the aircraft.
However, 1.77 was the density of the fuel in pounds per litre (lb/L), not
kilograms per litre (kg/L); the correct figure for kg/L would have been
0.80. As a result, they ended up with less than half of the required
amount of fuel on board. (The fuel's density depends on
characteristics of the fuel, so it's not a constant, and the value must
be taken from documentation accompanying the fuel.)
@UnitAPI#JSR363DevoxxBE
2001: Escape of the 250kg tortoise
Los Angeles Zoo lent Clarence, a 250-kilogram, 75-
year-old Galapagos tortoise, to the Exotic Animal
Training and Management Program at Moorpark
College in Moorpark CA.
The first night in his new home, Clarence wrecked it:
“He just pushed one of the fence poles right
over,” said Moorpark's Chuck Brinkman.
The L.A. Zoo warned that Clarence was big, and
needed an enclosure for an animal that “weighs
in at about 250”, so that's what the college
built.
Unfortunately, they thought the zoo meant 250
pounds, so the enclosure wasn't adequate for
holding a 250-kilogram (552 lbs) beast.
Clarence
@UnitAPI#JSR363DevoxxBE
Conversion problems
These are examples of confusion on the units in application.
But there is also ambiguity on the unit itself:
10 Gallons … Gallon Dry / Gallon Liquid - Gallon US / Gallon UK
28 Days … Day Sidereal / Day Calendar
38 Degrees … Degree Celsius / Degree Fahrenheit / Degree Angle
And the wrong conversion factors:
static final double PIXEL_TO_INCH = 1 / 72;
double pixels = inches * PIXEL_TO_INCH;
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
@UnitAPI#JSR363DevoxxBE
What is the problem, in code?
int distance = 5999; //in miles
float speed = airplane.getSpeed(); //in km/h
System.out.println(“TTD: “ + (distance/speed) + “ h”);
5,999 miles
A Quantity
A Unit
@UnitAPI#JSR363DevoxxBE
What is JSR-363, in code?
Quantity<Length> distance = Quantities.getQuantity(5999,
US.MILE);
Quantity<Speed> airplaneSpeed = getAirplaneSpeed();
Quantity<Time> timeToDest =
(Quantity<Time>)distance.divide(airplaneSpeed);
System.out.println(“TTD: “ + timeToDest.to(Units.HOUR));
TTD: 10.216345960256564 h
@UnitAPI#JSR363DevoxxBE
Who is going to use JSR-363?
Java developers who work with physical quantities need to handle
measurements in their programs.
Inadequate models of physical measurements can lead to significant
programmatic errors.
Platform providers and developers can provide and use a more
well-defined API.
Embedded developers can have less error-prone, more self-
documented code.
@UnitAPI#JSR363DevoxxBE
JSR-363: Internal Structure
JSR-363 is broken down into the following packages:
Package Description
javax.measure Core API interfaces (e.g. Dimension, Quantity, Unit)
javax.measure.format [optional] Interfaces for quantity/unit formatting and parsing
javax.measure.quantity [optional] Interfaces for quantity types (e.g. Mass, Length)
javax.measure.spi [optional] Service Provider Interface (implementation discovery)
Reason: We target very small devices running Java ME (CLDC 8) for IoT
applications (e.g. sensors, wearables, gateways etc.)
@UnitAPI#JSR363DevoxxBE
JSR-363: Systems and
ExtensionsOn top of JSR-363 we offer support
for various unit systems:
• Reusable Quantities
• SI System
• Common Systems (US, Imperial)
• ISO 80000
• UCUM
Reason: By providing small, modular
libraries, we live and sometimes forestall
the ideas behind Java ME 8 or Jigsaw and
offer great flexibility to IoT solutions
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
DIAMONDS ARE FOREVER
ISO / IEC 80000
Images: Eon Production
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
@UnitAPI#JSR363DevoxxBE
Demo 1: Strongly type your code
V2COM created an embedded power measurement system that tracks
how much individual circuits are using in an industrial application.
We want to:
1. Avoid unit ambiguity
2. Avoid quantity ambiguity that lead
to calculation errors
@UnitAPI#JSR363DevoxxBE
Demo 2: Intel Edison
Anticipating Intel’s JavaOne 2015 announcement of full Java support on
IoT devices like Intel Edison, I made
Java SE 8 and JSR 363 work on
Intel Edison in March 2015.
We want to:
1. Avoid unit ambiguity when
receiving
data from sensors or propagating
it to Cloud solutions like
Intel IoT Analytics
2. Format a measurement without
loss of data
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE Images: Columbia Pictures / Eon Production
@UnitAPI#JSR363DevoxxBE
How can YOU make JSR-363 work?
It’s still an active JSR: YOU can get involved.
We are participating in the Adopt-a-JSR program - 3 JUGs have so far
joined the EG! (Morocco JUG, SouJava, JUG Chennai).
You can download the code, file JIRA / GitHub Issues for bugs or needs
and follow the discussion in our mailing lists.
We’re always looking for new ideas and use cases.
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
@UnitAPI#JSR363DevoxxBE
JSR-363 timeline
March 11, 2014: Submitted
April 7, 2014: Creation approved
Dec 2014 – January 2015: Early Draft (done)
Q3/2015 – Q4/2015: Public Review (tied with DevoXX)
Q2/2016 : Final Draft
Q3/2016: Final Release
@UnitAPI#JSR363DevoxxBE
Links to JSR-363
Public mailing list(s) and/or forum(s)
Units-Dev on Google Groups
Units-Users on Google Groups
EG only mailing list on java.net, archive fully visible
The JSR page on JCP.org…
And two other “JSR project websites”:
Main project website is on GitHub (unitsofmeasurement)
Java.net site is used for downloads or JIRA.
And you can get sample code at our GitHub.
@UnitAPI#JSR363DevoxxBE
Building JSR-363 for Java SE
You need Java SE 8 SDK + IDE (Like Eclipse)
git clone https://github.com/unitsofmeasurement/unit-api.git
git clone https://github.com/unitsofmeasurement/unit-ri.git
or
git clone https://github.com/unitsofmeasurement/uom-se.git
Use Maven to compile & install
mvn install and you’re done.
@UnitAPI#JSR363DevoxxBE
Building JSR-363 for Java ME
You need Windows, Java SE 8 SDK, Eclipse or Netbeans, Java ME 8 SDK
+ Java ME 8 SDK Plugins (Netbeans or Eclipse)
git clone https://github.com/unitsofmeasurement/unit-api.git
git clone https://github.com/unitsofmeasurement/unit-ri.git
Create new Java ME 8 Project for API
Create new Java ME 8 Project for RI
Create new Java ME 8 Project for your App
Or
git clone https://github.com/unitsofmeasurement/uom-demos.git
> javame/medemo (see instructions in README.md)
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE
@YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE

More Related Content

What's hot

ASICs for particle and radiation detection
ASICs for particle and radiation detectionASICs for particle and radiation detection
ASICs for particle and radiation detectionGunnar Maehlum
 
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016Cloud Native Day Tel Aviv
 
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli Kasai
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli KasaiSN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli Kasai
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli KasaiCosmoAIMS Bassett
 
The SpaceDrive Project - First Results on EMDrive and Mach-Effect Thrusters
The SpaceDrive Project - First Results on EMDrive and Mach-Effect ThrustersThe SpaceDrive Project - First Results on EMDrive and Mach-Effect Thrusters
The SpaceDrive Project - First Results on EMDrive and Mach-Effect ThrustersSérgio Sacani
 

What's hot (6)

ASICs for particle and radiation detection
ASICs for particle and radiation detectionASICs for particle and radiation detection
ASICs for particle and radiation detection
 
Science Technology Engineering Mathematics
Science Technology Engineering MathematicsScience Technology Engineering Mathematics
Science Technology Engineering Mathematics
 
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016
Frontiers of Science and Clouds - Tim Bell - Openstack Day Israel 2016
 
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli Kasai
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli KasaiSN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli Kasai
SN Ia Rate in Intermediate-Redshift Galaxy Clusters - Eli Kasai
 
The SpaceDrive Project - First Results on EMDrive and Mach-Effect Thrusters
The SpaceDrive Project - First Results on EMDrive and Mach-Effect ThrustersThe SpaceDrive Project - First Results on EMDrive and Mach-Effect Thrusters
The SpaceDrive Project - First Results on EMDrive and Mach-Effect Thrusters
 
AAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris ZacnyAAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris Zacny
 

Viewers also liked

Проект рифма
Проект рифма Проект рифма
Проект рифма Alexey Makarov
 
How Device Fingerprinting Works
How Device Fingerprinting WorksHow Device Fingerprinting Works
How Device Fingerprinting WorksEmilie Wilson
 
Aree virus architetti_irpini_giugno99_1
Aree virus architetti_irpini_giugno99_1Aree virus architetti_irpini_giugno99_1
Aree virus architetti_irpini_giugno99_1Luca Battista
 
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.BJPLC
 
Akbar trading splicing_kit_raychem_te_connectivity
Akbar trading splicing_kit_raychem_te_connectivityAkbar trading splicing_kit_raychem_te_connectivity
Akbar trading splicing_kit_raychem_te_connectivityAKBAR TRADING
 
Locomotion and movement
Locomotion and movementLocomotion and movement
Locomotion and movementRevathy_179
 
Materi Agama tentang Cinta
Materi Agama tentang CintaMateri Agama tentang Cinta
Materi Agama tentang CintaPuspoadi Pratama
 
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...Gisel Milagros Vaderna Martinez
 

Viewers also liked (10)

Проект рифма
Проект рифма Проект рифма
Проект рифма
 
Nuestros servicios
Nuestros serviciosNuestros servicios
Nuestros servicios
 
How Device Fingerprinting Works
How Device Fingerprinting WorksHow Device Fingerprinting Works
How Device Fingerprinting Works
 
Aree virus architetti_irpini_giugno99_1
Aree virus architetti_irpini_giugno99_1Aree virus architetti_irpini_giugno99_1
Aree virus architetti_irpini_giugno99_1
 
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.
Inese Millere, Stresa avoti bērnu un pusaudžu dzīvē. Dzīvesveida risinājumi.
 
Akbar trading splicing_kit_raychem_te_connectivity
Akbar trading splicing_kit_raychem_te_connectivityAkbar trading splicing_kit_raychem_te_connectivity
Akbar trading splicing_kit_raychem_te_connectivity
 
Skinner
SkinnerSkinner
Skinner
 
Locomotion and movement
Locomotion and movementLocomotion and movement
Locomotion and movement
 
Materi Agama tentang Cinta
Materi Agama tentang CintaMateri Agama tentang Cinta
Materi Agama tentang Cinta
 
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...
Revista Digital Psicologia de la Personalidad II. Tema: "Trastornos de la per...
 

Similar to The First IoT JSR: Units of Measurement - DevoXX BE 2015

The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]Leonardo De Moura Rocha Lima
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Werner Keil
 
Accelerators at ORNL - Application Readiness, Early Science, and Industry Impact
Accelerators at ORNL - Application Readiness, Early Science, and Industry ImpactAccelerators at ORNL - Application Readiness, Early Science, and Industry Impact
Accelerators at ORNL - Application Readiness, Early Science, and Industry Impactinside-BigData.com
 
TeraGrid and Physics Research
TeraGrid and Physics ResearchTeraGrid and Physics Research
TeraGrid and Physics Researchshandra_psc
 
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013Werner Keil
 
Cycle Computing Record-breaking Petascale HPC Run
Cycle Computing Record-breaking Petascale HPC RunCycle Computing Record-breaking Petascale HPC Run
Cycle Computing Record-breaking Petascale HPC Runinside-BigData.com
 
Belak_ICME_June02015
Belak_ICME_June02015Belak_ICME_June02015
Belak_ICME_June02015Jim Belak
 
And Then There Are Algorithms
And Then There Are AlgorithmsAnd Then There Are Algorithms
And Then There Are AlgorithmsInfluxData
 
Prediction of Critical Temperature of Superconductors using Tree Based Method...
Prediction of Critical Temperature of Superconductors using Tree Based Method...Prediction of Critical Temperature of Superconductors using Tree Based Method...
Prediction of Critical Temperature of Superconductors using Tree Based Method...IRJET Journal
 
Design & Development of Articulated Inspection ARM for in House Inspection in...
Design & Development of Articulated Inspection ARM for in House Inspection in...Design & Development of Articulated Inspection ARM for in House Inspection in...
Design & Development of Articulated Inspection ARM for in House Inspection in...ijsrd.com
 
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013Werner Keil
 
HPC Cluster Computing from 64 to 156,000 Cores 
HPC Cluster Computing from 64 to 156,000 Cores HPC Cluster Computing from 64 to 156,000 Cores 
HPC Cluster Computing from 64 to 156,000 Cores inside-BigData.com
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangDatabricks
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsEmma Tang
 
R, Data Wrangling & Kaggle Data Science Competitions
R, Data Wrangling & Kaggle Data Science CompetitionsR, Data Wrangling & Kaggle Data Science Competitions
R, Data Wrangling & Kaggle Data Science CompetitionsKrishna Sankar
 
Scientific
Scientific Scientific
Scientific marpierc
 
Space 2.0, FEZ13 Županja, 26. listopada 2013.
Space 2.0, FEZ13 Županja, 26. listopada 2013.Space 2.0, FEZ13 Županja, 26. listopada 2013.
Space 2.0, FEZ13 Županja, 26. listopada 2013.Miroslav Ambruš-Kiš
 
An Open Source Web Service for Registering and Managing Environmental Samples
 An Open Source Web Service for Registering and Managing Environmental Samples An Open Source Web Service for Registering and Managing Environmental Samples
An Open Source Web Service for Registering and Managing Environmental SamplesAnusuriya Devaraju
 
Jonathan Wong Resume
Jonathan Wong ResumeJonathan Wong Resume
Jonathan Wong ResumeJonathan Wong
 

Similar to The First IoT JSR: Units of Measurement - DevoXX BE 2015 (20)

The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
 
JSR363 - Devoxx US
JSR363 - Devoxx USJSR363 - Devoxx US
JSR363 - Devoxx US
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
 
Accelerators at ORNL - Application Readiness, Early Science, and Industry Impact
Accelerators at ORNL - Application Readiness, Early Science, and Industry ImpactAccelerators at ORNL - Application Readiness, Early Science, and Industry Impact
Accelerators at ORNL - Application Readiness, Early Science, and Industry Impact
 
TeraGrid and Physics Research
TeraGrid and Physics ResearchTeraGrid and Physics Research
TeraGrid and Physics Research
 
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Fall 2013
 
Cycle Computing Record-breaking Petascale HPC Run
Cycle Computing Record-breaking Petascale HPC RunCycle Computing Record-breaking Petascale HPC Run
Cycle Computing Record-breaking Petascale HPC Run
 
Belak_ICME_June02015
Belak_ICME_June02015Belak_ICME_June02015
Belak_ICME_June02015
 
And Then There Are Algorithms
And Then There Are AlgorithmsAnd Then There Are Algorithms
And Then There Are Algorithms
 
Prediction of Critical Temperature of Superconductors using Tree Based Method...
Prediction of Critical Temperature of Superconductors using Tree Based Method...Prediction of Critical Temperature of Superconductors using Tree Based Method...
Prediction of Critical Temperature of Superconductors using Tree Based Method...
 
Design & Development of Articulated Inspection ARM for in House Inspection in...
Design & Development of Articulated Inspection ARM for in House Inspection in...Design & Development of Articulated Inspection ARM for in House Inspection in...
Design & Development of Articulated Inspection ARM for in House Inspection in...
 
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013
M4M 2 the Rescue of M2M - Eclipse DemoCamps Kepler 2013
 
HPC Cluster Computing from 64 to 156,000 Cores 
HPC Cluster Computing from 64 to 156,000 Cores HPC Cluster Computing from 64 to 156,000 Cores 
HPC Cluster Computing from 64 to 156,000 Cores 
 
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangOptimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
Optimal Strategies for Large Scale Batch ETL Jobs with Emma Tang
 
Optimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL JobsOptimal Strategies for Large-Scale Batch ETL Jobs
Optimal Strategies for Large-Scale Batch ETL Jobs
 
R, Data Wrangling & Kaggle Data Science Competitions
R, Data Wrangling & Kaggle Data Science CompetitionsR, Data Wrangling & Kaggle Data Science Competitions
R, Data Wrangling & Kaggle Data Science Competitions
 
Scientific
Scientific Scientific
Scientific
 
Space 2.0, FEZ13 Županja, 26. listopada 2013.
Space 2.0, FEZ13 Županja, 26. listopada 2013.Space 2.0, FEZ13 Županja, 26. listopada 2013.
Space 2.0, FEZ13 Županja, 26. listopada 2013.
 
An Open Source Web Service for Registering and Managing Environmental Samples
 An Open Source Web Service for Registering and Managing Environmental Samples An Open Source Web Service for Registering and Managing Environmental Samples
An Open Source Web Service for Registering and Managing Environmental Samples
 
Jonathan Wong Resume
Jonathan Wong ResumeJonathan Wong Resume
Jonathan Wong Resume
 

More from Werner Keil

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Werner Keil
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021Werner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021Werner Keil
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualWerner Keil
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualWerner Keil
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRWerner Keil
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Werner Keil
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Werner Keil
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)Werner Keil
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Werner Keil
 
Java2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudJava2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudWerner Keil
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
JSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewJSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewWerner Keil
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaWerner Keil
 
Enterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaEnterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaWerner Keil
 
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015Werner Keil
 
Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015Werner Keil
 
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...Werner Keil
 

More from Werner Keil (20)

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 Virtual
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017
 
Java2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudJava2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the Cloud
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
JSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewJSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short Overview
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
 
Enterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaEnterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like Agorava
 
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
 
Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015
 
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...
Data Quality on Mars - ISO 80000 and other Standards - Apache Big Data Europe...
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 

The First IoT JSR: Units of Measurement - DevoXX BE 2015

  • 1. @UnitAPI#JSR363DevoxxBE The First IoT JSR: Units of Measurement JSR-363 Werner Keil | Otávio Santana | Mohamed Taman @wernerkeil | @otaviojava | @_tamanm @UnitAPI https://www.jcp.org/en/jsr/detail?id=363 http://unitsofmeasurement.github.io
  • 2. @UnitAPI#JSR363DevoxxBE The First IoT JSR: Units of Measurement Werner Keil •Consultant – Coach •Creative Cosmopolitan •Open Source Evangelist •Software Architect •Spec Lead – JSR363 •JCP EC Member [www.linkedin.com/in/catmedia] Twitter @wernerkeil | Email werner@catmedia.us
  • 3. @UnitAPI#JSR363DevoxxBE What is JSR-363? 5,999 miles A Quantity A Unit Brussels São Paulo
  • 4. @UnitAPI#JSR363DevoxxBE Why do we need JSR-363? There are no specifications or standards for handling units in Java. The current solution is to use primitives, that don’t provide any Type Safety. The errors are difficult to find using unit testing: Interface and Internationalization (e.g. radian/degree, meters/feet); Arithmetic operations (e.g. overflow); Conversion between units (e.g. from same domain);
  • 5. @UnitAPI#JSR363DevoxxBE 5,999 miles A Quantity A Unit What is the problem, in code? int distance = 5999; //in miles float speed = airplane.getSpeed(); //in km/h System.out.println(“TTD: “ + (distance/speed) + “ h”);
  • 6. @UnitAPI#JSR363DevoxxBE What is JSR-363? A framework supporting robust representation and correct handling of quantities. JSR 363 establishes safe and useful methods for modeling physical quantities.
  • 7. @UnitAPI#JSR363DevoxxBE What is JSR-363? Interfaces and abstract classes supporting unit operations including: Checking of unit compatibility; Expression of measurement in various units; and Arithmetic operations on units. Concrete classes implementing standard unit types (base, derived), unit conversion and representation.
  • 8. @YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE CORE THEORY AND CONCEPTS Some Basic Science behind the API
  • 9. @UnitAPI#JSR363DevoxxBE What is a Unit? c. (a) Any determinate quantity, dimension, or magnitude adopted as a basis or standard of measurement for other quantities of the same kind and in terms of which their magnitude is calculated or expressed. Oxford English Dictionary Or … A well defined standard we all know? Unit Definition Second The duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of caesium 133 atom Kilogram The mass of the international prototype kilogram [a very special lump of metal] Metre The distance travelled by light in a vacuum in 3.3356409519815204957557671447492e-9 seconds
  • 10. @UnitAPI#JSR363DevoxxBE A Standard Measurement … “The nice thing about standards is that you have so many to choose from.” Andrew S. Tanenbaum, Computer Networks 2nd ed., p. 254 Foot Mile Yard Chain Fathom Furlong InchNautical Mile Statute Mile astronomical unit (AU) Light year Parsec(or meter) Passus (roman) Hand ångström Scots/Welsh/English Mile Metre fermi micron Thou (or mil)League rod/perch/pole nail Barleycorn link ell Cubitfinger palm Poppyseed Milli Centi Kilo
  • 11. @UnitAPI#JSR363DevoxxBE System of Units System International d’Unites (SI) The accepted basis for most scientific and engineering activities. Standard units for key physical quantities (length, time, power etc.) Standard prefixes (kilo/micro etc.) Standard dimensions…
  • 12. @UnitAPI#JSR363DevoxxBE Dimension Allows analysis of a quantity by the rational powers of the 7 fundamental dimensions (quantities are compatible when they have the same dimensions): length (L), mass (M), time (T), electric charge (I), absolute temperature (Θ), amount of substance (N) and luminous intensity (J) Examples: Speed = length/time - it’s dimensions are L=1,T=-1 (rest 0) (e.g. metre/second - ms-1) Acceleration is speed/time (m/s/s or ms-2) L=1, T=-2 Force is mass x acceleration M x ((length/time)/time) or M=1, L=1, T=-2 Molar Entropy: M=1 L=2 T=−2 Θ=−1 N=−1 (trust me!)
  • 13. @UnitAPI#JSR363DevoxxBE Quantity A physical attribute of a thing. Something that can be measured and has units. Compatible quantities have the same dimension… Examples: • Time • Length • Speed • Amount of Substance • Luminous Intensity • Volume • Mass • Force • Power • Electrical Current • Magnetic Flux Density • Volumetric Flow Rate • Fuel Economy* • Percentage • Eggs per carton • Sheep per hour • Bits and bytes … … ∞
  • 14. @UnitAPI#JSR363DevoxxBE Unit Conversion The process of conversion depends on the specific situation and the intended purpose. This may be governed by regulation, contract, technical specifications or other published standards. Wikipedia
  • 15. @YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE LEARNING FROM THE PAST… Some examples of how things can go wrong…
  • 16. @UnitAPI#JSR363DevoxxBE Some real-life mishaps… NASA “Star Wars” Initiative, 1983 Sea Level
  • 17. @UnitAPI#JSR363DevoxxBE Some real-life mishaps… [Cost $125M] “Preliminary findings indicate that one team used US/English units (e.g. inches, feet and pounds) while the other used metric units for a key spacecraft operation.” NASA Mars Climate Orbiter, 1999
  • 18. @UnitAPI#JSR363DevoxxBE 1983: The Gimli “Glider” Photo: Wayne Glowacki Maintenance workers performed a test that estimated that 7,682 litres of fuel were in the tank. They knew they needed 22,300 kilograms of fuel for the remaining flight, so the question was, How much fuel, in litres, should be pumped from the fuel truck into the aircraft? They were forced to resort to a manual calculation: They multiplied 7,682 L by 1.77, the density of the fuel provided by the refuelling company on their documentation: The aircraft, according to their calculations, currently had 13,597 kg of fuel. Subtracting from 22,300 kg, they decided they needed to add 8,703 kg of fuel. Dividing by 1.77 — the same density used in the previous calculation — yields 4,916 L, which was pumped into the aircraft. However, 1.77 was the density of the fuel in pounds per litre (lb/L), not kilograms per litre (kg/L); the correct figure for kg/L would have been 0.80. As a result, they ended up with less than half of the required amount of fuel on board. (The fuel's density depends on characteristics of the fuel, so it's not a constant, and the value must be taken from documentation accompanying the fuel.)
  • 19. @UnitAPI#JSR363DevoxxBE 2001: Escape of the 250kg tortoise Los Angeles Zoo lent Clarence, a 250-kilogram, 75- year-old Galapagos tortoise, to the Exotic Animal Training and Management Program at Moorpark College in Moorpark CA. The first night in his new home, Clarence wrecked it: “He just pushed one of the fence poles right over,” said Moorpark's Chuck Brinkman. The L.A. Zoo warned that Clarence was big, and needed an enclosure for an animal that “weighs in at about 250”, so that's what the college built. Unfortunately, they thought the zoo meant 250 pounds, so the enclosure wasn't adequate for holding a 250-kilogram (552 lbs) beast. Clarence
  • 20. @UnitAPI#JSR363DevoxxBE Conversion problems These are examples of confusion on the units in application. But there is also ambiguity on the unit itself: 10 Gallons … Gallon Dry / Gallon Liquid - Gallon US / Gallon UK 28 Days … Day Sidereal / Day Calendar 38 Degrees … Degree Celsius / Degree Fahrenheit / Degree Angle And the wrong conversion factors: static final double PIXEL_TO_INCH = 1 / 72; double pixels = inches * PIXEL_TO_INCH;
  • 22. @UnitAPI#JSR363DevoxxBE What is the problem, in code? int distance = 5999; //in miles float speed = airplane.getSpeed(); //in km/h System.out.println(“TTD: “ + (distance/speed) + “ h”); 5,999 miles A Quantity A Unit
  • 23. @UnitAPI#JSR363DevoxxBE What is JSR-363, in code? Quantity<Length> distance = Quantities.getQuantity(5999, US.MILE); Quantity<Speed> airplaneSpeed = getAirplaneSpeed(); Quantity<Time> timeToDest = (Quantity<Time>)distance.divide(airplaneSpeed); System.out.println(“TTD: “ + timeToDest.to(Units.HOUR)); TTD: 10.216345960256564 h
  • 24. @UnitAPI#JSR363DevoxxBE Who is going to use JSR-363? Java developers who work with physical quantities need to handle measurements in their programs. Inadequate models of physical measurements can lead to significant programmatic errors. Platform providers and developers can provide and use a more well-defined API. Embedded developers can have less error-prone, more self- documented code.
  • 25. @UnitAPI#JSR363DevoxxBE JSR-363: Internal Structure JSR-363 is broken down into the following packages: Package Description javax.measure Core API interfaces (e.g. Dimension, Quantity, Unit) javax.measure.format [optional] Interfaces for quantity/unit formatting and parsing javax.measure.quantity [optional] Interfaces for quantity types (e.g. Mass, Length) javax.measure.spi [optional] Service Provider Interface (implementation discovery) Reason: We target very small devices running Java ME (CLDC 8) for IoT applications (e.g. sensors, wearables, gateways etc.)
  • 26. @UnitAPI#JSR363DevoxxBE JSR-363: Systems and ExtensionsOn top of JSR-363 we offer support for various unit systems: • Reusable Quantities • SI System • Common Systems (US, Imperial) • ISO 80000 • UCUM Reason: By providing small, modular libraries, we live and sometimes forestall the ideas behind Java ME 8 or Jigsaw and offer great flexibility to IoT solutions
  • 27. @YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE DIAMONDS ARE FOREVER ISO / IEC 80000 Images: Eon Production
  • 29. @UnitAPI#JSR363DevoxxBE Demo 1: Strongly type your code V2COM created an embedded power measurement system that tracks how much individual circuits are using in an industrial application. We want to: 1. Avoid unit ambiguity 2. Avoid quantity ambiguity that lead to calculation errors
  • 30. @UnitAPI#JSR363DevoxxBE Demo 2: Intel Edison Anticipating Intel’s JavaOne 2015 announcement of full Java support on IoT devices like Intel Edison, I made Java SE 8 and JSR 363 work on Intel Edison in March 2015. We want to: 1. Avoid unit ambiguity when receiving data from sensors or propagating it to Cloud solutions like Intel IoT Analytics 2. Format a measurement without loss of data
  • 31. @YourTwitterHandle#DVXFR14{session hashtag} @UnitAPI#JSR363DevoxxBE Images: Columbia Pictures / Eon Production
  • 32. @UnitAPI#JSR363DevoxxBE How can YOU make JSR-363 work? It’s still an active JSR: YOU can get involved. We are participating in the Adopt-a-JSR program - 3 JUGs have so far joined the EG! (Morocco JUG, SouJava, JUG Chennai). You can download the code, file JIRA / GitHub Issues for bugs or needs and follow the discussion in our mailing lists. We’re always looking for new ideas and use cases.
  • 34. @UnitAPI#JSR363DevoxxBE JSR-363 timeline March 11, 2014: Submitted April 7, 2014: Creation approved Dec 2014 – January 2015: Early Draft (done) Q3/2015 – Q4/2015: Public Review (tied with DevoXX) Q2/2016 : Final Draft Q3/2016: Final Release
  • 35. @UnitAPI#JSR363DevoxxBE Links to JSR-363 Public mailing list(s) and/or forum(s) Units-Dev on Google Groups Units-Users on Google Groups EG only mailing list on java.net, archive fully visible The JSR page on JCP.org… And two other “JSR project websites”: Main project website is on GitHub (unitsofmeasurement) Java.net site is used for downloads or JIRA. And you can get sample code at our GitHub.
  • 36. @UnitAPI#JSR363DevoxxBE Building JSR-363 for Java SE You need Java SE 8 SDK + IDE (Like Eclipse) git clone https://github.com/unitsofmeasurement/unit-api.git git clone https://github.com/unitsofmeasurement/unit-ri.git or git clone https://github.com/unitsofmeasurement/uom-se.git Use Maven to compile & install mvn install and you’re done.
  • 37. @UnitAPI#JSR363DevoxxBE Building JSR-363 for Java ME You need Windows, Java SE 8 SDK, Eclipse or Netbeans, Java ME 8 SDK + Java ME 8 SDK Plugins (Netbeans or Eclipse) git clone https://github.com/unitsofmeasurement/unit-api.git git clone https://github.com/unitsofmeasurement/unit-ri.git Create new Java ME 8 Project for API Create new Java ME 8 Project for RI Create new Java ME 8 Project for your App Or git clone https://github.com/unitsofmeasurement/uom-demos.git > javame/medemo (see instructions in README.md)

Editor's Notes

  1. For example, it may be unclear whether a person's mass is expressed in pounds, kilograms, or stones.