
airhacks.fm podcast with adam bien
415 episodes — Page 7 of 9

Ep 115jOOQ Loves SQL
An airhacks.fm 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

Ep 114Building Clouds for Data Center Providers with Java
An airhacks.fm 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, airhacks.live 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, jelastic.com and jelastic.cloud

Ep 113I don't want your Thorntail
An airhacks.fm 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, airhacks.fm 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: kenfinnigan.me

Ep 112Java SE, MicroProfile and GraalVM: the Helidon's Way
An airhacks.fm 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: wad.sh - 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: https://dmitrykornilov.net

Ep 111Java / Jakarta Messaging Service (JMS) on ...Microsoft Azure
An airhacks.fm 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 github.com/axisc

Ep 110Java, Vaadin, Web and vanilla Web Components
An airhacks.fm 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 alejandrodu.com, and Alejandro on github

Ep 109Java, Agents, ODATA, Serverless and Cloud Events
An airhacks.fm 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: github.com/deissnerk

Ep 108CORBA, gRPC, OSGI, vert.x, mutiny, Reactive Programming and Quarkus
An airhacks.fm 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

Ep 107High-Performance Java Persistence and Cloud Native QBasic
An airhacks.fm 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 www.artsoft-consult.ro, 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, airhacks.tv 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

Ep 106The Open-Closed Principle and Lots of Magic
An airhacks.fm 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: topdecked.com, 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, topdecked.com discount codes: 50% off any new subscription for 12 months: AwavWXNj 100% off for 6 months (new monthly plans only): xzPVPRwh New members: https://www.topdecked.com/signup Existing members / if you have an account: https://www.topdecked.com/account(detail:account/plans) Lincoln Baxter III on twitter: @lincolnthree, Lincoln's side projects: www.ocpsoft.org and his main project: topdecked.com

Ep 105Blogs, Quarkus, Service Meshes, Kubernetes, MicroProfile, Neo4J, openJ9, AsciiDoc
An airhacks.fm conversation with Sebastian Daschner (@daschners: Sebastian was introduced in airhacks.fm 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, wad.sh and Java 11, continuous build and deployment, Quarkus startup times, Quarkus on RaspberryPi airhacks.fm 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: https://blog.sebastian-daschner.com

Ep 104Trains, Filmschool, Java on RaspberryPI, Quarkus and MicroProfile
An airhacks.fm 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: www.televic-rail.com, 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 coderdojo.com and devoxx4kids.org, 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 turingpi.com, migration from Spring to Quarkus took a few hours, Frank Delporte on twitter: @FrankDelporte, Frank's blog: webtechie.be and Frank's book: "Getting Started with Java on Raspberry Pi"

Ep 103Unit Testing Considered Harmful
An airhacks.fm 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, java.net was before dot.net, starting with .net dot.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, ASP.net core is one of the most popular frameworks, ASP.net 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, codecov.io 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: https://tyrrrz.me, Alexey on twitter: @Tyrrrz

Ep 10225 Years of Java: JDK 1.0 to JDK 1.1
An airhacks.fm 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

Ep 101MicroProfile 4.0 Features and Ideas
An airhacks.fm 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, wad.sh "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

Ep 100C, Java, Distributed Computing, Hazelcast and Apache Kafka
An airhacks.fm 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 rsdn.org, 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-tutorials.confluent.io, 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: gamov.io

Ep 99VB, WebSphere, JBoss, GlassFish and Vaadin Flow
An airhacks.fm 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: 72.services and blog.

Ep 98Walk the Path--How JBoss Happened
An airhacks.fm 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: twoprime.io 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: twoprime.io / @Two_Prime

Ep 97The Lightguard and the Quarkus Cookbook
An airhacks.fm 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

Ep 96Long Coding Nights, ShrinkWrap, Arquillian and Testing
An airhacks.fm 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

Ep 95Getting Good Ideas From .net
An airhacks.fm 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

Ep 94Jakarta EE, MicroProfile and the iPhone Problem
An airhacks.fm 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

Ep 93Choose Things That Work And Solve The Problem
An airhacks.fm 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 formsite.com, starting at fortify, joining Oracle Java Platform Group, 2 years of Java without a zero day exploit, starting at contrastsecurity.com, 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 contrastsecurity.com

Ep 92Programming Wallpaper over Violin
An airhacks.fm 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

Ep 91Visual Studio Code: Java, XML and Quarkus
An airhacks.fm 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

Ep 90Bruno Hates YAML-Microsoft Loves Java
An airhacks.fm 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 adoptopenjdk.net 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: opentelemetry.io, 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, azure.com/free, Bruno Borges on twitter: @brunoborges and LinkedIn

Ep 89What is the Direction of Quarkus?
An airhacks.fm 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: https://github.com/eclipse/microprofile/issues, 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

Ep 88In-Process Polyglot with GraalVM
An airhacks.fm 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

Ep 87If You Get A Book, You Have To Start Reading
An airhacks.fm 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

Ep 86The Remedy against Bike Shedding
An airhacks.fm 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

Ep 85Jakarta EE and MicroProfile--Siblings, Cousins or Twins
An airhacks.fm 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

Ep 84Microscopic Services and The Jakarta EE 9 Earth Quake
An airhacks.fm 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 airhacks.fm 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: https://headcrashing.wordpress.com/

Ep 83From JMS Unit Tests to OpenLiberty
An airhacks.fm 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

Ep 82Just Write Code and Keep It Forever
An airhacks.fm 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: https://headcrashing.wordpress.com/

Ep 81Strip The Cow To The Skeleton
An airhacks.fm 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 piranha.cloud

Ep 80500 kB ThinWARs on AWS
An airhacks.fm 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 ...at 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

Ep 79Back to Shared Deployments
An airhacks.fm 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 yupiik.com 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: rmannibucau.metawerx.net

Ep 78From Maxwell over Maxine to Graal VM, SubstrateVM and Truffle
An airhacks.fm 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

Ep 77The Competitive Developer
An airhacks.fm 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.

Ep 76Quarkus Developer Experience
An airhacks.fm 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, airhacks.fm 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: application.properties and mp-config.properties, The Quarkus cookbook is going to be published in summer 2020, writing kubernetes operators with quarkus, the quarkus vault integration, airhacks.tv quarkus / vault questions, the vault sidecar container, Alex Soto on twitter: @alexsotob

Ep 75Lord of the Jars
An airhacks.fm 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: www.lordofthejars.com and Alex on GitHub

Ep 74Exposure Driven, Natural-Born Programmer
An airhacks.fm 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: https://blogs.eclipse.org/blogs/tanja-obradovic

Ep 73The "MDN First" Approach with Web Components
An airhacks.fm 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 airhacks.com 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

Ep 72KISS and No Dependencies in JGroups
An airhacks.fm conversation with Bela Ban belaban.blogspot.com 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 with Java over JNI, Cornell University research with Sun's Java 1.0, working with Ken Birman, Robbert van Renesse, Werner Vogels, Ensemble in Ocaml, replacing Ocaml with Java the "Java Groups", Jim Waldo was leading the JINI project, Sun Microsystems and Cornell worked together to make Java Intelligent Network Infrastructure (JINI) reliable using Java Groups, leasing JINI was revolutionary, JINI message was changed several times, there was no elevator pitch for JINI, Sun tried to keep the JINI / Java Groups cooperation secret, A Note on Distributed computing by Jim Waldo, the Eight Fallacies of Distributed Computing, JGroups on Sourceforge in 2000 (and still on available), revival of JGroups at Fujitsus's Network Management System, the Sacha Labourey and Marc Fleury contact, writing JBoss Cache on unpaid vacation in 6 weeks, the Blue and Red Papers from Mark Fleury, the EJB Open Source System, Mark Fleury and paratroopers, JBoss Cache started as tree and became a distributed map, meeting Manik Surtani in a Taxi, JBoss Cache became Infinispan, JGroups is the communication layer of Infinispan, the CP of CAP interests resulted in RAFT, JGroups RAFT is used in production, there are many Paxos implementations Raff is a Paxos simplification, RAFT for kids in JBoss Distributed Singletons, useless but consistent systems, vector clocks is an inconvenient reconciliation system, JGroups is using RocksDB and MapDB, JGroups makes UDP and other protocols like RDMA reliable, JGroups is particularly efficient with many nodes, JGroups and Sun Cluster Lab in Switzerland, running JGroups on 2000+ nodes at Gcloud, Project Loom and Fibers, mini sabaticals for hype chasing, back to easy request response to Project Java's Loom and Fibers, injecting JChannel in Quarkus, JGroups runs on Quarkus in native mode, KISS and JGroups - No Dependencies in JGroups, Bela's blog: belaban.blogspot.com

Ep 71Productivity with Plain Vanilla Web Components
An airhacks.fm conversation with Robert Brem (@bremrobert) about: JavaScript was worse than GWT, Swing over SWT, ES 6 / ECMAScript 2015 changed everything, ES 6 looks like Java, MDN is like JCP for specs, ES 6 does not come with usable templates, lit-html and hyperHTML close the gap, WebComponents over ReactJS, AngularJS (Angular v1) was nice, Angular applications were hard to modularize, why the Angular airhacks.com Workshops at Munich Airport were "interesting", core.js developer searches for a job, nobody cares about dependencies in the frontend, Google Cemetery, Angular comes with two releases a year and follows semantic versioning, core.js is a "Modular standard library for JavaScript", rollup.js is a ES 6 module bundler, what happens if something breaks, why it can take two days to invoke a Java method, one super Web Component is reasonable, mapping redux to BCE structure, preventing frontend dependencies with CI/CD audits, structuring code after domain responsibilities, it is impossible to create a template with business structure, Semantic UI for styling components, Custom Events are used for communication, using CSS variables to style ShadowDOM, loading CSS per BCE package, Angular Elements, replacing Custom Elements with home grown code, Robert Brem on twitter: @bremrobert

Ep 70JavaFX Strikes Back
An airhacks.fm conversation with Johan Vos (@johanvos) about: Java FX, CodeONE and JavaONE or conferences as trainings camp, Java FX is more applicable now to mobile devices, Java FX and GraalVM teams are working together to improve performance, openjfx.io the new home of JavaFX, Java is a perfect technology for client development, using Java on the client and on the server greatly increases productivity, the beginnings of JavaFX, JavaFX on an iPad, RoboVM the Java to native compiler, RoboVM was used to deploy JavaFX to iOS, JavaFX has the same codebase on mobile and on desktop, Johan Vos is co-lead of openjfx, Oracle is open for community contributions to JavaFX, Oracle provides support for Java 8, what also includes JavaFX 8, JavaFX frontend also makes a Java backend more appealing, openJFX github mirror, openJDK project skara, gluon JavaFX releases, Neil Young on JavaONE, RoboVM was aqcuired by xamarin then Xamarin was acquired by microsoft, RoboVM is still opensource, openJDK mobile project, Android is more problematic than iOS, to run Java 11, Zero: interpreter only openJDK, GraalVM supports LLVM and so iOS and Android platforms, SubstrateVM is like tree shaking for Java, JavaFX UI controls, openJFX controls, main goal of openJFX is long term maintainability, TilesFX JavaFX library for Dashboards, TornadoFX JavaFX for Kotlin, JavaFX charts by DLSC, JFX Days Zurich, JavaFX 3D Visualization and Component Library FXyz3D, SceneBuilder downloads are increasing, JavaFX is comparable to ionic, flutter and Reactive Native, the future of JavaFX is stable, migration from JavaFX 8 to JavaFX 9 had breaking changes caused by the introduction of Java 9 modules, Java's total costs of ownership are low, Gluon Attach allows integration of native device's sensors, JavaFX comes with a WebView which can be used as a bridge, JavaFX WebView is based on recent WebKit, GluonMaps, Gluon CloudLink, Gluon provides LTS support for JavaFX, Gluon Mobile Johan Vos on twitter: @johanvos, Johan's company: Gluon

Ep 69Maintainability or Deletion over Upgrade
An airhacks.fm conversation with Robert Brem (@bremrobert) about: Windows 95 with 15 for gaming, Nascar watching Korean StarCraft streams, writing the first Hello World in Visual Basic for Excel, in programming you can retrying without breaking anything, in ABAP everything had four letters, automating Excel merges with visual mode "on", hiding ABAP skills, ABAP could strike back with: Abular.js, Java 5 was released in September 2004, Generics were introduced with Java SE 6, annotations with Java SE 5, Sun Certified Programmer Certification was really hard, connecting WII controller to ActionScript 3, developing games in ActionScript 3, J2EE was too much, sustainable economics game as master thesis, saving the state of the game by serializing the board, the HSR in Rapperswil the beatiful place for lazy students, Peter Sommerlad was a demanding teacher but introduced Jenkins and automation, getting the color of the surface from satellites, the hosted GWT was slow, Spring Implementation of EJB container - project Pitchfork (now https://oss.oracle.com/projects/pitchfork/), deleting over upgrade, dependencies are fun for green field projects, the sequence of joy: GWT, ABAP and Eclipse RCP, the mensa club, the most sophisticated loading screen ever, the multi-dimensional Map (MapMap) solves all problems, automating infrastructure with Vagrant, Ansible and Packer, www.confirm.ch, all nails in the food has to be published in Switzerland, lit-html is the only dependency in the frontend and only Jakarta EE in the backend, sub MB ThinWARs and a few seconds deployment, building an entire application on one day, Robert Brem on twitter: @bremrobert

Ep 68You Are Not Google, Netflix, Facebook
An airhacks.fm conversation with Tomasz Nurkiewicz (@tnurkiewicz) about: getting a 486 with 8 MB of RAM, 324 MB large hard drive with 12, discovering the "bat", the logo programming language, the Settlers real time strategy game, Wolfenstein 3D, Windows 3.11 was not a real operating system, the "exe" and the "com" files, the accidental discovery of bubble sort and recursion in Turbo Pascal with 17, developing a file browser with Turbo Pascal, the "hello, world" in chapter 5 of the Haskell book, "hello, world" is a very complex problem in Haskell, there are programming languages optimized for "hello, world", porting a 3d tetris in C++, enjoying the Breakout game, Arkanoid is based on breakout idea, programming the whole vacations straight a Tetris 3D-like game, using single threaded, voluntary preemption in game development, discovering coroutines, implementing a AI-like solution, starting with Java 1.4, enjoying the university time, building a logo compiler as master thesis, building a desktop, RMI-based, chat, gathering the "Sun Certified ..." certificates, Sun Java Programmer certification was the hardest, Sun Java Developer was the most rewarding, finding the longest palindrome, ehcache is a palindrome, most naive "palindrome finding" algorithms do work good enough for human readable text, getting a multi-month task done with 3 lines of code, compiling and decompiling (with JD) source code for codebase comparison, a session about AspectJ, the Project Voldemort database initiated by LinkedIn, gathering StackOverflow reputation and speaking at conferences as hobby, joining a Java startup in Norway, working on allegro ecommerce platform, allegro is #2 in Europe, breaking up the PHP monolith into microservices, 800 reasonable microservices in production, inviting Eric Evans to allegro to help with the Bounded Context, deploying the Envoy service mesh for greater visibility, accidental creation of an identical slide ("Recipe For Success"), you don't need reactive programming if you are not netflix or do not serve tens of thousands requests per second, paying the price of maintainability and complexity, don't use the shiny tools, if you don't have to, the free Logo for Mac: ACSLogo, Tomasz Nurkiewicz on twitter: @tnurkiewicz, on github: github.com/nurkiewicz and Tomasz blog: www.nurkiewicz.com

Ep 67TestContainers, Unit, Integration, System, Load and Stress Testing
An airhacks.fm conversation with Kevin Wittek (@kiview) about: The Java Blockchain Benchmarking Framework, ironkobra, practicing heavy metal in a hospital, boring but fast Mugen Seiki, Uli Jon Roth and G3, playing together with Uli Jon Roth, the Dodge Charger experience, the Jakarta EE, MicroProfile and Quarkus test approaches, the 3 kubernetes environments, using Jenkins on OpenShift, unit tests, integration tests and system testing, the wad.sh tool for local deployment, using TestContainers to launch PostgreSQL, port forwarding with OpenShift, seamless onboarding with TestContainers, black box integration tests are system tests, convenient system testing with Jakarta EE, kubernetes readiness probes are waiting strategy from test containers, using TestContainers to execute openshift deployments locally, TestContainers is a convenient, object oriented API for docker, in the next, major, TestContainers release the testing and docker remote control are going to be separated, using TestContainers for JPA integration testing, Quarkus and TestContainers, in-process System Testing is for lazy developers, enforcing frequent integrations, kubernetes is a larger problem than an application server, from local scripts, to central Jenkins pipeline, TestContainers always removes all the containers after JVM exit, the reusable container feature, interactive testing environment, unit tests are for classes in project's control, integration tests are for classes outside the project's control, pentagonal architectures, system tests is a blackbox tests, stress tests and performance tests, why REST-assured is not used, performance tests with JMH, using JMH for Blockchain Benchmarking Kevin Wittek on twitter: @kiview on github https://github.com/kiview and Kevin's blog.

Ep 66Kubernetes, OpenShift, istio, Postgres, Clouds, Backend for Frontend, vue.js and MicroProfile
An airhacks.fm conversation with Niklas Heidloff (@nheidloff) about: The Java Cloud Native Starter landing page www.cloud-native-starter.com, cloud native starter was tested on Kubernetes, Minikube, IBM Kubernetes Service, Minishift 3.11, OpenShift on IBM cloud, the Postgres operator, the relation between kubernetes namespace, the application and the microservices, the vue.js frontend with redux, the role of the istio ingress controller, traffic splitting and routing, backend for frontend, the MicroProfile JAX-RS client, clean architecture, fighting the Parkinson's Law of Triviality, connecting to Cloudant, and PostgreSQL via JPA, Cloudant is managed version of CouchDB, IBM offers managed DB 2 and PostgreSQL databases, Kubernetes ships without authentication and authorization, implementing the OpenID flow with NodeJS, convenient user management with Keycloak, Gatekeeper - the oauth flow implementation for Keycloak, App Identity and Access Adapter for Istio, prometheus service discovery on kubernetes, with istio you cannot look inside the application, prometheus-like monitoring with sysdig and distributed logging with logdna, traffic routing visualization with kiali, Java Cloud Native Documentation was a major effort, Jakarta EE and MicroProfile could help you to become famous, OpenLiberty with OpenJ9 and Quarkus, Niklas Heidloff on twitter: @nheidloff Niklas' blog: heidloff.net, Niklas on github: github.com/nheidloff