How JSR 385 could have Saved the Mars Climate Orbiter DevoxxUA 2019Thodoris Bais
The document discusses the Mars Climate Orbiter mission, which failed due to a mix-up between metric and imperial units. It suggests that using JSR-385, a Java specification request for a units of measurement API, could have prevented this error. JSR-385 provides a standard library for defining and working with physical quantities and units that avoids issues with primitive types. The document provides an overview of key concepts in JSR-385 like dimensions, units, quantities, and systems of units.
How JSR 385 could have Saved the Mars Climate Orbiter CodeMotion Milan Octobe...Thodoris Bais
The document discusses the Mars Climate Orbiter mission that failed in 1999 due to a unit mix-up. It suggests that using JSR 385, which standardizes units of measurement in Java, could have prevented this error. The document then provides an overview of key concepts in JSR 385, including dimensions, units, quantities, systems of units, and how it standardizes representations and calculations involving units and physical quantities. It highlights the status of JSR 385, which is now finalized.
How JSR 385 could have Saved the Mars Climate Orbiter JFall 2019Thodoris Bais
The document discusses the Mars Climate Orbiter mission that failed in 1999 due to a discrepancy in measurement units. It suggests that using JSR-385, the Java Specification Requests Units of Measurement API, could have prevented this failure by catching the unit mismatch. JSR-385 provides a standard library for working with quantities, units, and unit conversions that avoids issues with primitive types representing values with implicit units. The document promotes JSR-385 and its role in avoiding measurement errors through proper handling of units.
How JSR 385 could have Saved the Mars Climate Orbiter Adorsys 2020Thodoris Bais
The document discusses how using JSR-385 instead of primitive types could have prevented the loss of the Mars Climate Orbiter. It describes how the orbiter launched in 1998 to study the Martian climate but was lost due to a failure to correctly convert between unit systems. Adopting JSR-385's quantity-based units could have automatically handled the unit conversions and caught the error. The document encourages readers to use JSR-385 to avoid similar issues and provides an overview of the specification.
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021Werner Keil
The document discusses how using JSR-385 could have prevented the loss of the Mars Climate Orbiter spacecraft. It describes how the orbiter was launched in 1998 to study the Martian climate but was lost due to a failure to convert between metric and imperial units. Had JSR-385 been used to define physical quantities with consistent units, as it does now, this error may have been caught during development. The document then provides an overview of JSR-385 and how it can help define quantities, units, and perform unit conversions to prevent such errors.
This document discusses the greenhouse effect from three perspectives:
1) It critiques the standard Trenberth & Kiehl diagram that quantifies the greenhouse effect as violating the first law of thermodynamics.
2) It applies the laws of thermodynamics to the system of the Earth and concludes that the atmosphere cannot increase the Earth's temperature.
3) It applies the first law of thermodynamics to the combined system of the Earth and atmosphere and finds that increasing the Earth's temperature would require implausibly lowering the atmosphere's temperature, which is impossible.
1. The document describes an experiment to determine the wind velocity required to extinguish different types of flames.
2. Students placed lighted candles and other fuels in a wind tunnel and gradually increased the wind speed while observing and photographing the flames.
3. They were able to calculate the wind velocity needed to extinguish each flame and conclude that understanding this factor could help fight forest fires and other conflagrations.
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020Werner Keil
In 1999, NASA lost the $125 million Mars Climate Orbiter as it went into orbital insertion. Due to a mismatch between US customary and SI units of measurements in one of the APIs, the spacecraft came too close to the planet, passed through the upper atmosphere and disintegrated. Sadly, this hasn’t been the only instance where a mismatch between units of measurements had catastrophic consequences, but it’s certainly one of the most spectacular and expensive ones.
How could this happen? The bad news: if you use primitive types to handle quantities in your code, due to the same practice at best, you’ve codified the unit in a variable name or database field, e.g. calling it lengthInMetres. Otherwise, you’re only relying on convention, just like Lockheed Martin and NASA did.
Join this talk to learn how JSR 385 can help you avoid $125 million mistakes, how it applies the 2019 redefinition of SI base units, and discover the immeasurable world of dimensions, units and quantities.
How JSR 385 could have Saved the Mars Climate Orbiter DevoxxUA 2019Thodoris Bais
The document discusses the Mars Climate Orbiter mission, which failed due to a mix-up between metric and imperial units. It suggests that using JSR-385, a Java specification request for a units of measurement API, could have prevented this error. JSR-385 provides a standard library for defining and working with physical quantities and units that avoids issues with primitive types. The document provides an overview of key concepts in JSR-385 like dimensions, units, quantities, and systems of units.
How JSR 385 could have Saved the Mars Climate Orbiter CodeMotion Milan Octobe...Thodoris Bais
The document discusses the Mars Climate Orbiter mission that failed in 1999 due to a unit mix-up. It suggests that using JSR 385, which standardizes units of measurement in Java, could have prevented this error. The document then provides an overview of key concepts in JSR 385, including dimensions, units, quantities, systems of units, and how it standardizes representations and calculations involving units and physical quantities. It highlights the status of JSR 385, which is now finalized.
How JSR 385 could have Saved the Mars Climate Orbiter JFall 2019Thodoris Bais
The document discusses the Mars Climate Orbiter mission that failed in 1999 due to a discrepancy in measurement units. It suggests that using JSR-385, the Java Specification Requests Units of Measurement API, could have prevented this failure by catching the unit mismatch. JSR-385 provides a standard library for working with quantities, units, and unit conversions that avoids issues with primitive types representing values with implicit units. The document promotes JSR-385 and its role in avoiding measurement errors through proper handling of units.
How JSR 385 could have Saved the Mars Climate Orbiter Adorsys 2020Thodoris Bais
The document discusses how using JSR-385 instead of primitive types could have prevented the loss of the Mars Climate Orbiter. It describes how the orbiter launched in 1998 to study the Martian climate but was lost due to a failure to correctly convert between unit systems. Adopting JSR-385's quantity-based units could have automatically handled the unit conversions and caught the error. The document encourages readers to use JSR-385 to avoid similar issues and provides an overview of the specification.
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021Werner Keil
The document discusses how using JSR-385 could have prevented the loss of the Mars Climate Orbiter spacecraft. It describes how the orbiter was launched in 1998 to study the Martian climate but was lost due to a failure to convert between metric and imperial units. Had JSR-385 been used to define physical quantities with consistent units, as it does now, this error may have been caught during development. The document then provides an overview of JSR-385 and how it can help define quantities, units, and perform unit conversions to prevent such errors.
This document discusses the greenhouse effect from three perspectives:
1) It critiques the standard Trenberth & Kiehl diagram that quantifies the greenhouse effect as violating the first law of thermodynamics.
2) It applies the laws of thermodynamics to the system of the Earth and concludes that the atmosphere cannot increase the Earth's temperature.
3) It applies the first law of thermodynamics to the combined system of the Earth and atmosphere and finds that increasing the Earth's temperature would require implausibly lowering the atmosphere's temperature, which is impossible.
1. The document describes an experiment to determine the wind velocity required to extinguish different types of flames.
2. Students placed lighted candles and other fuels in a wind tunnel and gradually increased the wind speed while observing and photographing the flames.
3. They were able to calculate the wind velocity needed to extinguish each flame and conclude that understanding this factor could help fight forest fires and other conflagrations.
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020Werner Keil
In 1999, NASA lost the $125 million Mars Climate Orbiter as it went into orbital insertion. Due to a mismatch between US customary and SI units of measurements in one of the APIs, the spacecraft came too close to the planet, passed through the upper atmosphere and disintegrated. Sadly, this hasn’t been the only instance where a mismatch between units of measurements had catastrophic consequences, but it’s certainly one of the most spectacular and expensive ones.
How could this happen? The bad news: if you use primitive types to handle quantities in your code, due to the same practice at best, you’ve codified the unit in a variable name or database field, e.g. calling it lengthInMetres. Otherwise, you’re only relying on convention, just like Lockheed Martin and NASA did.
Join this talk to learn how JSR 385 can help you avoid $125 million mistakes, how it applies the 2019 redefinition of SI base units, and discover the immeasurable world of dimensions, units and quantities.
How JSR 385 Could have Saved the Mars Climate Orbiter JCON September 2019Thodoris Bais
The document discusses how the JSR-385 Units of Measurement API could have prevented errors like those that caused the loss of the Mars Climate Orbiter. It provides an overview of JSR-385, which specifies how to model measurement values, quantities, and units in Java. It aims to address the fundamental problem that primitive types in Java are not aware of their units. JSR-385 defines concepts like dimensions, units, quantities, prefixes, and converters to provide a standard way to work with physical quantities and avoid errors caused by unit mismatches.
Copy of Science Subject for Elementary - 4th Grade_ Changes in Matter and Ene...2020117466
The document discusses Boyle's law and gas behavior. It provides explanations of Boyle's law, identifies gas property symbols and units, demonstrates Boyle's law through a marshmallow experiment, plots given pressure-volume data on a graph, and solves sample problems using the Boyle's law equation to calculate changes in pressure and volume.
This document discusses thermal energy and the behavior of gases. It defines thermal energy as the total kinetic energy of particles in an object. As temperature increases, particles move faster and have more kinetic energy. Gases are discussed in terms of pressure, volume, temperature, and their relationships as defined by Boyle's and Charles' Laws. Specifically, Boyle's Law states that pressure and volume are inversely related at a constant temperature, while Charles' Law says volume and temperature are directly proportional at constant pressure.
The document contains several classroom agendas that include bell work, learning objectives such as reviewing for tests on thermal energy and the periodic table, as well as homework assignments involving chapters in a textbook and practice problems. The agendas provide an overview of the daily plan and topics to be covered in science class relating to concepts of thermal energy, phases of matter, and the periodic table.
This document discusses measurement systems and units. It provides details on:
- The English and International (SI) systems of measurement, including their base units and prefixes. The English system uses arbitrary objects while SI uses multiples of ten.
- Conversions within and between the two systems. SI is easier for conversions while English uses arbitrary units like inches and pounds.
- Temperature scales including Fahrenheit, Celsius, and Kelvin. It provides the definitions and formulas for converting between the scales.
- Proper reporting of measurements, which requires providing both the measured quantity and the correct unit with the appropriate number of significant figures.
The document provides instructions for students on starting their science lesson on molecular motion and temperature. It tells students to take their seats, get out their binders and yesterday's work, and notes that 96% of students understood yesterday's lesson based on exit slip data. The objectives for today's lesson are described as learning how temperature relates to molecular motion and how to convert between the Kelvin and Celsius temperature scales.
1. The document discusses key concepts in heat and thermodynamics including temperature, heat transfer mechanisms, thermal expansion, and phase changes.
2. It provides examples of problems and their solutions involving concepts like specific heat, latent heat, temperature conversions, and heat transfer calculations.
3. The key heat transfer mechanisms of conduction, convection, and radiation are explained through examples of how they apply to insulating houses and minimizing energy costs.
This document provides information about a Physics 201 course covering topics like kinematics, dynamics, statics, fluids, and oscillations. It discusses the textbook, homework assignments on WebAssign, labs, discussions, and teaching assistants. Physics is described as the basic science that includes concepts from mechanics, optics, electricity and magnetism, atomic and nuclear physics. Examples are given of how scientific theories are developed from observations and experiments, and how Eratosthenes calculated the diameter of the Earth in the 3rd century BC. The document also covers units in the SI system, prefixes, conversions between units, derived quantities, dimensions, and measurement with significant figures.
Here are the units and quantities from Table 7.1 on page 208:
Meter - Length
Kilogram - Mass
Second - Time
Ampere - Electric Current
Kelvin - Thermodynamic Temperature
Mole - Amount of Substance
Candela - Luminous Intensity
This document discusses the kinetic molecular theory of gases and its development over 200 years. It provides background on key contributors like Van der Waals who published an equation of state in 1873 that accounted for interactions between gas molecules and volume, improving on the ideal gas law. It also discusses how the constant R was derived from experiments and used to relate the temperature and pressure of an ideal gas in the ideal gas law PV=nRT.
This document discusses heat and temperature. It begins by explaining early theories of heat, including the caloric fluid theory which was later disproven. It then discusses sources of heat, both natural like the sun and artificial like chemical reactions. Key terms are defined, like conduction, convection and radiation as methods of heat transfer. Common temperature scales are explained including Celsius, Fahrenheit and Kelvin. Effects of heat like expansion and phase changes are covered. The document concludes with a short quiz to test the reader's understanding.
This document provides an overview of energy transfer and storage. It discusses different forms of energy including kinetic, sound, thermal, chemical, electrical, and gravitational potential energy. It explains how energy can be transferred through conduction, convection, and radiation. It also covers the differences between heat and temperature. Additionally, it distinguishes between non-renewable resources like fossil fuels and renewable resources such as biomass, wind, water, geothermal, and solar energy. Finally, it discusses how energy can be generated and saved.
Heat & Waves: Notes on HEAT ENERGY and WAVES including the difference between...Robin Seamon
This document provides an overview of heat, phases of matter, and waves. It contains 3 key points:
1) It describes the concepts of temperature, phases of matter (solid, liquid, gas), and how adding or removing heat can change the phase. Solids have a definite shape and volume, liquids have a definite volume but not shape, and gases spread out indefinitely and take the shape of their container.
2) It explains different types of heat transfer including conduction, convection, and radiation. It also defines concepts like insulators, conductors, and thermal equilibrium.
3) It introduces the properties and types of waves, including transverse and longitudinal waves. It discusses wave interactions such as reflection,
This experiment tested the effect of different amounts of distilled water on plant height. The hypothesis was that if the amount of distilled water is increased, then the height of the plants will increase. The independent variable was the amount of distilled water (50, 100, 150, 200, 250 mL) and the dependent variable was the height of the plants. Ten seeds were planted in each of 5 pots, with pot 3 receiving the recommended amount of 150 mL as the control. The constants were the same type and amount of soil and type of water. Potential design flaws included poorly defined constants and infrequent measurement of plant height.
This document summarizes key concepts about different forms of energy from a textbook chapter. It discusses energy transformation and various forms of energy including chemical, thermal, mechanical, and radiation. Specific topics covered include the law of conservation of energy, energy efficiency, thermal energy and factors that affect it like temperature and number of particles, heat transfer, specific heat, kinetic energy, and types of forces including gravitational, electromagnetic, and nuclear forces. Formulas for calculating energy, heat, and kinetic energy are provided.
This document summarizes a practicum report on using a calorimeter to measure heat. The report details the purpose, theory, tools, steps, data, calculations, and discussion. The practicum aims to determine the type of calorimeter, amount of heat energy released, electrical energy received, and understand calorimeter material. Measurements are taken of the calorimeter's mass, temperature changes when electrical current is passed through. Calculations are done to find the heat, electrical energy, power, and verify the relationship between electrical and heat energy using a correlation factor.
This document discusses NoSQL databases and frameworks for using them with Java applications. It summarizes the advantages of NoSQL databases, different types including key-value, column-oriented, document and graph databases. It also discusses frameworks like NoSQL Endgame that aim to provide a common API for working with multiple NoSQL databases from Java code. However, it notes that fully supporting all NoSQL databases and scenarios is still a challenge for such frameworks.
The document discusses how to succeed in one's developer career after graduating. It provides tips such as doing things others won't, being confident, daring to fail a lot in your 20s, getting a mentor, and maintaining a positive attitude. It emphasizes having a strong work ethic, focusing one's efforts, being humble, dropping perfectionism, having discipline over motivation, and planning ahead. The overall message is that success equals happiness and is achieved through taking care of one's health, behaviors, and performance.
More Related Content
Similar to How JSR 385 could have Saved the Mars Climate Orbiter Java Global Summit 2020
How JSR 385 Could have Saved the Mars Climate Orbiter JCON September 2019Thodoris Bais
The document discusses how the JSR-385 Units of Measurement API could have prevented errors like those that caused the loss of the Mars Climate Orbiter. It provides an overview of JSR-385, which specifies how to model measurement values, quantities, and units in Java. It aims to address the fundamental problem that primitive types in Java are not aware of their units. JSR-385 defines concepts like dimensions, units, quantities, prefixes, and converters to provide a standard way to work with physical quantities and avoid errors caused by unit mismatches.
Copy of Science Subject for Elementary - 4th Grade_ Changes in Matter and Ene...2020117466
The document discusses Boyle's law and gas behavior. It provides explanations of Boyle's law, identifies gas property symbols and units, demonstrates Boyle's law through a marshmallow experiment, plots given pressure-volume data on a graph, and solves sample problems using the Boyle's law equation to calculate changes in pressure and volume.
This document discusses thermal energy and the behavior of gases. It defines thermal energy as the total kinetic energy of particles in an object. As temperature increases, particles move faster and have more kinetic energy. Gases are discussed in terms of pressure, volume, temperature, and their relationships as defined by Boyle's and Charles' Laws. Specifically, Boyle's Law states that pressure and volume are inversely related at a constant temperature, while Charles' Law says volume and temperature are directly proportional at constant pressure.
The document contains several classroom agendas that include bell work, learning objectives such as reviewing for tests on thermal energy and the periodic table, as well as homework assignments involving chapters in a textbook and practice problems. The agendas provide an overview of the daily plan and topics to be covered in science class relating to concepts of thermal energy, phases of matter, and the periodic table.
This document discusses measurement systems and units. It provides details on:
- The English and International (SI) systems of measurement, including their base units and prefixes. The English system uses arbitrary objects while SI uses multiples of ten.
- Conversions within and between the two systems. SI is easier for conversions while English uses arbitrary units like inches and pounds.
- Temperature scales including Fahrenheit, Celsius, and Kelvin. It provides the definitions and formulas for converting between the scales.
- Proper reporting of measurements, which requires providing both the measured quantity and the correct unit with the appropriate number of significant figures.
The document provides instructions for students on starting their science lesson on molecular motion and temperature. It tells students to take their seats, get out their binders and yesterday's work, and notes that 96% of students understood yesterday's lesson based on exit slip data. The objectives for today's lesson are described as learning how temperature relates to molecular motion and how to convert between the Kelvin and Celsius temperature scales.
1. The document discusses key concepts in heat and thermodynamics including temperature, heat transfer mechanisms, thermal expansion, and phase changes.
2. It provides examples of problems and their solutions involving concepts like specific heat, latent heat, temperature conversions, and heat transfer calculations.
3. The key heat transfer mechanisms of conduction, convection, and radiation are explained through examples of how they apply to insulating houses and minimizing energy costs.
This document provides information about a Physics 201 course covering topics like kinematics, dynamics, statics, fluids, and oscillations. It discusses the textbook, homework assignments on WebAssign, labs, discussions, and teaching assistants. Physics is described as the basic science that includes concepts from mechanics, optics, electricity and magnetism, atomic and nuclear physics. Examples are given of how scientific theories are developed from observations and experiments, and how Eratosthenes calculated the diameter of the Earth in the 3rd century BC. The document also covers units in the SI system, prefixes, conversions between units, derived quantities, dimensions, and measurement with significant figures.
Here are the units and quantities from Table 7.1 on page 208:
Meter - Length
Kilogram - Mass
Second - Time
Ampere - Electric Current
Kelvin - Thermodynamic Temperature
Mole - Amount of Substance
Candela - Luminous Intensity
This document discusses the kinetic molecular theory of gases and its development over 200 years. It provides background on key contributors like Van der Waals who published an equation of state in 1873 that accounted for interactions between gas molecules and volume, improving on the ideal gas law. It also discusses how the constant R was derived from experiments and used to relate the temperature and pressure of an ideal gas in the ideal gas law PV=nRT.
This document discusses heat and temperature. It begins by explaining early theories of heat, including the caloric fluid theory which was later disproven. It then discusses sources of heat, both natural like the sun and artificial like chemical reactions. Key terms are defined, like conduction, convection and radiation as methods of heat transfer. Common temperature scales are explained including Celsius, Fahrenheit and Kelvin. Effects of heat like expansion and phase changes are covered. The document concludes with a short quiz to test the reader's understanding.
This document provides an overview of energy transfer and storage. It discusses different forms of energy including kinetic, sound, thermal, chemical, electrical, and gravitational potential energy. It explains how energy can be transferred through conduction, convection, and radiation. It also covers the differences between heat and temperature. Additionally, it distinguishes between non-renewable resources like fossil fuels and renewable resources such as biomass, wind, water, geothermal, and solar energy. Finally, it discusses how energy can be generated and saved.
Heat & Waves: Notes on HEAT ENERGY and WAVES including the difference between...Robin Seamon
This document provides an overview of heat, phases of matter, and waves. It contains 3 key points:
1) It describes the concepts of temperature, phases of matter (solid, liquid, gas), and how adding or removing heat can change the phase. Solids have a definite shape and volume, liquids have a definite volume but not shape, and gases spread out indefinitely and take the shape of their container.
2) It explains different types of heat transfer including conduction, convection, and radiation. It also defines concepts like insulators, conductors, and thermal equilibrium.
3) It introduces the properties and types of waves, including transverse and longitudinal waves. It discusses wave interactions such as reflection,
This experiment tested the effect of different amounts of distilled water on plant height. The hypothesis was that if the amount of distilled water is increased, then the height of the plants will increase. The independent variable was the amount of distilled water (50, 100, 150, 200, 250 mL) and the dependent variable was the height of the plants. Ten seeds were planted in each of 5 pots, with pot 3 receiving the recommended amount of 150 mL as the control. The constants were the same type and amount of soil and type of water. Potential design flaws included poorly defined constants and infrequent measurement of plant height.
This document summarizes key concepts about different forms of energy from a textbook chapter. It discusses energy transformation and various forms of energy including chemical, thermal, mechanical, and radiation. Specific topics covered include the law of conservation of energy, energy efficiency, thermal energy and factors that affect it like temperature and number of particles, heat transfer, specific heat, kinetic energy, and types of forces including gravitational, electromagnetic, and nuclear forces. Formulas for calculating energy, heat, and kinetic energy are provided.
This document summarizes a practicum report on using a calorimeter to measure heat. The report details the purpose, theory, tools, steps, data, calculations, and discussion. The practicum aims to determine the type of calorimeter, amount of heat energy released, electrical energy received, and understand calorimeter material. Measurements are taken of the calorimeter's mass, temperature changes when electrical current is passed through. Calculations are done to find the heat, electrical energy, power, and verify the relationship between electrical and heat energy using a correlation factor.
Similar to How JSR 385 could have Saved the Mars Climate Orbiter Java Global Summit 2020 (20)
This document discusses NoSQL databases and frameworks for using them with Java applications. It summarizes the advantages of NoSQL databases, different types including key-value, column-oriented, document and graph databases. It also discusses frameworks like NoSQL Endgame that aim to provide a common API for working with multiple NoSQL databases from Java code. However, it notes that fully supporting all NoSQL databases and scenarios is still a challenge for such frameworks.
The document discusses how to succeed in one's developer career after graduating. It provides tips such as doing things others won't, being confident, daring to fail a lot in your 20s, getting a mentor, and maintaining a positive attitude. It emphasizes having a strong work ethic, focusing one's efforts, being humble, dropping perfectionism, having discipline over motivation, and planning ahead. The overall message is that success equals happiness and is achieved through taking care of one's health, behaviors, and performance.
This document discusses NoSQL Endgame, a framework for mapping object-relational mappings to NoSQL databases. It provides a cleaner DAO implementation and removes boilerplate code by supporting key-value stores, column-oriented, document, and graph databases. However, it only supports a few popular NoSQL databases out of the box and switching between vendors is not entirely easy. The framework is also outdated as the last release was in 2018.
Be the Leader of Your Own Career Global Summit for Java Devs 21Thodoris Bais
The document discusses how to own and lead one's developer career. It provides tips for becoming a leader such as being confident, making decisions, building feedback, maintaining a positive attitude, and keeping calm. It also discusses the importance of having a strong work ethic, defining work ethic, and finding one's purpose. Additional leadership tips include being humble, dropping perfectionism, having a "now" mentality, preparing, doing more, focusing, using social skills, having an escape, eating right, and planning ahead. The presentation emphasizes that success equals happiness and stresses taking care of one's health, behavior, and performance.
How to grow an amazing community - JavaLand 2021Thodoris Bais
This document provides tips on how to grow an amazing community. It discusses establishing a board, finding venues and food sponsors close to the community, having regular monthly meetups planned several months in advance, partnering with conferences for promotions, using multiple communication channels, giving out promotional items, running speaker training and educational programs, and continuing to aim high and have fun as the community grows. The pandemic has led the community discussed to stop hosting online events and focus on in-person meetups once it is safe to do so again.
Securing eHealth, eGovernment and eBanking with Java - IT-Tage 2020 ConferenceThodoris Bais
This document discusses securing eHealth, eGovernment, and eBanking applications with Java. It covers electronic signatures and certificates, describing simple, advanced, and qualified electronic signatures. It also discusses the Digital Signature Services (DSS) framework, an open-source Java library that supports creating and validating electronic signatures in accordance with European regulations. The framework allows creating and extending digital signatures and validating them for different document formats like XML, PDF, and more. It implements signature profiles and standards including XAdES, CAdES, PAdES, and ASiC.
Securing eHealth, eGovernment and eBanking with Java - JCON ConferenceThodoris Bais
This document discusses securing eHealth, eGovernment, and eBanking applications with Java. It covers electronic signatures and certificates, describing signature types like simple, advanced, qualified, and qualified with accreditation. It discusses certificate formats and signature packaging. The DSS framework is introduced for creating, extending, and validating digital signatures across formats like XML, PDF, and ASiC. The document proposes a demo and provides links for further information.
Be the Leader of Your Own Career JCON Conference 2020Thodoris Bais
The document discusses how to own your developer career and be a leader. It provides tips for becoming a leader such as being confident, making decisions, building feedback, maintaining a positive attitude, and keeping calm. It also discusses the need for authentic leadership and having a strong work ethic which involves having purpose and applying mental and physical effort to achieve goals and standards of acceptable behavior.
This document discusses NoSQL databases and frameworks for using them with Java applications. It summarizes the advantages of NoSQL databases, different types including key-value, column-oriented, document and graph databases. Frameworks like JPA are challenging to use with NoSQL due to differences from SQL databases. Other options like Spring Data and GORM aim to provide a more native interface for NoSQL but support a limited number of database types. Choosing the right approach depends on the specific use case and database.
The document summarizes a meetup of the Utrecht Java User Group from September 2020. It discusses that their last meetup was in September before a vacation. At this meetup, they had giveaways including JetBrains licenses and a conference ticket. They thanked sponsor Blue4IT and said they look forward to their next meetup.
Developer Career: Own it - SouJava April 2020Thodoris Bais
This document outlines principles for owning one's developer career. It discusses reading, writing, delivering, and sharing code on a daily basis. It also recommends automating repetitive tasks, documenting work, avoiding distractions, communicating, finding a mentor, relaxing, sleeping, and stepping back from work. The overall message is to work hard, be patient, and ignore criticism as you progress in your career.
Securing eHealth and eGovernment with Java - AllTheTalksOnline 2020Thodoris Bais
This document outlines an agenda for a presentation on electronic signatures in eHealth and eGovernment. The agenda includes: an introduction to eHealth and eGovernment; requirements for secure transmission such as integrity, identity, and authenticity; benefits and risks of electronic signatures; different types of electronic signatures and certificates; signature formats, packaging, and processes; and an overview of the Digital Signature Services (DSS) framework for creating and validating signatures. There is also a demonstration and time for questions.
How to pitch an innovative idea in a corporate environmentThodoris Bais
ABN Amro's Innovation Circl supported the University SDG Challenge in 2020, a programme where 10+ universities in the Netherlands compete with a team of top students in solving Sustainable Development Goals - related challenges of corporates and governmental organisations.
As part of this collaboration ABN Amro had the chance to host two short talks: one on sustainability and one on pitching.
I delivered the talk on How to pitch an innovative idea in a Corporate Environment
The document announces a meetup held by the Utrecht Java User Group in February 2020. It provides a recap of the last meetup and details prizes and giveaways that were offered including a JetBrains license, API conference ticket, and serverless architecture conference ticket. It also teases an upcoming gaming theme for the March meetup and invites attendees to join the meetup's Slack channel.
Developer Career: Own it - Adorsys 2020Thodoris Bais
This document outlines principles for owning one's developer career. It recommends doing the following on a daily basis: reading code, writing code, delivering code, solving problems, and sharing knowledge. It also provides eight principles for being more productive: automation, documentation, avoiding distractions, communication, finding a mentor, relaxation, sleep, and stepping back. The overall message is to work hard, be patient, and ignore criticism as you progress in your career.
The January 2020 meetup of the Utrecht Java User Group was recapped, where a JetBrains license and ticket to React Summit Amsterdam were given away. Plans for the February meetup were announced, and Blue4IT was thanked for their support.
Developer Career: Own it - Java2Days 2019Thodoris Bais
The document discusses how to own your developer career. It recommends focusing on progress over perfection by reading code, writing code, delivering code, solving problems, and sharing knowledge every day. It also provides principles for being more productive such as automation, documentation, limiting distractions, communication, finding a mentor, relaxation, sleep, and stepping back. The overall message is to work hard, be patient, and ignore criticism.
Securing eHealth and eGovernment with Java - Java2Days 2019Thodoris Bais
The document discusses securing eHealth and eGovernment systems with electronic signatures in Java. It covers topics like eHealth and eGovernment use cases in Germany and the Netherlands, requirements for secure transmission, electronic signature types and certificates, the Digital Signature Services (DSS) framework, and PDF security issues. The presentation aims to demonstrate how to create and validate digital signatures using Java libraries to enable secure eHealth and eGovernment applications and document exchange.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
CAKE: Sharing Slices of Confidential Data on BlockchainClaudio Di Ciccio
Presented at the CAiSE 2024 Forum, Intelligent Information Systems, June 6th, Limassol, Cyprus.
Synopsis: Cooperative information systems typically involve various entities in a collaborative process within a distributed environment. Blockchain technology offers a mechanism for automating such processes, even when only partial trust exists among participants. The data stored on the blockchain is replicated across all nodes in the network, ensuring accessibility to all participants. While this aspect facilitates traceability, integrity, and persistence, it poses challenges for adopting public blockchains in enterprise settings due to confidentiality issues. In this paper, we present a software tool named Control Access via Key Encryption (CAKE), designed to ensure data confidentiality in scenarios involving public blockchains. After outlining its core components and functionalities, we showcase the application of CAKE in the context of a real-world cyber-security project within the logistics domain.
Paper: https://doi.org/10.1007/978-3-031-61000-4_16
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
4. Mars Climate
Orbiter
• Launched on 11
December 1998
• 338 kilograms
• $125 millions
• To study Martian
climate, atmosphere
and surface changes
@wernerkeil @thodorisbais
8. Mars Climate Orbiter
“The problem here was not the error; it was the
failure of NASA’s systems engineering, and the
checks and balances in our process, to detect the
error. That’s why we lost the spacecraft.”
Edward Weiler
NASA associate administrator of space science,
IEEE Spectrum: Why the Mars Probe went off course
@thodorisbais@wernerkeil
12. What is the Fundamental Problem?
Primitive (Java) types are primitive types
• static final double C = 1079252849;
• static final double SPEED_OF_LIGHT = 1079252849;
• static final double SPEED_OF_LIGHT_IN_KM_PER_H = 1079252849;
@thodorisbais@wernerkeil
static final Quantity<SPEED> SPEED_OF_LIGHT =
Quantities.getQuantity(1079252849, Units.KILOMETRE_PER_HOUR);
13. Rolling your Own Library
• Development
• Maintenance
• Upgrades & extensions
@thodorisbais@wernerkeil
14. Werner Keil Thodoris Bais
Maintenance Lead JSR-385
Expert Group Member JSR-385
Let’s meet
@thodorisbais@wernerkeil
15. @thodorisbais@wernerkeil
ABN Amro Bank
Financial sector
Amsterdam
Agile organization
20,000
3000+
400+
Total number of employeesEnterprise bank
Headquarters Development Teams
DevOps / Hybrid cloud Applications
21. –Wikipedia
“A physical quantity is a physical property of a phenomenon, body, or
substance, that can be quantified by measurement.”
Definition of a Physical Quantity
@thodorisbais@wernerkeil
22. Speed of Light
c = 299,792,458 m/s
Value Unit
@thodorisbais@wernerkeil
23. Speed of Light
c = 299,792,458 m/s
= 1,079,252,849 km/h
@thodorisbais@wernerkeil
29. Dimensions
• L: length
• T: time
• M: mass
• I: electric current
• Θ: thermodynamic temperature
• N: amount of substance
• J: luminous intensity
• (1)
Force: L · M · T-2
@thodorisbais@wernerkeil
32. Systems of UnitSystems of Units
• Metric System
• Imperial System
• US customary units
• Roman units of measurement
• Norwegian Units of Measurement
@thodorisbais@wernerkeil
36. Java Global Summit Math Exam
How much is 0 °C + 0 °C?
• 0 °C
• 0 °C
• 273.15 °C
Two absolute temperatures
0 °C + 0 °C = 273.15K + 273.15K
= 546.30K
= 273.15 °C
@thodorisbais@wernerkeil
37. How much is 0 °C + 0 °C?
• 0 °C
• 0 °C
• 273.15 °C
An absolute temperature and a temperature change
0 °C + 0 °C = 273.15K + 0K
= 273.15K
= 0 °C
@thodorisbais@wernerkeil
Java Global Summit Math Exam
38. How much is 0 °C + 0 °C?
• 0 °C
• 0 °C
• 273.15 °C
Two temperature changes
0 °C + 0 °C = 0K + 0K
= 0K
= 0 °C
@thodorisbais@wernerkeil
Java Global Summit Math Exam
39. How much is 0 °C + 0 °C?
Answer
@thodorisbais@wernerkeil
Java Global Summit Math Exam
43. Write a program to calculate the BMI of a person
Exercise description
@thodorisbais@wernerkeil
44. 1. Define two quantities
a. A mass
b. A length
2. Print them out
Useful classes:
•tech.units.indriya.quantity.Quantities
•getQuantity(java.lang.Number value, javax.measure.Unit unit)
•tech.units.indriya.unit.Units
•javax.measure.Quantity
•javax.measure.quantity.Mass
Exercise 1
@thodorisbais@wernerkeil
45. • Divide the mass by the square of the height
• Print out the result
Exercise 2
@thodorisbais@wernerkeil
46. a. Parse mass and height from a String
b. Read mass and height from the command line
Exercise 3
@thodorisbais@wernerkeil
47. a. Define a BMI quantity
b. Define a BMI unit
c. Convert the quantity to the BMI unit before printing it out
Exercise 4
@thodorisbais@wernerkeil
48. • Autodetect which argument has mass dimension and which one
has length
Exercise 5
@thodorisbais@wernerkeil
49. What was the Fundamental
Problem Again?
Primitive (Java) types are primitive types
@thodorisbais@wernerkeil
Late 1999 - David Bowie – small-scale promotional concert tour known as the Hours Tour with the opening song of the setlist having the name “Life on Mars 1999”
Primary science objectives of the mission:
determine the distribution of water in Mars
monitor the daily atmospheric conditions
record changes of the Martian surface (due to wind)
determine temperature profiles in the atmosphere
look for evidence of past climate change
This picture costed $125 millions dollars
into a trajectory above 226km above the surface of Mars
It probably got disintegrated in the atmosphere and disappeared.
Minimum altitude to survive was 80km above the surface of Mars
A piece of software provided by Lockheed Martin produced results for the total impulse by the thruster firing in pound force seconds, whereas the trajectory calculation software provided by NASA expected it to be in Newton seconds.
The software specification said it should have been in Newton seconds so Luckheed Martin clearly made a mistake
if Lockheed Martin had done a good job, it would have never happened
Use JSR-385 instead of primitives
Fail fast <== don’t rely on the checksum balancer to discover problems
The 12 October 1492 “mishap”Colombus miscalculated the circumference of the earth cuz he used roman miles instead of nautical miles. ended up in Bahamas, but thought he was in Asia. Consequence? the native americans were called for Indians 500 years afterwards
2) Clarence the Tortoise, 2001 , Galapagos tortoise
Los Angeles Zoo loaned to Moorpark College.
“Build an enclosure for an animal that weighs in at about 250”
Forgot to say “kilograms” . so Moorpark college built one for a 250 pound tortoise. Guess what happened the first night. Clarence wrecked the cage
3) units begging for mistakes —> Tea spoon . gram and grain “take 5 grains” is being understood as “take 5 grams”
4) SDI measurement problem (SDI was Reagan's Space Force) where the Space Shuttle turned upside down
using a primitive to represent a quantity is fundamentally conflicting with OOP and DDD, cuz you’re using a type representing just a number to represent a quantity which has a unit
—-
built in into the property and it contains both the value and the unit
—-
No way to misinterpret the SPEED of light at the bottom as that number in km/h
wanna do it properly? define ur own library
how difficult can it be? it’s just a value and a unit
lot of work —> many units
meter, time units, electrical resistance , TEMPERATURES?, divide & multiply
Are you a UoM domain expert? so even if you use the SI system every day do you really understand how it works? TBH I didn’t even answer that question to myself. I would be surprised if you know all the peculiarities around SI.
There is a number of strange things, even though it is designed as the rational system as compared to some other systems.
This JSR is a major evolution of the Unit API 1.0 (JSR 363) specification. Focussed on the SI System redefinition, modularity and support for Java SE 8/9 and above.
JSR 363
This JSR specifies Java packages for modelling and working with measurement values, quantities and their corresponding units.
Dimensions: length
Unit: metre
Quantity: 5 metres
prefixes: kilo, milli, etc.
converters: km/h —> m/s or mph
formatting: print out the quantity and parse the quantity of the unit
systems of units: metric, imperial and handle them in a good way
It doesn’t do some kinds of optimisations that one could think it would be nice to have
Let’s start by defining a number of quantities and try to print them out.
Yesterday I travelled 1.6Mm???
1hour = 3.6ks, but “come back in 1ks”???
You need 1 for the angle for example so that you can handle the absence of dimension
Should you have functions to normalize expressions into what could be closer to the base unit
That’s something you could consider, and also for quantities for example that 1 mg per mm-2 is automatically normalized to 1kg m-2
Special paint for small devices
It’s not just about comparing the values and the units
you have to convert to one unit
and do the comparison in one reference unit
We use the 1st unit if we can
If it leads to an overflow, we can fall back to the second unit
Otherwise, if it leads to an overflow in both units, we just throw an overflow error
THAT’S EASY! RIGHT?
There are thermodynamic parameters when you want to add temperatures
All 3 answers are correct depending on the situation.
absolute or relative quantity? We hadn’t modelled this.
So, again, are you a domain expert in ur system? Do you really know the SI system so that you can write a library to handle this stuff?
Why are we using degrees celsius. Undoubtedly, it’s easy (0-100 degrees), but degrees celsius is not such a good unit to measure temperature.
JavaZone example with Time (i.e. day light, saving time, etc., formatting problem with US month – dd - yyyy, countries using F and celsius)
kg/m^2
a thing that matters for the BMI index is to express the units as kilograms and meters and not cm for example.
We’ll see as we go through th exercise that we can handle that in a good way
So you see? this is not difficult to do, so instead of defining an Integer to hold 75 as the mass, that’s not much of simplification compared to this