
airhacks.fm podcast with adam bien
Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien
Latest episodes

Jul 14, 2024 • 1h 3min
Project Valhalla: Value Types, Nullability and Float16
Java Software Engineer Paul Sandoz discusses Project Valhalla's value types, nullability, and potential performance gains. Topics include heap and stack optimization, challenges in retrofitting value types, implications for numeric types, connections to Vector API, and Java's competitiveness in machine learning. Sandoz also covers backward compatibility, his role in the project, and future directions for Java.

Jul 7, 2024 • 48min
OpenRewrite: Transforming Java Code at Scale
An airhacks.fm 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

Jun 30, 2024 • 55min
JVector: Cutting-Edge Vector Search in Java
An airhacks.fm 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

Jun 23, 2024 • 1h 32min
Object-Oriented Programming (OOP) vs. Data-Oriented Programming (DOP) in Java
An airhacks.fm 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

Jun 17, 2024 • 58min
From JSP to Rife and From Kotlin to Java
An airhacks.fm 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

Jun 9, 2024 • 1h 8min
The bld Power User
An airhacks.fm 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

Jun 2, 2024 • 1h 3min
Observability-Driven Development with Digma, Serverless and Java
An airhacks.fm conversation with Roni Dover (@doppleware) about:
previously Roni on airhacks.fm "#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

Jun 1, 2024 • 1h 9min
Exploring ONNX, Embedding Models, and Retrieval Augmented Generation (RAG) with Langchain4j
An airhacks.fm 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

May 18, 2024 • 1h 1min
High-Performance Java, Or How JVector Happened
An airhacks.fm 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

May 12, 2024 • 1h 1min
LLama2.java: LLM integration with A 100% Pure Java file
An airhacks.fm 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, Paravox.ai: 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 llama2.java project
Alfonso Peterssen on twitter: @TheMukel
Remember Everything You Learn from Podcasts
Save insights instantly, chat with episodes, and build lasting knowledge - all powered by AI.