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

Aug 14, 2022 • 1h 12min
I first played games I wrote
An airhacks.fm 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

Aug 6, 2022 • 1h 1min
AWS Lambda, Events, Quarkus and Java
An airhacks.fm 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: madabout.cloud

Jul 31, 2022 • 57min
Write, Finish, Improve-jPOS
An airhacks.fm 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,
cts.com 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

Jul 24, 2022 • 1h 27min
HATEOAS, Data APIs, Java and How htmx Happened
An airhacks.fm 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 bce.design 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

Jul 17, 2022 • 1h 2min
Modules in the JVM or the Clouds
An airhacks.fm 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

Jul 8, 2022 • 54min
Idempotency, Secrets, Dependency Injection and AWS Lambda
An airhacks.fm 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: mark-sailes.medium.com

Jul 2, 2022 • 1h 6min
Maven (Next) and Convention over Configuration
An airhacks.fm 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

Jun 26, 2022 • 1h 2min
Building Chrome DevTools with Vanilla Web Components
An airhacks.fm 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 jackfranklin.co.uk

Jun 19, 2022 • 55min
Becoming an Apache Maven Committer
An airhacks.fm 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 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, airhacks.fm episode with Robert: "#28 More Conventions with Maven.next",
working as DevOps engineer,
Karl Heinz Marbaise on twitter: @khmarbaise

Jun 13, 2022 • 1h 23min
GraalVM, Apple Silicon (M1) and Clouds
An airhacks.fm 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 kenai.com 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
Remember Everything You Learn from Podcasts
Save insights instantly, chat with episodes, and build lasting knowledge - all powered by AI.