podcast with Adam Bien / @AdamBien
episode numbers

#303 Project Valhalla: Value Types, Nullability and Float16

An conversation with Paul Sandoz (@paulsandoz) about:
Project Valhalla's origins and goals, value types vs reference types, heap and stack flattening optimizations, Value objects and data transfer objects, nullability constraints, enums and values, implicit constructability, potential performance gains, challenges in retrofitting value types into Java, implications for numeric types and operator overloading, connections to Vector API and Project Panama, impact on JVM languages like Scala, timeline and development process for Project Valhalla, potential for improving Java's competitiveness in areas like machine learning, challenges in growing the Java language in an extensible way, considerations around backwards compatibility, Paul Sandoz's role in the project and future directions for Java

Paul Sandoz on twitter: @paulsandoz

#302 OpenRewrite: Transforming Java Code at Scale

An conversation with Jonathan Schneider (@jon_k_schneider) about:
OpenRewrite as an open-source tool for code transformation using lossless semantic trees (LSTs), recipes as programs that manipulate the LST, YAML configuration for defining recipes, dry run and in-place code modification options, separation of open-source and commercial aspects of the project, Moderne as a SaaS platform for large-scale code analysis and transformation, visualization features in Moderne including dependency usage violin charts, impact analysis capabilities, organizational structure in Moderne for managing large codebases, integration of OpenRewrite in various IDEs and tools including Amazon Q Code Transformer, IntelliJ IDEA, and Visual Studio Code, the business model of open-source and commercial offerings, the genesis of OpenRewrite from Gradle Lint in 2015-2016, recent momentum in adoption, Jonathan's background with micrometer project, discussion about IDEs including Visual Studio Code and IntelliJ IDEA, potential future topics including Micrometer and Spinnaker

Jonathan Schneider on twitter: @jon_k_schneider

#301 JVector: Cutting-Edge Vector Search in Java

An conversation with Jonathan Ellis (@spyced) about:
discussion of JVector, a Java-based vector search engine, Apache Kudu as an alternative to Cassandra for wide-column databases, FoundationDB - is a NoSQL database, explanation of vectors and embeddings in machine learning, different embedding models and their dimensions, the Hamming distance, binary quantization and product quantization for vector compression, DiskANN algorithm for efficient vector search on disk, optimistic concurrency control in JVector, challenges in implementing academic papers, the Neon database, JVector's performance characteristics and typical database sizes, advantages of astra DB over Cassandra, separation of compute and storage in cloud databases, Vector's use of Panama and SIMD instructions, the potential for contributions to the JVector project, Upstash uses of JVector for their vector search service, the cutting-edge nature of JVector in the Java ecosystem, the logarithmic performance of JVector for index construction and search, typical search latencies in the 30-50 millisecond range, the young and rapidly evolving field of vector search, the self-contained nature of the JVector codebase

Jonathan Ellis on twitter: @spyced

#300 Object-Oriented Programming (OOP) vs. Data-Oriented Programming (DOP) in Java

An conversation with Nicolai Parlog (@nipafx) about:
the advantages and challenges of Object-oriented programming (OOP) vs data-oriented programming (DOP) in Java, using Java record classes, sealed interfaces, and switch expressions to implement business logic outside of data classes, the advantages of polymorphism and transparent persistence in specific use cases, the pitfalls of deep inheritance hierarchies and instance of checks, modeling data with records and sealed interfaces, validating data at the boundaries and ensuring immutability, using switch expressions and pattern matching for type-based logic, the advantages of data-oriented programming for maintainability and safety, applying data-oriented programming to web services and data pipelines, combining enums with records for complex configurations

Nicolai Parlog on twitter: @nipafx

#299 From JSP to Rife and From Kotlin to Java

An conversation with ethauvin (@Erik C. Thauvin) about:
Erik previously on: "#298 The bld Power User", running a high-traffic link blog using JSP and Tomcat, challenges with caching and performance, meeting Geert Bevin through discussions about URL encoding, evaluating and migrating his blog to the Rife framework, appreciating Rife's lean architecture and built-in utilities, the appeal and disappointment of Ruby on Rails, using lightweight Java application servers like Glassfish and Payara, avoiding heavy dependencies and XML configuration, generating XML with xdoclet, the advantages of Rife's templating system and code readability, Erik's journey with Kotlin and reasons for returning to Java, building a Kotlin URL encoding library with multiplatform support, the power of Kotlin's multiplatform capabilities, discussing the BLD build tool and its origins in simplifying build processes, the complexities of modern Java builds with dependencies compared to the simplicity of Java EE, considering Ant as an alternative to Maven, the idea of "Build as Code" and integrating build logic into applications, Erik's experience converting over 60 projects to bld, challenges of introducing new build tools in enterprise environments, Erik's automated blog posting system

ethauvin on twitter: @Erik C. Thauvin

#298 The bld Power User

An conversation with Erik C. Thauvin (@ethauvin) about:
previously Erik on "#287 How Linkblog Happened", from Rife to bld, Gert on "#284 No Dependencies--Or How Rife 2 and Bld Happened", the simplicity and power of bld compared to Gradle and Maven, using Java as the build language without any DSLs or plugins, the advantages of a direct approach to building and running tools, converting projects from Gradle to bld and the resulting simplification, creating extensions for bld to integrate with various tools and libraries, the benefits of using pure Java for build files and the flexibility it provides, the speed of bld and the underlying Java compilers, ideas for future improvements and features in bld, the philosophy behind bld and its focus on simplicity and developer productivity, the potential for using bld as a scripting tool and automation platform, the extension mechanism in bld and how it leverages the builder pattern, the performance gains of using bld over traditional build tools, the aesthetics and user experience of bld, the history of Java compilers and the evolution of Java desktop applications

Erik C. Thauvin on twitter: @ethauvin

#297 Observability-Driven Development with Digma, Serverless and Java

An conversation with Roni Dover (@doppleware) about:
previously Roni on "#252 BDD: Bug Driven Development vs. Continuous Observability", discussion about the Java community and its focus on innovation, Digma and Java, Digma's growth and user feedback, observability as a tool for early issue detection and better code design, the importance of continuous observability and reducing mental effort, Digma's elevator pitch and data science approach, the changing testing pyramid and the benefits of test containers, "#103 Unit Testing Considered Harmful", the cost and value of different types of tests, optimizing lambda costs and performance, linking System Tests to traces from quarkus JVMs, Digma's architecture and deployment options, recent features and improvements in Digma, the impact of observability on productivity and shorter feedback loops, AWS Lambda Power Tuning, the limitations and potential of large language models (LLMs) in generating tests and code, the importance of understanding the client and writing maintainable code, the challenges of complex code generated by LLMs, the potential of feeding runtime data to LLMs for code generation and optimization, the Java community's vibrant and innovative nature

Roni Dover on twitter: @doppleware

#296 Exploring ONNX, Embedding Models, and Retrieval Augmented Generation (RAG) with Langchain4j

An conversation with Dmytro Liubarskyi (@langchain4j) about:
Dmytro previously on "#285 How LangChain4j Happened", discussion about ONNX format and runtime for running neural network models in Java, using langchain4j library for seamless integration and data handling, embedding models for converting text into vector representations, strategies for handling longer text inputs by splitting and averaging embeddings, overview of the retrieval augmented generation (RAG) pipeline and its components, using embeddings for query transformation, routing, and data source selection in RAG, integrating Langchain4j with quarkus and CDI for building AI-powered applications, Langchain4j provides pre-packaged ONNX models as Maven dependencies, embedding models are faster and smaller compared to full language models, possibilities of using embeddings for query expansion, summarization, and data source selection, cross-checking model outputs using embeddings or another language model, decomposing complex AI services into smaller, specialized sub-modules, injecting the right tools and data based on query classification

Dmytro Liubarskyi on twitter: @langchain4j

#295 High-Performance Java, Or How JVector Happened

An conversation with Jonathan Ellis (@spyced) about:
Jonathan's first computer experiences with IBM PC 8086 and Thinkpad laptop with Red Hat Linux, becoming a key contributor to Apache Cassandra and founding datastax, starting DataStax to provide commercial support for Cassandra, early experiences with Java, C++, and python, discussion about the evolution of Java and its ecosystem, the importance of vector databases for semantic search and retrieval augmented generation, the development of JVector for high-performance vector search in Java, the potential of integrating JVector with LangChain for Java / langchain4j and quarkus for serverless deployment, the advantages of Java's productivity and performance for building concurrent data structures, the shift from locally installed software to cloud-based services, the challenges of being a manager and the benefits of taking a sabbatical to focus on creative pursuits, the importance of separating storage and compute in cloud databases, Cassandra's write-optimized architecture and improvements in read performance, DataStax's investment in Apache Pulsar for stream processing, the llama2java project for high-performance language models in Java

Jonathan Ellis on twitter: @spyced

#294 LLM integration with A 100% Pure Java file

An conversation with Alfonso Peterssen (@TheMukel) about:
discussion about Alfonso's early programming experience and participation in the IOI competition, studying computer science and functional programming with Martin Odersky, internships at Google and Oracle Labs working on compilers and the Espresso project implementing a JVM in Java, espresso mentioned in "#208 GraalVM: Meta Circularity on Different Levels", "#194 GraalVM, Apple Silicon (M1) and Clouds", "#167 GraalVM and Java 17, Truffle, Espresso and Native Image" and "#157 The Ingredients of GraalVM", porting LLVM to pure Java in one class, integrating Large Language Models (LLMs) in Java by porting the LLAMA model from C to Java, GPU acceleration with tornadovm, TornadoVM appeared at "#282 TornadoVM, Java, AI, LLMs and Hardware Acceleration", performance of the Java port being within 10% of the C versions, potential huge opportunities for integrating AI and LLMs with enterprise Java systems for use cases like fraud detection, the Java port being a 1,000 line self-contained implementation with no external dependencies, the need for more resources and support to further develop the Java LLM integration, the project

Alfonso Peterssen on twitter: @TheMukel

#293 How Kotlin Happened

An conversation with Anton Arhipov (@antonarhipov) about:
Anton appeared previously on "#273 The Long Road to Java and Kotlin", discussion about Anton Arhipov's artwork using circles and a compass, attending the JVM Language Summit in 2011 where Kotlin was introduced by JetBrains, initial skepticism about the need for a new JVM language, JSR-305 Annotations for Software Defect Detection by William Pugh, Kotlin's null safety features and interoperability with Java, Kotlin's growth and adoption by Android developers, Kotlin's multiplatform capabilities for targeting native, JavaScript, and WebAssembly, Kotlin's potential beyond Android development, Kotlin's core libraries for date/time, serialization, and coroutines, the Kotlin compiler being self-hosted and written in Kotlin, benefits of Kotlin Native for serverless and IoT compared to GraalVM, Kotlin Multiplatform support in the upcoming JetBrains Fleet IDE, designers using similar UI principles across IDEs and applications

Anton Arhipov on twitter: @antonarhipov

#292 How Azul Happened

An conversation with Gil Tene (@giltene) about:
starting with hacking adventure games on a VAX-11/780 as a teenager, building computers and making money in high school, providing access to Usenet, early programming experiences with Pascal and C/C++, moving to Silicon Valley in 1994 and witnessing the rise of Java, working on fault-tolerant computer systems at Stratus Computer, co-founding Azul Systems and developing the Vega appliances to virtualize Java applications, the technical details of how Vega appliances worked by running JVMs on specialized hardware, the evolution of Azul to focus on pure software solutions such as Zing and supporting openJDK, Gil's continued involvement in coding and maintaining open-source libraries

Gil Tene on twitter: @giltene

#291 Pure Java AI

An conversation with Dr. Zoran Sevarac (@zsevarac) about:
Zoran previously on "#169 Deep Learning with Modern Java Code", discussion about the latest updates and features in DeepNetts, a full-stack Java AI platform, University of Minnesota's drug testing application using DeepNetts, Jefferson Lab's particle research using DeepNetts Community Edition, including GPU support for faster inference using jcuda, TensorFlow compatibility, and simplified AI integration with JSR-381, real-world applications of DeepNetts in drug testing and particle research, challenges and considerations for using GPUs in serverless environments, the potential of Apple's M-series chips for machine learning, exploring Project Babylon and Code Reflection in Java, using Panama and jextract for native library bindings, the importance of having developer tools and an IDE for building AI models, plans for integrating large language models into DeepNetts, the advantages of a pure Java solution for AI in enterprise applications, and the bright future of Java in the AI ecosystem, Deep Nets 3.1.0 release with GPU support

Dr. Zoran Sevarac on twitter: @zsevarac

#290 How OpenRewrite Happened

An conversation with Jonathan Schneider (@jon_k_schneider) about:
from Pentium 2 machine and a rural high school to becoming a Java refactoring entrepreneur, self-taught C++ in high school, officer in the U.S. Army and deployed to Iraq and Afghanistan, worked on Java projects at an insurance company between deployments, joined Netflix to work on engineering tools, challenges of migrating Java versions and libraries in a freedom and responsibility culture, started the OpenRewrite project at Netflix for automated refactoring and code migration, founded the micrometer metrics instrumentation project at Pivotal, challenges of introducing automated pull requests in enterprise environments, rebooted OpenRewrite while working with Gradle's Hans Dockter, founded Moderne to commercialize OpenRewrite for large-scale enterprise refactoring, the origin of the Moderne name and its Art Deco roots, OpenRewrite's Maven and Gradle plugins for refactoring and styling using a visitor pattern on an enriched AST, Moderne's enterprise offering for large-scale refactoring and impact analysis, potential integration with large language models and retrieval-augmented generation for code optimization

Jonathan Schneider on twitter: @jon_k_schneider

#289 Underscore, Pattern Matching, Java LTS And When Previews Are Stable

An conversation with Nicolai Parlog (@nipafx) about:
Nicolai previously on "#206 Java 19: Millions of Threads in No Time", discussion about the underscore feature in Java 22 and its importance in pattern matching, using the underscore for unused lambda parameters and deconstruction of records, avoiding default branches when switching over sealed types, the deprecation and removal of underscore as a regular variable name, the foresight of the Java community in making underscore unusable, the simplicity of installing Java compared to other languages, the need for a minimalistic Java build tool for better developer experience, SdkMan, the bld tool as an example of a pure Java build tool, the process of contributing to OpenJDK and the importance of starting with a problem statement, the distinction between Java specifications and implementations, the concept of long-term support (LTS) in Java and its relation to vendors, the importance of using the right terminology to avoid misunderstandings in the Java ecosystem

Nicolai Parlog on twitter: @nipafx

#288 Integrating AI with Java: Quarkus and Langchain4j

An conversation with Dimitris Andreadis (@dandreadis) about:
Dimitris appeared previously on "#64 Quarkus 1.0 and SpringBoot", discussion about integrating AI language models (LLMs) with Java applications using quarkus and langchain4j, OpenShift AI, the benefits of using Quarkus for AI integration, Drools and ML, the potential of using AI for rule engines and decision making, the challenges of handling state and context with LLMs, InfiniSpan and vector databases, the role of vector stores and embeddings for semantic search, the advantages of Java for enterprise applications and maintenance, the potential of using AI models natively with GraalVM, the importance of tools functionality for LLMs to call Java methods, the excitement around AI in the Java community, the future trajectory of tighter integration between Java and AI models, the potential of using AI for code generation and intelligent developer tooling

Dimitris Andreadis on twitter: @dandreadis

#287 How Linkblog Happened

An conversation with Erik C. Thauvin (@ethauvin) about:
early computer experiences with Logo and Tandy Model 3, writing horse race handicapping software as a kid, working at Apple at 16 writing resource editor for Mac, starting consulting firm and building custom software, attending Sun Tech Days to learn about Palm Pilot and Java, writing linkblog with Tomcat and JSP, creating popular linkblog with 8 million monthly views, converting projects to Rife and BLD frameworks, motivations for writing software he needs, Erik's blog:

Erik C. Thauvin on twitter: @ethauvin

#286 A Better JNI: Project Panama

An conversation with Paul Sandoz (@paulsandoz) about:
Paul previously appeared on "#277 Project Babylon", article about Automatic differentiation of Java code using code reflection, using Project Babylon for automatic differentiation, emulating C# LINQ in Java, writing Triton programs in Java for GPU execution, using Project Panama for native interoperability with C/C++ libraries, JExtract tool for generating Java bindings from C headers, memory management with Panama memory segments and arenas, advantages of Panama over JNI, integrating Java with ONNX models, persistent memory and object storage

Paul Sandoz on twitter: @paulsandoz

#285 How LangChain4j Happened

An conversation with Dmytro Liubarskyi (@langchain4j) about:
continuous Windows 95 re-installation on Pentium 2 then Pentium 3, early interest in J2ME development and websites, transition to Java and enterprise software development, motivation behind creating langchain4j, integration with embedding models, vector databases, and ONNX Runtime, langchain4j core abstracts: language models, chat memory, AI services, tools, langchain4j,, Dynamic tools with GraalVM, Enterprise use cases and integration with Java stacks, OpenAI, Anthropic, Cohere, Hugging Face, Bedrock, Olama, Gemini

Dmytro Liubarskyi on twitter: @langchain4j

#284 No Dependencies--Or How Rife 2 and Bld Happened

An conversation with Geert Bevin (@gbevin) about:
Yamaha DX7 - Geerts first synthesizer, Classic Minimoog analog synthesizer by Bob Moog, First synthesizer was a Yamaha DX7 successor, Early music production using Amiga computer and MIDI, iOS and macOS development with focus on audio DSP and synthesis, Returning to Java development after years away, high productivity with Java, New Java release cadence and experimental features, Rife web framework and bidirectional template engine, BLD build tool and philosophy, Kotlin Multiplatform capabilities, SwiftUI DX compared to Java and IntelliJ, Moog Music website, Jean Michel Jarre, Geert personal website, Rife 2 GitHub project, Bld GitHub project, Geeert's website:

Geert Bevin on twitter: @gbevin

#283 From Hexagonal Architectures to Data Oriented Programming

An conversation with Jose Paumard (@JosePaumard) about:
discussion about Object-oriented programming vs data-oriented programming in Java, using Java record classes, hexagonal architectures, considerations for decoupling and abstractions, the advantages of polymorphism and transparent persistence, the pitfalls of inheritance and abstraction, the importance of naming and cohesion sealed interfaces and switch expressions to implement business logic outside of data classes, using sealed types and switch statements, advantages of better separation of concerns and ease of removing unused code, data-oriented programming with NoSQL, the Citroen 2CV (Duck) Car

Jose Paumard on twitter: @JosePaumard

#282 TornadoVM, Java, AI, LLMs and Hardware Acceleration

An conversation with Juan Fumero (@snatverk) about:
Juan previously appeared in the episode "#250 FPGAs, GPUs or Data Science with Java", using Tornado to run Java programs on GPUs/accelerators, integrating AI models with Java applications, potential of using Tornado and Project Babylon together, discussion around tensor types in Java, Paul Sandoz appeared in the episode "#277 Project Babylon", Heterogeneous Accelerator Toolkit by Gary Frost, TornadoVM and LLama port, Hybrid API for Deep Learning acceleration and the new Panama-based types: TornadoVM talk at JVMLS'23, TornadoVM 1.0 Release notes, Alfonso Peterssen ported llama to Java, Initial Java port from the GraalVM team, Java / AI startup:

Juan Fumero on twitter: @snatverk

#281 Java and eBPF

An conversation with Johannes Bechberger (@parttimen3rd) about:
previously Johannes on "#276 A Compiler Nerd Builds a Tiny Profiler", bcc and libbpf, generating Java code from c-library headers: jextract, using Project Panama as JNI alternative, - openJDK from SAP, Hello eBPF: Developing eBPF Apps in Java

Johannes Bechberger on twitter: @parttimen3rd

#280 Virtual Threads and Scoped Values with Jose

An conversation with Jose Paumard (@JosePaumard) about:
Jose previously on "#271 From Image Recognition to CoffeeCast", Joses favourite Java 21 feature: virtual threads, Project Loom, Tomas Langer on "#58 Helidon: Never Block The Thread", the advantages of structured concurrency, scope values: immutability and passing, the challenges of debugging reactive code, replacing thread locals, Scala, concurrency and plain Java features, ThreadLocal vs. Scoped Values (JEP-464), AWS Lambda and virtual threads, running same code in serverless or threaded environments with quarkus

Jose Paumard on twitter: @JosePaumard

#279 Java, Continuations and How Rife Happened

An conversation with Geert Bevin (@gbevin) about:
early days learning to code on a Commodore 64 and writing a painting program, learning Basic, Turbo Pascal, then C++, building custom software for companies in Belgium using Java and owned the IP, Seaside web framework was written in Smalltalk, Rife web framework, Cameron Purdy on "#16 Java, Caching and How the Information Flows", Cedric Beust on "#134 How EJBGen, TestNG and ...Android happened", the lightweight Spark (web framework), Gradle and Apache Maven, Project Loom and Continuations, BLD build tool, Object-oriented programming, Smalltalk, Seaside (software), ASM (Java bytecode manipulation and analysis framework), Rife and continuations, Rife is based on Servlets, Velocity (software), Spark (web framework), jetty (web server),Apache Tomcat, WAR (Sun file format), JSP, Kotlin, Tangosol, TestNG

Geert Bevin on twitter: @gbevin

#278 Java at Azul: The Interesting Features

An conversation with Gerrit Grunwald (@hansolo_) about:
Gerrit appeared previously at "#268 How Han Solo wrote SteelSeries", Java desktop applications are still widely used in large companies and industries for internal tools, as they are easy to build and deploy. Swing and JavaFX are faster and more native than their reputation suggests. On the server side, Java is very efficient for cloud workloads compared to other languages. The Zulu OpenJDK production-ready build of OpenJDK offers added features like security scanning. Azul Zing, Azul Vulnerability Detection, "#126 JavaFX Everywhere ...also in App Stores" with Johan Vos, now called Azul Platform Prime, includes an enhanced Falcon JIT compiler that can speed up performance significantly on some workloads. Prime also supports fast startups via checkpoints with CraC, and faster warmup with ReadyNow pre-compiled optimizations, IBM InstantOn is similar to CraC, Azul Platform Prime was primarily called Zing, Azul Code Inventory helps with code migrations

Gerrit Grunwald on twitter: @hansolo_

#277 Project Babylon

An conversation with Paul Sandoz (@paulsandoz) about:
Project Babylon aims to enable Java integration with GPUs and accelerators through Code Reflection, building on Project Panama, Code Model can be used to optimize machine learning models, generate SQL, Java and GPUs, Project Babylon, Project Sumatra, CUDA, OpenCL, MLIR, Edge Computing, WebAssembly, Project Leyden, project valhalla, Code reflection, SQL optimization, edge functions, WebAssembly, WASM, BLIS presentation, Code Reflection presentation

Paul Sandoz on twitter: @paulsandoz

#276 A Compiler Nerd Builds a Tiny Profiler

An conversation with Johannes Bechberger (@parttimen3rd) about:
c-control, enjoying lejos and NXT, learning HTML, starting at SAP, learning Java in 2010, AMD Windows 98 machine, then a netbook with Intel Atom, fixing segmentation faults, working on real time option parser, building a real Garbage Collector with Lego, the SAP Machine, building a profiler A flame graph is the view of a tree, execution frequency and method performance, Project Panama, Project Loom and Tiny Profiler, writing in Java,

Johannes Bechberger on twitter: @parttimen3rd

#275 A Helidon Conversation

An conversation with David Kral (@VerdentDK) about:
j4c, the developer number 10, the Helidon’s mission statement, programming the reactive way, "#58 Helidon: Never Block The Thread" with Tomas Langer, what does it mean to developer the programming way, episode with Daniel Kec "#217 ACID, Base, XA and Long Running Actions", the relation between and Jersey, Jersey was contributed to Eclipse, the popularity of Helidon SE vs. Helidon MP, the lightweight Helidon SE, open source and quality, the joy of encryption, Helidon and "no dependencies"

David Kral on twitter: @VerdentDK

#274 Work Smart, Take Responsibility and Xmas in Brazil

An conversation with Bruno Souza (@brjavaman) about:
Bruno previously on "#222 Xmas with the Brazilian JavaMan", The Talent Code book, no geniuses, only smart work, episode with Gerrit Grunwald "#268 How Han Solo wrote SteelSeries", making projects successful, xmas meal: rabanada, panettone, working to solve problems, outsourcing vs. AI generated code, continuous feedback loop, an episode with Ed Burns: "#171 Java, Jakarta EE and MicroProfile on Azure", growing beyond senior, Java vs. python, java for task automation, the quarkus Club discord channel, the Java User Group tour, Generative AI, ChatGPT and the future of programming, Developer Career Masterplan book

Bruno Souza on twitter: @brjavaman

#273 The Long Road to Java and Kotlin

An conversation with Anton Arhipov (@antonarhipov) about:
playing sports games on Pentium 233 MHz the 2014 JavaOne Rockstar awards about NetBeans, Eclipse, and IntelliJ., enjoying sports games and destroying joysticks, practicing competitive swimming, swim training, starting to program in Turbo Pascal at Maelardalen University, ship simulation with Java for Vasa Museum, joining a company which maintains RefactorIT, working with Java EE and WebLogic and JRockit, joining ZeroturnAround and working on JRebel, Rebel and LiveRebel, working on a profiler, JetBrain’s MPS, DevRel for TeamCity, AppCode features are appearing in fleet, Fleet is built on common UI principles, the rendering engine Skia, Kotlin and Jetpack Compose, Circles by Anton

Anton Arhipov on twitter: @antonarhipov

#272 Minecraft Influenced JSON-B Design

An conversation with David Kral (@VerdentDK) about:
enjoying Age of Empires 2, starting with Visual Basic, developing games with Java, using NetBeans, developing for MineCraft, Java vs. VisualBasic, "#112 Java SE, MicroProfile and GraalVM: the Helidon's Way" with Dmitry Kornilov, developing plugins for Minecraft, building protection in Minecraft, creating a Stargate for Minecraft, starting at Oracle to develop JSON-B and yasson, JSON-B vs. JSON-P, jsonator, improving JSON-B performance, Yasson in Helidon, J4C was the origin Helidon’s name

David Kral on twitter: @VerdentDK

#271 From Image Recognition to CoffeeCast

An conversation with Jose Paumard (@JosePaumard) about:
TI-57 was stateless Oric 1, BigDecimal use cases, the travelling salesman algorithm, the Cray, working with Sun SPARC machines, CM5 and NeXTcube, the conference in generate code, star recognition, working at research Lab in Paris, enjoying emacs, emacs vs. vim, writing documentation in LatEx working on SunOS then Solaris, HPUX and CDE, 512 MB RAM of the price of a flat in Paris, processing large images and recognising building in real time, wavelet and cosine transforms, starting as professor in 1994 , JDBC war leased in 1997 with Java 1.1., working as devrel at Oracle three years again, running AI models, project Panama is the bridge, Java innovation, pattern matching in Java, String Templates, Java 21 LTS,

Jose Paumard on twitter: @JosePaumard

#270 Not Injectable Principals, Quarkus, MicroProfile and Smallrye

An conversation with Martin Stefanko (@xstefank) about:
starting with 4th generation i7 in 2013, the kernel hacker look, starting with Java 6, starting at RedHat, joining the JBoss EAP team, starting to maintain Health specification, Quarkus in Action book, vs., Glassfish to Quarkus migrations, using Quarkus internal APIs, MicroProfile API compatibility, a composite quarkus-microprofile extension, Quarkus deploys at build time, saving money in the cloud, MicroProfile Metrics vs. micrometer, the burning icon and xstefank, SpringBoot vs. Quarkus startup time

Martin Stefanko on twitter: @xstefank

#269 Why Kotlin is Better Than Java

An conversation with Ingo Kegel (@IngoKegel) about:
Java and nullability, java's java.util.Optional, typesafe HTML templates in Kotlin, statically vs. dynamic typic, what is going to replace Java?, Kotlin Multiplatform makes the difference, Kotlin IR, the Fuchsia operating system, JetBrains Fleet IDE, Nashorn and Java, Kotlin Serialization, Ktor, kotlin support in JProfiler, JProfiler coupon code: 50% off with "java2023"

Ingo Kegel on twitter: @IngoKegel

#268 How Han Solo wrote SteelSeries

An conversation with Gerrit Grunwald (@hansolo_) about:
TI-99/4A, the magical REM in Basic, writing assembly on Sharp Z80, Sun Ray thin client, starting with JDK 1.4 writing portable UI code with Java,, became a EV engineering company, migrating JavaFX properties with bindings to Java, SteelSeries-Canvas - Java FX widgets ported to JavaScript

Gerrit Grunwald on twitter: @hansolo_

#267 Instrumenting, Probing and Asynchronous Profiling

An conversation with Ingo Kegel (@IngoKegel) about:
Ingo previously at: "#265 How JProfiler Happened", JVMTI and JVMPI, Java agents vs. JVMTI profilers with JNI, Project Panama vs. JNI, sampling stacktraces and stop the world, async sampling and instrumentation, asynchronous instrumenting profilers, using jprofiler for JFR event visualisation, JProfiler vs. Java Mission Control, JVMTI and allocation sampling, jvisualvm sampling and instrumentation, counting method calls with instrumentation, filtering method runtime data with probes, exception probe recording, filtering data with thread states, high performance profiling, fast data gathering with project disruptor

Ingo Kegel on twitter: @IngoKegel

#266 Java, Microsoft and Software Development with AI

An conversation with Brian Benz (@bbenz) about:
the autumn conferences: Oracle Cloud World, IBM Tech Exchange, the Oracle operator for WebLogic, Jakarta EE, and MicroProfile on Azure, Oracle Cloud World vs. JavaOne, Java EE, Jakarta EE, and MicroProfile on Azure, WebLogic on Azure, JavaOne and Oracle Cloud World, the beginnings of open source at Microsoft, Microsoft Open Tech, the first JUG meeting in Seattle by Microsoft in 2013, the program manager for Java …and Node, program managers vs. evangelists, GitHub Copilot and GitHub Copilot Chat, the slash commands and Copilot Chat, the effectiveness of AI in software development, Semantic Kernel and data indexing, Ampere CPU and 30% power reduction, the hoover dam and solar power

Brian Benz on twitter: @bbenz

#265 How JProfiler Happened

An conversation with Ingo Kegel (@IngoKegel) about:
Epson HX-20 in 1983, transition to IBM PC, writing games in Basic, fast calculations in C, using Java in ecommerce projects, starting to build jprofiler, JVMPI and JVMTI, jprobe and OptimizeIT,,, jprofiler is written in Swing, podcast about btrace, inter JVM profiling in two windows, async sampling vs. jvmti sampling, Project Loom challenges, a nice looking Swing UIs with flatlaf, how to deal with millions of threads, creating Java installer and launcher, the ugly Napkin LaF, the 2-pizza team

Ingo Kegel on twitter: @IngoKegel

#264 Profilers, Probing, Sampling and Instrumentation

An conversation with Jaroslav Bachorik (@yardus) about:
starlink trouble, sampling profiles are trending, sitraka jprobe, jprofiler, hppc - the high performance collections, JCTools and concurrent queues, millions of messages per second, LMAX Disruptor, bytecode generation with asm, ASM DOM - Domain Object Model, jps, NetBeans and anagram, btrace quick start, byteman is similar to asm, Glassfish with btrace, HdrHistogram the histogram “plotter”, instrumentation of JDK classes

Jaroslav Bachorik on twitter: @yardus

#263 How JAX-RS Happened

An conversation with Paul Sandoz (@paulsandoz) about:
bbc micro, Archimedes was the start of ARM, the Elite game, writing a painting application, graphics protocol emulation, studying cybernetics, remote control of production factories, developing a VR headset, using Silicon Graphics machines, building a 3D engine, working on Sun Microsystems on the CDE environment, switching to XML technology group at Sun Microsystems, Apache Jelly, SOAP was the past of least resistance, the WS-* specifications, Roy Fielding and Representational State Transfer (REST) architecture style, starting to work on JAX-RS, the Convention over Configuration trade-offs, joining CloudBees to work Kohsuke Kawaguchi "#143 How Hudson and Jenkins happened", starting at Oracle’s Java team to work on project Jigsaw and Streams

Paul Sandoz on twitter: @paulsandoz

#262 The IBM Certified Presenter and XML Evangelist

An conversation with Brian Benz (@bbenz) about:
C64, writing an inspirational notes app in Basic, writing software on paper cards for Apple, exploring gas fields in the see with Lotus 123 and dBASE, working on System 38, travelling Europe with train and bicycle, writing replication engine in Clipper-llrp, floppy disc replication, Lotus Notes and CouchDB, Lotus Notes by Iris Associates, The Lotus Notes and Domino 6 Programming Bible book, The XML Programming Bible, writing a XML replication engine, LexisNexis, using Apache Xerces and Apache Xalan, Append-only storage, job interview at Microsoft in XML area, Apache POI, Microsoft Open Tech, using AWS as XML search API, joining the first JavaOne

Brian Benz on twitter: @bbenz

#261 JAX-RS, OAuth, OpenID Connect (OIDC), Authentication, Authorization and Quarkus

An conversation with Sergey Beryozkin (@sberyozkin) about:
RPC vs. REST, Paul Sandoz was driving the JAX-RS specification, the scalability of REST, the Tolerant Reader pattern, HATEOAS, Jersey was the reference implementation of JAX-RS, JAX-RS without servlets, the problems with OAuth 1, OAuth 2 fixed OAuth 1 problems, the session fixation problem, OIDC builds on OAuth 2, in OAuth 2 there are no sessions, Confidential OIDC client, OIDC extension, Elytron Security OAuth 2.0, ID tokens vs. access tokens, Opaque access tokens vs. JWT access tokens, the implicit flow, SmallRye JWT extension vs. OIDC extension, the importance of standards, the value of standards, passkeys the NeXT big thing, verifiable credentiats, JSON web proof, mutual TLS support in Quarkus, automatic certificate renewal

Sergey Beryozkin on twitter: @sberyozkin

#260 How BTrace Happened

An conversation with Jaroslav Bachorik (@yardus) about:
programming a paper computer, Atari 130, building a drum machine for Atari, the Programming Pearls book, building a sound sampler, building a game for Atari, getting Amiga 1200, inspired by Paint Shop Pro, building software in Norway in Visual Basic, the most famous castle in Slovakia - Bojnice Castle, starting a software company, building cluster software in Manchester with Java Applets, using the jahia content server, enjoying Apache Tapestry, joining Sun MIcrosystems NetBeans team, working on the NetBeans profiler, jvisualvm and NetBeans profiler, dtrace and btrace, how btrace started, btrace is used by Alibaba, joining the serviceability JDK team, joining Marcus Hirt at Datadog, building a continuous profiler

Jaroslav Bachorik on twitter: @yardus

#259 How Boundary Control Entity, UML and Components Happened

An conversation with Ivar Jacobson (@ivarjacobson) about:
Apple 2c at, building software with components, writing about science of component based development, devops in 1976, function and logic programming in 1983, imperative, logic and functional programming, leaving Ericsson, the Rational Objectory Process, Objectory stands for Software Factory, objectory and Rational unified process, intelligent agents supported RUP, intelligent agents are copilots, building an intelligent agent in .net, Boundary Control Entity or Entity Control Boundary, the Object Oriented Software Engineering: A Use Case Driven Approach book, Structured Method vs. Essence, the road to agile RUP, Ivar Jacobson on LinkedIn

Ivar Jacobson on twitter: @ivarjacobson

#258 How FlywayDB Happened

An conversation with Axel Fontaine (@axelfontaine) about:
starting with 8086 and 640 kB, starting with GW Basic, enjoying Alley Cat and Monkey Island on Sega Master, switching to QBasic, protecting the lemmings, the cyber cafe Cyberia in London, learning Turbo Pascal, impressed by Java Applets, starting in 1998 at IBM Global Services, using Visual Age for Java, travelling the world, the envy version control for Visual Age for java, attending JavaPolis, qcon, first talk at JUG Augsburg about Continuous Delivery, the Continous Delivery Book, Ruby DSL migrations, “data will outlive the code”, database outlives the code, the travel report website, Flyway - the migration path for birds, using JDBC metadata for schema migrations, promoting FlywayDB, paid features and support contracts, running migrations on application startup, the Java EE simplicity

Axel Fontaine on twitter: @axelfontaine

#257 Why MicroStream is Faster

An conversation with Florian Habermann (@FHHabermann) about:
CPC Schneider / Amstrad, playing with Basic and sound, building an 3d engine in BASIC, from BASIC to Java, the private school: BSZ Wiesau, ObjectStore, Versant, Poet, Object database, moving the IDE to Eclipse, using Vaadin as frontend framework, RapidClipse, Markus Kett on "#36 Java Native Database", "#116 MicroStream: When a Java Application Becomes a DB", the object-relation impedance mismatch, Object-Relational Mapping is the Vietnam of Computer Science, JetStream became microstream, Java Serializer only supports a complete snapshot, MicroStream supports partial serialization, FileMaker - productivity for non-programmers, using sun.mics.Unsafe, id to object mapping with SwissLink, cloud-native storage with S3, DynamoDB and MicroStream, Universally Unique Lexicographically Sortable Identifier: ulid, managing object versions with

Florian Habermann on twitter: @FHHabermann

#256 Virtual Threads, Parallel Streams, Concurrency and Parallelism

An conversation with Heinz Kabutz (@heinzkabutz) about:
the click consonant, the number of parallel stream threads, the resource deadlock, the deadly embrace deadlock, the thread dump of millions threads, pinning vs mounting, Helidon Nima, jetty and quarkus are using parallel threads, virtual threads are mounted to carrier threads, the carrier thread pool, the common ForkJoinPool, concurrency vs parallelism, concurrency with structured concurrency, the size of the common thread pool can be zero, Reactive Java at Netflix, "GC Overhead Limit Exceeded", the remaining use cases for reactive programming, virtual threads for timers, the CompletableFuture

Heinz Kabutz on twitter: @heinzkabutz

#255 A Deeper Dive Into Debugging

An conversation with Shai Almog (@debugagent) about:
method breakpoints on exit and tracepoints, method breakpoints on pattern, tracepoints and logpoints, field watch points, a watchpoints steps on a different location, stop on exception and filtering, suspending threads on a breakpoint, jdb ships with Java, RR the time travelling debugger created by Mozilla, render library by IntelliJ, logging is a major cost factor, using patterns in logs, writing tests for log statements, btrace - the dtrace for java, JaCoCo agent, kubernetes is not for startups, vendor neutral is lost in the clouds, Mozilla rr project, Shai Almog (Debugagent) on Youtube

Shai Almog on twitter: @debugagent

#254 How JavaPolis and Devoxx Happened

An conversation with Stephan Janssen (@Stephan007) about:
C 64 and Basic, studying assembly, the 1001 Crew, commado frontier, Amiga 500 and Pascal, SNA vs. TCP/IP, the Java in a Nutshell book, starting the Belgium Java User Group, starting the JCS consulting company, starting JavaPolis, Adaptive Server Enterprise, integrating SonicMQ in CERN, Java and kinepolis became JavaPolis, JavaPolis, Javoxx then Devoxx, starting Parleys, the innovative Python’s LangChain, langchain for J, the python mojo project, Python dependencies are problematic, Python Conda, agenda planning with ChatGPT, the Devoxx blues, the fake boiling frog, with ChatGPT source code becomes less important, Model Driven Architecture (MDA), 33rd Degree Conference vs. Devoxx

Stephan Janssen on twitter: @Stephan007

#253 Java on Azure and a Nailless Java Champion

An conversation with Antonio Goncalves (@agoncal) about:
Microsoft loves Linux and Java, Brian Benz is a Java Champion, Microsoft Build of OpenJDK, Eclipse Adoptium, Julian Dubois nubesgen, Neal Gafter worked on Java and switched to Microsoft, Azure Container Instances, Azure Container Apps, Azure App Service, Azure VM, Web App for Containers, Azure Bicep, modular Glassfish, Microsoft Build of openJDK, Maven plugins for Azure, Quarkus Azure Extensions, ARM Templates, from javax. to jakartaee. migration, Azure Functions Premium plan, Lambda SnapStart, GraalVM native image, GraalVM tree shaking and closed world assumption, quarkus tree shaking and build time optimizations, "the gralifier", GitHub Copilot, Semantic Kernel for Java, conversation scope and AI

Antonio Goncalves on twitter: @agoncal

#252 BDD: Bug Driven Development vs. Continuous Observability

An conversation with Roni Dover (@doppleware) about:
enjoying Sword of Aragon game, writing text games then graphics games, learning .net then Java, managing complexity, the problem solving skills over programming language, learning Ruby and python, writing J2ME applications, writing purpose driven and simple code, Domain Driven, CQRS and Event Sourcing, the challenges of polyglot programming, BDD Bug Driven Development and continuous feedback, the wrong focus on unit tests, pretty, but not useful dashboards, EMF the Embedded Metric Format, The Director of Enterprise Architecture, there was no google analytics for code, improving your code with observability, the impact of code changes to traces, starting and “Java First”, the airhacks discord server, OpenTelemetry instrumentation, automatic analysis of opentelemetry data, "#49 KISS Java EE, MicroProfile, AI, (Deep) Machine Learning" with Pavel Pscheidl, Digma Beta Program, Continuous Feedback Slack Group, Continuous Feedback In Java

Roni Dover on twitter: @doppleware

#251 From CORBA, over RPC to REST ...and Back?

An conversation with Sergey Beryozkin (@sberyozkin) about:
Mainframe at the university, learning C on paper, switching from C to C++, programming Rexx on COBOL, from C++ to Java, starting at Iona in Ireland, Apache CXF was founded by Iona, CORBA, grpc, SOAP and REST, joining talend and RedHat, working on WildFly Swarm, Wildfly Swarm became Thorntail, Thorntail ideas were reused in quarkus, Quarkus deploys on build time, committing to Apache Tika, Apache Tika extracts metadata from documents, Quarkus Tika extension, becoming the Quarkus Security Coordinator, reactive vs. classic programming with JAX-RS on Quarkus, Tika is often used for Machine Learning, Quarkus Security Overview, using Keycloak as IDP, Quarkus and OIDC

Sergey Beryozkin on twitter: @sberyozkin

#250 FPGAs, GPUs or Data Science with Java

An conversation with Juan Fumero (@snatverk) about:
8088 an IBM clone, joining a cross country running team at school, Zoran previously at "#169 Deep Learning with Modern Java Code", leaning Turbo Pascal, C and C++, working on particle detection at CERN , working on GraalVM to GPU compilation and optimization, using direct memory access to communicate with the GPU, vector types in Java, Apache Flink acceleration on FPGA and GPUs, working on FPGAs, using RTL for FPGA programming, transparent acceleration for Java, astrophysics analytics with Java, DeepNetts on tornadovm, the relation between TornadoVM and GraalVM, using Panama to access native memory GPU-less TornadoVM, contributing to TornadoVM

Juan Fumero on twitter: @snatverk

#249 A Freakonomic Guide to Jakarta EE with a Guardian

An conversation with Reza Rahman (@reza_rahman) about:
Apple II with 16, working with FoxPro, programming in C, fractal based games, Asteroids is a vector based game, writing fractal programs, starting with Java, Sun donated computers to the university, using pico, vi and Visual Cafe, working for Accenture as consultant, joining Caucho to make Resin modular, the Jakarta EE friendly Azure, Azure Container Instances, Azure Container Apps, Azure App Service, Infrastructure as Code with Bicep, infrastructure becomes less interesting, the constant evaluation of technology, Java is the fountain of youth, JavaPolis became Devoxx, Reza Rahman website

Reza Rahman on twitter: @reza_rahman

#248 Break Your Limits and the Java Challengers

An conversation with Rafael del Nero (@RafaDelNero) about:
Celeron 800 Mhz , 64 MB RAM and 10 GB of storage, programming with rpgmaker and Visual Basic, coding a game 3h a day, orkut by google, hacking curiosity, learning Visual Basic, learning Unified Modelling Language, learning PHP, building ERP with StarSoft, using clipper and Fox Pro, starting to learn Java, the SJCP Java book, learning Java EE, building book selling application with JBoss Seam, Star Portal the Sun Microsystems, encapsulating code with Java, enjoying Java Server Faces, accessing EJBs via remote interfaces (RMI), moving from Brasil to Ireland joining the JUG Dublin, starting with Java Challengers, the great Yolande Poirier, 100 days of Java, JavaWorld changed to InfoWorld, the Java Challengers, the Golden Circle, how to break your limits, your limits are your imignation, the Java Challengers

Rafael del Nero on twitter: @RafaDelNero

#247 A Gentle Introduction to Debugging

An conversation with Shai Almog (@debugagent) about:
about the name Codename One, JavaLobby became DZone, JavaBlogs and, joining lightrun and developer’s observability, the theory of debugging, lightrun: breakpoints which don’t break, debugging in production has access to the entire data, lightrun creates snapshots - breakpoints which don’t step, time travelling debugging, chrononsystems: DVR with Java, translate java runtimes to charts with appmap, the logging breakpoints: logpoints and tracepoints, exception breakpoints are hard to use, NetBeans debugger is great, exception breakpoints are useful with filters, field watchpoint is not a watch, renderers in Intellij, toString, performance and circular dependencies, memory debugging and MAT by SAP

Shai Almog on twitter: @debugagent

#246 How Log4j, SLF4j, Jakarta Commons Logging, Logback and Reload4j Happened

An conversation with Ceki Guelcue (@ceki) about:
previously Ceki on "#241 Simplicity is a Good Incentive", Log4j was used inside a 2FA application, Zurich Research Lab Log (ZRL) became Log4j, Log4j was published at IBM developer works, Kent Beck on unit testing, the purpose of unit testing, the hierarchical filtering in Log4j, mapping log levels to exceptions, business logs and system logs, ndc, Logback markers, selling a self-published Log4j book, Log4j and LMAX Disruptor, Log4j 2 is only loosely related to Log4j v1, Jakarta Commons Logging is a logging facade, Log4j 2 is the successor of Logback, Logback is the native implementation of slf4j, SLF4j provides a narrow Logging API, reload4j is a forked and maintained version of Log4j v1, using jelly to program XML

Ceki Guelcue on twitter: @ceki

#245 From OpenShift to Azure App Service

An conversation with James Falkner (@schtool) about:
TRS 80, TI-99/4A, enjoying assembly, starting at Solaris QA department, switching to Java Enterprise System (JES) group, working at liferay, starting at RedHat, becoming a Technical Product Marketing Manager at Red Hat, the ideal Java stack at RedHat, RHEL, ansible, quarkus, Watson X, ChatGPT is like an Autopilot in a car, Event-Driven Ansible, keycloak, prometheus, PostgreSQL, strimzi, Open Cluster Management, securing openshift clusters with StackRox, jenkins vs. ansible, OpenShift Pipelines with tekton, JBoss EAP on Azure, JBoss EAP on Azure App Service, business metrics on Azure, software updates on Azure App Service

James Falkner on twitter: @schtool

#244 The Reset Boy

An conversation with Vinicius Senger (@vsenger) about:
msx computer, delivering pizza to buy computer with 12 years, learning Basic to write games, learning dBASE, arduino and Java, writing dBase software for real estate management, the step clipper functions, harbour project or clipper on linux, learning C, the reset boy, Delphi vs. Visual Basic, NetWare LANtastic, writing Perl for Sun Microsystems, teaching Java, SL-275, SL-285, SL-310, OO-226, SL-425, SL-500, SNMP and traps, Sun Tech Days, the Globalcode company, The Developer’s Conference (TDC), the Sun SPOTs, the network is the computer, Amazon Corretto openJDK, Vinicius on Github: vsenger, Java on AWS

Vinicius Senger on twitter: @vsenger

#243 Understanding and Practising Quarkus

An conversation with Antonio Goncalves (@agoncal) about:
previously Antonio on with "#135 Writing Boring Software: From WebLogic over GlassFish to Quarkus", Understanding quarkus book, JDD JavaEE Session: Future Is Now, But Is Not Evenly Distributed Yet, Practicing Quarkus, The Ten Years After Talk, the Petstore Java EE 7, micronaut and Jakarta EE core Profile, Qute vs JSPs, Jakarta EE and the WAR requirements, joining the developer relations division at Microsoft, cloud migrations and the the 7rs, Java on Azure, OpenAOI on Azure, Glassfish contributions, Micronaut and Helidon, Java and SnapStart with CRaC "#240 Serverless Java (17) on AWS", Azure Bicep, Azure EventHub, switching costs vs. portability, Underwater Datacenter, Antonios books

Antonio Goncalves on twitter: @agoncal

#242 Java FX, Codename One, Swing, Flutter and a Bit Android

An conversation with Shai Almog (@debugagent) about:
Shai previously on episode "#238 The History of Mobile Java and Codename One", flutter, Java FX and Codename One, openjfx, the challenges of marketing, google fuchsia, immediate mode graphics and Swing, JavaFX and Scene Graph Mode, Java FX got the idea from F3, GPU acceleration, apache tvm, the tornadovm project, Codename One generates a xcode project, Flutter ships with runtime

Shai Almog on twitter: @debugagent

#241 Simplicity is a Good Incentive

An conversation with Ceki Guelcue (@ceki) about:
cava the Turkish Java, PC XT 8080, 360 kB floppy disk, using Turbo Pascal, developing a board game in Turbo Pascal, learning MS-DOS, studying physics, using Smaky, EPFL Logitech is based in Lausanne, programming over physics, CDMA algorithm, OSI model, ping pong the simplest possible transport protocol, ping pong protocol is also known as Time-division multiplexing, TCP is a very simple protocol, easy of implementation is an interesting property, SLF4j a simple logging framework, learning C and struggling with pointers, the division algorithm is magical, Mix Network, developing mix-based email system, the beginnings of tor, the tor project, enjoying operator overloading in C++, DSLs might be a waste of time, the LogBack DS, Log4j vs. java.util.logging, anonymity and freedom, using traffic analysis to analyse tor, onion routing and tor, tor’s honeypots, Ceki's paper: Mixing Email with Babel, Ceki's company:

Ceki Guelcue on twitter: @ceki

#240 Serverless Java (17) on AWS

An conversation with Maximilian Schellhorn (@maschnetwork) about:
playing Halo with Fujitsu Siemens Scaleo, amazing graphics with crytec and crysis, learning HTML and the great marquee tag, semi-professional Call of Duty 4 gaming, learning Delphi and GUI programming, button oriented programming in Delphi, building ski school software in Delphi, from Delphi to Java and Spring, learning patterns with Java, starting at, from Zalando to AWS, starting at AWS as Solution Architect, deploying quarkus as AWS Lambda, full stack Infrastructure as Code with Java, creating Java content on AWS, SAM, CloudFormation and CDK, CDK with SAM CLI, declarative development with SAM, state management and IaC, AWS Serverless Java Container, Lambda SnapStart optimises the startup time, SnapStart snapshots, using CRaC hooks for SnapShot, caching with ShapStart vs. PostConstruct, from Kotlin to Java 17, data classes in Kotlin vs. Java Records, sealed classes as error handlers, serverless on-premise and in the clouds, using S3 and DynamoDB, DynamoDB and IaM security, lift-and-shift, lambda SQS integration, Java on AWS Lambda Workshop, Caching Data in the Snapshot, announcement: AWS Lambda adds support for Java 17

Maximilian Schellhorn on twitter: @maschnetwork

#239 Low-Code, No-Code with Java

An conversation with Richard Fichtner (@richardfichtner) about:
the conference, the cinedom and thunderdome, Digital Crafts Day, 80485 Intel with ISDN router, starting with Turbo Pascal, the ISDN extension card, prehistoric and Prince of Persia, Wing Commander, starting with SUSE Linux, ISDN router and asterisks, lilo the Linux loader, geocities and myspace, Internet Cafes and resetting the computers, Netscape Composer and Netscape Navigator, Netscape Mail, teaching HTML at school, xpage is a WYSIWYG, Florian Habermann the god of programming, xdev the low code / nocode environment, xdev is Java 21 compatible, xapi the framework, moving from Swing to Vaadin, the extended persistence context and EntityManager, PersistenceContextType.EXTENDED and interactive applications, Vaadin flow and WebComponents, GWT and Vaadin, xdev the Vaadin IDE, xdev a no-code IDE, SqlEngine a custom DSL for SQL with xdev, RapidClipse and Eclipse, Eclipse performance significantly improved in recent releases

Richard Fichtner on twitter: @richardfichtner

#238 The History of Mobile Java and Codename One

An conversation with Shai Almog (@debugagent) about:
the debugagent website, from Oracle to Sun, DoCoMo invented mobile web in 2003, DoCoMo Java, J2ME had a pre-verifier, DoCoMo Java, i-mode mobile phones , Java Application Descriptor (JAD), Lightweight User Interface Toolkit, Sprint Wireless Tookit, Java FX Script, Chris Oliver and “Form Follows Function” or F3, LWUIT on iOS, Swing mixins, starting Codename One, Codename One is like flutter, but in Java, Codename is written in Java and open source, Developing Java Apps for iOS--Codenameone, An Interview with Chen Fishbein, episode with Alejandro Pablo Revilla "#207 Mission Critical Transactions"

Shai Almog on twitter: @debugagent

#237 Hooked on Java

An conversation with Logan Kulinski (@lbkulinski) about:
2009 Dell Inspiron with Pentium Inside, enjoying wrestling games, programming arduino, 15 degrees Fahrenheit in Chicago, learning HTML with DreamWeaver, enjoying C++ and cin and cout, starting with Java 8, hooked with Brian Goetz Java video, enjoying Java Lambda expressions, method does not exist Ruby, starting with Java on smart charging software, Lamba, ECS, Fargate, Aurora MySQL and Java, enjoying, Chicago Java User Group, type checks at build time with Micronaut, saving money with Java, Helidon and Micronaut, Helidon Nima and Project Loom, interesting Text Blocks and records, pattern matching with records, deconstructing records, pattern matching in switch, useful switch expression in Java 17, Visual Studio Code vs. JetBrains Fleet, structured concurrency and Loom, reactive programming with reactive use cases, Loom will scale your servers, reactive programming scales your services

Logan Kulinski on twitter: @lbkulinski

#236 Pommes, PaaS and Java on AWS

An conversation with Sascha Moellering (@sascha242) about:
Schneider CPC, starting programming with C-16, enjoying Finger’s Malone, upgrade to C-128, playing Turrican, Manfred Trenz created Turrican and R-Type, publishing a Pommes Game, programming on Amiga 1200, math in game development, implementing a painting application, walking through C pointer and reference hell, from C to Java 1.0 on a Mac 6500 with 200MHz, using Metrowerks JVM, using CodeWarrior, CodeWarrior vs. stormc, Java is a clean language, working on SpiritLink, using Caucho Resin, starting at Accenture, from Accenture to Softlab, building a PaaS solution with JBoss for Allianz, managing hundreds of JVMs with a pizza team, implementing a low latency marketing solution with Vert.x, starting at Zanox, an episode with Arjan Tijms "#184 Piranha: Headless Applets Loaded with Maven", starting at AWS as Account Solution Architect, using quarkus on lambda as a microservice, using POJO asynchronous lambdas, EJB programming restrictions and Lambdas, airhacks discord server, Optimize your Spring Boot application for AWS Fargate, Reactive Microservices Architecture on AWS, Field Notes: Optimize your Java application for Amazon ECS with Quarkus, Field Notes: Optimize your Java application for AWS Lambda with Quarkus, How to deploy your Quarkus application to Amazon EKS, Using GraalVM to Build Minimal Docker Images for Java Applications

Sascha Moellering on twitter: @sascha242

#235 Debugging on Fire

An conversation with Shai Almog (@debugagent) about:
Sinclair spectrum and VIC 20, moving to Apple 2, programming the first game, learning assembly and Turbo Pascal, first programming job with 17, using OS/2 for fun, working for Paradox, enjoying BeOS, apple wanted to buy BeOS before it bought NeXT, working for AI company, working on heuristic scheduling, writing articles for IDM about Java 1.1, the attraction to CORBA, OS2 and DSOM, MarshalledObject in Java, the great SGI machines, pretending to be a fighter pilot, developing in a burning building, USAF Video Game, starting a Java consulting company in 1999, building a Palm Pilot application for waiters, Sun’s Spotless VM comes with support for Solaris and Windows, porting Spotless VM to Linux, working for Sun Israel Development Center

Shai Almog on twitter: @debugagent

#234 How JPA Buddy Happened

An conversation with Aleksey Stukalov (@AlekseyStukalov) about:
the deepest hole-11km, starting with Pascal, math - and there is nothing to argue about, integral and differential equations, writing an article about magnetic impulses, 1c - consulting company, implementing accounting software, learning C#, Silverlight and LINQ, from C# to Java, starting CUBA and jmix, cuba and jmix are like MS Access for Java, building a banking system for Paraguay, 25k developers is using CUBA, starting JPA Buddy, selling on IntelliJ marketplace, JPA Buddy - the Vlad automation tool, "#117 Java Persistence: From DB over JDBC to Transactions" episode with Vlad Mihalcea, JPA buddy is a IntelliJ plugin, the Jetbrains MPS (Meta Programming System), Intellij is an interesting distribution channel, DTO generation, mapping entities to DTOs, implementing projections with JPA, JSON-P with Java Records

Aleksey Stukalov on twitter: @AlekseyStukalov

#233 How Apache Roller Happened

An conversation with Dave Johnson (@snoopdave) about:
PDP-8 with a paper tape reader, questions and answers, TRS-80, playing asteroids, asteroids, Defender and Battlezone were based on vector graphics, learning Pascal and C, Data General Eclipse MV/8000, Geographic Resources Analysis Support System (GRASS GIS), working for University of Kingston, working on jfactory for Rouge Wave, HAHT Software, The Soul of a New Machine, distributed Visual Basic application server, using xdoclet to generate EJB, using castor for persistence, Apache Roller started as sample application, Sun hires dave, working on Lotus Notes social, starting at wayin, Roller supports Pingback, Lotus is using roller, using Rightscale to deploy Java software to AWS, using Jenkins and CloudFormation, episode with Scott McNealy "#19 SUN, JavaSoft, Java, Oracle", Roller uses Apache Velocity, working on RSS parser Rome, switching from MongoDB to Apache Cassandra, UserGrid data store, Oracle acquires apiary , starting at CloudBees, episode with Kohsuke Kawaguchi "#143 How Hudson and Jenkins happened", starting at Apollo, several thousand blogs on roller

Dave Johnson on twitter: @snoopdave

#232 Kubernetes Was Never Supposed To Leak

An conversation with Kelsey Hightower (@kelseyhightower) about:
HP laptop and playing Age of Empires, programming calculators with TI-BASIC, playing Mario on NES, enjoying the Metroid on NES, working at Google datacenter as contractor, bash is a programming language, working for a financial institution, modernising COBOL with Java, rewriting Cobol to python, learning Java and using JBoss, contributing to Python to make it better, venv (virtualenv) and pypy, using Puppet for configuration management, python vs. Ruby, overengineering with Java, Java is lean now, creeating the confd project, envsubst and Java, Cost Driven Architectures in the clouds, replacing Java with GO, starting at CoreOS, etcd as coordinator, implementation of RAFT, RAFT and cluster membership, contributing to Packr and Terraform, docker is written in GO, RAFT is understandable Paxos, RAFT did not consider bootstrapping, Apache zookeeper is used for coordination, Apache BookKeeper, CoreOS fleet, rkt vs. docker, salt configuration maangement, kubernetes pod, the status field in kubernetes, Google Service Weaver, Google App Engine, checkout episode: "#153 Java, Serverless, Google App Engine, gVisor, Kubernetes", writing modular code is important, monoliths and microservices, rust is leaking details, Kubernetes The Hard Way the step by step guide, Kubernetes Autopilot

Kelsey Hightower on twitter: @kelseyhightower

#231 Thinking About Decentralized Web

An conversation with Andrew Lee Rubinger (@alrubinger) about:
Previously Andrew on "#96 Long Coding Nights, ShrinkWrap, Arquillian and Testing", working on, square block tbd, CDI and guice, Seam and Guice and CDI, Gavin King and Seam Framework, the arquillian Testframework, Self-sovereign identity, web 5 provides the primitives for Decentralized Identifiers, Self-sovereign_identity (SSI), Decentralized Web Nodes, the inversion of control, solid "social linked data",, TBD sdk, the hello world of Web5, decentralized messages have to be idempotent, JXTA p2p with Java, Paper Airplane, Jini and JavaSpaces

Andrew Lee Rubinger on twitter: @alrubinger

#230 A Human-Centric, OpenSource Workflow Engine on Jakarta EE

An conversation with Ralph Soika (@rsoika) about:
Starting programming with Atari 600XL The thick book: My Atari XL Computer - Learning Basic, programming print hello, GOTO 10, publishing and developing a Moon Lander game in a magazine, developing logistics software, starting a company to develop Lotus Domino solutions, starting with Delphi, then transitioning to Java, starting with Java 1.0, implementing a Java backend for Lotus Domino, writing Java agents for Lotus Domino server CouchDB is based on Lotus Notes, the Groove peer to peer software, programming Java applets and Swing applications, implementing workflow modeller with Eclipse, founding the imixs company, building to build a workflow engine on J2EE, removing code with every release of Java EE, the 106th and is Java EE dead?, building a human-centric workflow engine, ACL on documents for confidential data processing, learning from Louts Notes, Java Persistence API and PostgreSQL, fast queries with Blobs, Apache Lucene and PostgreSQL, kubernetes in the cloud and on premise, AWS ECS Fargate, AWS App Runner, Azure Container Instances, Azure App Service, managed alternatives in the clouds

Ralph Soika on twitter: @rsoika

#229 Highly Structured Lifehacks with Heinz

An conversation with Heinz Kabutz (@heinzkabutz) about:
Heinz previously on "#215 Karatsuba, Megamorphic Call-sites, Deadlocks and a bit of Loom", a contribution to jdk, 2022 in review, Nicolai Parlog on "#206 Java 19: Millions of Threads in No Time", newsletter: Contributing BigInteger.parallelMultiply() to OpenJDK, The Java Module System book by Nicolai Parlog, JEP 192: String Deduplication in G1, String.intern, G1 and deduplication, JDK Mission Control, xdoclet for Java EE deployment, destroying G1 with a LinkedList and millions entries, Java Records as data transporters, interfaces as factories, Teardown of ArrayBlockingQueue, WeakReferences and ArrayBlockingQueue, ExecutorService in Java 19 is AutoCloseable, Java iterators and memory leaks, Weak references in Swing, Real World Visitor with Pattern Matching for instanceof in AWS CDK, JSR 356 - Java API for WebSocket Eclipse Tyrus, JEP 238: Multi-Release JAR Files, Create a Custom, Right-Sized JVM with jlink, streaming events with JEP 328: Flight Recorder, var for everything, the new Project Coin and private interface methods, System.out.printf is working, jshell for javadoc, JVM logging, System.logger and java.util.logging, System.Logger--the minimalistic logging interface in Java 9, Serialization Filtering, What Do WebLogic, WebSphere, JBoss, Jenkins, OpenNMS, and Your Application Have in Common? This Vulnerability

Heinz Kabutz on twitter: @heinzkabutz

#228 Star Trek, Star Wars, Transactions, SQL, NoSQL and almost Streaming

An conversation with Mary Grygleski (@mgrygles) about:
808X as first computer, Hong Kong was high tech, enjoying space missions, Star Trek and Star Wars, the intriguing registration terminal, writing code in Pascal, 3 GL programming languages and SQL, set theory and SQL, the seven layers of OSI, OSI model, IBM MVS, AS 400 is the opposite of micro services, developers get bored too early, learning X-Windows, working with early Oracle databases, using dBASE, clipper and FoxPro, transarc, stratos tx, Transarc the transaction file system, Transaction Processing: Concepts and Techniques, working on SMTP / MTA, CouchDB and Lotus Notes, the Sun Ultra 30 workstation, starting at Sybase, EA server Sybase / Jaguar, using emacs for Java development, then netbeans, Java EE and the hierarchical class loaders, working on EJB 3 specs, mobile apps with Apache Cordova, reactive systems at IBM, using akka, Eclipse Vertex and MicroProfile, working for datastax and Pulsar, Datastax provides support for Apache Cassandra and Apache Pulsar, separating the compute from the storage, astra the managed cloud platform

Mary Grygleski on twitter: @mgrygles

#227 From Amiga, Java ME, JavaFX, over Clouds to Decentralized Package Network

An conversation with Karol Harezlak (@karolh2000) about:
C 64 with Datasette, enjoy gaming, The Last Ninja, the demo scene, adding demo to the game, the dark horse federation, Amiga 500, Amiga AMOS, stealing assets from games, learning assembler with 10 years, AMOS and STOS, building lottery simulation, Borland JBuilder and Delphi, working for JDeveloper, starting with internet in 1992, building a game chat, starting with Snowbaording and Skateboarding, using Apache Struts and JSPs, joining the NetBeans team at Sun MIcrosystems, working on Java ME, the episode with John Ceccarelli:"#216 Low Code, No Code, WYSIWYG …and some CRaC", lan parties in a cottage, JavaOne 2010, JDD conference in Krakow, Silesia Java User Group in Katowice, JUG Tricity, Microservices and The History Repeats, replacing JDeveloper engine with NetBeans, SQL Developer is based on NetBeans, working on windows manager for JDeveloper, implementing Oracle Developer Cloud, working on Pyrsia for JFrog, a distributed binary system, the hard System.out.println with Rust, Rust: one line of code can generate 50 warnings

Karol Harezlak on github: @karolh2000

#226 Supercharging the GraalVM

An conversation with Аlina Yurenko (@alina_yurenko) about:
2012 MacBook Air, enjoying a Symbian mobile phone, GCP meetups, from firebase to C++, starting as Developer Advocate for GraalVM, GraalVM JIT, GraalVM native, GraalVM Polyglot, doom on GraalVM, JavaScript and python are interpreted at GraalVM, the closed world assumption - the dependencies have to be known at compile time, GraalVM tracing agent provides dependency configuration, GraalVM Reachability Metadata Repository, GraalVM Visual Studio Code extensions, GraalVM and LLVM runtime, GraalVM isolate, the GraalVM native image performance, Github Actions for GraalVM, Alibaba uses Native Image in production, Disney Streaming uses GraalVM to reduce cold starts, article: Disney Streaming using GraalVM on AWS Lambda, Adyen uses GraalVM as safe execution environment for native code, article: GraalVM: running C/C++ application safely in the Java world, Supercharge your Native Image applications in 5 steps

Аlina Yurenko on twitter: @alina_yurenko

#225 Obsessed With Performance

An conversation with Jakob Jenkov (@jjenkov) about:
the great Commodore 128, The Last Ninja game, starting to program Basic, Commodore Amiga 500, starting with Borland Pascal on a PC, optimising code with assembly and C, starting in IT University in Copenhagen, switching to Java, the catch up with Java, Java from the Source Sun books, performance tuning, one application per server, using the Silverstream application server, SIlverStream was acquired by Novell, WebObjects from Apple, building a logistics system for UPS with Java, what is a solution architect?, architect vs. designer, Jakob Jenkov tutorial page:, the LMAX disruptor, Martin Thompson performance work the EJB lambda talk: Hey Enterprise EJB Developers Now Is The Time To Go Serverless, AWS Lambda for enterprise applications, cloud complexity and portability, Infrastructure as Code with Java, using Java CDK for provisioning, quarkus and Micronaut cloud optimizations

Jakob Jenkov on twitter: @jjenkov

#224 What does it mean to be a professional programmer?

An conversation with Ken Fogel (@omniprof) about:
previously Ken on "#205 Mr. Omni", JavaOne in Las Vegas, What does it mean to be a professional programmer, the engineering principles, building a Las Vegas Conference Management System, the Use Case UML diagram, how to capture requirements, the developer and the client have to have a good idea about the system, the “Transitioning to Java” book, "#103 Unit Testing Considered Harmful", System Tests over Unit Tests, misusing system tests to identify dead code, Unit Test coverage is the false indicator of quality, cypress over selenium, programmer vs. developer, Christopher Alexander and software patterns, GRASP patterns or how to build a maintainable system, write simple code, KISS and YAGNI

Ken Fogel on twitter: @omniprof

#223 How Grizzly and Atmosphere Happened

An conversation with Jeanfrancois Arcand (@jfarcand) about:
TRS 80 from radioshack with 12, starting with turtles and Logo, training artificial networks with differential equations, a force feedback mouse with AI inside, starting with the first Java version, implementing AI with Java, starting at the EJB team at Sun Microsystems, working on Tomcat at Sun, working on J2EE RI - the foundation of Glassfish, GlassFish v1 shipped with grizzly, grizzly vs. atmosphere, working on JSR-356 - WebSockets, creating a betting game for ice hockey and football, creating the yulplay company, handling 25k transactions per JVM, using Apache Kafka for communication, running on 5-10 EC 2 instances and NLB, working on Environmental, social, and corporate governance (ESG), AI and model explainability challenges, starting at metrio, metrio was bought by Nasdaq

Jeanfrancois Arcand on twitter: @jfarcand

#221 What is

An conversation with Geertjan Wielenga (@GeertjanW) about:
Geertjan previously on at: "#212 From a NetBeans Champion to a Friend of the openJDK", what is, Friends of OpenJDK, foojay Disco API, Bert on on: "#123 Plasma is the new "Hello,World"", Azul Hardware announcement, blogpost: New Hardware For Serverside Java, Azul Systems Vega 3: 54 Cups of Coffee,

Geertjan Wielenga on twitter: @GeertjanW

#220 To MicroProfile, Or Not To MicroProfile?

An conversation with Romain Manni-Bucau (@rmannibucau) about:
Romain appeared first at "#79 Back to Shared Deployments", kubernetes and portability, minio, nginx kubernetes k0s, MicroProfile SmallRye, self-constraining for productivity, JSON-RPC over GraphQL, yupiik uship - a Jakarta EE subset, "Making the Intentions Explicit with JAX-RPC over JAX-RS", JSON-RPC over GraphQL, Apache OpenWebBeans, Apache Tomcat, JSON-B, Apache Johnzon JSON-B supports Java Records,

Romain Manni-Bucau on twitter: @rmannibucau

#219 Java, CraC and Reducing Cold Start Duration with AWS Lambda SnapStart

An conversation with Mark Sailes (@MarkSailes3) about:
CRaC API, C1 and C2 compilers, GraalVM and Random, CRaC and Stateful EJB beans, Lambda SnapStart and snapshotting the Firecracker VM, the CraC resource interface and listener methods, priming the critical path, Quarkus with MicroProfile AWS on Lambda CDK template, Plain Java AWS Lambda with CDK template, SDKs calls in the beforeCheckpoint hook, SnapStart state never leaves the region, SnapStart state is cached in caches within Availability Zones, SnapStart is available within VPCs, only versioned AWS Lambdas can be optimized, Provisioned Concurrency and SnapStart, The Other Feature of AWS Lambda Provisioned Concurrency — Saving Money, A serverless journey: AWS Lambda under the hood provisioned concurrency and EC 2 reserved instances, AWS Lambda function starts at bare metal,

Mark Sailes on twitter: @MarkSailes3

#218 How OmniFish Happened

An conversation with David Matejcek (@dmatej) about:
pmd 85 the slovak computer by Tesla. optimizing games, starting with Java 1.2, working with Apache Turbine, joining ICZ Group in Prague, from Sun One to Glassfish, working with Payara and Payara Micro, a call from Ondro, Ondrej Mihalyi appeared on "#160 Modules Are Needed, But Not Easy", Arjan Tijms appeared on "#184 Piranha: Headless Applets Loaded with Maven" , no leader, just p2p, working on payara cloud, logging is an art, improved logging in Glassfish 7, OmniFish is the main contributor to Glassfish, Glassfish Admin Console and Woodstock JSF,

David Matejcek on twitter: @dmatej

#217 ACID, Base, XA and Long Running Actions

An conversation with Daniel Kec (@danielkec) about:
Daniel Kec on "#214 It is Cool to Block Again", OASIS WS-LRA, LRA, ACID vs. BASE, Inconsistency Window, Eventual Consistency, LRA Annotation, Mark Little on "#40 Transactions, J2EE, Java EE, Jakarta EE, MicroProfile and Quarkus", Helidon LRA module, MicroProfile Fault Tolerance, Experimental Helidon LRA Coordinator, OCI ObjectStorage, Eventuate

Daniel Kec on twitter: @danielkec

#216 Low Code, No Code, WYSIWYG …and some CRaC

An conversation with John Ceccarelli (@jceccarelli1) about:
Macintosh 512K, writing short stories and playing Dark Castle, studying European politics, enjoying Brno and Prague, learning Czech from a communist book, technical writing for Sun Microsystems, working on NetBeans Matisse, WYSIWYG precision is challenging, NetBeans Visual Web Pack was extremely popular, Sun’s JSF woodstock, separation of generated and implemented code is challenging, explaining AWS Lambdas with EJBs, visual representation of complex code is challenging, NetBeans vs. IntelliJ strategies, Installing Java Support in Visual Studio Code, working on JVM internals at Azul Systems, Azul JVMs Zulu vs. Prime, the Falcon JIT, optimising JVM for Apache Cassandra, the Renaissance Suite, memento and openJDK CRaC, Azul’s CRAC optimization, crowdourcing the optimizations, quarkus on Azul’s CRaC, Azul Prime is based on LLVM, Foojay and azul

John Ceccarelli on twitter: @jceccarelli1

#215 Karatsuba, Megamorphic Call-sites, Deadlocks and a bit of Loom

An conversation with Heinz Kabutz (@heinzkabutz) about:
Heinz previously appeared on the episode: "#183 The JavaSpecialist(s)", The Newsletter #1: “Deadlocks in Java”, SwingUtilities invokeLater, deadlocks and thread dumps, ThreadMXBean find locked threads, ForkJoin vs. parallelStream, ForkJoinPool, Java ReentrantLock and timeouts, HashTable vs. ConcurrentHashMap, Parallelism vs. Concurrency, Project Loom, Polymorphism Performance Mysteries, the Karatsuba Algorithm, List.of is not List.of

Heinz Kabutz on twitter: @heinzkabutz

#214 It is Cool to Block Again

An conversation with Daniel Kec (@danielkec) about:
Daniel previously on in "#120 Reactive Programming, Helidon, Kafka and Project Loom", helidon project “warp” becomes Helidon Nima, Project Loom on Jersey, obstructing virtual threads, yielding a virtual thread, throttling the concurrency, the future of reactive programming, the Helidon book, websocketstream spec, Streams API, Event Sourcing with Oracle database and helidon, helidon on AWS Lambda, AWS serverless container, OCI JDBC vs. OCI Cloud, JEP 290: Filter Incoming Serialization Data, LRA implementation by Helidon, Long Running Actions with Helidon, Goran Opacic on LRA in "#210 The Cloud is Slower Than Your Local Machine", LRA is about compensation, Transaction Manager for Microservices, FN Java, Helidon modular routing, Helidon is using Jersey,

Daniel Kec on twitter: @danielkec

#213 Captain Primak Meets Clustered Singletons

An conversation with Lenny Primak (@lprimak) about:
previous appearance of lenny on airhacks: "#137 (fake) reactive programming, project loom, chunked IO", the show, captains and first officers, Payara’s Clustered Singleton EJB singletons and clusters, JBoss HA-Singleton, Paxos algorithm, JSR-223, Hazelcast partitioning, hazelcast metrics, hazelcast’s DataSerializable, Apache Shiro commitment, Benjamin Marwell as guest on "#181 Java Authentication and Authorization with Apache Shiro", Apache Tapestry ships with own dependency injection framework, Securing Web Applications with Apache Shiro, Cesna Citation CJ4,

Lenny Primak on twitter: @lprimak

#212 From a NetBeans Champion to a Friend of the openJDK

An conversation with Geertjan Wielenga (@GeertjanW) about:
ZX Spectrum 48k, Pascal and Basic programming at high school, studying law in South Africa, writing documentation at Sun Microsystems for netbeans, Ludovic Champenois on "#153 Java, Serverless, Google App Engine, gVisor, Kubernetes", working for Sun Microsystems in Prague, mike’s blog, GlassFish Grizzly, NetBeans RCP, monitoring oil platforms with NetBeans RCP, Victor Orozco on: "#192 Innovation, Clouds, Kubernetes, Standards and Java", NetBeans certification and knowledge sharing, the great performance of NetBeans 15, the Swing Application Framework and JSR-296 and JSR-295, JSR 296: Swing Application Framework, JDeveloper used NetBeans as platform, from Oracle to Apache NetBeans, the challenges of opensourcing code,

Geertjan Wielenga on twitter: @GeertjanW

#211 How Liberica JDK Happened

An conversation with Dmitry Chuyko (@dchuyko) about:
Logo on BK, and Basic on Nemiga, Pentium 1, AltaVista and Lycos, starting with Pascal, C, then Borland’s Kylix, controlling the CD tray, managing toy production with MS Access, writing drivers for Windows at high school, math over programming, joining Borland, Visual Basic, C++, XSLT then Java, from C++ to Java, using Apache Xalan, using Apache FOP for transformations, fancy XML in 2003, Java on desktop, using Java on cellular phones, simplifying Java EE with visual modelling, working in a 4G startup, using JXTA for car to car communication, starting at QuickOffice, writing backend for Deutsche Bank, starting at Oracle performance team, if you want to go to Oracle, you go to Delphi, improving Java performance, joining BellSoft, Liberica JDK, BellSoft is top openJDK and JCP contributor, Liberica’s native image Kit,

Dmitry Chuyko on twitter: @dchuyko

#210 The Cloud is Slower Than Your Local Machine

An conversation with Goran Opacic (@goranopacic) about:
what is a database, everything is a database, S3 queries with Athena, glue crawler on S3, Cloudflare Quiche, Kafka vs. Kinesis, proprietary managed AWS services, different writing and reading paths, openJDK CRaC (Coordinated Restore at Checkpoint), Oracle’s Aurora JVM, Amazon Aurora Serverless, the cloud is slower than your local machine, scaling is about limits, AQUA (Advanced Query Accelerator), CQRS is a cloud-native pattern, CDC on premise and in the cloud

Goran Opacic on twitter: @goranopacic

#209 From Punched Cards to Java 11

An conversation with Glenn Holmer (@gholmer) about:
astrology, TRS-80, Radio Shack, learning Basic, RPG and COBOL in 8 month, working for weyco group incorporated, learning assembly with core dumps, blanks instead of zeros, enjoying modern Cobol, running warehouse software on Novell Netware, starting with Java 1.1 in 1997, anonymous inner classes and JDBC were introduced with Java 1.1, AS 400 support for Java was excellent, Java and NDS, running Applets in a browser, HotJava the browser in Java, icefaces and ICEBrowser, creating a web app with Java servlets, starting with Tomcat, switching to Glassfish, starting with plain editors, then NetBeans, Programmers Paradise, CodeWarrior metrowerks, forte for java IDE, becoming the very first Java programmer, the ultrasonic box scanner, migrating from GlassFish to Payara, writing millions lines of code with a team of five, remembering jEdit

Glenn Holmer on twitter: @gholmer

#208 GraalVM: Meta Circularity on Different Levels

An conversation with Fabio Niephaus (@fniephaus) about:
enjoying lego mindstorms, learning python, then Java, pencils and mice, using bluej, lejos - Java for lego, building extension for PHP fusion, enjoying SmallTalk, PyPy and GraalVM, rpyhton (restricted python) toolchain, AOT compilation, Java BeanShell, bringing SmallTalk to other languages with PyPy, Java on Truffle - espresso, combining multiple interpreters in one JVM, Hasso-Plattner-Institut in Potsdam, self-sustaining programming system, Truffle Native Function Interface, TruffleSqueak, RSqueak/VM, GraalVM Dashboard, Paper on Polyglot VM built with RPython, RPython Toolchain, GraalVM Reachability Metadata Repository, using GraalVM with Github Actions. GitHub Action for GraalVM, GraalVM 22.2 release blog post, New GraalVM reachability metadata repository, source level debugging with native images, continuous native image build tracking, Embedding Truffle Languages by Kevin Menard

Fabio Niephaus on twitter: @fniephaus

#207 Mission Critical Transactions

An conversation with Alejandro Pablo Revilla (@apr) about:
checkout episode with Alejandro: "#201 Write, Finish, Improve-jPOS", JPOS vision, handling large loads and making changes on the fly, connections to thousands ofr networking, circuit breaking 20 years ago, jPOS EE - the extendible edition, The Payment Platformn, "#72 KISS and No Dependencies in JGroups" with Bela Ban, jdom - the XML parser, dependencies require care, Java becomes better and better, being lazy and avoiding dependencies, rejecting unnecessary dependencies, Java 1:1 mapping between a file and a class is great, class injection without interfaces, quarkus / Micronaut as lambda and dependency injection for free, interfaces as defect, logging and realms, logging a context of a transation, self-configurable logger with CDI, what happens inside a Point of Sale (POS), the latency requirements, Transaction Manager uses continuations, jPOS Transaction Manager on Project Loom evaluation, jPOS is 100k LoC, jPOS Transaction Manager is 1k LoC, jPOS implements two-phase commit protocol, jPOS uses BerkeleyDB for checkpoint storage, the opinionated 2PC, continuations and reactive programming, Project Loom and structured concurrency, virtual threads and database connection pooling, the Hardware Security Module (HSM) and Transaction Manager, cloud are more secure, hybrid clouds, buying support for opensource software

Alejandro Pablo Revilla on twitter: @apr

#206 Java 19: Millions of Threads in No Time

An conversation with Nicolai Parlog (@nipafx) about:
JavaOne is back, virtual threads and Java 19, the old Java’s green threads, mapping between OS threads and green threads cannot be changed after assignment, Project’s Loom virtual threads are not assigned to a core, virtual threads could become the default, the artificial use of reactive programming, Project Loom performs as good as reactive, but may consume more memory, operational costs vs. developer costs, structured concurrency in looom, millions of threads in no time, the memory overhead depends on the call stack, structured programming is as powerful as go to, structured programming and structograms, structured concurrency, a structured task scope in try with resources, creating all tasks in one scope, StructuredTaskScope has to be a part of Java, StructuredTaskScope maintains the virtual thread hierarchy - the parent, structured concurrency and EJBs, structured concurrency and transactions, CompletableFuture and StructuredTaskScope, StructuredTaskScope and shutdown on success or shutdown on failure, Boundary Control Entity and structured concurrency, Project Loom Brings Structured Concurrency video on java inside, project Helidon and virtual threads, the premature optimisation of Loom,, the sun misc Unsafe, the great portal,

Nicolai Parlog on twitter: @nipafx

#205 Mr. Omni

An conversation with Ken Fogel (@omniprof) about:
Digi-Comp I 3bit computer by Admin Scientific, programming with small pieces of plastic, a course in fortran, a service person in a mail room working 20mins a day, borrowing 5000 dollars and buying Apple II for 2000 dollars in 1980, buying a floppy disk drive for 700 dollars, starting with AppleSoft Basic by Microsoft, learning assembly language to improve performance, presentation at the university to introduce Apple computer, controlling a water filtration system with Apple II, writing conversion for word processors in PL 1, WordPerfect, IBM MultiMate, WordStar, starting at the University to teach COBOL, teaching project courses, good bye Cobol in 2000, starting with Java in 1999, replacing the mainframe with Java, Java 1.4 was the most amazing thing, developer works and alpha works websites, IBM’s Jikes compiler, a short history of .net, $10k for Cobol, Oracles JDeveloper, Borland JBuilder, Sun Java Workshop and Sun Java Studio, From JDeveloper to Eclipse, From Eclipse to NetBeans, Netbeans just works, a message from Geertjan Wielenga, the invitation to JavaOne, JavaOne - the geeks heaven, NetBeans Days and DOScon in Montreal, the jChampions conference, Visual Studio Code is written in typescript, Visual Basic had the most amazing switch case, Java 17 and the new switch case, the executive JCP member, learn to program Java by Springer, writing all the code in main method, writing a Java book,

Ken Fogel on twitter: @omniprof

#204 About Java 18

An conversation with Nicolai Parlog (@nipafx) about:
Vacations without conferences, dangerous vacations on the beach, JEP-413 Code Snippets in Java API Documentation, from System Tests to code snippets, System Tests and Java clients, search and replace in code snippets, hybrid snippets, asciidoc and Markdown, Dan Allen @mojavelinux and asciidoc, Java 18’s Simple Web Server, JEP 408: Simple Web Server, JEP 421: Deprecate Finalization for Removal, custom host resolving with JEP 418: Internet-Address Resolution SPI, type pattern check in Java 17, Java 18 introduces pattern matching for switch, JEP 420: Pattern Matching for switch (Second Preview), non-sealed is the first hyphenated keyword, Java’s contextual keywords, system property file.encoding, JEP 400: UTF-8 by Default

Nicolai Parlog on twitter: @nipafx, Nicolai's website:

#203 I first played games I wrote

An conversation with Daniel Lipp (@dynamic_123) about:
starting to program CPC Schneider in the store, Basic and Logo, the first floppy disk to save the work, writing a senso game, Mandelbrot caclulations locked the computer for days, wiring computers on vacations, finding hidden files of Werner the German rocker game, Logo looks like assembly, starting physics and learning Turbo Pascal, from Basic to Visual Age SmallTalk, math formulas as code, memory leaks in C++, SmallTalk solved memory leaks, SmallTalk over Java, migrating from SmallTalk to Java, the elegance of SmallTalk, overriding a non-existing method in SmallTalk, Visual Age for SmallTalk over Visual Age for Java, the non-extendible Java currency class, recompiling the java.util.Currency class, writing a Java persistence layer, modernising with Java EE 5, writing Eclipse RAP clients, it is hard to maintain the spirit in fast growing companies, starting at open source CMS startup, migrating to openshift and containers, migrating microservices from JBoss to Quarkus, saving memory and CPU with Quarkus, saving money with quarkus, migrating from Java EE to Quarkus with minor code adjustments, the same old, serverless, architecture,

Daniel Lipp on twitter: @dynamic_123 and Instagram: dynamic_dli

#202 AWS Lambda, Events, Quarkus and Java

An conversation with Goran Opacic (@goranopacic) about:
transactions and clouds, checkout last episode with Goran: "#190 Real World Enterprise Serverless Java on AWS Cloud", transition from Java EE to the cloud, Long Running Actions in MicroProfile and the saga pattern, the problem of transaction coordination, in the clouds there should be no coordinating servers, DynamoDB is transactional and supports conditional writes, AWS Lambda Powertools for Java, event driven thinking on AWS, Java idioms and conventions on AWS, Amazon DynamoDB JPA-like persistence - DynamoDBMapper, dependency injection in AWS Lambdas, AWS Lambda PowerTools features should become a part of Lambda, the Z Garbage Collector, a missile with memory leaks, running BIRT reports in a AWS Lambda, synchronous Step Functions, EventBridge is the service connectors, AWS AppSync can push events to the client,

Goran Opacic on twitter: @goranopacic, Goran's blog:

#201 Write, Finish, Improve-jPOS

An conversation with Alejandro Pablo Revilla (@apr) about:
Commodore 64, Morse code and RTTY, long distance radio, a signal goes around the world, programming low level assembler, the 6510 assembly, increasing a counter in ROM as copy protection, Commodore 128k ran on z80, dBASE runs on CPM and z80, starting with clipper, migrating from Clipper to Java, using Apache POI to access Exccel, spending thoursands of dollars per month for telephone lines, running on BBS networks, using UUCP, provided UUCP services, from Borland Turbo C to running Lattice C, unix and minix, xinu, Xenix, qnx and VMS, founding the compuservice company inspired by BIX, starting the jPOS Software company, starting JavaPC, green threads and Project Loom, using Java blackdown by Johan Vos checkout episode "#6 Mobile Java", the Orion Application Server became OC4J, EJB 1.0 relied on Java serialization for configuration, XML deployment descriptors were introduced with EJB 1.1, writing own application launcher inspired by JBoss, writing a JMX micro-kernel, QSP v2 was called Q2, Alejandro's project / companycompany: JPOS,

Alejandro Pablo Revilla on twitter: @apr

#200 HATEOAS, Data APIs, Java and How htmx Happened

An conversation with Carson Gross (@htmx_org) about:
Apple IIgs and HyperTalk, _hyperscript, starting with VBA then using Java, EJB 1.0 and J2EE, gosu, gscript, implementing Ruby on Rails, teaching at The Montana State University, Java got lots os stuff right, javalin and jobrunr, Java and Ruby on Rails, NodeJS became more appealing to Ruby on Rails developers, Yukihiro Matsumoto created Ruby, performance challenge with sorting rows in a table, JQuery get function, the intercooler.js library, intercooler is the competitor of turbolinks, WebComponents and CustomElements, BCE and the template, BCE follows the data API approach, htmx works with data attributes, the popularity of Angular, GWT was popular, htmx renders HTML directly, htmx follows HATEOAS, HATEAOS is stateless - the response already contains all possible actions, Roy Fielding coined the term REST, web was designed for coarse grained interactions, with hypermedia approach messages are self-descriptive - API versioning is easier to maintain, htmx encourages use of Java, JSPs with WebComponents (link to youtube ), the Quarkus Renarde web framework, implementation of authorization and authentication with htmx, GraphQL gives developers and users a lot of power - which can be a security issue, GraphQL requires the implementation of resolves, how to version a data API, Stefan Tilkov and resource oriented architectures ROAs, endless scrolling with htmx is easy to implement, htmx on discord

Carson Gross on twitter: @htmx_org, carson's company: Big Sky Software

#199 Modules in the JVM or the Clouds

An conversation with Juergen Albert (@JrgenAlbert6) about:
Java 9 modules, microservices,the attempt to fight the complexity with distributing a monolith,internal isolation inside a monolith,the advantages of modularity,the definition of microservices,OSGi is complex at the beginning but the complexity of OSGi growth linearly,developing a first microservice is easy, coordinating many microservices gets complex,the operational complexity of distributed microservices,OSGi instead of distribution,OSGi modules communicate via services,the Eclipse Communication Framework (ECF),MicroProfile REST client as remoting,an episode with Romain Manni-Bucau: "#79 Back to Shared Deployments",rolling updates with OSGi,getting list of bundles with their versions,CVE detection with OSGi,the desired state monitoring,Infrastructure as Code with Java,treating OSGi as kubernetes with IaC,OSGi fx - desktop ui for OSGi management,JINI invented the Service Oriented Architectures,Java Intelligent Network Infrastructure and Apache River,JINI leasing and self healing,distributed garbage collection with JINI,episode with Joe Duffy: "#189 How Pulumi for Java Happened",conversation with Bruno Borges: "#188 Finding Some Sense in a Nonsensical Technology World",additional complexity of Kubernetes in the clouds,double Kubernetes provisioning,

Juergen Albert on twitter: @JrgenAlbert6, Juergen's company: Data In Motion

#198 Idempotency, Secrets, Dependency Injection and AWS Lambda

An conversation with Mark Sailes (@MarkSailes3) about:
AWS Lambda Powertools for Java,, fetching and caching secrets, default caching retention period for short lived secrets, the limits of the clouds, the consistency of DynamoDB, DynamoDB connectivity with AWS Lambda, RDS Proxy, "Proprietary Cloud Native Managed Service", SQS, SNS, Kinesis, the fan-out pattern is implemented with SQS and SNS; EventBridge could replace SQS and SNS for the implementation of fan out patterns, AWS Lambda Powertools for Java Idempontency, using request as idempotency key, transactions, network errors and idempotency, idempotency per design, partial batch failures handling, bisect in SQS, SQS Large Message Handling, message offloading to S3, S3 transactional writes, dependency injection of Lambda resources, secret injection with AWS Lambda, JSON-logging and AWS Lambda Powertools for Java Logging, converting json to metrics in CloudWatch,

Mark Sailes on twitter: @MarkSailes3, Mark's blog:

#197 Maven (Next) and Convention over Configuration

An conversation with Karl Heinz Marbaise (@khmarbaise) about:
empty pom.xml and plugin versions, recent Maven, old plugins, release plugins often, default plugin versions are hardcoded, the nice Maven 4 features, removal of deprecated functionality, running concurrent Maven builds against the same cache, concurrent builds make only sense for multi module build, profiling Maven, use the most recent Maven version for speed, Takari build lifecycle by Jason van Zyl, smaller poms, separation of concerns: build plugins vs. dependencies, build pom and consumer pom, mvn wrapper is part of Apache Maven, deriving default configuration from super POMs, offering different POM formats, experiments with hardcoded build chain, Maven and GraalVM, locking down Maven dependencies with GraalVM, how to contribute to Maven, Maven for Xmas,

Karl Heinz Marbaise on twitter: @khmarbaise

#196 Building Chrome DevTools with Vanilla Web Components

An conversation with Jack Franklin (@Jack_Franklin) about:
A thick, chunky Dell Laptop, Playing Tycoon, creating a soccer website with DreamWeaver, learning PHP and CSS, learning python, Java and prolog at the university, writing Rails code, the popularity of Ruby on Rails, Python vs. Ruby, switching from Angular to React, Angular 1 vs. Angular 2, backward compatibility and React, React Hooks, hooks vs. lifecycle methods, starting at Google Chrome Dev Tools Team, working on Chrome Performance Insights, Chrome Dev Tools is a Web Application, from custom framework to Web Components and lit-html, Chrome SDK manages state, Polymer was chatty, lit-html is a tagged template literal, lit-html performs partial updates, the bar for using frameworks gets higher, lit-html optimises the rendering, console.begin and console.end for better developer experience, lit-html is used in Chrome, what happens if FaceBook looses interests on React, what is the worst case scenario for loosing a dependency, using Chrome's ninja and rollup.js for bunding, Chrome supports import maps, chrome -custom-devtools-frontend storybook for WebComponents, adding JS-comments with JSDoc for type annotations for better refactoring in plain ES 6, any and unkonwn in typescript, Performance Insights panel lowers the bar for website optimizations, the Chrome Recorder generates pupeteer script, the Recorder panel is also implemented with Web Components, big UI features are implemented as Web Components, Jack's post: "Why I don't miss React: a story about using the platform",

Jack Franklin on twitter: @Jack_Franklin, Jack's blog

#195 Becoming an Apache Maven Committer

An conversation with Karl Heinz Marbaise (@khmarbaise) about:
PET 2001 was the first computer, enjoying programming at school, writing Basic and assembly code on Commodore CBM 4000, writing software for Commodore 1 PCB, finally getting a Commodore 64, programming extruder mesh machines, writing floating point libraries on Intel 8080, the connection between computers and math, starting with Turbo Pascal, C and C++ and Turbo C, studying part time, working full time, tracking cars with GPS in Delphi, implementing a new language in lex, yacc and bison, banks were using the OS/2 Warp operating system, working with Visual Basic, starting with Java 1.4 in 2004, working with PHP and MySQL, SOAP with PHP, developing an internal sourceforge, write simple code and enjoy JVM's performance, starting with Ant then migrate to Maven 2, Apache Jelly the executable XML, Convention over Configuration with Maven, Apache Continuum, AnthillPro and CruiseControl, becoming a Maven committer, Apache Axis 2, using Hudson for CI/CD, contributing to open source at Deutsche Boerse, working with Robert Scholte, episode with Robert: "#28 More Conventions with", working as DevOps engineer,

Karl Heinz Marbaise on twitter: @khmarbaise

#194 GraalVM, Apple Silicon (M1) and Clouds

An conversation with Shaun Smith (@shaunmsmith) about:
Shaun Smith in episode "#167 GraalVM and Java 17, Truffle, Espresso and Native Image", GraalVM has a 3 months release cycle, from Graal 21.3 release to GraalVM 22.1, GraalVM 22.1 supports Apple’s Silicon M1 , M1 and container support, ARM and container, Oracle Database on docker, Intel vs. ARM native compilation on Intel, project memories, jreleaser, AWS Graviton, Oracle A1 ARM instances and Ampere, CPU is cheap, RAM is expensive, the economics of FaaS, kubernetes vs. Lamba, failing fast with quick builds and -Ob optimization, JRockit, JMC and Sun JVM merge, continuous monitoring with JFR, 22.0 - improving the output and developer experience, GraalVM web assembly support, python vs. Ruby vs. Java, django vs. Ruby on Rails, JavaGD and R, GraalVM supports LLVM and so C and C++ languages, Java on Truffle, or project espresso, GraalVM Visual Studio Code tooling, Micronaut and reflection-free CDI, Quarkus, Micronaut and build-time deployment, NetBeans language server is used in Visual Studio Code, JetBrains and GitPod partnership, need for speed and Visual Studio Code, awk and icon, why I’m using Java and not, blog post: "Why are you not using [the language of the year] instead of Java?"

Shaun Smith on twitter: @shaunmsmith

#193 Working in the Shadows ...for Quarkus

An conversation with Guillaume Smet (@gsmet_) about:
Amstrad CPC, then Pentium 75, typing long code listings, coding a website with 20, PHP 3 and PostgreSQL, separating code from HTML with PHP, building a CMS system with CVS, studying in Lyon, offer management software for the EU, from PHP to Java 1.4, using RedHat Webapplication Framework, Java 5 introduced annotations, C-JDBC sequoia and ObjectWeb, contributing to GForge the fork of sourceforge, developing PostgreSQL log analyzer, starting at Open Wide, PostgreSQL log analyzer was used by Instagram, 2003 - the first contribution to OpenSource, leaving smile, joining RedHat, using the Wicket Java web framework, Apache Wicket was component based, Apache Wicket was the Java’s Swing UI for the web, episode with Struts committer: "#125 How Struts 2 Happened", Hibernate Search is an annotation-based approach to search, the project lead for Hibernate Validator, frequent calls from Emmanuel Bernard, Emmanuel Bernard was guest at the episode "#52 The First Line of Quarkus", Quarkus-the secret project at RedHat, project protein and Shamrock, Open Wide and smile, connecting Quarkus people, the challenge of growing fast and innovating at the same time, starting quarkiverse, dealing with external ClassLoaders, the monthly show, the killer use case for quarkus dev mode is serverless, use production for AWS Lambda deployments and dev mode for local development, passionate Quarkus contributors, bytecode generation with gizmo, quarkus’ build-time optimizations,

Guillaume Smet on twitter: @gsmet_, on GitHub @gsmet and Guillaume's blog:

#192 Innovation, Clouds, Kubernetes, Standards and Java

An conversation with Victor Orozco (@tuxtor) about:
focus on Jakarta EE and devops, faster release cycles, Apache Cactus - the test container, daily releases and DevOps challenges, the perfect Sun servers, the deprecated Java EE deployment J2EE API, JSR 88: Java EE Application Deployment, onboarding of new developers is harder today, lean Java EE code is reusable in serverless world, Heroku and openshift started the serverless movement, blog post: How To Push Java EE 6 Applications To The Cloud In 5 Minutes, portability of Java workloads in the clouds, kubernetes vs. docker Compose, the costs of the clouds, or Kubernetes vs. serverless, Kubernetes on linode, Kubernetes is a monolith in the cloud, running private VPCs, the payara cloud and the rethinking of clustering, back to efficient monoliths, the plain Quarkus CDK lambda template, a quarkus AWS Lambda looks like an old Glassfish application, buying CPU with RAM, Java’s dependencies are easy to manage, Java’s serverless comeback,

Victor Orozco on twitter: @tuxtor, Victor's company: nabenik

#191 From Java/JDK 7+ and Project Coin over Project Amber to Better Java Serialisation

An conversation with Stuart Marks (@stuartmarks) about:
the classic optimization problem in 1950’s at the Western Pacific Railroad, the first computer IBM 1401 - in 1960s, transitioning to the JDK group, the nice thing about Oracle’s Sun acquisition, updating Java’s codebase with new features, the Java Coding Conventions style guide, the Local Variable Type Inference Style Guidelines, Small language enhancements (Project Coin) diamond operator, try-with-resources, refactoring Java’s codebase, JT Harness - the Java Test framework, JT Harness is repurposed jtreg, fixing bugs in Serialization and RMI, Serializable Records, a better Java serialization, Project Amber and pattern matching, Java deconstructor is the opposite of a constructor, construction during deserialization is similar to dependency injection, RMI for unstable code isolation, try-with-resources and suppressed exception, JEP 421: Deprecate Finalization for Removal in Java 18, multi catch, varargs, Strings in switch Statements, SafeVarargs, decoupling from serialization formats, all powertools can kill,

Stuart Marks on twitter: @stuartmarks, Stuart Marks blog:

#190 Real World Enterprise Serverless Java on AWS Cloud

An conversation with Goran Opacic (@goranopacic) about:
sales force automation at ehsteh, Palm Pilot syncing, starting a SaS company, hetzner, Azure, then AWS, running EC2 machines, going serverless, kubernetes and the clouds, running MicroProfile applications on Quarkus and AWS Lambda, one code base - multiple lambdas, Lambda runs on Firecracker VM, OkHTTP on Lambdas, tree shaking with GraalVM, AWS CodeArtifact to cache Maven repositories, Amazon ECR, AWS CodeCommit, databases are hard to split, AWS CodeDeploy with scheduler, code hot swap, managed services is serverless, running AWS Fargate on spot intances, using Eclipse BIRT on AWS Lambda, Goran is AWS Data Hero,

Goran Opacic on twitter: @goranopacic, Goran's blog:

#189 How Pulumi for Java Happened

An conversation with Joe Duffy (@funcofjoe) about:
HP 386, LILO - the linux loader, MBR and dual boot, first programming language - C, GNU Compiler Collection (gcc), g++, C++, circle mud, fascination with 3d, starting with Windows 95, running BBS, CGI, ASP and Java servlets, ATG (Art Technology Group) dynamo and jhtml, servlets are inverse JSP, episode with Marc Fleury "#98 Walk the Path--How JBoss Happened", starting with .net, Borland Paradox - the form project longhorn, indigo and avalon, starting Pulumi, Pulumi for Java, Infrastructure as Code and terraform, Pulumi is written in Go, python + c = go, projects are stacks, pulumi is opensource, Mercedes-Benz and snowflake are using Pulumi, the AWS Cloud Control API, pulumi supports terraform providers, jsii CDK project, pulumi crosswalk, go runtime handles the state management, Java communicates with GO via grpc, a component resource in Pulumi is similar to custom construct in CDK, AWS Cloud Control API metadata for new AWS services is published immediately, Pulumi supports the most recent AWS resource API, ARM templates can be converted to Pulumi, a state of AWS account can be imported to Pulumi, then the IaC source can be generated, "#143 How Hudson and Jenkins happened", kubernetes in public clouds, ECS fargate before kubernetes, simultaneous deployments to azure and aws, conference talk: Hey Enterprise EJB Developers Now Is The Time To Go Serverless

Joe Duffy on twitter: @funcofjoe, Joe's blog: and company:

#188 Finding Some Sense in a Nonsensical Technology World

An conversation with Bruno Borges (@brunoborges) about:
previous episodes with Bruno "#29 Jakarta EE / MicroProfile in the Clouds: Runtimes not Servers", "#90 Bruno Hates YAML-Microsoft Loves Java" servers vs. runtimes recap, languages vs. runtimes, blogpost: Why are you not using [the language of the year] instead of Java? polyglot programming with dapr, polyglot programming - the engineer’s excitement, what is “the” standard?, addressing the complexities now, or later, fashion driven development, technology changes, complexity remains the same,

Bruno Borges on twitter: @brunoborges and LinkedIn

#187 Our Favourite Java 9, Java 11, Java 17 and Java 18 Features

An conversation with Nicolai Parlog (@nipafx) about:
use cases for Java 17 Text Blocks, JSON with Text Blocks, String formatted vs. replaceAll, string templates could ship with Java 19, the draft JEP for string template, draft JEPs don’t have a number, 100k subscribers for the Java channel and the silver youtube plate, Silver Creator Award youtube, factory collection methods in Java 9, Map.of and List.of, Java Records for code reduction, Java records vs. classes, getters and setters are not necessary, polymorphic classes vs. procedural record, nicer Pairs with Java records, Sun Coding Java Conventions / Code Conventions for the Java Programming Language, a code formatter JEP, JEP 413: Code Snippets in Java API Documentation, the new switch without a name, no fall-through with arrow switches, sealed types and pattern matching with switch statements, JEP 380: Unix-Domain Socket Channels, RandomGeneratorFactory in Java 17,

Nicolai Parlog on twitter: @nipafx, Nicolai's website:

#186 Structuring Applications With Or Without OSGi

An conversation with Jürgen Albert (@JrgenAlbert6) about:
Checkout last episode with Jürgen Albert: "#175 Pragmatic Modularity and OSGi", Why do we need a module?, related episodes: "#151 Modularization, Monoliths, Micro Services, Clouds, Functions and Kubernetes", "#160 Modules Are Needed, But Not Easy", Physical vs. Logical modules. How to pick a perfect module, picocli for building Java CLI applications, module as to to divide and conquer, how to cut the modules, in OSGi the smallest module is the package, OSGi core specification already understands modules, build time vs. runtime dependency and manifest assembly, JAX-RS and Vaadin OSGi "whiteboard", Peter Kriens started with the OSGi idea, the OSGi phone, OSGi services and service registry, service registry listener, OSGi Declarative Services provide lifecycle, OSGi vs. kubernetes, Kubernetes solved the port collision problem, OSGi remote services, the Eclipse OSGi project,

Jürgen Albert on twitter: @JrgenAlbert6, Jürgen's company: Data In Motion

#185 A Cloud Migration Story: From J2EE to Serverless Java

An conversation with Goran Opacic (@goranopacic) about:
ZX Spectrum with 9 years, fortran listings as a present, Basic programming on Atari, Manic Miner and Jet Set Willy on Amstrad CPC 64, Defender of the Crown, printing with C 64, desktop publishing with Atari 520 ST and Calamus, testing the first website in 1993, using UUCP to split files into emails, drawing maps with Java Applets in browser, 17 years old code as Java AWS Lambda, Cloud Development Kit - applying the Java knowledge to the clouds, Jakarta EE and MicroProfile in the clouds, in the clouds there are different possibilities, mobile sales application with esteh, the serverless Tomcat, hetzner provides hosting services, no vacuuming on databases, how to become an AWS Data Hero, attending at MUC airport, serverless quarkus in the clouds, OpenLiberty for Java EE, building AWS Lambdas with Quarkus, Infrastructure as Code and CDK with Java, the cloud has limits, self-mutating CodePipelines, every AWS service has well-documented limits, EC 2 spot instances for GraalVM compilations, plain Java SE for asynchronous Lambdas,

Goran Opacic on twitter: @goranopacic, Goran's blog:

#184 Piranha: Headless Applets Loaded with Maven

An conversation with Arjan Tijms (@arjan_tijms) about:
Payara vs. GlassFish Github contributions, refactoring introduces technical debt, GlassFish relies on JDK dependencies, contributes to GlassFish, Payara and Glassfish communities are working together, contributing to opensource to save time, piranha is MicroProfile 5.0 compatible for JWT, piranha passes the majority of TCK servlet tests, the various piranha editions, You don’t need an application server to run Jakarta EE applications article, AWS Serverless Java Container with Jersey integration, piranha nano is suitable for embedding, the Jakarta EE steering committee, Jakarta EE 10 is about new features, CDI-lite and back to code generation like in early EJB days, removing deprecated APIs from Jakarta EE, the SingleThreadedModel in Servlets, using Java as templating language in JSF, Wicket has a concept for programmatic few creation, JSF will add Swing-like view constructions features, OIDC authentication mechanism was contributed by Payara, piranha micro uses isolated classloaders, Maven dependencies as classpath,

Arjan Tijms on twitter: @arjan_tijms, Arjan's blog omnifaces and

#183 The JavaSpecialist(s)

An conversation with Heinz Kabutz (@heinzkabutz) about:
a quarter of overheated ZX Spectrum, programming to make life easier, going to school in Cape Town, you will never fill up a 10 MB hard drive, a PC with 20 MB hard drive, GW Basic on AEG, the language of Nelson Mandela, learning Pascal, Scheme, prolog, the University of Cape Town is the best, playing snooker, context switchting and programming, Java Swing's Napkin Look & Feel , perception is important, writing an ERP system, login dialog as an intelligent progress bar, the South African masters, Bruce Eckel's Thinking in Java book, curses - text bases user interfaces, starting with Java 1.0, Jini, JavaSpaces and Jiro, eating recursion for breakfast, measuring the performance of the ForkJoinPool, the java specialists newsletter, jcrete conference,

Heinz Kabutz on twitter: @heinzkabutz, Heinz's website:

#182 Dr. Deprecator

An conversation with Stuart Marks (@stuartmarks) about:
Wang 2200 Laboratories computer with 10 years, David Ahl 101 Basic Computer Games, Basic without "else", GOTO and GOSUB, Pascal Records and Java, conditional evaluation in Pascal, the criticism on Pascal, Bill Joy added the socket interface to BSD 4.2, replacing VMS with BSD, the Bill Joy long weekend, starting at Sun Microsystems, working with James Gosling on the NeWS windows system, Postcript based windows system, NeWS ran on SunOS, SunOS 5 became Solaris, the unpleasant UNIX wars with AT&T, HP and IBM, X-Window vs. NeWS, shared state and NeWS, display postscript became the NeXT system, the X-NeWS merge OS, Open Look and Motif, OSF-opensource foundation, Motif became the dominant OS, creating a eCommerce system with Java at Sun, working with James Gosling at NeWS, project Oak and Project Green, Star Seven, licensing WebLogic and Tengah, personal Java and the Java Ring, Java on Sharp Zaurus and on Palm, working on J2ME, working with JavaFX, Chris Oliver started JavaFX, F3 and Forms Follow Function, Java FX Script was an own language, Richard Bair was the JavaFX architect, Jasper Potts was was the Java FX UI designer, JavaFX is based on final classes, the fragile base class / brittle base class problem, the general subclassing problem, implementing a 2d traversial algorithm for Java FX, Sun was shrinking, Java FX was growing, Brian Goetz worked to improve the Java FX internals, RIAs - Rich Internet Applications, Silverlight, Flash, Flex and JavaFX, JavaFX supported CSS, the compiler bug war story, binding propagates side effects, Robert Field is working on jshell,

Stuart Marks on twitter: @stuartmarks, Stuart Marks blog:

#181 Java Authentication and Authorization with Apache Shiro

An conversation with Benjamin Marwell (@bmarwell) about:
Recent episode with Ben: "#180 Trombones, Java, Large Scale WebSphere Liberty Deployments and 50.000 JVMs in Production" security library and authentication and authorization framework, using Apache Shiro for CLI applications, the Apache Shiro security manager, the Shiro realm is the source of information for login credentials validation, the "hello, world" Shiro application requires a single dependency, WebListener is used for authentication, the killer use cases of Apache Shiro are permissions, a role comprises multiple permissions, wildcard permissions are a colon-separated list, comparing Shiro to AWS permissions, Sonatype Nexus is using Shiro, using multiple realms at the same time with Apache Shiro and realm chaining, Shiro means Castle in Japanese, realms in Shiro and Jakarta EE, Apache Shiro Jakarta EE integration, Shiro is easier to use than JAAS or jaspic, Stormpath was started by Apache Shiro committers, MicroProfile secret injection with Apache Shiro, Jakarta Security Compatible Implementation: Soteria,

Benjamin Marwell on twitter: @bmarwell, Benjamin's blog:

#180 Trombones, Java, Large Scale WebSphere Liberty Deployments and 50.000 JVMs in Production

An conversation with Benjamin Marwell (@bmarwell) about:
C64 with 3.5 years, enjoying Pitstop, Pharaoh's Curse and Lady Tut, starting to program in Basic from a manual, modifying the game source, starting with Pascal and Visual Basic, storing the universe into an Excel file, automating a space game with Delphi, implementing a web crawler in Delphi, the "King of Galaxy Wars" and OGame, playing trombone in the army, starting at Finanzinformatik the datacenter for the German saving banks, studying in Hameln business informatics and learning Java 6, programming with 31-bit computing with IBM assembly, starting with 0xCAFEBABE, switching to monitoring department and using BMC Patrol, the web and application servers department, deploying a few hundred applications to WebSphere Liberty, using Apache FreeMarker to generate 'WebSphere Liberty configuration, microservice deployment with WebSphere Liberty, Apache Maven and Apache Shiro Committer, building JavaFX application with jlink, contributing to JLink, creating sprites for Legend of Zelda, podcasts with Robert Scholte "#25 Maven Commitment" and "#28 More Conventions with", using Apache Shiro for permission checks, combining security with Bean Validation - a podcast with David Blevins "#156 Bash, Apple and EJB, TomEE, Geronimo and Jakarta EE", Nexus is using Apache Shiro

Benjamin Marwell on twitter: @bmarwell, Benjamin's blog:

#179 System.logger, JDK Enhancement Proposals (JEP) and knowing about Java's future

An conversation with Nicolai Parlog (@nipafx) about:
previous episode with Nicolai: "#163 The Endless Loop of Frustration and Challenge" JEPs, JEPs draft, what happens on the openJDK Mailing list, spending time with JEPs, knowing about the future, influencing current architecture with future standards, the System.logger was added in JDK 1.9, System.logger was intended for internal JDK user, but works fine for applications as well, JEP 264: Platform Logging API and Service, hystrix deprecation, dozer mapper is deprecated, the Eclipse Maven plugin, the fast NetBeans, great Visual Studio Code, hamcrest vs. assertj, consistency vs. micro-optimizations, why try with resources came in Java 9 first, effectively final in Java 9, where to put the context information, How to comment with JavaDoc, the Java 18 snippet tag and src/demo/java, JEP 413: Code Snippets in Java API Documentation, the cases for, JavaDoc and metrics, testing the mocks, pointless unit tests, combining cyclomatic complexity with test coverage, crap4j

Nicolai Parlog on twitter: @nipafx, Nicolai's website:

#178 Java, Java EE, Jakarta EE, MicroProfile, Clouds and Duke Adventures in Guatemala

An conversation with Victor Orozco (@tuxtor) about:
Cyrix 486 computer, disassembling Prehistorik 2 game, enjoying Dangerous Dave, starting programming in FoxPro, joining programming bootcamps, learning Visual Basic 6, starting to study Computer Science with the age of 16, studying in Guatemala City, starting to learn Java in 2005, from .net to Java, Sun Certified Programmer certification, human rights application with Apache Struts on Sun Java Application Server, getting the NetBeans DVD from Sun Microsystems, starting with NetBeans RCP, gentoo linux was the future, Central America has only three Java Champions, two Java Champions from Guatemala and they joined the bootcamp, writing code for Blackberry in Java and J2ME, enjoying Glassfish and Java EE 6 for backend development, going to Brazil and switching to ML, Scala and Spark, betting on Java EE, Jakarta EE, MicroProfile, JUG in Guatema is the oldest in the country, winning the Duke Choice Award for Duke Adventures, meeting Bruno Souza, checkout episode "#170 Java, OpenSource and the Brazilian Christmas" with Bruno Souza, "knowledge and clouds" - is nabenik in Mayan - victor's company, Java EE, Jakarta EE, MicroProfile are great platforms for building products and consulting, working on-premise openshift, AWS and Azure, working with Payara Micro, Quarkus on OpenShift, packaging old Java EE codes as AWS Lambda,

Victor Orozco on twitter: @tuxtor, Victor's company: nabenik

#177 Kumuluz API Gateway, MicroProfile and Serverless Functions

An conversation with Prof. dr. Matjaz Juric (@matjazbj) about:
checkout past episodes with Prof. dr. Matjaz Juric "#158 Kubernetes, KumuluzEE, MicroProfile and Clouds", "#151 Modularization, Monoliths, Micro Services, Clouds, Functions and Kubernetes", "#136 From ZX Spectrum over Clouds To Winning the Java Duke's Choice Award", the Kumuluz Digital Platform, the omni-channel architecture, the KumuluzCrowdsensing platform, EV charging, battery State of Charge estimation, project edison winci runs on KumuluzEE and MicroProfile, using service discovery for locating microservices, service discovery implements client-side load balancing, KumuluzAPI is an extension of the kubernetes ingress controller, decentralising an API Gateway with "smart proxies", API gateway fault tolerance pattern integration, MicroProfile API gateway integration, canary releases and A/B Deployments, JBoss smart proxies and MicroProfile JAX-RS client, the costs of cloud-agnostic deployments, on-premise Kubernetes is a must, going serverless with Kumuluz Functions, cost-driven development in the clouds, kubernetes is expensive to operate, kubernetes clusters are often over-provisioned, solving problems differently with event-driven approach,

Prof. dr. Matjaz Juric on twitter: @matjazbj and at University of Ljubljana

#176 AWS Lambda Powertools Java

An conversation with Mark Sailes (@MarkSailes3) about:
Checkout episode "#168 Serverless Java on AWS" with Mark, AWS Lambda Powertools for Java was was initiated in 2020, AWS Lambda Powertools for Java started with logging tracing and custom metrics, the major use cases for AWS Lambda Powertools, lambda best practices are implemented as modules, Lambda Powertools Java Logging and structured logging in JSON format with additional context provided with annotation, including the correct amount of data, logging writes to standard out, Lambda, metrics and the AWS CloudWatch Embedded Metrics Format (EMF), AWS Lambda and metrics scraping, Lambda Powertools Java Metrics, providing Lambdas to AWS CloudWatch via EMF, synchronous AWS CloudWatch calls are expensive, secrets and configuration management with parameters, AWS Systems Manager Parameter Store support, parameter caching, Lambda Java-like tracing with AWS X-Ray, Lambda Powertools annotation for X-Ray, adding exceptions to AWS X-Ray, adding correlation id support for cross Lamba logging, AWS Lambda Powertools for Java is an incubator, support for CloudFormation custom resources, the SQS and SNS message offloading to S3, validation support of business objects with JSON-Schema and JMESPath, the killer Use Case for AOP, writing ugly code for performance

Mark Sailes on twitter: @MarkSailes3, Mark's blog:

#175 Pragmatic Modularity and OSGi

An conversation with Jürgen Albert (@JrgenAlbert6) about:
C64 and Logo, 286, 486 then Pentium, starting with PHP, learning Java 1.4 and Java 5, studying in Jena - the optical valley, Intershop and Stephan Schambach, Intershop was written in Perl, writing eBay connectors with Java, Java Server Pages, Tomcat and Java Data Objects (JDO), Java Persistence API JPA, writing a J2ME app store, Using TriActive JDO TJDO, using Geronimo Application Server, working with Java EE, JBoss and Glassfish, starting Data In Motion company in 2010, building a statistics tool for Bundesamt fuer Risikobewertung, creating smartcove the product search and price comparison engine, building video supported therapy software with Java, parsing video streams with Java, Eclipse RCP, code reuse with OSGi and Gyrex, GlassFish and OSGi, modeling Eclipse Modeling Framework (EMF), Eclipse GMF and openArchitectureWare, the IDE wars, the message, modular system in long term projects, microservices vs. JARs, versioning bundles and plugins, package versioning, the chair of Eclipse OSGi Working Group, Sun started with OSGi, declarative OSGi services, there overlap between OSGI and Eclipse Plugin Development Environment, "#79 Back to Shared Deployments with Romain Manni-Bucau",

Jürgen Albert on twitter: @JrgenAlbert6, Juergen's company: Data In Motion

#174 Kafka Connect CLI, JFR Unit, OSS Archetypes and JPMS

An conversation with Gunnar Morling (@gunnarmorling) about:
kcctl the CLI for Kafka connect, kcktl comes with auto completion, kcctl uses picocli, quarkus as CLI, the quarkus extension for picocli, great quarkus command mode with picocli extension, using JPMS for command client interfaces, plugins with JPMS, tab completion with kcctl, the great jreleaser project by Andres Almiray, displaying the connector offsets, the great Java Flight Recorder, jfrunit provides assertions for avoidance of performance regressions, event streaming API in Java, JfrUnit annotations, JFR event streaming into Kafka, Keep Your SQL in Check With Flight Recorder, JMC Agent and JfrUnit, layrry - A Launcher and API for Modularized Java, ModiTect plugin, building application images, the Maven OSS quickstart archetype,

Gunnar Morling on twitter: @gunnarmorling, Gunnar's blog

#173 MicroProfile 5.0

An conversation with Emily Jiang (@emilyfhjiang) about:
the Chinese JavaONE, the MicroProfile book, writing a book in a caravan, the MicroProfile 5 release, MicroProfile 5.0 ships with Jakarta namespace, OpenLiberty supports MicroProfile 5.0, OpenTracing and OpenCensus merged into opentelemetry, MicroProfile OpenTelemetry will deprecate MicroProfile OpenTracing, Traced annotation and Tracer interface are comprising the OpenTracing spec, MicroProfile Metrics and micrometer, a shim layer around Micrometer could become MicroProfile Metrics, Jakarta EE is a shim, the Quarkus with Micrometer screencast, MicroProfile Metrics "application" registry is useful for business metrics and KPIs, MicroProfile standalone vs. platform releases, Jakarta EE 10 Core Profile will be consumed by MicroProfile, Jakarta Concurrency and Core Profile, MicroProfile Context Propagation integration with CDI, the importance of Jakarta EE Concurrency, a MicroProfile logging facade discussion, OpenTelemetry's logging branch, the AWS Lambda logging interface, injecting java.util.logging loggers and Java interface-based log facades, MicroProfile metrics custom scopes, a service mesh does not have any application-level insights, a service mesh performs a fallback based on traffic patters and not application logic, fault tolerance testing with service mesh vs. MicroProfile Fault Tolerance, MicroProfile and data access specification evaluation, Quarkus with MicroProfile as AWS Lambda screencast, Quarkus with MicroProfile as AWS Lambda github project, AWS serverless containers Jersey implementation, explaining AWS Lambdas with EJB talk, Message Driven Beans as email listeners with JCA, serverless and the ROI point of view, the self-explanatory serverless billing, OSGi is great for building runtimes, integrating MicroProfile Config with Jakarta EE, the Practical Cloud-Native Java Development with MicroProfile: Develop and deploy scalable, resilient, and reactive cloud-native applications using MicroProfile 4.1 book

Emily Jiang on twitter: @emilyfhjiang

#172 How jClarity Happened

Commodore 64, programming opening StarWars scene in Basic, playing Jumpman, enjoying math, learning Pascal and Visual Basic, enjoying Java, Bjarne Stroustrup The C++ Programming Language, network discovery with Java, a Java virus taking over an University, Java was too small for a CD, the great BEA WebLogic 8, building large scale financial systems with Java, the high performance Disruptor Pattern, log4j used a ring buffer, Kirks' Pepperdine systematic method for Java performance improvement, using random forest and decision tree for performance tuning, JClarity Illuminate, jClarity root cause analysis was unique in the industry, jClarity was integrated into Azure Monitor, London Java User Group participated in JCP, jClarity is integrated into Azure Monitor, the Principal Software Group Engineering Manager, Microsoft Loves Linux,

#171 Java, Jakarta EE and MicroProfile on Azure

An conversation with Ed Burns (@edburns) about:
expisode with Ed's first computer: "#161 SGI, NCSA Mosaic, Sun, Java, JSF, Java EE, Jakarta EE and Clouds" enabling Jakarta EE servers to run well on Azure, working with IBM and Oracle to support OpenLiberty on Azure and WebLogic on Azure, working with payara cloud, Azure Container Instances the cloud way of "docker run", JBoss EAP on Azure App Service, MicroProfile, Jakarta EE and Java EE application servers on Azure, Lift and Shift with kubernetes and Azure Kubernetes Service, Azure Container Apps - the sweet spot of ACI and ACR, cloud portability with Kubernetes, IaC with ARM Template, WebLogic on Kubernetes was using Bicep, "the complexity tax", Microsoft joins Java Community Process (JCP), Microsoft Build of OpenJDK, Azure Event Bus and Azure Service Bus, "#111 Java / Jakarta Messaging Service (JMS) on ...Microsoft Azure", Payara Cloud on Azure - the serverless server, OpenLiberty on AKS, JBoss EAP on Azure App Service, the Azure Service Connector, Azure Services as a Service -- the anti-corruption layer, Azure ExpressRoute and Azure Virtual Network, Event Driven Architectures and Azure Logic Apps,

Ed Burns on twitter: @edburns

#170 Java, OpenSource and the Brazilian Christmas

An conversation with Bruno Souza (@brjavaman) about:
Bruno's first computer episode, JavaOne, questions and answers show, A Soldering, Agile, Geek Lawyer using Java and Quarkus -- the 78 years young lawyer, Building Clouds for Data Center Providers with Java -- the great Jelastic cloud, working on Brazilian income tax system, the toolscloud devops company, the overcomplicated kubernetes, openshift is the easy to use kubernetes solution, "OpenSource--the ability to choosing again" by Simon Phipps, standards are the opportunity to be lazy, Sun Microsystems Niagara chips were energy efficient, Sun Microsystems could become an interesting ARM company, running Java on ARM and M1, the ability to "sell", Microsoft's Java efforts, the first appearance of Microsoft at JavaOne, Sun Microsystems was like Xerox Parc, the benefits of open source, the license is the trust, the best license for open source, the Apache license is the gift from Apache, Christmas in Brazil, fruit trees as Christmas trees, European advent calendars, participation at the Java Advent calendar, the best developer year, Developer Career Secrets

Bruno Souza on twitter: @brjavaman

#169 Deep Learning with Modern Java Code

An conversation with Dr. Zoran Sevarac (@zsevarac) about:
DeepNetts is targeting Java developers, nice Java code with DeepNetts, DeepNeetts with two dependencies only, Image Recognition with Duke, the data augmentation for variation generation, DeepNetts supports all formats from java image IO, Convolutional Layer, max Pooling Layer, Fully Connected Layer, max pool layer reduces the dimension of a problem, convolutional layer is about pattern recognition, convolutional layer slides a square shape over an image to recognise a pattern, max pool layer is about downsizing, Fully Connected Layer are classifying the images, the output layers is uses a mathematical soft max function, output layer provides the prediction, the VisRec JSR-381 library, DeepNetts does not rely on the existence of GPU,

Dr. Zoran Sevarac on twitter: @zsevarac and Zoran's

#168 Serverless Java on AWS

An conversation with Mark Sailes (@MarkSailes3) about:
the BBC micro computer with a cassette, the PRINT 10, 386, 486 and a Pentium with an internet connection, learning Apache, using Mandrake Linux at university, a first web page - a huge experience, PHP, MySQL and "we don't need transactions", the fantastic phpMyAdmin, using Java, C++ and Python at the university, the great JavaDoc, Eclipse and NetBeans, the great Java collection JavaDoc, migrating from java.util.Vector to java.util.List, working as backend junior Java developer, from junior over senior to team lead, 3% improvement with 97% rewrite, working for AWS, "Essentialism: The Disciplined Pursuit of Less" book, the WebLogic build engineer, pre pooling EJBs, Hey Enterprise EJB Developers Now Is The Time To Go Serverless, Lambda with API Gateway is a transition to Event Driven Architectures, Using AWS Lambda with an Application Load Balancer, cloud native, event driven architectures with AWS Lambda and Java, testable, asynchronous AWS Lambda, the serverless Kafka on AWS, archive and replay with Amazon Event Bridge, fast cold starts with AWS Lambda, milliseconds invocations with AWS Lambda, testing asynchronous AWS Lambda with JUnit, the limitations of mocking, AWS Cloud Development Kit (CDK) and AWS SAM CLI, swapping out Lambdas with SAM, describing AWS infrastructure with CDK, no YAML deployments with CDK, shareable infrastructure with compilable Java code, AWS CDK constructs--reusable cloud pieces

Mark Sailes on twitter: @MarkSailes3, Mark's blog:

#167 GraalVM and Java 17, Truffle, Espresso and Native Image

An conversation with Shaun Smith (@shaunmsmith) about:
GraalVM is bound to openJDK releases with a few days delay, GraalVM support Java 17 native image, Java Records are DTOs, see episode: "#131 I don't hate your DTOs", GraalVM 17 21.3.0 improved the performance of the native image, GraalVM native image is as fast as openJDK, optimization of Truffle languages, article: Multi-Tier Compilation in GraalVM, shopify is using Ruby, Ruby on GraalVM outperforms MRI, the use case Nashorn, Java 6 introduced the Scripting API, the Project Avatar at Oracle, G1 Native Image is configurable, trading memory for throughput, conditional code inclusion, quarkus and Micronaut are GraalVM native, reflection is slow and memory intensive, CDI lite will come with build-time optimization, truffle is built as an AST, Espresso is Java on Truffle, Espresso's startup time improved by 40%, running Java 17 on Java 11 with Espresso, Espresso is able to sandbox Java, Oracle Functions is using Java in container, "RAM equals CPU", Oracle Functions never oversubscribe, Micronaut - as concise as Python, but faster, the economic impact of performance, GraalVM 22 comes in January, wasm is maintained by the JavaScript team, JavaScript in the Oracle Database,

Shaun Smith on twitter: @shaunmsmith

#166 Debezium, Server, Engine, UI and the Outbox

An conversation with Gunnar Morling (@gunnarmorling) about:
debezium as analytics enablement, enriching events with quarkus, ksqlDB and PrestoDB and trino, cloud migrations with Debezium, embedded Debezium Engine, debezium server vs. Kafka Connect, Debezium Server with sink connectors, Apache Pulsar, Redis Streams are supporting Debezium Server, Debezium Server follows the microservice architecture, pluggable offset stores, JDBC offset store is Apache Iceberg connector, DB2, MySQL, PostgreSQL, MongoDB change streams, Cassandra, Vitess, Oracle, Microsoft SQL Server scylladb is cassandra compatible and provides external debezium connector, debezium ui is written in React, incremental snapshots, netflix cdc system, DBLog: A Watermark Based Change-Data-Capture Framework, multi-threaded snapshots, internal data leakage and the Outbox pattern, debezium listens to the outbox pattern, OpenTracing integration and the outbox pattern, sending messages directly to transaction log with PostgreSQL, Quarkus outbox pattern extension, the transaction boundary topic

Gunnar Morling on twitter: @gunnarmorling and

#165 AI with Java as a Hobby

An conversation with Dr. Zoran Sevarac (@zsevarac) about:
ZX Spectrum with rubber keys in 1987, starting with games, improving the game loading experience, application for transformer calculations, simon's Basic, playing Out Run, improving the software loading experience with screwdrivers, learning Turbo Pascal 5.0, writing an application for medical registry, learning C and C++, building websites, learning Java with Applets, building chatbots and natural language processing, learning lex and yacc, ads automation for local musicians with C-script and Common Gateway Interface (CGI), selling books online, starting an e-commerce framework with PHP, starting an e-commerce company, the German ecommerce company: intershop, neural framework with Java in 2008, openourcing neuroph on sourceforge, neuroph is winning the duke choice award, using NetBeans for building the neuroph UI, speed vs. readability, deep netts comes with commercial support, JSR 381: Visual Recognition (VisRec) Specification,

Dr. Zoran Sevarac on twitter: @zsevarac and Zoran's

#164 What are AtomicJar and Testcontainers Cloud?

An conversation with Kevin Wittek (@kiview) about:
from blockchain back to TestContainers, building the Testcontainers Cloud product, spinning containers in the cloud, Docker Java talks remotely to docker demon, connecting to docker via REST, Podman is a docker replacement, rkt as docker alternative, runc, containerd and opensourcing docker, using testcontainers for PoCs, on-premise programmable API are hard to implement, windows support for test containers is improving, WSL 2, the "semi ephemeral lightweight cloud mock", the new Iron Kobra album

Kevin Wittek on twitter: @kiview and AtomicJar

#163 The Endless Loop of Frustration and Challenge

An conversation with Nicolai Parlog (@nipafx) about:
Amiga 500, booting into blue environment, Settlers, dune game on Amiga, writing the first line of Turbo Pascal at high-school, starting with Java in 2001 with Applets, the dining philosopher's problem with Java, Karel the Robot in Java, studying math is hard, Temporal logic and formal verification, the endless loop of frustration and challenge, mathematicians and formulas, solving an equation is refactoring, learning complexity theory, TLA+ and Lesley Lamport, Amazon S3 formal verification with TLA+, cost estimation in large scale projects, java.awt.List vs. java.util.List Kotlin vs. Java 17 productivity, Java is the lowest possible denominator, working for lichtblick - the renewal energy company, implementing energy model for Fraunhofer in Karlsruhe, linear programming with simplex in C, dependencies come with a cost, dependencies are liability, starting to work for Oracle as Java Developer Advocate,

Nicolai Parlog on twitter: @nipafx, Nicolai's website:

#162 From Java EE to GlassFish and Back To WildFly

An conversation with Jason Lee (@jasondlee) about:
C-64, assembly and Basic, the talking ghostbusters game, a DOS screen saver, the Run Magazine, buying a 286, installing early version of PostgreSQL, starting with Pascal, C, COBOL and PHP programming, working for WalMart on Decision Support System (DSS), providing support for cable modems, the great US robotics modem, 36 kBs vs. 54 kbS speed, building a FoxPro C++ system for a medical company, starting with JBuilder and Java Swing 1.1 and JBCL, porting C++ to Java, the jbInit method, Eclipse's refactoring was great, Embarcadero and Inprise, writing SOAP with Apache Axis, first opensource contribution, working with Federal Aviation Administration, starting with Glassfish v2 and Java Server Faces, Java EE and MicroProfile - productivity by constraints, the annotation driven Java EE 5, starting at Sun Microsystems to work for Glassfish v3, working on Glassfish admin console, starting at Netsuite and coming back to Oracle, starting at RedHat on Wildfly, working on WildFly MicroProfile integration, adding telemetry support for WildFly 25, Jakarta EE: integration vs. implementation, WildFly runs on Java 17 and supports opentelemetry, micrometer vs. MicroProfile Metrics, episode 140 with Erin Schnabel about Micometer, Metrics and Quarkus, WildFly 26 will suport Jakarta EE 10, bootable WARs,

Jason Lee on twitter: @jasondlee, Jason's blog:

#161 SGI, NCSA Mosaic, Sun, Java, JSF, Java EE, Jakarta EE and Clouds

An conversation with Ed Burns (@edburns) about:
Ti 99 4a with speech synthesis, Secrets of the Rockstars Programmer book, Apple 2c with word processing and laser mouse, Superman 2, collecting half cents as rounding errors, War Games and Tron, the Logo programming language with a turtle, enjoying playing trumpet, marching band and a binary trumpet, The Nullpointers Band, Fourier Transforms for music quantification at high school, just intonation and the key changes, equal temperement on piano, retuning the keyboard on the fly, applying at Sun Microsystems, Lighthouse Design and Objectivec-C, working at Silicon Graphics and the nice O2 workstation, working on NCSA Mosaic browser at NCSA, learning Pascal and C++ at the university, working on Common Client Interface on Mosaic Browser, inperson conference system, talent vs. grit, grit over talent, floyd marinescu started the, the Spyglas Browser, the SGI Cosmo and VRML, SGI IRIX operating system, commodity vs. boutique fights at SGI, joining Sun's Lighthouse Design group, building a Java-based productivity suite, building a multi-dimensional spreadsheet: quantrix, NextStep Appkits vs. Swing, the AOL Sun-Netscape alliance, OJI - Open Java VM Interface the SPI for Applets, Project Panama - the new JNI, the popularity of Struts was the motivation for JSF, Craig McLanaham and Amy Fowler started to work on JSF, JSF code name was moonwalk, Hans Muller and the Swing Application Framework (JSR-296), the Java Community Process passion, IETF and W3C are like JCP, "Innovation Happens Elsewhere" book, JSF and Spring XML-based dependency injection, ATG dynamo jhtml, JSF 2.0 composite components, JSF was a hot technology with multiple component implementations RichFaces, icefaces, PrettyFaces, Liferay, PrimeFaces and MyFaces, the initial JSF target was page-based corporate apps, the AJAX experience conference and Ben Galbraith, Martin Marinschek from Irian, Josh Juneau and the famous blog post, building a proprietary Java-based docker orchestration framework on top of Apache Mesos at Oracle, Java EE on Azure, riding the crest, Ed's journey from client to server to cloud

Ed Burns on twitter: @edburns

#160 Modules Are Needed, But Not Easy

An conversation with Ondrej Mihályi (@OndroMih) about:
last episode with Ondrej: Productive Clouds 2.0 with Serverless Jakarta EE, "Modularization, Monoliths, Micro Services, Clouds, Functions and Kubernetes" #151 episode with Matjaz Juric, modules are useful, but the tooling is not easy, using OSGi for User Interfaces, hybrid Java / JavaScript UI, build time and development time modularity, frontend and backend separation is important, business and presentation separation, Boundary Control Entity (BCE) pattern is permissive, strict modularization with WARs and JARs, logical over physical modules, JPMS for hiding internal implementation, modules are more important in teams as contracts, WARs as simple as AWS Lambdas, kubernetes and readiness probes, Elastic Beanstalk is similar to Payara Cloud, Payara Micro optimizations for Payara Cloud, redeployment without restarting the instances, Payara Micro Arquillian Container, hollow JAR approach and Payara Micro, Payara Micro could support native compilation in the future, Jakarta EE core profile and CDI lite, native compilation for resource reduction, Payara implements MicroProfile as early as soon,

Ondrej Mihályi on twitter: @OndroMih

#159 Humans over Computers and Serverless JBoss on Azure App Service

An conversation with Theresa Nguyen (@RockClimberT) about:
Apple II ES with blue screen and yellow font, 3h to install an OS on 386 machine, enjoying minesweeper and Tetris, playing frogger on a flashback Atari, learning Pascal at high school, learning how the brain works, ambition, motivation, attitude and dedication, computers had better keyboards, than typewriters, enjoying Word Perfect, humans over computers, joining Caucho, caucho is the home of Resin application server, meeting at theserverside conference, Jakarta EE, TomEE and MicroProfile, Sun's Microsystem spirit at Microsoft, the importance of opensource software, standardization is freedom of choice, Microsoft at JavaOne, joining Microsoft in 2018, enabling JBoss EAP on Azure, the official Maven archetype from Microsoft, quarkus JAX-RS resource as Java function, JBoss EAP runs on Azure App Service, Azure Service Bus is JMS compliant, the episode 111 about Azure and JMS, JBoss vs. Wildfly on Azure, WildFly on virtual machines and scale sets, serverless JBoss on Azure, Java For kubernetes, j4k conference,

Theresa Nguyen on twitter: @RockClimberT

#158 Kubernetes, KumuluzEE, MicroProfile and Clouds

An conversation with Prof. dr. Matjaz Juric (@matjazbj) about:
about KumuluzEE and the Duke Choice award, SOA had its problems, jetty is the core of KumuluzEE, Java EE fans building a lightweight runtime environment, JavaOne rejection, then winning the Duke Choice Award in 2015, KumuluzEE started with exploded deployments, KumuluzEE supported parts of Jakarta EE and fully MicroProfile from the beginning, now KumuluzEE support MicroProfile 3.3, KumuluzEE created an own configuration framework before MicroProfile, KumuluzEE supports etcd and consul, live configuration updates are supported, KumuluzEE listens to etcd changes, layered configuration approach is supported, KumuluzEE implements some MicroProfile APIs, KumuluzEE is one of the fastest runtime, quarkus is the main contender, event streaming and GraphQL are the most interesting KumuluzEE features, JPA-RS: JAX-RS mapping to EclipseLink / JPA, kumuluzee-rest is similar to JPA-RS, Remote Procedure Call (RPC) is supported with kumuluzee-rpc module, RMI over gRPC, sending classes over the wire is no more supported, Apache Johnzon supports Java Record to JSON serialization, MarshalledObject is great for agent implementation, feature flags are a semantic extension of configuration, KumuluzEE support feature flags with the kumuluzee-feature-flags module, flagr provides feature flagging, kubernetes with istio makes dynamic JAX-RS endpoint obsolete, automation of canary release deployments, KumuluzEE translates specific DSL configuration to istio configuration, kumuluzee-fault-tolerance is MicroProfile compatible, kumuluzee-logs sends logs to various logging frameworks and drivers, energy trading with decentralised blockchain approach like ethereum, episode 145 with Kevin Wittek about ethereum, KumuluzEE is opensource, Kumuluz Platform adds additional features, the larger the module, the lower the overhead in the clouds, Java should not compete with Python and Javascript,

Prof. dr. Matjaz Juric on twitter: @matjazbj and at University of Ljubljana

#157 The Ingredients of GraalVM

An conversation with Oleg Selajev (@shelajev) about:
the red glowing mic, GraalVM is the runtime for your applications, GraalVM is high-performance, embeddable and polyglot, GraalVM comes with top tier Just In Time Compiler (JIT), GraalVM ships as community edition and enterprise edition, Twitter gains 10% throughput and performance improvement with GraalVM Community Edition, GraalVM is a drop-in replacement, GraalVM is based on openJDK builds, the Jikes Java compiler was fast, but not always compatible, Jikes was able to compile Java 5, the dcevm project, javac is written in Java, javac can be compiled to native code, Oracle Aurora JVM - early Java in the database, Oracle AuroraVM - Java in the database, GraalVM comes with better performance by maintaining the compatibility, the different tiers of compilers, GraalVM Enterprise Edition is currently part of the Oracle's Java subscription, GraalVM Enterprise Edition compiler is smarter and better, GraalVM supports Ruby, Python, JavaScript, R and WebAssembly, Truffle provides an API for interpreter API for a non-JVM language, with Truffle you can describe the semantics of your language, Truffle specializes the interpreter to execute your program, GraalVM already ships with several languages built-in, GraalVM supports Ruby with its native extensions, GraalVM is able to optimize multiple languages running in a single process, GraalVM ships with Nashorn compatibility mode, GraalVM supports modern Python, WebAssembly can run on GraalVM, GraalVM supports "BigNumber" types for JavaScript, debug support is implemented via Chrome DevTools, with GraalVM Espresso Java runs on Java, GraalVM team at Oracle Labs is the bleeding edge resource of language research, Java is well suited for language research, Java BeanShell was a Java sourcecode interpreter, Java runs on Java which runs on Java, Truffle ships with sandbox-like isolation, Espresso is Java on Truffle, performance is relative, Java on Truffle allows easier code reloading, wasm runs on browsers and backends, running wasm in a database, the GraalVM team blog at medium,

Oleg Selajev on twitter: @shelajev, Oleg's youtube channel, the GraalVM team on medium

#156 Bash, Apple and EJB, TomEE, Geronimo and Jakarta EE

An conversation with David Blevins (@dblevins) about:
Code Generation with bash, bash is your best friend, scripting as documentation, learn first, then automate, an opportunity to work on an EJB container, working on EJBOSS, working with the great Richard Monson-Haefel, co-founding openEJB with Richard, bluestone and gemstone servers, exolab was an incubator, openJMS, openEJB and castor, working with Apple to integrate openEJB with Apple's WebObjects, openEJB on Apple's WebObjects box, from experience to cash, the concept of isolated containers in openEJB, Dain Sundstrom wrote CMP for JBoss, Rickard Öberg started at openEJB for two weeks, creating Geronimo in 2003 as competitor to JBoss, announcing Geronimo at, Geronimo was over engineered, good idea at a bad time is a bad idea, Convention over Configuration vs. explicit configuration, openEJB's Java Serialization was faster than WebLogic's T3, Geronimo's configuration was not portable, joining gluecode, gluecode was sold to IBM, Jason van Zyl was the creator of Maven, Jason van Zyl created Sonatype, jelly - the executable XML, Maven 2 rollout was tested with openEJB, switching from codehouse to Apache, 600 people were working on WebSphere, Dan Allen was working on arquillian, Arquillian used internally openEJB, JBoss 7 became Wildfly, creating TomEE after JavaOne 2010, TomEE stopped consulting, tomitribe provides support for TomEE, Tomcat, ActiveMQ, TomEE 9 starts in 2 seconds, TomEE passes the TCK with 64MB RAM, TomEE lost access to TCK in 2013 before Java EE 7, TomEE got access in December 2019, TomEE is working on MicroProfile 4.0, TomEE uses Apache Johnzon JSON-P, TomEE uses Apache projects to implement Jakarta EE and MicroProfile specification, TomEE uses BeanValidation for JWT validation, using BeanValidation for authorization with custom data in JWT, Tribestream - the API Gateway,

David Blevins on twitter: @dblevins and David's company: tomitribe

#155 Java, Blues and Tomitribe

An conversation with David Blevins (@dblevins) about:
Atari 800, then Atari 2600, playing Pitfall!, enjoying Apple II, enjoying the M.U.L.E. game, the creative art kid, working at Public-access station, making special effects with Amiga 500, the Monday the 13th horror movie, specializing on make-up, halloween was a working day, the amazing B.B. King, learning blues, studying psychology, going to Ecuador, going to Brown College in Minnesotta, hitting a truck with a mini van, a nice truck driver, starting the iWeb company, working with Apple, developing websites with HTML and JavaScript, 80k salary for a Java developer in 1998, learning Java 1.0 in a week, working as Java consultant, working on Visual Basic and Java integration, writing a web server, hotsite, Silverstream, Jigsaw, working with NorthWest Bank with Swing and CORBA backend, using visigenics ORB, the power of source code, using com.sun.swing, the cancellation of a 35 million project, writing JDBC drivers for PostgreSQL, generating code in bash and Pearl,

David Blevins on twitter: @dblevins and David's company: tomitribe

#154 Serverless Kubernetes without YAML

An conversation with Patrik Dudits (@pdudits) about:
Sparc Workstation, then 486 computer, the Camel book at highschool, inspired by Kraftwerk, a Java Demo CD, CGI coldstart project, the XML publishing pipeline--the Apache Cocoon project, Xerces and Xalan with plain Java, the rotating cube applet, the Camel Book is about the Pearl language, from Pearl to Java, the "Write Once, Run Everywhere" cheating, working and learning in Kosice, building websites with Apache Cocoon, developing ABAP at SAP, ABAP and consistency, switching from ABAP to Java, using the Netweaver Application Server, Web Dynpro for web development, code generators rarely work in practice, low code and code generation, building electric vehicle charging station management system, OSGi, ActiveMQ and GlassFish 3, Glassfish ships with monitoring capabilities and admin console, replacing OSGi modules with EARs for faster starts, using JCA for socket communication, Raft and Paxos leader election pattern, blue green deployments with application servers, starting at Payara, attending workshops, starting at Payara, working on profiling, implementing Jakarta EE TCK build, starting to work on a cloud application server, an application server as kubernetes operator, Payara admin server starts Payara Micro instances, payara cloud without YAML, namespaces, projects and stages, applications in the same namespace can easily communicate with each other, Payara Cloud monitoring and metrics, Payara Cloud runs on AKS, exposing business metrics to Payara Cloud, custom DNS name registration, working on Payara Cloud API, Payara ships with openID connector

Patrik Dudits on twitter: @pdudits, Patrik's blog:

#153 Java, Serverless, Google App Engine, gVisor, Kubernetes

An conversation with Ludovic Champenois (@ludoch) about:
Amstrad CPC 64 with audio tape, listen to bugs, first project: a family tree in Basic, 8-bit music over gaming, learning APL with Game of Life then fortran, inventing the iPad with Apple II, Pascal and assembler, working with computers on boats with Vax VMS and Fortran, refactoring logistics software from VAX to Unix C++ and DEC Alphas, starting at Sun Microsystems in 1996, from Java 0.9 to 1.0, Javasoft vs. Sun Tools, TeamWare was like git but developed by Sun, interviewing the CEO of NetBeans at Sun, working on Netbeans Enterprise Edition, xdoclet was forbidden by Sun Microsystems, Javasoft was the church, using Netbeans at Google, improving application servers usability, writing deployment descriptors by hand, Java EE 5 was a revolution, it was impossible to write an EJB 2 with vi, starting to work on iPlanet Netscape and Sun Server, Java EE Reference Implementation was the ancestor of Glassfish, using Glassfish as Reference Implementation and commercial offering at the same time, implementing HK2 - the dependency injection for Glassfish, generating JAX-RS resources with asm, starting at the Google AppEngine Team in 2011, Google AppEngine (GAE) is one of the first Platform as a Service (PaaS) offerings, serverless and elastic Google AppEngine, GAE came with JPA-like persistence, GAE ships with a single JAR which communicates to various Google services, GAE supports Java 11, GAE supports Servlets and jetty, kubernetes was created at the GAE team, GAE is a single application running on Google's infrastructure, GAE was not able to secure Java 8 like it secured Java 6 and Java 7, using gVisor as replacement for Java's security model, gVisor is the basis of Cloud Run, gVisor rewrites syscalls, gVisor is the new implementation of the libc library, gVisor is the matrix for JVM, Ludovic's presentation about GAE: Evolution of a Platform as a Service from the inside

Ludovic Champenois on twitter: @ludoch

#152 Code Smell, Chess, Java and Developer Relations

An conversation with Oleg Selajev (@shelajev) about:
the 100 MHz Pentium 1, the turbo button slow down, WinRAR with floppy disks, the technologies progresses but the fiddling remains the same, playing chess with the grandfather, the chess tournaments, code smells and chess strategy, starting with HTML and PHP, starting programming with Java 5 with annotations and generics, wisdom and smartness, drawing a snowman with Java AWT, full time job competes with opensource work, early J2EE and XML deployment descriptors, jrebel and ZeroturnAround, using JMS at hospitals, dealing with HL7, starting at playtech to implement casino games in Java, back to zeroturnaround, liverebel, watchdog and monitoring, monoliths are back, everyone talks about microservices, Stack Overflow Developer Survey 2021, The State of Developer Ecosystem 2021 by Jetbrains, Snyk JVM Ecosystem Report 2021, Virtual JUG, Rogue Wave Java Collection, joining Oracle, being DevRel at GraalVM team

Oleg Selajev on twitter: @shelajev, Oleg's youtube channel

#151 Modularization, Monoliths, Micro Services, Clouds, Functions and Kubernetes

An conversation with Prof. dr. Matjaz Juric (@matjazbj) about:
the larger the system, the more important the modularization, modularization and reuse, modularization and business requirements, cross-cutting logic is a solved problem, a module is a Java package, OSGi introduces additional complexity, packaging vs modularity, modularization and team work, most of the patterns became a part of the platform, isolation with deployment units, a module is a Dockerfile, internal modularization became less important, physical and logical modularization, logical over physical modularization, physical modularization introduces complexity, costs driven development, kubernetes and modularization, cloud complexity vs. Java runtime complexity, wrong cloud expectations, CI/CD in the clouds, internal microservice structure should be simpler, ECS blue green deployment with AWS CodeDeploy, vendor independence vs. cloud specific services in the clouds, Payara Cloud: Payara cluster became Kubernetes operator, functions and microservices, serverless computing with functions, function communication styles, Apache Kafka and functions, the Outbox pattern is too technical, KumuluzEE and Kumuluz Platform,

Prof. dr. Matjaz Juric on twitter: @matjazbj, Prof. dr. Matjaz Juric at University of Ljubljana

#150 JavaServer Faces, Web Components, PrimeFaces and JavaScript Frameworks

An conversation with Cagatay Civici (@cagataycivici) about:
support for vue 3, components for vue 3, vue 2 to vue 3 upgrade requires a migration, vue 3 is backwards incompatible, JavaServer Faces / Jakarta Server Faces (JSF), PrimeFaces / JSF design was updated, primefaces / JSF keeps being popular, Java Server Pages / JSPs for server side rendering, Angular is the new JSF, styling and functionality separation, primeblocks is CSS only, primeflex CSS utility, components vs. templates, primevue as web component library, BCE design template, the BElement, NPM-free web component template, Microsoft Blazor for server side rendering, accessibility with semantic HTML, wrapping a checkbox for accessibility and design, blocks are comprising components, React Chakra blocks library, code2 and bubble low code platforms, SSE with Java screencast,

Cagatay Civici on twitter: @cagataycivici

#149 CDI Lite, MicroProfile, Helidon, Micronaut and Serverless

An conversation with Graeme Rocher (@graemerocher) about:
Graeme became a Jakarta EE committer, Micronaut supports large parts of CDI Lite, the Build Time Extension API, SessionScoped, RequestScoped and ApplicationScoped are going to be part of CDI Lite, splitting the BeanManager interface, the goal of CDI Lite, CDI and immutable infrastructure, using TestContainers to spin out micronaut instances, heavy kubernetes, Google Cloud Run, CDI Lite's main goal is memory efficiency and fast startups, using CDI Lite to write CLI apps, using CDI Lite for IoT, micronaut on IoT devices, Azure functions, AWS Lambda and GraalVM, Micronaut Launch as AWS Lambda, Helidon will use Micronaut Core for CDI Lite injection, Helidon will eliminate reflection with Micronaut contributions, Helidon will be able to use any Micronaut module, the micronaut's pom.xml was simplified, micrometer and MicroProfile, eclipse-ee4j CDI lite, separating business and technology metrics, the battle between standards and de-facto standards, OpenMetrics, OpenCensus and opentelemetry, moving fast and backward compatibility,

Graeme Rocher on twitter: @graemerocher

#148 A Serial Duke Choice Award Winner

An conversation with Mohamed Taman (@_tamanm) about:
AMD PC in 1997 with 200 MHz hot AMD, exploring the DOS and QuickBasic, drawing sceneries, photography as hobby, assembling PCs from parts, AS-400 and RPG, QBasic and C++ on Windows 3.11 and Windows 95, to shutdown windows you had to push the start, Windows Millenium Edition, equations in QBasic, starting with Java 1.1, the Sun Certified Java Programmer certification was hard to pass, impressed with Java, Java hides the low-level boilerplate for convenience, catching up with J2EE 1.4 and Java EE, building mazes with OpenGL and Java, working for Silicon Experts, staring with Sun Enterprise Server, later BEA WebLogic, recreating Struts from scratch, the problem with early EJB, working on JD Edwards, Oracle and Siebel integration, using ADF at Oracle, Sun Microsystems was acquired by Oracle, starting at eFinance, efinance is private, but founded by the government, started a United Nations (UN) project for donations management, Java EE 7 with Glassfish was used as the stack, finding bugs in GlassFish, working with the latest versions in mission critical projects, presenting at JavaOne keynote, JBoss to quarkus migration on openshift, "Java EE: Future Is Now, But Is Not Evenly Distributed Yet" at JDD, scaling with hardware,

Mohamed Taman on twitter: @_tamanm

#147 A Soldering, Agile, Geek Lawyer using Java and Quarkus

An conversation with (Lawrence R. Peterson) about:
Tandy TRS-80 with 35 years, practicing law in 1974, terrible IBM typewriters, handling 400 cases per month, increasing the productivity of a law practice with computers, changing the law, soldering computers in leisure, learning Pascal, buying a 12k AT&T computer and learning C, writing a pleading management software with Unix and dumb terminals, writing a file-based database on UNIX, buying a SUN workstation, retooling to C++, networking programming with Sun Station and C++, "write once, run everywhere", Java was solving a lot of problems, transferring to Oracle Application Development Framework ADF, WebLogic and Java, primefaces, RichFaces, icefaces, MyFaces, woodstock and Netbeans, overloading the court with too many perfect cases, practicing Agile without knowing it, migration from WebLogic to quarkus, programming is like a murder mystery, a U.S. missionary in Bavaria, workshops, merging back the microservices into a monolith, From Redux to Redux Toolkit coupon code: redux4free, the template, Lawrence's software:

Lawrence's website Lawrence R. Peterson

#146 EDI, Java Batch, MicroProfile, JSON-API and OpenAPI

An conversation with Michael Edgar (@xlateio) about:
custom Pentium 100, a telnet based, MUD game, Vallhalla MUD, BBS was used to connect to the network, enjoying Apple 2 at school, enjoying Sonic Sega games, learning C-structures at collage, learning 68000 assembly, from Assembly to Visual Basic and Java, starting at an insurance company and learning EDI, X12 and EDIFACT in EDI universe, the fascination with EDI, the beginners mind and Java Connector Architectures, the EDI "hello, world", starting to understand COBOL, back to Java with WSAD and IBM WebSphere, using JDBC, Servlets and Java Server Pages (JSP), using Java Batch processing (jbatch), using Java Batch DSL features, from WebSphere to Wildfly, misusing WildFly as Tomcat, from WildFly to MicroProfile using smallrye, JWT and OpenAPI committer, reusing Java Bean Validation as openAPI metadata, using jandex index for annotation scanning, smallrye OpenAPI already uses Bean Validation annotations, JSON API is used by Ember, JSON API is similar to odata, JSON-API is generated from JAX-RS, JPA and Bean Validation, JSON-API is used by EmberJs, xlate, RedHat OpenShift Streams for Apache Kafka

Michael Edgar on twitter: @xlateio

#145 Java, Blockchain, Ethereum and NFTs

An conversation with Kevin Wittek (@kiview) about:
The Head of the blockchain Lab, University of Applied Sciences in Gelsenkirchen, improving the integrity of the scientific research process, Merkle tree, the reproducibility crisis in science, ethereum NFTs, the metadata extension, IPFS, supermess combined with superhype, installing Ethereum on docker, writing MatLab plugins, MatLab is Java-based, web3j is JSON-RPC, ethereum virtual machine is implemented in multiple languages, the ethereum yellow paper, ethereumj and Apache Harmony, Hyperledger Besu, EBSI European Union, OpenParity is written in Rust, the Ethereum's "Hello, World", a block is a set of Merkle roots, writing a simple smart contract, solidity language is compiled to Ehereum bytecode, smart contract is similar to a Java class, ethereum state replication, the longest chain will always win and the split brain problem, mining is proof of work, signing is proof of authority, Visual Studio Code solidity extension, remix - the web based solidity IDE, oracle feeds data into Ethereum, the Interplanetary File System - IPFS, an IPFS node is deployed on the ISS, blockchain for the enterprise, fabric was used on Kafka, ethereum mainnet and ethereum classic, the bug in the EVM, mining requires computer power, the search for partial hash collisions, the economy of mining - it is more economical to mine, than to attack, NFT for Iron Kobra,

Kevin Wittek on twitter: @kiview on github and Kevin's blog.

#144 How Java WebSocket Implementation Happened

An conversation with Justin Lee (@evanchooly) about:
C-64, the Run Magazine with source code, summer olympics - the joystick destroyer, coding "triangle with trigonometry" in Basic, computer were like science fiction, random access file in C-64 basic, IBM PCjr BASIC, writing American Football simulator, starting Turbo Pascal, learning Oberon and C, NAG and fortran, loosing a sub tree, the Forth programming language, starting Java on HP-UX machines, starting with JDK 1.0.2, the amazing Sun branding, Software Development Lifecycle - SDLC, writing software costs estimation in Java, 3D modelling in TCL/TK, working with TogetherJ, using vim professionally, starting with Eclipse and JBuilder, building systems for online grocery shopping in 1998, using jhtml with Dynamo ATG, building an own application server with own persistence, using the blaze rules engine, using Java Server Pages with Jasper compiler, JSP was a weekend project, JSPs could be sold SSR, working on Glassfish and Project Grizzly, implementing WebSocket in Java on application servers, using Comet communication style with Atmosphere, using GlassFish with grizzly for long polling, writing unit tests for WebSockets in a Chrome client, Tyrus took the Grizzly implementation as base, Dany Coward wrote a Web Socket book, SPDY and Bosh were the bases of HTTP/2, the sticky session Web Sockeet problem, using WebSockets for Java application servers clustering, starting at Squarespace, Squarespace used Java on the backed any MySQL / MongoDB, fronted was implemented in YUI (Yahoo UI), maintaining Morphia for MongoDB, joining Red Hat and working on quarkus, working on Quarkus MongoDB integration, Quarkus Kotlin integration, eventually and evancholy

Justin Lee on twitter: @evanchooly, Justin's blog:

#143 How Hudson and Jenkins happened

An conversation with Kohsuke Kawaguchi (@kohsukekawa) about:
running Family BASIC on Nintendo, learning C++, building abstractions, growing up in Tokyo, a Japanese keyboard, selling shareware programs in high school, writing a Text file viewer, earning 5k per month as a kid, PCs stores in Tokyo, learning chinese, Japanese vs. Chinese characters, building software at university, building an XML editor for XSL, reverse transformation from XHTML to XML, XML schema was lacking mathematical elegance, starting at Sun Microsystems in California, Sun didn't liked SOAP, starting at J2EE / Java EE team, working with James Clark on RelaxNG at Sun Microsystems, implementing Java Architecture for XML Binding / JAXB, Java Project Adelard, Java and XML the evil book at JavaOne, YAML vs. XML, using JAXB for generating JSON, working long hours in Tokyo, working times at Sun Microsystems were almost vacations, being a build breaker, getting the idea for Hudson, Hudson started as a leisure project, Hudson - an executable WAR, Hudson was based on the winstone servlet engine, winstone is embeddable, Hudson installation and administration was easy, software was like another person in the team, Hudson was like a British buttler, writing args4j, writing hk2, exploring native Java integration capabilities, working partially at Glassfish team, being part of Oracle, the forgotten developer at Oracle, forking Hudson to Jenkins, large corporations are not always rational, leaving Oracle and joining CloudBees, becoming a CEO of launchable, starting launchable, the confidence in code changes, using ML to sort tests, GraalVM can run Python, Ruby is popular in Japan,

Kohsuke Kawaguchi on twitter: @kohsukekawa, Kohsuke on Wikipedia, and Kohsuke's website

#142 Serverless with Java EE, Jakarta EE, MicroProfile and a Kubernetes Operator

An conversation with Rudy De Busscher (@rdebusscher) about:
plants and genetics, strawberry cross-pollination experiments, playing plant related games, statistic calculation and classification algorithms, tomato quality check automation, fourier transform on tomatoes, learning Pascal, learning Oracle forms, switching to Java Server Faces on WebLogic Server, from WebLogic to Glassfish, wasting time by creating a "unique snowflake", working as Java EE consultant, blood samples analysis with device integration, Java Connector Architecture and Java EE, starting at Payara, Payara implements MicroProfile 4.0, Payara implements MicroProfile "from scratch", Payara comes with deep MicroProfile integration, Payara InSight monitoring dashboard, the "happy case" focus, letsencrypt Payara integration, Payara Grid is the successor of Glassfish Shoal, persistent EJB timers can be synchronized with Hazelcast, Payara Cloud comes with "serverless" experience, Payara Cloud is kubernetes operator, the WAR as cloud deployment unit, a Payara Micro for each WAR in a Pod, Payara Server is the orchestrator, Payara Cloud is currently running on Microsoft Azure

Rudy De Busscher on twitter: @rdebusscher

#141 FN Java, Java on Java and GraalVM features

An conversation with Shaun Smith (@shaunmsmith) about:
the virtual conference problem, prerecorded talks, pre-recording and cheating, the Drive-In Conf in bulgaria, the state of FN Java, building a scalable platform is harder than building the fn-project, lambdas and functions are starting to be used properly, migrating monolith to lambda functions, deploying a JAX-RS resource as a function, moving from Oracle Clouds to Core Java at Oracle Labs, product manager for GraalVM, Maxwell, Maxine and GraalVM, episode: From Maxwell over Maxine to Graal VM, SubstrateVM and Truffle, from Java bytecode to machine code, COBOL, WebAssembly, PHP, Python, R, LLVM, WebAssembly on CloudFlare, Java annotations vs. Java annotation processing, mapping Java Persistence API (JPA) is ideas to Micronaut Data, Micronaut data is based on conventions, JPA based on defaults, micronaut data is similar to iBatis, small microservices become too expensive, you can serve a a few millions of customers with a single monolith, netflix monolith architecture, the overhead of kubernetes, Google Cloud Run, heroku-like service becomes popular again, Oracle Application Cloud Service, Google Cloud Run, mult-tier compilation for truffle, booting faster with GraalVM, Java Serialization with GraalVM, Java Espresso or running Java as foreign language on Java, Espresso interprets Java bytecode, GraalVM introduces resource constraints for byte code execution, GraalVM becomes a docker-like environment, GraalVM improves security guarantees, Java SecurityManager APIs on steroids with GraalVM, the gvisor project, WebLogic multi-tenancy features, GraalVM in Oracle Database, stored procedures in Oracle Database with GraalVM or Oracle Multilingual Engine|, GraalVM ships Java VisualVM, GraalVM Community Edition comes with the same license as openJDK, benchmark suite for the JVM, GraalVM CE should perform faster as openJDK, GraalVM EE is a lot faster than GraalVM CE, GraalVM consumes less resources, GraalVM comes with partial escape analysis, GraalVM comes with G1 garbage collector, GraalVM isolates is a nested JVM, GraalVM goes JVM-less, OpenJ9 vs. GraalVM performance, openJDK performance is competitive with openJ9, AuroraJVM on Oracle Database, Oracle Coherence GoldenGate HotCache and TopLink, running JPA backwards, debezium subscribes to XStream, GraalVM advisory board

Shaun Smith on twitter: @shaunmsmith

#140 MicroProfile Metrics, Micrometer and Quarkus

An conversation with Erin Schnabel (@ebullientworks) about:
switching from IBM to Red Hat, the great ThinkPad 31p, gentoo linux on Dell laptop, Dell vs. Alienware, working on quarkus, the Q quarkus issue, Quarkus, Health, Metrics,OpenAPI: Moved Permanently (301), OpenLiberty, Quarkus and the non-application namespace, Thinkpad with Windows Vista and an Apple sticker, Erin Schnabel-Metrics for the win! conference, micrometer comes with support for Datadog metrics and other non-prometheus, prometheus as integration point, the relation between Microprofile Metrics and micrometer, OpenTracing, OpenCensus and OpenTelemetry, Quarkus and MicroProfile

Erin Schnabel on twitter: @ebullientworks

#139 From Personal Java, over Java EE to Serverless and back to the Java Platform

An conversation with David Delabassee (@delabassee) about:
C-64, Commodore 128, Amiga 500, and Amiga 2000, Basic then assembler, developing a basic horse racing statistics application, saving the state to the tape, understanding Peeks and Pokes, Amiga 500 vs. Atari ST, extending Amiga 2000 with a PC board, starting to program Turbo Pascal on a PC, the 47 MB hard disk, a vectorized walking person in Turbo Pascal, the War Games movie, the acoustic coupler, the U.S Robotics modems, identifying modems by sound, writing a terminal application, learning how to learn, using Vax VMS at the university, a pigeon-based failsafe system, creating a word processor in C to write Safety Data Sheets, writing backend application for Motorola Unix running on Motorola Hardware, discovering Java applets in 1995, teletext and minitel, developing a web phone in 1997 in Personal Java, booting a phone in 15 minutes, building a TV set top box for Navio, starting at Sun Microsystems and Javasoft as pre-sales and a Java Ambassador, Java Developer Connection (JDC) and Duke Dollars, Java EE evangelist at Oracle, inspiring JavaOne conferences, spending time with Glassfish in the "field", working on EE4J and Java EE to Jakarta EE transition, the trigger of open sourcing the Java EE platform, moving to serverless organization at Oracle, FN project is used under the hood of Oracle Functions, joining the Java platform group, launching the Java Inside podcast, launching the website focussing on Java SE platform

David Delabassee on twitter: @delabassee

#138 How Grails and Micronaut happened

An conversation with Graeme Rocher (@graemerocher) about:
Playing games with 286, playing digger, starting programming with quakec, programming custom explosions for rocket launcher with "shockman", working for a Apache Cocoon company, JavaScript and Java as second languages, programming learning management SYSTEMS with Java, publishing motivated by learning, programming over gaming, using JBoss on the backend, extracting content from Word with Apache POI and Groovy into XML, using XSLT to convert XML into HTML, data driven templates with XSLT, data-driven stylesheets is the way to go, starting with Visual Basic, the raise of Ruby on Rails, starting Groovy on Rails--Grails, groovy and the "method missing", "method missing" was heavily used in gorm, working on SpringData, SpringData and GORM are similar, joining Object Computing, staying small and be successful, with reflection you will use more memory at the runtime, micronaut was started by Graeme Rocher, micronaut is based on annotation processing, there is no "mobile native" development, on Android reflection is not used, better error messages was one of the design goals, micronaut comes with annotation-based introspector, micronaut generates a reflection-like API based on annotation processors, micronaut was announced in March 2018 and opensourced in May 2018, CDI was hard to implement without annotation, micronaut is similar to Spring, micronaut supports JSR-330 and is TCK-compliant, the Bean Validation module, micronaut supports micrometer, micronaut teams grows at Oracle, Visual Studio Code ships with GraalVM Extension Pack and Micronaut support, micronaut and Helidon are developed by multiple teams, Oracle actively supports micronaut, micronaut and GraalVM are great fit, micronaut is complex at compile time, but simple at runtime, helidon will be able to use the Micronaut Data, the JAX-RS with micronaut screencast, Object Computing, Google, Oracle are contributing to micronaut,

Graeme Rocher on twitter: @graemerocher

#137 (fake) reactive programming, project loom, chunked IO

An conversation with Lenny Primak (@lprimak) about:
no aviation, applying at google and amazon, the online coding assessment at amazon, the lost test at amazon, starting as test engineer at Payara, TestContainers, JUnit 5, project loom impact on reactive programming, the killer use cases for reactive programming, callbacks, promises and async-await in JavaScript, Glassfish grizzly was the origin web server, doubling the work with nonblocking IO, chunking the IO to the size of the buffer, trying to patch the hazelcast, payara enterprise and payara community, hazelcast could be used as zookeeper, payara insight, payara cloud, sun grid engine was the first cloud, ThinWARs vs. Helidon's and quarkus SkimmedJARs, thanks to Bauke Luitsen Scholtz for accepting the JSF contributions, Jakarta EE proxies are serializable, readResolve serializable method, the lombok contributors, the payara contributors, lombok's delombok, apache tapestry,

Lenny Primak on twitter: @lprimak

#136 From ZX Spectrum over Clouds To Winning the Java Duke's Choice Award

An conversation with Prof. dr. Matjaz Juric (@matjazbj) about:
ZX Spectrum 48k, loading apps from cassettes, playing games, enjoying Space Invaders, switching from Basic to assembly, switching to C-64, implementing application for exams at elementary school, starting to structure programs, getting serious with Schneider PC, creating bookkeeping applications with Borland Turbo Basic, dBASE and clipper were productive, visiting the CEBIT in 1990-ties, daily linear algebra in a bus, C, C++, Pascal, assembly, Vax then Java, studying at the University of Maribor, writing software to assess the value of companies, Ph.D. with ORBIX, Visigenic and RMI in Java, reading JavaReport magazines, writing performance about Java performance, RMI and CORBA, working with IBM Hursley on RMI-IIOP implementation, starting at University of Ljubljana, Java migration projects, Java EE - the enterprise edition was fascinating, Wrox publishing books, contributing performance chapter for Professional EJB book, writing Professional J2EE EAI book for wrox, Service-oriented architecture was a hot topic, orchestration is challenging for non-developers, decomposing application to services is useful, Azure Logic Apps, using JBPM for modelling long-running transactions, BPMN improved BPEL, writing WS-BPEL 2.0 Beginner's Guide about Colaxa, then oracle BPEL suite, the advent of KumuluzEE, attending JavaOne, proposing "the end of application servers" session, applying for Duke Choice Award, KumuluzEE is Java Duke's Choice Award Winner, attending the Java Duke Choice Award ceremony, making KumuluzEE kubernetes-aware, early KumuluzEE started with cloud-native EE extensions before availability of MicroProfile,

Prof. dr. Matjaz Juric on twitter: @matjazbj, Prof. dr. Matjaz Juric at University of Ljubljana

#135 Writing Boring Software: From WebLogic over GlassFish to Quarkus

An conversation with Antonio Goncalves (@agoncal) about:
C 64 with tapes, writing thousands of Basic lines, the Power Cartridge and assembly, the "10 GOTO 10" trick, line renumbering with Power Cartridge, the arkanoid game, form BASIC to assembly, Peeks and Pokes, Pascal, prolog to modulog transpiler, programming chips in C++ for a telekom company, discovering Java and WebLogic, the amazing minitel, minitel was huge in France, building Java Server Pages on WebLogic in 1999, joining WebLogic in London, digging wholes to find water, Java EE 5 book with Glassfish in 2007, Java EE 7 book in 2013, talking at Devoxx about JUnit 4, moving from WebLogic to GlassFish, Java EE is the Esperanto of runtimes and servers, Marc Fleury at Paris JUG, the unknown student from Iran, paying back by reviewing a book, self-publishing books, the Java EE 8 drama, the politics in Java EE 8 were stronger than technical innovation, the Java Injection spec, JSR-330, CDI drama, the road to quarkus, Grame Rocher mitronaut talk, from Spring over Micronaut to Quarkus, Practicing Quarkus and Understanding Quarkus books, Quarkus hot reload is impressive, GraalVM with Quarkus is just -Pnative, at start everything is already optimized with Quarkus, Helidon is an interesting alternative to Quarkus, Helidon's CLI is useful, WebLogic customers get support for Helidon,

Antonio Goncalves on twitter: @agoncal, Antonio's github account and blog

#134 How EJBGen, TestNG and ...Android happened

An conversation with Cedric Beust (@cbeust) about:
Apple II was the first love, building an Apple II emulator, the C64 domination, starting with Basic, then switching to 6502 assembly, cracking games for fun, learning Pascal, starting to study Math because Computer Science was not available, working as administrator at school, switching to Amiga 1000 then Amiga 2000, joining the demo scene, the impact of remote applications as PhD, working with C++ and CORBA, C++ language involvement, meeting Bjaerne Stroustroup, evolving a language is hard, starting with Java 1996, joining Sun Labs in 1998, implementing "persona" at Sun Labs with Java, Sun was not the right place to work with Java, applying at Imprise to work on Borland Application Server, meeting the WebLogic developers at a party, joining WebLogic, C++ was hard to work with, Java was a fresh air, the EJB container team was 10 developers, writing EJBGen, working on Java annotations, the relation between EJBGen and xdoclet, the Attribute Oriented Programming with XDoclet, the metadata should be in the near of Java code, joining the JCP to create Java Annotations, starting at Google to work with Adwords, motivated by shortcomings of JUnit, TestNG was created in 2004, WebLogic vs. WebSphere, tests should depend on each other, TestNG was an exploration of a modern framework, Google's mobile team were 5 people in 2005, starting a mobile Gmail project at Google on J2ME, Java Mobile, Google Android's acquisition, working with Andy Rubin to develop a Java-based OS, a team of 5 developers started to build Android, Android was strategic for Larry Page, users should be in power-this was the spirit of Android, Android development was "Top Secret", leaving Google to join a startup, building internal tools for supervision at LinkedIn, creating a calendar assistant at a startup, starting as "firefighter" at Yahoo in Java space, starting okta, okta is an "universal" SSO, implementing SSO across companies at okta, okta's backend is written in Java

Cedric Beust on twitter: @cbeust, Cedric's blog

#133 How lit-html happened

An conversation with Justin Fagnani (@justinfagnani) about:
creating fireworks animations with Apple IIe, games were hard to get for Apple IIe, "hello, world" with Apple Basic, enjoying the un-productivity and making funk music, Basic, Turbo Pascal, Turbo C, Java and Python, starting with Java 0.9 and Applets, Microsoft introduced JScript (Visual J++) with major incompatibilities to Java, staring with Python and Django, Python over Ruby, studying an algorithm book for two weeks to pass the interview at Google, using FileMaker, starting at Google's HR department compensation planning system, creating the AppMaker during the "free" 20% Google time, AppMaker was shutdown in 2020, AppMaker is an low-code application builder, one-click deploy and one-click deploy, GWT and Java were heavily used at Google, using Java's Rhino to run JavaScript on the server, the AppMaker clone with Dart, writing parsers and Polymer Dart, Chrome supported Dart, leaving Dart before flutter, Angular Dart is very popular at the apps group at Google, wiz is the most popular web framework at google, joining the polymer team, html imports vs. JavaScript imports, CSS-modules and JSON-modules proposals, lit-html start to provide better tooling story for Polymer 3.0, lit-html vs. hyper-html, ES 6 template literals enable great performance for lit-html, Microsoft's fast framework was inspired by lit-html, lit-html source code fits on a slide, lit-html source size is close to 3kB, the first lit-html breaking change since 2017, the contractual obligation to support IE, lit-html vs. lit-element, lit-element offers a richer, reactive lifecycle, decreasing lock-in is lit's design philosophy, passing data between component trees, cross-DOM communication with Custom Events, Web Components conventions are micro stacks, less and less needs for a JavaScript framework, chrome is shipping with import maps, web platform - and the tooling is optional, polymer was not the component host, polymer is popular inside google, lit-html is growing fast at google, Chrome OS is using lit-element, Chrome Dev Tools is implemented with lit-html

Justin Fagnani @justinfagnani, @polymer and @lit_html on twitter

#132 Shakespeare, Satellites, Java and

learning programming with PDP-8, the landscape with sinus and cosinus curves, C 64 for navy work, early PC for 35k, translating fortran to Basic, math is great to describe universe as a machine, saving soldiers with equations, mathematics can analyze patterns from the past to predict the future, Java Virtual Machine constantly optimises itself, recognising patterns from the msx satellite's data, MSX was constantly scanning for missiles, algorithms for speed, translating math to programs, enjoying William Shakespeare, James Joyce and Dante, editing books for oreilly and wrox, podcasts at JavaOne, blogging for BEA, Sun, Intel, AOL, JVM is genius, GraalVM is amazing, becomes the new 2.0, Geertjan Wielenga was hired to create,

#131 I don't hate your DTOs

An conversation with Christian Beikov (@c_beikov) about:
Nintendo, then Pentium 3, the rpg maker, blockly - the visual programming language from google, switching to C programming at highschool, starting with Java 1.5 and Swing, Java was really appealing, using NetBeans for development, developing a RPG game in Java, learning programming at HTL, studying software engineering at Vienna University, trying to implement an Operating System in Java, trying to start with Java Maxine, jos the free Java Based Operating System, jnode -"Java New Operating System Design Effort", starting with PHP, trying to port Java "standard" library to PHP, Java Server Faces (JSF) offers a nice programming model, starting the blazebit company at highschool, architecting Java EE software at supply-chain management, initiating the opensource Blaze Persistence project, running JSF on WebSphere classic was painful, SaS based JSF business, great primefaces experience, Blaze-Persistence on 80th switching from WebSphere to Wildfly 10, migrating from WildFly to openshift and PostgreSQL, starting another startup: Sweazer - the tinder for shopping with Java EE and Apache Cordova, working on Hibernate at RedHat, Adobe PhoneGap is EoL, optimizing costs for RDS on AWS, clouds can be too expensive, WildFly worked perfectly in the clouds, WildFly ran on EC2, reducing the amount of data with blaze persistence entity views, using JSON aggregation functions to reduce network traffic by folding collections, using multi-set strategy to aggregate results into a JSON document, reducing the selected columns for performance, Markus Winand - the SQL ambassador, "Blaze-Persistence: Use Modern SQL like native JPA", indices over caching, the JPA "dot" operator produces inner joins, Blaze-Persistence query builder supports CTEs, Common Table Expressions (CTE), Java Persistence API is productive enough for startups, Blaze-Persistence generates implementation for interfaces, Blaze-Persistence maps deep query result hierarchies into DTOs, Open Session in View concept was bad for performance, Blaze-Persistence supports Java Records, article: Blaze-Persistence: Use Modern SQL like native JPA commercial support is available for Blaze-Persistence,

Christian Beikov on twitter: @c_beikov, and Christian's company:

#130 Helidon CLI, Builds, Docker and Kubernetes

An conversation with Romain Grecourt (@rgrecourt) about:
introduction of clean Java EE 6 API guidelines by Bill Shannon, the guidelines were implemented by Romain, the Maven Versioning Rules by Bill Shannon, predictable groupids, artifactids and package names in Java EE 6, helidon comes with a flat classloader, in helidon there is no distinction between helidon's and third party libraries, Java EE 7 fixed the uncompilable API issue, API jar is the implementation of the API, Java EE APIs from different vendors may vary, javax API was not meant to be universal, Bill Shannon was one of Solaris architects, the "Oracle Native Developer", GlassFish v2 and v3 was "bleeding edge", early GlassFIsh versions were built with Apache Ant, WebLogic multi-tenancy and vertical scaling, WebLogic build system modernization, migration from Jira and Mercurial to GitHub, migration from svn to git, GlassFish started with cvs then transition to svn, KDE's svn to git, during the transition from Java EE GlassFish to Jakarta EE GlassFish some history got lost, the "Java For Cloud" project, "Java For Cloud" is the ancestor of Helidon, weblogic 8 was very fast, GlassFish v3 was internally modularized, Helidon was inspired by Java 8 functional programming capabilities and expressjs, Java For Cloud was "Functional First and Reactive First", Java For Cloud became the Helidon Web Server, Helidon SE would compete with Vert.x, Reactive Programming is Helidon's implementation detail, Helidon supports Java Loom, Helidon SE is faster, than Helidon MicroProfile, CQRS might help with database scalability, Helidon CLI is written in Java and translated with GraalVM to a native executable, vuejs CLI developer experience inspired Helidon CLI, GraalVM: goodness of Go and greatness of Java, Helidon CLI will support pluggable extensions, Helidon comes with home-made templating framework, - the "Watch and Deploy" tool, jib - demon-less docker image builds, incremental Docker re-builds, Helidon and direct support for Kubernetes, the minimilastic, beatiful YAML, xdoclet and Attribute Oriented Programming, maven has no knowledge about plugins, maven vs. gradle, the Thirsty Bear GlassFish party,

Romain Grecourt on twitter: @rgrecourt, helidon's slack channel

#129 How Caffeine Cache Happened

An conversation with Ben Manes (@benmanes) about:
TRS 80, Tandy RadioShack 80 computer, never push the red button, playing Reader Rabbit on 287, the fascination with hardware, the experimentation with water cooling and thermopads, learning C++ and Java at the University in Chicago, starting with Java 1.4 at school, building corporate travel systems with Java 5, the six hour interview at Google with a binary search tree, working on CRM tool at Google, building an enterprise version of iGoogle in Java and GWT, using Guice and GWT GIN to implement, using a perforce monorepo, perforce was replaced by internal system called "paper", using blaze and bezel build system, bezel is more distributed, one build file per package, starting at a logistics company with Java 15, the jetty, JAX-RS, keycloak,RESTEasy, jooq and google's guice, starting to write a cache in 2008, using memcached and Java Message System (JMS) for synchronization, Java 5 and the Concurrent Linked HashMap / LRU, building Google Guava cache, Concurrent HashMap was used by Apache Cassandra, Google's MapMaker is predecessor to Guava Cache, Caffeine work started in 2008, EHCache was not concurrent back then, Java 5 concurrent HashMap didn't scale well, Java 5 regions in HashMap were too big, there were too many entries per segment, Java 8 uses small hash bins and scales better, Caffeine builds on top of Java 8 ConcurrentHashMap, LRU and every reads is a write, cache policy can be lossy, using dynamically growing data structures, Caffeine uses Java Collections, Caffeine looks like a HashMap, Caffeine adapts automatically to the read-, write-, or mixed workload, Caffeine's configuration is descriptive, refresh policies, cache loader, expiration, asynchronous behavior, listeners, soft- and weak references were supposed to be the solution to everything, hit rates monitoring, micrometer, dropwizard, prometheus monitoring adapters are available, reasearch papers tend to lie, working with cockroachDB committers, Infinispan uses Caffeine, the bias against pre-made stack

Ben Manes on twitter: @benmanes, Ben's GitHub account:

#128 From Competitive Gaming to Java EE API Mavenization

An conversation with Romain Grecourt (@rgrecourt) about:
started with Apple 2 Computer at the age of 8, starting games from command line, writing HTML on Pentium 90, the blink and marquee tags, creating a website with JavaScript and HTML and Netscape Composer, icefaces and icebrowser written in Java, from animated GIFs to Macromedia Flash, creating a website for a hockey club in Flash, computer parts for website creation, creating computers from parts, sports with Counter-Strike, blocking the telephone line with a modem, finding opponents on QuakeNet IRC, becoming an admin on a channel with a bot, starting with IRC scripting, winning Counter-Strike tournaments, writing a "bouncer" bot, installing a dedicated Half-Life server on mandriva linux, redoing the Counter-Strike menu in Flash for the team website, Programmable logic controller (PLC) based automation assignment, the desire for 100 FPS, creating a selective cat trap door with magnets and using SolidWorks, C programming to control a disk drive motor, starting at the wrong college, switching to software engineering college, starting with "french" C++ then switching to the real thing, working with wireshark and assembler, C, C++, Linux, Emacs over Java, reading stack traces is great, starting a web services projects with Java and Axis 2, starting with Maven 1, scripting a tree shaking functionality for JAR creation with make, starting at Serli to implement the Java EE security spec at Jonas Application Server, working with GlassFish to support application versioning, working with NetBeans, Maven 2 and Subversion, becoming a Maven and NetBeans fanboy, Serli worked with Alexis MP (#23 From GlassFish to Java in Google Cloud) GlassFish application versioning was announced at JavaONE, starting at Oracle at GlassFish team in Prague, implementing OSGi and HK2, specialising at GlassFish Maven 3 builds, packaging the Java EE API jars, Java EE 6 API without the implementation, introducing conventions for Java EE packaging,

Romain Grecourt on twitter: @rgrecourt

#127 How KumuluzEE Happened

An conversation with Jan Meznaric (jmezna) about:
Windows 98 on Pentium 1, recording a Windows 98 screen with an old VHS camera, enjoying MS Paint and educational games, starting programming with Visual Basic and "Happy New Year", the Linux fascination, creating PHP based websites, making a barcode scanner working during vacations in .net, the superstar programmer at high school, starting with Java 2, enjoying Java EE and GlassFish, joining the Java Enterprise research program at the university, JBoss, input validation with Java Server Pages (JSP), Drools and JBPM, business rules are too hard for business users, Drools debugging is a challenge, the University of Ljubljana, the microservice framework for Java Enterprise solutions, optimising Java EE for cloud native architecture, Glassfish, Payara, WildFly vs. KumuluzEE, "java -jar glassfish.jar", KumuluzEE committers at MUC workshops, KumuluzEE ships with the smallest jar, KumuluzEE JPA / CRUD app starts in a few seconds, exploded JARs, FAT jars and layered JARs are coming, KumuluzEE supports MicroProfile, KumuluzEE supports etcd and consul, KumuluzEE discovers kubernetes services, KumuluzEE comes with useful extensions, ethereum integration, feature flags support, the version export, subscribing to blockchain events, KumuluzEE comes with commercial support, KumuluzEE uses smallrye to implement some MicroProfile APIs, tree vs. flat metrics, configuration change events, peer to peer microservice update strategies, Java project JXTA, wild pigs, peer to peer and octoberfest, creating a Kubernetes ingest controllers

Jan Meznaric on github: jmezna

#126 JavaFX Everywhere ...also in App Stores

An conversation with Johan Vos (@johanvos) about:
Gluon Mobile, JavaFX was supposed to replace Swing, Swing and AWS were created in a hurry, JavaFX is a significant improvement, Java started on Star7, JavaFX ran on an iPad during JavaOne, the source of JavaFX was already in a good shape, creating native apps with GraalVM and JavaFX, JavaFX does not require to install Java on mobile device, SubstrateVM helps with cross-compiling Java to native code, Apache Cordova, shipping JavaFX applications to AppStores, SpaceFX, JavaFX on RaspberryPI, JavaFX on an iPhone emulator, JavaFX provides similar experience to flutter, the TooManyLanguagesExceptions, the Google Cemetery, Gluon Attach framework helps with sensor integration, JavaFX's WebView uses WebKit on iOS, building a hybrid app with WebComponents and JavaFX, using CustomEvents to communication between Web Components and JavaFX, on desktop JavaFX uses recent WebKit builds, native vs. cross platform look and feel, JavaFX ships with material design based look and feel, JavaFX is GPU accelerated on mobile, JavaFX uses OpenGL, EGL, JEP 382: New macOS Rendering Pipeline, Apple's M1 Chip simplifies JavaFX development, JavaFX can run as Java application, or as native executable, JavaFX transpiles with GraalVM to native application, JavaFX transpiles to native C iOS code, the covering a blog engine, Gluon provides commercial support and roadmap priority shifting, openJFX vs. JavaFX is like openJDK vs Java, Gluon Mobile is a commercial product, Gluon CloudLink integrates with serverless runtimes, fnproject is used as serverless platform, Gluon Cloudlink could use MicroProfile GraphQL as backend, ODATA is useful to integrate frontend with data-rich backends, Apache Olingo, Oracle is a great steward of Java,

Johan Vos on twitter: @johanvos, Johan's company: Gluon

#125 How Struts 2 Happened

An conversation with Lukasz Lenart (@lukaszlenart) about:
Playing platform games on Commodore VIC-20, the desire to write a game, starting to program on Commodore C 64 in Basic, the podcast episode about magic: #106 The Open-Closed Principle and Lots of Magic, a series of if-else statements, learning Pascal then Delphi on a PC, writing network tools in Delphi, starting at ZUS and Delphi Automotive Poland automotive, working as network engineer with Novell Netware, running Java on Novell Netware, Java, Netware Directory Services (NDS) and LDAP, Eric Schmidt was CEO at Novell, the Java San Francisco Framework from IBM, using JBuilder for NDS Java development, learning PHP for production monitoring, using PHP with Common Gateway Interface CGI, migrating from PHP to Java, JSP and Struts, discovering robotics as automative engineer, the kuka robots company, combining Struts 1 with Enterprise Java Beans (EJB) for pragmatic reasons, using Struts and Tiles, building production forecasts with Struts 1 for a Manufacturing Execution System (MES), NetBeans Days in Warsaw, Gdansk and Posen, JBoss project for dial tone discovery, starting at SoftwareMill, SoftwareMill created Hibernate Envers, the first contribute to Struts 2 and NetBeans, WebWork was the beginning of Struts 2, WebWork is used by Jira - a special version of Struts, Sony Europe is using Struts, a basic Struts 2 application, Struts 2 and MVC implementation, Struts 2 support CDI Dependency Injection, vuejs vs. struts 2 contributions comparison, using Java backend web frameworks as SSR / Server Side Rendering, disconnecting JSPs from Struts, MicroProfile Training workshop - rewriting the blog engine in a workshop:, it doesn't make any sense to run wikipedia as a SPA, the equifax remote code execution and the patch, the OGNL was used to open a port, is there a reason to learn Scala if you Java 16? quarkus as the next generation runtime,

Lukasz Lenart on twitter: @lukaszlenart, Lukasz' blog

#124 Databases and Business Analysts

An conversation with Ben Brumm (@databasestar) about:
a macintosh with a color monitor, playing games like time crisis, sim city, on Pentium, pixel perfect vs responsive design, starting "programming" with Microsoft Frontpage, writing simple programs with Visual Basic, starting Java in 2001, writing a Java app to search for file on CDs writing Java CLI with GraalVM, starting with Oracle Database and SQL Server, starting as a business analyst, using toad, datagrip, postico, and SQLplus for database development, using SQL developer and PL/SQL developer, using Visual Studio Code for database development, skipping business analysts and talking directly to users, writing code forces you to think harder, nice Java objects vs. highly normalized database, denormalizing database for performance, structural changes to database take too long, using FlywayDB and liquibase for automated database deployments, when DDLs take too long, dealing with structural rollbacks in DB and the red gate tools, Oracle Editions and Flashbacks, increasing PostgreSQL popularity, using PostgreSQL JSONB functionality as extensions column, using Oracle XStream, using Change Data Capture (CDC) and Debezium, Ben's blog: and book: Beginning Oracle SQL for Oracle Database 18c: From Novice to Professional

Ben Brumm on twitter: @databasestar

#123 Plasma is the new "Hello,World"

An conversation with Bert Jan Schrijver (@bjschrijver) about:
C64, playing Paper Boy, winter games - the joystick destroyer, BASIC, print, sprites peek and poke, resilience patterns and fault tolerance motivated by a stronger brother, writing text based adventures in BASIC, programming Turbo Pascal on a 486, smoking computers, joining the demo scene and the 28k modem, generating samples - the SVG for music, staring with Java at the university, experimentation with Java Applets, enjoying static imports with Java 5, plasma with an Java Applet, flood prevention simulation in Java, building a text classification system in Java, the beginning of AI with Java, using Java Server Pages and Servlets at an insurance company, combining Groovy with EJB 3, starting OpenValue with 25 people, migration from Java EE servers to quarkus, Quarkus--the comeback of Java EE, WildFly Swarm and "I don't want your Thorntail" podcast episode, Guild42 Serverless Java #slideless presentation, GraalVM made Java appealing again in the server space, EJB pooling could solve lambda cold start problems, from developer the manager - and the end of plasmas, Bert's plasma in JavaScript:, OpenValue is hiring,

Bert Jan Schrijver on twitter: @bjschrijver and

#122 Java CLI Apps, Builds and jbang

An conversation with Max Rydahl Andersen (@maxandersen) about:
JBang, JEP 330: Launch Single-File Source-Code Programs, kscript and quarkus releases, the killer feature of JavaFX, starting JavaFX app with jbang, modern Java developers don't like to play with legacy JavaScript, building Java apps with jbang, jbang and github actions, ShrinkWrap, jitpack, Java jshell is lacking system properties, arguments and debug support, running Quarkus CLI with jbang without Java installed, jbang--the Java launcher for the 2020-ties, quarkus with Qute as replacement for Java's nashorn, transitive script dependencies, jbang with quarkus could become a solution for serverless, simplified approach to build and test Java agents with jbang, Java Class Data Sharing with jbang, Java Flight Recorder support in jbang, stress testing with Java Micro Harness (JMH), Dalibor Topic, dekorate project for generation of kubernetes and openshift resources, quarkus code starts for project templates

Max Rydahl Andersen on twitter: @maxandersen

#121 Java and The Constructive Approach to Innovation

An conversation with Sharat Chander (@Sharat_Chander) about:
Commodore VIC 20, a Hello, World for the sister, moving to C64 and Ti 99, learning Basic, Visual Basic and Pascal, "the world is your oyster", AR and VR, 3rd world economics, episode with Scott McNealy of Sun Microsystems, Java - and the participation matters, sherpas and teachers, and podcast episode, #50 The Jakarta EE / MicroProfile and WebStandards Startup with Matthias Reining, #73 The "MDN First" Approach with Web Components with Matthias Reining, People First, Technology Second, working for Bell Atlantic, phones as gateways to applications and solutions, Bell, GTE and Nynex became Verizon, attending the first JavaOne in 1996, starting at Sun Microsystems at the NetBeans team, switching to Java Studio Creator, episode with #8 JVM Innovation with Graal with Jaroslav Tulach, Sun's Project Rave, Java Studio Creator moved back as Matisse to NetBeans, Roman Strobl - the NetBeans evangelist, the tasks of the JavaONE program chair, John Gage and JavaONE keynotes, the minute of silence for Steve Jobs at JavaONE keynote, Oracle Developer Live and Java, growing Java User Groups and Java Champions program, the Product Manager for Java, cool vs. constructive, constructive approaches to innovation JavaONE and the after dark party, podcast,

Sharat Chander on twitter: @Sharat_Chander

#120 Reactive Programming, Helidon, Kafka and Project Loom

An conversation with Daniel Kec (@DanielKec) about:
Java / Jakarta API for JSON Binding (JSON-B), Java / Jakarta API for JSON Processing (JSON-P), yasson, Java / Jakarta Architecture for XML Binding (JAXB), Eclipse Jersey, Jason's Binding (logo), Sun's spirit and the first day at Oracle, Oracle Internet File System, Running Java in the database: Oracle and the Aurora JVM, Oracle Database Lite on Palm Pilot, IBM alphaworks, Java Developer Connection from Sun, the first day at Oracle, fixing Metro bugs, meeting Jaroslav Tulach in the kitchen, episode with Jaroslav Tulach, listening to Nanowar, implementing a Helidon - Apache Kafka integration, MicroProfile Reactive Messaging, Incoming and Outgoing, implementing MicroProfile Reactive Operators for Helidon, Java 9 reactive flow API, Reactive programming in Java, Reactive Streams for JVMs specification, David Karnok,, the reactive manifesto, helidon implements the reactive messaging for MicroProfile spec, episode with SAP: How to Deal With Java Dependencies helidon and Java's Project Loom integration, MicroProfile emitter, Java 9 SubmissionPublisher and MicroProfile PublisherBuilder, quarkus reactive implementation: mutiny, mutiny attempts to be more user friendly, Project Loom and reactive programming, reactive programming is practical for messaging, episode #108 about CORBA, gRPC, OSGI, vert.x, mutiny, Reactive Programming and Quarkus with Clement Escoffier, helidon runs on Netty, one event loop should be enough, helidon also supports reactive Java Messaging Service (JMS), Oracle Cloud Infrastructure Streaming, Oracle Advanced Queue (AQ), helidon WebSocket integration, using WebSockets for reactive communication, Reactive streams programming over WebSockets with Helidon SE, helidon integrates conveniently Java API for RESTful Web Services JAX-RS / Jakarta RESTful Web Services Jersey with Server-sent events (SSE),

Daniel Kec on twitter: @DanielKec, helidon's blog:

#119 Kamenicky Encoding, Enterprise Java and Helidon

An conversation with Daniel Kec (@DanielKec) about:
playing games on dell 386dx, playing Commander Keen, wolfenstein, golden axe, hexen, beautiful markup with microsoft frontpage, On the Internet, nobody knows you're a dog, Hot Metal Pro, Net Object Fusion, Frontpage, HTML editors, Adobe Pagemill, NetBeans and IntelliJ IDE, Turbo Pascal at high school, enjoying Transistor-transistor logic TTLs and IC, the problem with CMOS and static charge, transition from Turbo Pascal to Borland Delphi, private, university in prague, Kamenicky Encoding and codepage 895, starting to love Java after Visual Basic experiences, starting with JDK 1.6, xelphi and forte for Java, episode with Jaroslav Tulach, x-definition validation language for XML, the super senior developer, find a bug: Donald Knuth and TeX, writing plugins for Netbeans, inheriting the register of traffic accidents, using WebSphere with wizards and EJB 2.1, migrating to Eclipse and xdoclet, rational developer studio IDE, MDA as solution for generating superfluous artifacts, the great dash dispute, parkinson's law of triviality, transition from EJB 2.1 to EJB 3.0, analyzing logfiles with the R programming language, R runs on GraalVM, starting at Oracle at the Java Architecture for XML Binding (JAXB), Jersey, Helidon team,

Daniel Kec on twitter: @DanielKec and on github:

#118 How To Deal With Java Dependencies

An conversation with Michael Bolz (@onemibo) about:
"What was your first computer?" - Michael was introduced in the episode #55 how companies deal open-source, safe open-source as a service, fosstars-rating-core a framework for defining ratings for open-source projects sponsored by SAP, open-source security ratings, nvd - the vulnearabilities database, fosstars-rating-core is an Apache Maven project, the number of committers rating, dependency management in Java, Jakarta EE and MicroProfile, the forgotten dependency problem, the vuejs library committers, evaluating an open-source project by the commits, the corejs issue, Web Components without dependencies (, semantic versioning for breaking changes indication, JavaMagazin driven dependencies, update frequency of libraries, programming language as a fashion statement, dealing with JVM languages, the Apps with MicroProfile workshop,

Michael Bolz on twitter: @onemibo

#117 Java Persistence: From DB over JDBC to Transactions

An conversation with Vlad Mihalcea (@vlad_mihalcea) about:
accessing database from Java, the four Java Database Connectivity (JDBC) driver levels, JDBC-ODBC bridge, native JDBC driver via Java Native Interface (JNI), JDBC middleware driver, the JDBC thin driver, the CloudscapeDB, the JDBC Driver initialization sequence, physical va. logical connections, connection pools and HikariCP, p6spy - the JDBC pool decorator, JDBC made databases more portable, evaluating project's age by the version of JDBC driven in Apache Maven's POM, statement caching, execution plan reuse, table scanning and index, execution plan is binding parameter dependent, PreparedStatements are not always preparing the statement, keeping connection timeout short, the JDBC "isValid" method, client side metadata caching, JDBC SQL statement compression, JDBC network data compression with Oracle, and MySQL, SSL encryption and fault tolerance, JDBC and transaction routing, primary and secondary node selection on the JDBC level, MySQL fault tolerance and fail over: Java EE, Jakarta EE, Helidon and quarkus programming models, GraalVM vs. Java / JVM mode, the Hibernate Types project, dependency reduction and ThinWARs, backward compatibility on NeXT generation runtimes, JDBC and auto-commit on, JDBC and Isolation Levels, disabling transactions and auto-commit mode, BASE vs. ACID, the trend to more correctness and consistency, SAGAs, compensative transactions, and the MiB flashlight, strict serialiazablity, read committed isolation level and data drift, isolation levels anomalies, serializable vs. snapshot isolation, the "High-Performance Java Persistence" book, the Hypersistence Optimizer, flexy pool,

Vlad Mihalcea on twitter: @vlad_mihalcea

#116 MicroStream: When a Java Application Becomes a DB

An conversation with Markus Kett (@MarkusKett) about:
"What was your first computer?" - Markus was introduced in the episode #36, storing graph of Java objects with microstream, no annotation, not XML required, lazy subgraph loading, database support, coherence and cloud block storage (e.g. S3) are supported, microstream relies on key-value stores, using flat files, microstream relies on custom Java serialization, Java serialization challenges, microstream and security, microstream is not based on Java serialization, code execution during deserialization of Java objects is not avoidable, hackathlon with OracleLabs, Helidon and GraalVM, abstracting JVMs object ids, working with persistent Java objects directly, using getters for object traversal, working with Java object directly in memory, microstream can be orders of magnitudes faster than Java Persistence API, (JPA), accessing persistent object in microseconds, avoiding the JDBC IO- overhead, using Java's off-heap memory, persistent RAM and Intel's Optane, keeping Java object in RAM forever, thinking as Java developers, using Java collections as persistent objects, caffeine - the concurrent cache for Java, reasons for opensourcing microstream, long term support comes with commercial support, running microstream on GraalVM in native mode, polyglot persistence with GraalVM helidon is obsessed with performance, microstream on helidon on GraalVM, combining microstream and Kafka, kafka connector for microstream comes in the next release, microstream - redis integration, custom serialization formats, CDC and debezium, NoSQL database on top of microstream, object graph in Java is a multi-model database, the Java application becomes the database system, authorization on JPA object level, JPA security, the MicroStream, Helidon and GraalVM hackathlon, JAVAPRO magazine - the first free Java magazine, JCon is organized by JavaPRO,

Markus Kett on twitter: @MarkusKett

#115 jOOQ Loves SQL

An conversation with Lukas Eder (@lukaseder) about:
a Unisys 8086, don't break your dad's computer, playing with "format", starting with QBasic and 12 years, serial cable chat programs in QBasic, Turbo Pascal with 15, changing the font in the BIOS, starting CMS with PHP and MySQL, no transactions, no connection pools in PHP, the beginning with serverless and CGI, Java is not a website technology, Java static pages vs. PHP includes, enterprise PHP: Zend Framework, from PHP to Java, PHP 4 to PHP 5 migration and the assignment operator, enjoying Java 1.3, Ant vs. Maven 1, a reporting project for a telco company with Java and Hibernate, writing backends in SQL and frontends with XSLT, stateless, functional programming with XSQL and SQL, jooq manual was built with XSLT, apache Cocoon and XSLT, Servlets and Java Message System (JMS) with WebLogic, from Hibernate query builder to jooq in 2006, cascading interfaces which feel like SQL, everyone built a query builder, rewriting jooq - jooq2 in 2008, queryDSL - the abstraction across multiple query language, jooq only abstracts SQL, dynamic "where" clauses with criteria query, jooq stands for: j-object oriented query, jooq started with stored procedure support, SQLJ the preprocessor, PRO-C* -> the C preprocessor for Oracle to generate boring glue code, jooq 1 was a procedural query builder, jooq 2 DSL API looks like SQL and uses the query builder layer, the database first design, SQL is not composable, SQL: different syntax on different levels, 1000 lines of jooq code is not unusual, DSLContext - the starting point, commercial support for jooq is available, database migrations with jooq, opensource vs. commercial edition, dependency on products, saving costs with opensource, focus on Jakarta EE, Java EE, MicroProfile API vs. direct runtime dependencies, working with dynamic SQL and jooq, database vs. Java first

Lukas Eder on twitter: @lukaseder

#114 Building Clouds for Data Center Providers with Java

An conversation with Ruslan Synytsky (@siruslan) about:
Yamaha MS 6 computer at school in Ukraine, GO SUB vs GO TO, impatience and competition, looking forward to programming at weekends, learning PL/1 on IBM, learning Delphi, writing exams software for students, building triangulation software in Delphi, earth is a potato, workshops at MUC airport and Greenland, Greenland is an autonomous territory withing the Kingdom of Denmark, a secret place and organization with lots of computers, a secret organization buys Sun working stations, starting to learn Java to write software for Sun Solaris on Sparcs, getting CDs full of Java and C tutorials from Sun Microsystems, writing Java software to collect and analyze geophysical data from distributed, international data centers, using GlassFish server for data collection, using web service on GlassFish and the metro webservice toolkit, writing rich UI with AJAX and JavaScript, National Data Center of Ukraine, the ticket to Antarctica, working with startups building JavaScript frontends, starting a development platform to increase the productivity, building a backend as a service (BaaS), building serverless Java solutions in 2008, scaling down from Backend as a Service to a Platform as a Service (PaaS), the screencast with Payara and Jelastic, using container runtimes for developers, serverless Payara on Jelastic, Google App Engine was the first serverless solution, building software for Data Center operators, working with James Gosling as independent director, supporting stateful workloads, using openVZ instead of containers, scaling stateless and stateful workloads, supporting Java EE and Jakarta EE runtimes in the cloud, GlassFish, Payara, WildFly and TomEE on Jelastic, Amazon's Firecracker, Jelastic uses Java to implement the cloud, paying for what you use, rightsizing with Jelastic is easy

Ruslan Synytsky on twitter: @siruslan, and

#113 I don't want your Thorntail

An conversation with Ken Finnigan (@kenfinnigan) about:
Commodore 64 in 1984, Commodore 128D in 1986, creating a Star Wars game, approaching the dark star, a Gateway XT with 20 MB hard drive and 640kB RAM, playing with DBase IV, Lotus 1-2-3 and Delphi, implementing software for baseball statistics in 1989, surviving a Giants game in San Francisco, learning C++, Modula 2 and assembly programming at university, the JavaONE session marathon, learning Java in 1999, enjoying Java programming, starting at IBM Global Services Australian, introduction to the enterprise world with PL 1, Job Control Language (JCL), AIX, CICS and CTG, starting to work with Java 1.2 at an insurance company, building a quotation engine in Java, wrapping JNI layer to reuse legacy C++ code, creating the first web UIs with Java with JSPs and Servlets, PowerBuilder and Borland JBuilder, enjoying the look and feel of Visual Age for Java and JBuilder, Symantec Visual Cafe for Java, Sun Studio Java Workshop had the worst look and feel, writing backend integration logic with XSLT and XML in Dublin, Apache FOP and Apache Cocoon, XSLT transformations in browser, enjoying the marquee tag, using SeeBeyond eWay integration in London, switching to chordiant Java EE CRM solution, using XDoclet to generate EJBs, from XDoclet to annotations, wrapping, abstracting and Aspect Oriented Programming framework, it is hard to find business use cases for AOP, J2EE already ships with built-in aspects, enterprise architecture and UML, using IBM Rational Software Modeler for architectures, driving a truck with tapes as migration, the Amazon Snowmobile Truck, never underestimate the bandwidth of a truck full of hard disks, "Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway", Andrew S. Tanenbaum, building stock trading platform in Sydney with J2EE, Complex Event Processing (CEP) with J2EE and JBoss, attending JBoss World in Florida and meeting Pete Muir, starting with Seam 2 to write a CRM solution for weddings, contributing to Seam 3, creating annotation-based i18n solution, joining RedHat consulting, migrating from Oracle Application Server to JBoss EAP 5, joining RedHat engineering, leading portlet bridge from JBoss Portal project, starting project LiveOak, apache sling, starting project WildFly Swarm with Bob McWhirter, WildFly Swarm vs. WildFly, WildFly Swarm and WildFly - the size perspective, WildFly Swarm supported hollow jars, hollow jar allows docker layering, WildFly Swarm was renamed to Thorntail, Thorntail 4 was a rewrite of the CDI container, Thorntail 4 codebase was used in Quarkus, Quarkus is the evolutionary leap forward, Quarkus observability and micrometer, working with OpenTelemetry, OpenTelemetry and micrometer, OpenCensus, Eclipse MicroProfile and Metrics, micrometer vs. MicroProfile metrics, GitHub issue regarding custom registry types, episode with Romain Manni-Bucau #79 Back to Shared Deployments, starting with counters and gauges in MicroProfile, metrics in a Java Message Service (JMS) application, MicroProfile metrics could re-focus on business metrics, services meshes vs. MicroProfile Fault Tolerance, Istio is only able to see the external traffic, implementing business fallbacks with Istio is hard, OpenMetrics and OpenTracing are merging in OpenTelemetry, MicroProfile OpenTracing comes with a single annotation and brings the most added value, Jakarta EE improvements are incremental, Java's project leyden, the MicroProfile online workshop, Jakarta EE and MicroProfile complement each other, GraalVM and JavaScript, pooling with CDI is challenging, MicroProfile as layer on top of Jakarta EE, the smallrye first approach

Ken Finnigan on twitter: @kenfinnigan, Ken's blog:

#112 Java SE, MicroProfile and GraalVM: the Helidon's Way

An conversation with Dmitry Kornilov (@m0mus) about:
"What was your first computer?" - Dmitry's introduction, Helidon 2.0 supports GraalVM native compilation, Helidon CLI used Apache Maven Archetype, Helidon CLI is written in Java and cross-compiled to an executable file, the Helicon CLI source code and repository, watch and deploy: - a primitive version of Helidon CLI, with Helidon you can compile MicroProfile applications and compile them to a native image, Helidon supports Weld and has full CDI compatibility, Helidon comes with MicroProfile Reactive Messaging and MicroProfile Reactive Operators, Reactive Operators were contributed by David Karnok, Quarkus is pragmatic and they are choosing the 80% approach, Helidon focuses on CDI and MicroProfile compatibility, Helidon uses Smallrye for OpenAPI, WebLogic license comes with Helidon support, Helidon supports WebSockets, JPA, Helidon is the natural choice for WebLogic customers, migrations from reasonable Java EE / Jakarta EE applications to MicroProfile are easy, Helidon with Oracle JDBC drivers and GraalVM support, next Helidon major release will come with additional cloud support, Oracle Cloud Infrastructure is going to be supported by Helidon, Helidon will support other cloud services as well, all clouds contributions are welcome, Java / Jakarta Messaging Service (JMS) on Microsoft Azure, Eclipse MicroProfile Azure implementation, JSON-B and JSON-P Jakarta EE 10 features, Java API for JSON Binding, Java Record and JSON-B, JEP 384: Records (Second Preview) in Java 15, preliminary support for Project Loom in Helidon, Jersey MVC Templates, Quarkus Templating Qute, performance and scalability is Helidon's focus, Helidon supports MicroProfile 3.3, Helidon tries to support the latest MicroProfile the fastest, possible Micronaut's impact on Helidion, Graeme Rocher works for GraalVM, Micronaut's extensions might be supported in Helidon, Micronaut Data and Bean Validation could be used in Helidon, Java SE vs. MicroProfile API stability, Helidon uses semantic versioning, a possible trend back to monoliths, Java EE, Jakarta EE and MicroProfile,

Dmitry Kornilov on twitter: @m0mus, Dmitry's blog:

#111 Java / Jakarta Messaging Service (JMS) on ...Microsoft Azure

An conversation with Ashish Chhabria (@ashishc1) about:
Compaq Presario, Windows 95 Pentium 1 with MMX, 2 GB harddrive and 16 MB RAM, QBasic and GW-Basic, playing virtual cricket, creating calculator from scratch, fascianation with math, learning C and C++, algorithms as hobby, rewriting SMTP server in C and berkeley sockets, starting with Java 1.6, starting at Morgan Stanley in New York, starting at Microsoft in Seattle, product manager on azure messaging team, Microsoft Azure Service Bus, Microsoft Azure Event Hubs, Microsoft Azure Event Grid, Microsoft Azure Relay, Azure Service Bus supports Java Message Service (JMS), JMS 2.0 is just a set of interfaces, Project Darkstar and JMS debate, AMQP with JMS 2.0, JMS is not a protocol, AMQP is the protocol, Active MQ uses AMQP, Azure Service Bus Java SDK comes as a Maven dependency, Microsoft Azure Logic Apps listens to Azure Service Bus, Microsoft Azure Functions as an integration system, Azure Service Bus passes over 90% JMS 2.0 TCKs (Test Compatibility Kit), QueueBrowsers and Message Selectors are supported by Azure Service Bus, 1k topics and queues combined, 2k subscriptions, 5k concurrent AMQP connections per namespace / instance, a namespace comes with 2,4 or 8 a messaging units, Azure Service Bus SDK comes with built-in retry mechanism, idempotent messages are supported, Azure Service Bus uses Azure Storage for replication, Azure Service Bus vs. Apache Kafka, events vs. messages, kafka is not a queue,

Ashish Chhabria on twitter: @ashishc1, and

#110 Java, Vaadin, Web and vanilla Web Components

An conversation with Alejandro Duarte (@alejandro_du) about:
IBM PC with DOS and Windows 311, starting windows with "win", playing Wolfenstein 3d, writing anti-virus simulations, enjoying watching others playing, developing pixel-draw, learning C after Q-Basic, fascination with executable files, building the apocalypse game "2040", working with tiles, the Object Oriented programming and gaming, learning Java after C++, Java's portability is a fake, ray tracing vs. ray casting, three.js and a-frame, Struts 1 and Angular 1 were similar, using JQuery, the JQuery spaghetti code, we only can hope, that Google Web Toolkit (GWT) works well, starting with Java EE company in financial sector, Vaadin was the remedy to GWT, writing a "Vaadin 7 UI Design by Example" book for Packt, the desire to learn Java EE, working for Vaadin in Finland, the great city of Turku, publishing the "Data-centric applications with Vaadin 8" book, I know Angular ...should I also learn JavaScript?, Vaadin would extend the components for you, using vanilla Web Components with Vaadin Components, using Bulma CSS for consistency, SAP UI 5 Web Components, ING Lion and Vaadin Web Components, the challenge of keeping the build system operational, typescript in Vaadin, syncing the client-side Data Transfer Objects with the backend, JavaScript prior 2015 was problematic, modern JavaScript looks like Java, JavaScript destructuring is great, object destructuring will come to Java, ES Modules are like Java packages, JavaScript is like HashMap of HashMaps,

Alejandro Duarte on twitter: @alejandro_du, Alejandro's, and Alejandro on github

#109 Java, Agents, ODATA, Serverless and Cloud Events

An conversation with Klaus Deissner (@kdeissner) about:
Atari 1040 ST the Amiga competitor, when games become boring, starting with GFA Basic, the Atari Profi Book, moving sprites around the screen, starting with Turbo C and Pure C on Atari, writing assembler routines for performant file system size calculations, Java's JXTA, writing C programs for a local tooling company with 17, starting with Java 1.2, genetic programming and algorithms with Java, the fitness algorithm and survival of the best, building software agents with Java, Java aglets, building load balancer Prometheus-like monitoring with Java agents, teaching ABAP programmers Java, the SAP's Exchange Infrastructure (XI), starting with OSGi to write ODATA tooling on Eclipse, semantic web, Resource Description Framework (RDF) and Web Ontology Language (OWL), ODATA exposes various data sources out-of-the-box, SAP UI 5 uses ODATA, UI 5 Web Components can be used standalone, SAP became a member of CNCF, the serverless working group, the CloudEvents standard, the serverless workflow specification, the structure of a CloudEvent, CloudEvent is the parameter of a serverless function, JAX-RS / JSON-B CloudEvent example, CloudEvents discovery and subscription, CloudEvents schema registry was contributed by Microsoft, CloudEvents filter types, the HTTP binary mode,

Klaus Deissner on twitter: @kdeissner and github:

#108 CORBA, gRPC, OSGI, vert.x, mutiny, Reactive Programming and Quarkus

An conversation with Clement Escoffier (@clementplop) about:
olivetti s663 with 2MB RAM, enjoying nice modem noises, u.s. robotics sportster modem, game launch sequence automation, computer science as fallback strategy, the big O-notation, living in valence, studying at grenoble university, the internet class with CGI, Netscape, JavaScript and Pearl, Java Applets with AWT, the challenge of compiling ADA, starting with Java 1.2, the OSGi interests and machine to machine communication or IoT, build time vs. run time versioning checks, working on dependency injection for Apache Felix, porting OSGi to .net, Java RMI vs. CORBA, the great Sascha Krakowiak, lamport clocks and paxos, the challenges of distributed computing, handling failures with CORBA is problematic, CORBA is gone, WS-* came, the HATEOAS idea of REST, HTTP based RPC vs. REST, CDI in JavaScript exploration, dependency injection in JavaScript is challenging, exploring PhoneGap, project wisdom and hiding the complexity of OSGi, netty became too complicated, moving from netty to vert.x, starting at RedHat to work on vert.x project, vert.x does not try to hide the complexity for distributed programming, using vert.x for microservices, if non blocking matters - vert.x, best place for reactive programming are event driven systems, reactive programming is also interesting for composing asynchronous actions, uni in mutiny, apache kafka is not the new JMS, mutiny vs. vert.x, confusion with flatMap and concatMap, reactive programming requires the understanding of large amount of APIs, mutiny outside quarkus, mutiny on top of reactive APIs,

Clement Escoffier on twitter: @clementplop, and github: cescoffier

#107 High-Performance Java Persistence and Cloud Native QBasic

An conversation with Vlad Mihalcea (@vlad_mihalcea) about:
the romanian HC computer, running QBasic on HC, GOTO 30 and typing programs from a book, designing 8 by 8 images, building the first video game with 11-12 years, the spider is walking, learning turbo pascal at high school, mathematics and physics at high school, studying telecommunications in bucharest and Cluj, Technical University of Cluj-Napoca, the beautiful city of Brasov Palm Pilot, the unstructured Java programming classes, the object oriented programming excitement, "Thinking in Java" book by Bruce Eckel, Chomsky Hierarchy, Information Theory by Shannon, starting with Java 1.3 / 1.4, starting at, full stack Java developer in 2005, developing fourier tranformation in JavaScript, fft.js, participating in math olympics, Sun Certified Java Programmer, starting a blog and becoming freelancer in 2013, the "High-Performance Java Persistence", working as developer advocate for RedHat with focus on Hibernate, using NHIbernate in diploma, JDBC, JPA and jooq, High-Performance SQL, the Hypersistence Optimizer, Hibernate Types, and the JDBC pool question, flexy pool, the proper size of connection pool is hard to estimate, moving away from consulting - or trading time for money,

Vlad Mihalcea on twitter: @vlad_mihalcea

#106 The Open-Closed Principle and Lots of Magic

An conversation with Lincoln Baxter III (@lincolnthree) about:
the broken Apple Mac Plus, accidental computer repair, Crystal Quest, Spectre, playing MechWarrior, programming logo at school, ACS logo, counting to a million with a shell script, writing a Galaga clone for a TI-92 writing a multiplexing socket chat server in C++ at high school, Bjarne Stroustrup's C++ book, the year 2000 crisis, University of Pennsylvania, writing business applications in Java for vanguard, "shared nothing architecture", project leads had to enjoy xml, Vienna is in Austria :-), the open closed principle, encapsulating the complexity, never write abstractions first, design patterns, writing project management software with Java Server Faces, J2EE / Java EE, SocialPM, the maven project generator: JBoss Forge, routing in Java with Java Server Faces (JSF) PrettyFaces, joining the Java Server Faces expert group, seam framework, code generation covers up a bad design, jboss forge is also an interpreter, starting prettytime as a side project, focussing on the game Magic the Gathering, starting a new startup:, working on windup - the application server migration project, building backend with NodeJS, building a hybrid app for iOS and android, using web components, lit-html without any indirections, GWT is a Java to JavaScript compiler, Apps With MicroProfile online workshop, Isomorphic JavaScript, Quarkus vs. NodeJS, Quarkus relies on familiar MicroProfile and Java EE APIs, Quarkus application is smaller than empty Apache Tomcat, Magic The Gathering by Wizards of the Coast, the MTG rules, discount codes:

50% off any new subscription for 12 months: AwavWXNj
100% off for 6 months (new monthly plans only): xzPVPRwh

New members:

Existing members / if you have an account:

Lincoln Baxter III on twitter: @lincolnthree, Lincoln's side projects: and his main project:

#105 Blogs, Quarkus, Service Meshes, Kubernetes, MicroProfile, Neo4J, openJ9, AsciiDoc

An conversation with Sebastian Daschner (@daschners: Sebastian was introduced in episode #2, and also appeared in episodes #31, #47 and #54) about:
designing blog engines, pagination strategies, implementing a blog engine with Jakarta EE and MicroProfile, a modified Apache Roller, static page generators, using Quarkus instead of a web server, HTML, emmet and Visual Studio Code, AsciiDoc and Markdown, asciidoctorj on application servers, using git with jgit as storage, misusing Quarkus on GraalVM as a local, native app, file storage vs. databases, the Neo4j involvement, Neo4j on Quarkus, the advantages of a graph database, Object Graph Mapping (OGM) on Quarkus, running Quarkus on JVM in production, Quarkus in native mode as command line application, Graph Database vs. Document Databases, scaling Neo4j challenges, modelling the graph, types and dates as entities, entity relationship model (ERM), attributive relations in ERM, Neo4j cypher scripts, using Neo4j for blog implementation, the Neo4j browser, the remaining use cases for service meshes and istio, traffic management and authentication with istio, linkerd, istio, envoy, service mesh features could merge into kubernetes, observability MicroProfile Metrics vs. Istio metrics, service mesh metrics are a starting point, Neo4j with Quarkus, managing Neo4j transactions with JTA (Java Transaction API), Neo4j comes with great Spring support, Convention over Configuration in Java EE, Jakarta EE and MicroProfile, switching from Spring to Jakarta EE, jaxenter survey results, and Java 11, continuous build and deployment, Quarkus startup times, Quarkus on RaspberryPi podcast episode, reaction to Quarkus startup times on twitter, Java is performant and highly productive, Visual Studio Code comes with good Java experience, the maintainability of running plain kubernetes, IBM comes with IBM Kubernetes Service (IKS), OpenShift on IBM Cloud, IBM container registry, openJ9, Docklands: a collection of docker files, running Quarkus on openJ9 article, the Effective Developer Podcast,

Sebastian Daschner on twitter: @daschners, Sebastian's blog:

#104 Trains, Filmschool, Java on RaspberryPI, Quarkus and MicroProfile

An conversation with Frank Delporte (@FrankDelporte) about:
first experiences in computer club - a retail store, C64 love with 11, enjoying printing a line of text repeatedly, a book by elektor about C64 and hardware, controlling lego trains with soldered relay boards with C64, disco bar with peek and pokes, programming over games, film school in a castle in Vorst, bombastic intros to movies with Amiga 500 at technical film school, editing documentaries and cooking shows, burning 15 seconds of video on 15 MB CD-ROMs business cards, programming with Macromedia Director in Lingo, Lingo became ActionScript with Flex Builder, bringing videos to websites, programming CMS with C# and MS-Access, migrating to MySQL, clean and beautiful HTML markup with MS FrontPage, suspicious web editors, Flex 2 backend with streaming data and charts, writing applications with Flex 3 with C# backend, desktop applications in the browser with Flex, Steve Job's "no flash", building passenger information systems at:, flash on all devices, automation of rail station announcements, replacing flash with browser, adobe donated flex to apache, compiling Flex to HTML and JavaScript, syncing powered-off trains, C# was a moving target, Java is stable, killing a train blocks passengers, challenging kids to program at and, powerful and underestimated RaspberryPI, the killer use case is the GPIO, the story behind RaspberryPI, the ToC of "Getting Started with Java on RaspberryPI", PI4j by Robert Savage, JavaFX for RaspberryPI, using RaspberryPI as a server / edge device, running Quarkus with Panache on RaspberryPI, Quarkus starts 3 times faster as Apache Spring on RaspberryPI in JVM mode, Quarkus native mode didn't ran on RaspberryPI / ARM, starting with Quarkus and MicroProfile was easy, clusters with, migration from Spring to Quarkus took a few hours,

Frank Delporte on twitter: @FrankDelporte, Frank's blog: and Frank's book: "Getting Started with Java on Raspberry Pi"

#103 Unit Testing Considered Harmful

An conversation with Alexey Golub (@Tyrrrz) about:
playing doom on the 200 mHz Pentium 2 PC, watching the "Social Network" movie with 16 years, learning with 10 years QBasic, Pascal and Delphi at school, starting with C# and the free Visual Studio Express, starting to learn C# with Jetbrains Rider and .net core, .net core is the lightweight, cross platform alternative, .net core replaced .net, rebranding .net core back to .net in 2020, Java from Oracle vs. openJDK, commercially supported openJDK, programming a chat bot in C# and MS Access, .net core ships with Entity Framework core, MS SQL server runs on Linux, NHibernate and Dapper ORM, was before, starting with .net, using Visual Studio Code for C# development, Resharper is an extension to Visual Studio, Rider is going to replace Visual Studio with Resharper, building applications as freelancer for social networks, building an enterprise-oriented monzo, learning Java after C#, strange C# coding and naming conventions, react over angular, .net vs. Java popularity, .net is getting more popularity, core is one of the most popular frameworks, is a consolidated project, razor comes with a templating engine, blazor is based on WebAssembly, the 80 percent coverage rule, pointless unit tests for accessors, enums and constructors, high coupling with JAX-RS tests, test pyramid is problematic for the majority of backend projects, free code coverage for unit tests, integration- and system- tests ship ofter without code coverage, mutation testing and pitest, mutation testing uncovers pointless asserts, definition of unit testing, integration testing, system testing, test coverage with sonar, the most useful tests are blackbox tests, identifying forgotten code with test coverage, visualizes code coverage results, coverlet is a library - a "private" .net library, jacoco agent in Java, writing stress tests for robustness, identifying memory leaks with stress tests, "Unit Testing is Overrated" article,

Alexey Golub's website:, Alexey on twitter: @Tyrrrz

#102 25 Years of Java: JDK 1.0 to JDK 1.1

An conversation with Wolfgang Weigend (@wolflook) about:
JDK 1.0 and applets, the great "hello, world" main, the fake portability, the Mosaic browser was the break through, the HP-UX workstations, applets and the grey rectangle, the duke artist Java's AppletViewer, AWT event model in JDK 1.0, JDK 1.1 with JDBC, RMI was the baseline for application servers, the great JDBC debate, ODBC-JDBC bridge, JDBC type-2 driver, building chats with Java's Remote Method Invocation (RMI), rmic for stub and skeleton generation, rmic vs. grpc, don't forget your history, the history reset, JDK 1.1 introduced inner classes, RMI was not optimized, T3 RMI came with 10 times higher performance, building logistics enterprise applications with JDK 1.1, refactoring of AWT event model in JDK 1.1, JavaBeans and Sun's BeanBox, getters / setters - the reminder of "visual programming", Sun Java Studio, Sun Microsystems trainings, the disappointed student--Enterprise Java Beans are not Java Beans, the unfortunate Enterprise Java Beans and Java Beans naming, Java's introspection vs. reflection, AWT was crucial for Java's success, JDK 1.1 was tiny, the size of Java, using serialized JavaBeans for configuration purposes, unexpected business case with connection pooling, from client server and dedicated connections to middleware and connection pooling, form dedicated to technical user, watching Java from C-perspective, the Systems Conference with huge Java interests, you could use JDK 1.1 for a lot of projects, Java was a game changer, "Karl Klammer" is "Clippy", problematic, distributed garbage collection with RMI, the CORBA vs. RMI battle, the NetDynamics application server, the application servers took over CORBA, parallelisation with Java Collection, pass by value vs. pass by reference with CORBA, RMI over IIOP, IONA's ORBIX vs. Visigenics Visibroker battles, Visual Age For Java and IBM's San Francisco Framework, Symantec Visual Cafe for Java, JBuilder Professional and Enterprise, Java Studio Workshop and Java Studio Creator, Metrowerks Code Warrior for Java, Eclipse and NetBeans, Programmers Paradise, Eclipse killed JBuilder, the JGoodies library, JBCL foundation classes,

Wolfgang Weigend on twitter: @wolflook

#101 MicroProfile 4.0 Features and Ideas

An conversation with Emily Jiang (@emilyfhjiang) about:
MicroProfile passion, usability as a goal, learn once, use it everywhere, MicroProfile: the freedom of choice, Payara, OpenLiberty, WildFly, Apache TomEE, Helidon, KumuluzEE, Quarkus, Meecrowave, Fujitsu Launcher, Piranha Cloud are implementing MicroProfile, developer vs. vendor role, nice interactions with MicroProfile community, MicroProfile ships with an umbrella spec, MicroProfile allows backward incompatible changes, MicroProfile TCKs are exercised against multiple vendors continuously, the lack of CORS spec, Quarkus support for CORS, MicroProfile Reactive Messaging and MicroProfile GraphQL, MicroProfile Long Running Transactions, MicroProfile Context Propagation, are MicroProfile Profiles viable solution for spec packaging, a monolithic API is more convenient for developers, multiple scopes / types in MicroProfile Metrics registry proposal, MicroProfile specs play nice together, MicroProfile Fault Tolerance and MicroProfile Context Propagation integration, MicroProfile Context Propagation propagates transactions, CDI scoped and security scopes, MicroProfile 4.0 is going to be aligned with Jakarta EE 8, MicroProfile Config staging profiles (dev, int, prod), DeltaSpike motivated configuration bean injection, MicroProfile Config variable substitution, Smallrye implemented a prototype for the DI into MicroProfile ConfigSources, MicroProfile Fault Tolerance with MicroProfile Context Propagation integration by getting the access to the context, integrations with Server Sent Events SSE, MicroProfile OpenAPI / Jakarta Bean Validation integration, MicroProfile JWT encryption and cookie support, optional group claim in MicroProfile 4.0 JWT, the MicroProfile style, MicroProfile and Semantic Versioning, "Watch and Deploy", Reactive Messaging emitter annotation on JAX-RS resources, backpressure and overflow support in Reactive Messaging, possible mutiny adoption in MicroProfile, MicroProfile Long Running Actions is on the horizon, Real World Jakarta EE and MicroProfile mix, MicroProfile Reactive Messaging is an abstract layer with JMS support, MicroProfile data access idea is in discussion, Quarkus Panache, should Jakarta EE and MicroProfile be merged?, Jakarta EE and MicroProfile are driven by the same team, MicroProfile moves faster than Jakarta EE,

Emily Jiang on twitter: @emilyfhjiang, and microprofile

#100 C, Java, Distributed Computing, Hazelcast and Apache Kafka

An conversation with Viktor Gamov (@gAmUssA) about:
Russian, pirate 286 intel knock-off, starting with BASIC, typing programs from magazines, fun with computer graphics primitive in BASIC, Flash animations with ActionScript, drawing buttons with Visual Basic, learning C/C++ at the university, implementing a log scraper in Pearl to get an aggregated view, Unreal Tournament was the secret goal, enjoying the lack of no compilation in excel macros, Java and Flex development, creating GUIs with Borland C++ builder at university, the size of statically compiled libraries matters, optimising the size with MS Visual C++, exploring DirectX SDK, OpenGL vs. DirectX, enjoying MSDN with Visual Studio .net and C#, the Russian Development Software Network, Thinking in C++ over Thinking in Java, nice looking and opensource Eclipse IDE, writing web servers in Java, JRE vs. JDK, Moscow State University for Railway Engineering, writing backends with WebSphere and RAD, WebSphere Community Edition 5.0 vs. Geronimo vs. Tomcat, Borland JBuilder with JBCL, great DeveloperWorks from IBM, Scott Davis' articles about Groovy, smart and motivated kids, nice Ruby and Rails, Scott Davis and Grails, working on Russian Google -> Yandex, working with Yakov Vain in Flex and Java, writing the Enterprise Web Development book, working for Hazelcast and Talip Ozturk, speaking at JavaOne, working as solution architect, meeting Cay Horstmann - author of Core Java book, the CAP theorem, from Hazelcast to Conluent and Apache Kafka, building, Kafka and JMS are following opposite principles, from JMS persistent topics to Kafka, from Hadoop and Big Data to Kafka, BigData and lambda architecture, from batch to real time processing, data is an immutable set of events, no replay in JMS, the outbox pattern, Change Data Capture (CDC), debezium,

Viktor Gamov on twitter: @gAmUssA, Victor's website:

#99 VB, WebSphere, JBoss, GlassFish and Vaadin Flow

An conversation with Simon Martinelli (@simas_ch) about:
gaming and BASIC programming with C64, reading a Markt and Technik book about C64 programming, building a volleyball tournament application with C64, writing a Visual Basic application for track and field competition, MS Access applications were maintained by business people, maintaining an application for 30 years, no love for Eclipse RCP, Swiss Railways implemented the train disposition system with Eclipse RCP, a disruptive keynote for Swiss Railways, starting with COBOL on mainframe and IMS, mixing COBOL and assembler for performance, serverless programming with COBOL, COBOL security mechanism is nice, mainframe is virtualized and similar to docker, mainframe jobs are like docker containers, database and business logic are not distributed on AS 400, running as much as possible on a single machine could become a best practice, helping to solve the "year 2000 problem", WebSphere with TopLink, Oracle, MQ Series and Swing, the transition from mainframes to WebSphere, replacing MQ Series with Apache Kafka, from "in-memory" remoting to EJB-remoting, using Eclipse SWT for performance reasons, Swing Application Framework was never released, the SWT's problem was OSGi, GlassFish was introduced as a lightweight alternative to WebSphere, Java EE 5 was an lightweight alternative, working together on QLB, the forgotten NetBeans contribution, teaching at the University of Bern, Eclipse's maven integration is still mediocre, heavy IntelliJ, focussing on JBoss performance and OR-mapping, JBoss vs. GlassFish at the University, killer use cases for Camel, transforming EDI into XML, pointless ESBs, shared deployments on JBoss were problematic, Vaadin flow with web components, generating Vaadin frontend on-the-fly, vaadin generates Web Components / Custom Elements for the frontend, exposing metadata via REST,

Simon Martinelli on twitter: @simas_ch, Simon's website: and blog.

#98 Walk the Path--How JBoss Happened

An conversation with Marc Fleury (@docfleury) about:
ZX 81 with the rubber keys and 14 years, writing the Death Mission game, sneaking out at night to develop games, the great Apple 2, rediscovering computers during the physics study, simulating lasers on Vax and C, internet over physics at MIT, in the 1990s studying software engineering was waste of time, interest in quantum entanglement, working with Java, SUN and SAP, JBoss was architected by Rickard Öberg, learning Java in 4 years after physics study, working as support engineer at Sun Microsystems, becoming Java evangelist at Sun Microsystems as an accident, nobody wanted to hire a PhD, the birth of JBoss, spending time at SAP research with Hasso Plattner, trying to apply WebLogic to SAP, Sun Microsystems and WebLogic rejected Marc, Marc started an opensource project called: EJBOSS, a letter from Sun lawyers, AOP and EJB were invented at the same time, meta programming and aspect oriented approaches are older than Aspect Oriented Programming (AOP), JBoss is implementation of the AOP architectural ideas, AOP happens also in nature, viruses can program the system without inheritance, EJB 1 was a piece of sh*t, Sun's standards efforts is what industry needed, crazy Rickard Öberg was an alien, opensource internet is the remedy, internet is from the planet to the planet, entering the École Polytechnique - a "special forces" time, opensource had to be free, JBoss was professional opensource, between IBM, SUN and the opensource fanboys, professional opensource: POS -> Piece of Sh*t, AWS in 1997 - 10 years too early, Scott Stark made a distributable product, "walk the path" mantra, Sascha Labourey wrote the JBoss clustering JBoss was developed in the first year by 10 people, great software started with small teams, increasing the team size can decrease the motivation and fun, why JBoss was sold, WildFly version 20 came out, studying system biology, learning about finance, how to keep money as investor, studying music and enjoying techno, working with professor of percussion who worked with Karlheinz Stockhausen, writing Monte Carlo simulations with Java 8 for fun, Java 15 fibers and project Loom, Robert G. Pickel worked for Gemstone, founding: Two Prime FF1 Token - the product was launched at the worst possible day, working with Alexander S. Blum coding keeps you young, writing physics simulations with Java, JBoss vs. WildFly, JBoss vs. Quarkus, shared deployments in microservice and cloud era, invoking the angels an linux diamonds,

Marc Fleury on twitter: @docfleury and Marc's company: / @Two_Prime

#97 The Lightguard and the Quarkus Cookbook

An conversation with Jason Porter (@lightguardjp) about:
From old 8086 in the late 80-ties, to a Pentium, old GW-BASIC games like snake and gorillas, finding game source by accident, learning Java in 21 days - with a book, fascination with Java Applets, learning C++ at middle school, writing C code with Metrowerks CodeWarrior, learning pointers with 14, building OCR in C at high school, Pearl and PHP before Neumont University, contributing to FlySpray the bugtracker, building inventory application with C# and WinForms, building a scrapbook with full-text search in 10 weeks, accessing lucene from C#, first Java project for the State of Utah with JBoss Portal, a JDBC wrapper around LDAP, building a client library to wrap SOAP, curiosity about Java EE 5, creating student portfolios with Java EE 5, EJB 3, JSF and GlassFish, commercial support was available from Sun Microsystems for Glassfish, there was a lag between JBoss and WildFly versions, working with ATG dynamo for oc tanner, accelerating ETL and data validation with Java EE 5 and JMS, increasing performance with JBoss from a day to one and half hour, joining the Seam Team at RedHat, Seam Solder became Apache Delta Spike, DeltaSpike became the groundwork for e.g. MicroProfile Config, Injection, Outjection and Bijection, from Java to Ruby, from Ruby to Drupal, form Drupal back to Java and Quarkus, asciidoc is like markdown, but better, contributing to Quarkus, joining forces with Alex Soto for Quarkus Cookbook, Kubernetes operators with Quarkus, why lightguard (@lightguardjp)?,

Jason Porter on twitter: @lightguardjp and linkedin

#96 Long Coding Nights, ShrinkWrap, Arquillian and Testing

An conversation with Andrew Lee Rubinger (@alrubinger) about:
GW-BASIC to reprogram a classic piece of music with the sound command, playing games in a spreadsheet of lotus 1-2-3, CDs or MP3s, the undeclared student, studying music production in New York, excited about the the intentionally difficult programming class in Massachusetts, learning Java in early 2000's, discovering Java servers, JBoss 2x and Java EE is the coolest thing, programming Monte Carlo simulations to pay for a flight, becoming a global publisher with the web, chatting over speaking, self-study addiction, long coding nights, a music streaming client with Java EE backend, building an educational, grade online tracking system, JBoss was free and it didn't suck, contributing patches to EJB container, a hard job interview at JBoss, creating the ShrinkWrap library, creating Arquillian, Arquillian's strength are integration and system tests with the ease of unit tests, with ShrinkWrap you can provide multiple deployments, the use cases for grey box tests, testing transactions is tricky, starting the DevNation conference, from application servers to kubernetes, containers and clouds, reasonable Java EE 6 applications should work in the clouds without any major modifications, 5mins from nothing to the first DB access, the time to "hello, world", from configuring everything to convention over configuration

Andrew Lee Rubinger on twitter: @alrubinger, linkedin and github

#95 Getting Good Ideas From .net

An conversation with Ronald Dehuysser (@rdehuyss) about:
Pentium, stepper motors and 3d scanner, starting with C++, Java enjoyment after C++ experiences, deletion over refactoring, programming in Java and SVG a Brussels Railway station, SVG a Batik, defining UI in XML, windsurfing instead of programming in leisure, starting at a Content Management Company, combination of Java and VB Script, Visual Basic and Java with Sun Microsystems: Project Semplice Visual Basic on JVM, tinder-like platform for flemish government, mouseless, xtreme programming, mvn clean install -DskipTests=true, test obelisk over test pyramid, unit tests can negatively impact the productivity, from 60k to 30k lines of code, opensource maturity of .net ecosystem, the great .net mediatr library, .net mediatr vs. Jakarta EE's and MicroProfiles JAX-RS with CDI, the .net mediatr replaces the boundary, JobRunner for long running Java lambdas, asm for lambda serialization,

Ronald Dehuysser on twitter: @rdehuyss, Linkedin, JobRunner on twitter: @JobRunner

#94 Jakarta EE, MicroProfile and the iPhone Problem

An conversation with Kevin Sutter (@kwsutter) about:
working on Jakarta EE 9 and MicroProfile, IBM is supporting the Jakarta EE programming model, Oracle participates productively in Jakarta EE development, the developer and vendor view on Jakarta EE and MicroProfile, Jakarta EE and MicroProfile separation, one release of Jakarta EE per year is likely, Jakarta MVC and NoSQL could become part of Jakarta EE 9, should MicroProfile Configuration move to Jakarta EE?, thinking about MicroProfile working group, MicroProfile focusses on cloud specs, Jakarta EE is provides the stable infrastructure, "political is legal", successful opensource projects are like big companies, the Eclipse Foundation specification process will work fine for MicroProfile, Jakarta EE 9 big features, the Eclipse Transformer, Eclipse Transformer was used to transform the Jakarta EE TCK, Eclipse Transformer is used on application servers, but could also be used for applications, after 20 years of compatibility a breaking change is o.k., cleanup happens in Jakarta EE 9, XML-related services in Jakarta EE 9 are going to be listed as "optional", microservices and the trend towards monoliths, micro is not that micro any more, smallrye becomes the common implementation repository for MicroProfile, MicroProfile reactive messaging and MicroProfile GraphQL are not a part of MicroProfile platform yet,

Kevin Sutter on twitter: @kwsutter

#93 Choose Things That Work And Solve The Problem

An conversation with Erik Costlow (@costlow) about:
the superold 486, DOS bootdisks, the difference between information systems and computer science, writing webapps and dining ordering scheduling with PHP, the trouble to start with Java 1.5 in 2004, type annotations in Java - JSR-308 annotations on Java types, writing servlets on Apache Tomcat at, starting at fortify, joining Oracle Java Platform Group, 2 years of Java without a zero day exploit, starting at, Contrast Security is the Duke Choice Awards winner, no secret plans at Oracle, deleting code with Quarkus migration, well spending security efforts by focusing on relevant APIs, using the Java instrumentation API to observe what is actually used, security scanners are similar to profilers, simplifying code with Panache and Quarkus, integrating a security framework as Quarkus extension, the battle of Thermopylae, the difference between MicroProfile and Jakarta EE, MicroProfile Platform is great for conserving developer skills, Quarkus is an optimized version of Java EE, pushing Quarkus to AWS lambda,

Erik Costlow on twitter: @costlow and

#92 Programming Wallpaper over Violin

An conversation with Lenny Primak (@lprimak) about:
fortran as wallpaper: 2 x 6m, violin lessons are the price, commodore vic 20, assembler love, C++ is the best, financial backends with sybase, SQLJ, Sun C++ compiler with painful templates, C++ is actually a terrible language, the killer Java feature, binary C++ libraries are a nightmare, designing stock indices on paper for complexity reduction, building mortgage calculators, flying as a hobby, building market makers, truck scheduling system, Java EE just works, starting with JBoss 4, Java EE productivity for small business apps, JBoss 4 to JBoss 5 migration didn't work, switching from JBoss 4 to GlassFish 3, PrimeFaces and OmniFaces on GlassFish, GlassFish admin console, switching from GlassFish to Payara, embraer 145 regional jet, Payara people are amazing, hazelcast and grizzly contributions, the specialisation on difficult problems, what is Boundary Control Entity (BCE)?, duplication vs. overengineering, ultra fast proxy server, blocking vs. non-blocking system, tuning the thread stack size, high scalability with blocking Java EE server, building Comet communication with GlassFish, single GlassFish handled multiple thousand connections, Java Fibers may be the solution to scalability problems, thoughts on project lombok

Lenny Primak on twitter: @lprimak

#91 Visual Studio Code: Java, XML and Quarkus

An conversation with Fred Bricon (@fbricon) about:
Amstrad CPC X1120 for gaming, a material science degree, web programming over C, finite element simulations, the solid under stress, sorting blankets at the army, COBOL training, buildings portals with JSP templates, Visual Basic, WebSphere frontend with COBOL backend, CI/CD with Cruise Control, Apache Ant for automation, the Eclipse-based WSAD, terrible Eclipse support for Apache Maven 2, deploying WARs to JBoss, support for Maven and Java EE didn't exist, working on m2e eclipse project, starting to work on JBoss Tools, Eclipse Q4E, WAR overlays in Eclipse, OpenShift IDEs tooling, starting to work with Visual Studio Code for Java, VSC language server protocol (lsp), Gorkem Ercan started the exploration for VSC for Java, building language server with headless Eclipse process in 2016, Microsoft wanted to make Visual Studio Code a great Java experience, JDTLS Java Development Tools Language Server, working on XML extension for VSC, Quarkus Tools for Visual Studio Code, VSC Quarkus Extension will come with MicroProfile and Quarkus specific support, IBM contributes to Quarkus / MicroProfile language server, VSC MicroProfile support is going to be independently installable, Eclipse plugin installation process is painfully slow, two releases of VSC a month,

Fred Bricon on twitter: @fbricon and @VSCodeJava

#90 Bruno Hates YAML-Microsoft Loves Java

An conversation with Bruno Borges (@brunoborges) about:
YAML is a great technology to see whitespaces, JSON to YAML conversion, merging YAML is painful, CSV is also great for reading, servers vs runtimes, Microsoft acquired JClarity, Microsoft sponsors project since 2018, a new Java Engineering Group was formed at Microsoft, Microsoft contributed patches to openJDK project, Microsoft has thousands of Java develoepers, Minecraft Java Edition allows modifications, Microsoft releases GPU optimized Java, linked-in's and Yammer's backends are implemented in Java, Azure Synapse is similar to Google's Big Query, Microsoft is going to release a double screen Android phone - Surface Duo, now you can deploy Java FX applications to Microsoft's hardware, Microsoft Azure Application Hosting Service with Azul JDK based on Zulu Community Edition, App Service comes with predefined Java images, App Service might be a use case to deploy uber JARs, App Service supports the separation of infrastructure and application code, Quarkus and Helidon are separating the runtime from the application code out-of-the-box, serverless deployment of Java code as Azure Functions is also supported, Java 11 is going to be supported on Azure Functions, Azure Container Instances is Docker without Orchestration, Azure Kubernetes Service - full experience with YAML included, JVM is monitored in Azure Kubernetes and Azure Container Instances out-of-the-box, a Java agent is injected which enables monitoring, MicroProfile on Azure, MicroProfile Config with Azure Key Vault, secret injection and JWT authentication are important use cases, opentelemetry merges integrates tracing and metrics:, JAX-RS monitoring, business monitoring with MicroProfile metrics, pulling metrics from database instead of pulling from the service, avoiding wasteful metrics, Quarkus saves RAM, garbage collection and metrics, Microsoft employs the most Java Champions?, Visual Studio Live Share, managing multiple JDKs: article on medium,,

Bruno Borges on twitter: @brunoborges and LinkedIn

#89 What is the Direction of Quarkus?

An conversation with John Clingan (@jclingan) about:
Redhat Summit Virtual Experience, Redhat Runtimes Quarkus Support, Senior Principal Manager of Next Generation Platforms, like Quarkus, MicroProfile is a major task, the MicroProfile IP flow, the formal stuff for a working group at Eclipse Foundation, tracking the MicroProfile progress:, the working group draft - what does it mean to be a MicroProfile working group, the MicroProfile politics, the goal of MicroProfile was to build specifications for development of microservices, MicroProfile began as crippled Jakarta EE, MicroProfile extends right now Jakarta EE with added value, fixing potential MicroProfile incompatibilities is less problematic and takes less energy to fix, Jakarta EE is a collection of specifications with a platform spec on top, helidon and quarkus are moving faster, because they are new, quarkus and helidon follow opposite philosophies, Quarkus Panache is proprietary but useful, Quarkus comes with 220 extensions, a half is camel related, Quarkus Vodafone Greece session at Red Hat Summit, Quarkus extension enable the integration of external configuration to configuration subsystem of quarkus, parsing XML at build time to save resources at runtime, Quarkus supports YAML - but keep it secret, Bruno Borges loves yaml, MicroProfile config is fully supported by Quarkus, Quarkus configuration is more than MicroProfile config, Quarkus Summit sessions, RedHat is a bottom-up organization, Quarkus is an integration point of various teams like e.g. Jakarta EE, MicroProfile, Vert.x, Camel, all Quarkus extensions have to run in dev mode and be compilable into GraalVM native mode, Quarkus is also driven by community feedback, with Quarkus you can get the niceness of Jakarta EE again, from 12 replicas to 2-4 replicas to serve the same traffic, startup time and memory utilization matter a lot in the context of kubernetes, the costs of running microservices in the clouds, for every microservice in production you get seven instances in staging environments, with quarkus you can build the perfect monolith, most of customers are building microliths, the microprofile hangouts,

John Clingan on twitter: @jclingan, John's blog

#88 In-Process Polyglot with GraalVM

An conversation with Wolfgang Weigend (@wolflook) about:
GraalVM Sales Consultant and GraalVM Java SE System Engineer, Sun Tech Days in Frankfurt, "When C becomes too slow, the JVM has to be written in Java... project Maxwell", Maxine and GraalVM, running NodeJS on GraalVM, creating native CLI utilities, combining multiple languages on a single JVM, polyglot programming is hard to manage, GraalVM ships with compatible ES 6+ JavaScript, GraalVM re-imagines the Fluid Logic pattern, tiobe programming language index, combining HotSpot and JRocket VMs, jbake static page generator, combining Handlebars, Mustache with Java and Nashorn: spg. GraalVM allows debugging of all languages in a single process, Goldman Sachs making Slang to run on GraalVM with Truffle, GraalVM and web assembly, JavaFX is not a competitor of Web Components and Web Standards, JavaFX competes with React Native or Ionic, the JFX days, Gluon Mobile uses SubstrateVM to deploy applications to mobile devices, JDK 8 is commercially supported until 2030, JavaFX is bundled with JDK 8, with support, you don't have to wait for bug fixes, branches are expensive, JavaScript runtimes are not problematic -- but the build process can become a problem

Wolfgang Weigend on twitter: @wolflook

#87 If You Get A Book, You Have To Start Reading

An conversation with Max Rydahl Andersen (@maxandersen) about:
C 64, green screens, Basic, GoTo, Rallye, animated sprites, peek and pokes, snake game's source code, Summer Olympics was a joystick destroyer, Word Perfect on Commodore, assembler and protective demo scene on Commodore Amiga, access to information was a battle, the Turbo Pascal Book about object oriented programming, fascination with databases, building an artwork management for a gallery app in MS Access, building a WYSIWYG tool in Visual Basic, working as tutor at school, installing SmallTalk VisualAge, great visual Delphi, Java was more open than Delphi was, medfork and the trifork application server, writing an electronic medical journal, Trifork supported hot reload, JAOO became GOTO, writing dependency management system with Python on a Dell Laptop, emacs was the main IDE, writing a Swing application which talks to trifork backend, using Apache OJB, session sharing with Apache OJB, hibernate always understood transactions, working with Christian Bauer and Gavin King, writing the first version of hbm2ddl tool, extending hibernate to support native queries, getting fixes for enterprise software without paying, Gavin was hired by Marc Fleury, moving to Switzerland and working for Sascha Labourey, RichFaces Exadel acquisition, JBoss IDE became JBoss Tools, what became JBoss Studio, which became RedHat Studio, which became Code Ready, frustration with Java 9, Go has some power, but doesn't have Java's ecosystem, Go legalized formatting, Swing over SWT, Swing API is awesome, SWT had nice native integration, JFace is more like Swing, a successful opensource project has to accept patches fast, Eclipse JDT is an amazing piece of technologies, Eclipse is great for browsing big code bases, the memory is not a problem, the perceived performance is, NetBeans and Eclipse have difference strategies, Eclipse tries to understand everything, NetBeans don't, overuse of OSGi, microservices and modules, start with a monolith first, quarkus takes the good parts of Jakarta EE and MicroProfile and further improves them, GraalVM native compilation is not the main feature, tree-shaking with Quarkus, JBang - Java for scripting, quarkus is hard to kill,

Max Rydahl Andersen on twitter: @maxandersen

#86 The Remedy against Bike Shedding

An conversation with Wolfgang Weigend (@wolflook) about:
Atari 520 ST over XT 286, Motorola 68000 and C-Compilers for Atari 520 ST, first software company in 1987, Systems Engineer for Java and GraalVM, electronic engineer at Dupont, GSI in Darmstadt, writing networking software and an ERP system from scratch, controlling laser light shows, how to create noise with electronic devices, modis was succeeded by KHK / sage, learning enterprises by joining Oracle, analysing network stacks, optimising databases on Texas Instruments, joining Sun Microsystems in 1997, evangelising Java at Sun Microsystems, the challenge of buying a Sun Sparc Station, learning Java at Sun Microsystems, Java case study for German Railways, no one wanted to use Java on the server side, NetDynamics vs. Java Web Server, joining BEA after WebLogic acquisition, Andy Piper wrote clustering for WebLogic, BEA was the fastest growing company, Oracle bought BEA in October 2008, Deutsche Bank online banking system, and several hundreds projects at Deutsche Bahn were Java / WebLogic based, DHL and Deutsche Post were also heavy Java / BEA users, J2EE and Java EE allow developers focus on real problems, Java EE is a remedy against bike shedding,

Wolfgang Weigend on twitter: @wolflook

#85 Jakarta EE and MicroProfile--Siblings, Cousins or Twins

An conversation with Alasdair Nottingham (@nottycode) about:
Jakarta EE, MicroProfile, package name changes, OpenLiberty implements MicroProfile API, uses SmallRye for reactive messaging, migration to smallrye is not trivial, reactive messaging comes with netty and vert.x assumptions, Jakarta EE and MicroProfile - merging or separating, a single dependency would be nice, three camps: Jakarta EE, MicroProfile vendors and the developers, Jakarta EE is more stable, MicroProfile is more innovative, MicroProfile is not an incubator, passionated discussions about SOAP, JAX-RPC is more popular, than JAX-WS, deprecation is not about removal, ConfigSource implementation does not support CDI, MicroProfile brings added value to Jakarta EE, MicroProfile and Jakarta EE can co-exist together, monoliths on kubernetes are valid use cases, poor vs. rich and thin vs. fat, xdoclet - the annotation predecessor, EJB 2 were not that bad,

Alasdair Nottingham on twitter: @nottycode

#84 Microscopic Services and The Jakarta EE 9 Earth Quake

An conversation with Markus Karg (@mkarg) about:
What is HeadCrashing? JavaMagazin, IX and Java Aktuell, the first JAX-RS contributions, extending JAX-RS via official API, you are not a spec lead, an episode about Eclipse Foundation: From Java EE over EE4j to Jakarta EE, no political powers, APIs and SPIs are decoupled at Jakarta EE, Jersey is only "an" implementation of the spec, not "the'" implementation, Eclipse Foundation runs their own infrastructure, make JAX-RS more usable, Java SE bootstrap API for JAX-RS, it is impossible to write a spec without code, in future there is no room for coders, contract first is problematic, it will take more time to design the spec than to write the implementation, hundreds of microscopic services, with helidon there is less coupling to the proprietary implementation, building dependencies from source, relaxing drones, use cases for JAX-RS client-side caching, modular JAX-RS, new features in Jakarta EE 9, Jakarta EE 9 earth quake is enough, the JAX-RS roadmap, aligning JAX-RS with CDI, support for Java Platform Module System, JPMS modules in JAX-RS,Jersey is a framework, not a product, JPMS modules could provide new JAX-RS features, using JAX-RS client for testing, testing on kubernetes level, functional probes, project vs. product business, thoughts on odata, select * and everything stops, being more generic for CRUD and stuff which does not matter, accessing a database via excel, prepared interviews are not fun,

Markus Karg on twitter: @mkarg, and Markus' blog:

#83 From JMS Unit Tests to OpenLiberty

An conversation with Alasdair Nottingham (@nottycode) about:
bbc micro, basic programming with archimedes computers by acorn, playing simcity 2000 on 286, brother as valorant creative director at riot games, enjoying programming - except prolog, functional C, starting with Java and JDK 1.1.8 in 1999, Java is great because it is lacking pointers, built-in data structures in Java, forgetting about public static void main, writing Unit Tests without JUnit, deleting "red" tests, writing unit tests for the IBM MQ JMS client, joining the IBM WebSphere team, writing product samples, extending a pearl wiki, running MQ series as a sidecar, developing a Java based JMS solution in WebSphere v6, writing "mediation" for websphere MQ, almost serverless mediators, rebuilding WebSphere on top of OSGi, no worries about code ownership, isolating app server libraries with OSGi, OpenLiberty started in 2010, just enough application server concept, the costs of memory, optimizations vs. developer experience, responsiveness over memory consumption, fashion trends in IT industry, Scala's XML support, coding architects are valuable, OpenLiberty was opensourced in 2017, not at IBM,

Alasdair Nottingham on twitter: @nottycode

#82 Just Write Code and Keep It Forever

An conversation with Markus Karg (@mkarg) about:
Sinclair ZX Spectrum 48k, the colourful rubber keys, hacking while parents where sleeping, saving code with sequences, the king of go-sub, the 8h day of 12 year old, starting a business with 14, writing business applications with XT pc, going to German Air Force, data transfer from radar stations to nuclear rockets, working as waiter with ministers, ZDV, studying computer science over repairing cars, state certified programmer, passing the exams with distinction, starting with Java in 1997, submitting a PowerBuilder conference talk, learning about EJB 1.0, deployment descriptors, Java and XML - the evil book, converting a DB into XML, Borland Enterprise Server, friendly Jonas Application Server team, even friendlier GlassFish application server team, EclipseLink contributions, writing extensions for Jersey, the user vs. vendor perspective, gathering production data, the problem with IIOP and firewalls, CIFS evaluation, writing WebDAV extension for Jersey, Wolfgang Weigend, Aurora at Oracle DB, Oracle IFS, APIs over SPIs,

Markus Karg on twitter: @mkarg, and Markus' blog:

#81 Strip The Cow To The Skeleton

An conversation with Arjan Tijms (@arjan_tijms) about:
loosing touch to application development, runtime vendor vs. application developer perspective, micro optimisations are pointless, moving in cycles, NoSQL, not only SQL, New SQL, developer productivity vs. runtime efficiency, the essential set of dependencies, virus scanners and deployment productivity, reimagined Jakarta EE runtime, real embedded servers without the overhead, stripping a cow to its skeleton, mojarra as testing runtime, developing a servlet containers "from scratch", running TCK tests against a servlet container, piranha eleos, Jakarta EE compatibility, Java Server Faces without servlets, JSR-77 management, JSR-88 - deployment become optional, what happens to EJBs, Piranha and MicroProfile SmallRye, the relation between Piranha and OmniFaces, the power of wording, marketing and slides, the episode #29 with Bruno Borges, runtimes vs. servers, One War, One Application Server, One Runtime blogpost, the economics of shared deployments, the lightweight runtimes, WARs larger than runtimes, using piranha nano as command line tool, piranha micro comes with servlet runtime, piranha micro runs a single WAR file, piranha micro runs the deployment from memory, monitoring the deployment process, replacing a file system with maven, piranha micro uses piranha nano APIs, piranha nano is the runtime, piranha micro understands MicroProfile and Jakarta EE, Manfred Riem also works on piranha, soteria, the Java EE 8 security implementation, is used by tmaxsoft, soteria was one of the major contribution to Java EE 8, soteria was used before GA in several projects to get feedback, piranha server supports multiple deployments, piranha nano boots in 0.5 second, Servlet, JAAC and JASPIC are implemented by piranha, other services are integrated, piranha server relies on shrinkwrap, piranha server is the only runtime which uses Java EE 8 security directly, using piranha server as oauth 2 gateway, Java EE 8 unifies and simplifies all the security APIs, Azure functions with piranha, consuming cloud events with piranha nano, cold startup of piranha nano is less than 1 second, piranha nano uses flat classloader, piranha micro is using an isolated classloader,

Arjan Tijms on twitter: @arjan_tijms, Arjan's blog omnifaces and

#80 500 kB ThinWARs on AWS

An conversation with Bastian Sperrhacke (@deratzmann) about:
80286, qbasic,CLI, Turbo Pascal, if-thens and "Who Wants to Be a Millionaire?", inhouse outsourcing with sister, playing Prince of Persia, MS DOS games, memory management with autoexec.bat and config.sys, taking a Macromedia Flash class army, programming a beer shop in a JavaScript course by mistake, "JavaScript is dead" - in 2001, programming Java for Windows PDAs, Sharp Zaurus ran Linux, searching stuff in adventure parks with PDAs, chats and XMPP, chasing hidden boxes, Java ME is not MicroProfile, developing digital TV on Nokia phones with ads over DVB-T, developing WAP applications, mobile portals, ringtones and games, Nokia Communicator, WAP - "Wait And Pay", developing web sites with Struts and JSPs, using JDBC from Struts actions to access the database, Java EE best practices training by OOSE, refactoring with GlassFish 2.1 and 3.1 and EJB 3, working since 2013 for Otto - the German amazon, home made persistence layers before Hibernate, selling insurances instead of ORM mappers, starting with microservices in cross-functional teams, using Payara for e-commerce, running Payara, Jakarta EE on AWS, seamless migration to AWS, implementing additional services with Payara, Java EE and AWS, buying a barista, the largest ThinWARs are 500kB, swagger UI is larger than the business logic, 3-5 seconds boot times, layered docker deployments, 700MB base layer, 5-10 cloud deployments a day, using AWS Fargate, business driven MicroProfile metrics, experimenting with OpenLiberty, WildFly 19 comes with MicroProfile support, Quarkus is the nextgen application server, migrating Boundary Control Entity applications to Quarkus, the push gateway blogpost / application, replacing Stateless EJBs with CDI Stereotypes, Quarkus vs. WildFly performance comparison, Quarkus saves 50% of RAM in JVM mode, drinking a coffee together at JavaONE, coding technical lead, casual gaming, building bases with StarCraft, the a+ team

Bastian Sperrhacke on twitter: @deratzmann, interview with Bastian

#79 Back to Shared Deployments

An conversation with Romain Manni-Bucau (@rmannibucau) about:
PaintShop Pro, science fiction matte paintings, scene generation, short movies, 3D tool automation with scripting, starting C programming with GTK, programming PaintShop Pro "clone" as "hello, world", linux over windows, image editing involves math, learning algorithms from the internet, building winamp-like mp3 player with C++ and GTK, switching from C/C++ to Java, no memory management in Java, implementing problem-solvers with Java, developing "BigData" apps with Hazelcast, Talip Ozturk, implementing map-reduce algorithms for a banking sector with Hazelcast, using Apache openEJB, working with Jean-Louis Monteiro the openEJB committer, using openEJB for good start times and for testing, Java EE and standards do not impact your business code, working with friends at Tomitribe, implementing extensions for TomEE - the MicroProfile before MicroProfile, joining talend to implement batch processes, joining startup, Apache Spark, Apache Beam and ReactJS, using Apache Meecrowave, ReactJS vs. Custom Elements, WebComponents and Redux, deploying service on-the-fly with OSGi, integrating CDI with OSGI, working with Apache Aries, using OSGi to load machine learnings models, hot-loading modules for "Fluid Logic", OSGI alliance specs, Karaf OSGi, HTTP/2 with Felix, OSGi ConfigAdmin configuration, OSGi whiteboard pattern, Aries CDI,

Romain Manni-Bucau on twitter: @rmannibucau, Romain's blog:

#78 From Maxwell over Maxine to Graal VM, SubstrateVM and Truffle

An conversation with Thomas Wuerthinger (@thomaswue) about:
Working on HotSpot, Sun started collaboration with Johannes Kepler University (JKU) in Linz, Java HotSpot is written in C++, "Array Bounds Check Elimination" for Java HotSpot Compiler, increased the performance by approx. 10%, the possibly most impactful student work ever, IdealGraphVisualizer (IGV): the graphical visualisation tool for HotSpot uses NetBeans visual library, IGV is also used for GraalVM, the Maxine Research VM at Sun Microsystems, Project Maxwell was renamed to Maxine, working at Sun's Menlo Park at Maxine, the circular optimization of Java leads to higher performance, the relation between Maxine and GraalVM, replacing the Maxine Compiler with Client HotSpot Compiler "transpiled" from C++ to Java, the C1X compiler, maxine was too ambitious, GraalVM just focusses on the compiler and makes it available for HotSpot, the Java compiler (javac) is written in Java, the quality of the JIT output is the first factor for good performance, HotSpot asks JIT to optimize "hot" methods, Maxine project is stil active, JVMCI, working on crankshaft compiler at Google with a team of 8 people, using Graal as polyglot environment, converting JavaScript to GraalIR was too complex, JavaScript is dynamic and GraalIR is typed, partial evaluation was inspired by PyPy, JavaScript interpreter was written in Java and is optimized by GraalVM, the frozen interpreters, the meta-circularity comes with the native image, a small JavaScript interpreter team implements recent JavaScript features, improving serverside ReactJS rendering performance with GraalVM, R, Ruby and Python are exectly the same integrated as JavaScript, Java is going to be interpreted in the same way as well, method inlining across language boundaries, Truffle is the intepreter API and comes with language-independent tooling, GraalVM is able to output bitcode instead of native code with LLVM, native image was used to compile the Graal compiler itself, the native image contains garbage collector, native image is considered "early adopters" technology, HotSpot mode is still 20% to 50% faster, G1 is going to be available on the native image as well, in future the performance of the AOT could vary +/-10% compared to JIT, polymorphic invocations could become faster on the native image / AOT, profile guided optimizations can be performed also ahead of time, new native images could learn from the past, the stability of AOT and JIT are similar, twitter already uses AOT for years, with Java you have the choice between AOT and JIT, unikernels could be supported by GraalVM in future, the GraalVM is hiring,

Thomas Wuerthinger on twitter: @thomaswue

#77 The Competitive Developer

An conversation with Thomas Wuerthinger (@thomaswue) about:
JavaScript on Pentium 3, snake with turbo pascal, sister as inspiration, the "view source" JavaScript approach, creating a platform "4b" site like FaceBook or studiVZ as first serious application with PHP on the backend and JavaScript on the frontend, using flat files as database, building GameScript with a subset of JavaScript to help colleagues to start programming, creating the first, interpreted, programming language, writing parsers by hand, the natural way to ASTs, creating software for smart homes, first commercial project with 16 - a visual programming language, great QT, how to skip a class, the two type of teachers, attending university classes before university, the best four Austrian programmers attending the competition are part of the GraalVM team now, the programming competition takes two days, five hours each, Pascal, Java or C were the languages of choice, mistakes cost time, programming is super fast and debugging is low, training for programming competition 2-3h a day, training with USA Computing Olympiad was almost like gaming, it's impossible to win a programming competition without training, ACM contest for students, a team of three students shares a computer, learning C with JavaScript background, difficulties with the constructor concept, the president of Austria attending the phd ceremony

Thomas Wuerthinger on twitter: @thomaswue, Thomas' website.

#76 Quarkus Developer Experience

An conversation with Alex Soto (@alexsotob) about:
Director of Developer Experience, Quarkus was secret at the beginning at RedHat, replacing Micronaut with Quarkus, public Quarkus release, Micronaut comes with its own API, Quarkus is more familiar for WildFly / Java EE / Jakarta EE developers, Quarkus separates the business logic from the infrastructure, Quarkus also supports FatJARs / UeberJARs but this feature is pointless for container deployments, Quarkus and FatJARs are interesting for desktop, electron-like deployments, The Quarkus Cookbook, quarkus disabling HTTP cache, kaffein cache, quarkus and batch processing -- building CLIs with quarkus, combining quarkus with picocli, quarkus integrates kafka kstreams without the necessity of including JAX-RS, episode #23 with alexis about glassfish, the easy loading vs. eager loading trade off, quarkus optimizes hibernate, tree shaking of JDBC-drivers in quarkus, proactively introducing DAOs: "Generic CRUD Service aka DAO - EJB 3.1/0 Code - Only If You Really Needed" then deleting them, the quarkus developer mode mvn compile quarkus:dev, dynamically adding columns with Panache in development mode, adding extensions on-the-fly, mapping kafka streams to websockets with microprofile reactive streams, quarkus should support both: and, The Quarkus cookbook is going to be published in summer 2020, writing kubernetes operators with quarkus, the quarkus vault integration, quarkus / vault questions, the vault sidecar container,

Alex Soto on twitter: @alexsotob

#75 Lord of the Jars

An conversation with Alex Soto (@alexsotob) about:
playing desperado on spectrum, peek, poke and rem with basic, implementing a clock and drawing a line, curiosity and programming, fascination with communication, sending emails to unknown people, Netscape Composer and Microsoft Frontpage, Netscape Mail Client, the "view code" button, Netscape Mail became Mozilla's Thunderbird, adding interactivity to HTML pages with JavaScript, coding number guess game with JavaScript, the friend declaration in C++, starting with Java 1.2 and Swing, Sun Java Workshop and Java Studio Workshop, using Servlets on Orion Application Server as backend for HTML forms, using Wicket web framework, doubled income for experienced developer, building portals with JBoss 3.0, Ant and XDoclet, VoIP and Session Initiation Protocol SIP project with JBoss in 2002, Bean Managed (BMP) and Container Managed Persistence (CMP), nice BMP and CMP - comes for free, installing JDK 1.3.1 (Kestrel), controlling medical robots with Java, IoT in 2005, moving physical machines with Java, loosing focus after 8 years, building electronic voting systems, Java EE 5 came with productivity boost, TomEE booted in 1 second, introducing Java EE as "The New Thing", advocating Java EE on conferences, promoting Java EE as productivity and speed optimisation, Kohsuke Kawaguchi the creator of Hudson, starting at CloudBees with Kohsuke Kawaguchi, Kohsuke started launchable, working with Apache Mesos, starting to work with Arquillian, becoming an Arquililan committer, speaking at Devoxx, ping from Aslak Knutsen, starting at the dream company - RedHat, the Monday message from Aslak, working with fabric8,

Alex Soto on twitter: @alexsotob, Alex's blog: and Alex on GitHub

#74 Exposure Driven, Natural-Born Programmer

An conversation with Tanja Obradovic (@TanjaEclipse) about:
The amazing rainbow wires, obsessed with tetris, programming: seeing immediate results is great, basic, pascal, fortran, c, c++ and FoxPro, Smalltalk in Canada, exposed to programming, pascal did more than basic, SmallTalk is clean and logical, object oriented programming was hyped, The Object People, programming over electronics, using TopLink to access databases, messaging between object was a challenge for a C++ programmer, objects talk like people, there are no blocks in Java, meta inheritance in SmallTalk and Java, business driven decisions matter, it is easier for C and C++ programmers to learn Java, than SmallTalk, working with TopLink as consultant, the acquisition of the consulting The Object People by BEA, the TopLink product was acquired by WebGain, Oracle acquired WebGain, Oracle acquired BEA, TopLink was migrated to Java by the Object People, enjoying to work as team lead, now its time to start programming again with MicroProfile and Jakarta EE, joining Eclipse Foundation, preparing Jakarta EE for the cloud era, Jakarta EE is a huge amount of work, starting to work on Jakarta EE 9, the big bang move to jakarta.* namespace, identifying the priorities was a major challenge, addressing one problem a time with more frequent Jakarta EE releases is the preferred approach, Jakarta EE and Java EE were synonyms for complexity, the Jakarta ONE livestream,

Tanja Obradovic on twitter: @TanjaEclipse, Tanja's blog:

#73 The "MDN First" Approach with Web Components

An conversation with Matthias Reining (@MatthiasReining) about:
Famous Tech 11, Tech 11 expands to Italy, refactoring to MicroProfile HTTP client from JAX-RS client, DRY Jakarta Persistence (JPA) entities -- used for persistence and communication, using JSON-B / Eclipse Yasson as DTOs, versioning client and services, happy with Jakarta EE and MicroProfile, 17 developers from Nigeria, Cameroon, Ghana, Vietnam and Germany love Jakarta EE and MicroProfile, the ultimate Bamberg test (schlenkerla), Tech 11 developers joining in MUC, self constraining as competitive advantage, Apple Music Web Client uses Web Components, Web Components with plain lit-html library, the 50 LoC abstract component, redux works well with Web Components and Boundary Control Entity structure, unidirectional data flow, dumb and smart Web Components, no npm is installed on developer machines, rollup.js over parcel.js, Jakarta EE service with Servlets 4.0 prepopulates browser cache with http/2 (3 mins http/2 JSF screencast), developer's joy without build tools, ES 6 modules is a more Jakarta EE-stic way of architecting apps, further performance optimizations with resource hints, no issues for Firefox, developing on Firefox and Chrome, the amazing Firefox' developer experience, Custom Elements with lit-html look a lot like React code, if Facebooks drops react, easy migrations to frameworks from web standards, migration between frameworks is mission impossible, Progressive Web Apps without frameworks #nomigrations #webstandards #noslides talk at IJS, the MDN first approach, the WildFly starting in 3-4 seconds, Quarkus starts in under a second, by removing EJBs you can save one second startup time, Tech 11 hires developers with passion for WebStandards,

Matthias Reining on twitter: @MatthiasReining

#72 KISS and No Dependencies in JGroups

An conversation with Bela Ban about:
C64 wasn't real, Atari was the way to go, Atari ST vs. Amiga wars, Pascal, Modula-2 and Modula 3, Atari had a nice IDE with 1MB RAM, War Games movie, contact list application as "hello, world", fixing Epson printer hexcodes, chess and tennis over programming, learning C was a step down from Modula, system programming and the fascination with immediate feedback, writing CORBA to CMIP bridges in GDMO, C++ templates are an own language, "C++ is crap", Java at the first World Wide Web conference in 1995 in ...Darmstadt, starting with oak, applets and NCSA Mosaic, Netscape server, extracting data from mainsframes wi