Pathways 2019 changes

There have been a number of changes to Toastmasters Pathways in 2019. This is one of the benefits of an electronic program.

Some highlights:

  • The Engaging Humor path is new. I’ve updated the Presentation comparing paths to include it.
  • The “Reflect on your Path” project is no longer part of level 5. It is now a separate “Path Completion” level. This means that level 5 is now one required project and one elective.
  • You can now both view and give speeches in any order. This is great news. It makes the 90 day option to change a path useful as you can browse. (Just don’t mark any projects complete until you are sure you want the path.) Additionally, you can give a “later” speech to work on a skill you need now.

[2019 oracle code one] cloud native

A Cloud-Native Dev is Eating my Cheese! (How to get it back?)

Speakers: Eder Ignatowic & Alex Porcelli

For more blog posts, see The Oracle Code One table of contents


Requirements for Cloud Native

  • Microservices scenarios
  • Java tools and frameworks not optimized for cold starts and low memory consumptions

Problems now

  • We pre-fetch a lot in memory
  • New developers perspective
  • Java developers need a lot of RAM on laptop

History

  • 199x – early adopters – Java cool, big/reliable servers, app servers, app always up, JVM optimized for the long run
  • 200x – majority, cloud computing, commodity hardware. expect failure
  • 201x – late majority

Cloud generations

  • 199x – Virtualization – hypervisor, app servers as best practice (JavaEE). Tomcat/Jetty as outliers
  • 200x – Containers – Microservices, Docker, SpringBoot, go/node as outliners
  • 201x – Orchestration – Microservices maturity, Kubernetes, Go/node skyrocketing, Operator/Service Mesh as outliner.

Advantages of Java

  • Microprofile standard
  • Lots of libraries
  • Tons of developers
  • IDE/Tooling

Quarkus

  • Java EE standards + NodeJS Dev experience (no restart)
  • Size of a Go binary
  • Can use GraalVM

Kogito

  • Build automation tool
  • Based on Drools
  • jBPM

Demo

  • Used VS Code
  • Showed Kognito business rule – uses custom DSL

My take

It was fine, but not what I expected. My brain was full before I walked in so seeing a demo was hard. I’d seen a Quarkus demo recently. It’s still cool. (I left early and missed the end)

[2019 oracle code one] AMA Java

Everything You Ever Wanted to Know About Java and Didn’t Know Whom to Ask 

Speakers: Everyone 🙂

For more blog posts, see The Oracle Code One table of contents


Q&A

  • What is the best way to get a new method/feature into Java?
    • Discuss, open JEP, debate. Search Thread.onSpinWait() for an example
    • Discussion first is important. Starts discussion about problem. The code provided isn’t always the best way to solve it.
    • The thing that ends up happening is not what you started with
  • How to integrate collection PL/SQL in Java?
    • <missed answer>
  • Why is TreeMap implemented as a red black tree?
    • best/only way to do it
    • balanced tree
  • Is Java too slow?
    • Always want faster
    • Not too slow for a language with a statically compiled language
    • Tune for use case
    • Java will work faster on CPU don’t have yet. JIT compilers will optimize for it.
  • Is String interpolation coming?
    • Java 12 “briefly” had raw string literals
    • Recognize sprint interpolation is valuable
    • Need to figure out a way to do cleanly
    • Need to get multi line done. Then escape sequences. Then string interpolation
  • How move past Java 8?
    • Business and technical question
    • First step: will it compile/run
    • Don’t need to rewrite everything with new features
    • Business might not want to spend money on technical problem
    • A handful of people have only Java 11 in prod. Many people have one app/POC in prod. A lot of people only Java 8.
    • Java 9 and 10 is irrelevant. Nobody supports. Binaries not rebuilt with security updates.
    • The technical challenges are libraries that used Unsafe or assumed version strings begin with 1.x.
    • Evangelism message: upgrading to a higher version of Java is just like upgrading to a later version of 8.
    • Counterpoint: People have jars that don’t run on 11.
    • Sometimes features or APIs are removed.
  • How do you look at OSGi?
    • Nobody does anymore
  • Are you happy with the new release cycle?
    • Bruno interviewed Brian Goetz who said he was skeptical at first, but now done four times and smooth.
    • Java 13 came out this week. Brian was at Code One. Not managing process. No longer have months of meetings about release.
  • Deprecate serialization?
    • No plans
    • Many problems.
    • There is a need for something like serialization.
    • Brian wrote up ideas: http://cr.openjdk.java.net/~briangoetz/amber/serialization.html (Not a proposal for replacing serialization)
  • How do we keep up with six month releases?
    • Try when come out.
    • We know when they come out
    • Not a lot will break if do each time
    • Counterpoint: Play on laptop, but don’t use features until LTS comes out. If using 12.0.2 and security issue, you have to run 13 when it is 3 weeks old. Going to prod on feature release is risky.
  • Real tuples in Java?
    • Proposal for records in Java
  • Is it possible to break a nested loop in Java?
    • Yes with labels. [but please don’t].
  • Fixing exception handling on lambdas
    • Aware of issues
    • Not convenient to deal with
    • Ideas, but no current plans
  • Map on how to choose a JDK for a given use case
    • AdoptOpenJDK and Java Champions discussing how to create that map
  • New features we are looking forward to
    • Value types
    • Pattern matching
    • Generic specialization
  • How long will Unsafe be around
    • However long it takes to pull out all the useful features
    • ex: Java 9 var handles
    • Will take years
  • Low level libraries that are useful
    • ASM
    • Byte Buddy
  • Type extraction on return values
    • Return a tuple and set to multiple variables
    • “Let’s compare Java to Kotlin”
    • Could write something like it with pattern matching
  • Why are Strings in Java harder than other languages?
    • Strings have evolved
    • Unsolved problem
    • Changed a lot underneath
    • String concatenation now performed by invoke dynamic

My take

I like how he accepted questions both verbally and via Twitter. The variety of questions was fun. I like that Gil asked the “who is on Java 11” question well. He asked granularly enough to answer honestly and realistically. Stuart did a great job with his Dr Deprecator character when there was discussion about APIs being removed.