PLAY PODCASTS
airhacks.fm podcast with adam bien

airhacks.fm podcast with adam bien

398 episodes — Page 7 of 8

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

Jul 27, 20201h 5m

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

Jul 19, 20201h 9m

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

Jul 10, 20201h 10m

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

Jul 8, 20201h 8m

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

Jun 28, 202053 min

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

Jun 22, 202055 min

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

Jun 13, 20201h 21m

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

Jun 6, 20201h 0m

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

May 30, 20201h 16m

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

May 23, 20201h 2m

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

May 16, 20201h 4m

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

May 9, 20201h 18m

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

May 2, 202059 min

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

Apr 25, 202059 min

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/

Apr 18, 20201h 29m

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

Apr 11, 20201h 5m

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/

Apr 7, 202059 min

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

Mar 29, 20201h 18m

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

Mar 22, 20201h 36m

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

Mar 15, 202058 min

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

Mar 8, 20201h 13m

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.

Mar 1, 202052 min

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

Feb 21, 202057 min

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

Feb 16, 20201h 2m

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

Feb 8, 202056 min

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

Feb 1, 202054 min

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

Jan 26, 20201h 18m

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

Jan 19, 202051 min

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

Jan 12, 20201h 8m

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

Jan 6, 20201h 9m

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

Dec 29, 20191h 3m

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.

Dec 21, 201958 min

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

Dec 15, 201943 min

Ep 65From JSF to Vanilla WebComponents and MicroFrontends

An airhacks.fm conversation with Mark Struberg (@struberg) about: Frontends for backends, JSF 2, Vaadin, vue.js, Angular, ReactJS, deep linking with JSF 2, JSF 2 with modularised backends, productive JSF, data binding and data validation with JSF 2, the limits of JSF components, JSF architectures, JSF is not suitable for building offline SPAs, JSF is a server centric framework and therefore requires CPU resources, don't fork JSF components -- contribution is better for maintainability, Thomas Andraschko is #2 contributor to primefaces, building HTML 5 offline applications with JavaScript, the Java EE-stic approach to frontends, "Progressive Web Apps without frameworks #nomigrations #webstandards #noslides", using vanilla WebComponents to write serious applications, Mozilla Developer Network is set of collective set of web standards tutorials and documentation, building WebComponents without polymer, using pure, semantic HTML 5 for maintainability, CSS grid and Flex Box are available in all browsers, angular release strategy and semver, web standards playlist, MicroFrontends with ES 6 modules, Vaadin WebComponents, UI5 WebComponents from SAP, npm is no more a requirement, lit-html and hyperhtml for convenient templates, ES 6 template literals, using rollupjs to create a common set of libraries, Shadow DOM for encapsulation, "Mozilla brings Microsoft, Google, the W3C, Samsung together to create cross-browser documentation on MDN", the golden age for Java Developers, Mark Struberg on twitter: @struberg and github. Mark's blog: struberg.wordpress.com/

Dec 8, 201925 min

Ep 64Quarkus 1.0 and SpringBoot

An airhacks.fm conversation with Dimitris Andreadis (@dandreadis) about: eclipsecon, Quarkus 1.0 and 1.0.1 releases, Quarkus is 8 months young, more extensions, more reactive functionality, 97 external committers and 93 RedHat committers, opinionated view vs. expansion and experimentation, Quarkus long term support, the three levels of extensions, quarkus extensions registry, the idea of composite extensions, emulating the composite extensions with a no-op extension, emulating the "all" injection setting in beans.xml, Quarkus uses Jandex for annotation searching, there is no greenfield development, many new developers are coming from SpringBoot, Kubernetes Native Spring apps on Quarkus by Georgios Andrianakis, Vodafone Greece replaces SpringBoot with Quarkus, the business case of SpringBoot to Quarkus migration was RAM consumption, boot time improvement with Quarkus, J9 JVM improves startup time, external dependencies are bad for startup time, Quarkus power is Java optimization, Quarkus optimises the standard Java HotSpot application, GraalVM optimizes it even further, Quarkus performs Hibernate optimizations at build time and not deployment time, Quarkus does not include SpringBoot library, Quarkus provides a Spring API compatibility layer which is converted at build time, Spring is emulated on Quarkus, the Spring compatibility layer was implemented in a month, Quarkus is built on 20 years old wisdom like Hibernate or Transaction Manager etc, in the Vodafone case, Quarkus reduced 60% of RAM, with memory savings come cost savings, the fast boot time is important for scaling in the clouds, Quarkus is comparable to React -- comes with free memory improvements without migrations, Quarkus ships with Vert.x, the Quarkus Vault extension, the SpringBoot compatibility layer is conceptually similar to Linux Wine compatibility layer, Quarkus would like to stay away from EJB, EJBs are faster than CDI on regular application servers on Quarkus the performance could be comparable with RequestScoped, Quarkus ships with built-in CORS filter, Keycloak supports oauth flows with a Gateway (Gatekeeper), Quarkus comes with native JWT Microprofile support, two Quarkus books are in the pipeline, keeping the conventions and usability of Quarkus could become a challenge, Quarkus will also come with tight OpenShift integration, the Engineering Director of the Extended Quarkus Team Dimitris Andreadis on twitter: @dandreadis and dandreadis.blogspot.com

Dec 3, 201955 min

Ep 63NodeJS, MicroProfile and Java Cloud Native Starter

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS An airhacks.fm conversation with Niklas Heidloff (@nheidloff) about: Changing the font color with Basic on C64, playing Frogger, serious programming with Turbo Pascal on PC 80286, developing a shooter UFO game, writing a school magazine with MS Word, Graphical User Interfaces with Turbo Pascal, studying Computer Science in Paderborn, 25 years ago everything was already developed, Thomas J. Watson: 'I think there is a world market for about five computers', collaboration technologies at the university, IBM Notes, productive development with IBM Notes Domino, working with a startup and the Lotus Workflow product, the very first Java User Interface for the Workflow tool, startup was acquired by IBM, the 60% more paycheque, Lotus Notes was one of the first NoSQL databases, CouchDB is based on Lotus Notes ideas, the out-of-the-box experience of Lotus Domino was great, also OpenShift comes with great user experience, Lotus Notes had good replication capabilities, Java is is a lightweight and clean programming language, Applets were too buggy, ProcessWare became Lotus Workflow, growing without a reason, leading the frontend team for WebSphere Workflow, the interesting Visual Age for Java IDE, IBM Alphaworks and DeveloperWorks, Jikes - the fast Java Compiler, drawing boxes is not a exciting as developing software, growing the Lotus Notes community, openntf.org, learning from Eclipse and Apache, Lotus Notes business was sold to HCL, the RedHat opensource model, moving from Lotus Notes to Cloud Architectures, joining the IBM Emerging Technologies Organization and the Developer Outreach "Cloud Native" Team, building samples and traveling to international conferences, the Java Cloud Native Starter, the one end-to-end enterprise Java Cloud Native application, Kubernetes, OpenShift, Docker, Maven, MicroProfile, Kiali, Quarkus, installation scripts, vue.js and traffic routing with istio, the overlap between MicroProfile and Istio, the article by Emily Jiang, MicroProfile, NodeJS vs. MicroProfile, the NodeJS innovation, Niklas Heidloff on twitter: @nheidloff, Niklas' blog: heidloff.net, Niklas on github: https://github.com/nheidloff

Nov 24, 20191h 0m

Ep 62Modules, Interfaces and Microservices

An airhacks.fm conversation with Mark Struberg (@struberg) about: Mark loves microservices, "if all you have is a hammer, everything looks like a nail", by Abraham Maslow, Hype Driven Development, the right size of a Microservice, splitting an application with Apache Maven, interfaces and DTOs, structuring a monolith, the killer argument against modules, interfaces with a single implementation, what if all the modules have the same version, testing against interfaces, pure unit tests are problematic in microservice world, avoid testing mocks, most problems and errors are in the database, System Tests in production-near environment over CDI Unit, Arquillian and Delta Spike, the overhead of Kubernetes, there are projects which require scaling others do not have such requirements, KVM over Kubernetes, testing locally vs. in production-like environment, Kubernetes is not only about load and scaling, Kubernetes is about management and sysadmins productivity, the main problem in business projects is overengineering, "Anything that can go wrong will go wrong": Murphy's Law, 200 errors per second, coursing about EJB and Java Enterprise, back to synchronous programming, transaction optimizations could be problematic, generating superfluous code with lombok, the "open session in view" pattern, transactions on JSF actions, in many use cases transactions are started on a too deep level, SOA and transaction boundaries, the fallacies of distributed computing, even larger projects have 10 microservices at most, there is no big company with a single, big monolith, staying local comes with the comfort of transactions, large amount of microservices is problematic, in 5 years we are going to reeingineer microservices into something different, everyone hates SOA now, everyone loved SOA back then, the saga pattern and compensating transactions, Jeff Bezos note on microservices from 2002, the benefits of microservices, the big bang Jakarta EE migration, the automatic package transformation with classloader, runnning old JARs on new namespaces, MicroProfile moves and iterates faster, Jakarta EE's release cadence is less frequent, the definition of "done" and micro frontends: Mark Struberg on twitter: @struberg and github: https://github.com/struberg. Mark's blog: https://struberg.wordpress.com/.

Nov 17, 20191h 12m

Ep 61Forever Young and Java on an iPad

An airhacks.fm conversation with Anton Epple (@monacotoni) about: CPC 464 Schneider, gerontology, the Hello World in hospital with 12 in Basic, the amazing experience of teaching machine to do something, the great War Games movie, typing a skiing game with ASCII graphics from a magazine in a hospital, listening and generating a computer sound, how to make a piano teacher cry, piano is too direct for a programmer, sending a listing to Schneider Magazine with 14 years without any success, writing the F... and Die game with 14-15, Payara is to slow for CPC, driving in a car through Poland during NetBeans WorldTour, how to become really old, drawing cartoons of a teacher can be dangerous, math teacher's hate, a short deviation of becoming a programmer by studying biology, the 600 theories of aging, DNA analysis with Perl, Computer Science over biology, the Netbeans User Group Munich, Java EE causes attendee's overflow, working with Microsoft Java, Visual J++, working on Bibliosphere to visualize connections between genes in 3D, loving Java from the beginning, the fights between Perl and Java, discovering Forte4j, using NetBeans platform for building desktop applications, NetBeans is productivity without the need of plugin installation, the consultant for biology-related and genetic applications without clients, profanities in comments, the 1h consulting job, NetBeans Platform was used heavily in traffic control, defence and military applications, Java FX on Android and iOS, JavaFX runs on an iPad on JavaONE's 2011 keynote, Mobile Application Framework (MAF) from Oracle was preferred over Java FX, Johan Vos and Co.took over JavaFX and continue the development, Jaroslav Tulach wanted to run Java in Browser -- and how Bck2Brwsr happened, Bck2Brwsr is a Java to JavaScript transpiler, Jaroslav's MVVM pattern separated the View from the presentation logic written in Java, you never had to interact with the widgets in Java code, DOM properties are listening to Java-based model - the Model View-ViewModel pattern, with Dukescript you can write presentation logic in Java and bind it to web standards like e.g. WebComponents, Onsen UI provides the widgets, Java based models are JSON-serializable, client Java models are reusable on the server, there is no duplication, Dukescript allows the execution in browser as transpiled JavaScript and on the server as Java running in the VM, Dukescript was started in 2013, Dukescript won the Duke Innovation Awards, the Smart Access Solutions startup, Dukescript could provide bindings to native UIs - similar to React Native, NetBeans comes with native Dukescript support, either you have time, or you have money, buying support prevents forks and might be cheaper over time, Anton Epple on twitter: @monacotoni, Toni's newstartup and the award-winning dukescript.com

Nov 10, 20191h 9m

Ep 60Java EE, Jakarta EE, MicroProfile and the Big Bang

An airhacks.fm conversation with Kevin Sutter (@kwsutter) about: C64 for gaming - Datasette included with 16, how to break in and modify the code, the high school teletype course in Basic on serious machines in Austin Minnesota, applied math in high school, compute science degree in Pascal at the University of Wisconsin, working for Sperry and the merger with Burroughs, information and systems and Unisys, writing code in Pascal-like language, writing chip-design simulators in Alabama, the best software engineering project award, SOM and DSOM, (not ISAM) IBM buys Transarc, from Transarc to WebSphere, the "bring up lab" - the early CI / CD, the performance boost of JDK 1.1.8, the Java Connector Architecture (JCA) for JDBC and JMS around 2000, working on caching, data grid, object grid, and eXtreme Scale with Billy Newport, WebSphere eXtreme Scale and "Eventual Consistency", leading the JPA spec and the first opensource interaction around 2005, BEA donates kodo to apache which became openJPA, the convenient way to become a committer, Java is nicer than C++, IBM buys Gluecode - the company which provides commercial support for the Geronimo Application Server, David Blevins worked on openEJB at the same time, becoming a Java EE architect for WebSphere product in 2013, the development with OpenLiberty is more fun, IBM moves to EclipseLink but still supports openJPA, Microprofile involvement, Microprofile became immediately popular, Ian Robinson and Mark Little met at Devoxx UK and started the initial conversation about MicroProfile in 2016, MicroProfile 1.0 started with JSON-P, CDI and JAX-RS APIs from Java EE, Oracle proposes the opensourcing of Java EE, the meeting with Oracle in London to talk about opensourcing Java EE, behind the scenes of the Big Bang "javax" migration to "jakarta", the relation between the steering committee and the platform group, the relation between Jakarta EE and MicroProfile, the advantages of keeping Jakarta EE and MicroProfile separate, opentracing.io became opentelemetry which affects MicroProfile distributed tracing, MicroProfile iterates faster than Jakarta EE, from opentracing.io to opentelemetry.io, SOAP deprecation, openJPA started from a project named KODO, the openliberty guides, microprofile.io and jakarta.ee, start.microprofile.io, Jakarta EE Blogs Kevin Sutter on twitter: @kwsutter and github: https://github.com/kwsutter

Nov 3, 20191h 9m

Ep 59Blockchain, Heavy Metal and Testcontainers

An airhacks.fm conversation with Kevin Wittek (@kiview) about: typing with 3 on a terminal, 486 for playing DOS games, radio controlled cars for fathers, RC car races with transponders, worldcup in beijing, hawaii, las vegas, tamiya, kyosho, professional competition RC cars by Mugen Seiki, playing civilization-like game, switching from PCs to console gaming, starting with Quick Basic programming at highschool, writing text adventures with Quick Basic and huge if-else blocks, advent calendar with Quick Basic, switching from Quick Basic to Java 1.4, a coffee lover without aeropress, aeropress and aerospace technology, aerobie frizbies, teaching polymorphic dispatches at highschool, who cares about object orientation, bluej programming learning environment, the great scratch IDE, manipulating the ASCII characters might not be the future, sometimes it is better to manipulate the Abstract Syntax Tree (AST) directly, writing a ZIP-compressor in Java, studying in Gelsenkirchen-the Java-focussed university, writing Android software for Museums, Museums don't have money, writing fraud detection services for GData, banking trojan detection was really successful, leading the blockchain research group, having a dream job, lazy loading the PhD topic, assessing the non-functional aspects of a blockchain system, why Groovy is a pragmatic language, Groovy started as an ergonomic version of Java, playing e-guitar at a heavy metal band "Iron Kobra", Rush, Deep Purple, Led Zeppelin, and a bit Metallica, one of the best guitar players is Uli Jon Roth from the German Scorpions band, starting to play guitar with 16, starting with TNT from AC/DC, software engineering is like playing blues, the SoCraTes Conference, the JUnit 5 extension for Docker, the beginnings as TestContainers committer, Richard North was the initiator of the TestContainers project, TestContainers started in a blockchain-related project, TestContainers project was written in Java from the beginning, TestContainers started with JUnit 4 integration, the TestContainers project has actually nothing todo with testing, ephemeral container concept is built-in into the testcontainers, the docker container is going to be removed after the JVM exits, ryuk is a side container which watches the actual container, when the JVM stops sending the heartbeat - ryuk will remove the container, GraalVM might replace Go in the sidecontainer, testcontainers gives strong guarantees about readiness, testcontainer ships with multiple probes / wait strategies: log-based wait strategy, port-based wait strategy, docker health-check strategy, testcontainers ships with container communication API, in the case of a database testcontainer will provide a JDBC-URL, testcontainer can is able to start DB on demand by using the JDBC driver, testcontainer also works with remote Docker daemons, testcontainer is using the REST interface to communicate with Docker, the switch from Netty to OkHTTP, testcontainers relies on Docker Java, hardcoding functionality in a project is the right choice at the beginning, testcontainers has to be refactored into two parts, testcontainer's 2.0 goal are distinct APIs for testing and container orchestration, windows support was a challenge, testcontainers supports windows, linux and MacOS, the testcontainers team is using Macs for local development, azure pipelines is used to test windows, Kevin Wittek on twitter: @kiview, on github https://github.com/kiview and Kevin's blog.

Oct 28, 20191h 5m

Ep 58Helidon: Never Block The Thread

An airhacks.fm conversation with Tomas Langer (@langer_tomas) about: The first line of code was in Basic on Atari 800 XE in 1989, computer club for kids in Prague, the programming accident in Java, studying and working for 16h a day, early interests in application servers, joining BEA Systems in 2003 and starting with version 6, the weblogic.jar and the weblogic "thin client" jar, the only BEA consultant in eastern Europe, Oracle's acquisition was a big change, leaving Oracle and moving to AVG for building custom application servers, starting at HomeCredit to develop with WebLogic, service buses and Co., joining a JavaONE conference session with Josh Long about SpringBoot, what is the purpose of FatJARs, one application per server, WebLogic became bigger over time, hollow JARs are explainable, about the costs of running application servers in the cloud, the deconstruction of the application server, how clustering became obsolete, application servers and docker layers, separation of business logic and infrastructure, the superfluous deployment machinery, the idea of a single application, the complicated application server's classloading, helidon only relies on the system ClassLoader, cloud features without clouds, starting at Oracle again, Airport, Prime, J4C and Helidon, helidon was fully opensourced in February, 2019, the origin Helidon idea was to be a cloud platform, Helidon's security is similar to WebLogic 8-9 security model, helidon separates between the user and service accounts, helidon's outbound security is automated, helidon was designed with docker in mind, helidon supports hollow jars and so directly the Docker layering, FatJARs are not worth the trouble, bare metal is the killer use case for FatJARs, hardcore classloaders are problematic with GraalVM, Helidon supports MicroProfile 3.0 all parts of it, merging all infrastructural modules in a single JAR is dangerous - beans.xml and class clashes are possible, helidon comes with JWT support fo outbound communication, in helidon you can provide you own main method, helidon comes with two modes: MicroProfile and Java SE, helidon is just a set of libraries, one library happens to be the server -- but is optional, helidon started as a Java SE platform only - microprofile came later, helidon was inspired by expressjs, trying to replicate the express experience, helidon ported the Java 9 flow API to Java 8 (by renaming the package) to backport the user experience, helidon uses the event loop of netty - never block the thread, most of Jakarta EE and Java SE libraries are not reactive, Java SE and MicroProfile modes can be used at the same time, helidon Java SE application is directly compilable with GraalVM to native image, Helidon 2.0 will come with native compilation support of MicroProfile, commercial support for Helidon will be probably possible, Helidon team answers questions on slack channel, no-one is interested in providing support of outdated software, MicroProfile is volatile - backward compatibility can be a challenge, Tomas Langer on twitter: @langer_tomas and on github: https://github.com/tomas-langer

Oct 20, 20191h 19m

Ep 57DBs-ium, CDC and Streaming

An airhacks.fm conversation with Gunnar Morling (@gunnarmorling) about: The first Debezium commit, Randal Hauch, DBs-iuim, Java Content Repository JCR / modshape, exploring the Change Data Capture (CDC), how Debezium started, the MySQL binlog, the logical decoding in Postgres, Oracle Advanced Queuing, update triggers, Java Message System (JMS), there is no read detection, switching the current user at JDBC connection for audit purposes, helping Debezium with additional metadata table, using Kafka Streams to join the metadata and the payload, installing the logical decoding plugins into PostgreSQL, logical decoding plugin exposes the data from the write ahead log, decoding into protocol buffers with decoderbufs, in cloud environments like e.g. Amazon RDS you are not allowed to install any plugins, wal2json is verbose but comes preinstalled on RDS, pgoutput is responsible for the actual decoding of the events, debezium only sees committed transactions, debezium is mainly written in Java, decoderbufs was written by community and included to debezium, Debezium communicates with Postgres via the JDBC / Postgres API, pgoutput format is converted into Kafka Connector source format, Kafka Connect is a framework for running connectors, Kafka Connect comes with sink and source connectors, Kafka Connect comes with connector specific connectors like e.g. StringConverter, Converters are not Serializers, Debezium ships as Kafka Connect plugin, Kafka Connector runs as standalone process, running Debezium in embedded mode, JPA cache invalidation with Debezium, converting Debezium events into CDI events, converting database changes to WebSockets events, database polling vs the Debezium approach, DB2 will support Debezium, Oracle support is "on the horizon", Oracle LogmMiner, Oracle XStream, Debezium supports Microsoft SQL Server (starting with Enterprise license), Apache Pulsar comes with Debezium out-of-the-box, Pulsar IO, running Debezium as standalone service with outbounds APIs, MongoDB supports the "Debezium Change Event Format", Kafka Sink connectors are easy to implement, Debezium embedded mode and offsets, embedded connector has to remember the offset, an offset API is available for embedded Debezium connectors, combining CDC with Kafka Streams, Quarkus supports Kafka Streams and Reactive Messaging, Quarkus and Kafka Streams, Quarkus supports Kafka Streams in dev mode, replacing Hibernate Envers with Debezium, Messaging vs. Streaming or JMS vs. Kafka, Kafka is a database, the possible Debezium features, Cassandra support is coming, Outbox pattern is going to be better supported, transactional event grouping, dedicated topic for transaction demarcations, commercial support for Debezium, Debezium exposes JMX metrics, Five Advantages of Log-Based Change Data Capture, Reliable Microservices Data Exchange With the Outbox Pattern, Automating Cache Invalidation With Change Data Capture Gunnar Morling on twitter: @gunnarmorling and github: https://github.com/gunnarmorling. Gunnar's blog: https://morling.dev/.

Oct 13, 20191h 11m

Ep 56Jason's Binding and Fast, Greek Birds

An airhacks.fm conversation with Dmitry Kornilov (@m0mus) about: Programming mother and Basic "print", pl 1 on mainframes, enjoying the creativity of programming, developing Tetris with 12, enjoying one of the first XT PCs in Russia in 1985, using pupil testing applications at school, enjoying the power of the key to the computer room, using the Russian computer: BK-0010, using Pascal at high school and Delphi in leisure, clipper, Delphi was unbeatable at that time, Delphi is still supported by Embarcadero, Borland Delphi started in 1995, Turbo Vision the library for creation of DOS-based UI, studying applied mathematics at the aviation university, building a F-19 Stealth Fighter simulator at the Aviation University in C/C++, by solving 9 to 11 differential equations you could simulate an airplane, creating a graphic library to draw primitives in assembler to improve performance, building automation systems for resorts in Czech Republic in ASP.net and C#, creating a casino application as PoC in J2EE, Linux and WebLogic Server 7, Tetris as Applets, enjoying JBuilder IDE, starting with EJB 1.0, Bean Managed Persistence (BMP) later Container Manager Persistence (CMP), working as freelancer in J2EE space, starting at Oracle at EclipseLink team and creating the second version of JPA-RS, starting with JSON-B and yasson, JSON-B was created by a team of 2 developers, the JakartaONE livestream, session: "JSON support in Jakarta EE: Present and Future", the AirPort, Prime and Helidon, Helidon got MicroProfile, Airport started around 2015, Helidon had a great potential what was recognized by management, Helidon supports Java SE and MicroProfile programming models, Oracle had no viable strategy for WLS customers which wanted to try something else - Helidon fills the gap, J4C - Java For Clouds was the name of the runtime before Helidon, Helidon is the name of a small and fast bird: the swallow, the helidon.io website was created by Oracle's webdesigners, Helidon Java SE is targetted for developers who are bored by Java EE programming model, fat jars don't make any sense, Helidon is a hollow-JAR and so can be deployed as layered Docker image, Dmitry Kornilov on twitter: @m0mus. Dmitry's blog: https://dmitrykornilov.net

Oct 6, 20191h 21m

Ep 55SAP, ODATA, OpenSource and Apache Olingo

An airhacks.fm conversation with Michael Bolz (@onemibo ) about: The first line of Turbo Pascal in 1992, 286 Compaq with a Turbo button, writing an installer for friends, C64 vs. PC, Jump and Run without jumping, writing some HTML code with DreamWeaver, What You See is NOT what you get, studying at the University of Applied Sciences in Karlsruhe, building web based applications with Struts, Java is easier to learn than C/C++, starting with "public static void main", then managing students with Java, writing UI tools in Swing / AWT for applying patches in CMS, JSF vs. Struts, the steinbeis foundation system migration from EJB 2.1 to EJB 3.1 in 2008, EJB 2.1 required code generation with xdoclet - and EJB 3.1 was nice, Heidelberg is nicer than Karlsruhe, the JAX 2012 meeting with JMS expert Ruediger zu Dohna, simplifications with JMS 2.X, copying museum code from the internet, copy and paste oriented programming, working for SAP, opensource at SAP, starting Apache Olingo, the ODATA specification for accessing backends, backend for frontends, ODATA is queryable database, ODATA exposes CRUD+ operations as standardised REST interface, Olingo is ODATA implementation for Java, Olingo is a raccoon, Olingo team started with 4 developers, ODATA v4 is an OASIS standard, ODATA v4 is mostly based on JSON, 2 developers are currently maintaining Olingo, JPA extension only exists for the Olingo v2 and not v4, most SAP services are available as ODATA endpoints, SAP's UI5 components can be also bound to ODATA, SAP UI5 widgets are also available as SAP ui5 WebComponents, MaxDB, teaching ABAP developers Java, nightly conversations about the R3 VM, in ThinWARs there is nothing to scan, removing unwanted dependencies is a good idea, Vulnerability Assessment Tool (Vulas) by SAP research, Vulas is going to be donated to Eclipse Foundation, Vulas scans transitive dependencies as well as the source code of the dependencies, SAP runs a lot of Java apps internally, Olingo comprises two parts - the metadata and the execution part, Olingo v2 comes with JPA extension and a Servlet as entry point, Microsoft contributed the Olingo client, Java Annotation extension for Apache Olingo V2, Olingo is open for contributions, it is a good idea to discuss new features on the mailing list first, new Olingo features must be backward compatible, this podcast episode was triggered by 66th airhacks.tv Q&A, Michael Bolz on twitter: @onemibo

Sep 29, 20191h 4m

Ep 54JavaONE vs. CodeONE 2019

An airhacks.fm conversation with Sebastian Daschner (@sdaschner) about: CodeONE 2019, "Thoughts on efficient enterprise testing" blog series, project valhalla, multiline string / text block (JEP 355), kubernetes telepresence, Jessica Pointing on Quantum Computing, Oracle's New Supercomputer with 1060 Raspberry Pis, Developing Open Cloud Native Microservices free book Sebastian Daschner on twitter: @sdaschner, and Sebastian's blog: blog.sebastian-daschner.com

Sep 23, 201931 min

Ep 53From PHP to Transactions

An airhacks.fm conversation with Ondrej Chaloupka (@_chalda) about: RPG character generators with Turbo Pascal, Delphi and Visual Basic. D&D, Pentium 100 and Atari 500 ST, the joy of programming, the object oriented paradigm with Java 1.5 at university, warehouse software with JBoss 5 and enterprise Java, the first line of Java code was "public static void main", Java is not the ideal language to start programming with, building Swing apps at the University of Brno, studying computer science was hard, computer theory at the university is actually useful, design pattern overuse is an enterprise Java disease, some best practices move to Java EE platform - there is not need to solve the already solved problems, internship in Brazil with PHP and JQuery in 2009, the main problem of early Java EE was slow deployments, starting at RedHat as quality engineer for JBoss AS 7, quality insurance is a great way of on-boarding, starting to work on transactions, most PHP applications were built with "auto commit" transactions, transactions are convenient, enhancing code coverage for the transaction manager, fixing own bugs filed as quality engineer, starting as narayana developer, narayana, arjuna and JBoss Transaction Manager are the same bits, migrating narayana to MicroProfile Long Running Action (LRA), building transactional file system JCA connectorz, the narayana bootstrap with XML (timeout, implementation, recovery, transaction log), transaction manager and transaction recovery manager are the key parts, the transaction recovery manager is needed to remember what the server did, XID vs. Global ID, transaction context is stored in a ThreadLocal, joining transactions with JPA EntityManager, UnitOfWork in EntityManager, JDBC and XA transactions, a XA JDBC driver has to be exposed to the TransactionManager, a local transaction can be directly managed by the EntityManager, the XA / 2PC (two phase commit) protocol in detail, EntityManager: transactions and flushing, XA optimizations, Quarkus and Narayana, storing transaction logs in a central database, @Stateless, @Transactional and UserTransaction, code simplification with CDI and EJB, premature transaction optimisation is the root of some evil, starting transactions at the boundary layer, slower performance without transactions, in business applications with some state you will always need something like local transaction, thinking differently with NoSQL, Dr. Martin Kleppmann (@martinkl) transactions, challenges with microservices and transactions. Ondrej Chaloupka on twitter: @_chalda, and the JBoss Trasactions, Narayana, Arjuna blog

Sep 14, 20191h 30m

Ep 52The First Line of Quarkus

An airhacks.fm conversation with Emmanuel Bernard (@emmanuelbernard) about: Amstrad PC 1512, the first PC computer ever made by Amstrad, two floppies are better than a hard drive, deleting double dots, C/PM OS, BIOS as cheating detection, creating snake game in BASIC, playing with Turbo Pascal, from GO TOs over loops to procedures, objects, aspects to functional programming, exploring Mandrake Linux, Tibco Messaging and C++, killing yourself with casting, the C discipline checker - an enforced linter, 120 errors caused by Coke break, no version control -- no time machine, starting with Java 1.2, replacing buttons with images in Swing / AWT, memory leaks in Java UI, creating ASP websites for fnac, building shopping cart with VB, going back with Visual Basic debugger, exploring Java as C# alternative, WebSphere vs. WebLogic, WebLogic was the JBoss of early 2000's, Apache Excalibur container, editing TopLink files with Eclipse IDE, replacing TopLink with early Hibernate, providing Hibernate support, the Rational Unified Process Workbench, hacking the organization is important, the gradient from hacking to politics, JOnAS was big in France, translating Hibernate documentation, patching Hibernate via CVS and email, Gavin King, Oracle and annotations as XML replacement, xdoclet was a great EJB annotation PoC, Cedric Beust created XDoclet, early Apache Geronimo participation, a French engineer will only tell you what you can do better, XML mapping with deeply nested annotations as prototype, EJB 3 specification comprised the component model and the persistence, Eclipse IDE was late with annotation support, working on EntityManager API with Bill Burke, joining forces with Java Data Objects (JDO) to participate on JPA, switching from fnac to JBoss, the first day at JBoss, Gaving King and Christian Bauer were Hibernate consultants, Steve Ebersole worked on Hibernate Core and Max Andersen on Eclipse tooling, Gavin King implemented an early bean validation prototype and Emmanuel took it over, contributing to a mature opensource project is really hard, Google App Engine wanted to use Hibernate as persistence backend, then google decided to use datanucleus.org, Book Driven Development is better than Conference Driven Development, Emmanuel started OGM - the Object Grid Mapper, in NoSQL space the model is simpler, JSON-P or JSON-B can be used as replacement for JPA entities, JDBC is hard to use what explains the success of ORM products, RedHat acquired JBoss, the switch from 200 employee company to 2000 employees company, developer is king at RedHat, RedHat acquired JBoss right after the introduction of JPA, becoming an architect, debezium was started by Randall Hauch then continued by Gunnar Morling, creating architecture slides with Google Docs, throughput driven optimizations, with containers throughput becomes less important, Java was designed for throughput and not memory efficiency and startup time, openJDK team, middleware team at Redhat had conversations about the future of Java on containers, Kubernetes is your cluster manager, WildFly is the flagship and the integration point, Sanne Grinovero was behind optimizations, Java's metaspace was too high, Java is a highly dynamic environment and therefore hard to optimize, the Excelsior JET VM, GCJ, Project Maxwell, GraalVM and the compiler is written in Java, WildFly Swarm became Thorntail and was an attempt to make the runtime smaller, Java's memory usage is the real problem, Quarkus came with the idea to make all the optimization at build time, not runtime, Emmanuel started Quarkus with Jason Greene and Bob McWhirter, the very first line of Quarkus code was written in a pub, the Quarkus project name was Shamrock what was the name of the pub, 3 months time for a PoC, hibernate, CDI, JAX-RS and JDBC drivers had to be optimized for the MVP, June 2018 was the very beginning of Quarkus, the shamrock pub is located in Australia, docker containers are immutable and the WAR deployment does not fit into this model, ThornTail's hollow JARs separate the business logic from the architecture, one of the Quarkus inspirations is the Play framework, Hibernate Panache got the idea from Play persistence, wad.sh watches changes and redeploys WARs on-the-fly, QuarkEE makes Quarkus look like a Java EE application, Quarkus on GraalVM is the perfect storm, Jakarta EE is a good way to reset Java EE expectations, the j4k conference, Emmanuel Bernard on twitter: @emmanuelbernard, Emannuel's website: https://emmanuelbernard.com

Sep 2, 20191h 55m

Ep 51Keycloak as Fun

An airhacks.fm conversation with Sebastien Blanc (@sebi2706) about: Thomson MO5, every school in France needs to have a computer, printing the name with BASIC, the REM sadness, making yellow boxes, programming Logo in French, writing "root" and "house" procedures, no procedures in BASIC, the ACSLogo for Mac OS X, Berkeley Logo (UCBLogo), the Amstrad PC1512, using AMOS programming language for writing games, writing invoicing software with 14 and AMOS, Zak McKracken and the Alien Mindbenders, Siemens Nixdorf PC, QuickBasic on Siemens Nixdorf DX2-66, the Persistence of Vision Raytracer, average calculation for school notes with QuickBasic, writing ballistic games for TI BASIC (TI 99/4A), playing Nirvana on e-guitar, starting with Java in 2002, the Rational Rose Logo Edition, learning Java EE on JOnAS, Apache Tapestry, consulting with Apache Jetspeed, writing Java EE code for 7 years, hardtimes with WebSphere, Xerces and ClassLoading, refactorings to Maven, mobile web / Grails involvements, starting at RedHat's mobile team - AeroGear, Matthias Wessendorf, Matthias loves Java Server Faces (JSF), the unified push server, starting keycloak involvement, the security challenge, the keycloak religion, keycloak ships as WildFly distribution, keycloak is a WildFly subsystem, keycloak uses hibernate for persistence, keycloak manages users with credentials, keycloak ships with ready to UI to manage users, keycloak functionality is exposed as REST services, there is a Java client available - as REST wrapper, keycloak is a "remote" proxy realm, keycloak ships with adapters for major application servers out-of-the-box, keycloak comes with SSO - different application servers can share the same session, the security realm is a "territory", in keycloak a session is optional -- a microservice can use JWT token, using OIDC tokens, keycloak comes with servlet filters for servers without adapter support, the new keycloak approach is the Keycloak Gatekeeper, Keycloak Gatekeeper is a sidecar service, apache mod_auth_openidc, keycloak is oidc compliant -- any generic OIDC library should work, the JWT creation tool JWTenizr, the "Securing JAX-RS Endpoints with JWT" screencast, the oauth flows, oauth authorization flow, implicit flow and the hybrid flow, access token has to have short lifetime, using services accounts for schedulers, keycloak has a logout backchannel - available from servlet filter, pushing a timestamp also causes logout, HttpServletRequest#logout also logouts, the killer feature: keycloak stores the private keys in one place and makes public keys available via URI, Sebastien Blanc on twitter: @sebi2706

Aug 25, 20191h 18m

Ep 50The Jakarta EE / MicroProfile and WebStandards Startup

An airhacks.fm conversation with Matthias Reining (@MatthiasReining) about: Power Basic is not QBasic and was comparable with Turbo Pascal, game high score manipulation as programming motivation, C 64 was the first computer encounter, writing a "Jump and Run" game in Power Basic, Power Basic IDE as Christmas present, the menu bar fascination, using GW-Basic at high school, call by value vs. call by reference in Power Basic and Turbo Pascal, the Comal programming language, learning C, the University of Wuerzburg, learning Visual C++ and object oriented programming at university, C over C++, learning Java during internship at Nobiscum, writing a Java frontend with AWT for CVS as proof of concept, renaming com.sun.swing to javax.swing, switching to Lotus Notes as consultant, improving Lotus Notes user interface with Java, accessing Lotus Notes with JDBC, CouchDB the Lotus Notes "successor" created by Damien Katz - a former Lotus Notes developer, Lotus Notes the NoSQL database before the popularity of NoSQL, Transact-SQL, PL/SQL and back to Java, JSPs, Servlets, Tomcat and Apache Struts, from Java back to Pearl, the strategy of spending as much time as possible in a single project, writing fronted code with "this and that" or ES 5-the ancient JavaScript, the Java EE 5 fascination, xdoclet code generation for early EJB versions was slow, annotation-based programming with Java EE 5 improved the productivity, building a freelancer portal with Java EE 5 as proof of concept, a Java EE workshop in 2011, learning politics in Java insurance projects with "C-structs" as design pattern, enjoying PowerPoint time, founding a startup with Java EE 8 / Jakarta EE 8 and MicroProfile as technology choice, WildFly and Keycloak are the perfect technologies for a startup, focus on the business and not the technology, considering OpenLiberty and Quarkus as migration target caused by slow support of MicroProfile APIs by WildFly, saving memory with Quarkus, making WARs thinner by moving to MicroProfile JWT from proprietary Keycloak libraries, building the heart of an insurance company - an insurance platform, cloud-ready and private clouds are a common deployment model, migration from COBOL systems to tech11 insurance platform, team of 8 people is incredibly productive, it is hard to find good developers in Germany, hiring pragmatic developers from Afrika with the "ThinWAR" mindset, the "airhacks stack", polyglot programming is chaos, using Java EE 8 as the baseline, all other dependencies require permission, an average tech11 ThinWAR is a few hundreds kB, code snippets from 2005 gave Java EE a bad name, implement whatever you can today and care about potential problems tomorrow, the time to first commit has to be as low as possible, projects and products require different approaches, the "getting things done" developer, long-term maintenance is key to product success, every company has the right technology at certain time, Java EE is not the only "right" technology, projects are also barely dependent on Java EE, tech11 does not sell technology, tech11 sells solutions, using plain WebStandards with WebComponents, ES 6 in the frontend, Custom Elements looks like ReactJS, lit-html is one of the few dependencies in frontend, tech11 started with hyperHTML, then migrated to lit-html, open-wc comes with lots of examples with LitElement what is not necessary, using Parcel for packaging without any transpiling, rollup.js is great for packaging, Jenkins transpiles for older browsers, on developer machines not even npm is necessary, airhacks.io workshop about WebComponents: webcomponents.training, tech11 uses a BPM engine to manage processes, tarifs claims, policies are the names of microservices (ThinWARs), the episode #36 with Markus Kett mentions the JCon keynote, Matthias Reining on twitter: @MatthiasReiningand his startup: https://tech11.com

Aug 17, 20191h 18m

Ep 49KISS Java EE, MicroProfile, AI, (Deep) Machine Learning

An airhacks.fm conversation with Pavel Pscheidl (@PavelPscheidl) about: Pentium 1 with 12, 75 MHz, first hello world with 17, Quake 3 friend as programming coach, starting with Java 1.6 at at the university of Hradec Kralove, second "hello world" with Operation Flashpoint, the third "hello world" was a Swing Java application as introduction to object oriented programming, introduction to enterprise Java in the 3rd year at the university, first commercial banking Java EE 6 / WebLogic project in Prague with mobile devices, working full time during the study, the first Java EE project was really successful, 2 month development time, one DTO, nor superfluous layers, using enunciate to generate the REST API, CDI and JAX-RS are a strong foundation, the first beep, fast JSF, CDI and JAX-RS deployments, the first beep, the War of Frameworks, pragmatic Java EE, "no frameworks" project at telco, reverse engineering Java EE, getting questions answered at airhacks.tv, working on PhD and statistics, starting at h2o.ai, h2o is a sillicon valley startup, h2o started as a distributed key-value store with involvement of Cliff Click, machine learning algorithms were introduced on top of distributed cache - the advent of h2o, h2o is an opensource company - see github, Driverless AI is the commercial product, Driverless AI automates cumbersome tasks, all AI heavy lifting is written in Java, h2o provides a custom java.util.Map implementation as distributed cache, random forest is great for outlier detection, the computer vision library openCV, Gradient Boosting Machine (GBM), the opensource airlines dataset, monitoring Java EE request processing queues with GBM, Generalized Linear Model (GLM), GBM vs. GLM, GBM is more explained with the decision tree as output, XGBoost, at h2o XGBoost is written in C and comes with JNI Java interface, XGBoost works well on GPUs, XGBoost is like GBM but optimized for GPUs, Word2vec, Deep Learning (Neural Networks), h2o generates a directly usable archive with the trained model -- and is directly usable in Java, K-Means, k-means will try to find the answer without a teacher, AI is just predictive statistics on steroids, Isolation Random Forest, IRF was designed for outlier detection, and K-Means was not, Naïve Bayes Classifier is rarely used in practice - it assumes no relation between the features, Stacking is the combination of algorithms to improve the results, AutoML: Automatic Machine Learning, AutomML will try to find the right combination of algorithms to match the outcome, h2o provides a set of connectors: csv, JDBC, amazon S3, Google Cloud Storage, applying AI to Java EE logs, the amount of training data depends on the amount of features, for each feature you will need approx. 30 observations, h2o world - the conference, cancer prediction with machine learning, preserving wildlife with AI, using AI for spider categorization Pavel Pscheidl on twitter: @PavelPscheidl, Pavel's blog: pavel.cool

Aug 10, 20191h 21m