[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.

[2019-oracle-code-one] Your Project, Brand, and Career

Your Project, Brand, and Career: Bring Attention to Your Project or Blog

Speakers: Yolande Poirier, Kenneth Kousen (@kenkousen), Donald Raab (@TheDonRaab) & Alexa Weber Morales (@WorlWindWriting)

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


General

  • When we blog, we are trying to create long tail content.
  • Ken Kousen gave a shout out to this blog. I’d write more, but it’s be recursive 🙂 [Click here for details]
  • Alexa switched from Twitter to YouTube. Didn’t transition audience.

YouTube

  • Form audience member: YouTube one directional. Twitter overwhelming.
  • Alexa suggested using same material on multiple channels. Ex: Convert youtube content to blog posts.
  • Yolanda runs @java youtube account. Can get transcript. Alexa said kludgy. Yolanda said teh transcript isn’t good because doesn’t understand tech terms. Rev.com sells better transcript for $1/minute
  • YouTube will penalize you if no written content. Be sure to tag.
  • Ken has a podcast which is part of a youtube channel.

Starting

  • What are you working on right now?
  • Blogs are about sharing.
  • Can share as learn and people see progression.
  • Ken’s blog is called “stuff I’ve learned recently”
  • Ken suggested thinking of blog as notes to yourself.
  • Write for self. Don’t assume initial content will get read.
  • Need to advertise first blog to get audience.

Blogging

  • Following increases over time as more people discover it. Important to have new content out there regularly.
  • Don tries to keep blog posts to a 3 minute read
  • Don posts executable code
  • “Whale post” – long post (ex: 2000 words). Some people will go back and update.
  • People like to see their (full) name. Interviewing people will get them to read it.
  • Guest posting
  • Present with someone/co-author with someone – spreads there name recognition
  • Blogs have stats
  • “Dance like nobody is matching; Blog like you are testifying in court” – Ken
  • Don blogs about open source so nobody thinks about his current work.
  • Don’t need focus. The focus is you. People will Google what need and look at your other posts. Ok if they are interested or not.
  • Write articles for InfoQ or DZone and follow up with blogs
  • Combine topics with tags

Where publish – once or everywhere

  • Medium posts can group/collect posts. Ex: Android
  • Ken used WordPress blog hosted there.
  • SEO = don’t repost
  • Don has goal to blog at least monthly. Will sometimes post at 11:59 on last day of month.
  • Ken noted can pay extra for own domain so not obvious hosted on wordpress. Also dev.to, github.io pages
  • Alexa said to make sure to use a CMS so get SEO advantage
  • Can set up to automatically tweet about new blog posts.
  • If write newsletter, make blog post as well
  • Scott noted you can pipe your blog to Amazon. [we do that]
  • Alexa speculated that walled garden approach is going down. Once something viral, it’s everywhere. So harder to wall off content and require pay.

My take

The presenters have a great rapport It was a great session for the final day since it was less “technical”