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

[dev nexus 2024] Table of Contents

This is DevNexus’ 20th anniversary!

Wednesday

Thursday