60-70% growth every year, customer base is growing quickly, 30 employees, great team with great vision, Payara is self-founded by commercial support fees, there are a lot of "traditional" applications in production, not every application needs Kubernetes, Payara clients are running their software on bare metal and on containerized platforms, it doesn't take much to support Kubernetes, Docker and Kubernetes are infrastructure and not a programming model, Java EE programming model is productive and can be taken to Docker and Kubernetes infrastructure, config externalization is the major task for Kubernetes support, Payara clustering discovery service uses Kubernetes for lookup, Payara Admin server is able to manage Payara Docker nodes, Payara Admin could replace the Kubernetes scheduler, scalability based on business metrics, the JavaONE GlassFish 3 cloud demo, aggregating metrics in a cluster, Payara Clustering brings data closer to processing, Payara Cluster is a distributed cache aka data grid, smart proxies with JAX-RS, CORBA was replaced by JAX-RS, load balancing with JAX-RS, in Payara 5 deployment groups and data grid comprise a cluster, Payara Server and Payara Micro support both MicroProfile and Java EE 8, application server as managed runtime, Payara comes with request tracing, database monitoring, upcoming releases will expose more metrics. you should not need an APM tool to monitor an application server, Canadian government contributes to LightFish, guidance for Maven bloat prevention, Payara Source To Image (S2I) https://github.com/AdamBien/s2i-payara and Payara Micro Source To Image (S2I) https://github.com/AdamBien/s2i-payara-micro, Payara Server supports more APIs than Payara Micro, Payara Server is capable to manage multiple instances and comes with admin console, Payara Micro runs on its own and is designed to run within docker containers, clouds and kubernetes, you could start with Payara Server and migrate to Payara Micro later, Payara Server and Payara Micro runtimes are similar, Payara Micro does not support OSGi - what is a feature, the only runtime difference between Payara Full and Micro is OSGi, Payara Micro doesn't have to be installed, the core development happens on Payara Server, Payara Micro is just repackaging of Payara Server, Payara Micro uses hardcoded classpath, the javax Jakarta EE namespace issue, Java EE backward compatibility is great feature and also a weakness, Jakarta EE is boring, MicroProfile iterates more quickly, Jakarta EE release cadence could be once every 2 year, MicroProfile releases 4 times a year, Jakarta EE and MicroProfile are popular in Europe, managing satellites with GlassFish, kubernetes anti-pattern, running OpenShfit cluster organization-wide
Ben Farell on twitter: @bfarrellforever
the 250 miles terminal connection, Commodore PET, battle ships on paper tapes, mocking the login screen on Commodore, reverse engineering Space Invaders, the lack of games in UK was a motivation for writing games, learning peek and pokes, Commodore engineering team wrote a book about machine code, Basic on BBC model B, Pascal and C on EPROMs, building a hotel booking system on Pascal, building a pseudo operating system with C, Concurrent Pascal, Cfront - the early version of C++, Atari ST came with C support, C++ over Concurrent Euclid, working with Andy Tannenbaum and Bjorne Stroustroup on Minix, porting Minix to Atari ST, Arjuna the Indian god, Indian Gods over Celtics, Arjuna -- the object oriented transaction system, started in 1985, inheriting transactions, transactions are not about HA, transactions are about recoverability, starting Java as Oak, the shiny object syndrome and transition to Java, writing web browsers in Java, porting Arjuna to Java with Blackdown Java, Jim Waldo and Note on Distributed Computing, opaque over transparent, Johan Vos was a member of the Blackdown team, RPC with C++ and Arjuna, almost serverless, packing and unpacking instances and the Lock Manager, 2PC was the default, without X/Open XA heuristics the system would block forever, XA heuristics were introduced to make independent decisions, enforcing consistency in microservices with 2PC/XA is hard, SOA and microservices come with similar challenges, there is no a single transaction model applicable for every single use case, XA/2PC is lesser suited for long running actions, transactions were out-of-fashion - now they are back, Google Spanner is transactional, Arjuna was acquired by Bluestone, Arjuna Technologies was acquired by HP, JBoss did a partial acquisition of Arjuna, before the Arjuna acquisition, JBoss couldn't handle 2PC properly, Bluestone became the HP application server, JBoss was always opensource and good quality code, J2EE came before annotations - metadata was attached with partially redundant XML, Mark became RedHat CTO in 2009, MicroProfile is great and there is a lot of interests in evolving Java into clouds by the community, Jakarta EE was a great move by Oracle in 2017, Jakarta EE has to move faster, Jakarta EE is more like the stable OS, MicroProfile is where the innovation happens, there are no more monolithic application server, what does "enterprise" mean?, QuarkEE is opinionated Quarkus,
Eastern computers and Robotron KC 85, CPU slicing, screensaver as source code, Hello World in Pascal with 14, University in Dresden, AMD and Java 1.2 with Forte for Java, starting at Saxonia Systems as consultant, having fun in a Java EE 5 course, the EJB 3 and Guice blog post, the effect of a link, Java EE 5, the "dinsoaur version" was productive although you had to write interfaces, early EJB and J2EE were bloated, but it was 15 years ago, working at Otto the German "amazon" and Kuehne and Nagel, just use the most productive stack you can get, what does "modern" actually mean?, applying quantum computing to CRUD, it was hard to find a killer use case for WildFly Swarm, quarkus is a Java EE + MicroProfile subset with useful features, FatJars do not make any sense in a layered file system, bare metal infrastructure is the killer feature of UberJars and FatJARs, Heavyweight vs. Lightweight JavaONE session, quarkus native image is a fraction of JVM size, the "compile time boot", performing optimizations at build and not at boot time, with quarkus CDI performance might be as good as EJBs, deployment descriptors are only needed at build time, boring programming model with optimizations under the hood is true innovation, MicroProfile FaultTolerance combines easy programming model with Hystrix's capabilities, don't re-invent the wheel, BeanValidation's in XML-configuration is not supported in quarkus native mode, QuarkEE release, using quarkus for web development, validating design and architecture with deptective, deptective enforces the rules at compile time, deptective is a plugin of javac compiler, javadoc may cause package cycles, measuring packge coupling and cohesion, jacoco as code coverage plugin for quarkus, debezium detects changes and passes the events to Apache Kafka, debezium uses DB APIs, logical decoding in PostgreSQL, debezium receives updates even it the application is not running, listening on the transactional log of the database.
rubber-keyed ZX81, C64, Basic, tons of incorrect rows of hexcode, transitioning from Basic to assembly, games were an inspiration, 40mins to load the game, Turbo Copy for software refreshment, transitioning from software to solding transistors, flip-flops with 10 years, programming Logo with Atari ST, HTL in Austria, Pascal on 286 Commodore PC 20 with monochrome computer, host programming on Digital Equipment PDP 8e, Sun's pizza boxes, drinkomat the drink (also vodka) portioning machine, replacing 2 PCs with one microcontroller, the first 3D printer, testing insulin pumps, learning C++ with Glockenspiel C++ compiler, starting with Java 1.0.2, building stock exchange software with Java, brilliant Martin Poeschl, Maven 1 and Cocoon, JRun was servlet-like engine, Borland JBuilder, building platforms for Austrian insurance market platform in 1999, Lutris Enhydra application server, Tomcat was donated by Sun to Apache, never control program flow with exceptions, Jigsaw - Apache servlet engine, XMLc was a built-step in Ant, DOM manipulation in Java on the server, defining data structure in XML and generating the DAOs, enhydra was Canadian then donated to ow2, Windows and OS2 programming, C# came 2002, first EJB-drafts were nightmare, EJB could be implemented better with Objective-C Portable Distributed Objects from NeXT, EJB was a huge buzz topic pushed by Microsoft's DCOM, MTS was almost like EJB, DCOM came before EJB, MTS came after EJB, "remote first" was wrong, macroservices are more appealing for enterprise, delivering in 2004 25 TB of music (and Jamba ringtones) to 16 million customers and with Servlets and Resin from Caucho, hardcore threads were native, Mark worked as freelancer, a few big Sun Enterprise 400 with MySQL without transactions, optimizing for read only, projects under fire, the challenging part in the backend were contracts and payment, switching logic with re-deployment with Groovy, switching from Spring to CDI, refactoring PHP to Java in 5 years, Seam 2 didn't had the future, serving 5 millions impressions / 12k requests per minute in the first day with 1-month old Java EE 6, Glassfish is rubbish, Payara is great, Payara delivers patches incredibly fast, Java EE community is really nice, the real benefit of opensource is sharing costs, experience, maintenance, testing costs and fork prevention, JPA is too much magic but you get tons of answers for free, three category of projects: perfect, problematic and completely broken, the javax namespace issue, javax became immutable, Geronimo app server is dead, the Geronimo contains Java EE API specs, one-shot migration to jakarta namespace is not that hard, migrate once, but do it right, javax migration is a lorge task for vendors but a small issue for business, developers are still thinking is "J2EE", Eclipse is too protective and should open to other foundations and communities
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.
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.
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, @diffbluehqJames Wilson on twitter: @jgwilson42. Checkout: javaeetesting.com - the online test about Unit-, Integration-, and Stress Testing and see you at airhacks.com.
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.
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.
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 ThreadPoolAndy on twitter: @andrew_guibert and github.
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,
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.
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.
A conversation with Steve Millidge, (@l33tj4v4) about pre Java 1.0, persistence and OODBs, OrionServer, payara.fish, Payara Micro vs. Payara Server Full, lightweight Java EE, microprofile, EE4J and why Java EE is the perfect Cloud Native platform.
A conversation with Erin Schnabel (@ebullientworks, ebullientworks.com) about: the beginnings of Java, robots, CORBA, RMI, WebSphere, OpenLiberty, Services, Java EE, WebSockets, Cloud Native, Microservices, GameOn Productivity and the 10 years cycle
A conversation with Sebastian Daschner about: Java EE, EE4j, Microprofile, Swagger, JAX-RS Analyzer, CQRS, Microprofile Book: Architecting Modern Java EE ApplicationsWebsite / Blog / Newsletter, @DaschnerS, Java EE book announcement, Architecting Modern Java EE Applications book (amazon), Architecting Modern Java EE Applications book (packt)
JavaONE 2017 keynote, FN, Java 9, serverless Java, Java EE 8, EE4J, Microprofile