adam bien's webloghttps://adambien.blog/2024-10-22T03:31:01.243536926Zadam bienQuarkus and LangChain4J - A Match Made in Heavenhttps://adambien.blog/roller/abien/entry/quarkus_and_langchain4j__a_match_made_in_heaven2024-10-20T09:47:27.170235002Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #317 <a href="https://airhacks.fm">airhacks.fm</a> episode with Georgios Andrianakis (<a href="https://twitter.com/geoand86">@geoand86</a>) about: <blockquote itemprop="description"> langchain4j, Quarkus and the architecture of LLM integration </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_317">download.</a> </article>The Best of Java Shorts Show--Is Available on Githubhttps://adambien.blog/roller/abien/entry/the_best_of_java_shorts_show_is_available_on_github2024-10-19T04:44:21.358599687ZThe <a href="https://jdd.org.pl">JDD</a> conference organizers asked me to record a short promotion of my talk, so I recorded the very first short. I've been recording (more than 800 and growing) Java shorts: (<a href="http://youtube.com/bienadam/shorts">youtube.com/bienadam/shorts</a>) daily, "from scratch" usually without any dependencies, build tools, or even compilation. <p> The talk "The Best of Java Shorts Show: 100 Snippets in 50 Minutes" at Devoxx 2024 Belgium was recorded with a selection of the most interesting or popular shorts: <div class="screencast"> <iframe src="https://www.youtube.com/embed/t03DOhiTPkc?rel=0&vq=highres" allowfullscreen></iframe> </div> I have received several requests for the source code and have published a selection (>100) of the snippets here: <a href="https://github.com/AdamBien/best-of-java-shorts">github.com/AdamBien/best-of-java-shorts</a> </p>Why JVector 3 Is The Most Advanced Embedded Vector Search Engine--airhacks.fm podcathttps://adambien.blog/roller/abien/entry/why_jvector_3_is_the_most_advanced_embedded_vector_search_en2024-10-13T10:56:16.062542161Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #316 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Ellis (<a href="https://twitter.com/spyced">@spyced</a>) about: <blockquote itemprop="description"> JVector 3 (<a href="https://github.com/jbellis/jvector">"the most advanced embedded vector search engine written in Java"</a>) under the hood and design trade-offs </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_316">download.</a> </article>Live From Devoxx Belgium: Pure Java Enterprise AI/LLM Integration (EAI 2.0)https://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_pure_java_enterprise_ai_llm_integration_eai_2_0_2024-10-12T15:27:36.535211054ZThis session was presented live at <a href="https://www.devoxx.be/talk/pure-java-enterprise-ai-llm-integration-eai-2-0-/">Devoxx Belgium</a>: <blockquote> <q> From REST API and SDKs to langchain4j to fully managed cloud solutions to local integration with jlama and llama3.java of open source foundation models. In this session I will present architectures, ideas, hacks, and workarounds for integrating LLM with Java enterprise applications. I will illustrate the concepts with Java 21, Quarkus / MicroProfile code and integrate the latest Claude, ChatGPT, llama and AWS Bedrock models. Your questions will be given priority and answered interactively. </q> </blockquote> <div class="screencast"> <iframe src="https://www.youtube.com/embed/CHacyEN2N1E?rel=0&vq=highres" allowfullscreen></iframe> </div>Live From Devoxx Belgium: The Best of Java Shorts Show: 100 Snippets in 50 Minuteshttps://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_the_best_of_java_shorts_show_100_snippets_in_50_minutes2024-10-12T15:28:10.412036155ZI picked the most interesting <a href="http://youtube.com/bienadam/shorts">youtube.com/bienadam/shorts</a> and presented them live at <a href="https://www.devoxx.be/talk/the-best-of-java-shorts-show-100-snippets-in-50-minutes/">Devoxx Belgium</a>. <blockquote> <q> How to: run Java as a shell script, run a Java app without compiling, print an emoji, run an HTTP dev server, use libraries without compiling, colorful logs,&nbsp;access LLMs,run timer jobs, access the clipboard, implement a file watch, main in interfaces, easy file parsing (...) and ~100 other popular Java snippets from <a href="http://youtube.com/bienadam/shorts">youtube.com/bienadam/shorts</a>. No builds, no Maven, no dependencies, just javac and Visual Studio code. </q> </blockquote> <div class="screencast"> <iframe src="https://www.youtube.com/embed/t03DOhiTPkc?rel=0&vq=highres" allowfullscreen></iframe> </div>Abstract Classes vs. Interfaces, Performance Benchmarking, JMH, Lambdas and Databases--127th airhacks.tvhttps://adambien.blog/roller/abien/entry/abstract_classes_vs_interfaces_performance_benchmarking_jmh_lambdas_and_databases_127th_airhacks_tv2024-10-08T13:16:41.519795625ZThe 2024.10 / 127th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "String.join() is 30% faster than Collectors.joining(), JMH not always necessary for high-level benchmarking, interfaces slightly faster than abstract classes but the difference is negligible, Quarkus requires no installation - just use the POM file, Quarkus tests are integration tests and should be used sparingly, use shutdown hooks or @PreDestroy for clean connection closure in Lambdas, GraalVM shines in CLI tools and polyglot applications, simple export method for Java version management, JavaFX on mobile is challenging but viable with Gluon, EJBs and some Java EE concepts are outdated, but interceptors and dependency injection are still relevant" </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/okdkH1ZyluM?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/26939d9a232bd0c3b79fd6149bc0815b">gist.github.com/AdamBien/26939d9a232bd0c3b79fd6149bc0815b</a> </p>Performance Abstract classes vs. Interfaces, Lambda and DB Connections, JMH--Questions for 127th airhacks.tvhttps://adambien.blog/roller/abien/entry/performance_abstract_classes_vs_interfaces_lambda_and_db_connections_jmh_questions_for_127th_airhacks_tv2024-10-08T12:17:21.116563293ZQuestions and topics for the 2024.10 / 127th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>performance: abstract class vs. interface <q>Hi, I got an interview question as to which one is faster Abstract class or Interface ? Can you explain please.</q> <a href="https://www.youtube.com/watch?v=5KiycnT5vmo&lc=UgyXAR2ukURRLeK-0Yl4AaABAg">What is Faster: String.join or Collectors.joining?</a></li> <li>DB connections and lambda shutdown</li> <li>performance measurement with or without JMH: <q>"PLEASE use the microbenchmark harness in future videos. I have the impression, that this suggests that performance measurements with after-minus-before is a good idea."</q> from: <a href="https://www.youtube.com/watch?v=5KiycnT5vmo&lc=UgwZInCCRo4WUQyA9U14AaABAg">What is Faster: String.join or Collectors.joining?</a></li> <li>the 100-episodes back time machine. Questions from: 27th airhacks.tv:<blockquote> "Interceptors and Dependency Injection Singleton EJBs, CDI and concurrency BCE in Eclipse and can Boundary communicate with Entity? Stateful EJBs vs. SessionScoped" </blockquote> </li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/0e1193cd4697658cd226e4c370bec94d">https://gist.github.com/AdamBien/0e1193cd4697658cd226e4c370bec94d</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p>The AI Revolution in Java Development and Devoxx Genie--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_ai_revolution_in_java_development_and_devoxx_genie_airh2024-10-06T09:24:22.614338831Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #315 <a href="https://airhacks.fm">airhacks.fm</a> episode with Stephan Janssen (<a href="https://twitter.com/Stephan007">@Stephan007</a>) about: <blockquote itemprop="description"> the LLM Revolution in software development and building the Devoxx Genie plugin </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_315">download.</a> </article>From Apache Cassandra to Serverless: Exploring Cloud-Native Databases--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_apache_cassandra_to_serverless_exploring_cloud_native_databases_airhacks_fm_podcast2024-10-05T16:42:50.579045652Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #314 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jake Luciani (<a href="https://twitter.com/tjake">@tjake</a>) about: <blockquote itemprop="description"> NoSQL, Cassandra, DynamoDB, cloud-native databases, and LLMs integration with pure Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_314">download.</a> </article>JSON validation, DTOs, Microprofile, Lift and Shift, JSONPath--126th airhacks.tvhttps://adambien.blog/roller/abien/entry/json_validation_dtos_microprofile_lift_and_shift_jsonpath_126th_airhacks_tv2024-10-01T10:56:37.604624322ZThe 2024.9 / 126th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "JSON validation using JSONPath and custom validators, running Jakarta EE apps on OpenShift, comparing JBoss EAP and Quarkus applications, cross-platform GUI development options, constructor injection vs field injection debate, integrating Microprofile with Java 21, rebuilding blog engine with Quarkus and Microprofile, JSON vs DTOs, Lombok vs plain Java Record Classes, Jakarta EE, MicroProfile vs plain Java 21" </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/1Slm-ZxExgk?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Revolutionizing AI with Java: From LLMs to Vector APIs--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/revolutionizing_ai_with_java_from_llms_to_vector_apis_airh2024-09-28T12:28:46.894115656Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #313 <a href="https://airhacks.fm">airhacks.fm</a> episode with Alfonso Peterssen (<a href="https://twitter.com/TheMukel">@TheMukel</a>) about: <blockquote itemprop="description"> pure Java LLM integration with and without GraalVM </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_313">download.</a> </article>Late 2024 Conferences, Java User Groups (JUG) and Workshopshttps://adambien.blog/roller/abien/entry/late_2024_conferences_java_user_groups_jug_and_workshops2024-10-08T21:15:27.587585149Z<ol> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> <span itemprop="name">#127th airhacks.tv Questions and Answers #slideless</span>[online event] <div> <span itemprop="description">live streaming show</span> <span itemprop="startDate">7th October 2024</span> </div> <meta itemprop="endDate" content="7th October 2024"> <a href="https://www.meetup.com/airhacks/events/303564256/" itemprop="url">https://www.meetup.com/airhacks/events/303564256/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Devoxx Belgium: <span itemprop="name">Pure Java Enterprise AI/LLM Integration (EAI 2.0)</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">Devoxx Belgium</span> <span itemprop="address" itemtype="http://schema.org/Text">Antwerpen Kinepolis</span> </span> <span itemprop="startDate">10th October 2024</span> </div> <meta itemprop="endDate" content="10th October 2024"> <a href="https://www.devoxx.be/talk/pure-java-enterprise-ai-llm-integration-eai-2-0-/" itemprop="url">https://www.devoxx.be/talk/pure-java-enterprise-ai-llm-integration-eai-2-0-/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Devoxx Belgium: <span itemprop="name">The Best of Java Shorts Show: 100 Snippets in 50 Minutes</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">Devoxx Belgium</span> <span itemprop="address" itemtype="http://schema.org/Text">Antwerpen Kinepolis</span> </span> <span itemprop="startDate">10th October 2024</span> </div> <meta itemprop="endDate" content="10th October 2024"> <a href="https://www.devoxx.be/talk/the-best-of-java-shorts-show-100-snippets-in-50-minutes/" itemprop="url">https://www.devoxx.be/talk/the-best-of-java-shorts-show-100-snippets-in-50-minutes/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Silesia Java User Group (Silesia JUG): <span itemprop="name">Rethinking Enterprise Java Development</span> <div> <span itemprop="description">JUG session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">Silesia Java User Group (Silesia JUG)</span> <span itemprop="address" itemtype="http://schema.org/Text">Katowice</span> </span> <span itemprop="startDate">15th October 2024</span> </div> <meta itemprop="endDate" content="15th October 2024"> <a href="https://www.meetup.com/silesia-jug/events/303542249/" itemprop="url">https://www.meetup.com/silesia-jug/events/303542249/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> OC for Java: <span itemprop="name">Conflicting architectures: Public vs. Private Clouds with Jakarta EE</span> <div> <span itemprop="description">OCX Conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">OC for Java</span> <span itemprop="address" itemtype="http://schema.org/Text">Mainz, Halle 45</span> </span> <span itemprop="startDate">23rd October 2024</span> </div> <meta itemprop="endDate" content="23rd October 2024"> <a href="https://www.ocxconf.org/event/778b82cc-6834-48a4-a58e-f883c5a7b8c9/websitePage:26bc9d91-446a-49e1-9f08-8fcc4680073e?session=6b272b65-a64d-4d95-b1a2-6c8326cd5cff&shareLink=true" itemprop="url">https://www.ocxconf.org/event/778b82cc-6834-48a4-a58e-f883c5a7b8c9/websitePage:26bc9d91-446a-49e1-9f08-8fcc4680073e?session=6b272b65-a64d-4d95-b1a2-6c8326cd5cff&shareLink=true</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> W-JAX Munich: <span itemprop="name">Pure Java Enterprise AI / LLM Integration Patterns, Hacks und Workarounds</span> <div> <span itemprop="description">JUG session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">W-JAX Munich</span> <span itemprop="address" itemtype="http://schema.org/Text">Munich</span> </span> <span itemprop="startDate">5th November 2024</span> </div> <meta itemprop="endDate" content="5th November 2024"> <a href="https://jax.de/serverside-enterprise-java/java-enterprise-ai-llm-integration-patterns-hacks-workarounds/" itemprop="url">https://jax.de/serverside-enterprise-java/java-enterprise-ai-llm-integration-patterns-hacks-workarounds/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> W-JAX Munich: <span itemprop="name">Rethinking Enterprise Java Development</span> <div> <span itemprop="description">JUG session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">W-JAX Munich</span> <span itemprop="address" itemtype="http://schema.org/Text">Munich</span> </span> <span itemprop="startDate">5th November 2024</span> </div> <meta itemprop="endDate" content="5th November 2024"> <a href="https://jax.de/serverside-enterprise-java/rethinking-enterprise-java-development/" itemprop="url">https://jax.de/serverside-enterprise-java/rethinking-enterprise-java-development/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> W-JAX Munich: <span itemprop="name">The Best of Java Shorts Show: 100 Snippets in 45 Minutes</span> <div> <span itemprop="description">JUG session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">W-JAX Munich</span> <span itemprop="address" itemtype="http://schema.org/Text">Munich</span> </span> <span itemprop="startDate">5th November 2024</span> </div> <meta itemprop="endDate" content="5th November 2024"> <a href="https://jax.de/serverside-enterprise-java/automatisierung-java-shell-script/" itemprop="url">https://jax.de/serverside-enterprise-java/automatisierung-java-shell-script/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> <span itemprop="name">Single Table Design with Java</span>[online event] <div> <span itemprop="description">airhacks.live workshop</span> <span itemprop="startDate">17 December 2024</span> </div> <meta itemprop="endDate" content="17 December 2024"> <a href="https://airhacks.live" itemprop="url">https://airhacks.live</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> <span itemprop="name">LLM / GenAI Java Bootstrap</span>[online event] <div> <span itemprop="description">airhacks.live workshop</span> <span itemprop="startDate">19 December 2024</span> </div> <meta itemprop="endDate" content="19 December 2024"> <a href="https://airhacks.live" itemprop="url">https://airhacks.live</a> </li> </ol> JAX-RS With- and Without Reactive Programming in Quarkus--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/jax_rs_with_and_without_reactive_programming_in_quarkus_airhacks_fm_podcast2024-09-25T19:10:59.514357933Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #312 <a href="https://airhacks.fm">airhacks.fm</a> episode with Georgios Andrianakis (<a href="https://twitter.com/geoand86">@geoand86</a>) about: <blockquote itemprop="description"> performance and scalability considerations for JAX-RS and reactive programming in various use cases, JSON-B, Jackson, reactive Hibernate and LangChain4j </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_312">download.</a> </article>Developer and Database Administrator--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/developer_and_database_administrator_airhacks_fm_podcast2024-09-10T13:27:13.676463340Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #311 <a href="https://airhacks.fm">airhacks.fm</a> episode with Gerald Venzl (<a href="https://twitter.com/GeraldVenzl">@GeraldVenzl</a>) about: <blockquote itemprop="description"> Oracle Database, performance and software development </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_311">download.</a> </article>Java 22 and 23 Features--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_22_and_23_features_airhacks_fm_podcast2024-09-03T10:09:27.024322804Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #310 <a href="https://airhacks.fm">airhacks.fm</a> episode with Nicolai Parlog (<a href="https://twitter.com/nipafx">@nipafx</a>) about: <blockquote itemprop="description"> Java 22 / 23 Features, Java and LLMs, Java build tools, beginner's experience and "enterprise" Java AI </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_310">download.</a> </article>Constructor DI, Interface Misuse, JSON validation, Re-Architecting, Lift and Shift, Docker Redeployment--Questions for 126th airhacks.tvhttps://adambien.blog/roller/abien/entry/constructor_di_interface_misuse_json_validation_re_archit2024-09-02T14:39:47.400471916ZQuestions and topics for the 2024.9 / 126th edition of airhacks.tv with the following topics: <ol> <li>Thoughts on constructor injection v2</li> <li>misusing interfaces</li> <li>JSON object validation</li> <li>thoughts on MicroProfile and Jakarta EE</li> <li>re-architecting, lift and shift and: <a href="https://adambien.blog/roller/">adambien.blog</a>migration and <a href="https://vimeo.com/ondemand/microprofile">vimeo.com/ondemand/microprofile training</a></li> <li>private vs. public cloud hosting</li> <li>> 650 youtube Java shorts <a href="http://youtube.com/bienadam/shorts">youtube.com/bienadam/shorts</a></li> <li>the 100-episodes back time machine. Questions from: <a href="http://www.adam-bien.com/roller/abien/entry/26th_airhacks_q_a_java /">26th airhacks.tv</a>: <p>Java EE 8 News, the guardians and the background JSF 2, NIO, asynchronous programming, performance and 2k concurrent users Injecting subtypes and delayed execution Character encoding and JAX-RS How to deal with shared business methods (IBAN) Subjective opinions about BPM with objective arguments JPA entity injection and merging best practices Multitenancy in Java EE How to pass tenant information with the request? How to migrate away from RichFaces? Source code analysis for transaction processing Where to put BaseEntity in ECB? Redeployment in Docker Distributed service discovery, distributed transactions, logging and debugging and microservices</p></li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/95544fc7692e0ce518ffb17573507443">gist.github.com/AdamBien/95544fc7692e0ce518ffb17573507443</a>and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> <p> </p> Ask questions during the show via twitter mentioning me: <a target="_blank" href="https://twitter.com/AdamBien">https://twitter.com/AdamBien</a>(@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a> </p>From Spring to Quarkus: A Java Developer's Journey--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_spring_to_quarkus__a_java_developer_s_journey__airhacks_fm_podcast2024-08-24T14:57:23.746306970Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #309 <a href="https://airhacks.fm">airhacks.fm</a> episode with Georgios Andrianakis (<a href="https://twitter.com/geoand86">@geoand86</a>) about: <blockquote itemprop="description"> J2EE, NodeJS and Spring development and the transition to Quarkus. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_309">download.</a> </article>How Micrometer Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_micrometer_happened__airhacks_fm_podcast2024-08-24T14:26:51.936278052Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #308 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Schneider (<a href="https://twitter.com/jon_k_schneider">@jon_k_schneider</a>) about: <blockquote itemprop="description"> observability, metrics, spinnaker and micrometer </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_308">download.</a> </article>How the Java-Optimized Vega Chip Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_the_java_optimized_vega_chip_happened__airhacks_fm_podcast2024-08-24T14:24:46.100667617Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #307 <a href="https://airhacks.fm">airhacks.fm</a> episode with Gil Tene (<a href="https://twitter.com/giltene">@giltene</a>) about: <blockquote itemprop="description"> building cutting edge Java hardware </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_307">download.</a> </article>How Java HotSpot Compiler Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_java_hotspot_compiler_happened2024-08-06T12:27:39Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #306 <a href="https://airhacks.fm">airhacks.fm</a> episode with Cliff Click (<a href="https://twitter.com/cliff_click">@cliff_click</a>) about: <blockquote itemprop="description"> compiler fascination, optimization and the Java HotSpot compiler </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_306">download.</a> </article>Reporting, Long Running Actions, Constructor Injection, Guava Services--Questions for 125th airhacks.tvhttps://adambien.blog/roller/abien/entry/reporting_long_running_actions_constructor2024-08-05T07:58:08ZQuestions and topics for the 2024.8 / 125th edition of airhacks.tv with the following topics: <ol> <li>Thoughts on constructor injection</li> <li>Guava Services vs. Quarkus and Micronaut</li> <li>Thoughts on MicroProfile Long Running Actions (LRA)</li> <li>Time machine. Questions from: <a href="https://adambien.blog/roller/abien/entry/25th_airhacks_q_a_ejb">25th airhacks.tv</a>: <p> EJB vs CDI. Or what is the future?, BCE component visibility, When to use @Suspended and ExecutorService?, How to implement a long running task?, JavaScript: ES2015, ES2016 or TypeScript. Angular or Angular2? Or how to start a webproject, Transactions and consistency in Java EE Microservices, Is JMX still useful?, Service call concurrency and parallelization, Partial responses with JAX-RS, Entities: rich or anemic?, CorrelationIds in JAX-RS,Are EARs still available?, MVC: is it too late in Java EE 8?, DI in subresources, Batch checkpoints and persistence, What is the benefit of a thread pool?, PHP to Java EE migration,Sample Java EE projects, Are microservices only interesting for refactoring? </p> </li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/edbfe339f2f1fbc7e5e2b219d51d5735">gist.github.com/AdamBien/edbfe339f2f1fbc7e5e2b219d51d5735</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a> </p>How Bach - "The Java Shell Builder" Happened --airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_bach_the_java_shell2024-07-29T13:05:42Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #305 <a href="https://airhacks.fm">airhacks.fm</a> episode with Christian Stein (<a href="https://twitter.com/sormuras">@sormuras</a>) about: <blockquote itemprop="description"> Hudson, Jenkins, JUnit, game development in Java and no-dependencies Java build tools </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_305">download.</a> </article>From J2ME, over Bluetooth and Speech Recognition to AI--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_j2me_over_bluetooth_and2024-07-21T08:46:29Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #304 <a href="https://airhacks.fm">airhacks.fm</a> episode with Bruce Hopkins about: <blockquote itemprop="description"> J2ME, bluetooth, speech recognition, automation ChatGPT. Also checkout the book: <a href="https://javachatgptbook.com">javachatgptbook.com</a> </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_304">download.</a> </article>Project Valhalla: Value Types, Nullability and Float16--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/project_valhalla_value_types_nullability2024-07-14T16:53:14Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #303 <a href="https://airhacks.fm">airhacks.fm</a> episode with Paul Sandoz (<a href="https://twitter.com/paulsandoz">@paulsandoz</a>) about: <blockquote itemprop="description"> Project Panama, Vector API, Value Types, machine learning, benefits of nullability in API design and new datatypes like e.g. Float16 in Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_303">download.</a> </article>OpenRewrite: Transforming Java Code at Scale--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/openrewrite_transforming_java_code_at2024-07-07T13:26:39Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #302 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Schneider (<a href="https://twitter.com/jon_k_schneider">@jon_k_schneider</a>) about: <blockquote itemprop="description"> OpenRewrite features, added value of the Moderne Platform and opensource strategies </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_302">download.</a> </article>Interviewed by a Recruiter: "Java and AWS Cloud: Building Scalable Enterprise Solutions"https://adambien.blog/roller/abien/entry/interviewed_by_a_recruiter_java2024-07-05T02:49:01ZA chat with a recruiter: <a href="https://www.youtube.com/@tech-careers">Michal Juhas</a> could be fun! Our conversation ranged from the latest Java innovations to Infrastructure as Code (IaC) to serverless computing to hiring questions: <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/82uSk6OlJqw?rel=0&vq=highres" allowfullscreen></iframe> </div> </p>Dying Java DBs, EJB Migrations, Kubernetes, Serverless Java, Maven, Gradle, Native Images--Questions for 124th airhacks.tvhttps://adambien.blog/roller/abien/entry/ejb_migrations_kubernetes_serverless_java2024-07-01T04:09:01Z<a href="https://gist.github.com/AdamBien/463d60f4fa37489120df7816d74ff3b3">Questions and topics</a> for the 2024.7 / 124th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>How to deal with EJB passivation in CDI</li> <li>How to deal with EJB pooling in CDI</li> <li>Migration from CMP Entities to recent Jakarta EE / MicroProfile</li> <li>GeeCON session <a href="https://2024.geecon.org/speakers/info.html?id=894">"Containerless, Bloatless, YAML-less, Serverless Java #slideless"</a> questions <blockquote> Why is Kubernetes recommended in private dc but not in public cloud? Why one should not mvn clean? Can you show what is actually inside function.zip file? Why maven not gradle? Is it a good idea to building lambda as a quarkus native image? As the bucket's name is generated, would the bucket be recreated after every deploy of the lambda? What vscode plugins are you using for this kind of development in Java? How to manage multiple environments in this setup ( staging | prod ) How to share s3 information with another project for example lambda? How are you versioning and deploying the app for green/blue deployments to run two versions at a time? </blockquote> </li> <li>Time machine / questions from 24th airhacks.tv: <blockquote> Is Java EE Dying? Cross-component business transactions and BCE Webjars?! Content negotiation Concurrency, SLSB and throttling Runtime pluggability and Java EE, CDI, OSGi Groovy-based DSL for configurability? Caches in crippled network environments DAOs, Entities, CRUD and duplication CDI in EAR Portlets vs. Single Page apps Annotation-based configuration Managing common data with REST (aka microservices) Streams vs. old collections How to deal with abstract classes in BCE? </blockquote></li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/463d60f4fa37489120df7816d74ff3b3">https://gist.github.com/AdamBien/463d60f4fa37489120df7816d74ff3b3</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p>JVector: Cutting-Edge Vector Search in Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/jvector_cutting_edge_vector_search2024-06-30T11:35:59Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #301 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Ellis (<a href="https://twitter.com/spyced">@spyced</a>) about: <blockquote itemprop="description"> JVector database implementation and design choices </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_301">download.</a> </article>Object-Oriented Programming (OOP) vs. Data-Oriented Programming (DOP) in Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/object_oriented_programming_oop_vs2024-06-23T10:34:14Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #300 <a href="https://airhacks.fm">airhacks.fm</a> episode with Nicolai Parlog (<a href="https://twitter.com/nipafx">@nipafx</a>) about: <blockquote itemprop="description"> the killer features of Object-Oriented Programming (OOP) and Data-Oriented Programming (DOP) in Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_300">download.</a> </article>From JSP to Rife and From Kotlin to Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_jsp_to_rife_and2024-06-17T10:44:38Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #299 <a href="https://airhacks.fm">airhacks.fm</a> episode with Erik C. Thauvin (<a href="https://twitter.com/ethauvin">@ethauvin</a>) about: <blockquote itemprop="description"> migrating Java projects to the Rife 2 framework and moving from Kotlin to Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_299">download.</a> </article>Live from JCON Europe 2024: "Serverless Java #slideless"https://adambien.blog/roller/abien/entry/live_from_jcon_europe_20242024-06-14T13:17:33ZThe talk "Serverless Java #slideless" was recorded at the <a href="https://jcon.one">JCON Europe</a> 2024. <p> I used the following template in this talk as base for the examples: <a href="https://github.com/AdamBien/aws-functionurl-cdk-only">aws-functionurl-cdk-only</a>. However, most of my real-world projects rely on the: <a href="https://github.com/AdamBien/aws-quarkus-lambda-cdk-plain">aws-quarkus-lambda-cdk-plain</a> project. </p> <small> See you at <a href="https://airhacks.live" target="_blank">airhacks.live</a>!. </small> <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/6TJ4oDFuMCM?rel=0&vq=highres" allowfullscreen></iframe> </div> </p> <p> The abstract: <blockquote> Serverless is the least complex, most secure, cost-effective (or even free) architecture for most enterprise applications and is compatible with the "Green IT" premises. In this session, I will explain the inner workings of a serverless application from a code perspective with IaC provisioning with Java, real-world MicroProfile code, and live deployments. I will answer your questions in real-time. </blockquote> </p>The bld Power User--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_bld_power_user_airhacks2024-06-09T15:35:26Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #298 <a href="https://airhacks.fm">airhacks.fm</a> episode with Erik C. Thauvin (<a href="https://twitter.com/ethauvin">@ethauvin</a>) about: <blockquote itemprop="description"> using bld in production and the differences to Apache Maven and Gradle </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_298">download.</a> </article>Lambda Communication, EDAs, Step Functions and llama--Questions for 123rd airhacks.tvhttps://adambien.blog/roller/abien/entry/lambda_communication_edas_step_functions2024-06-04T13:32:21ZQuestions and topics for the 2024.6 / 123rd edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>Conferences attended: jCon and GeekOn</li> <li>Time machine show reviewing questions from 2016</li> <li>Upcoming courses on serverless NoSQL with Java and using LLMs in enterprise</li> <li>Interesting podcast episodes on Kotlin, LLM integration with Java, and JVector database</li> <li>Various ways for AWS Lambda functions to communicate with each other and external services [from: <a href="https://discord.gg/airhacks">https://discord.gg/airhacks</a>]</li> <li>llama2.java--Llama 2 in With One Pure Java 21 File [video: <a href="https://youtu.be/71t5vjSbfsI?si=qapLQlUsGiOjN9YV">https://youtu.be/71t5vjSbfsI</a>]</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/0909ac2cbae6781b868d3e1c00ac4e4c">https://gist.github.com/AdamBien/0909ac2cbae6781b868d3e1c00ac4e4c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p>Observability-Driven Development with Digma, Serverless and Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/observability_driven_development_with_digma2024-06-02T08:45:12Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #297 <a href="https://airhacks.fm">airhacks.fm</a> episode with Roni Dover (<a href="https://twitter.com/doppleware">@doppleware</a>) about: <blockquote itemprop="description"> Digma, continuous observability, serverless computing and Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_297">download.</a> </article>Exploring ONNX, Embedding Models, and Retrieval Augmented Generation (RAG) with Langchain4j--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/exploring_onnx_embedding_models_and2024-06-01T09:18:11Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #296 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dmytro Liubarskyi (<a href="https://twitter.com/langchain4j">@langchain4j</a>) about: <blockquote itemprop="description"> ONNX format and runtime for running neural network models in Java, Quarkus / MicroProfile integration, and the pragmatic added value of <a href="https://docs.langchain4j.dev">langchanin4j</a>. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_296">download.</a> </article>High-Performance Java, Or How JVector Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/high_performance_java_or_how2024-05-18T10:31:07Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #295 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Ellis (<a href="https://twitter.com/spyced">@spyced</a>) about: <blockquote itemprop="description"> the early days of Apache Cassandra, to create JVector: an embedded vector search engine in Java, and the advantages of Java for building high-performance and scalable softwarere </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_295">download.</a> </article>Modern Java in the Cloud or OnPrem--BaselOne Keynotehttps://adambien.blog/roller/abien/entry/modern_java_in_the_cloud2024-05-14T12:03:33ZMake the right decisions in the cloud and on-premises with modern Java. A <a href="https://baselone.org/en/baselone-23-in-detail/">BaselOne 2023</a> keynote: <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/81N6CqQ2wOA?rel=0&vq=highres" allowfullscreen></iframe> </div> </p>LLama2.java: LLM integration with A 100% Pure Java file--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/llama2_java_llm_integration_with2024-05-13T00:44:51Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #294 <a href="https://airhacks.fm">airhacks.fm</a> episode with Alfonso Peterssen (<a href="https://twitter.com/TheMukel">@TheMukel</a>) about: <blockquote itemprop="description"> Pure Java LLM (LLama2-like) Inference with <a href="https://github.com/mukel/llama2.java">llama2.java</a> </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_294">download.</a> <p> Also checkout llama2.java in action: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/71t5vjSbfsI?rel=0&vq=highres" allowfullscreen></iframe> </div> </article>Serverless Java with Quarkus, Parallel Streams, and Epsilon GC--122nd airhacks.tvhttps://adambien.blog/roller/abien/entry/serverless_java_with_quarkus_parallel2024-05-07T15:42:09ZThe 2024.5 / 122nd edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>History of airhacks.tv and airhacks.com workshops</li> <li>Migrating JAX-RS to serverless using Quarkus: Quarkus translates JSON HTTP events to JAX-RS invocations</li> <li>Difference between Quarkus and Micronaut: Build-time deployment and extensions in Quarkus</li> <li>Using Lambda for load balancing in front of backend cloud services</li> <li>Java performance and energy efficiency compared to other languages based on a study</li> <li>Parallel streams and CompletableFuture for optimizing access to DynamoDB and S3</li> <li>Purpose of Serializable marker interface in Java</li> <li>Using Epsilon GC (no-op garbage collector) in Java for serverless</li> <li>Comparing Java EE and Spring performance from 8 years ago</li> </ol> <div class="screencast"> <iframe src="https://www.youtube.com/embed/_MOFVrX1CEk?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Serverless Java, Lambda Load Balancer, Serializable--Questions for 122st airhacks.tvhttps://adambien.blog/roller/abien/entry/serverless_java_lambda_load_balancer2024-05-06T00:38:09ZQuestions and topics for the 2024.5 / 122nd edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>Serverless: Quarkus vs. plain Java [from: <a href="https://discord.gg/airhacks">https://discord.gg/airhacks</a>]</li> <li>Serverless: Java vs. Python [from: <a href="https://discord.gg/airhacks">https://discord.gg/airhacks</a>]</li> <li>Lambda as Load Balancer?</li> <li>Parallel execution without reactive frameworks</li> <li>The purpose of Serializable interface</li> <li>How to learn Quarkus [video: <a href="https://youtu.be/H7O7mIJCLFY">https://youtu.be/H7O7mIJCLFY</a>]</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/39f104488136a52d16221a310f4581d1">https://gist.github.com/AdamBien/39f104488136a52d16221a310f4581d1</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p>How Kotlin Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_kotlin_happened_airhacks_fm2024-05-05T14:49:27Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #293 <a href="https://airhacks.fm">airhacks.fm</a> episode with Anton Arhipov (<a href="https://twitter.com/antonarhipov">@antonarhipov</a>) about: <blockquote itemprop="description"> the evolution of the Kotlin programming language </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_293">download.</a> </article>How Azul Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_azul_happened_airhacks_fm2024-04-28T11:36:14Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #292 <a href="https://airhacks.fm">airhacks.fm</a> episode with Gil Tene (<a href="https://twitter.com/giltene">@giltene</a>) about: <blockquote itemprop="description"> building Java hardware and how Azul happened </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_292">download.</a> </article>Pure Java AI--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/pure_java_ai_airhacks_fm2024-04-20T11:27:45Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #291 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dr. Zoran Sevarac (<a href="https://twitter.com/zsevarac">@zsevarac</a>) about: <blockquote itemprop="description"> full-stack Java AI with DeepNetts and GPU acceleration </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_291">download.</a> </article>How to Quickly Switch Between JDKs Without Toolshttps://adambien.blog/roller/abien/entry/how_to_quickly_switch_between2024-04-18T14:13:52ZYou can quickly switch between JDKs with two aliases (tested on MacOS): <p> <code> alias j8='export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home;javaPATH' alias javaPATH='export PATH=$JAVA_HOME/bin:$PATH' </code> </p> <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/x_CdVUI0a4g?rel=0&vq=highres" allowfullscreen></iframe> </div> </p> <p> You can switch to Java 8 by running <code>j8</code> in your terminal. (Quickly switching to Java 8 is especially useful for code archealogists and historians.) </p>How OpenRewrite Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_openrewrite_happened_airhacks_fm2024-04-14T10:58:18Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #290 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jonathan Schneider (<a href="https://twitter.com/jon_k_schneider">@jon_k_schneider</a>) about: <blockquote itemprop="description"> Java, Netflix, large-scale refactoring and OpenRewrite </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_290">download.</a> </article>bld vs. Apache Maven--Or Pure Java vs. XMLhttps://adambien.blog/roller/abien/entry/bld_vs_apache_maven_or2024-04-12T05:38:21Z<p>A MicroProfile / Jakarta EE Apache Maven <a href="https://github.com/AdamBien/javaee8-essentials-archetype/blob/master/src/main/resources/archetype-resources/pom.xml">pom.xml</a> is 31 lines of code or less. </p> <p>A Maven <a href="https://github.com/AdamBien/java-plain/blob/main/pom.xml">configuration</a> for a simple Java SE project is twice as long.</p> In this screencast I'm comparing Apache Maven to <a href="https://rife2.com/bld">bld</a> ("<a href="https://adambien.blog/roller/abien/entry/bld_the_hypersonic_java_build">bld: The Hypersonic Java Build Tool</a>"): <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/Ff3mUzKw7LU?rel=0&vq=highres" allowfullscreen></iframe> </div> </p> <p> Also checkout the <a href="https://airhacks.fm">airhacks.fm</a> podcast: <a href="https://airhacks.fm/#episode_284">"No Dependencies--Or How Rife 2 and Bld Happened"</a> </p>bld: The Hypersonic Java Build Toolhttps://adambien.blog/roller/abien/entry/bld_the_hypersonic_java_build2024-04-11T06:31:08ZJava 22 introduced the <a href="https://openjdk.org/jeps/458">JEP 458 "Launch Multi-File Source Code Programs"</a>. This allows you to create CLI applications and automation scripts in no time. <p> <a href="https://rife2.com/bld">bld</a> is a pure Java build tool that uses Java as the configuration: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/gpuuetZqe8U?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> Also checkout the <a href="https://airhacks.fm">airhacks.fm</a> podcast episode: <a href="https://airhacks.fm/#episode_284">"No Dependencies--Or How Rife 2 and Bld Happened"</a> with <a href="https://uwyn.com">Geert Bevin</a>, the creator of <a href="https://rife2.com/bld">bld</a>. </p>Spring / Summer 2024 Conferences, Events and Workshopshttps://adambien.blog/roller/abien/entry/spring_summer_2024_conferences_events2024-04-09T14:40:31Z<ol> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> MIXER learning festival: <span itemprop="name">Productivity, Fun, Security & Cost-savings with Serverless Java</span> <div> <span itemprop="description">workshop</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">MIXER learning festival</span> <span itemprop="address" itemtype="http://schema.org/Text">Organica building in Ostrava</span> </span> <span itemprop="startDate">16 Apr 2024</span> </div> <meta itemprop="endDate" content="16 Apr 2024"> <a href="https://skillbill.tietoevry.com/skill_bill/elevate-your-aws-game-with-high-speed-serverless-solutions/" itemprop="url">https://skillbill.tietoevry.com/skill_bill/elevate-your-aws-game-with-high-speed-serverless-solutions/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Meetup: <span itemprop="name">Building Serverless Java Apps with Serverless Generative AI on AWS</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">Meetup</span> <span itemprop="address" itemtype="http://schema.org/Text">Organica building in Ostrava</span> </span> <span itemprop="startDate">16 Apr 2024</span> </div> <meta itemprop="endDate" content="16 Apr 2024"> <a href="https://www.digital-futures.eu/meetups/buildig-serverless-java-apps-with-serverless-generative-ai-on-aws-with-adam-bien/" itemprop="url">https://www.digital-futures.eu/meetups/buildig-serverless-java-apps-with-serverless-generative-ai-on-aws-with-adam-bien/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Digital Crafts Day: <span itemprop="name">Cloud Native Explained--Or What Is Exactly To Do?</span> <div> <span itemprop="description">keynote</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">Digital Crafts Day</span> <span itemprop="address" itemtype="http://schema.org/Text">weiden</span> </span> <span itemprop="startDate">19 Apr 2024</span> </div> <meta itemprop="endDate" content="19 Apr 2024"> <a href="https://www.dc-nordoberpfalz.de/DigitalCraftsDay/2024" itemprop="url">https://www.dc-nordoberpfalz.de/DigitalCraftsDay/2024</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JAX Conference: <span itemprop="name">EJB Developer? Dann aber auch Enterprise-Serverless-Java-AWS-Lambda-Experte</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">JAX Conference</span> <span itemprop="address" itemtype="http://schema.org/Text">Mainz</span> </span> <span itemprop="startDate">24 Apr 2024</span> </div> <meta itemprop="endDate" content="24 Apr 2024"> <a href="https://jax.de/core-java-jvm-languages/ejb-serverless-aws-lambda-java-experte/" itemprop="url">https://jax.de/core-java-jvm-languages/ejb-serverless-aws-lambda-java-experte/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JAX Conference: <span itemprop="name">YAML-less, Config-less, Boilerplate-less, Serverless Enterprise Java #slideless</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">JAX Conference</span> <span itemprop="address" itemtype="http://schema.org/Text">Mainz</span> </span> <span itemprop="startDate">24 Apr 2024</span> </div> <meta itemprop="endDate" content="24 Apr 2024"> <a href="https://jax.de/core-java-jvm-languages/yaml-less-configless-serverless-enterprise-java/" itemprop="url">https://jax.de/core-java-jvm-languages/yaml-less-configless-serverless-enterprise-java/</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JCON Europe: <span itemprop="name">Serverless Java #slideless</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">JCON Europe</span> <span itemprop="address" itemtype="http://schema.org/Text">cologne</span> </span> <span itemprop="startDate">14th Mai 2024</span> </div> <meta itemprop="endDate" content="14th Mai 2024"> <a href="https://2024.europe.jcon.one/schedule" itemprop="url">https://2024.europe.jcon.one/schedule</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> geecon: <span itemprop="name">Containerless, Bloatless, YAML-less, Serverless Java #slideless</span> <div> <span itemprop="description">conference session</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">geecon</span> <span itemprop="address" itemtype="http://schema.org/Text">krakow</span> </span> <span itemprop="startDate">16 Mai 2024</span> </div> <meta itemprop="endDate" content="16 Mai 2024"> <a href="https://2024.geecon.org/speakers/info.html?id=894" itemprop="url">https://2024.geecon.org/speakers/info.html?id=894</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> University of Regensburg: <span itemprop="name">Java Bootstrap</span> <div> <span itemprop="description">JUG event</span> <span itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="name">University of Regensburg</span> <span itemprop="address" itemtype="http://schema.org/Text">regensburg</span> </span> <span itemprop="startDate">19 June 2024</span> </div> <meta itemprop="endDate" content="19 June 2024"> <a href="TBD" itemprop="url">TBD</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name">Persistence Patterns for Serverless Java on AWS</span>[online event] <div> <span itemprop="description">airhacks.live workshop</span> <span itemprop="startDate">11 July 2024</span> </div> <meta itemprop="endDate" content="11 July 2024"> <a href="https://airhacks.live" itemprop="url">https://airhacks.live</a> </li> <li itemscope itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name">Serverless Generative AI with Java on AWS</span>[online event] <div> <span itemprop="description">airhacks.live workshop</span> <span itemprop="startDate">25th July 2024</span> </div> <meta itemprop="endDate" content="25th July 2024"> <a href="https://airhacks.live" itemprop="url">https://airhacks.live</a> </li> </ol> emprop="url">https://airhacks.live</a> </li> </ol> ttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name">Serverless Generative AI with Java on AWS</span>[online event] <div> <span itemprop="description">airhacks.live workshop</span> <span itemprop="startDate">25th July 2024</span> </div> <meta itemprop="endDate" content="25th July 2024"> <a href="https://airhacks.live" itemprop="url">https://airhacks.live</a> </li> </ol>Java 22, System Tests, Applets, 500 Java Shorts--Questions for 121st airhacks.tvhttps://adambien.blog/roller/abien/entry/java_22_system_tests_applets2024-04-08T11:03:37ZQuestions and topics for the 2024.4 / 121st edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>&gt; 500 Java Shorts: <a href="https://www.youtube.com/bienadam/shorts">youtube.com/bienadam/shorts</a></li> <li>How to System Test Jakarta EE / MicroProfile applications?</li> <li>Applets, WASM, and PWAs</li> <li>How far you can get without big frameworks</li> <li>...only Java 22 can do that</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/c5193c88f02250bba0b2995b567228c7">https://gist.github.com/AdamBien/c5193c88f02250bba0b2995b567228c7</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p>Underscore, Pattern Matching, Java LTS And When Previews Are Stable--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/underscore_pattern_matching_java_lts2024-04-08T01:41:34Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #289 <a href="https://airhacks.fm">airhacks.fm</a> episode with Nicolai Parlog (<a href="https://twitter.com/nipafx">@nipafx</a>) about: <blockquote itemprop="description"> underscores, deconstruction, pattern matching, and minimalistic build tools </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_289">download.</a> </article>Integrating AI with Java: Quarkus and Langchain4j--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/integrating_ai_with_java_quarkus2024-03-31T13:39:32Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #288 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dimitris Andreadis (<a href="https://twitter.com/dandreadis">@dandreadis</a>) about: <blockquote itemprop="description"> LangChain4j, Quarkus, Enterprise Java and LLMs </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_288">download.</a> </article>How Linkblog Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_linkblog_happened_airhacks_fm2024-03-23T13:12:31Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #287 <a href="https://airhacks.fm">airhacks.fm</a> episode with Erik C. Thauvin (<a href="https://twitter.com/ethauvin">@ethauvin</a>) about: <blockquote itemprop="description"> building "what you needed" with Java and the road to linkblog </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_287">download.</a> </article>A Better JNI: Project Panama--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_better_jni_project_panama2024-03-18T05:18:07Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #286 <a href="https://airhacks.fm">airhacks.fm</a> episode with Paul Sandoz (<a href="https://twitter.com/paulsandoz">@paulsandoz</a>) about: <blockquote itemprop="description"> the differences between Project Panama and JNI, Java's GPU optimizations and Code Reflection </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_286">download.</a> </article>How LangChain4j Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_langchain4j_happened_airhacks_fm2024-03-13T04:31:43Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #285 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dmytro Liubarskyi (<a href="https://twitter.com/langchain4j">@langchain4j</a>) about: <blockquote itemprop="description"> the road to langchain4j, LLMs integration with Java and Quarkus </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_285">download.</a> </article>Framework-less,Real World Java EE (Patterns) in 2024, VSCode and Java, Kubernetes Platform, Session Management--Questions for 120th airhacks.tvhttps://adambien.blog/roller/abien/entry/real_world_java_ee_patterns82024-03-04T13:28:29Z<a href="https://gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c">Questions and topics</a> for the 2024.3 / 120th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>Why do you waste your time/energy by using Vscode instead of IntelliJ IDEA?</li> <li>Is Java EE falling out of favour?</li> <li>Real World Java EE Patterns-Rethinking Best Practices in 2024</li> <li>Thoughts about the Kubernetes "engine"</li> <li>How far you can get without big frameworks in professional Java Enterprise?</li> <li>Time machine (<a href="https://adambien.blog/roller/abien/entry/javaone_afterglow_high_performance_java">Nov 03, 2015</a>): <ol> <li>How do you compare OOP with Functional programming and increasing trend with Functional ?</li> <li>Database access in a SaaS-Environment (JavaEE). One database per user. Best way to add dynamically database conf/connections for new users?</li> <li>Recommendations to ensure the high-performance & high-availability in Java EE applications?</li> <li>SOAP and duplicated namespaces after server upgrade</li> <li>REST with proxies and JSON over DTOs</li> <li>A beginners guide to application servers</li> <li>How to separate Control from Boundary on a real world example</li> <li>How I use Maven release plugin and possible strategies</li> <li>SessionId mechanism between a WebApp and JavaScript client</li> <li>How to kickstart Hazelcast in Java EE</li> <li>My view on OOP and trending functional languages. From JavaOne Airhacks BoF</li> <li>Database access in a SaaS-Environment (JavaEE). One database per user. Best way to add dynamically database conf/connections for new users? JavaOne Airhacks BoF</li> <li>Mixing Primefaces with various JavaScript frameworks. From Effective Java EE comment</li> </ol> </li> </ol> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c">https://gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>No Dependencies--Or How Rife 2 and Bld Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/no_dependencies_or_how_rife2024-03-04T03:57:45Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #284 <a href="https://airhacks.fm">airhacks.fm</a> episode with Geert Bevin (<a href="https://twitter.com/gbevin">@gbevin</a>) about: <blockquote itemprop="description"> the "No Dependencies" approach, Java templates, bidirectional templates in Rife, the Bld build tool, Rife 2 web framework, Java's productivity, Kotlin and more. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_284">download.</a> </article>From Hexagonal Architectures to Data Oriented Programming--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_hexagonal_architectures_to_data2024-02-26T02:43:33Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #283 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jose Paumard (<a href="https://twitter.com/JosePaumard">@JosePaumard</a>) about: <blockquote itemprop="description"> the cost of changing code, hexagonal architecture, decoupling, and Object Oriented Programming vs Data Oriented Programming in Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_283">download.</a> </article>TornadoVM, Paravox.ai: Java, AI, LLMs and Hardware Acceleration--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/tornadovm_paravox_ai_java_ai2024-02-19T03:48:05Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #281 <a href="https://airhacks.fm">airhacks.fm</a> episode with Juan Fumero (<a href="https://twitter.com/snatverk">@snatverk</a>) about: <blockquote itemprop="description"> Integrating LLVMs running on accelerated hardware with Java and TornadoVMs and the Java / AI startup: <a href="https://paravox.ai">paravox.ai</a></blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_281">download.</a> </article>Java and eBPF--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_and_ebpf_airhacks_fm2024-02-11T20:12:12Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #281 <a href="https://airhacks.fm">airhacks.fm</a> episode with Johannes Bechberger (<a href="https://twitter.com/parttimen3rd">@parttimen3rd</a>) about: <blockquote itemprop="description"> Developing eBPF programs with Java and migrating Python tooling to Java with Project Panama </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_281">download.</a> </article>OIDC, WASM, Java as Windows Service, Secrets Management, Authentication, Eclipse Store, Event Bridge--119th airhacks.tvhttps://adambien.blog/roller/abien/entry/oidc_wasm_java_as_windows2024-02-08T13:45:59ZThe 2024.2 / 119th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <ol> <li>Authentication with Quarkus using OpenID Connect</li> <li>The complexity of OpenID Connect</li> <li>Proposing new Java features</li> <li>Comparing Quarkus with Open Liberty and Helidon</li> <li>WASM and Java isolation techniques</li> <li>Running Java programs as Windows services</li> <li>Persisting data with Eclipse Microstream</li> <li>Microstream vs. relational databases</li> <li>Tools for generating architecture diagrams</li> <li>Clustering, Consistency and Scalability</li> <li>Managing secrets on AWS</li> <li>Events routing vs data streaming on AWS</li> </ol> <p> Discussed technologies: </p> <p> Quarkus, Open Liberty, Helidon, Eclipse MicroProfile, Tanuki, OpenID Connect, OAuth, AWS CodeArtifact, AWS EventBridge, AWS Kinesis, HashiCorp Vault, DynamoDB, S3, Postgres, Keycloak, Cognito, Microstream, Eclipse Store, DrawIO, MagicDraw, PlantUML, yUML, Lucidcharts </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/uISNQ9yOEM0?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c">gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>WASM, Java as Windows Service, Uncanny Valley, Secrets Management, Authentication, Staging--Questions for 119th airhacks.tvhttps://adambien.blog/roller/abien/entry/wasm_java_as_windows_service2024-02-05T14:26:48Z<a href="https://gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8">Questions and topics</a> for the 119th <a href="https://airhacks.tv">airhacks.tv</a>: <ol> <li>WASM vs. Java restrictions and isolation</li> <li>Java as Windows Service</li> <li>How to propose new Java features</li> <li>How to draw architectural diagrams--the uncanny valley</li> <li>How to deal with secrets in the cloud (<cite>...People tend to feel comfortable with some cloud provided vault that gives you environment variables that I believe is quite promiscuous as anybody can issue an env command and see them all...</cite>) from: <a href="https://discord.gg/airhacks">discord.gg/airhacks</a> <li>The time machine: relevant questions from the 19th <a href="airhacks.tv">airhacks.tv</a> (2015): <blockquote>Practices for securing 3rd-party API credentials, Is it really needed for a professional java developer to read a whole book on IDE? Or a beginner to spend so much time to understand an IDE rather than focusing on the language?, Can be something 6.4x more productive than Java EE?, How to implement authentication in Java EE applications?, ResourceBundle injection in Java EE, What are JavaBeans, Enterprise JavaBeans, ManagedBeans and BackingBeans?, Staging Java EE applications with docker, Pros and Cons of EJBs and clustering, Encapsulation violation: with or without DTOs, Thoughts on TDD</blockquote></li> </li> </ol> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8">gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>Virtual Threads and Scoped Values with Jose--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/virtual_threads_and_scoped_values2024-02-04T19:48:35Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #280 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jose Paumard (<a href="https://twitter.com/JosePaumard">@JosePaumard</a>) about: <blockquote itemprop="description"> Project Loom, virtual threads, structured concurrency, scope values, debugging reactive code, replacing thread locals, running same code in serverless or threaded environments </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_280">download.</a> </article>Java, Continuations and How Rife Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_continuations_and_how_rife2024-01-29T04:23:42Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #279 <a href="https://airhacks.fm">airhacks.fm</a> episode with Geert Bevin (<a href="https://twitter.com/gbevin">@gbevin</a>) about: <blockquote itemprop="description"> creating the Rife web framework with continuations in Java, refactoring to Java 17 and Java's productivity </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_279">download.</a> </article>First Events and Conferences in 2024https://adambien.blog/roller/abien/entry/first_events_and_conferences_in2024-01-22T06:18:06Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Voxxed Days CERN: <span itemprop="name"><!---->Serverless Java #slideless<!----></span> <div> <span itemprop="description"><!---->a nearly slideless session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Voxxed Days CERN<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->CERN Geneva<!----></span> </span> <span itemprop="startDate"><!---->23 Jan 2024<!----></span> </div> <meta itemprop="endDate" content="23 Jan 2024"> <a itemprop="url" href="https://cern.voxxeddays.com/talk/?id=5803"><!---->https://cern.voxxeddays.com/talk/?id=5803<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> OOP conference : <span itemprop="name"><!---->Enterprise Serverless Monoliths &#x2013; Or Stay On-Premise<!----></span> <div> <span itemprop="description"><!---->a nearly slideless session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->OOP conference <!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Munich<!----></span> </span> <span itemprop="startDate"><!---->1 Feb 2024<!----></span> </div> <meta itemprop="endDate" content="1 Feb 2024"> <a itemprop="url" href="https://www.oop-konferenz.de/oop-2024/programm/konferenzprogramm#item-6686"><!---->https://www.oop-konferenz.de/oop-2024/programm/konferenzprogramm#item-6686<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> live streaming Q &amp; A show: <span itemprop="name"><!---->119th airhacks.tv Q &amp; A live streaming<!----></span> [online event] <div> <span itemprop="description"><!---->I'm answering questions live and from https://gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8<!----></span> <span itemprop="startDate"><!---->5 Feb 2024<!----></span> </div> <meta itemprop="endDate" content="5 Feb 2024"> <a itemprop="url" href="https://www.meetup.com/airhacks/events/298707415/"><!---->https://www.meetup.com/airhacks/events/298707415/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JAX conference: <span itemprop="name"><!---->EJB Developer? Dann aber auch Enterprise-Serverless-Java-AWS-Lambda-Experte<!----></span> <div> <span itemprop="description"><!---->a nearly slideless session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JAX conference<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Rheingoldhalle Mainz<!----></span> </span> <span itemprop="startDate"><!---->24 Apr 2024<!----></span> </div> <meta itemprop="endDate" content="24 Apr 2024"> <a itemprop="url" href="https://jax.de/core-java-jvm-languages/ejb-serverless-aws-lambda-java-experte/"><!---->https://jax.de/core-java-jvm-languages/ejb-serverless-aws-lambda-java-experte/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JAX Conference: <span itemprop="name"><!---->YAML-less, Config-less, Boilerplate-less, Serverless Enterprise Java #slideless<!----></span> <div> <span itemprop="description"><!---->a nearly slideless session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JAX Conference<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Rheingoldhalle Mainz<!----></span> </span> <span itemprop="startDate"><!---->24 Apr 2024<!----></span> </div> <meta itemprop="endDate" content="24 Apr 2024"> <a itemprop="url" href="https://jax.de/core-java-jvm-languages/yaml-less-configless-serverless-enterprise-java/"><!---->https://jax.de/core-java-jvm-languages/yaml-less-configless-serverless-enterprise-java/<!----></a> </li> <!----> </ol>Java at Azul: The Interesting Features--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_at_azul_the_interesting2024-01-21T18:11:33Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #278 <a href="https://airhacks.fm">airhacks.fm</a> episode with Gerrit Grunwald (<a href="https://twitter.com/hansolo_">@hansolo_</a>) about: <blockquote itemprop="description"> the state of Java desktop applications and the interesting features of Azul's Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_278">download.</a> </article>Project Babylon--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/project_babylon_airhacks_fm_podcast2024-01-15T04:13:24Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #277 <a href="https://airhacks.fm">airhacks.fm</a> episode with Paul Sandoz (<a href="https://twitter.com/paulsandoz">@paulsandoz</a>) about: <blockquote itemprop="description"> Code Reflection, Code Model, JNI 2.0 or integrating Java with GPUs using Project Babylon </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_277">download.</a> </article>Java and Gaming, Optionals, Paper Engine vs. Spigot, ESBs--118th airhacks.tvhttps://adambien.blog/roller/abien/entry/java_and_gaming_optionals_paper2024-01-08T13:34:34Z<a href="https://gist.github.com/AdamBien/732d40904a07286deeb2e90e6df9014c">Questions and topics</a> for the 118th <a href="https://airhacks.tv">airhacks.tv</a>: <ol> <li>Is Java good for game development?</li> <li>Thoughts on Optional</li> <li>Paper Engine vs. Spigot</li> <li>Time Machine: 100 episodes back: <blockquote>How to replace the Java EE Principal?,NPE issue in afterburner.fx?,Java EE in a movie streaming startup?,What is InjectionPoint and Produces?,Opinion about dukescript.com,MVC vs. ECB, data model vs. view model and what is a component?,How to build your custom server?,Pros and Cons of ESBs and the relation to Java EE,Does Java FX follow the Passive View MVP Pattern?,Java Mission Control and webapps trouble shooting,EJB vs. CDI,Exposing public and private JAX-RS APIs,Reactive programming and Java EE,Microservice integration with or without a Service Bus</blockquote></li> <li>Thoughts on JSF, JSPs and Java</li> </ol> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/732d40904a07286deeb2e90e6df9014c">gist.github.com/AdamBien/732d40904a07286deeb2e90e6df9014c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>A Compiler Nerd Builds a Tiny Profiler--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_compiler_nerd_builds_a2024-01-07T18:47:52Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #276 <a href="https://airhacks.fm">airhacks.fm</a> episode with Johannes Bechberger (<a href="https://twitter.com/parttimen3rd">@parttimen3rd</a>) about: <blockquote itemprop="description"> compiler love, openJDK work, SAP machine, flame graphs and building profilers </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_276">download.</a> </article>A Helidon Conversation--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_helidon_conversation_airhacks_fm2023-12-29T07:15:32Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #275 <a href="https://airhacks.fm">airhacks.fm</a> episode with David Kral (<a href="https://twitter.com/VerdentDK">@VerdentDK</a>) about: <blockquote itemprop="description"> Helidon, reactive programming, "no dependencies" and enjoying security </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_275">download.</a> </article>Work Smart, Take Responsibility and Xmas in Brazil--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/work_smart_take_responsibility_and2023-12-23T08:30:43Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #274 <a href="https://airhacks.fm">airhacks.fm</a> episode with Bruno Souza (<a href="https://twitter.com/brjavaman">@brjavaman</a>) about: <blockquote itemprop="description"> working hard vs. smart, Java for task automation, how to make projects successful, and xmas in Brazil </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_274">download.</a> </article>The Long Road to Java and Kotlin--airhacks.fm Podcasthttps://adambien.blog/roller/abien/entry/the_long_road_to_java2023-12-17T19:59:55Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #273 <a href="https://airhacks.fm">airhacks.fm</a> episode with Anton Arhipov (<a href="https://twitter.com/antonarhipov">@antonarhipov</a>) about: <blockquote itemprop="description"> competitive swimming, software engineering, Java and Kotlin </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_273">download.</a> </article>Minecraft Influenced JSON-B Design--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/minecraft_influenced_json_b_design2023-12-10T15:23:40Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #272 <a href="https://airhacks.fm">airhacks.fm</a> episode with David Kral (<a href="https://twitter.com/VerdentDK">@VerdentDK</a>) about: <blockquote itemprop="description"> Software Design, premature optimizations, Helidon and JSON-B and performance </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_272">download.</a> </article>From Image Recognition to CoffeCast--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_image_recognition_to_coffecast2023-12-03T12:36:18Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #271 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jose Paumard (<a href="https://twitter.com/JosePaumard">@JosePaumard</a>) about: <blockquote itemprop="description"> high performance image recognition, super computers, AI confidence and Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_271">download.</a> </article>Lambda Monoliths, Hypermedia Systems, Java Template Engine, Snapstart and CraC--117th airhacks.tvhttps://adambien.blog/roller/abien/entry/lambda_monoliths_hypermedia_systems_java2023-12-03T12:14:27Z<a href="https://gist.github.com/AdamBien/24c8c38937cfa43c25676076c231896c">Questions and topics</a> for the 117th <a href="https://airhacks.tv">airhacks.tv</a>: <ol> <li>Java monoliths as Lambda</li> <li>Cost Driven Architectures challenges</li> <li>Hypermedia Systems</li> <li>Java Template Engine</li> <li>Lambda Snapstart Experiences</li> <li>Per user Locale scope and CDI</li> <li>Service service = new ServiceImpl()</li> <li>Time travelling or the 17th airhacks.tv: <a href="https://www.adam-bien.com/roller/abien/entry/classpath_conflicts_50mb_wars_scaling">50 MB WARs, Kafka, threading and akka</a></li> </ol> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/24c8c38937cfa43c25676076c231896c">gist.github.com/AdamBien/24c8c38937cfa43c25676076c231896c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>JUG Vienna, Ya!vaConf, airhacks.tv and Airhacks Workshopshttps://adambien.blog/roller/abien/entry/jug_vienna_yalvoconf_and_airhacks2023-12-02T02:49:42Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Java User Group (JUG) Vienna: <span itemprop="name"><!---->Reasonable Cloud Practices with Java on AWS<!----></span> <div> <span itemprop="description"><!---->session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Java User Group (JUG) Vienna<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->vienna<!----></span> </span> <span itemprop="startDate"><!---->4 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="4 Dec 2023"> <a itemprop="url" href="https://www.meetup.com/java-vienna/events/296033339/"><!---->https://www.meetup.com/java-vienna/events/296033339/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.tv: <span itemprop="name"><!---->117th airhacks.tv Questions and Answers<!----></span> [online event] <div> <span itemprop="description"><!---->live Q &amp; A stream<!----></span> <span itemprop="startDate"><!---->5 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="5 Dec 2023"> <a itemprop="url" href="https://www.youtube.com/@bienadam/streams"><!---->https://www.youtube.com/@bienadam/streams<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!---->AWS Security, Authentication and Authorization for Java<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->7 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="7 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> Ya!vaConf: <span itemprop="name"><!---->Cloudy Patterns for Enterprise Java<!----></span> [online event] <div> <span itemprop="description"><!---->session<!----></span> <span itemprop="startDate"><!---->8 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="8 Dec 2023"> <a itemprop="url" href="https://yavaconf.com/#agenda-section"><!---->https://yavaconf.com/#agenda-section<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!----> Serverless Java Patterns and Best Practices on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->14 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="14 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> </ol>Not Injectable Principals, Quarkus, MicroProfile and Smallrye--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/not_injectable_principals_quarkus_microprofile2023-11-26T13:44:20Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #270 <a href="https://airhacks.fm">airhacks.fm</a> episode with Martin Stefanko (<a href="https://twitter.com/xstefank">@xstefank</a>) about: <blockquote itemprop="description"> promotions, the definition of titles, the importance of MicroProfile and standards, Quarkus and SmallRye. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_270">download.</a> </article>Why Kotlin is Better Than Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/why_kotlin_is_better_than2023-11-19T15:31:32Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #269 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ingo Kegel (<a href="https://twitter.com/IngoKegel">@IngoKegel</a>) about: <blockquote itemprop="description"> Java vs. Kotlin and Kotlin's "killer" features </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_269">download.</a> </article>How Han Solo wrote SteelSeries--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_han_solo_wrote_steelseries2023-11-12T19:37:58Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #268 <a href="https://airhacks.fm">airhacks.fm</a> episode with Gerrit Grunwald (<a href="https://twitter.com/hansolo_">@hansolo_</a>) about: <blockquote itemprop="description"> Java portability, user interfaces, Sun Microsystems, Java FX, Java Swing and building pixel perfect UI in Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_268">download.</a> </article>Late 2023 JUGs, Workshops and Conferenceshttps://adambien.blog/roller/abien/entry/late_2023_jugs_workshops_and2023-11-07T14:22:53Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> w-jax: <span itemprop="name"><!---->J2EE, Java EE, Jakarta EE ...und was machen wir jetzt?<!----></span> <div> <span itemprop="description"><!---->session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->w-jax<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->munich conference<!----></span> </span> <span itemprop="startDate"><!---->8 Nov 2023<!----></span> </div> <meta itemprop="endDate" content="8 Nov 2023"> <a itemprop="url" href="https://jax.de/serverside-enterprise-java/java-ee-serverless/"><!---->https://jax.de/serverside-enterprise-java/java-ee-serverless/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Java User Group (JUG) Vienna: <span itemprop="name"><!---->Reasonable Cloud Practices with Java on AWS<!----></span> <div> <span itemprop="description"><!---->session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Java User Group (JUG) Vienna<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->vienna<!----></span> </span> <span itemprop="startDate"><!---->4 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="4 Dec 2023"> <a itemprop="url" href="https://www.meetup.com/java-vienna/events/296033339/"><!---->https://www.meetup.com/java-vienna/events/296033339/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!---->AWS Security, Authentication and Authorization for Java<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->7 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="7 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!----> Serverless Java Patterns and Best Practices on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->14 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="14 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> </ol>M2M Authentication, Quarkus and CraC, OIDC--or Questions for the 116th airhacks.tvhttps://adambien.blog/roller/abien/entry/m2m_authentication_quarkus_and_crac2023-11-06T12:38:28Z<a href="https://gist.github.com/AdamBien/31e84638e4a97a3ebb4074dc3b8118bb">Questions and topics</a> for the 116th airhacks.tv: <ol> <li>conference news and updates</li> <li>Quarkus and CraC (from: <a href="https://discord.gg/airhacks">https://discord.gg/airhacks</a> by jarry_dk)</li> <li>Machine to Machine authentication on AWS</li> <li>Access to external resources to AWS</li> <li>Documentation with antora</li> <li>Time machine: "JavaScript and MVVM, cross concern and technical BCE, DTOs and REST, unit testing servers, service to service testing, sending messages to a phone,"</li> </ol> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/31e84638e4a97a3ebb4074dc3b8118bb">gist.github.com/AdamBien/31e84638e4a97a3ebb4074dc3b8118bb</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>Money API, Virtual Threads, Jakarta Data, Lambdas, Dynamo--115th airhacks.tvhttps://adambien.blog/roller/abien/entry/money_api_virtual_threads_jakarta2023-11-06T12:24:49ZThe 2023.10 / 115th edition of airhacks.tv with the following topics: <blockquote> "standard Money API, Authentication, Authorization and JWTs, Virtual Threads and JPA, AWS Lambda and Connection Pooling, thoughts on Jakarta Data, ULIDs, cloud-native, serverless, databases": </blockquote> <div class="screencast"> <iframe src="https://www.youtube.com/embed/gjb2uLeuI40?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Instrumenting, Probing and Asynchronous Profiling--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/instrumenting_probing_and_asynchronous_profiling2023-11-05T14:54:54Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #267 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ingo Kegel (<a href="https://twitter.com/IngoKegel">@IngoKegel</a>) about: <blockquote itemprop="description"> the building blocks of a profiler and the pros and cons of instrumenting and sampling profilers </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_267">download.</a> </article>Java, Microsoft and Software Development with AI--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_microsoft_and_software_development2023-10-31T03:26:59Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #266 <a href="https://airhacks.fm">airhacks.fm</a> episode with Brian Benz (<a href="https://twitter.com/bbenz)">@bbenz)</a>) about: <blockquote itemprop="description"> Java, Jakarta EE on Azure, Kubernetes operators on Azure, open source at Microsoft, GitHub Copilot Chat and software development with AI. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_266">download.</a> </article>How JProfiler Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_jprofiler_happened_airhacks_fm2023-10-22T10:59:12Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #265 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ingo Kegel (<a href="https://twitter.com/IngoKegel">@IngoKegel</a>) about: <blockquote itemprop="description"> Java profilers, design decisions, developer experience and the creation of JProfiler </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_265">download.</a> </article>Profilers, Probing, Sampling and Instrumentation--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/profilers_probing_sampling_and_instrumentation2023-10-15T14:00:19Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #264 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jaroslav Bachorik (<a href="https://twitter.com/yardus">@yardus</a>) about: <blockquote itemprop="description"> probing, instrumentation, sampling, state of the art profilers and high performance messaging </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_264">download.</a> </article>How JAX-RS Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_jax_rs_happened_airhacks2023-10-08T13:15:02Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #263 <a href="https://airhacks.fm">airhacks.fm</a> episode with Paul Sandoz (<a href="https://twitter.com/paulsandoz">@paulsandoz</a>) about: <blockquote itemprop="description"> remote control of manufacturing plants with a cellular phone, developing a VR headset, graphics programming, SOAP, XML and JAX-RS </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_263">download.</a> </article>Devoxx Belgium: Java Patterns and Practices for Serverless Applicationshttps://adambien.blog/roller/abien/entry/devoxx_belgium_java_patterns_and2023-10-06T03:43:47ZAfter <a href="http://adambien.blog/roller/abien/entry/no_dependencies_no_bus_factor">6 years break</a>, I delivered a talk at Devoxx Belgium with the proposed abstract: <blockquote> "Is it possible to migrate Java EE / J2EE monoliths ...to AWS Lambda? How to package an AWS Lambda application efficiently? Relying on Java's superpower: how to reuse IaC / CDK constructs with Java? How to create a self-provisioned serverless application with Java? What is the granularity of a function? What is the difference between a function and a microservice? Are synchronous functions an anti-pattern? How to efficiently structure Java applications' business and IaC code. I will discuss "working" practices and patterns with code and live deployments in this code-focused session. Attendees' questions are highly appreciated!" </blockquote> <p> ...as always the abstract was just a suggestion and I also enjoyed the questions and discussions before (we had a short pre-show :-)), during and after the talk. </p> <p> The talk was recorded and is available on: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/Ou82_yDOcmY?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> All examples were based on: <a href="https://github.com/AdamBien/aws-quarkus-lambda-cdk-plain">https://github.com/AdamBien/aws-quarkus-lambda-cdk-plain</a> </p>Money, Authentication, Formatters, Jakarta Data, Serverless, ULIDs, Events--Or Questions for 115th airhacks.tvhttps://adambien.blog/roller/abien/entry/money_authentication_formatters_jakarta_data2023-10-02T08:27:01Z<a href="https://gist.github.com/AdamBien/132643f891e116fe0d0e0722f63fb7d5">Questions and topics for the 115th <a href="https://airhacks.tv">airhacks.tv</a> live streamin show: <ol> <li>The airhacks.tv time travelling: <a href="https://adambien.blog/roller/abien/entry/20_years_of_java_mvc">15th airhacks.tv (8 years ago)</a></li> <li>A standard Money and Currency implementation</li> <li>Authorization and authentication with Jakarta EE and Microprofile</li> <li>Virtual Threads and JPA</li> <li>Java Formatters</li> <li>Jakarta Data and BCE</li> <li>PostgreSQL with AWS Lambdas</li> <li>Composite keys and REST API</li> <li>UUIDs vs. ULIDs</li> <li>DocumentDB vs. DynamoDB vs. AuroraV2</li> <li>SQS vs. SNS vs. Kinesis vs. EventBridge</li> </ol> <p> <p>Ask questions during the show via twitter mentioning me: <a href="https://twitter.com/AdamBien" target="_blank">https://twitter.com/AdamBien</a> (@AdamBien),using the hashtag: #airhacks or built-in chat at: <a href="https://airhacks.tv">airhacks.tv</a>. You can join the Q&A session live each first Monday of month, 8 P.M at <a href="https://airhacks.tv">airhacks.tv</a></p> </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/132643f891e116fe0d0e0722f63fb7d5">https://gist.github.com/AdamBien/132643f891e116fe0d0e0722f63fb7d5</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>The IBM Certified Presenter and XML Evangelist--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_ibm_certified_presenter_and2023-10-02T02:31:50Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #262 <a href="https://airhacks.fm">airhacks.fm</a> episode with Brian Benz (<a href="https://twitter.com/bbenz">@bbenz</a>) about: <blockquote itemprop="description"> Java, XML, and the mysterious OpenTech department at Microsoft </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_262">download.</a> </article>JCON Europe Cologne 2023: "Serverless" Is What J2EE Was Meant To Behttps://adambien.blog/roller/abien/entry/jcon_europe_cologne_2023_serverless2023-09-26T11:11:33Z<p> Live from <a href="https://2023.europe.jcon.one">Jcon Europe Cologne 2023</a>, discussing, cloud native, cloud costs, "scale to zero", green IT, productivity and the relation between application servers ...and serverless architectures: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/yu8Mbpv0O5k?rel=0&vq=highres" allowfullscreen></iframe> </div>JAX-RS, OAuth, OpenID Connect (OIDC), Authentication, Authorization and Quarkus--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/jax_rs_oauth_openid_connect2023-09-24T16:57:30Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #261 <a href="https://airhacks.fm">airhacks.fm</a> episode with Sergey Beryozkin (<a href="https://twitter.com/sberyozkin">@sberyozkin</a>) about: <blockquote itemprop="description"> the beginnings of JAX-RS, OAuth, OIDC, Authentication, Authorization and Quarkus </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_261">download.</a> </article>Autumn 2023: Upcoming Java Conferences, Java User Group Events and Online Workshopshttps://adambien.blog/roller/abien/entry/autumn_2023_upcoming_java_conferences2023-09-22T03:03:42Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Silesia JUG: <span itemprop="name"><!---->Serverless Java Patterns, Hacks and Workarounds<!----></span> <div> <span itemprop="description"><!---->Silesia JUG session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Silesia JUG<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Offline Only / Katowice<!----></span> </span> <span itemprop="startDate"><!---->28 Sep 2023<!----></span> </div> <meta itemprop="endDate" content="28 Sep 2023"> <a itemprop="url" href="https://www.meetup.com/silesia-jug/events/296123881/"><!---->https://www.meetup.com/silesia-jug/events/296123881/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Devoxx Conference: <span itemprop="name"><!---->Java Patterns and Practices for Serverless Applications<!----></span> <div> <span itemprop="description"><!---->Conference Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Devoxx Conference<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Antwerp Belgium<!----></span> </span> <span itemprop="startDate"><!---->5 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="5 Oct 2023"> <a itemprop="url" href="https://devoxx.be/2023-schedule/speaker-details/?id=45184"><!---->https://devoxx.be/2023-schedule/speaker-details/?id=45184<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JUG Oberpfalz: <span itemprop="name"><!---->Java Hater&rsquo;s Meetup<!----></span> <div> <span itemprop="description"><!---->JUG Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JUG Oberpfalz<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Weiden<!----></span> </span> <span itemprop="startDate"><!---->11 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="11 Oct 2023"> <a itemprop="url" href="https://www.meetup.com/jug-oberpfalz/events/289601193/"><!---->https://www.meetup.com/jug-oberpfalz/events/289601193/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> EclipseCon: <span itemprop="name"><!---->Building Future-Proof Jakarta EE Applications On-Premise and In The Clouds Adam Bien<!----></span> <div> <span itemprop="description"><!---->Community Day Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->EclipseCon<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Ludwigsburg<!----></span> </span> <span itemprop="startDate"><!---->16 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="16 Oct 2023"> <a itemprop="url" href="https://www.eclipsecon.org/2023/java-community-day"><!---->https://www.eclipsecon.org/2023/java-community-day<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> BaselOne: <span itemprop="name"><!---->Lean, Fast, Productive - Self-Provisioned Serverless Java Runtimes on AWS<!----></span> <div> <span itemprop="description"><!---->Workshop<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->BaselOne<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Basel<!----></span> </span> <span itemprop="startDate"><!---->18 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="18 Oct 2023"> <a itemprop="url" href="https://baselone.ch/speech.html?id=3B2B1C42-AF24-44DE-8EDF-B8E993D6107B"><!---->https://baselone.ch/speech.html?id=3B2B1C42-AF24-44DE-8EDF-B8E993D6107B<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> BaselOne: <span itemprop="name"><!----> Modern Java in the Cloud or OnPrem<!----></span> <div> <span itemprop="description"><!---->Keynote<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->BaselOne<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Basel<!----></span> </span> <span itemprop="startDate"><!---->18 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="18 Oct 2023"> <a itemprop="url" href="https://baselone.ch/speech.html?id=3B2B1C42-AF24-44DE-8EDF-B8E993D6107B"><!---->https://baselone.ch/speech.html?id=3B2B1C42-AF24-44DE-8EDF-B8E993D6107B<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> geecon: <span itemprop="name"><!---->Thinking in Serverless Java (Code)<!----></span> <div> <span itemprop="description"><!---->Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->geecon<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Prague<!----></span> </span> <span itemprop="startDate"><!---->20 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="20 Oct 2023"> <a itemprop="url" href="https://2023.geecon.cz/speakers/?id=861#bio"><!---->https://2023.geecon.cz/speakers/?id=861#bio<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> infoshare DEV: <span itemprop="name"><!---->Katowice: Building Self-Provisioned Runtimes with Serverless Java on AWS<!----></span> <div> <span itemprop="description"><!---->Workshop<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->infoshare DEV<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Katowice<!----></span> </span> <span itemprop="startDate"><!---->24 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="24 Oct 2023"> <a itemprop="url" href="https://dev.infoshare.pl/agenda/#nav-katowice-tab"><!---->https://dev.infoshare.pl/agenda/#nav-katowice-tab<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> infoshare DEV: <span itemprop="name"><!---->Katowice: Why Serverless Enterprise Java Rocks<!----></span> <div> <span itemprop="description"><!---->Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->infoshare DEV<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Katowice<!----></span> </span> <span itemprop="startDate"><!---->24 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="24 Oct 2023"> <a itemprop="url" href="https://dev.infoshare.pl/agenda/#nav-katowice-tab"><!---->https://dev.infoshare.pl/agenda/#nav-katowice-tab<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JDD: <span itemprop="name"><!---->The Best of Java Shorts Show--100 Snippets in 45 Minutes<!----></span> <div> <span itemprop="description"><!---->Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JDD<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Krakow<!----></span> </span> <span itemprop="startDate"><!---->25 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="25 Oct 2023"> <a itemprop="url" href="https://jdd.org.pl/bio_2023/#id=53115"><!---->https://jdd.org.pl/bio_2023/#id=53115<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> infoshare DEV: <span itemprop="name"><!---->Gdynia: Building Self-Provisioned Runtimes with Serverless Java on AWS<!----></span> <div> <span itemprop="description"><!---->Workshop<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->infoshare DEV<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Gdynia<!----></span> </span> <span itemprop="startDate"><!---->26 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="26 Oct 2023"> <a itemprop="url" href="https://dev.infoshare.pl/prelegenci/#nav-gdynia"><!---->https://dev.infoshare.pl/prelegenci/#nav-gdynia<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> infoshare DEV: <span itemprop="name"><!---->Gdynia: Why Serverless Enterprise Java Rocks<!----></span> <div> <span itemprop="description"><!---->Session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->infoshare DEV<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Gdynia<!----></span> </span> <span itemprop="startDate"><!---->26 Oct 2023<!----></span> </div> <meta itemprop="endDate" content="26 Oct 2023"> <a itemprop="url" href="https://dev.infoshare.pl/prelegenci/#nav-gdynia"><!---->https://dev.infoshare.pl/prelegenci/#nav-gdynia<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!---->AWS Security, Authentication and Authorization for Java<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->7 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="7 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live: <span itemprop="name"><!---->Serverless Java Patterns and Best Practices on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshop<!----></span> <span itemprop="startDate"><!---->14 Dec 2023<!----></span> </div> <meta itemprop="endDate" content="14 Dec 2023"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> </ol>How BTrace Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_btrace_happened_airhacks_fm2023-09-17T18:19:10Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #260 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jaroslav Bachorik (<a href="https://twitter.com/yardus">@yardus</a>) about: <blockquote itemprop="description"> Java, NetBeans, Profilers, DTrace and BTrace </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_260">download.</a> </article>How Boundary Control Entity, UML and Components Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_boundary_control_entity_uml2023-09-14T09:41:50Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #259 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ivar Jacobson (<a href="https://twitter.com/ivarjacobson">@ivarjacobson</a>) about: <blockquote itemprop="description"> Component Based Development, Objectory, UML, Rational Unified Process, agile, artificial intelligence and intelligent assistant and how Boundary Control Entity (BCE) happened </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_259">download.</a> </article>Cloud Native CI/CD, Trunk Based Development, Sockets, Cloud Test Stacks, Test Data, XA, Handling Exceptions--Or 114th airhacks.tvhttps://adambien.blog/roller/abien/entry/cloud_native_ci_cd_trunk2023-09-04T11:58:56Z<a href="https://gist.github.com/AdamBien/0088a3d6964ebdae9b59693400747106">Questions and topics</a> for the 114th <a href="https://airhacks.tv">airhacks.tv</a> live stream Questions and Answers: <ol> <li>Implementing Sockets and Java</li> <li>What does your test stack look like on AWS?</li> <li>Does it make any difference cloud vs. on premises?</li> <li>What are you using for load testing?</li> <li>What are you using for end-to-end tests where you simulate users/clients?</li> <li>Do you have experience with Grafana k6 and if yes, what is your experience?</li> <li>And where do you run client simulators, on AWS EC2 instances or on a runner/agent in your pipeline?</li> <li>What is your strategy for setting up test data for end-to-end tests?</li> <li>How do you reset data before you run next test for end-to-end tests? Would you recommend creating VM snapshots and how to do that?</li> <li>Best way to integrate a non xa resource into container managed transactions of stateless EJBs (wildfly)</li> <li>CI/CD on AWS example</li> <li>Experiences with trunk based development</li> <li>Handling persistence (JPA) exceptions</li> <li>RequestScope, long running transactions and JWT</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/0088a3d6964ebdae9b59693400747106">https://gist.github.com/AdamBien/0088a3d6964ebdae9b59693400747106</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>How FlywayDB Happened--airhacks.fm Podcasthttps://adambien.blog/roller/abien/entry/how_flywaydb_happened_airhacks_fm2023-09-03T17:08:45Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #258 <a href="https://airhacks.fm">airhacks.fm</a> episode with Axel Fontaine (<a href="https://twitter.com/axelfontaine">@axelfontaine</a>) about: <blockquote itemprop="description">Continous Delivery, database migrations, the evolution of FlywayDB and the open-source Business</blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_258">download.</a> </article>Why MicroStream is Faster--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/why_microstream_is_faster_airhacks2023-08-27T12:59:36Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #257 <a href="https://airhacks.fm">airhacks.fm</a> episode with Florian Habermann (<a href="https://twitter.com/FHHabermann">@FHHabermann</a>) about: <blockquote itemprop="description"> A conversation with Florian Habermann about Object-relation impedance mismatch, limitations of the Java serialization, and MicroStream </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_257">download.</a> </article>Virtual Threads, Parallel Streams, Concurrency and Parallelism--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/virtual_threads_parallel_streams_concurrency2023-08-20T11:50:29Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #256 <a href="https://airhacks.fm">airhacks.fm</a> episode with Heinz Kabutz (<a href="https://twitter.com/heinzkabutz">@heinzkabutz</a>) about: <blockquote itemprop="description"> Project Loom, Virtual Threads from user perspective, Parallel Streams, ForkJoinPool, Concurrency and Parallelism </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_256">download.</a> </article>A Deeper Dive Into Debugging--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_deeper_dive_into_debugging2023-08-14T17:45:15Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #255 <a href="https://airhacks.fm">airhacks.fm</a> episode with Shai Almog (<a href="https://twitter.com/debugagent">@debugagent</a>) about: <blockquote itemprop="description"> logpoints, watchpoints, tracepoints, breakpoints, time travelling, or effective debugging, logging, testing and clouds </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_255">download.</a> </article>How JavaPolis and Devoxx Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_javapolis_and_devoxx_happened2023-08-08T13:16:02Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #254 <a href="https://airhacks.fm">airhacks.fm</a> episode with Stephan Janssen (<a href="https://twitter.com/Stephan007">@Stephan007</a>) about: <blockquote itemprop="description"> continuous learning for fun, JavaPolis, Devoxx, AI and Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_254">download.</a> </article>Real World BCE, Modularization, Jigsaw, BPMN, Minio Integration, Schema Evolution--Or 113th airhacks.tvhttps://adambien.blog/roller/abien/entry/real_world_bce_modularization_jigsaw2023-08-07T09:14:37Z<a href="https://gist.github.com/AdamBien/d6c474fe8869b2c278ab6dbd4d03afaf">Questions and Topics</a> for the 113th <a href="https://airhacks.tv">airhacks.tv</a> live stream Q and A: <ol> <li>What are you using for modularization of your monolithic Java backend? <a href="https://gist.github.com/kriehzoo">by @kriehzoo</a></li> <li>What is your experience with project jigsaw, do you use it for your projects? <a href="https://gist.github.com/kriehzoo">by @kriehzoo</a></li> <li>Real world BCE article</li> <li>Kogito vs. Camunda <a href="https://gist.github.com/dempile">by @dempile</a></li> <li>Minio integration ideas <a href="https://gist.github.com/dempile">by @dempile</a></li> <li>"time travelling / episode 13: JPA and schema evolution, multi tenancy, deltaspike, picketlink, JSR-375, onion architecture, RPC communication, zero downtime, JDBC configuration, singleton JPA Entity"</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/d6c474fe8869b2c278ab6dbd4d03afaf">gist.github.com/AdamBien/d6c474fe8869b2c278ab6dbd4d03afaf</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Java on Azure and a Nailless Java Champion--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_on_azure_and_a2023-07-30T11:00:15Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #253 <a href="https://airhacks.fm">airhacks.fm</a> episode with Antonio Goncalves (<a href="https://twitter.com/agoncal">@agoncal</a>) about: <blockquote itemprop="description"> run Java on Azure Container Instances, Azure Container Apps, Azure Container Service, Azure VM, Web-App for Container, Azure Bicep, Java EE, Jakarta EE and the relation to serverless, Java, GraalVM, Microsoft and Quarkus </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_253">download.</a> </article>BDD: Bug Driven Development vs. Continuous Observability--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/bdd_bug_driven_development_by2023-07-23T15:17:54Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #252 <a href="https://airhacks.fm">airhacks.fm</a> episode with Roni Dover (<a href="https://twitter.com/doppleware">@doppleware</a>) about: <blockquote itemprop="description"> software, complexity, architecture, development trends, polyglot programming, continuous feedback and digma.ai </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_252">download.</a> </article>From CORBA, over RPC to REST ...and Back?--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_corba_over_rpc_to2023-07-16T05:12:40Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #251 <a href="https://airhacks.fm">airhacks.fm</a> episode with Sergey Beryozkin (<a href="https://twitter.com/sberyozkin">@sberyozkin</a>) about: <blockquote itemprop="description"> CORBA, RPC, SOAP, SOA, IONA, Orbix and Atrix, Apache CXF, Apache Tika and Quarkus </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_251">download.</a> </article>FPGAs, GPUs or Data Science with Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/fpgas_gpus_or_data_science2023-07-10T15:03:48Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #250 <a href="https://airhacks.fm">airhacks.fm</a> episode with Juan Fumero (<a href="https://twitter.com/snatverk">@snatverk</a>) about: <blockquote itemprop="description"> FPGA and GPU accelarated Java, TornadoVM and machine learning with Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_250">download.</a> </article>A Freakonomic Guide to Jakarta EE with a Guardian--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_freakonomic_guide_to_jakarta2023-07-04T12:46:10Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #249 <a href="https://airhacks.fm">airhacks.fm</a> episode with Reza Rahman (<a href="https://twitter.com/reza_rahman">@reza_rahman</a>) about: <blockquote itemprop="description"> Caucho Resin, the economic take on standards and Jakarta EE and Java on Azure </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_249">download.</a> </article>Break Your Limits and the Java Challengers--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/break_your_limits_and_the2023-06-25T07:13:37Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #248 <a href="https://airhacks.fm">airhacks.fm</a> episode with Rafael del Nero (<a href="https://twitter.com/RafaDelNero">@RafaDelNero</a>) about: <blockquote itemprop="description"> breaking your limits, creating the <a href="https://javachallengers.com">Java Challengers</a>, and enjoying Java</blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_248">download.</a> </article>A Gentle Introduction to Debugging--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_gentle_introduction_to_debugging2023-06-21T11:47:30Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #247 <a href="https://airhacks.fm">airhacks.fm</a> episode with Shai Almog (<a href="https://twitter.com/debugagent">@debugagent</a>) about: <blockquote itemprop="description"> various observability and debugging tools, time travelling debuggers and various breakpoint types </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_247">download.</a> </article>How Log4j, SLF4j, Jakarta Commons Logging, Logback and Reload4j Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_log4j_slf4j_jakarta_commons2023-06-11T12:12:20Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #246 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ceki Guelcue (<a href="https://twitter.com/ceki">@ceki</a>) about: <blockquote itemprop="description"> the history of logging in Java (Log4j 1 and 2, SLF4j, Apache / Jakarta Commons Logging, Logback, reload4j) </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_246">download.</a> </article>From OpenShift to Azure App Service--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_openshift_to_azure_app2023-06-08T08:43:33Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #245 <a href="https://airhacks.fm">airhacks.fm</a> episode with James Falkner (<a href="https://twitter.com/schtool">@schtool</a>) about: <blockquote itemprop="description"> Java on OpenShift, the ideal RedHat stack, Quarkus, JBossEAP and JBoss EAP on Azure App Service </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_245">download.</a> </article>Java EE 6: Migration: From Application Servers over MicroProfile to Serverless AWS Lambdahttps://adambien.blog/roller/abien/entry/java_ee_6_migration_from2023-06-03T03:56:38ZAt the <a href="https://jdd.org.pl">JDD 2012</a> conference, more than ten years ago I delivered a session a with the title: <a href="https://adambien.blog/roller/abien/entry/jdd_javaee_session_future_is">Java EE: The Future Is Now, But Is Not Evenly Distributed Yet</a>. <p> Ten years later, in 2022, I was invited again and delivered a session with the title "Java EE 6 and the Future Is Now, and now we got.. clouds", in which I discussed a migration path to a serverless architecture: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/Wsvs7pqiW1k?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> During the talk, I didn't managed to migrate the application to modern Java and clouds, but promised to record a screencast, which is also available: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/ErMDoOrzfmU?rel=0&vq=highres" allowfullscreen></iframe> </div>Monoliths, Microservices, Auth, API Gateways, Schedulers-111th airhacks.tvhttps://adambien.blog/roller/abien/entry/monoliths_microservices_auth_api_gateways2023-06-01T11:00:48ZThe 2023.6 / 111th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "Microservices vs. Monoliths, Schedulers, Lightweight vs. Heavyweight, Time Derived Properties, Groovy, JavaScript": </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/yZjsPBm4JiM?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/62791e98ed40d1d2b13801e3e717a949">gist.github.com/AdamBien/62791e98ed40d1d2b13801e3e717a949</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p>The Reset Boy--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_reset_boy_airhacks_fm2023-05-28T16:47:08Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #244 <a href="https://airhacks.fm">airhacks.fm</a> episode with Vinicius Senger (<a href="https://twitter.com/vsenger">@vsenger</a>) about: <blockquote itemprop="description"> Sun Microsystem memories, Java, Quarkus, AWS cloud, The Developer's Conference and the Java Academy </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_244">download.</a> </article>Microservices vs. Monoliths, Schedulers, Lightweight vs. Heavyweight, Time Derived Properties, Groovy, JavaScript--Or 111th airhacks.tvhttps://adambien.blog/roller/abien/entry/microservices_vs_monoliths_schedulers_lightweight2023-05-27T09:00:52Z<a href="https://gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2">Questions and Topics</a> for the 111th <a href="https://airhacks.tv">airhacks.tv</a> live stream Q and A are ready: <ol> <li>Microservices vs. Monoliths</li> <li>Best way to schedule a repeated task in an application scoped cdi bean</li> <li>Airhacks Time Machine</li> <li>The Airhacks Time Machine: <blockquote>Microservices and Java EE, Lightweight vs. Heavyweight, OSGi, time derived properties, JRebel, security between microservices, debug docker apps, batch processing, Groovy, JavaScript, Java, websockets and scalability, seceond level cache.</blockquote></li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2">gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Also checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Understanding and Practising Quarkus--an airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/understanding_and_practicing_quarkus_an2023-05-21T18:37:08Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #243 <a href="https://airhacks.fm">airhacks.fm</a> episode with Antonio Goncalves (<a href="https://twitter.com/agoncal">@agoncal</a>) about: <blockquote itemprop="description"> J2EE, Jakarta EE and MicroProfile stability and portability. Azure, Java, IaC and serverless. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_243">download.</a> </article>2023 Spring / Summer: Upcoming Conferences, Streams and Workshopshttps://adambien.blog/roller/abien/entry/2023_spring_summer_upcoming_conferences2023-05-19T08:54:48Z<p> The 111th <a href="airhacks.tv">airhacks.tv</a> will take place one week earlier, on may 27th (instead of June 5th). File your questions now: <a href="https://gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2">gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2</a> </p> <p> See you at these upcoming conferences and workshops: </p> <ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Code Europe Conference: <span itemprop="name"><!---->Dissecting Serverless Java on AWS<!----></span> <div> <span itemprop="description"><!---->conference session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Code Europe Conference<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Cracow<!----></span> </span> <span itemprop="startDate"><!---->23 May 2023<!----></span> </div> <meta itemprop="endDate" content="23 May 2023"> <a itemprop="url" href="https://www.codeeurope.pl/en/agenda"><!---->https://www.codeeurope.pl/en/agenda<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> InfoShare: <span itemprop="name"><!---->The Java Shorts Animation Show: 100 Snippets in 40 Minutes<!----></span> <div> <span itemprop="description"><!---->conference session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->InfoShare<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Gdansk<!----></span> </span> <span itemprop="startDate"><!---->24 May 2023<!----></span> </div> <meta itemprop="endDate" content="24 May 2023"> <a itemprop="url" href="https://infoshare.pl"><!---->https://infoshare.pl<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Code Europe Conference: <span itemprop="name"><!---->Keynote: Dissecting Serverless Java on AWS<!----></span> <div> <span itemprop="description"><!---->keynote conference session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Code Europe Conference<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Warsaw<!----></span> </span> <span itemprop="startDate"><!---->25 May 2023<!----></span> </div> <meta itemprop="endDate" content="25 May 2023"> <a itemprop="url" href="https://www.codeeurope.pl/en/agenda"><!---->https://www.codeeurope.pl/en/agenda<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> InfoShare: <span itemprop="name"><!---->The Future of Java in the Cloud and on Premises<!----></span> <div> <span itemprop="description"><!---->conference session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->InfoShare<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Gdansk<!----></span> </span> <span itemprop="startDate"><!---->25 May 2023<!----></span> </div> <meta itemprop="endDate" content="25 May 2023"> <a itemprop="url" href="https://infoshare.pl"><!---->https://infoshare.pl<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name"><!---->AWS Java Bootstrap<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->15 Jun 2023<!----></span> </div> <meta itemprop="endDate" content="15 Jun 2023"> <a itemprop="url" href="https://workshops.adam-bien.com/aws-java-bootstrap.htm"><!---->https://workshops.adam-bien.com/aws-java-bootstrap.htm<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> Jcon Europe: <span itemprop="name"><!---->"Serverless" Is What J2EE Was Meant To Be<!----></span> <div> <span itemprop="description"><!---->conference session<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->Jcon Europe<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Cologne<!----></span> </span> <span itemprop="startDate"><!---->20 Jun 2023<!----></span> </div> <meta itemprop="endDate" content="20 Jun 2023"> <a itemprop="url" href="https://2023.europe.jcon.one"><!---->https://2023.europe.jcon.one<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name"><!---->Cost Driven Architectures with Java on AWS <!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->22 Jun 2023<!----></span> </div> <meta itemprop="endDate" content="22 Jun 2023"> <a itemprop="url" href="https://workshops.adam-bien.com/aws-cost-driven-architectures.htm"><!---->https://workshops.adam-bien.com/aws-cost-driven-architectures.htm<!----></a> </li> <!----> </ol>Java FX, Codename One, Swing, Flutter and a Bit Android--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_fx_codename_one_swing2023-05-14T17:25:53Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #242 <a href="https://airhacks.fm">airhacks.fm</a> episode with Shai Almog (<a href="https://twitter.com/debugagent">@debugagent</a>) about: <blockquote itemprop="description"> the challenges of marketing and the architectural comparison of Java FX, Codename One, Swing, Flutter and Android </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_242">download.</a> </article>Simplicity is a Good Incentive--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/simplicity_is_a_good_incentive2023-05-07T17:58:57Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #241 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ceki G&uuml;lc&uuml; (<a href="https://twitter.com/ceki">@ceki</a>) about: <blockquote itemprop="description"> joy of programming, simplicity, network protocols, tor network, and the beginnings of Log4j </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_241">download.</a> </article>Reactive programming, 12factors, gRPC,SPAs, openJDK choices--Questions for 110th airhacks.tvhttps://adambien.blog/roller/abien/entry/reactive_programming_12factors_grpc_spas2023-05-01T07:34:04Z<a href="https://gist.github.com/AdamBien/6147ea9d4d354b5cae3cb3726b1db0de">Questions and Topics</a> for the 110th <a href="https://airhacks.tv">airhacks.tv</a> live stream Q and A are ready: <ol> <li>Follow up: my interview questions</li> <li>Programmatic and portable JAX-RS endpoint registration</li> <li>Time machine, the 10th episode: "Java EE Favourites, SPA technologies, complex JSON strategies, CDI scope management"</li> <li>Are shared deployments back?</li> <li>Are there any reason for reactive programming left?</li> <li>About OpenJ9 JVM, or which JDK to pick</li> <li>Jakarta gRPC, Google gRPC</li> <li>Do application servers make sense?</li> <li>Thoughts on Ansible deployments</li> <li>Thoughts on 12 factors and cloud native</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/6147ea9d4d354b5cae3cb3726b1db0de">gist.github.com/AdamBien/6147ea9d4d354b5cae3cb3726b1db0de</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Serverless Java (17) on AWS--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/serverless_java_17_on_aws2023-04-29T05:05:03Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #240 <a href="https://airhacks.fm">airhacks.fm</a> episode with Maximilian Schellhorn (<a href="https://twitter.com/maschnetwork ">@maschnetwork </a>) about: <blockquote itemprop="description"> cloud and on-premise architectures, switching back from Kotlin to Java 17, Fullstack Serverless Java Architectures on AWS and AWS Lambda with Java 17 with SnapStart </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_240">download.</a> </article>Low-Code, No-Code with Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/low_code_no_code_with2023-04-26T02:14:59Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #239 <a href="https://airhacks.fm">airhacks.fm</a> episode with Richard Fichtner (<a href="https://twitter.com/richardfichtner">@richardfichtner</a>) about: <blockquote itemprop="description"> writing low-code / no-code products in Java, Java startups, Low Code / No Code Java IDEs, Java frontends, Vaadin and the JCON conference </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_239">download.</a> </article>The History of Mobile Java and Codename One--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_history_of_mobile_java2023-04-16T17:13:43Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #238 <a href="https://airhacks.fm">airhacks.fm</a> episode with Shai Almog (<a href="https://twitter.com/debugagent">@debugagent</a>) about: <blockquote itemprop="description"> LWUIT, i-mode, Java FX Script, Wireless Toolkit, J2ME and Codename One </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_238">download.</a> </article>Hooked on Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/hooked_on_java_airhacks_fm2023-04-06T12:15:45Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #237 <a href="https://airhacks.fm">airhacks.fm</a> episode with Logan Kulinski (<a href="https://twitter.com/lbkulinski">@lbkulinski</a>) about: <blockquote itemprop="description"> Java passion, Java in the clouds, smart charging vehicles, and new Java language features </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_237">download.</a> </article>Serverless Enterprise Java, TDD, Resilience, API Gateways, Optimistic Locking--Questions for 109th airhacks.tvhttps://adambien.blog/roller/abien/entry/serverless_enterprise_java_tdd_resilience2023-04-03T07:40:41Z<a href="https://gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d">Questions and topics</a> for the 109th / 2023.4 airhacks.tv: <ol> <li>Test Driven Development</li> <li>Maven vs. Gradle</li> <li>Serverless Enterprise Java</li> </ol> <p> Time machine 100 episodes ago <a href="http://adambien.blog/roller/abien/entry/scheduler_datasources_microservices_jsf_and">8th airhacks.tv episode: 31st, October, 2014</a> </p> <blockquote> resilience and discovery, OData vs. JSON, Lazy OneToMany and JAX-RS serialization problems, simple reporting solutions, API Gateways and Java EE, centralized API management solutions, enum serialization options, row-level authorization and Java EE </blockquote> Backlog / timemachine 101 episodes ago <a href="http://adambien.blog/roller/abien/entry/service_discovery_micro_service_communication">9th airhacks.tv episode: 30th, November, 2014</a> <blockquote> batch processing over ejb scheduler, access to user-specific database for caller/user?, you can deploy Spring on any container, managing deployed microservices (status, healthchecks, restarting), local and production Docker setup, JSF and JavaScript frameworks, javax.persistence.OptimisticLockException recovery automation, session storage and Jakarta EE </blockquote> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d">https://gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="http://youtube.com/@bienadam/shorts">60 seconds or less with Java</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Naming Is Hard--Not With The VarVar Patternhttps://adambien.blog/roller/abien/entry/naming_is_hard_not_with2023-04-01T12:21:28Z<div class="screencast"> <iframe src="https://www.youtube.com/embed/sdaiEAHtdUU?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> In Java naming is not hard, you can conveniently name everything <code>var</code>: </p> <pre> class Var { String var; public Var() { this.var = "duke is varvar!"; } record VAR(Var var){ public String getVar(){ return this.var.var; } } public static void main(String... args) { var var = new VAR(new Var()); System.out.println(var.getVar()); } } </pre>Pommes, PaaS and Java on AWS--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/pommes_paas_and_java_on2023-04-01T06:29:38Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #236 <a href="https://airhacks.fm">airhacks.fm</a> episode with Sascha Moellering (<a href="https://twitter.com/sascha242">@sascha242</a>) about: <blockquote itemprop="description"> game development, a PaaS successtory, low latency Java, and Java on AWS </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_236">download.</a> </article>Debugging on Fire--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/debugging_on_fire_airhacks_fm2023-03-26T13:25:27Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #235 <a href="https://airhacks.fm">airhacks.fm</a> episode with Shai Almog (<a href="https://twitter.com/debugagent">@debugagent</a>) about: <blockquote itemprop="description"> programming flight simulators, Java consultancy, and embedded Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_235">download.</a> </article>How JPA Buddy Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_jpa_buddy_happened_airhacks2023-03-19T17:59:15Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #234 <a href="https://airhacks.fm">airhacks.fm</a> episode with Aleksey Stukalov (<a href="https://twitter.com/AlekseyStukalov">@AlekseyStukalov</a>) about: <blockquote itemprop="description"> about low code Java frameworks like: CUBA and JMIX, design principles, DTOs and JPA Buddy </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_234">download.</a> </article>Early 2023 Java / Clouds Events, JUGs, Workshops and Conferenceshttps://adambien.blog/roller/abien/entry/early_2023_java_clouds_events2023-03-13T10:46:49Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> Gedoplan Remote Session: <span itemprop="name"><!---->Standards, J2EE, Java EE, Jakarta EE, MicroProfile ....und nun was?<!----></span> [online event] <div> <span itemprop="description"><!---->"Expertenkreis Java" remote session<!----></span> <span itemprop="startDate"><!---->16 Mar 2023<!----></span> </div> <meta itemprop="endDate" content="16 Mar 2023"> <a itemprop="url" href="https://gedoplan.de/expertenkreisjava/"><!---->https://gedoplan.de/expertenkreisjava/<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> CODE Frenzy Conference: <span itemprop="name"><!---->Lean, Fast, Productive - IaC for Serverless Java on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->CODE Frenzy Virtual Conference<!----></span> <span itemprop="startDate"><!---->29 Mar 2023<!----></span> </div> <meta itemprop="endDate" content="29 Mar 2023"> <a itemprop="url" href="https://codefrenzy.pl/bio.html#id=51630"><!---->https://codefrenzy.pl/bio.html#id=51630<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> Cloud Builders Conference: <span itemprop="name"><!---->&#x421;loud Builders: Java Patterns and Practices for Serverless Applications<!----></span> [online event] <div> <span itemprop="description"><!---->Cloud Builders: Java Virtual Conference<!----></span> <span itemprop="startDate"><!---->30 Mar 2023<!----></span> </div> <meta itemprop="endDate" content="30 Mar 2023"> <a itemprop="url" href="https://www.cloud-builders.tech/#agenda-1"><!---->https://www.cloud-builders.tech/#agenda-1<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JUG Zurich: <span itemprop="name"><!---->Wenn Cloud, dann richtig... und mit Java<!----></span> <div> <span itemprop="description"><!---->JUG Zurich session (in-person)<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JUG Zurich<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Gleisarena FFHS Campus Z&uuml;rich<!----></span> </span> <span itemprop="startDate"><!---->30 Mar 2023<!----></span> </div> <meta itemprop="endDate" content="30 Mar 2023"> <a itemprop="url" href="https://www.jug.ch/html/events/2023/cloud_mit_java.html"><!---->https://www.jug.ch/html/events/2023/cloud_mit_java.html<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OfflineEventAttendanceMode"> JUG Zurich: <span itemprop="name"><!---->To Cloud Or Not To Cloud What Is The Architectural Difference?<!----></span> <div> <span itemprop="description"><!---->Digital Crafts Day / Conference (in-person)<!----></span> <span itemprop="location" itemscope="" itemtype="http://schema.org/Place"> <span itemprop="name"><!---->JUG Zurich<!----></span> <span itemprop="address" itemtype="http://schema.org/Text"><!---->Ostbayerische Technische Hochschule Amberg-Weiden<!----></span> </span> <span itemprop="startDate"><!---->28 Apr 2023<!----></span> </div> <meta itemprop="endDate" content="28 Apr 2023"> <a itemprop="url" href="https://dc-nordoberpfalz.de/digital-crafts-day.php"><!---->https://dc-nordoberpfalz.de/digital-crafts-day.php<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name"><!---->AWS Java Bootstrap<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->15 Jun 2023<!----></span> </div> <meta itemprop="endDate" content="15 Jun 2023"> <a itemprop="url" href="https://workshops.adam-bien.com/aws-java-bootstrap.htm"><!---->https://workshops.adam-bien.com/aws-java-bootstrap.htm<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> online: <span itemprop="name"><!---->Cost Driven Architectures with Java on AWS <!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->22 Jun 2023<!----></span> </div> <meta itemprop="endDate" content="22 Jun 2023"> <a itemprop="url" href="https://workshops.adam-bien.com/aws-cost-driven-architectures.htm"><!---->https://workshops.adam-bien.com/aws-cost-driven-architectures.htm<!----></a> </li> <!----> </ol> <p> Events are also announced at <a href="https://meetup.com/airhacks/">meetup.com/airhacks/</a> and <a href="https://discord.gg/airhacks ">discord.gg/airhacks</a> </p>How Apache Roller Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_apache_roller_happened_airhacks2023-03-12T10:46:18Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #233 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dave Johnson (<a href="https://twitter.com/snoopdave">@snoopdave</a>) about: <blockquote itemprop="description">about GRASS, early J2EE, Java, Sun Microsystems and how Apache Roller blogging software was created</blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_233">download.</a> </article>Leaving Clouds, Java LTS, CQRS, TDD, JAX-RS and AutoCloseable, Lambda Limitations, Dependencies and Updates-108th airhacks.tvhttps://adambien.blog/roller/abien/entry/leaving_clouds_java_lts_cqrs2023-03-07T18:13:05ZThe 2023.3 / 108th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "Flutter / Dart opinions, splitting read / writes, Leaving Clouds, Http Client, Liskov Principle, JAX-RS Response and AutoCloseable, monolithic AWS Lambda limitations, Update Strategies and Quarkus": </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/pGECCEtPMA0?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d">gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="https://youtube.com/@bienadam/shorts">60 seconds or less with Java: youtube.com/@bienadam/shorts</a> </p>Flutter, Leaving Clouds, Http Client, Liskov Principle, AutoCloseable, Update Strategies--Questions for 108th airhacks.tvhttps://adambien.blog/roller/abien/entry/flutter_leaving_clouds_http_client2023-03-06T12:08:57Z<a href="https://gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef">Questions and topics</a> for the 108th airhacks.tv: <ol> <li>LTS clarifications: <q>There seems to be a widespread misconception that only LTS releases are suitable for production. That non-LTS releases are experimental, unstable, or otherwise unsuitable.</q> [from <a href="https://discord.gg/airhacks">discord.gg/airhacks</a>]</li> <li>Dart / Flutter opinions</li> <li>Leaving clouds? Thoughts on article: <a href="https://world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0">world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0</a></li> <li>HttpClient and Response as JSON</li> <li>What is <a href="https://en.wikipedia.org/wiki/Liskov_substitution_principle">"Liskov substitution principle"</a></li> <li>Why JAX-RS Response is AutoCloseable?</li> <li>The name of the current method</li> <li>Update strategies and Quarkus</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef">gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">60 seconds</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Kubernetes Was Never Supposed To Leak--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/kubernetes_was_never_supposed_to2023-03-05T15:38:52Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #232 <a href="https://airhacks.fm">airhacks.fm</a> episode with Kelsey Hightower (<a href="https://twitter.com/kelseyhightower">@kelseyhightower</a>) about: <blockquote itemprop="description"> learning programming, configuration management, shell scripting, Java, GO, clouds, simplicity and kubernetes </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_232">download.</a> </article>Chicago Java User Group: Structuring Java Applications CLI, Monoliths, Microservices and Serverlesshttps://adambien.blog/roller/abien/entry/chicago_java_user_group_structuring2023-03-02T10:17:40ZA session from <a href="https://cjug.org">Chicago Java Users Group</a>, Feb 1st, 2023, with the following abstract: <blockquote> In this CJUG session, I will create a Java service from scratch, run and test it locally, in container environments, and as AWS Lambda. Same code base, minimal code, no YAML, and the same APIs on different runtimes. I will focus on structure, maintainability, and the "no-dependencies" approach. Your questions are highly appreciated, and I will answer them in real time. </blockquote> <p> ...is available: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/dzW_Vm19AGc?rel=0&vq=highres" allowfullscreen></iframe> </div> <script src="https://apis.google.com/js/platform.js"></script> <div class="g-ytsubscribe" data-channel="bienadam" data-layout="default" data-count="default"></div>Live From "The Software Architecture Gathering" Conference: Saving Costs with Pragmatic Serverless Java Architectureshttps://adambien.blog/roller/abien/entry/live_from_the_software_architecture2023-02-27T08:03:26ZA session from <a href="https://conferences.isaqb.org/software-architecture-gathering/">"The Software Architecture Gathering &mdash; Digital 2022"</a>, November 14th 2022, with the following abstract: <blockquote> "Java is fast, productive, comes with excellent tooling, and runs well on next-generation cloud-native runtimes. I would like to discuss unconventional and pragmatic serverless Java architectures with lots of code, live deployments, and measurements in this interactive session. Your questions are, as always, highly welcome and will be answered in real-time." </blockquote> <p> ...is available: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/r5uc29XHuNw?rel=0&vq=highres" allowfullscreen></iframe> </div> <script src="https://apis.google.com/js/platform.js"></script> <div class="g-ytsubscribe" data-channel="bienadam" data-layout="default" data-count="default"></div>Thinking About Decentralized Web--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/thinking_about_decentralized_web_airhacks2023-02-26T15:31:52Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #231 <a href="https://airhacks.fm">airhacks.fm</a> episode with Andrew Lee Rubinger (<a href="https://twitter.com/alrubinger">@alrubinger</a>) about: <blockquote itemprop="description"> decentralized web use cases and killer apps, standards, similarities between J2EE, Java EE, Jakarta EE and TBD, Web 5 </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_231">download.</a> </article>A Human-Centric, OpenSource Workflow Engine on Jakarta EE--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/a_human_centric_opensource_workflow2023-02-18T06:09:26Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #230 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ralph Soika (<a href="https://twitter.com/rsoika">@rsoika</a>) about: <blockquote itemprop="description"> building an open source (<a href="https://www.imixs.org">www.imixs.org</a>), human-centric, workflow engine on Jakarta EE, kubernetes on-premise and in the clouds, clouds and portability. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_230">download.</a> </article>Highly Structured Lifehacks with Heinz--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/highly_structured_lifehacks_with_heinz2023-02-12T16:00:06Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #229 <a href="https://airhacks.fm">airhacks.fm</a> episode with Heinz Kabutz (<a href="https://twitter.com/heinzkabutz">@heinzkabutz</a>) about: <blockquote itemprop="description"> From "lost in the woods", over JDK contributions and Java features to Garbage Collectors and weak references. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_229">download.</a> </article>Cloud Native vs On-Premise, Thin-, Fat-, Jars, Hot Redeployment, Strategies for Multi Tenancy, Horizontal vs. Deep Learning--107th airhacks.tvhttps://adambien.blog/roller/abien/entry/cloud_native_vs_on_premise2023-02-07T18:41:48ZThe 2023.2 / 107th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "Dead OneToMany, Docker, Thin-, Fat-, Jars, Hot Redeployment and the clouds, Strategies for Multi Tenancy, Horizontal vs. Deep Learning, what is cloud native?, cloud vs. on--premise architectures": </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/FrB6mItUKig?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef">gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">60 seconds with Java</a> </p>Dead OneToMany, Docker, Thin-, Fat-, Jars, Hot Redeployment, Strategies for Multi Tenancy, Horizontal vs. Deep Learning--107th airhacks.tvhttps://adambien.blog/roller/abien/entry/dead_onetomany_docker_thin_fat2023-02-06T12:40:08ZThe <a href="https://gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c">questions and topics</a> for the second / 107th <a href="https://airhacks.tv">airhacks.tv</a> in 2023: <ol> <li>Time travel: topics from 100 episodes back (October 2014): SessionScoped, Stateful, RequestScoped, avoiding OneToMany JPA, stateless session beans</li> <li>Thoughts on docker, layered images, Thin Jars, Fat Jars, Jakarta EE server</li> <li>Challenges and strategies for application hot redeployment</li> <li>Strategies for multi tenant applications</li> <li>Thoughts on learning: horizontal knowledge vs. deep dive</li> </ol> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c">gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">60 seconds</a> </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Are you nice? :-) Then checkout: <a href="https://discord.gg/airhacks">the airhacks discord server</a> </p>Star Trek, Star Wars, Transactions, SQL, NoSQL and almost Streaming--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/star_trek_star_wars_transactions2023-02-05T17:34:10Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #228 <a href="https://airhacks.fm">airhacks.fm</a> episode with Mary Grygleski (<a href="https://twitter.com/mgrygles">@mgrygles</a>) about: <blockquote itemprop="description"> Star Trek, Star Wars, transactional file systems, Java, Java EE, SQL, NoSQL and almost streaming </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_228">download.</a> </article>From Jakarta EE ManagedExecutorService to MicroProfile ManagedExecutorhttps://adambien.blog/roller/abien/entry/from_jakarta_ee_managedexecutorservice_to2023-01-30T10:26:24ZIn Java EE / Jakarta EE environments a <a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/enterprise/concurrent/managedexecutorservice">ManagedExecutorService</a> instance is injectable via the <code>@Resource</code> annotation: <pre> <code> <em>import javax.enterprise.concurrent.ManagedExecutorService;</em> public class EventSource { @Resource ManagedExecutorService threadPool; (...) } </code> </pre> <small>[code from: <a href="http://adambien.blog/roller/abien/entry/java_ee_8_sending_asynchronous">Java EE 8: Sending asynchronous CDI 2.0 events with ManagedExecutorService</a>]</small> <p> In pure <a href="https://microprofile.io">MicroProfile</a> environments these API is not available but can be replaced with <a href="https://download.eclipse.org/microprofile/microprofile-context-propagation-1.0/apidocs/org/eclipse/microprofile/context/ManagedExecutor.html">ManagedExecutor</a> from <a href="https://download.eclipse.org/microprofile/microprofile-context-propagation-1.3/microprofile-context-propagation-spec-1.3.html#_example_producer_for_code_managedexecutor_code">MicroProfile Context Propagation</a>: </p> <pre> <code> <em>import org.eclipse.microprofile.context.ManagedExecutor;</em> public class EventSource { @Inject ManagedExecutor executor; } </code> </pre> <p> Both injected instances are inheriting from <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutorService.html">ExecutorService</a>. Migration from <code>javax.enterprise.concurrent.ManagedExecutorService</code> to <code>org.eclipse.microprofile.context.ManagedExecutor</code> should be matter of replacing <code>@Resource</code> with <code>@Inject</code>, renaming the injected classes and fixing the imports. </p>From Amiga, Java ME, JavaFX over Clouds to Decentralized Package Network--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_amiga_java_me_javafx2023-01-29T20:32:25Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #227 <a href="https://airhacks.fm">airhacks.fm</a> episode with Karol Harezlak (<a href="https://github.com/karolh2000">@karolh2000</a>) about: <blockquote itemprop="description"> Amiga love, assembly, C, Java, Java ME, Java FX, NetBeans, Clouds and a Decentralized Package Network </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_227">download.</a> </article>Supercharging the GraalVM--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/supercharging_the_graalvm_airhacks_fm2023-01-22T20:42:30Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #226 <a href="https://airhacks.fm">airhacks.fm</a> episode with &#x410;lina Yurenko (<a href="https://twitter.com/alina_yurenko">@alina_yurenko</a>) about: <blockquote itemprop="description"> GraalVM tooling, features, configuration and use cases </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_226">download.</a> </article>Obsessed With Performance--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/obsessed_with_performance_airhacks_fm2023-01-15T17:14:10Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #225 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jakob Jenkov (<a href="https://twitter.com/jjenkov">@jjenkov</a>) about: <blockquote itemprop="description"> Java, performance, clouds and complexity </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_225">download.</a> </article>What does it mean to be a professional programmer?--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/what_does_it_mean_to2023-01-08T18:11:59Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #224 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ken Fogel (<a href="https://twitter.com/omniprof">@omniprof</a>) about: <blockquote itemprop="description"> capturing requirements, writing maintainable software, unit and system testing </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_224">download.</a> </article>Optional, Java Modules, Kotlin, Rust, Lambda, VS Code, Java EE, PlayFramework--106th airhacks.tvhttps://adambien.blog/roller/abien/entry/optional_java_modules_kotlin_rust2023-01-04T04:58:48ZThe 2023.1 / 106th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "Lambda Extensions, token cache with DynamoDB, Java EE vs. PlayFramework popularity, Kotlin, Rust, Optional use cases, Java Modules": </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/edE9djg04AU?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c">gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. <p> Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a> </p> <p> News: the airhacks discord server is available: <a href="https://discord.gg/BpMGmxvRDb">https://discord.gg/BpMGmxvRDb</a> </p>Play, Java EE, AWS Lambda Tokens, 2022 Observations--106th airhacks.tvhttps://adambien.blog/roller/abien/entry/play_java_ee_aws_lambda2023-01-02T10:03:07ZThe questions and topics for the very first <a href="https://airhacks.tv">airhacks.tv</a> in 2023: <ol> <li>Time travel: <a href="https://gist.github.com/AdamBien/8735518ee671d7edb778">100 episodes ago</a>: Play Framework vs. Java EE, reading a network file, ID generation, stateful calculations, JSF and Bootstrap, structuring huge applications, mixing storage and transfer concerns (...)</li> <li>2022 observations</li> <li>Strategies for updating tokens of AWS Lambda's</li> <li>the state of airhacks industries :-)</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72">gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p> <p> Some questions are also answered with a short (video): <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a> on <a href="https://www.youtube.com/bienadam">www.youtube.com/bienadam</a> </p>How Grizzly and Atmosphere Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_grizzly_and_atmosphere_happened2022-12-31T14:31:39Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #223 <a href="https://airhacks.fm">airhacks.fm</a> episode with Jeanfrancois Arcand (<a href="https://twitter.com/jfarcand">@jfarcand</a>) about: <blockquote itemprop="description"> real time communication with Java, Grizzly and Atmosphere projects, Sun Microsystems, AI, Environmental, social, and corporate governance (ESG), and the Go programming language </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_223">download.</a> </article>Xmas with the Brazilian JavaMan--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/xmas_with_the_brazilian_javaman2022-12-23T12:31:37Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #222 <a href="https://airhacks.fm">airhacks.fm</a> episode with Bruno Souza (<a href="https://twitter.com/brjavaman">@brjavaman</a>) about: <blockquote itemprop="description"> Xmas trees, Java and automation, public and private cloud and the Golden Circle </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_222">download.</a> </article>What is foojay.io?--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/what_is_foojay_org_airhacks2022-12-16T15:06:49Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #221 <a href="https://airhacks.fm">airhacks.fm</a> episode with Geertjan Wielenga (<a href="https://twitter.com/GeertjanW">@GeertjanW</a>) about: <blockquote itemprop="description"> Friends of OpenJDK (foojay), Java.net 2.0, Wikipedia for Java and Azul </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_221">download.</a> </article>To MicroProfile, Or Not To MicroProfile?--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/to_microprofile_or_not_to2022-12-11T17:22:53Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #220 <a href="https://airhacks.fm">airhacks.fm</a> episode with Romain Manni-Bucau (<a href="https://twitter.com/rmannibucau">@rmannibucau</a>) about: <blockquote itemprop="description"> about the advantages and shortcomings of MicroProfile, building a custom MicroProfile-based platform, and Kubernetes' portability </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_220">download.</a> </article>CraC, SnapStart, AWS Lambda, REST, Change Data Capture in the Clouds, GraalVM--105th airhacks.tvhttps://adambien.blog/roller/abien/entry/crac_snapstart_aws_lambda_rest2022-12-07T04:14:28ZThe December, 105th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "CraC, SnapStart, AWS Lambda, structuring micro services, REST or not, Change Data Capture in the clouds, CraC vs. GraalVM, managing certificates, monolithic lambda deployments, asynchronous lambdas packaging": </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/_DoDT3HX0Uc?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72">gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. <p> Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a> </p>Stateful Microservices, BCE, REST, CraC, SnapStart, Serverless--105th airhacks.tvhttps://adambien.blog/roller/abien/entry/stateful_microservices_bce_rest_crac2022-12-05T12:22:27ZThe questions and topics for the very last <a href="https://airhacks.tv">airhacks.tv</a> in 2022: <ol> <li>100 episodes ago: stateful microservices, BCE design, how to learn Java, .NET vs. Java EE, REST, Layers, micro services, GoF and Java EE (...)</li> <li>CraC / SnapStart and Monolithic Lambdas</li> <li>Opinion: the state of Java documentation</li> <li>AWS Lambda and REST Endpoints</li> <li>Non AWS Endpoints</li> <li>Packaging serverless applications</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7">gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p> <p> Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a> </p>End of Year: Java and Cloud Sessions and Workshopshttps://adambien.blog/roller/abien/entry/end_of_year_java_and2022-12-03T16:33:53Z<ol> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.tv interactive live stream: <span itemprop="name"><!---->#105th airhacks.tv Questions and Answers<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.tv Questions and Answers<!----></span> <span itemprop="startDate"><!---->5 Dec 2022<!----></span> </div> <meta itemprop="endDate" content="5 Dec 2022"> <a itemprop="url" href="http://youtube.com/bienadam"><!---->http://youtube.com/bienadam<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> JakartaOne Live session: <span itemprop="name"><!---->Ideas for Lean, Maintainable and Productive Jakarta EE / MicroProfile Projects<!----></span> [online event] <div> <span itemprop="description"><!---->JakartaOne Live<!----></span> <span itemprop="startDate"><!---->6 Dec 2022<!----></span> </div> <meta itemprop="endDate" content="6 Dec 2022"> <a itemprop="url" href="https://www.meetup.com/airhacks/events/290124264"><!---->https://www.meetup.com/airhacks/events/290124264<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live workshop: <span itemprop="name"><!---->Serverless Event-Driven Architectures with Serverless Java on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->8 Dec 2022<!----></span> </div> <meta itemprop="endDate" content="8 Dec 2022"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> <li itemscope="" itemtype="https://schema.org/EducationEvent"> <meta itemprop="performer" itemtype="http://schema.org/Person" content="Adam Bien"> <meta itemprop="eventAttendanceMode" content="OnlineEventAttendanceMode"> airhacks.live workshop: <span itemprop="name"><!---->Serverless Persistence for Serverless Java on AWS<!----></span> [online event] <div> <span itemprop="description"><!---->airhacks.live workshops<!----></span> <span itemprop="startDate"><!---->15 Dec 2022<!----></span> </div> <meta itemprop="endDate" content="15 Dec 2022"> <a itemprop="url" href="https://airhacks.live"><!---->https://airhacks.live<!----></a> </li> <!----> </ol>"CraC Applied":SnapStart Java AWS Lambda Cold Start Acceleration in Actionhttps://adambien.blog/roller/abien/entry/crac_applied_snapstart_java_aws2022-11-30T13:17:04Z<p> In this screencast I deployed a MicroProfile / Quarkus application as AWS Lambda (<a href="https://github.com/AdamBien/aws-quarkus-lambda-cdk-plain">github.com/AdamBien/aws-quarkus-lambda-cdk-plain</a>) using CDK and compared the cold- with the <a href="https://aws.amazon.com/blogs/aws/new-accelerate-your-lambda-functions-with-lambda-snapstart/">"snap"-start</a>. </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/JtnRW7UnU1A?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> SnapStart / <a href="https://openjdk.org/projects/crac/">CraC</a> was also covered at the: <a href="https://airhacks.fm">airhacks.fm</a> podcast episode with the title: <a href="https://airhacks.fm/#episode_219">"Java, CraC and Reducing Cold Start Duration with AWS Lambda SnapStart"</a> </p>Java, CraC and Reducing Cold Start Duration with AWS Lambda SnapStart--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_crac_and_reducing_cold2022-11-29T18:41:26Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #219 <a href="https://airhacks.fm">airhacks.fm</a> episode with Mark Sailes (<a href="https://twitter.com/MarkSailes3">@MarkSailes3</a>) about: <blockquote itemprop="description"> Java, Coordinated Restore at Checkpoint (CraC), the serverless Java mindset and reducing Cold Start Duration with AWS Lambda SnapStart </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_219">download.</a> </article>How OmniFish Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_omnifish_happened_airhacks_fm2022-11-28T15:50:25Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #218 <a href="https://airhacks.fm">airhacks.fm</a> episode with David Matejcek (<a href="https://twitter.com/dmatej">@dmatej</a>) about: <blockquote itemprop="description"> GlassFish, Payara, open source contributions and raise of the OmniFish </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_218">download.</a> </article>ACID, Base, XA and Long Running Actions--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/acid_base_xa_and_long2022-11-20T18:01:05Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #217 <a href="https://airhacks.fm">airhacks.fm</a> episode with Daniel Kec (<a href="https://twitter.com/danielkec">@danielkec</a>) about: <blockquote itemprop="description"> ACID, BASE, local and distributed transactions, MicroProfile Long Running Actions (LRA), SAGA pattern and high availability of LRA transaction coordinators in the cloud </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_217">download.</a> </article>Low Code, No Code, WYSIWYG &#8230;and some CRaC--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/low_code_no_code_wysiwyg2022-11-13T18:31:51Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #216 <a href="https://airhacks.fm">airhacks.fm</a> episode with John Ceccarelli (<a href="https://twitter.com/jceccarelli1">@jceccarelli1</a>) about: <blockquote itemprop="description"> technical writing about NetBeans for Sun Microsystems, no code, low code, and WYSIWYG challenges, JVM optimizations and openJDK CRaC </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_216">download.</a> </article>Blocking Lambdas, Off-Heap Memory, BCE, AWS SDKs--104th airhacks.tvhttps://adambien.blog/roller/abien/entry/blocking_lambdas_off_heap_memory2022-11-10T03:33:04ZThe November, 104th edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> Clustered annotation corrections, blocking lambdas, quarkus, resteasy vs. jersey, modern Java challenges, off-heap memory, boundary control entity structure, AWS SDKs </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/WXsnwfYYiic?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7">https://gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p> <p> Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a>Ten Years After: From Java 6 / Java EE 6 and Glassfish to Quarkus and AWS Lambda--A Live Migrationhttps://adambien.blog/roller/abien/entry/ten_years_after_from_java2022-11-09T08:06:59Z<p>I took Java 6 / Java EE 6 sample / <a href="https://glassfish.org">GlassFish</a> application created live at the <a href="https://jdd.org.pl">JDD</a> 2012 conference (<a href="https://adambien.blog/roller/abien/entry/jdd_javaee_session_future_is">Java EE: Future Is Now, But It Is Not Evenly Distributed Yet</a>) and migrated it to MicroProfile and deployed as AWS Lambda (in 18 mins):</p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/ErMDoOrzfmU?rel=0&vq=highres" allowfullscreen></iframe> </div>Blocking Lambdas, Java's Complexity, AWS APIs, Clustered Corrections--104th airhacks.tvhttps://adambien.blog/roller/abien/entry/blocking_lambdas_java_s_complexity2022-11-07T14:50:14ZQuestions (<a href="https://gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d">gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d</a>) for the the 104th (November) edition of <a href="https://airhacks.tv">airhacks.tv</a> Q & A live stream (<a href="https://www.youtube.com/bienadam/">youtube.com/bienadam/</a>): <ol> <li>airhacks.tv time machine. Reviewing content <a href="http://adambien.blog/roller/abien/entry/4th_airhacks_q_a_live">from 100 episodes ago</a>: <q>exposed DB objects, vanilla Java EE, shared classes, BCE and *Resources, uploading large files, maven lifecycle hooks (...)</q></li> <li>What if a lambda needs to call an external api, I.e. Wait for a reply?</li> <li>I'm moving from Payara to Quarkus but I can't make sense of the CXF plugin for Quarkus(...)</li> <li>Would you include a dependency to your project even if you only need a small portion of functionality or dev/copy this single function on your own?</li> <li>Java Releases now seem to have the tend to add more and more syntax sugars to the language (modules, var, records,&#8230;). Whats your opinion on that? Will it help the language to grow or does it make it more unaccessible for inexperienced developers?</li> <li>Recent Java additions (Off-Heap-Memory, SIMD) seem to offer a memory mgmt. outside of the GC or a vendor specific instruction set. Given those new possibilities in Java do you think it will introduce new complexity for JDK/GC developers to introduce improvements since those features are outside the range of a managed environment?</li> <li>Do you use the AWS SDK clients, models etc. when you want to access AWS services like S3, DynamoDB etc? If not, how do you create the requests (JASON) and how do you do the authentication?</li> <li>announcement: "for short questions - you don't have to wait a month"</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d">gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p>Karatsuba, Megamorphic Call-sites, Deadlocks and a bit of Loom--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/karatsuba_megamorphic_call_sites_deadlocks2022-11-06T17:02:43Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #215 <a href="https://airhacks.fm">airhacks.fm</a> episode with Heinz Kabutz (<a href="https://twitter.com/heinzkabutz">@heinzkabutz</a>) about: <blockquote itemprop="description"> Deadlocks, Project Loom, Fork Join, concurrency, parallelism and the performance of an empty stream </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_215">download.</a> </article>StarOfJava Session: Past, Present and Future: Serverside Java on Premise and in the Cloudshttps://adambien.blog/roller/abien/entry/webinar_recordings_past_present_and2022-10-31T15:41:05Z<p> An recording for the online session for <a href="https://twitter.com/StarofJava">Starof(Java)</a> with the following abstract: </p> <blockquote> "In this webinar, Adam Bien <a href="https://twitter.com/adambien/">(@AdamBien)</a> will give you insight on approaches to create, structure, build, test, and survive serverside Java projects. He will set up a few Java SE, Quarkus, Jakarta EE, and MicroProfile projects "from scratch," explain the principles with (hopefully) working code and answer your questions in real-time." </blockquote> <div class="screencast"> <iframe src="https://www.youtube.com/embed/mUj_2C8dcQY?rel=0&vq=highres" allowfullscreen></iframe> </div>It is Cool to Block Again--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/it_is_cool_to_block2022-10-30T11:27:07Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #214 <a href="https://airhacks.fm">airhacks.fm</a> episode with Daniel Kec (<a href="https://twitter.com/@danielkec">@@danielkec</a>) about: <blockquote itemprop="description"> reactive programming, Helidon news, Project Loom on Helidon, microservices, transactions and MicroProfile Long Running Actions (LRA) </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_214">download.</a> </article>Captain Primak Meets Clustered Singletons--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/captain_primak_meets_clustered_singletons2022-10-25T15:26:07Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #213 <a href="https://airhacks.fm">airhacks.fm</a> episode with Lenny Primak (<a href="https://twitter.com/lprimak">@lprimak</a>) about: <blockquote itemprop="description"> the inner workings of Payaras' @Clustered annotation and corrections / clarification of my explanation in the 103rd <a href="https://adambien.blog/roller/abien/entry/clustering_in_the_clouds_logging">airhacks.tv</a>, committing code to Apache Shiro and flying small jets </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_213">download.</a> </article>From a NetBeans Champion to a Friend of the openJDK--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_a_netbeans_champion_to2022-10-16T16:04:14Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #211 <a href="https://airhacks.fm">airhacks.fm</a> episode with Geertjan Wielenga (<a href="https://twitter.com/GeertjanW">@GeertjanW</a>) about: <blockquote itemprop="description"> technical writing, Sun Microsystems, NetBeans, and being a Friend of the openJDK (<a href="https://foojay.io">foojay.io</a>) </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_211">download.</a> </article>Clustering in the Clouds, Logging, NoSQL, BCE, Jakarta EE vs. Quarkus, LRA, Lambda--103rd airhacks.tvhttps://adambien.blog/roller/abien/entry/clustering_in_the_clouds_logging2022-10-12T04:24:53ZThe October (103rd) edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> Clustered, Distributed Events, System.out.println for logging, NoSQL mapping strategies, BCE, Jakarta EE vs. Quarkus, long running processes with Lambda, caching in Lambda, VSC vs. IntelliJ </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/00M3YsEZdcQ?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d">https://gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p> <p> Some questions are also answered with a short video: <a href="https://youtube.com/playlist?list=PLxU9yM-_yPs8xqd8Yu4ecpVwiUD_1Xv4N">one minute with...</a> </p>How Liberica JDK Happened--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/how_liberica_jdk_happened_airhacks2022-10-10T12:58:02Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #211 <a href="https://airhacks.fm">airhacks.fm</a> episode with Dmitry Chuyko (<a href="https://twitter.com/dchuyko">@dchuyko</a>) about: <blockquote itemprop="description"> programming and math, improving JDKs performance, BellSoft and Liberica JDK </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_211">download.</a> </article>The Cloud is Slower Than Your Local Machine--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/the_cloud_is_slower_than2022-10-03T12:41:57Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #210 <a href="https://airhacks.fm">airhacks.fm</a> episode with Goran Opacic (<a href="https://twitter.com/goranopacic">@goranopacic</a>) about: <blockquote itemprop="description"> Open source vs. cloud native managed services trade-offs, cloud native persistence, performance, scalability, and the return of premises </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_210">download.</a> </article>Clustered, Distributed Events, System.out.println, NoSQL challenges, BCE, Jakarta EE vs. Quarkus--103rd airhacks.tvhttps://adambien.blog/roller/abien/entry/clustered_distributed_events_system_out2022-10-03T08:07:27ZQuestions and topics (<a href="https://gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0">gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0</a>) for the 103rd <a href="https://airhacks.tv">airhacks.tv</a> Q & A live stream (<a href="https://www.youtube.com/c/bienadam/">https://www.youtube.com/c/bienadam/</a>): <ol> <li>airhacks.tv time machine. Reviewing content <a href="https://adambien.blog/roller/abien/entry/questions_for_the_3th_airhacks">from 100 episodes ago</a>: <q>cross-cutting concerns, horizontal vs. vertical splitting, mockito, configuration (...)</q></li> <li>@Clustered vs. Hazelcast and distributed events</li> <li>data in NoSQL storage</li> <li>Quarkus vs. Jakarta EE</li> <li>System.out.println vs. logging</li> <li>BCE pattern and builders</li> <li>Is System.out.println too complex and verbose?</li> <li>announcement: "for short questions - you don't have to wait a month"</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0">gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p>From Punched Cards to Java 11--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/from_punched_cards_to_java2022-09-25T15:42:20Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #209 <a href="https://airhacks.fm">airhacks.fm</a> episode with Glenn Holmer (<a href="https://twitter.com/gholmer">@gholmer</a>) about: <blockquote itemprop="description"> the transition from punched cards over assembly, servlets, enterprise java to Java 11+. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_209">download.</a> </article>Debugging Incoming Headers with jwebserverhttps://adambien.blog/roller/abien/entry/debugging_incoming_headers_with_jwebserver2022-09-23T15:50:53Z<code>jwebserver</code> introduced with <a href="https://openjdk.org/jeps/408">JEP 408</a> can be used for incoming header / user agent debugging. <p> Launching the web server in verbose mode with: <code>jwebserver -o verbose</code>, outputs the incoming headers after executing: <code>curl http://localhost:8000</code>: </p> <pre> <code> > Accept: */* > Host: localhost:8000 > User-agent: curl/7.79.1 </code> </pre> <p> The following Java <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html">HttpClient</a>: </p> <pre> <code> import java.net.http.HttpResponse.BodyHandlers; import java.net.http.*; var client = HttpClient.newHttpClient(); var request = HttpRequest.newBuilder(URI.create("http://localhost:8000")) .GET() .build(); var response = client.send(request,BodyHandlers.ofString()) </code> </pre> </p> <p> generates these headers: </p> <pre> <code> > Connection: Upgrade, HTTP2-Settings > Http2-settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA > Host: localhost:8000 > User-agent: Java-http-client/19 > Upgrade: h2c </code> </pre> <p> See it in action and in less than 1 min: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/diqNrwSSm_M?rel=0&vq=highres" allowfullscreen></iframe> </div>JCon 2022 Conference Keynote: Thinking About Persistence for Serverless Javahttps://adambien.blog/roller/abien/entry/jcon_keynote_thinking_about_persistence2022-09-21T10:53:41Z<p> Thanks for all the questions and interactions. This keynote was fun! </p> <p> Abstract: </p> <blockquote> <p> "Serverless Java applications are stateless and store their data in a range of cloud persistence stores, from relational databases, like Aurora, over file-based block storage like S3 to persistent event stores like Kinesis. </p> <p> In this keynote, I will focus on the characteristics and challenges of serverless Lambda and Fargate Java application's data access layer and discuss the impact on authentication, authorization, connection handling or scalability, data mapping, portability, and costs. Your questions are highly welcome!" </p> </blockquote> <p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/83pvCpDnz-s?rel=0&vq=highres" allowfullscreen></iframe> </div> </p>GraalVM: Meta Circularity on Different Levels--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/graalvm_meta_circularity_on_different2022-09-18T13:37:47Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #208 <a href="https://airhacks.fm">airhacks.fm</a> episode with Fabio Niephaus (<a href="https://twitter.com/fniephaus">@fniephaus</a>) about: <blockquote itemprop="description"> various ways for language interoperability on GraalVM and GraalVM developer tools </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_208">download.</a> </article>Mission Critical Transactions--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/mission_critical_transactions_airhacks_fm2022-09-11T13:04:11Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #207 <a href="https://airhacks.fm">airhacks.fm</a> episode with Alejandro Pablo Revilla (<a href="https://twitter.com/apr">@apr</a>) about: <blockquote itemprop="description"> mission critical Java, transactions and POS, dependency management, open source vs. managed services in the clouds </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_207">download.</a> </article>Closing JAX-RS Response with try-with-resourceshttps://adambien.blog/roller/abien/entry/closing_jax_rs_response_with2022-09-09T04:23:08ZA JAX-RS <a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/ws/rs/core/response"><code>Response</code></a> implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html"><code>AutoCloseable</code></a>. It can either be <a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/ws/rs/core/response#close--">closed explicitly</a>, or via <a href="https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html">try-with-resources</a>: <pre> <code> import static org.junit.jupiter.api.Assertions.assertNotNull; import javax.inject.Inject; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.junit.jupiter.api.Test; import io.quarkus.test.junit.QuarkusTest; @QuarkusTest public class AutocloseableResponseIT { @Inject @RestClient WebsiteClient client; @Test void closeExplicitly(){ var response = this.client.getContent(); var content = response.readEntity(String.class); response.close(); assertNotNull(content); } @Test void autoClose(){ try(var response = this.client.getContent()){ var content = response.readEntity(String.class); assertNotNull(content); } } } </code> </pre> <p> The corresponding <a href="https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html">client (Rest Client for MicroProfile)</a> used in this example is: </p> <pre><code> import javax.ws.rs.GET; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; @RegisterRestClient(baseUri = "http://localhost:8080") public interface WebsiteClient { @GET @Produces(MediaType.TEXT_PLAIN) Response getContent(); } </code> </pre> <p> Too many "open" Responses may lead to <a href="https://adambien.blog/roller/abien/entry/quarkus_hanging_mp_rest_client">blocking behavior</a>. </p>Migrations, Transactions, Retries, Long URIs, JPA, JSON-B, HTTP/2--102nd airhacks.tvhttps://adambien.blog/roller/abien/entry/migrations_transactions_retries_long_uris2022-09-07T03:58:47ZThe September edition of <a href="https://airhacks.tv">airhacks.tv</a> with the following topics: <blockquote> "J2EE, Java EE, Jakarta EE migration projects, NetBeans vs. VSC, custom Bean Validators, JPA and JSON-B data mapping, fault tolerance and retry-able transactions, HTTP/2 use cases, too long URIs" </blockquote> <p> is ready: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/4EekkJ4SnLc?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0">https://gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p>Java EE Upgrades, NetBeans, Bean Validation, Transactions, HTTP/2, 414--102nd airhacks.tvhttps://adambien.blog/roller/abien/entry/java_ee_upgrades_netbeans_bean2022-09-05T08:23:08ZQuestions and topics for the 102nd <a href="https://airhacks.tv">airhacks.tv</a> live stream (<a href="https://www.youtube.com/c/bienadam/">https://www.youtube.com/c/bienadam/</a>): <ol> <li>The time machine or topics from 100 episodes ago (the <a href="https://www.adam-bien.com/roller/abien/entry/2nd_airhacks_q_a_and">2nd airhacks.tv</a>)</li> <li>J2EE, Java EE and Jakarta EE upgrades</li> <li>NetBeans and Visual Studio Code</li> <li>The single Jakarta EE dependency</li> <li>Installation of custom Bean Validators</li> <li>Date conversions with JPA and JSON-B</li> <li>The "retriable transaction" annotation</li> <li>Use cases for http 2 server push</li> <li>Dealing with 414 (Request-URI Too Large)</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/49efb5c357b19ad2bdde82ea026db803">gist.github.com/AdamBien/49efb5c357b19ad2bdde82ea026db803</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p>Java 19: Millions of Threads in No Time--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/java_19_millions_of_threads2022-09-04T14:22:27Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #206 <a href="https://airhacks.fm">airhacks.fm</a> episode with Nicolai Parlog (<a href="https://twitter.com/nipafx">@nipafx</a>) about: <blockquote itemprop="description"> Java 19, Project Loom, structured concurrency and reactive programming </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_206">download.</a> </article>Quarkus, Hanging MP REST Client and the Solutionhttps://adambien.blog/roller/abien/entry/quarkus_hanging_mp_rest_client2022-09-03T10:40:41ZThe following <a href="https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html">(Rest Client for MicroProfile)</a> interface: <pre> <code> @RegisterRestClient(baseUri = "http://localhost:8000") public interface WebsiteClient { @GET @Produces(MediaType.TEXT_PLAIN) Response getContent(); } </code> </pre> <p> ...injected to Quarkus <a href="https://jakarta.ee/specifications/restful-ws/3.1/jakarta-restful-ws-spec-3.1.html">JAX-RS</a> resource: </p> <pre> <code> import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Response; import org.eclipse.microprofile.rest.client.inject.RestClient; @Path("website") public class WebsiteResource { @Inject @RestClient WebsiteClient firstClient; @Inject @RestClient WebsiteClient secondClient; @GET public String injected() { for (int i = 0; i &lt; 500; i++) { Response firstResponse = this.firstClient.getContent(); Response secondResponse = this.secondClient.getContent(); System.out.println(i); } return "+"; } } </code> </pre> <p> will block after 50 iterations. </p> <p> Reason: the exhaustion of the underlying HTTP connection pool. See stack trace: </p> <pre> <code> org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:393) org.apache.http.pool.AbstractConnPool.access$300(AbstractConnPool.java:70) org.apache.http.pool.AbstractConnPool$2.get(AbstractConnPool.java:253) org.apache.http.pool.AbstractConnPool$2.get(AbstractConnPool.java:198) org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:306) org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:282) org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) org.jboss.resteasy.client.jaxrs.engines.ManualClosingApacheHttpClient43Engine.invoke(ManualClosingApacheHttpClient43Engine.java:302) </code> </pre> <p> The underlying resources are freed with the <a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/ws/rs/core/response#close--">Response#close</a> call, now all 500 iterations are performed without blocking: </p> <pre> <code> @GET public String injected() { for (int i = 0; i &lt; 500; i++) { Response firstResponse = this.firstClient.getContent(); <em>firstResponse.close();</em> Response secondResponse = this.secondClient.getContent(); <em>firstResponse.close();</em> System.out.println(i); } return "+"; } </code> </pre> <p> The blocking behaviour depends on the JAX-RS / MicroProfile Rest Client implementation. <a href="https://docs.jboss.org/resteasy/docs/3.6.1.Final/userguide/html/RESTEasy_Client_Framework.html">RESTEasy</a> requires an explicit <code>Response#close</code> call, <a href="https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/user-guide.html">Jersey</a> does not. </p>Time Measurement with Duration, Instant, and ISO-8601https://adambien.blog/roller/abien/entry/time_measurement_with_duration_instant2022-09-02T03:54:47Z<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html">Duration</a> is a viable alternative to <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/System.html#currentTimeMillis()">System.currentTimeMillis()</a> for time measurements (also checkout: <a href="https://www.adam-bien.com/roller/abien/entry/beyond_system_currenttimemillis_measuring_time">Beyond System.currentTimeMillis: Measuring Time with Duration and Instant</a>): <pre> <code> import java.time.Duration; import java.time.Instant; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.Test; public class DurationToStringTest { void slow(){ try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) {} } @Test public void durationToString() throws InterruptedException { var start = Instant.now(); this.slow(); var duration = Duration.between(start, Instant.now()); var durationAsString = duration.toString(); //ISO-8601 System.out.println(durationAsString); } } </code> </pre> <p> The method <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#toString()">Duration#toString</a> returns a combined representation of hours, minutes, seconds and fractional seconds, standardized by <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO-8601</a>. </p> <p> The above example produces the following output: <code>PT1.001087S</code>. </p>From Java Object to JSON-P Type with "Pattern Matching for instanceof"https://adambien.blog/roller/abien/entry/from_java_object_to_json12022-09-01T02:34:42Z<a href="https://openjdk.org/jeps/305">JEP 305: Pattern Matching for instanceof</a> allows a more concise type conversion; the method <code>javaToJson</code> tests the type of the Java object and converts it to the corresponding <a href="https://jakarta.ee/specifications/jsonp/2.0/">JSON-P</a> without casting: </p> <pre> <code> import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import jakarta.json.Json; import jakarta.json.JsonValue; import jakarta.json.JsonValue.ValueType; public class PatternMatchingTest { JsonValue javaToJson(Object javaType){ if (javaType <em>instanceof String string</em>) { return Json.createValue(string); } else if (javaType <em>instanceof Integer integer</em>) { return Json.createValue(integer); } else if (javaType <em>instanceof Boolean bool</em>) { return bool? JsonValue.TRUE : JsonValue.FALSE; } return Json.createValue(javaType.toString()); } } </code> </pre> <p> Now a <code>List</code> of various Java types can be converted to the corresponding <a href="https://jakarta.ee/specifications/jsonp/2.0/">JSON-P (Jakarta JSON Processing)</a> values: </p> <pre> <code> @Test public void instanceOfWithoutCasting() { var mix = List.of("duke",42,true); assertEquals(ValueType.STRING, javaToJson(mix.get(0)).getValueType()); assertEquals(ValueType.NUMBER, javaToJson(mix.get(1)).getValueType()); assertEquals(ValueType.TRUE, javaToJson(mix.get(2)).getValueType()); } </code> </pre>Duration Conversion with java.util.concurrent.TimeUnithttps://adambien.blog/roller/abien/entry/duration_conversion_with_java_util2022-08-30T13:44:00Z<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/TimeUnit.html">java.util.concurrent.TimeUnit</a> provides methods to convert across various time units. <p> As an example, the following test converts three seconds to milliseconds: </p> <pre> <code> @Test public void secondsToMs() { var expected = 3 * 1000; var actual = TimeUnit.SECONDS.toMillis(3); assertEquals(expected, actual); } </code> </pre> <p> Now from milliseconds to minutes: </p> <pre> <code> @Test public void msToMinutes() { var expected = 3; var actual = TimeUnit.MILLISECONDS.toMinutes(180000); assertEquals(expected, actual); } </code> </pre> <p> With <code>TimeUnit</code> we can even wait for the next vacations: </p> <pre> <code> @Test public void sleepWithTimeUnitForThreeSeconds() throws InterruptedException { long start = System.currentTimeMillis(); TimeUnit.SECONDS.sleep(3); //TimeUnit.DAYS.sleep(300); :-) var duration = System.currentTimeMillis() - start; assertTrue(duration >= 3000); } </code> </pre>More Convenience with Rest Client for MicroProfile and Method Overloadinghttps://adambien.blog/roller/abien/entry/more_convenience_with_rest_client2022-08-28T13:29:52ZA <a href="https://jakarta.ee/specifications/restful-ws/3.1/jakarta-restful-ws-spec-3.1.html">JAX-RS</a> resource with optional header, or query parameters: <pre> <code> import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class GreetingResource { @GET @Produces(MediaType.TEXT_PLAIN) public String hello(@DefaultValue("james") @HeaderParam("firstName") String firstName, @DefaultValue("duke") @HeaderParam("lastName") String lastName) { return firstName + " " + lastName; } } </code> </pre> <p> ...is accessible via a <a href="https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html">Rest Client for MicroProfile</a> interface with <a href="https://en.wikipedia.org/wiki/Function_overloading">overloaded methods</a>: </p> <pre> <code> import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; @Path("/hello") @Produces(MediaType.TEXT_PLAIN) @RegisterRestClient(baseUri = "http://localhost:8080") public interface GreetingResourceClient { @GET public String hello(@HeaderParam("firstName") String firstName, @HeaderParam("lastName") String lastName); @GET public String hello(@HeaderParam("firstName") String firstName); @GET public String hello(); } </code> </pre> <p> Now the client can be injected and the overloaded methods conveniently called: </p> <pre> <code> import static org.junit.jupiter.api.Assertions.assertEquals; import javax.inject.Inject; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.junit.jupiter.api.Test; import io.quarkus.test.junit.QuarkusTest; @QuarkusTest public class GreetingResourceTest { @Inject @RestClient GreetingResourceClient client; @Test void helloWithoutParameters(){ var hello = this.client.hello(); assertEquals(hello, "james duke"); } @Test void helloWithFirstName(){ var hello = this.client.hello("john"); assertEquals(hello, "john duke"); } @Test void helloWithFirstNameAndLastName(){ var hello = this.client.hello("john","dukem"); assertEquals(hello, "john dukem"); } } </code> </pre>Mr. Omni--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/mr_omni_airhacks_fm_podcast2022-08-27T08:02:20Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #205 <a href="https://airhacks.fm">airhacks.fm</a> episode with Ken Fogel (<a href="https://twitter.com/omniprof">@omniprof</a>) about: <blockquote itemprop="description"> 3bit computers, early programming, mainframes, and teaching Java </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_205">download.</a> </article>Creating an empty, immutable, Listhttps://adambien.blog/roller/abien/entry/creating_an_empty_immutable_list2022-08-23T02:43:22ZStarting with Java 9, you can use <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html#of()">List.of()</a> to create an empty, immutable, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html">List</a> instance with typed elements (if there were any): <pre> <code> import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; public class EmptyListsTest { //Java 9+ @Test public void listOf() { var emptyList = List.&lt;String&gt;of(); assertTrue(emptyList.isEmpty()); } } </code> </pre> Prior to Java 9, you would have to use <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collections.html#emptyList()">Collections.emptyList()</a> to create an empty, immutable, List: <pre> <code> //Java 5+ @Test public void emptyList() { var emptyList = Collections.&lt;String&gt;emptyList(); assertTrue(emptyList.isEmpty()); } </code> </pre>About Java 18--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/about_java_18_airhacks_fm2022-08-21T18:34:48Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #204 <a href="https://airhacks.fm">airhacks.fm</a> episode with Nicolai Parlog (<a href="https://twitter.com/nipafx">@nipafx</a>) about: <blockquote itemprop="description"> vacations, Java 18 features, unit and system testing for documentation purposes and new Java keywords </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_204">download.</a> </article>Renarde Web Framework--The Very First Impressionhttps://adambien.blog/roller/abien/entry/renarde_web_framework_the_very2022-08-19T09:46:34Z<p> "Hello, Renarde!"--the very first impression of the <a href="https://quarkiverse.github.io/quarkiverse-docs/quarkus-renarde/dev/index.html">Quarkus Renarde - a server-side Web Framework</a> based on Convention over Configuration: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/gGSr85dinws?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> This screencast was inspired by a <a href="https://gist.github.com/AdamBien/0b9f2cfc903d92c43c8bd8aa1b605c72?permalink_comment_id=4071485#gistcomment-4071485">question</a> from the <a href="http://adambien.blog/roller/abien/entry/quarkus_renarde_devmode_ddos_bean">96h airhacks.tv</a>: </p>CDI RequestScoped,Threading and the javax.enterprise.context.ContextNotActiveExceptionhttps://adambien.blog/roller/abien/entry/cdi_requestscoped_threading_and_the2022-08-17T08:45:59ZAccessing a CDI <a href="https://jakarta.ee/specifications/cdi/2.0/apidocs/javax/enterprise/context/requestscoped?is-external=true"><code>@RequestScoped</code></a> bean: <pre> <code> import javax.enterprise.context.RequestScoped; @RequestScoped public class Greeter { public String hello(long number){ return "hello, duke " + number; } } </code> </pre> asynchronously: <pre><code> import java.util.stream.Collectors; import java.util.stream.Stream; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") @ApplicationScoped public class GreetingResource { @Inject Greeter greeter; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { var numbers = Stream.generate(System::currentTimeMillis) .limit(10) .toList(); return <em>numbers.parallelStream()</em> //stream() would work... .map(number -> this.greeter.hello(number)) .collect(Collectors.joining(",")); } } </code> </pre> may cause a <a href="https://jakarta.ee/specifications/cdi/2.0/apidocs/javax/enterprise/context/contextnotactiveexception"><code>javax.enterprise.context.ContextNotActiveException</code></a>, like e.g. <pre> <code> javax.enterprise.context.ContextNotActiveException: javax.enterprise.context.ContextNotActiveException: RequestScoped context was not active when trying to obtain a bean instance for a client proxy of CLASS bean [class=airhacks.Greeter, id=59c45f3d436e11499d8793e2c5fc0c26ffbe3933] - you can activate the request context for a specific method using the @ActivateRequestContext interceptor binding </code> </pre> <p> The entire example was implemented, and explained, "from scratch": </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/LYj2rhtYb-k?rel=0&vq=highres" allowfullscreen></iframe> </div>Adding / Merging / Joining two Collections / Listshttps://adambien.blog/roller/abien/entry/adding_merging_joining_two_collections2022-08-16T08:28:17ZTo join to <a href="https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/util/List.html">List</a> / <a href="https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/util/Collection.html">Collection</a> instances, you can <a href="https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/util/stream/Stream.html#concat(java.util.stream.Stream,java.util.stream.Stream)">concat</a> their <a href="https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/util/stream/Stream.html">stream</a>s: <pre> <code> import java.util.List; import java.util.stream.Stream; import org.junit.jupiter.api.Test; public class JoiningTwoLists { @Test public void join() { var first = List.of(1,2); var second = List.of(3,4); var joinedList = Stream.concat(first.stream(), second.stream()).toList(); joinedList.forEach(System.out::println); } } </code> </pre> <p> Prints: <code>1 2 3 4</code> </p> <p> See it in action: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/jM1vpQCJZbA?rel=0&vq=highres" allowfullscreen></iframe> </div>"I first played games I wrote"--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/i_first_played_games_i2022-08-14T12:03:32Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #203 <a href="https://airhacks.fm">airhacks.fm</a> episode with Daniel Lipp (<a href="https://twitter.com/dynamic_123">@dynamic_123</a>) about: <blockquote itemprop="description"> SmallTalk, ugly Java, enterprise architectures, clouds and Quarkus </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_203">download.</a> </article>JSON-B / JSON-P: From TextBlock To JsonArrayhttps://adambien.blog/roller/abien/entry/json_b_json_p_from2022-08-13T09:17:39ZYou can directly convert Java <a href="https://adambien.blog/roller/abien/entry/java_textblocks_and_string_replace">TextBlocks</a> to <a href="https://jakarta.ee/specifications/jsonp/2.0/apidocs/jakarta.json/jakarta/json/jsonarray">JsonArray</a> with <a href="https://projects.eclipse.org/projects/ee4j.jsonb">Jakarta JSON Binding (JSON-B)</a> and <a href="https://projects.eclipse.org/projects/ee4j.jsonp">Jakarta JSON Processing (JSON-P)</a>: <pre> <code> import org.junit.jupiter.api.Test; import jakarta.json.JsonArray; import jakarta.json.JsonObject; import jakarta.json.bind.JsonbBuilder; public class TextBlockToJsonArray { @Test public void deserializeTextBlock() { var input = """ [ { "name": "java", "age": 25 }, { "name": "python", "age": 52 }] """; var jsonArray = JsonbBuilder.create().fromJson(input, JsonArray.class); //output jsonArray.getValuesAs(JsonObject.class).forEach(System.out::println); } } </code> </pre> <p> The output: </p> <pre><code> {"name":"java","age":25} {"name":"python","age":52} </code></pre> <p> JSON-B and JSON-P functionality comes as a single dependency: </p> <pre> <code> &lt;dependency&gt; &lt;groupId&gt;org.eclipse&lt;/groupId&gt; &lt;artifactId&gt;yasson&lt;/artifactId&gt; &lt;version&gt;2.0.4&lt;/version&gt; &lt;/dependency&gt; </code> </pre>Testing Jakarta EE, JAX-RS concurrency, Bulk Heads, Dependency Inversion, QuarkusTest, Authentication and DB, Secrets, sops, AWS KMS, SSM and SM--101st airhacks.tv Q & Ahttps://adambien.blog/roller/abien/entry/testing_jakarta_ee_jax_rs2022-08-12T10:09:29ZThe 101st <a href="https://airhacks.tv">airhacks.tv</a> episode with the following topics / questions: <blockquote> "How to test Jakarta EE applications, JAX-RS concurrency and Bulk Heads, Java interfaces and dependency inversion, dependency on QuarkusTest, using authentication data for filtering, exposing versions, secrets, sops, AWS KMS, SSM and SM" </blockquote> <p> ...is ready to watch: </p> <div class="screencast"> <iframe src="https://www.youtube.com/embed/HyB1OtY2s38?rel=0&vq=highres" allowfullscreen></iframe> </div> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/49efb5c357b19ad2bdde82ea026db803">gist.github.com/AdamBien/49efb5c357b19ad2bdde82ea026db803</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p>Testability, Concurrency, Dependency Inversion, Authentication--101st airhacks.tvhttps://adambien.blog/roller/abien/entry/testability_concurrency_dependency_inversion_authentication2022-08-08T08:34:31ZQuestions for 101st <a href="https;//airhacks.tv">airhacks.tv</a> (live <a href="https://www.youtube.com/c/bienadam/">https://www.youtube.com/c/bienadam/</a>): <ol> <li>100 episodes back--the topics</li> <li>The story of Jakarta EE / MicroProfile testability</li> <li>JAX-RS and endpoint concurrency</li> <li>About interfaces and Dependency Inversion</li> <li>A portable QuarkusTest?</li> <li>Using authentication data for filtering in the business logic</li> </ol> <p> See you every first Monday of the month at <a href="https://airhacks.tv">https://airhacks.tv</a> 8pm CET (UTC+1:00). Show is also announced at: <a href="https://meetup.com/airhacks">meetup.com/airhacks</a>. </p> <p> Any questions left? Ask now: <a href="https://gist.github.com/AdamBien/1033b6da5d5e75699f0c9c2c44ecb520">gist.github.com/AdamBien/1033b6da5d5e75699f0c9c2c44ecb520</a> and get the answers at the next <a href="https://airhacks.tv">airhacks.tv</a>. </p>AWS Lambda, Events, Quarkus and Java--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/aws_lambda_events_quarkus_and2022-08-07T02:31:35Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #202 <a href="https://airhacks.fm">airhacks.fm</a> episode with Goran Opacic (<a href="https://twitter.com/goranopacic">@goranopacic</a>) about: <blockquote itemprop="description"> applying enterprise Java thinking to serverless clouds, Quarkus, AWS Lambda, consistency, DynamoDB and the "undifferentiated heavy lifting." </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_202">download.</a> </article>Superfluous "Stringification" and javax.json.stream.JsonParsingExceptionhttps://adambien.blog/roller/abien/entry/superfluous_stringification_and_javax_json2022-08-06T13:38:24ZThe following exception: <p> <code> "<a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/json/stream/jsonparsingexception">javax.json.stream.JsonParsingException</a>: JsonParser#getObject() or JsonParser#getObjectStream() is valid only for START_OBJECT parser state. But current parser state is VALUE_STRING" </code> </p> <p> ...can be caused by a superfluous "stringification" of regular JavaScript strings, like e.g. <code>JSON.stringify(aString)</code> </p> <p> The <a href="https://eclipse-ee4j.github.io/jsonp/">JSON-P</a> parser expects: <code>{"hey":"duke"}</code> but gets: <code>"{\"hey\":\"duke\"}"</code> </p> <p> To fix the problem, remove <code>JSON.stringify(aString);</code> and send the string directly to the <a href="https://microprofile.io">MicroProfile</a> server: </p> <p> <pre> <code> const payload = "{"hey":"duke"}"; const response = await fetch("http://localhost:8080/imports", { method: 'POST', body: payload, headers: { 'Content-type':'application/json' } }); </code> </pre> </p>Testing With MicroProfile REST Client: How To Prevent WebApplicationExceptionhttps://adambien.blog/roller/abien/entry/testing_with_microprofile_rest_client2022-08-01T11:41:07ZAn invocation of a not-existing resource / endpoint with <a href="https://github.com/eclipse/microprofile-rest-client/releases/tag/3.0">MicroProfile REST client</a>, like e.g.: <pre> <code> import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; <em>@Path("/SHOULD_NOT_EXIST")</em> @RegisterRestClient(baseUri = "https://microprofile.io/") public interface ProblematicResourceClient { @GET @Produces(MediaType.TEXT_PLAIN) Response fetchNotExistingContent(); } </code> </pre> <p> will cause an <a href="https://jakarta.ee/specifications/platform/8/apidocs/javax/ws/rs/webapplicationexception">WebApplicationException</a> like e.g.: </p> <pre> <code> javax.ws.rs.WebApplicationException: Unknown error, status code 404 at org.jboss.resteasy.microprofile.client.DefaultResponseExceptionMapper.toThrowable(DefaultResponseExceptionMapper.java:21) (...) </code> </pre> <p> To test the 404 status code: </p> <pre> <code> import io.quarkus.test.junit.QuarkusTest; import static org.junit.jupiter.api.Assertions.assertEquals; import javax.inject.Inject; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.junit.jupiter.api.Test; @QuarkusTest public class ProblematicResourceClientIT { @Inject @RestClient ProblematicResourceClient cut; @Test public void callNotExistingResource() { var response = this.cut.fetchNotExistingContent(); <em>assertEquals(response.getStatus(), 404);</em> } } </code> </pre> <p> ...you need to set the MP config parameter to <code>true</code>:: <pre> <code> <a href="https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html#_default_responseexceptionmapper">microprofile.rest.client.disable.default.mapper</a>=true </code> </pre> </p> <p> Now the <a href="https://jakarta.ee/specifications/restful-ws/2.1/apidocs/index.html?javax/ws/rs/core/Response.html">Response</a> contains the status code <code>404</code> and the test passes. </p>Write, Finish, Improve-jPOS--airhacks.fm podcasthttps://adambien.blog/roller/abien/entry/201_write_finish_improve_jpos2022-07-31T18:29:31Z<p> Subscribe to <a href="https://airhacks.fm">airhacks.fm podcast</a> via: <a href="https://open.spotify.com/show/6nOTQLa2uZxeyGpMW8eppS">spotify</a>| <a href="https://itunes.apple.com/de/podcast/airhacks-fm/id1296655154?l=en">iTunes</a>| <a href="https://pcr.apple.com/id1296655154">RSS</a> </p> <article itemscope itemtype="https://schema.org/PodcastEpisode"> The #201 <a href="https://airhacks.fm">airhacks.fm</a> episode with Alejandro Pablo Revilla (<a href="https://twitter.com/apr">@apr</a>) about: <blockquote itemprop="description"> long distance radio, early internet, opensource innovation, building Point of Sales (POS) software in Java, no-dependencies thinking and having fun with continuous improvement. </blockquote> is available for <a itemprop="url" href="https://airhacks.fm/#episode_201">download.</a> </article>