[devnexus 2024] moving java forward together

Speaker: Sharat Chander

@sharat_chander

For more, see the 2024 DevNexus Blog Table of Contents


General

  • Began with a survey of how long people have been using Java. A lot of people at 25+ years and a small bunch for all 29 years! (Java turns 30 next year)
  • Tech we have now used to be impossible – ex: phone
  • Sci fi shows what possible
  • Trap : “move fast and break things” At a point, speed causes harm. Remember the user experience
  • If long out window on train, goes by too fast. But if look farher out, can see. Need to look beyond that window
  • People first. Technology second. Remember the users.
  • Avoid “get shit done”. Innovation in of itsel is not innovating. What purpose if not helpfu
  • What power do you have in your environment. One person can do a lot.
  • Need to prepare next generation befoe age out

Quotes

  • “Move thoughtfully and build things” – Sharat’s dad. Meants to be careful and thing before break
  • ”You know less than you know” – Sharat’s dad. Recognize learning opportunities
  • ”Mastery is not the destination; only be the beginning” Sean Phillips

Java DevRel Team at Oracle

  • Stewards of Java
  • Learn, share, contribute
  • Foundational Programs – Oracle academy, Oracle university, Open JDK, Java User Groups, Java Champions
  • 10-20% of audience raised hand as not being part of a JUG (Java User Group)
  • New/Digital program – inside.java, dev.java, youtube.com/java

Awards

  • Called up latest Java Champion
  • Pratik and Atlanta JUG for lifetyime achievement award. 20 years of DevNexus!

[devnexus 2024] survivorship bias

Speaker: Hanno Embregts and Maarteen Mulders

@hannotify and @mthmulders #survivorshipbias

For more, see the 2024 DevNexus Blog Table of Contents


General

  • Many talks about how a tool will solve all your problems
  • X years ago, lots of talks about blockchain. And at one point, it was NoSQL. Now it is generative AI. “Can solve anything with it.”

In Netherlands

  • Vote by flling in circle with red pencil
  • Digital machines not secret because could monitor readiation and determine vote outside.
  • Also source code not open
  • Decided current way was just fine and no changes in 20 years
  • ”Innovation” was a smaller paper ballot

Trying Blockchain – Problems

  • Started a small scale voting POC application (not governnment) for a writers works council [i think that is like a union]
  • Internet flowchargs/decision models said din’t need blockchain for this use case
  • Considerations: writers known and treuted with interests unified. have trusted third party and private transactions. None of these requirements go well with blockchain

Surivorship bias

  • Showed map of where plane got hit in world war 2.
  • However, these planes returned.
  • The critial parts are the ones where the plane did not return
  • Not aware that didn’t see data that would lead you to a different conclusion
  • Most talks are “I tried this and it was glorious; you should try it as well”
  • Just because a speaker solved a problem with a technique, doesn’t mean it will also solve yours. If it was, we’d all be doing he same thing.
  • CDD = conference driven development. Doing whatever speaker did to solve everything Doesn’t work 🙂 Also, over engineers project

Examples of massive failed projects

  • Wikipedia has list: https://en.wikipedia.org/wiki/List_of_failed_and_overbudget_custom_software_projects
  • 15 years of work on a Dutch project built on a tech not fully understood
  • 11 years of work on a British health care system
  • Australlian project not yet cancelled but spent a billion dollars. Massively over time and budget. Biggest cause is XBRL format being too new and not enough experts

How avoid by imagining a fake conference called “Silver Bullet Con”

  • Think about alternatives during/after talk and research before choosing
  • Understand the problem. Also see if earlier talk will help understand an advanced talk
  • Gain some experience first. Write down name of talk and watch after have background to understand and maximize impact
  • Don’t need to avoid silver bullet talks but be careful
  • Make sure you meet prereqs. Don’t attend a talk that proposes a solution to a problem if you dont undersand the problem yet.
  • See where tech is in on the hype cycle ex: peak of inflated expectations). Talk titles often reflect position in hype cycle.
  • Note any drawbacks speaker mentions. Best talks contained detailed comparison of pros and cons. If speaker doesn’t mention, ask in Q&A “did you encounter any drawbacks”. Everyone wants to know
  • Ask speaker in hallway
  • After conference, think about how solve problem without tech speaker presented. Compare to speaker’s solution
  • Tinker/experiment with new approach. Should be able to reproduce both the problem and solution. If not, there might be another factor at play
  • Look online if others have tried. Did they succeed or fail? This is why it is important to blog/tweet/speak about failures and what learned
  • Blogs/videos/ChatGPT wil tell you the happy path. Stack Overflow wil show you the non-happy path
  • Master your tools and keep up to date. But beware of treating that tool like a hammer and imagining all tools are nails

My take

I wasnt sure what to expect, but I enjoyed it. I like the example of blockchain as we all know how it went. (aka that it didn’t solve all our problems). The Silver Bullet Conference idea was fun. The pretend talk titles were great. It would have been nice to gie images for the depenency tree comand to se what does.. I know that was a tagent though. And I use the IDE for thre tree so not put out. They also encouraged questions with stroopwafells

[dev nexus 2024] a glance at the java performance toolbox

Speaker: Ana Maria Mihalceanu

@ammbra1508

For more, see the 2024 DevNexus Blog Table of Contents


What is performance

  • From user POV, how much work can do in a reasonable amount of time
  • From business, what is cost in computational resources needed to provide that user experience

Cloud

  • Practically unlmited resources
  • Reasonable cost

Container images

  • Tools to build container images – docker, jib, kaniko, buidah, etc
  • All started with a Dockerfile
  • Other tools arrived later to make easier

JLink

  • JRE stopped being included in Java 11
  • Can use jlink to include custom JRE with just modules need.
  • Can also omit man pages and header files.
  • Compress zip-9 offers the best compression.

Fine Tuning JVM Flags

  • Ergonomics docs – process for JVM/GC to tune performance measures
  • Tune min/max heap size with -Xms and -Xmx
  • Consider Java heap ratio

jcmd

  • Tracks native memory
  • Want available in container
  • Add jdk.jcmd module to application

Other commands/tools

  • Use jinfo to see what flags used in app
  • Helps when don’t know all flag names
  • Look for amount of memory reserved and amount used
  • Look for big values
  • JConsole – can see graph of memory use
  • jstat – garbage collection statistics
  • jmap – histogram of heap summary
  • Profiling with Java Flight Recorder – use when looking for something, not all the time. Need jdk.jfr module. Can specify how long to record.
  • Prometheus server – monitors/alerts on events
  • JFR Streaming – sends metrics to monitoring service

Sample app for testing at https://github.com/ammbra/performance-glance

My take

Good information and good demo. It was nice seeing the commands actually get used. Clear how to apply.