my first ever time on the big stage at javaone

Every year, JavaOne has a community keynote. Last time, it included a skit for a lot of people in the Java community. This year, it was a number of segments. I was asked to be in one about Java authors. Maurice Naftalin and I each got to answer two short questions about writing/our books. Mine were

  1. Why did you decide to write a book?
  2. How does studying for the certification exam

We were given the questions in advance so we could have a prepared succinct answer. While the answer was content reviewed, we didn’t have to stick to it word for word.

The keynote was on the main stage and quite a production. It was really cool to see the behind the scenes. They even had a make up person to ensure everyone looked good on camera.

I speak twice for about a minute each at the timestamps in each of these videos:

And then at the end everyone who spoke at the community keynote got to go back on stage at the end. This video is that moment timestamped.

migrating from powerpoint to keynote

Chandra Guntur and I co-presented for the first time this year at Oracle Code One. We gave a presentation on Java Versions and Strategy. Presenting with Chandra was great. I particularly liked the opportunity to exchange practices.

I learned:

  • Using XMind for mind mapping – I didn’t really like it. I’m still a paper brainstormer.
  • Using KeyNote for slides – this like

And Chandra got to experience:

  • Using GitHub Projects for tracking tasks
  • Using bigger fonts/less words on a slide/more visuals for information

I’m preparing my first solo public presentation since then and switching to KeyNote. The rest of this blog post is how it went.

Migrating my “template”

Getting my existing slides into Keynote was trivial:

  • File > Open
  • Open the PowerPoint
  • Save as
  • That’s it! Now I have a Keynote file that looks just like all the presentations I’ve ever given.

I also had to edit the slide matter to copy/paste my twitter handle. (The presentation I’m basing this one off of is 3 years old so I needed a more recent deck to get that part.) Still. All this was done in the space of five minutes. This approach didn’t import all the master slides. But recreating those with the background isn’t a big deal for my use cases. I mainly copy existing decks as a base anyway.

[2019 oracle code one] java keynote

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


Quantum Computing – Jessica Pointing

Good analogy to electric bike

  • Fundamentally new type of computer
  • Solves specific type of problems faster
  • Encryption
    • 100 seconds to find multipliers of very large number
    • Shor’s algorithm
    • Can break encryption methods.
    • Need a large quantum computer to do so which hasn’t been built yet
    • Research on post quantum cryptography
  • Simulate atoms and molecules
    • Can simulate interactions and discover new medicines
    • Can design new materials
  • Quantum machine learning
  • Unstructured search – can find match in square root of n tries – grover’s algorithm
  • Superposition – can see multiple states at same time. This means can process multiple states at same time.
  • 10^90 states if have 300 qbits
  • Quantum gates – combine to solve problem
  • At end of quantum algorithm, do measurement to get classical result
  • Upcoming book: Quantum Computing for Java Developers Code examples: https://github.com/johanvos/quantumjava
  • Can build quantum computers with superconductors, trapped ions, photons (light), diamonds. Still TBD which is equivalent of transitiors.
  • Currently 50 physical quantum bits
  • Goal is large scale quantum computer with millions of qbits
  • Currently compare quantum algorithm to best classical supercomputers
  • MATHS – Milestone, Applications, Theory, Hardware, Shift

Java SE

Stability – Gil Tene (Azul) and Bruno Souza

  • Java surfing to the cloud Duke is the Java 13 mascot
  • Need to keep stability with faster cadence
  • JCP was 20 years old last year
  • Need compatibility/stability so companies can compete on their products
  • TCK ensures compatibility

Motivation – Videos

  • Migrating to Java 11 Modules
  • Most widely used libraries now work with Java 9+ plus
  • Plugged Java 13 and licensing/support [If you care about support, you should be on 11 not 13]
  • Keep dependencies up to date so easy to upgrade and should anyway [we should also floss every day]

Compatibility – Three people [missed names but one is Mala Gupta]

  • New Relic will be compatible with Java 13 this month
  • CI/CD pipeline. Run tests against multiple JDKs.
  • Early access builds of 14 already availability
  • Used to take months/years for IDE to support
  • JetBrains has 4 months release cycle. Release new version with all new language features

Subscription – Sabre

  • When down, passengers stranded and some planes can’t fly
  • Support important

New generation

  • Book Emmy in the Key of Code
  • 12 year old girl learns code
  • Novel in verse/poetry
  • [This book looks awesome!]
  • public static void main(String[] args) – “You aren’t going to understand what this means so memorize it like a song”

Java Language Architect – Brian Goetz

  • Rapid release cadence – more features, change in how plan/design/deliver new features
  • Missing the boat by 6 months isn’t as significant. So less time on release management.
  • Less time one feature blocked on another
  • Did quick walkthru of features added in Java 10+
  • Each release has hundreds of smaller enhancements and bug fixes
  • With big releases, motivation to upgrade.
  • Now big features broken up into smaller features and delivered in phases. Need to adjust sense of what constitutes something new
  • Language improvements make us more productive
  • Platform improvements increase performance and other non functional requirements without changing code

Java 13 – Michael Vidstedt

  • Chart showing performance improvements over time for new features
  • AppCDS improves startup (Application Class Data Sharing). VM can refer to information from build time
  • Also investing in GC performance

Projects – Brian Goetz

  • Amber – Right sizing lambda ceremony
    • Switch expressions. IntelliJ offers to refactor switch statement into expression
    • Text blocks/multi line strings. Leading space before columns with “”” on each line considered accidental and not preserved.
    • Domain class – “record” type instead of class. Don’t need to specify equals/hash code/getter/setter. Heard this last year because some features take more than 6 months to develop
  • Valhalla – linking up language with modern hardware
    • “inline” declares that object identity not important so fields can be stored near each other in memory
  • Panama – interacting with native code. expect preview version for accessing off heap memory in next year. Also working on vector API
  • Loom – continuations in JVM and fibers in JDK

My take:

The quantum talk was great. Lots of props and concepts. The imagery of spinning a tourist giant frosted donut reinforced the message really well. I like that Bruno wore is flag/cape. Added some fun. I like that the “commercial” bits were short. The children’s book looks awesome. Excellent start to the conference.

Also, awesome that there were some tables in the back with power for laptops and typing.