airhacks.fm podcast

podcast with Adam Bien / @AdamBien

#37 Jakarta EE / MicroProfile Testing and Quality over Statistics

An airhacks.fm conversation with Andrew Guibert (@andrew_guibert) about:
the Java EE Testing survey and possible room for improvements, testing is too hard with severe consequences, reasonable projects are interested in delivering good software, large enterprises are more interested in statistics, testing is about increasing developer's confidence, confidence decreases with the length of time spent outside the project, in 1996 you would test with a bunch of main methods, most projects are ignoring System Tests because the statistics are not gathered, "test first" or last does not matter, you only have to deliver the tests with working software at the same time, running System Tests with code coverage, fast and long running modes, Unit-, Integration-, and System Tests are naturally ordered by their execution time, in business projects unit test coverage can be fairly low, in business projects arquillian comes with a little added value, in Integration Tests it is crucial to use the same version of libraries, tests do not accurately represent the production environment, System Tests are reused as Stress Tests, JMH is a great library for stress tests, at IBM there is a dedicated performance team, in projects torture tests are a good start, toxiproxy by shopify, management driven code metrics is a failure of management, unit tests should be about verifying the behaviour not the implementation details, too many unit tests increase the costs of refactoring, unit tests are running in seconds, integration tests in a few minutes, the performance of system tests really depends on the system, integration tests give more confidence, than unit tests, unit tests are great for productivity, running servers in code coverage modes would be useful, jacoco code coverage metrics could be exposed via JSON,
Andy on twitter: @andrew_guibert and github.

#36 Java Native Database

An airhacks.fm conversation with Markus Kett (@MarkusKett) about:
C64 and sports games, Weiden is not in Bavarian Forest, soccer as motivation for programming, writing first programs in basic with 17, writing contacts management, PCs are boring machines, but good for business, Java is the best programming language, Pentium 1 was introduced at CEBIT in 1993, the dream about an own booth at CEBIT came true, webdesign software based on applets (XPage) was very successful at SYSTEMS in Munich, Markus was the business man and had no time for programming - like Steve Jobs, self-financing with selling products, competing with Microsoft and Adobe, writing a 4GL Java-based development environment like Visual Basic called XDev, Java Developers don't like the Drag and Drop programming experience, building an IDE from scratch, discussions with Sun Microsystems about StarOffice integration, migrating from Swing to SWT and Eclipse, using Vaadin as UI technology, connecting beautiful UI to DB was too hard, databases have more types than Java what makes code generation hard, in 4GL the database comes first, RapidEclipse is free but commercial support is available, XDev provides tool and project support, RapidClipse understands rich database types and generates JPA POJOs, Hibernate importer, how to write queries in Java, implementing JPA-SQL is based on xtext by itemis and generates JPA-QL from SQL, storing data is still too complicated, serialization looked promising but was too unsecure and only entire objects can be serialized, Kryo, Fast Serializer, JetStream (renamed to Microstream) serializer, the database engine stores objects in any file storage, there is no impedance mismatch, the native Java storage engine, queries are performed with Java 8+ streams, JCA connector passes transactions and security context to the application server, JCA prototypical implementation, kubernetes persistent volumes, Bavarian Forrest is like Canada, the largest walking robot, Roding race car, being a TV host on Giga, constant 30k downloads and the XDev TV, DVDs were more successful than TV, JCon and the coding keynote, Java EE as secret weapon at JCon, stealing (adapting) the "no slides" ideas, the world first free, physical, Java magazine JAVAPRO with 8500 readers, community prefers Java-only conference,
Markus Kett on twitter: @MarkusKett. JetStream was renamed to MicroStream.

#35 80% Code Coverage is Not Enough

An airhacks.fm conversation with James Wilson (@jgwilson42) about:
the result of pressing the break button on a BBC computer, and ZX Spectrum, Space Invaders with Basic, extending minecraft with Java, accidental tester career, best interviewees got programmer jobs, hackers and testers, developers like the happy path, unit test coverage is useless without good asserts, is 80% code coverage a valuable target?, code coverage was used as a motivation for writing tests, reflection utilities to increase code coverage, getters / setters never brake, Code as a Crime Scene book, methods longer than a screen are problematic, the ratio between trivial and good asserts, a good javadoc and unit tests follow similar principles, system tests are the most important one, unit testing is good for checking error scenarios, the more tests you have, the easier it is to locate errors, the Law of Triviality requires standard names for test categories, integration testing and system testing, reusing system tests as clients and stress tests, UK retailer goes down, take the max load and double it, jbmc is bytecode verification tool, diffblue cover generates unit tests, generating unit tests quickly for legacy backends, playground, What is the AI in “AI for Code”? blogpost, diffblue blog, @diffbluehq
James Wilson on twitter: @jgwilson42. Checkout: javaeetesting.com - the online test about Unit-, Integration-, and Stress Testing and see you at airhacks.com.

#34 Kafka vs. JMS/MQ

An airhacks.fm conversation with Andrew Schofield, Chief Architect, Event Streams at IBM about:
1982, Dragon 32 and Basic Programming with 12, starting with JDK 1.0, writing a JMS provider for WebSphere v6, no ceremony JMS, Apache Kafka considered simple, why writing a Kafka application is harder than a JMS application, there is a big architectural difference between Kafka and JMS, or message queuing and event stores, Kafka remembers historical data, JMS is about fowarding messages, with Kafka it is harder to write conversational systems, clustering singletons is hard, running Kafka on a single node is easy, "deliver once and only once" is the killer feature of persistent JMS queues, JMS topics are nicer - you can send messages to unknown receivers, the killer use cases for JMS and Kafka, JMS is good for system coordination and transaction integrity, Kafka is well suited for (IoT) event buffering and re-processability, 2PC, XA and the advantages of middleware, in distributed transactions everyone has to remember everything, we only need distributed and rock-solid persistence, kubernetes pods are stateless, challenges of using Kafka, setting up for production can take months for an average Java programmer with JMS background, restarting Kafka brokers can be challenging, in Kafka you are communicating with the cluster, MQ is a collection of individual queue managers, in MQ there is a directory of resources which knows where the queues are hosted.
Andrew on github, and LinkedIn.

#33 Quarkus and ThinJARs

An airhacks.fm conversation with Stuart Douglas (@stuartwdouglas) about:
starting with Visual Basic in high school, with the goal to build games, then quick transition to C++, creating Tetris from scratch in weeks in C++, building first commercial financial planning application with PHP, starting with Java 1.5 and annotations in 2007, Java is popular in Australia, building Seam applications with JBoss 4, contributing to Weld in spare time, improving the performance and startup performance of Weld, working for RedHat as JBoss AS 7 developer, JBoss is more than the application server and the advent of Wildfly, the braning clean up, creating Undertow, WildFly was shipped with deactivated EJB pooling, too small EJB pools can cause performance issues, how to kill EJBs with CDI, EJB vs. CDI, interview with Pavel Samolysov and EJB vs. CDI performance comparison, quarkus is not using reflection for injection, a small team (8 people) started quarkus to leverage GraalVM, the goal of quarkus is to make a subset of Java EE natively compilable to an "unikernel", updating the cloud platform without recompiling the app, serverless with quarkus, serverless without the function disadvantage, 20MB self contained, native images, building Java EE / Jakarta EE unikernels, extremely fast start times for Java EE applications, native images are running with a fraction of RAM, at one point in time, quarkus might be commercially supported by RedHat, CDI portable extensions are not supported now, quarkus wizard is not based on Maven archetype - what is a great idea, Maven is only one of many possible entry points to quarkus, a really good developer experience was always the main goal, hot reload is a must, currently the classloader with the "business" part is just dropped and the app is reloaded, adding dependencies via CLI or pom.xml, quarkus ThinJARs are compatible with the ThinWAR idea, FatJAR's builds have to be slower, packaging all dependencies into a single JAR, using Chrome Dev Tools Protocols for hot reloading the browser, misusing quarkus for building command line tools, community extensions are on the roadmap, quarkus is going to be well integrated with OpenShift, quarkus forum.
Stuart on twitter: (@stuartwdouglas), and github.

#32 Jakarta EE, MicroProfile, OpenLiberty: Better Than Ice Hockey

An airhacks.fm conversation with Andrew Guibert (@andrew_guibert) about:
old IBM PCs and old school Legos, starting programming in elementary school to write video games, the market for enterprise software is better, than the market for video games, World of Warcraft is good for practicing team work, ice hockey, snowboarding and baseball, getting job at IBM by pitching Nintendo WII hacking, why Java EE is exciting for young developers, OpenLiberty is a dream team at IBM, providing Java EE support for WebSphere Liberty and WebSphere "traditional" customers, Java EE 8 was good, and MicroProfile is a good platform for innovation, quick MicroProfile iterations, sprinkling MicroProfile goodness into existing applications, MicroProfile helps glue things together, OpenLiberty strictly follows the Java EE standards, how OpenLiberty knows what Java EE 8 is, OpenLiberty is built on an OSGi runtime, features are modules with dependencies, OpenLiberty comprises public and internal features, Java EE 8 is a convenience feature which pulls in other modules / features, OpenLIberty also supports users features, OpenLiberty works with EclipseLink, as well as, Hibernate, OpenLiberty comes with generic JPA support with transaction integration, Erin Schnabel fixes OpenLiberty configuration at JavaONE, IBM booth with vi in a few seconds, Erin Schnabel is a 10x-er, IBM MQ / MQS could be the best possible developer experience as JMS provider, Liberty Bikes - a Java EE 8 / MicroProfile Tron-like game, scaling websockets with session affinity, tiny ThinWARs, there is MicroProfile discussion for JWT token production, controlling OpenLiberty from MineCraft, testing JDBC connections, BulkHeads with porcupine, all concurrency in OpenLiberty runs on single, self-tuning ThreadPool
Andy on twitter: @andrew_guibert and github.

#31 Serverless without Functions, OpenShift with a bit Istio

An airhacks.fm conversation with Sebastian Daschner (@DaschnerS) about:
being chief Enterprise Service Bus Officer at IBM (not true), Lead Java Advocate for Java at IBM (now true), Sebastian still likes Java EE, the definition of Serverless, there is no need for functions in serverless computing, a reference to episode with Bruno Borges "Jakarta EE / MicroProfile in the Clouds: Runtimes not Servers", the difference between servers and runtimes, focussing on ThinwWARs is serverless, immutable infrastructures with immutable layers, pushing 50 times a day a ThinWAR to the cloud, Payara Configured as example for intermediary layers, Payara s2i, misusing Docker Registry as "FTP", ThinWAR upload triggers a hook and rebuilds a server, ultra productive Java EE, servers do not matter, using FaaS to trigger server re-configuration, functions are too fine grained for the implementation of stock applications, implement the added value of clouds by injecting cloud services, cloud bootstrap / initialization code looks like from 1945, externalizing cloud libraries to immutable images, added value of istio at openshift, cross cutting concerns with Istio, canary releases, routes and observability, istio adds additional configuration overhead, istio adds technical features on top of openshift, a possible killer features of istio, monitoring database traffic with istio, Istio as "feel good factor", some technical dashboards are as usable as lava lamps, monitoring external services, artificially slowing down connections in tests, MQS, hello worlds with Kafka are great, two lines to send a JMS events and one annotation to receive a message, Kafka is great as managed service, the next killer feature of MQS, killer runtimes with microprofile and Java EE, you can find us at jakartaee.blog, my blog is not usable as source for articles,

Meet Sebastian at twitter: (@DaschnerS), https://jakartablogs.ee/ and his blog https://blog.sebastian-daschner.com/.

#30 Optimizing For Humans

An airhacks.fm conversation with Simon Harrer (@simonharrer) about: Amstrad Laptop, first line of VB code was a commercial one, customers two desks away, Scheme is an excellent language to learn programming, Java is great - mainly because of the tool support, Eclipse was the first opensource IDE with decent refactoring support, Bamberg is the home of Schlenkerla, teaching is the best way to learn, therefore teaching is selfish, building portals for students with PHP and Joomla, building e-commerce shops for students with Ruby on Rails, 2006 everything had to be Rails, PhD about choreography and distributed transactions, too high expectations on workflow and rule engines, workflow engines are for developers and not for business people, central process view is still desirable, startups with Bosch, in Germany it is hard to find developers who are willing to join startups, Simon works for InnoQ and Stefan Tilkov, Computer Science University of Bamberg, the pragmatic book: Java by Comparison by The Pragmatic Bookshelf, in streams there are no exceptions, over-abstractions cause trouble, reviewing the code of thousands of students for six years, it is unusual for universities to promote pragmatic code, be strict about adding external libraries, clear separation between infrastructure and business logic helps with clean code, moving domain specific libraries into the infrastructure, human centered code, optimizing for machines, not for humans is problematic, writing bad code is often not intentional, "Abstract, If, Impl, Default, Bean Conventions - Just For Lazy Developers", don't write for reuse, reuse rarely happens, reuse as motivator for bad abstractions, do repeat yourself, than refactor, "How To Comment With JavaDoc", Book: Java by Comparison, Become a Java Craftsman in 70 Examples, Simon Harrer on twitter: (@simonharrer).

#29 Jakarta EE / MicroProfile in the Clouds: Runtimes not Servers

An airhacks.fm conversation with Bruno Borges about: sudden death of remote EJBs caused by Java EE 5 and Web, servers as cloud, shared deployments in E10k , separation between infrastructure and business is boring, no rocket science, application servers and immutable infrastructure, frozen application servers in Docker layers, Docker modernized deployment model without modernizing Java EE, FatJar and UeberJars are useful outside containers, Azure AppService, the actual idea of application servers is pointless, cloud hooks for building ThinWARs, extending application servers with cloud-specific features, what is actually the definition of serverless?, serverless Java EE and the events are missing, JAX-RS endpoints as event listeners, servlerless platforms and lock-in to serverless environment, shipping functions as Docker images, openfaas, killer use cases for serverless functions, the legacy perception of Java EE, MicroProfile solves the marketing problem, cloud native deployments with MicroProfile, what is the difference between servers and runtimes, lets talk about runtimes, not servers, moving away from servers to runtimes, opinionated runtimes for developer experience, Convention over Configuration was borrowed from Ruby on Rails, Don't Make Me Think, Java EE / microprofile is an interesting programming model for the cloud, there is no such a thing as standards, everything should be an event, CloudEvents is an interesting standard, MicroProfile could implement binding for CloudEvents, wrapping proprietary cloud bootstraping logic with CDI, improving developer's experience by injection proprietary cloud services, MicroProfile Azure Key Vault, Bruno can be contacted via: bruno.borges@microsoft.com (please no spam), Bruno at LinkedIn and twitter: @brunoborges

#28 More Conventions with Maven.next

An airhacks.fm conversation with Robert Scholte (@rfscholte) and Sebastian Daschner (@DaschnerS) about: Convention over Configuration and Maven, strategies for the "default", dependency versions to "apache" maven plugins, maven default behaviours, configuration hierarchies, Maven and CI/CD like Jenkins, command line options, pom elements, pom properties, the Java EE-stic approach to Maven, upgrading or downgrading, Maven and Java 11+, Maven.next features, effective POMs, accessing default versions of the plugins, making Maven configuration as lean as Java EE, Configuration by Exception, listing the current default plugin versions, specifying the versions in POM and overriding them with CLI and system properties.

#27 James Likes Gort

An airhacks.fm conversation with James Gosling (@errcraft) about: "Hello World" with PDP assembly in 1969, exciting places like universities, the University of Calgary (alumni award), dumpster diving to find usable electronics, software does not consume any resources, James loves building things, The Day the Earth Stood Still, Gort is cool, building Gort from tin foil and cans, there were no answers how to build a brain, working for physics department in the age of 14, measuring the interactions between solar winds and the upper atmosphere, ISIS-2 satellite, PDP-8 assembler, CDC 6400, Fortran, PL-1, spending all the free time with computers, teachers were worried, James enjoyed downhill (skiing), Pascal, Multics, Simula, there was no C before 1976, James wrote emacs at graduate school in C, James's emacs became standard on Unix, Bill Joy kept asking James repeatedly to join Sun, James met Andy Bechtolsheim before joining Sun, James joined Sun in 1984, James was involved with User Interfaces at Sun, Sun was missing out on stuff like telephone headsets, VCRs and IoT was already happening, IoT literally launched Java, re-inventing the wheel and repeating the errors in networking, ideas for the JVM, Three Rivers Computer like Xerox Alto was only interested in hardware and wanted to reuse software, writing software for PERQ with UCSD Pascal, porting from PERQ to VAX, James was too lazy to port and started with transcoding, translation worked surprisingly well and outperformed C, Project Green started in early 1991 and ended in September 1992, Java was running at the end of 1991, the implementation of the first Java compiler took a couple of months, the first compiler version was written in Python, the intermediate format was the instruction set itself, Java bytecode follows the polish notation, or execution on a stack machine, OAK was growing outside James's window, OAK was renamed to Java because of legal reasons, James likes coffee ...and tea, Sun was a wonderful place to be, John Gage was cheerleader in chief, Scott (checkout episode #19) didn't like to spend money on marketing, problem with JINIs marketing was lack of marketing, RMI fighted with CORBA (end of first part - to be continued...).

#26 Productive Clouds 2.0 with Serverless Jakarta EE

An airhacks.fm conversation with Ondrej Mihályi about: starting programming with Logo, Pascal, C, Pentium 386, Scratch, minecraft, delphi and Java, pointers and destructors, participating in programming competitions, learning programming with Java, GWT, JSF and Primefaces over GWT, Eclipse, NetBeans, Java EE 5 introduced Dependency Injection (DI), Nitra is the oldest City in Slovakia, "Enterprise needs to be complicated", code generation with xdoclet in J2EE, simplifications with Java EE 5 in 2006, starting at Payara, running a JUG in Prague, Sun Grid Engine, serverless WARs, ideas for productive Clouds 2.0, serverless Java EE applications, early clouds with Google App Engine, Docker and Kubernetes for application packaging, making cloud services injectable, AWS lambdas are distributed commands, improving developer experience in the clouds with DI instead of singletons, Payara Source To Image (S2I) for server configuration in the clouds, separating the immutable servers from application logic with docker and clouds, cloud vendors are evaluating microprofile, repeatable and reproducible builds with Java EE in private clouds, Java EE deployment model became accidentally "cloud ready", with ThinWARs there is nothing to (security) scan, with ThinWARs there is no conceptual difference to lambda functions, cloud vendors participation in Jakarta EE, Payara is evaluating GraalVM and native compilation. Ondro's blog and @OndroMih / twitter.

#25 Maven Commitment

An airhacks.fm conversation with Robert Scholte (@rfscholte) about: CGI Java Netherlands, Maven Invoker, never mvn clean, apache maven commitment and committing, Watch and Deploy (wad.sh), Atari 800XL, hacking basic with 10 years, peeks and pokes, MS DOS and startup screens, JDK 1.4, illegal generics, Java EE on JBoss was good, not the build process, intelligent builds with Maven, Apache Jelly, Jason van Zyl, Maven vs. Ant, loosing information with Google Web Toolkit (GWT), parsing Java with qdox, Paul Hammant, Maven Release Plugin "Fix It" video , Using Java console for passwords and the bash history, Java 6 and password encryption, clarifying the development of Maven plugins (default values and expressions), going from Maven 1 to Maven 2 and the respository structure, from Maven 2 to Maven 3, Eclipse IDE wanted Maven 3, Maven 3.7 is (probably) going to optimize downloads, there will be no Maven 4, Maven 5 will rely on pom's model version 5, splitting pom into local and remote part, writing POM in alternative formats, takari.io, takari polyglot, Maven extensions,plexus classworlds is Maven's OSGi, what is the default version of apache Maven plugins, is it possible to pull "latest" apache maven plugins, Maven extensions for plugin version configuration, clean poms, WAD runs all the time, using GraalVM to make a native version of Maven, Maven Archetype always generates parents, Up For Graps, Maven 5.x: How to be prepared for the future?, Maven is probably the only build tool, with tight integration with Java Platform Module System, Gradle, Apache Buildr is EoL, Bezel, Apache Ant is not dead and supports Java 11, Robert is a freelancer, CEO of SourceGrounds and available for hire.

#24 Java EE 8 Authentication and Authorization

An airhacks.fm conversation with Arjan (@arjan_tijms) about: starting programming with Commodore 64, blog interview about zeef, "Programming in Basic" with the age of 7, Phillips P2000, Simons Basic, Assembly on Commodore 64, defaulting to C, weird main function in C, developing a database to maintain Judo progress and expenses, being a CEO of a kid organization to sell goods on free markets with other kids, SGI Indy, helping sister with recursion in Java, advertisements on websites with awin startup, OrionServer, Java Servlet Development Kit (JSDK) 1.0, Sun One Application Server, Trifork Application Server, Java EE is like operating system for business components, counting cycles for method invocations, From OrionServer to Tomcat, 3 views per server in a 2-3 node cluster, cutting libraries by moving from Tomcat to JBoss in 2 weeks, zanox.de buys awin, discussion about polyglot programming, parsing gigabytes of XML, founding Zeef.com with ten developers, monatenization challenges, starting as tech lead at Payara, JASPIC, JAAS, JACC, from form login to authenticated and authorised user, the relation between JAAS and JAAC, JAAS is about code security and code trust, in JAAC the code is trusted and the user is not trusted, JASPIC is the authentication mechanism, Java EE 8 security is the syntactic sugar around existing security specs, the simplest possible authentication with JSR-375 / Java EE 8 Security, IdentityStores vs. Realm, basic authentication and realm clarification, IdentityStore was missing in Java EE, the whole JSR-375 spec is about 12 classes, the difference between security group and roles, 1:1 role to group mapping is default in Java EE 8. Arjan's blog, Arjan on omnifaces and @omnifaces.

#23 From GlassFish to Java in Google Cloud

An airhacks.fm conversation with Alexis (@alexismp) about: java -jar glassfish.jar, Community Management at Sun, Developer Relations, how to talk to developers, Texas Instruments 4a, a circle qualifies as "Hello World", Prolog to Java Applets migration for National French Space Agency, Java Center of Excellence at Sun Microsystems, Sun / JavaSoft / IBM as dream jobs, Scott McNealy and the ability of predicting the future - a reference to airhacks.fm episode #19 - interview with Scott McNealy, starting at Sun in 1998, Sun Netscape Alliance, iPlanet Appserver, moving a Reference Implementation to a product called "GlassFish", HK2, GlassFish started faster than Tomcat, moving the industry with GlassFish, fascination with modularity, NetBeans as platform, plugins as quality asurance, lightweight runtimes with 500 MB WARS, making servers bigger and deployables smaller, docker changed the conversation, dealing with boring technologies, different language communities at Google, Java is less ceremonial, than people think, the popularity of Java at Google, AppEngines 10th anniversary, Apache Beam and Google Dataflow, how Sun lost the engineers at Java 5 timeframe, a huge amount of Google projects is based on Java, AppEngine is "serverless", Sun and Google have a lot in common, JAX-RS is Google Cloud Endpoints, Managed PubSub service, PubSub is like JMS, AppEngine as PubSub message listener, Cloud Spanner -- a distributable scalable persistence, DataStore supports versioning is a document, key value store, canary deployments, Objectify an ORM for DataStore, Cloud SQL and PostgreSQL, BigTable, exports to BigQuery, istio , Kubernetes, Helidon on Google Cloud, Kubernetes Engine, you can find Alexis at twitter: @alexismp, LinkedIn, medium: @alexismp and his: blog.

#22 From TomEE User to Committer

An airhacks.fm conversation with Roberto Cortez (@radcortez) about: Turbo Pascal 4.5, 8086 vs. 486, Java in 21 days, interactive web with Java applets, early Siri prototype, Notepad as IDE, Integration of all insurance companies as first project with Java EE 5, building a house and the bricks at the same time with GWT, xdoclet and middlegen, first JavaONE and the Jelastic party, 500 JUG members, no headsets and no coffee at CodeONE, tomitribe, a developer without coffee, David Blevins (@dblevins), tomitribe CEO, openEJB committer, from TomEE user to TomEE developer, how to never get bored, TomEE's killer feature is super fast environment, TomEE 8 for Java EE 8 and microprofile, TomEE integrates various Apache projects like Apache CXF, Apache openEJB, Apache openWebBeans, Apache openMQ, 65 MB for a full Java EE 8 server, TomEE and Microprofile 2.0 compliance, the TomEE release process, tomitribe vs. apache committers, spring popularity, Java EE is lacking a central website, the secret about TomEE's performance, find Roberto on: @radcortez, CoimbraJUG, jnation, TomEE.

#21 WebComponents With or Without Java

An airhacks.fm conversation with@marcushellberg about: "Vaadin in Turku, simplifying with EJB 3 without layers, hacking JavaScript in browser, www.itmill.comwww.millstone.org and the history of vaadin, how Joonas started vaadin, the benefits of opensource, WebComponents with Vaadin Elements, Java generates WebComponents, Java is listening to WebComponents, melting frameworks, framework-less development with WebStandards, effectiveweb workshop easy to explain ServiceWorkers, higher level caching strategies with WorkBox, simple code first, Markus Code One Talk, lit-html is the missing piece, high performance with lit-html, lit-html outperforms virtual DOM, Angular is J2EE for the frontend, Angular's clunky module system predates ES 6 modules, future Angular versions could migrate away from the proprietary module system, possible breaking changes every 6 months, questionable DI in browser, less code with WebStandards, polyfills make your app leaner, WebStandards are moving forward, webworkers and webassembly, the lean WebStandard revolution, enterprise integration with WebComponents, Custom Elements Everywhere, Polymer's mission statement is to go away, polymer is the anti framework, npm is the remaining strange thing, the future of Vaadin, PWA for Java developers, upcoming WebStandards, and layered APIs, Vaadin Flow, and Vaadin Components, @marcushellberg, @vaadin"

#20 The JavaMan

An airhacks.fm conversation with Bruno Souza, the "The JavaMan", about: hello world on CPM machines without GitHub, TRS-80 vs. ZX Spectrum, Basic, Clipper, scientific Prolog work, C, copying assembler from magazines, lonely hacking, programming is the ability to creating things, no use for second disc drive, prolog application for cloud pattern recognition and cloud removal, cool Sun machines, AI for free, Sparc Station 10, back to work, work over university, John Gage and the first demonstration of Java, HotJava, OAK, Banco do Brasil was an early Java adopter in 1996, Fabiane Nardon, income tax and border control Java desktop applications, Java Ring, Java Card, Sun Java Studio, Sun Java Workshop, JBuilder, NetBeans, early JavaONEs, John Gage and "We are all Brasilians", Java source answers all questions, Richard Stallman visits Brasil, in 1998 Netscape browser was opensourced, , Open Sources 2.0: The Continuing Evolution, Brasilian Government gains independence with Java, Software Livre, Kaffee JVM, Patrick Curran, Simon Phipps, The People Who Brought You FOSS Java, Dalibor Topic, @@robilad, Geir Magnusson, Apache Harmony, http://toolscloud.com, you can't be just technical, inability to tell the vision, Summa Technologies, CodeONE and speaker's secrets, Code4.life, Best Developer Job Ever, Bruno on twitter:@brjavaman.

#19 SUN, JavaSoft, Java, Oracle

An airhacks.fm conversation with Scott McNealy (@scottmcnealy), co-founder of Sun Microsystems, about: how Vinod Khosla, Bill Joy, Andy Bechtolsheim and Scott started Stanford University Network (SUN), Onyx Systems and Pizza Boxes for 40k USD, Sun opensourced 80% of its R & D budget, Sun was top 40 R & D spenders, opensource lowers the barrier to exit, IBM buying RedHat, Sun was the first company in 1982 shipping with TCP/IP, Scott was smart and the other founders were brilliant, Bill Joy wanted to open NFS or "what is a phone worth which doesn't connect with other phones", Java Ring was on the cover of Fortune Magazine, Network is the Computer, Java was the greatest marketing efforts ever, missing the router hype was the earliest mistake at Sun, the beginnings of JavaSoft, Bill Joy wanted to work with James Gosling, Java was invented to build a "clicker", Netscape, Java, JavaScript, LiveScript, JavaSoft was loosely coupled and highly aligned business unit, Java went with Netscape viral, being nervous and unprepared as speaker - people would like to hear what do you think as a speaker, "you don't have privacy, get over it", Steve Jobs at JavaOne, Andy Bechtolsheim was the "industrial" Steve Jobs, Sun was having fun without offending somebody, John Gage - the Chief Science "Fiction" officer and the perfect MC for Java, 130 dollars for 3rd grade text book -- the beginnings of curriki, global community of opensourcing education, curriki is a wildly successful startup, Scott is chairman of wayin.com and still spends a lot of time with curriki, corporate capitalism - private charity or Seperation of Concerns, the job of a chairman, Larry Ellison and Scott, Scott met Larry on the airplane in early eighties -- and Larry gave Scott a shaver, behind the scenes of Sun's acquisition, Wayin -- the new project, Scott at twitter: @scottmcnealy.

#18 IoT, Clouds, Java EE and MicroProfile

A conversation with Tobias N. Sasse (@tnsasse) about: ToDo applications with Visual Basic, Delphi, Turbo Pascal, Java in Spain, Cookbook about Java with Object Oriented Hamburgers, reading data from DB 2 to Hadoop, DB2 rocks, airhacks.com workshops, WebSphere Libery, OpenLiberty and Microservices, Right-Sized services, stupid microservices or reasonable software practices, the interview: "10.000 Thin WAR deployment cycles or IoT with pure Java EE at IBM", IBM Elderly Care, applying smart home devices to help elderly people, Cognitive Eldercare, streaming data with Java EE 7, Java EE 8 and MicroProfile, Watson IoT Platform, MQTT Broker, caching home hub or base station, Quality of Service with MQTT -- Deliver Once, why the WARs are 5 MB big, 10 microservices and their names, Boundary Control Entity (BCE) or API, Service and Model, without BCE you don't have to focus on business, 5 developers with 10 WARs, why youngsters love Java EE, using Java EE without thinking about it, boring Java EE without "best of breed", teasing Java EE to youngsters, hack zurich, JavaScript looks more like Java, the browser is the JVM, architects damaging the developer experience, from cloudfoundry to kubernetes, 10k deployments, few seconds for Thin WAR deployment, lightning Maven builds, OpenLiberty on Docklands, OpenLiberty: modularity without incovenience, mixing MicroProfile with Java EE 8, MicroProfile: the incubator to Java EE, Java EE as the based layer, OpenLiberty: buying support is optional, the days of factories, interfaces and crazy patters are over, no Impls, focussing on the business problem, inspiring airhacks.com, jcon.one conference, Tobias at Linked-in and twitter: @tnsasse.

#17 Road To AR, VR, MR and XR

A conversation with Josh Marinacci, (@joshmarinacci) about the first Java class, 1995 and early Java, Ian Smith, building ray tracers with JDK 1.0, why Sun had great programmers, speed vs. safety, Snow Crash without cell phones, metaverse scalability, 3d interface with Swing and Mozilla with hubs, project wonderland and open wonderland, windows look and feel with Swing, Amy Fowler, Jeff Dickins from Swing Team, Window native controls look with Swing, progress bar is the hardest thing, Matisse GUI builder, JSR-296, Swing Application Framework, JSR-295 beans binding, smartphones killed Swing, Java FX as flash competitor, Tesla car configurator with Swing, f3 and Chris Oliver, Java Store before Mac Store, Palm and WebOS, WebOS built-in Java, why HP cancelled WebOS, LG WebOS, Awesome Box 5000 widgets, point and shoot camera with Android at Nokia research, high websockets scalability with pubnub, block functions and edge computing, VR, AR, mixed reality at mozilla, MDN -- the JS JCP, JavaScript like Java, JavaScript -- no batteries included, anonymous inner classes in JS, AR, VR, MR, XR, the XR-spec with security backed in, WebXR Device API:, VRML and GLTF, USDZ, Firefox refactoring, servo and rust, lightspeed adoption of CSS grid, trying VR now, Firefox reality , browsing 2d in 3d, a call for VR activities, themed multi-user virtual places: Mozilla Hubs, be social, have fun, airhacks.tv in 3D, three.js and a-frame for content creation, amazon sumerian, web assembly -- the XR accelarator, web assembly and asm, browser as VM, contact josh: https://twitter.com/joshmarinacci, mail: josh@josh.earth.

#16 Java, Caching and How the Information Flows

A conversation with Cameron Purdy, (@cpurdy) about: graphics programming, Wolfenstein, peek and pokes, programming in one sitting, structured programming and Pascal, no go sub, just go to, thoughts on Java, forming Tangosol in 2000, developers don't have budgets, J2EE scalability problems, TCMP, TCPM TCMP at XKCD, unlimited connections via UDP and early Java, Tangosol and Oracle coherence, distributed caching, learning on the job, dying servers, messaging and message order, blockchain and distributed caching, consistent caching, merkle tree, shrinking data domains, partition assignment strategies, partitioning and sharding, JINI and JavaSpaces, JGroups and Bela Ban, GigaSpaces, job scheduling, resource leasing, "Compound interest is the most powerful force in the universe" [Albert Einstein], survivor bias, usability optimizations, focus on application specific challenges, searching for exponential impact, having fun in team, attracting good engineers, daily improvements, the progress experience, avoid being noticed, fixing everything, the CAP truism, a different take on consistency, Java is not a concurrent language, there is no concept of "now", guaranteed order is the expensive part, consistency is the sideeffect of order, information is flowing, former Senior Vice President of Java Development still likes hacking, Cameron's new startup xqiz.it, @cpurdy.

#15 Microsoft, OpenSource, Java

A conversation with Bruno Borges about: staring the a Java career, Outbound Product Management at Oracle, Java EE Evangelism at Oracle, Oracle at Docker, JSPs as template, to young for JDK 1.0 :-), Brazil and Java, why Java is so popular in Brazil?, the idea for opensourcing Java, special thanks to Bruno Souza, Microsoft like Sun Microsystems, Microsoft as Java advocate, Azure, Jenkins on Azure https://docs.microsoft.com/en-us/azure/jenkins/, clouds, opensource technologies and vendor lock in, why trust rules, Microsoft joins Jakarta EE https://dev.eclipse.org/mhonarc/lists/jakarta.ee-wg/msg00054.html, Jakarta EE has to be successful on Azure, shipping WARs as productivce Function as a Service (FaaS), normalizing Jakarta EE for serverless environments, MicroProfile and serverless, boring Java EE, what is lacking in Java EE, Java EE marketing problems, Jakarta EE + MicroProfile and magic happens, no-bandwidth deployments with Jakarta EE, saving money with Jakarta EE in the clouds, Docker and Jakarta EE, Docker layering and inheritance, Maven Build with Docker Build under 3 secs, https://github.com/AdamBien/docklands as foundation for docker images, use cases for FatJars and UeberJars are hard to find, Docker images as ultimate EARs, no dependencies, no plugins with Java EE, deleting stuff as a service, having a zero-dependency mindset, simple systems will become complex, postponing complexity by deleting stuff, the beauty of Java EE platform, Bruno's next mission at Microsoft, Azure Java Functions, Azure App Service, Jakarta EE runtimes at Azure Cloud, Microsoft TomEE, OpenLiberty, Payara at Azure evaluations, pushing MicroProfile applications to Azure Cloud, MicroProfile Configuration Provider for Azure, Bruno can be contacted via: bruno.borges@microsoft.com (please no spam), Bruno at LinkedIn and twitter: @brunoborges

#14 Boring Enterprise Java

A conversation with Elder Moraes (@elderjava) about Java EE at JavaONE, why Java EE at all, enjoying boring stuff, Java EE for pet projects, thinking freely about business problems, no distractions, servlets and JSPs, Java as career choice, Jakarta EE opinions, Oracle's Java EE stewardship, Java EE 8 being late, Jakarta EE should remain boring, Jakarta EE and profiles, an idea for a Jakarta EE profile creation process, Eclipse Foundation and agility, the pace of MicroProfile, thoughts on Cloud Native, Java EE in Cloud Native environments, Sebastian Daschner and successful Java EE careers, Java EE impact on startups, ES 6, TypeScript, thoughts on serverless, future of Jakarta EE, JVM overhead and microservices, GraalVM and Nashorn, JavaONE vs Oracle Code, Java EE 8 recipes in the Java EE 8 Cookbook. Checkout: eldermoraes.com, Elder Moraes and @elderjava.

#13 From Java EE over EE4j to Jakarta EE

A conversation with Mike Milinkovich @mmilinkov, about Cobol, APL, Smalltalk, Visual Age for Java, WebGain, TopLink, "The Object People". Canadians run the Java World, Eclipse, plugins and OSGi, pragmatic modularization, the First Executive Eclipse Director, Mark's Cavage role in opensourcing Java EE ee4j name confusion, the Jakarta EE brand and logo, the migration from Java EE to Jakarta EE, why it is not possible to rename ee4j to Jakarta EE, working 50% on Jakarta EE, working with Oracle lawyers, why not all JSR specs can not be contributed by Oracle, dealing with old specifications, how to contribute to Jakarta EE project, how to become a Jakarta EE committer, the difference between Eclipse Foundation agreements and other foundations, becoming an Eclipse member, becoming a member steering committee, hacking the Jakarta EE process by becoming a member without paying money, the Jakarta EE release cadence, different cadences between ee4j and Jakarta EE, who decides what at Jakarta EE / Eclipse, specs become opensource projects, committer based merocracy, how to start a new Jakarta EE subproject, Jakarta EE is "code first", Microsoft joins Jakarta EE, the dangers of profiles, no politics, the specification Jakarta EE committee decides about profiles.

#12 From JSF and PrimeFaces to WebComponents

A conversation with Cagatay Civici (@cagataycivici) about starting with Java, interfaces and return statements, IBM RAD JSF, Sun JSF Woodstock, Apache MyFaces, Apache MyFaces Tomahawk, JSF Chart Creator, Apache MyFaces Tobago, Oracle's ADF, YUI, jQuery and JSF, the non-dependency mindset, building complex UI components, Jakarta EE and microprofile, a scientific approach to design, choosing colors and color palletes, ideas for themes, standards and PrimeFaces, keeping up with Angular, React and WebComponents, StencilJS, PrimeFaces NG, an opensource model with commercial support, why "Prime", component sponsorship, performance under pressure and PrimeTek.

#11 MicroProfile -- Past, Present and Future

A conversation with @emilyfhjiang about reducing the footprint with OpenLiberty, OSGi, Apache Aries Apache Aries, the beginnings of MicroProfile.io, OpenLiberty MicroProfile implementation, writing MicroProfile specs, combining Java EE 8 and MicroProfile.io, the added value of Fault Tolerance, Health, Metrics, Configuration, the process of introducing new APIs to MicroProfile, MicroProfile at GitHub, Java EE Concurrency Utilities and MicroProfile, OpenLiberty Guides, commercial support for OpenLiberty and MicroProfile by IBM, Reactive Microprofile, the relation between Jakarta EE and MicroProfile, MicroProfile standardisation.

#10 51st airhacks.tv [audio]

Answers for the Java EE, Java SE, HTML 5 and JavaScript questions from my blog: http://adam-bien.blog, https://twitter.com/AdamBien, http://airhacks.com, IRC #airhacks and "from the streets". This time we are covering: "Versioning, tagging, branching, automation, CI/CD, autodeployment in production, JAX-RS and file upload, MVC 1.0 vs. servlets and JSPs, Primefaces as module, @Singleton vs. @ApplicationScoped vs. @RequestScoped and JAX-RS, centralized logging, logging vs. metrics and the future of webassembly": http://adambien.blog/roller/abien/entry/versioning_tagging_automation_ci_logging See you at: http://workshops.adam-bien.com

#9 WildFly and JBoss

A conversation with Jason Greene @jtgreene about HotJava on Sparc, increasing productivity, Tomcat, OrionServer, JBoss, Jigsaw W3C's Server, JavaServer Web Development Kit, flat network assumptions, SOAP and XML vs. IIOP, grpc, thrift, DTO bloat, Infinispan, Marc Fleury, POJO Cache, JBoss Cache, caching and concurrency, clustering, JBoss/WildFly clustering under the hood, using Infinispan as JMS provider, WildFly 13 provisioning infrastructure, WildFly as a platform, pruning CORBA, the danger of profiles, dying SOAP, WildFly 12 and Java EE 8, Hibernate 6 query optimization, quarterly WildFly releases, EAP release cadence, community enterprise and supported WildFly, EAP for developers, Java EE productivity and the declarative model, Java EE concurrency model, WildFly's killer features, undertow and wildfly.

#8 JVM Innovation with Graal

A conversation with @JaroslavTulach about the beginnings of NetBeans, xelphi, JavaDoc, Glasgow, JavaBeans for the network, LimeTree, mounting jars, deals with Jonathan Schwartz, Bck2Brws (Back To Browser), Duke Script, Multi OS Engine, JavaFX, Java to JavaScript transpiler, Typescript, Frameworks, GraalVM, Project Maxwell , Maxine VM, C2 compiler, IGV, nashorn and performance, Graal and Twitter, JEP metropolis, Graal speedup, the most complex statement, speculative interpreters, talk to your compiler, Truffle, SubstrateVM, avatar.js, node.js on JVM, Graal Installation, language interop

#7 48th airhacks.tv [audio]

Answers for the Java EE, Java SE, HTML 5 and JavaScript questions from my blog: http://adam-bien.blog, https://twitter.com/AdamBien, http://airhacks.com, IRC #airhacks and "from the streets". This time we are covering: JSON-B and hierarchical mapping, Groovy and Jenkins pipelines, CQRS, 40k with (deprecated) JSF, EJB TX, JSON-B, Java EE migrations and I'm performing live a code review / refactoring. Also see: http://adambien.blog/roller/abien/entry/jakarta_ee_news_json_b

#6 Mobile Java

A conversation with Johan Vos about Sting at Java One, Blackdown Java, dream teams, Bill Joy, Java in science, telematics, OSGi, JavaFX, wild pigs, oktoberfest, kaffe.org social Java DaliCore, reactive JavaFX, Sun Grid, clouds, Java EE in science, Gluon, JavaFX on Mobile, openJDK 9 on iOS, Android and the future of JavaFX

#1 JavaONE 2017

JavaONE 2017 keynote, FN, Java 9, serverless Java, Java EE 8, EE4J, Microprofile