SlideShare a Scribd company logo
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
The First IoT JSR: Units of Measurement
JSR-363 [BOF5981]
Leonardo Lima & Otávio Santana & Werner Keil
@leomrlima & @otaviojava & @wernerkeil & @UnitAPI
https://www.jcp.org/en/jsr/detail?id=363
http://unitsofmeasurement.github.io
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
The First IoT JSR: Units of Measurement
Leonardo Lima
•Computer engineer, server & embedded SW developer
•From São Paulo, Brasil, now in Austin, TX
•CTO at
•Spec Lead – JSR363
•V2COM’s Representative at JCP Executive Committee
[www.linkedin.com/in/leomrlima]
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
The First IoT JSR: Units of Measurement
Otávio Santana
•Software engineer, Tomitribe
•From Salvador, Brazil
•Java Champion, SouJava JUG Leader
•Apache and OpenJDK Committer
•JSR 363 Expert Group member
•Representative at JCP EC for SouJava
[about.me/otaviojava]
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
The First IoT JSR: Units of Measurement
Werner Keil
•Consultant – Coach
•Creative Cosmopolitan
•Open Source Evangelist
•Software Architect
•Spec Lead – JSR363
•Individual JCP Executive Committee Member
[www.linkedin.com/in/catmedia]
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
What are Units of Measurement?
10,427 ??????
A Measurement
A Unit
San Francisco
São Paulo
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
What is the problem, in code?
int distance = 10427; //in ???
float speed = airplane.getSpeed(); //in ???
System.out.println(“TTD: “ + (distance/speed) + “
hours”);
10,427 ??????
A Measurement
A Unit
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
LEARNING FROM THE PAST…
Some examples of how things can go wrong…
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
Some real-life mishaps…
NASA “Star Wars” Initiative, 1985
Sea Level
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
Why do we need a specification?
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);
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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) and
unit conversion.
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
CORE THEORY AND CONCEPTS
Some Basic Science behind the API
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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!)
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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 …
… ∞
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
What is the problem, in code?
int distance = 10427; //in ???
float speed = airplane.getSpeed(); //in ???
System.out.println(“TTD: “ + (distance/speed) + “
hours”);
10,427 ??????
A Measurement
A Unit
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
What is JSR-363, in code?
Airplane airplane = new Airplane(“A380”);
QuantityFactory<Length> lengthFactory =
provider.getQuantityFactory(Length.class);
Quantity<Length> distance = lengthFactory.create(10427,
KILO(METRE));
Quantity<Speed> airplaneSpeed = airplane.getSpeed();
Quantity<Time> timeToDest = distance.divide(airplaneSpeed)
.asType(Time.class);
System.out.println(“TTD: “ + timeToDest.to(HOUR));
TTD: 11.033853606779548 h
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
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 better defined
API
Embedded developers can have less error-prone, more self-
documented code
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
Zulu Embedded JVM
JSR363
UoM
JSR339
JAX-RS
JSR353
JSON-
P
Embedded (inside a V2COM
Gateway)
Architecture Review
Zulu JVM
TomEE
Cassandra
jNoSQL
JSR363
Server-Side (inside a VirtualBox
VM)
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
JSR-363 timeline
March 11, 2014: Submitted
April 7, 2014: Creation approved
Dec 2014 – Jan 2015: Early Draft (approved)
Nov 2015 – Jan 2016: Public Review (approved)
Q3/2016 : Final Draft
Q3/2016: Final Release
@leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
Links to JSR-363
Public mailing list(s) and/or forum(s)
Units-Dev on Google Groups
Units-Users on Google Groups
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 JIRA (deprecated, use GitHub!)
And you can get sample code at our GitHub.
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
@YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne

More Related Content

Similar to The First IoT JSR: Units of Measurement JSR-363 [BOF5981]

ROBOTICS - Introduction to Robotics Microcontroller
ROBOTICS -  Introduction to Robotics MicrocontrollerROBOTICS -  Introduction to Robotics Microcontroller
ROBOTICS - Introduction to Robotics Microcontroller
Vibrant Technologies & Computers
 
Automatic Features Generation And Model Training On Spark: A Bayesian Approach
Automatic Features Generation And Model Training On Spark: A Bayesian ApproachAutomatic Features Generation And Model Training On Spark: A Bayesian Approach
Automatic Features Generation And Model Training On Spark: A Bayesian Approach
Spark Summit
 
Sbst2018 contest2018
Sbst2018 contest2018Sbst2018 contest2018
Sbst2018 contest2018
Annibale Panichella
 
Java ME API Next
 Java ME API Next Java ME API Next
Java ME API Next
Otávio Santana
 
SSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on EmroozSSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on Emrooz
Markus Stocker
 
Virtual Science in the Cloud
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloudthetfoot
 
ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013
Owen O'Malley
 
ORC File & Vectorization - Improving Hive Data Storage and Query Performance
ORC File & Vectorization - Improving Hive Data Storage and Query PerformanceORC File & Vectorization - Improving Hive Data Storage and Query Performance
ORC File & Vectorization - Improving Hive Data Storage and Query Performance
DataWorks Summit
 
HP-3 Presentation.pptx
HP-3 Presentation.pptxHP-3 Presentation.pptx
HP-3 Presentation.pptx
ShivamPandey521834
 
Basic Tutorial for Robotic Arm
Basic Tutorial for Robotic ArmBasic Tutorial for Robotic Arm
Basic Tutorial for Robotic Arm
Yu Wei Chen
 
And Then There Are Algorithms
And Then There Are AlgorithmsAnd Then There Are Algorithms
And Then There Are Algorithms
InfluxData
 
Drone
DroneDrone
Microservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital OneMicroservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital One
Noriaki Tatsumi
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
QAware GmbH
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
Brendan Gregg
 
AAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris ZacnyAAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris Zacny
American Astronautical Society
 
AEMP Connect 2021 Can AI Solve Construction Telematics Overload Problem? Ode...
AEMP Connect 2021  Can AI Solve Construction Telematics Overload Problem? Ode...AEMP Connect 2021  Can AI Solve Construction Telematics Overload Problem? Ode...
AEMP Connect 2021 Can AI Solve Construction Telematics Overload Problem? Ode...
Oded Ran
 
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
GeeksLab Odessa
 
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
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap Motion
Iris Classon
 

Similar to The First IoT JSR: Units of Measurement JSR-363 [BOF5981] (20)

ROBOTICS - Introduction to Robotics Microcontroller
ROBOTICS -  Introduction to Robotics MicrocontrollerROBOTICS -  Introduction to Robotics Microcontroller
ROBOTICS - Introduction to Robotics Microcontroller
 
Automatic Features Generation And Model Training On Spark: A Bayesian Approach
Automatic Features Generation And Model Training On Spark: A Bayesian ApproachAutomatic Features Generation And Model Training On Spark: A Bayesian Approach
Automatic Features Generation And Model Training On Spark: A Bayesian Approach
 
Sbst2018 contest2018
Sbst2018 contest2018Sbst2018 contest2018
Sbst2018 contest2018
 
Java ME API Next
 Java ME API Next Java ME API Next
Java ME API Next
 
SSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on EmroozSSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on Emrooz
 
Virtual Science in the Cloud
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
 
ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013ORC File and Vectorization - Hadoop Summit 2013
ORC File and Vectorization - Hadoop Summit 2013
 
ORC File & Vectorization - Improving Hive Data Storage and Query Performance
ORC File & Vectorization - Improving Hive Data Storage and Query PerformanceORC File & Vectorization - Improving Hive Data Storage and Query Performance
ORC File & Vectorization - Improving Hive Data Storage and Query Performance
 
HP-3 Presentation.pptx
HP-3 Presentation.pptxHP-3 Presentation.pptx
HP-3 Presentation.pptx
 
Basic Tutorial for Robotic Arm
Basic Tutorial for Robotic ArmBasic Tutorial for Robotic Arm
Basic Tutorial for Robotic Arm
 
And Then There Are Algorithms
And Then There Are AlgorithmsAnd Then There Are Algorithms
And Then There Are Algorithms
 
Drone
DroneDrone
Drone
 
Microservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital OneMicroservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital One
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
 
AAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris ZacnyAAS National Conference 2008: Kris Zacny
AAS National Conference 2008: Kris Zacny
 
AEMP Connect 2021 Can AI Solve Construction Telematics Overload Problem? Ode...
AEMP Connect 2021  Can AI Solve Construction Telematics Overload Problem? Ode...AEMP Connect 2021  Can AI Solve Construction Telematics Overload Problem? Ode...
AEMP Connect 2021 Can AI Solve Construction Telematics Overload Problem? Ode...
 
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
Java/Scala Lab 2016. Сергей Моренец: Способы повышения эффективности в Java 8.
 
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 
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap Motion
 

More from Leonardo De Moura Rocha Lima

Top 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQLTop 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQL
Leonardo De Moura Rocha Lima
 
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
Leonardo De Moura Rocha Lima
 
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
Leonardo De Moura Rocha Lima
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
Leonardo De Moura Rocha Lima
 
Java & IoT
Java & IoTJava & IoT
Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);
Leonardo De Moura Rocha Lima
 
IoT Security: Cases and Methods
IoT Security: Cases and MethodsIoT Security: Cases and Methods
IoT Security: Cases and Methods
Leonardo De Moura Rocha Lima
 
IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]
Leonardo De Moura Rocha Lima
 
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Leonardo De Moura Rocha Lima
 
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Leonardo De Moura Rocha Lima
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!
Leonardo De Moura Rocha Lima
 

More from Leonardo De Moura Rocha Lima (11)

Top 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQLTop 9 mistakes to avoid when developing with NoSQL
Top 9 mistakes to avoid when developing with NoSQL
 
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
 
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
 
Java & IoT
Java & IoTJava & IoT
Java & IoT
 
Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);Collections.compare(JDK, Eclipse, Guava, Apache...);
Collections.compare(JDK, Eclipse, Guava, Apache...);
 
IoT Security: Cases and Methods
IoT Security: Cases and MethodsIoT Security: Cases and Methods
IoT Security: Cases and Methods
 
IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]IoT Security: Cases and Methods [CON5446]
IoT Security: Cases and Methods [CON5446]
 
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
 
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!
 

Recently uploaded

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

The First IoT JSR: Units of Measurement JSR-363 [BOF5981]

  • 1. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne The First IoT JSR: Units of Measurement JSR-363 [BOF5981] Leonardo Lima & Otávio Santana & Werner Keil @leomrlima & @otaviojava & @wernerkeil & @UnitAPI https://www.jcp.org/en/jsr/detail?id=363 http://unitsofmeasurement.github.io
  • 2. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne The First IoT JSR: Units of Measurement Leonardo Lima •Computer engineer, server & embedded SW developer •From São Paulo, Brasil, now in Austin, TX •CTO at •Spec Lead – JSR363 •V2COM’s Representative at JCP Executive Committee [www.linkedin.com/in/leomrlima]
  • 3. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne The First IoT JSR: Units of Measurement Otávio Santana •Software engineer, Tomitribe •From Salvador, Brazil •Java Champion, SouJava JUG Leader •Apache and OpenJDK Committer •JSR 363 Expert Group member •Representative at JCP EC for SouJava [about.me/otaviojava]
  • 4. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne The First IoT JSR: Units of Measurement Werner Keil •Consultant – Coach •Creative Cosmopolitan •Open Source Evangelist •Software Architect •Spec Lead – JSR363 •Individual JCP Executive Committee Member [www.linkedin.com/in/catmedia]
  • 5. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne What are Units of Measurement? 10,427 ?????? A Measurement A Unit San Francisco São Paulo
  • 6. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne What is the problem, in code? int distance = 10427; //in ??? float speed = airplane.getSpeed(); //in ??? System.out.println(“TTD: “ + (distance/speed) + “ hours”); 10,427 ?????? A Measurement A Unit
  • 7. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne LEARNING FROM THE PAST… Some examples of how things can go wrong…
  • 8. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne Some real-life mishaps… NASA “Star Wars” Initiative, 1985 Sea Level
  • 9. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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
  • 10. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne Why do we need a specification? 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);
  • 11. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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) and unit conversion.
  • 12. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne CORE THEORY AND CONCEPTS Some Basic Science behind the API
  • 13. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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
  • 14. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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
  • 15. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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!)
  • 16. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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 … … ∞
  • 17. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
  • 18. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne What is the problem, in code? int distance = 10427; //in ??? float speed = airplane.getSpeed(); //in ??? System.out.println(“TTD: “ + (distance/speed) + “ hours”); 10,427 ?????? A Measurement A Unit
  • 19. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne What is JSR-363, in code? Airplane airplane = new Airplane(“A380”); QuantityFactory<Length> lengthFactory = provider.getQuantityFactory(Length.class); Quantity<Length> distance = lengthFactory.create(10427, KILO(METRE)); Quantity<Speed> airplaneSpeed = airplane.getSpeed(); Quantity<Time> timeToDest = distance.divide(airplaneSpeed) .asType(Time.class); System.out.println(“TTD: “ + timeToDest.to(HOUR)); TTD: 11.033853606779548 h
  • 20. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne 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 better defined API Embedded developers can have less error-prone, more self- documented code
  • 21. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
  • 22. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne Zulu Embedded JVM JSR363 UoM JSR339 JAX-RS JSR353 JSON- P Embedded (inside a V2COM Gateway) Architecture Review Zulu JVM TomEE Cassandra jNoSQL JSR363 Server-Side (inside a VirtualBox VM)
  • 23. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
  • 24. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne JSR-363 timeline March 11, 2014: Submitted April 7, 2014: Creation approved Dec 2014 – Jan 2015: Early Draft (approved) Nov 2015 – Jan 2016: Public Review (approved) Q3/2016 : Final Draft Q3/2016: Final Release
  • 25. @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne Links to JSR-363 Public mailing list(s) and/or forum(s) Units-Dev on Google Groups Units-Users on Google Groups 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 JIRA (deprecated, use GitHub!) And you can get sample code at our GitHub.
  • 26. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne
  • 27. @YourTwitterHandle#DVXFR14{session hashtag} @leomrlima & @otaviojava & @wernerkeil#JSR363JavaOne