Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The technology behind "The Best Country for obs...

The technology behind "The Best Country for observing the Northern Lights”

The technology behind "The Best Country for observing the Northern Lights”

Denys Makogon

The principal member of technical stuff
Java Platform Group
Oracle
Date: October 24th, 2020

Denis Makogon

October 24, 2020
Tweet

More Decks by Denis Makogon

Other Decks in Technology

Transcript

  1. Copyright © 2020 Oracle and/or its affiliates. The technology behind

    "The Best Country for observing the Northern Lights” Principal member of technical stuff
 Java Platform Group Oracle
 Date: October 24th 2020 Denys Makogon
  2. Winner Diploma awarded to Denys Makogon Winner of the 5TH

    annual international photography contest 35AWARDS. As a result of the primary vote photo "Pilot whale massacre. Faroe Islands." (nomination "Aerial photography", 3777 uploaded photo) entered the top 100 best photos in the 2019. Total participation has taken 117541 people from 173 countries. A total of 418 thousand photos have been submitted. Certificate № 352019436864 Powered by TCPDF (www.tcpdf.org)
  3. A friend of mine asked me question: Which country is

    the best to visit to witness the Northern Lights?
  4. Within 9 latitude belts of the Polar Circle, find a

    country with the highest number of night hours, between 9PM to 6AM, with the highest magnetic field disturbance (above the threshold) through the polar winter (September to April).
  5. Sequences 8 kP measures per day within “winter season” 9

    weather forecasts reports per day (night hours only, 9PM to 6AM) >18.3K measures per year At least 4 countries 9 or more GPS coordinates
  6. Sequences A monthly statistics is a combination defined by GPS

    location that contains 9 multiplied by (at least) 28 weather forecasts filtered by suitable weather and magnetic field disturbance criteria
  7. Sequences Pipelines Parallelism Country.parallel() GPSLocation.forEachNightHour() .Monthly(September) .getWeatherForecast() .filterBykP() .filterByWeatherCriteria() GPSLocation.forEachNightHour()

    .Monthly(September) .getWeatherForecast() .filterBykP() .filterByWeatherCriteria() GPSLocation.forEachNightHour() .Monthly(September) .getWeatherForecast() .filterBykP() .filterByWeatherCriteria()
  8. Parallel execution Java can run multiple threads a number of

    parallel threads depends on a number of available CPU cores
  9. Effectively splittable data “If it takes longer to partition data

    than to process it.” *credits to Doug Lea “Data structures tend to be efficiently splittable if they internally support random access, efficient search, or both.”
  10. Streams API dictates a code structure collection to a stream

    | a pipeline of processors a collector definition Comfortable API interface
  11. Function<Collection<String>, Stream<?>> f = (Collection<String> c) -> c.stream() .parallel() .filter(s

    -> s.startsWith(“a")); Supplier<Stream<String>> f = () -> Stream.of("d2", "a2", "b1", “b3","c") .filter(s -> s.startsWith(“a"));
  12. Java is great for multi-threaded data processing pipelines of both

    IO and CPU-bound operations. for both dependent and independent data points