Java Pub House

So is time to celebrate! We got a new box of toys with the new release of Java! This is also a Long-Term-Support release which means that's usually a "good one" to jump into! Switch Expressions! Helpful Nullpointers, Sealed Classes... there is a TON that's new

And we got the best Doctor in town to walk us through all of them. We're of course talking about Stuart Marks! (AKA Dr. Deprecator). We cover most of the important features from 11 to 17 (there's a ton that was left out, so keep following the links to know more!)


http://www.javapubhouse.com/datadog
We thank DataDogHQ for sponsoring this podcast episode

Don't forget to SUBSCRIBE to our cool NewsCast OffHeap!
http://www.javaoffheap.com/


Language Features

Pattern Matching for instanceof
https://docs.oracle.com/en/java/javase/16/language/pattern-matching-instanceof-operator.html

Switch Expressions
https://docs.oracle.com/en/java/javase/13/language/switch-expressions.html

Sealed Classes
https://docs.oracle.com/en/java/javase/15/language/sealed-classes-and-interfaces.html

Text Blocks
https://docs.oracle.com/en/java/javase/13/text_blocks/index.html

Debugging Features

Helpful NullPointerExceptions
https://www.baeldung.com/java-14-nullpointerexception

Performance Features

New Garbage Collectors (Shenandoah, ZGC)
https://blogs.oracle.com/javamagazine/post/understanding-the-jdks-new-superfast-garbage-collectors

Unix-Domain Socket Channels
https://openjdk.java.net/jeps/380


Deprecation & Platform evolution

Remove the Nashorn JavaScript Engine (Plug Graal!)
https://openjdk.java.net/jeps/372

Deprecate the Security Manager for Removal and Applets
https://openjdk.java.net/jeps/411

Strongly Encapsulate JDK Internals
https://openjdk.java.net/jeps/403

Warnings for Value-Based Classes
https://openjdk.java.net/jeps/390


Do you like the episodes? Want more? Help us out! Buy us a beer!
https://www.javapubhouse.com/beer

And Follow us!
https://www.twitter.com/javapubhouse

 

Direct download: JPHE98.mp3
Category:general -- posted at: 11:41pm CST

So while Java is the "main" language of the JVM, it is by no means the "only" language. And one of the purely functional programming languages is getting a new facelift!

Scala has been going through a revamp on the syntax and the features, and if you ever run into a scala user you know how passionate they are about their language! (hint: they love it!)

So while we might be working in Java projects most of our time, it is a good time to revisit that developer toolbox and learn when and where to use it. And if anything else, having a dip into a fully functional programming language teaches any budding developer how to see things differently!

So maybe Scala is "not" the language you want to program all your new projects, but understanding its strengs, its thinking (and with Scala 3) and its purpose, it makes it for a very sharp tool to have at the ready when you really need to tackle that Data Sciency / Functional Programming problem.

In addition, we bring one of the biggest names in the Scala Community to walk us through it all @DeanWampler (https://twitter.com/deanwampler) has been working with Scala since the early days and has just published his new O'Reilly book Programming Scala (https://deanwampler.github.io/books/programmingscala.html). So what are you waiting for, add a new tool to your toolbox with Scala 3.0!


http://www.javapubhouse.com/datadog
We thank DataDogHQ for sponsoring this podcast episode

Don't forget to SUBSCRIBE to our cool NewsCast OffHeap!
http://www.javaoffheap.com/

Programming Scala (Dean Wampler)
https://deanwampler.github.io/books/programmingscala.html

New In Scala 3
https://docs.scala-lang.org/scala3/new-in-scala3.html

Scala 3 Features
https://docs.scala-lang.org/scala3/book/scala-features.html

A look at inline
https://medium.com/scala-3/scala-3-a-look-at-inline-and-programming-scala-is-now-published-9690ca43c23a

Safer Pattern Matching with Matchable
https://medium.com/scala-3/scala-3-safer-pattern-matching-with-matchable-f0396430ded6

Do you like the episodes? Want more? Help us out! Buy us a beer!
https://www.javapubhouse.com/beer

And Follow us!
https://www.twitter.com/javapubhouse

 

Direct download: JPHE97.mp3
Category:general -- posted at: 9:24pm CST

You'll run it everywhere there's a production system. Some kind of Metrics collector like Statsd or InfluxDB. They work like magic, reporting on the health of your application. but how does it really happen?

We dive in on how these Application Performance Management tools work and how do they really "see into" your application. We demistify all this magic, and actually describe how to add "new" metrics and how to publish it!

If you ever worked in a production application, and were wondering how do these metrics get graphed and collected, well, wonder-no-more! We go deep into Micrometer (the SLF4J of Metrics) and how it all works!

http://www.javaoffheap.com/datadog
We thank DataDogHQ for sponsoring this podcast episode

Don't forget to SUBSCRIBE to our cool NewsCast OffHeap!
http://www.javaoffheap.com/

Micrometer
https://micrometer.io/

Creating Meters
https://micrometer.io/docs/concepts#_meters

Spring Boot and Micrometer
https://spring.io/blog/2018/03/16/micrometer-spring-boot-2-s-new-application-metrics-collector

Statsd
https://github.com/statsd/statsd

Do you like the episodes? Want more? Help us out! Buy us a beer!
https://www.javapubhouse.com/beer

And Follow us!
https://www.twitter.com/javapubhouse

 

Direct download: JPHE96.mp3
Category:general -- posted at: 10:40am CST

So we had a previous episode where we show a party trick with GraalVM, where we saw how to create a Native Image. It was really the "hello world" of Native image creation, so Bob decided that's not good enough!

In this epidose we dive a little deeper on how to actually run your Restful Web service (or other app) natively, going through the exercise of debugging GraalVM builds including adding Maven plugins, finding out how to quelch the different reflection errors and how to deal with resources (and those pesky JNI / so libs).

In all, this is more of actually a practical use of GraalVM, not just a "it can do it", but more, how is it done. So want ludicruos startup speed and performance? then press play and listen!


http://www.javaoffheap.com/datadog
We thank DataDogHQ for sponsoring this podcast episode

Don't forget to SUBSCRIBE to our cool NewsCast OffHeap!
http://www.javaoffheap.com/

GraalVM Native Image Options
https://www.graalvm.org/reference-manual/native-image/Options/

Maven GraalVM Native Image Plugin
https://www.graalvm.org/reference-manual/native-image/NativeImageMavenPlugin/

Apache HttpComponents
http://hc.apache.org/

https://www.graalvm.org/docs/getting-started/linux/

GraalVM Resources
https://www.graalvm.org/reference-manual/native-image/Resources/

Build Configuration
https://www.graalvm.org/reference-manual/native-image/BuildConfiguration/

GraalVM Example Code
https://github.com/bobpaulin/javapubhouse-graal-episode/
https://github.com/bobpaulin/opencv-1/tree/feature/add-native-image

GraalVM Native Image InvalidAlgorithmParameterException
https://github.com/oracle/graal/issues/768

 

Do you like the episodes? Want more? Help us out! Buy us a beer!
https://www.javapubhouse.com/beer

And Follow us!
https://www.twitter.com/javapubhouse

 

 

Direct download: JPHE95.mp3
Category:general -- posted at: 4:49pm CST

1