

airhacks.fm podcast with adam bien
Adam Bien
Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien
Episodes
Mentioned books

Aug 16, 2024 • 43min
How the Java-Optimized Vega Chip Happened
An airhacks.fm conversation with Gil Tene (@giltene) about:
discussion of Azul Systems' Vega chip,
a custom-designed processor optimized for Java workloads,
Vega's architecture and features including multiple generations (Vega 1, 2, and 3),
high core count (up to 54 cores per chip),
custom instruction set,
hardware-managed register windows,
type-aware pointers for efficient method calls,
fully symmetric multiprocessing with up to 16 chips (864 cores total),
memory striping across controllers for even distribution,
Hardware Transactional Memory support for concurrent Java operations,
custom coherency and memory ordering instructions,
comparison with contemporary processors from Intel and Sun,
challenges in chip design and manufacturing, impact on Java performance and concurrency,
evolution of the technology and its influence on modern processor designs,
Gil Tene's role in developing the Vega chip and related software technologies at Azul Systems,
Gil's blog: Stuff Gil Says
Gil Tene on twitter: @giltene

Aug 6, 2024 • 1h 11min
How Java HotSpot Compiler Happened
An airhacks.fm conversation with Cliff Click (@cliff_click) about:
Cliff Click's early computer experiences with xerox mainframe and punch cards,
learning fortran at a young age,
programming on TRS-80 and other early microcomputers,
developing a passion for compilers and optimization,
pursuing a PhD in Computer Science at Rice University,
inventing the sea of nodes compiler architecture,
working at motorola and discovering Intel's benchmark cheating,
joining Sun Microsystems to develop the Java HotSpot compiler,
presenting groundbreaking Java performance improvements at JavaOne 2002,
frustrations with Sun's management and development processes,
moving to Azul Systems for custom Java hardware development,
reflections on compiler research,
the challenges of being a highly productive programmer in a team environment,
analyzing bug rates and productivity metrics,
the importance of writing new code for feature development,
enjoying Java's "write once, run anywhere" philosophy,
current involvement in compiler communities on Discord and Cliff Click on YouTube
Cliff Click on twitter: @cliff_click

Jul 29, 2024 • 58min
How Bach - "The Java Shell Builder" Happened
An airhacks.fm conversation with Christian Stein (@sormuras) about:
early computing experiences with C64,
learning Basic and Pascal,
transition to Java programming,
developing a commercial Java game using lwjgl,
involvement with JUnit testing framework as a committer,
work on openJDK and Java tools at Oracle,
discussion about Java build tools and dependency management,
vision for a simpler Java build process using only JDK tools,
multi-file source code feature in Java 22,
pluggable dependency resolution,
tool provider interface introduced in Java 9,
potential for a new ecosystem of Java tools,
Bach - Java Shell Builder,
Adam's YouTube channel with Java programming shorts,
misconceptions about Java's verbosity,
future plans for Java build tools
Christian Stein on twitter: @sormuras

Jul 21, 2024 • 50min
From J2ME, over Bluetooth and Speech Recognition to AI
An airhacks.fm conversation with Bruce Hopkins about:
transition from Basic to Java,
work on Bluetooth technology and writing a book on Bluetooth for Java,
involvement with Sun Microsystems and Java ME,
becoming a Java Champion,
shift to AI and natural language processing research,
development of speech recognition and hands-free web navigation systems using pure Java,
use of Hugging Face libraries for NLP in 2016,
writing for Linux Magazine about mesh VPNs,
discovery and exploration of ChatGPT,
writing a book on integrating ChatGPT with Java,
shared experiences and parallel paths in Java development,
discussion about Sun Microsystems vs Oracle's approach to Java,
mention of various Java-related technologies like JXTA,
Sphinx,
FreeTTS, and Dalvik,
brief explanation of mesh VPNs and Tailscale,
plans for a future podcast episode focused on Bruce's JavaChatGPT book

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


