adambien.blog software engineering, clouds, development, architectures, and fun with Java https://adambien.blog/roller/ From Java VMs and GPU Acceleration to Motorcycle Electronics--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #321 airhacks.fm episode with Christos Kotselidis (@CKotselidis) about:
TornadoVM, GPU acceleration, LLM inference and motorcycle electronics
is available for
]]>
https://adambien.blog/roller/abien/entry/_from_java_vms_and_gpu_acceleration_to_motorcycle_electronic Sun, 17 Nov 2024 14:10:18 +0000 https://adambien.blog/roller/abien/entry/_from_java_vms_and_gpu_acceleration_to_motorcycle_electronic
Late 2024 Conferences, Java User Group Meetings and Online Workshops
  • The Short Way to Serverless NoOps on AWS[online event]
    conference session 22nd November 2024
  • JUG: Pure Java LLM Integration
    session JUG Vienna 25th November 2024
  • JUG: The Only Reasonable Way To Test your (ยต)Services
    session JUG Vienna 25th November 2024
  • JUG: Kickass Enterprise Java LLM Inference
    session JUG Hamburg 26th November 2024
  • #129th airhacks.tv Questions and Answers #slideless[online event]
    live streaming show 9th December 2024
  • Ya!vaConf: Pure Java AI/LLM Integration
    session Ya!vaConf Warsaw 11th December 2024
  • Single Table Design with Java[online event]
    airhacks.live workshop 17 December 2024
  • LLM / GenAI Java Bootstrap[online event]
    airhacks.live workshop 19 December 2024
  • ]]>
    https://adambien.blog/roller/abien/entry/late_2024_conferences_java_user_group_meetings_and_online_workshops Fri, 15 Nov 2024 14:32:30 +0000 https://adambien.blog/roller/abien/entry/late_2024_conferences_java_user_group_meetings_and_online_workshops
    From XML-Driven Enterprise Java to Serverless AWS Lambdas--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #320 airhacks.fm episode with Vadym Kazulkin (@VKazulkin) about:
    serverless Java with AWS Lambda, Java's performance on lambda compared to node.js, AWS SnapStart, Lambda functions and microservices
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_xml_driven_enterprise_java_to_serverless_aws_lambdas_a Sun, 10 Nov 2024 14:39:28 +0000 https://adambien.blog/roller/abien/entry/from_xml_driven_enterprise_java_to_serverless_aws_lambdas_a
    k8s Costs, UUIDs, EJBs to CDI migration--Questions for 128th airhacks.tv 2024.11 / 128th edition of airhacks.tv with the following topics:
    1. K8 cost estimation
    2. UUID generation for persistence
    3. Thoughts on: How to migrate from EJB to CDI?
    4. the 100-episodes back time machine. Questions from: 28th airhacks.tv:
      "Java EE 8 News, New server (the real hardware): the part list. Oracle says it is 'commmitted' to Java EE 8 microprofile.io announcement Wildfly-Swarm, Payara Micro and the relation to microservices Dynamic injection into @Stateless EJBs Handling ViewExpiredException in JSF Managing JAX-RS clients on servers Accessing GlassFish / Payara logifles from the browser Is overusing CDI a code smell? JAX-RS MessageBodyWriter and Singleton challenges How to approach logging in microservices? Monitoring Java EE methods"

    Any questions left? Ask now: and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/k8s_costs_uuids_ejbs_to_cdi_migration_questions_for_128th_airhacks_tv Mon, 04 Nov 2024 18:39:17 +0000 https://adambien.blog/roller/abien/entry/k8s_costs_uuids_ejbs_to_cdi_migration_questions_for_128th_airhacks_tv
    JDBC with Oracle Deeper Dive: From OCI to Thin Drivers and Beyond--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #319 airhacks.fm episode with Gerald Venzl (@geraldvenzl) about:
    JDBC drivers and interesting, proprietary Oracle Database features
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/jdbc_with_oracle_deeper_dive_from_oci_to_thin_drivers_and_b Sun, 03 Nov 2024 15:39:15 +0000 https://adambien.blog/roller/abien/entry/jdbc_with_oracle_deeper_dive_from_oci_to_thin_drivers_and_b
    Java, LLMs, and Seamless AI Integration with langchain4j, Quarkus and MicroProfile--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #318 airhacks.fm episode with Dmytro Liubarsky (@langchain4j) about:
    easy RAG with langchain4j, MicroProfile and langchain4j "synergies" and future developments
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_llms_and_seamless_ai_integration_with_langchain4j_qu Sat, 26 Oct 2024 09:26:37 +0000 https://adambien.blog/roller/abien/entry/java_llms_and_seamless_ai_integration_with_langchain4j_qu
    Quarkus and LangChain4J - A Match Made in Heaven Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #317 airhacks.fm episode with Georgios Andrianakis (@geoand86) about:
    langchain4j, Quarkus and the architecture of LLM integration
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/quarkus_and_langchain4j__a_match_made_in_heaven Sun, 20 Oct 2024 09:47:27 +0000 https://adambien.blog/roller/abien/entry/quarkus_and_langchain4j__a_match_made_in_heaven
    The Best of Java Shorts Show--Is Available on Github JDD 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: (youtube.com/bienadam/shorts) daily, "from scratch" usually without any dependencies, build tools, or even compilation.

    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:

    I have received several requests for the source code and have published a selection (>100) of the snippets here: github.com/AdamBien/best-of-java-shorts

    ]]>
    https://adambien.blog/roller/abien/entry/the_best_of_java_shorts_show_is_available_on_github Fri, 18 Oct 2024 17:41:04 +0000 https://adambien.blog/roller/abien/entry/the_best_of_java_shorts_show_is_available_on_github
    Why JVector 3 Is The Most Advanced Embedded Vector Search Engine--airhacks.fm podcat Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/why_jvector_3_is_the_most_advanced_embedded_vector_search_en Sun, 13 Oct 2024 10:56:16 +0000 https://adambien.blog/roller/abien/entry/why_jvector_3_is_the_most_advanced_embedded_vector_search_en
    Live From Devoxx Belgium: Pure Java Enterprise AI/LLM Integration (EAI 2.0) Devoxx Belgium:
    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.
    ]]>
    https://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_pure_java_enterprise_ai_llm_integration_eai_2_0_ Sat, 12 Oct 2024 15:23:23 +0000 https://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_pure_java_enterprise_ai_llm_integration_eai_2_0_
    Live From Devoxx Belgium: The Best of Java Shorts Show: 100 Snippets in 50 Minutes youtube.com/bienadam/shorts and presented them live at Devoxx Belgium.
    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, 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 youtube.com/bienadam/shorts. No builds, no Maven, no dependencies, just javac and Visual Studio code.
    ]]>
    https://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_the_best_of_java_shorts_show_100_snippets_in_50_minutes Fri, 11 Oct 2024 14:56:16 +0000 https://adambien.blog/roller/abien/entry/live_from_devoxx_belgium_the_best_of_java_shorts_show_100_snippets_in_50_minutes
    Abstract Classes vs. Interfaces, Performance Benchmarking, JMH, Lambdas and Databases--127th airhacks.tv airhacks.tv with the following topics:
    "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"

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/26939d9a232bd0c3b79fd6149bc0815b

    ]]>
    https://adambien.blog/roller/abien/entry/abstract_classes_vs_interfaces_performance_benchmarking_jmh_lambdas_and_databases_127th_airhacks_tv Tue, 08 Oct 2024 12:17:05 +0000 https://adambien.blog/roller/abien/entry/abstract_classes_vs_interfaces_performance_benchmarking_jmh_lambdas_and_databases_127th_airhacks_tv
    Performance Abstract classes vs. Interfaces, Lambda and DB Connections, JMH--Questions for 127th airhacks.tv airhacks.tv with the following topics:
    1. performance: abstract class vs. interface Hi, I got an interview question as to which one is faster Abstract class or Interface ? Can you explain please. What is Faster: String.join or Collectors.joining?
    2. DB connections and lambda shutdown
    3. performance measurement with or without JMH: "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." from: What is Faster: String.join or Collectors.joining?
    4. the 100-episodes back time machine. Questions from: 27th airhacks.tv:
      "Interceptors and Dependency Injection Singleton EJBs, CDI and concurrency BCE in Eclipse and can Boundary communicate with Entity? Stateful EJBs vs. SessionScoped"

    Any questions left? Ask now: https://gist.github.com/AdamBien/0e1193cd4697658cd226e4c370bec94d and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/performance_abstract_classes_vs_interfaces_lambda_and_db_connections_jmh_questions_for_127th_airhacks_tv Mon, 07 Oct 2024 15:28:19 +0000 https://adambien.blog/roller/abien/entry/performance_abstract_classes_vs_interfaces_lambda_and_db_connections_jmh_questions_for_127th_airhacks_tv
    The AI Revolution in Java Development and Devoxx Genie--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #315 airhacks.fm episode with Stephan Janssen (@Stephan007) about:
    the LLM Revolution in software development and building the Devoxx Genie plugin
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_ai_revolution_in_java_development_and_devoxx_genie_airh Sun, 06 Oct 2024 09:24:22 +0000 https://adambien.blog/roller/abien/entry/the_ai_revolution_in_java_development_and_devoxx_genie_airh
    From Apache Cassandra to Serverless: Exploring Cloud-Native Databases--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #314 airhacks.fm episode with Jake Luciani (@tjake) about:
    NoSQL, Cassandra, DynamoDB, cloud-native databases, and LLMs integration with pure Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_apache_cassandra_to_serverless_exploring_cloud_native_databases_airhacks_fm_podcast Sat, 05 Oct 2024 16:37:07 +0000 https://adambien.blog/roller/abien/entry/from_apache_cassandra_to_serverless_exploring_cloud_native_databases_airhacks_fm_podcast
    JSON validation, DTOs, Microprofile, Lift and Shift, JSONPath--126th airhacks.tv airhacks.tv with the following topics:
    "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"

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/json_validation_dtos_microprofile_lift_and_shift_jsonpath_126th_airhacks_tv Tue, 01 Oct 2024 10:56:13 +0000 https://adambien.blog/roller/abien/entry/json_validation_dtos_microprofile_lift_and_shift_jsonpath_126th_airhacks_tv
    Revolutionizing AI with Java: From LLMs to Vector APIs--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #313 airhacks.fm episode with Alfonso Peterssen (@TheMukel) about:
    pure Java LLM integration with and without GraalVM
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/revolutionizing_ai_with_java_from_llms_to_vector_apis_airh Sat, 28 Sep 2024 12:28:46 +0000 https://adambien.blog/roller/abien/entry/revolutionizing_ai_with_java_from_llms_to_vector_apis_airh
    Late 2024 Conferences, Java User Groups (JUG) and Workshops
  • #127th airhacks.tv Questions and Answers #slideless[online event]
    live streaming show 7th October 2024
  • Devoxx Belgium: Pure Java Enterprise AI/LLM Integration (EAI 2.0)
    conference session Devoxx Belgium Antwerpen Kinepolis 10th October 2024
  • Devoxx Belgium: The Best of Java Shorts Show: 100 Snippets in 50 Minutes
    conference session Devoxx Belgium Antwerpen Kinepolis 10th October 2024
  • Silesia Java User Group (Silesia JUG): Rethinking Enterprise Java Development
    JUG session Silesia Java User Group (Silesia JUG) Katowice 15th October 2024
  • OC for Java: Conflicting architectures: Public vs. Private Clouds with Jakarta EE
    OCX Conference session OC for Java Mainz, Halle 45 23rd October 2024
  • W-JAX Munich: Pure Java Enterprise AI / LLM Integration Patterns, Hacks und Workarounds
    JUG session W-JAX Munich Munich 5th November 2024
  • W-JAX Munich: Rethinking Enterprise Java Development
    JUG session W-JAX Munich Munich 5th November 2024
  • W-JAX Munich: The Best of Java Shorts Show: 100 Snippets in 45 Minutes
    JUG session W-JAX Munich Munich 5th November 2024
  • Single Table Design with Java[online event]
    airhacks.live workshop 17 December 2024
  • LLM / GenAI Java Bootstrap[online event]
    airhacks.live workshop 19 December 2024
  • ]]>
    https://adambien.blog/roller/abien/entry/late_2024_conferences_java_user_groups_jug_and_workshops Thu, 26 Sep 2024 09:48:01 +0000 https://adambien.blog/roller/abien/entry/late_2024_conferences_java_user_groups_jug_and_workshops
    JAX-RS With- and Without Reactive Programming in Quarkus--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #312 airhacks.fm episode with Georgios Andrianakis (@geoand86) about:
    performance and scalability considerations for JAX-RS and reactive programming in various use cases, JSON-B, Jackson, reactive Hibernate and LangChain4j
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/jax_rs_with_and_without_reactive_programming_in_quarkus_airhacks_fm_podcast Sun, 22 Sep 2024 17:06:45 +0000 https://adambien.blog/roller/abien/entry/jax_rs_with_and_without_reactive_programming_in_quarkus_airhacks_fm_podcast
    Developer and Database Administrator--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/developer_and_database_administrator_airhacks_fm_podcast Tue, 10 Sep 2024 13:27:13 +0000 https://adambien.blog/roller/abien/entry/developer_and_database_administrator_airhacks_fm_podcast
    Java 22 and 23 Features--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #310 airhacks.fm episode with Nicolai Parlog (@nipafx) about:
    Java 22 / 23 Features, Java and LLMs, Java build tools, beginner's experience and "enterprise" Java AI
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_22_and_23_features_airhacks_fm_podcast Tue, 03 Sep 2024 10:05:00 +0000 https://adambien.blog/roller/abien/entry/java_22_and_23_features_airhacks_fm_podcast
    Constructor DI, Interface Misuse, JSON validation, Re-Architecting, Lift and Shift, Docker Redeployment--Questions for 126th airhacks.tv
  • Thoughts on constructor injection v2
  • misusing interfaces
  • JSON object validation
  • thoughts on MicroProfile and Jakarta EE
  • re-architecting, lift and shift and: adambien.blogmigration and vimeo.com/ondemand/microprofile training
  • private vs. public cloud hosting
  • > 650 youtube Java shorts youtube.com/bienadam/shorts
  • the 100-episodes back time machine. Questions from: 26th airhacks.tv:

    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

  • Any questions left? Ask now: gist.github.com/AdamBien/95544fc7692e0ce518ffb17573507443and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien(@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/constructor_di_interface_misuse_json_validation_re_archit Mon, 02 Sep 2024 14:39:47 +0000 https://adambien.blog/roller/abien/entry/constructor_di_interface_misuse_json_validation_re_archit
    From Spring to Quarkus: A Java Developer's Journey--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #309 airhacks.fm episode with Georgios Andrianakis (@geoand86) about:
    J2EE, NodeJS and Spring development and the transition to Quarkus.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_spring_to_quarkus__a_java_developer_s_journey__airhacks_fm_podcast Sat, 24 Aug 2024 14:57:23 +0000 https://adambien.blog/roller/abien/entry/from_spring_to_quarkus__a_java_developer_s_journey__airhacks_fm_podcast
    How Micrometer Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/how_micrometer_happened__airhacks_fm_podcast Sat, 24 Aug 2024 14:26:51 +0000 https://adambien.blog/roller/abien/entry/how_micrometer_happened__airhacks_fm_podcast
    How the Java-Optimized Vega Chip Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/how_the_java_optimized_vega_chip_happened__airhacks_fm_podcast Sat, 24 Aug 2024 14:24:46 +0000 https://adambien.blog/roller/abien/entry/how_the_java_optimized_vega_chip_happened__airhacks_fm_podcast
    How Java HotSpot Compiler Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #306 airhacks.fm episode with Cliff Click (@cliff_click) about:
    compiler fascination, optimization and the Java HotSpot compiler
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_java_hotspot_compiler_happened Tue, 06 Aug 2024 12:27:39 +0000 https://adambien.blog/roller/abien/entry/how_java_hotspot_compiler_happened
    Reporting, Long Running Actions, Constructor Injection, Guava Services--Questions for 125th airhacks.tv
  • Thoughts on constructor injection
  • Guava Services vs. Quarkus and Micronaut
  • Thoughts on MicroProfile Long Running Actions (LRA)
  • Time machine. Questions from: 25th airhacks.tv:

    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?

  • Any questions left? Ask now: gist.github.com/AdamBien/edbfe339f2f1fbc7e5e2b219d51d5735 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/reporting_long_running_actions_constructor Mon, 05 Aug 2024 07:58:08 +0000 https://adambien.blog/roller/abien/entry/reporting_long_running_actions_constructor
    How Bach - "The Java Shell Builder" Happened --airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #305 airhacks.fm episode with Christian Stein (@sormuras) about:
    Hudson, Jenkins, JUnit, game development in Java and no-dependencies Java build tools
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_bach_the_java_shell Mon, 29 Jul 2024 13:05:42 +0000 https://adambien.blog/roller/abien/entry/how_bach_the_java_shell
    From J2ME, over Bluetooth and Speech Recognition to AI--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/from_j2me_over_bluetooth_and Sun, 21 Jul 2024 08:46:29 +0000 https://adambien.blog/roller/abien/entry/from_j2me_over_bluetooth_and
    Project Valhalla: Value Types, Nullability and Float16--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #303 airhacks.fm episode with Paul Sandoz (@paulsandoz) about:
    Project Panama, Vector API, Value Types, machine learning, benefits of nullability in API design and new datatypes like e.g. Float16 in Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/project_valhalla_value_types_nullability Sun, 14 Jul 2024 16:53:14 +0000 https://adambien.blog/roller/abien/entry/project_valhalla_value_types_nullability
    OpenRewrite: Transforming Java Code at Scale--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #302 airhacks.fm episode with Jonathan Schneider (@jon_k_schneider) about:
    OpenRewrite features, added value of the Moderne Platform and opensource strategies
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/openrewrite_transforming_java_code_at Sun, 07 Jul 2024 13:26:39 +0000 https://adambien.blog/roller/abien/entry/openrewrite_transforming_java_code_at
    Interviewed by a Recruiter: "Java and AWS Cloud: Building Scalable Enterprise Solutions" Michal Juhas could be fun! Our conversation ranged from the latest Java innovations to Infrastructure as Code (IaC) to serverless computing to hiring questions:

    ]]>
    https://adambien.blog/roller/abien/entry/interviewed_by_a_recruiter_java Fri, 05 Jul 2024 02:49:01 +0000 https://adambien.blog/roller/abien/entry/interviewed_by_a_recruiter_java
    Dying Java DBs, EJB Migrations, Kubernetes, Serverless Java, Maven, Gradle, Native Images--Questions for 124th airhacks.tv Questions and topics for the 2024.7 / 124th edition of airhacks.tv with the following topics:
    1. How to deal with EJB passivation in CDI
    2. How to deal with EJB pooling in CDI
    3. Migration from CMP Entities to recent Jakarta EE / MicroProfile
    4. GeeCON session "Containerless, Bloatless, YAML-less, Serverless Java #slideless" questions
      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?
    5. Time machine / questions from 24th airhacks.tv:
      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?

    Any questions left? Ask now: https://gist.github.com/AdamBien/463d60f4fa37489120df7816d74ff3b3 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/ejb_migrations_kubernetes_serverless_java Mon, 01 Jul 2024 04:09:01 +0000 https://adambien.blog/roller/abien/entry/ejb_migrations_kubernetes_serverless_java
    JVector: Cutting-Edge Vector Search in Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #301 airhacks.fm episode with Jonathan Ellis (@spyced) about:
    JVector database implementation and design choices
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/jvector_cutting_edge_vector_search Sun, 30 Jun 2024 11:35:59 +0000 https://adambien.blog/roller/abien/entry/jvector_cutting_edge_vector_search
    Object-Oriented Programming (OOP) vs. Data-Oriented Programming (DOP) in Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #300 airhacks.fm episode with Nicolai Parlog (@nipafx) about:
    the killer features of Object-Oriented Programming (OOP) and Data-Oriented Programming (DOP) in Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/object_oriented_programming_oop_vs Sun, 23 Jun 2024 10:34:14 +0000 https://adambien.blog/roller/abien/entry/object_oriented_programming_oop_vs
    From JSP to Rife and From Kotlin to Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #299 airhacks.fm episode with Erik C. Thauvin (@ethauvin) about:
    migrating Java projects to the Rife 2 framework and moving from Kotlin to Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_jsp_to_rife_and Mon, 17 Jun 2024 10:44:38 +0000 https://adambien.blog/roller/abien/entry/from_jsp_to_rife_and
    Live from JCON Europe 2024: "Serverless Java #slideless" JCON Europe 2024.

    I used the following template in this talk as base for the examples: aws-functionurl-cdk-only. However, most of my real-world projects rely on the: aws-quarkus-lambda-cdk-plain project.

    See you at airhacks.live!.

    The abstract:

    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.

    ]]>
    https://adambien.blog/roller/abien/entry/live_from_jcon_europe_2024 Fri, 14 Jun 2024 13:17:33 +0000 https://adambien.blog/roller/abien/entry/live_from_jcon_europe_2024
    The bld Power User--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #298 airhacks.fm episode with Erik C. Thauvin (@ethauvin) about:
    using bld in production and the differences to Apache Maven and Gradle
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_bld_power_user_airhacks Sun, 09 Jun 2024 15:35:26 +0000 https://adambien.blog/roller/abien/entry/the_bld_power_user_airhacks
    Lambda Communication, EDAs, Step Functions and llama--Questions for 123rd airhacks.tv airhacks.tv with the following topics:
    1. Conferences attended: jCon and GeekOn
    2. Time machine show reviewing questions from 2016
    3. Upcoming courses on serverless NoSQL with Java and using LLMs in enterprise
    4. Interesting podcast episodes on Kotlin, LLM integration with Java, and JVector database
    5. Various ways for AWS Lambda functions to communicate with each other and external services [from: https://discord.gg/airhacks]
    6. llama2.java--Llama 2 in With One Pure Java 21 File [video: https://youtu.be/71t5vjSbfsI]

    Any questions left? Ask now: https://gist.github.com/AdamBien/0909ac2cbae6781b868d3e1c00ac4e4c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/lambda_communication_edas_step_functions Tue, 04 Jun 2024 13:32:21 +0000 https://adambien.blog/roller/abien/entry/lambda_communication_edas_step_functions
    Observability-Driven Development with Digma, Serverless and Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #297 airhacks.fm episode with Roni Dover (@doppleware) about:
    Digma, continuous observability, serverless computing and Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/observability_driven_development_with_digma Sun, 02 Jun 2024 08:45:12 +0000 https://adambien.blog/roller/abien/entry/observability_driven_development_with_digma
    Exploring ONNX, Embedding Models, and Retrieval Augmented Generation (RAG) with Langchain4j--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #296 airhacks.fm episode with Dmytro Liubarskyi (@langchain4j) about:
    ONNX format and runtime for running neural network models in Java, Quarkus / MicroProfile integration, and the pragmatic added value of langchanin4j.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/exploring_onnx_embedding_models_and Sat, 01 Jun 2024 09:18:11 +0000 https://adambien.blog/roller/abien/entry/exploring_onnx_embedding_models_and
    High-Performance Java, Or How JVector Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #295 airhacks.fm episode with Jonathan Ellis (@spyced) about:
    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
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/high_performance_java_or_how Sat, 18 May 2024 10:31:07 +0000 https://adambien.blog/roller/abien/entry/high_performance_java_or_how
    Modern Java in the Cloud or OnPrem--BaselOne Keynote BaselOne 2023 keynote:

    ]]>
    https://adambien.blog/roller/abien/entry/modern_java_in_the_cloud Tue, 14 May 2024 12:03:33 +0000 https://adambien.blog/roller/abien/entry/modern_java_in_the_cloud
    LLama2.java: LLM integration with A 100% Pure Java file--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/llama2_java_llm_integration_with Mon, 13 May 2024 00:44:51 +0000 https://adambien.blog/roller/abien/entry/llama2_java_llm_integration_with
    Serverless Java with Quarkus, Parallel Streams, and Epsilon GC--122nd airhacks.tv airhacks.tv with the following topics:
    1. History of airhacks.tv and airhacks.com workshops
    2. Migrating JAX-RS to serverless using Quarkus: Quarkus translates JSON HTTP events to JAX-RS invocations
    3. Difference between Quarkus and Micronaut: Build-time deployment and extensions in Quarkus
    4. Using Lambda for load balancing in front of backend cloud services
    5. Java performance and energy efficiency compared to other languages based on a study
    6. Parallel streams and CompletableFuture for optimizing access to DynamoDB and S3
    7. Purpose of Serializable marker interface in Java
    8. Using Epsilon GC (no-op garbage collector) in Java for serverless
    9. Comparing Java EE and Spring performance from 8 years ago

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/serverless_java_with_quarkus_parallel Tue, 07 May 2024 15:42:09 +0000 https://adambien.blog/roller/abien/entry/serverless_java_with_quarkus_parallel
    Serverless Java, Lambda Load Balancer, Serializable--Questions for 122st airhacks.tv airhacks.tv with the following topics:
    1. Serverless: Quarkus vs. plain Java [from: https://discord.gg/airhacks]
    2. Serverless: Java vs. Python [from: https://discord.gg/airhacks]
    3. Lambda as Load Balancer?
    4. Parallel execution without reactive frameworks
    5. The purpose of Serializable interface
    6. How to learn Quarkus [video: https://youtu.be/H7O7mIJCLFY]

    Any questions left? Ask now: https://gist.github.com/AdamBien/39f104488136a52d16221a310f4581d1 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/serverless_java_lambda_load_balancer Mon, 06 May 2024 00:38:09 +0000 https://adambien.blog/roller/abien/entry/serverless_java_lambda_load_balancer
    How Kotlin Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/how_kotlin_happened_airhacks_fm Sun, 05 May 2024 14:49:27 +0000 https://adambien.blog/roller/abien/entry/how_kotlin_happened_airhacks_fm
    How Azul Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/how_azul_happened_airhacks_fm Sun, 28 Apr 2024 11:36:14 +0000 https://adambien.blog/roller/abien/entry/how_azul_happened_airhacks_fm
    Pure Java AI--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #291 airhacks.fm episode with Dr. Zoran Sevarac (@zsevarac) about:
    full-stack Java AI with DeepNetts and GPU acceleration
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/pure_java_ai_airhacks_fm Sat, 20 Apr 2024 11:27:45 +0000 https://adambien.blog/roller/abien/entry/pure_java_ai_airhacks_fm
    How to Quickly Switch Between JDKs Without Tools alias j8='export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home;javaPATH' alias javaPATH='export PATH=$JAVA_HOME/bin:$PATH'

    You can switch to Java 8 by running j8 in your terminal. (Quickly switching to Java 8 is especially useful for code archealogists and historians.)

    ]]>
    https://adambien.blog/roller/abien/entry/how_to_quickly_switch_between Thu, 18 Apr 2024 14:13:52 +0000 https://adambien.blog/roller/abien/entry/how_to_quickly_switch_between
    How OpenRewrite Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/how_openrewrite_happened_airhacks_fm Sun, 14 Apr 2024 10:58:18 +0000 https://adambien.blog/roller/abien/entry/how_openrewrite_happened_airhacks_fm
    bld vs. Apache Maven--Or Pure Java vs. XML A MicroProfile / Jakarta EE Apache Maven pom.xml is 31 lines of code or less.

    A Maven configuration for a simple Java SE project is twice as long.

    In this screencast I'm comparing Apache Maven to bld ("bld: The Hypersonic Java Build Tool"):

    Also checkout the airhacks.fm podcast: "No Dependencies--Or How Rife 2 and Bld Happened"

    ]]>
    https://adambien.blog/roller/abien/entry/bld_vs_apache_maven_or Fri, 12 Apr 2024 05:38:21 +0000 https://adambien.blog/roller/abien/entry/bld_vs_apache_maven_or
    bld: The Hypersonic Java Build Tool JEP 458 "Launch Multi-File Source Code Programs". This allows you to create CLI applications and automation scripts in no time.

    bld is a pure Java build tool that uses Java as the configuration:

    Also checkout the airhacks.fm podcast episode: "No Dependencies--Or How Rife 2 and Bld Happened" with Geert Bevin, the creator of bld.

    ]]>
    https://adambien.blog/roller/abien/entry/bld_the_hypersonic_java_build Thu, 11 Apr 2024 06:31:08 +0000 https://adambien.blog/roller/abien/entry/bld_the_hypersonic_java_build
    Spring / Summer 2024 Conferences, Events and Workshops
  • MIXER learning festival: Productivity, Fun, Security & Cost-savings with Serverless Java
    workshop MIXER learning festival Organica building in Ostrava 16 Apr 2024
  • Meetup: Building Serverless Java Apps with Serverless Generative AI on AWS
    conference session Meetup Organica building in Ostrava 16 Apr 2024
  • Digital Crafts Day: Cloud Native Explained--Or What Is Exactly To Do?
    keynote Digital Crafts Day weiden 19 Apr 2024
  • JAX Conference: EJB Developer? Dann aber auch Enterprise-Serverless-Java-AWS-Lambda-Experte
    conference session JAX Conference Mainz 24 Apr 2024
  • JAX Conference: YAML-less, Config-less, Boilerplate-less, Serverless Enterprise Java #slideless
    conference session JAX Conference Mainz 24 Apr 2024
  • JCON Europe: Serverless Java #slideless
    conference session JCON Europe cologne 14th Mai 2024
  • geecon: Containerless, Bloatless, YAML-less, Serverless Java #slideless
    conference session geecon krakow 16 Mai 2024
  • University of Regensburg: Java Bootstrap
    JUG event University of Regensburg regensburg 19 June 2024
  • online: Persistence Patterns for Serverless Java on AWS[online event]
    airhacks.live workshop 11 July 2024
  • online: Serverless Generative AI with Java on AWS[online event]
    airhacks.live workshop 25th July 2024
  • emprop="url">https://airhacks.live ttendanceMode" content="OnlineEventAttendanceMode"> online: Serverless Generative AI with Java on AWS[online event]
    airhacks.live workshop 25th July 2024
    ]]>
    https://adambien.blog/roller/abien/entry/spring_summer_2024_conferences_events Tue, 09 Apr 2024 14:40:31 +0000 https://adambien.blog/roller/abien/entry/spring_summer_2024_conferences_events
    Java 22, System Tests, Applets, 500 Java Shorts--Questions for 121st airhacks.tv airhacks.tv with the following topics:
    1. > 500 Java Shorts: youtube.com/bienadam/shorts
    2. How to System Test Jakarta EE / MicroProfile applications?
    3. Applets, WASM, and PWAs
    4. How far you can get without big frameworks
    5. ...only Java 22 can do that

    Any questions left? Ask now: https://gist.github.com/AdamBien/c5193c88f02250bba0b2995b567228c7 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    ]]>
    https://adambien.blog/roller/abien/entry/java_22_system_tests_applets Mon, 08 Apr 2024 11:03:37 +0000 https://adambien.blog/roller/abien/entry/java_22_system_tests_applets
    Underscore, Pattern Matching, Java LTS And When Previews Are Stable--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #289 airhacks.fm episode with Nicolai Parlog (@nipafx) about:
    underscores, deconstruction, pattern matching, and minimalistic build tools
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/underscore_pattern_matching_java_lts Mon, 08 Apr 2024 01:41:34 +0000 https://adambien.blog/roller/abien/entry/underscore_pattern_matching_java_lts
    Integrating AI with Java: Quarkus and Langchain4j--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/integrating_ai_with_java_quarkus Sun, 31 Mar 2024 13:39:32 +0000 https://adambien.blog/roller/abien/entry/integrating_ai_with_java_quarkus
    How Linkblog Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #287 airhacks.fm episode with Erik C. Thauvin (@ethauvin) about:
    building "what you needed" with Java and the road to linkblog
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_linkblog_happened_airhacks_fm Sat, 23 Mar 2024 13:12:31 +0000 https://adambien.blog/roller/abien/entry/how_linkblog_happened_airhacks_fm
    A Better JNI: Project Panama--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #286 airhacks.fm episode with Paul Sandoz (@paulsandoz) about:
    the differences between Project Panama and JNI, Java's GPU optimizations and Code Reflection
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_better_jni_project_panama Mon, 18 Mar 2024 05:18:07 +0000 https://adambien.blog/roller/abien/entry/a_better_jni_project_panama
    How LangChain4j Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #285 airhacks.fm episode with Dmytro Liubarskyi (@langchain4j) about:
    the road to langchain4j, LLMs integration with Java and Quarkus
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_langchain4j_happened_airhacks_fm Wed, 13 Mar 2024 04:31:43 +0000 https://adambien.blog/roller/abien/entry/how_langchain4j_happened_airhacks_fm
    Framework-less,Real World Java EE (Patterns) in 2024, VSCode and Java, Kubernetes Platform, Session Management--Questions for 120th airhacks.tv Questions and topics for the 2024.3 / 120th edition of airhacks.tv with the following topics:
    1. Why do you waste your time/energy by using Vscode instead of IntelliJ IDEA?
    2. Is Java EE falling out of favour?
    3. Real World Java EE Patterns-Rethinking Best Practices in 2024
    4. Thoughts about the Kubernetes "engine"
    5. How far you can get without big frameworks in professional Java Enterprise?
    6. Time machine (Nov 03, 2015):
      1. How do you compare OOP with Functional programming and increasing trend with Functional ?
      2. Database access in a SaaS-Environment (JavaEE). One database per user. Best way to add dynamically database conf/connections for new users?
      3. Recommendations to ensure the high-performance & high-availability in Java EE applications?
      4. SOAP and duplicated namespaces after server upgrade
      5. REST with proxies and JSON over DTOs
      6. A beginners guide to application servers
      7. How to separate Control from Boundary on a real world example
      8. How I use Maven release plugin and possible strategies
      9. SessionId mechanism between a WebApp and JavaScript client
      10. How to kickstart Hazelcast in Java EE
      11. My view on OOP and trending functional languages. From JavaOne Airhacks BoF
      12. 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
      13. Mixing Primefaces with various JavaScript frameworks. From Effective Java EE comment

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: https://gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/real_world_java_ee_patterns8 Mon, 04 Mar 2024 13:28:29 +0000 https://adambien.blog/roller/abien/entry/real_world_java_ee_patterns8
    No Dependencies--Or How Rife 2 and Bld Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #284 airhacks.fm episode with Geert Bevin (@gbevin) about:
    the "No Dependencies" approach, Java templates, bidirectional templates in Rife, the Bld build tool, Rife 2 web framework, Java's productivity, Kotlin and more.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/no_dependencies_or_how_rife Mon, 04 Mar 2024 03:57:45 +0000 https://adambien.blog/roller/abien/entry/no_dependencies_or_how_rife
    From Hexagonal Architectures to Data Oriented Programming--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #283 airhacks.fm episode with Jose Paumard (@JosePaumard) about:
    the cost of changing code, hexagonal architecture, decoupling, and Object Oriented Programming vs Data Oriented Programming in Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_hexagonal_architectures_to_data Mon, 26 Feb 2024 02:43:33 +0000 https://adambien.blog/roller/abien/entry/from_hexagonal_architectures_to_data
    TornadoVM, Paravox.ai: Java, AI, LLMs and Hardware Acceleration--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #281 airhacks.fm episode with Juan Fumero (@snatverk) about:
    Integrating LLVMs running on accelerated hardware with Java and TornadoVMs and the Java / AI startup: paravox.ai
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/tornadovm_paravox_ai_java_ai Mon, 19 Feb 2024 03:48:05 +0000 https://adambien.blog/roller/abien/entry/tornadovm_paravox_ai_java_ai
    Java and eBPF--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #281 airhacks.fm episode with Johannes Bechberger (@parttimen3rd) about:
    Developing eBPF programs with Java and migrating Python tooling to Java with Project Panama
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_and_ebpf_airhacks_fm Sun, 11 Feb 2024 20:12:12 +0000 https://adambien.blog/roller/abien/entry/java_and_ebpf_airhacks_fm
    OIDC, WASM, Java as Windows Service, Secrets Management, Authentication, Eclipse Store, Event Bridge--119th airhacks.tv airhacks.tv with the following topics:
    1. Authentication with Quarkus using OpenID Connect
    2. The complexity of OpenID Connect
    3. Proposing new Java features
    4. Comparing Quarkus with Open Liberty and Helidon
    5. WASM and Java isolation techniques
    6. Running Java programs as Windows services
    7. Persisting data with Eclipse Microstream
    8. Microstream vs. relational databases
    9. Tools for generating architecture diagrams
    10. Clustering, Consistency and Scalability
    11. Managing secrets on AWS
    12. Events routing vs data streaming on AWS

    Discussed technologies:

    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

    Any questions left? Ask now: gist.github.com/AdamBien/fbf7291d3af942be1c92f163564d0e9c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/oidc_wasm_java_as_windows Thu, 08 Feb 2024 13:45:59 +0000 https://adambien.blog/roller/abien/entry/oidc_wasm_java_as_windows
    WASM, Java as Windows Service, Uncanny Valley, Secrets Management, Authentication, Staging--Questions for 119th airhacks.tv Questions and topics for the 119th airhacks.tv:
    1. WASM vs. Java restrictions and isolation
    2. Java as Windows Service
    3. How to propose new Java features
    4. How to draw architectural diagrams--the uncanny valley
    5. How to deal with secrets in the cloud (...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...) from: discord.gg/airhacks
    6. The time machine: relevant questions from the 19th airhacks.tv (2015):
      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

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/wasm_java_as_windows_service Mon, 05 Feb 2024 14:26:48 +0000 https://adambien.blog/roller/abien/entry/wasm_java_as_windows_service
    Virtual Threads and Scoped Values with Jose--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #280 airhacks.fm episode with Jose Paumard (@JosePaumard) about:
    Project Loom, virtual threads, structured concurrency, scope values, debugging reactive code, replacing thread locals, running same code in serverless or threaded environments
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/virtual_threads_and_scoped_values Sun, 04 Feb 2024 19:48:35 +0000 https://adambien.blog/roller/abien/entry/virtual_threads_and_scoped_values
    Java, Continuations and How Rife Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #279 airhacks.fm episode with Geert Bevin (@gbevin) about:
    creating the Rife web framework with continuations in Java, refactoring to Java 17 and Java's productivity
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_continuations_and_how_rife Mon, 29 Jan 2024 04:23:42 +0000 https://adambien.blog/roller/abien/entry/java_continuations_and_how_rife
    First Events and Conferences in 2024
  • Voxxed Days CERN: Serverless Java #slideless
    a nearly slideless session Voxxed Days CERN CERN Geneva 23 Jan 2024
  • OOP conference : Enterprise Serverless Monoliths – Or Stay On-Premise
    a nearly slideless session OOP conference Munich 1 Feb 2024
  • live streaming Q & A show: 119th airhacks.tv Q & A live streaming [online event]
    I'm answering questions live and from https://gist.github.com/AdamBien/fe338c0d125676255c5cfc4f0dc5dea8 5 Feb 2024
  • JAX conference: EJB Developer? Dann aber auch Enterprise-Serverless-Java-AWS-Lambda-Experte
    a nearly slideless session JAX conference Rheingoldhalle Mainz 24 Apr 2024
  • JAX Conference: YAML-less, Config-less, Boilerplate-less, Serverless Enterprise Java #slideless
    a nearly slideless session JAX Conference Rheingoldhalle Mainz 24 Apr 2024
  • ]]>
    https://adambien.blog/roller/abien/entry/first_events_and_conferences_in Mon, 22 Jan 2024 06:18:06 +0000 https://adambien.blog/roller/abien/entry/first_events_and_conferences_in
    Java at Azul: The Interesting Features--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #278 airhacks.fm episode with Gerrit Grunwald (@hansolo_) about:
    the state of Java desktop applications and the interesting features of Azul's Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_at_azul_the_interesting Sun, 21 Jan 2024 18:11:33 +0000 https://adambien.blog/roller/abien/entry/java_at_azul_the_interesting
    Project Babylon--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #277 airhacks.fm episode with Paul Sandoz (@paulsandoz) about:
    Code Reflection, Code Model, JNI 2.0 or integrating Java with GPUs using Project Babylon
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/project_babylon_airhacks_fm_podcast Mon, 15 Jan 2024 04:13:24 +0000 https://adambien.blog/roller/abien/entry/project_babylon_airhacks_fm_podcast
    Java and Gaming, Optionals, Paper Engine vs. Spigot, ESBs--118th airhacks.tv Questions and topics for the 118th airhacks.tv:
    1. Is Java good for game development?
    2. Thoughts on Optional
    3. Paper Engine vs. Spigot
    4. Time Machine: 100 episodes back:
      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
    5. Thoughts on JSF, JSPs and Java

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: gist.github.com/AdamBien/732d40904a07286deeb2e90e6df9014c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/java_and_gaming_optionals_paper Mon, 08 Jan 2024 13:34:34 +0000 https://adambien.blog/roller/abien/entry/java_and_gaming_optionals_paper
    A Compiler Nerd Builds a Tiny Profiler--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #276 airhacks.fm episode with Johannes Bechberger (@parttimen3rd) about:
    compiler love, openJDK work, SAP machine, flame graphs and building profilers
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_compiler_nerd_builds_a Sun, 07 Jan 2024 18:47:52 +0000 https://adambien.blog/roller/abien/entry/a_compiler_nerd_builds_a
    A Helidon Conversation--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #275 airhacks.fm episode with David Kral (@VerdentDK) about:
    Helidon, reactive programming, "no dependencies" and enjoying security
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_helidon_conversation_airhacks_fm Fri, 29 Dec 2023 07:15:32 +0000 https://adambien.blog/roller/abien/entry/a_helidon_conversation_airhacks_fm
    Work Smart, Take Responsibility and Xmas in Brazil--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #274 airhacks.fm episode with Bruno Souza (@brjavaman) about:
    working hard vs. smart, Java for task automation, how to make projects successful, and xmas in Brazil
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/work_smart_take_responsibility_and Sat, 23 Dec 2023 08:30:43 +0000 https://adambien.blog/roller/abien/entry/work_smart_take_responsibility_and
    The Long Road to Java and Kotlin--airhacks.fm Podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/the_long_road_to_java Sun, 17 Dec 2023 19:59:55 +0000 https://adambien.blog/roller/abien/entry/the_long_road_to_java
    Minecraft Influenced JSON-B Design--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #272 airhacks.fm episode with David Kral (@VerdentDK) about:
    Software Design, premature optimizations, Helidon and JSON-B and performance
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/minecraft_influenced_json_b_design Sun, 10 Dec 2023 15:23:40 +0000 https://adambien.blog/roller/abien/entry/minecraft_influenced_json_b_design
    From Image Recognition to CoffeCast--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #271 airhacks.fm episode with Jose Paumard (@JosePaumard) about:
    high performance image recognition, super computers, AI confidence and Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_image_recognition_to_coffecast Sun, 03 Dec 2023 12:36:18 +0000 https://adambien.blog/roller/abien/entry/from_image_recognition_to_coffecast
    Lambda Monoliths, Hypermedia Systems, Java Template Engine, Snapstart and CraC--117th airhacks.tv Questions and topics for the 117th airhacks.tv:
    1. Java monoliths as Lambda
    2. Cost Driven Architectures challenges
    3. Hypermedia Systems
    4. Java Template Engine
    5. Lambda Snapstart Experiences
    6. Per user Locale scope and CDI
    7. Service service = new ServiceImpl()
    8. Time travelling or the 17th airhacks.tv: 50 MB WARs, Kafka, threading and akka

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: gist.github.com/AdamBien/24c8c38937cfa43c25676076c231896c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/lambda_monoliths_hypermedia_systems_java Sun, 03 Dec 2023 12:14:27 +0000 https://adambien.blog/roller/abien/entry/lambda_monoliths_hypermedia_systems_java
    JUG Vienna, Ya!vaConf, airhacks.tv and Airhacks Workshops
  • Java User Group (JUG) Vienna: Reasonable Cloud Practices with Java on AWS
    session Java User Group (JUG) Vienna vienna 4 Dec 2023
  • airhacks.tv: 117th airhacks.tv Questions and Answers [online event]
    live Q & A stream 5 Dec 2023
  • airhacks.live: AWS Security, Authentication and Authorization for Java [online event]
    airhacks.live workshop 7 Dec 2023
  • Ya!vaConf: Cloudy Patterns for Enterprise Java [online event]
    session 8 Dec 2023
  • airhacks.live: Serverless Java Patterns and Best Practices on AWS [online event]
    airhacks.live workshop 14 Dec 2023
  • ]]>
    https://adambien.blog/roller/abien/entry/jug_vienna_yalvoconf_and_airhacks Sat, 02 Dec 2023 02:49:42 +0000 https://adambien.blog/roller/abien/entry/jug_vienna_yalvoconf_and_airhacks
    Not Injectable Principals, Quarkus, MicroProfile and Smallrye--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #270 airhacks.fm episode with Martin Stefanko (@xstefank) about:
    promotions, the definition of titles, the importance of MicroProfile and standards, Quarkus and SmallRye.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/not_injectable_principals_quarkus_microprofile Sun, 26 Nov 2023 13:44:20 +0000 https://adambien.blog/roller/abien/entry/not_injectable_principals_quarkus_microprofile
    Why Kotlin is Better Than Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/why_kotlin_is_better_than Sun, 19 Nov 2023 15:31:32 +0000 https://adambien.blog/roller/abien/entry/why_kotlin_is_better_than
    How Han Solo wrote SteelSeries--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #268 airhacks.fm episode with Gerrit Grunwald (@hansolo_) about:
    Java portability, user interfaces, Sun Microsystems, Java FX, Java Swing and building pixel perfect UI in Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_han_solo_wrote_steelseries Sun, 12 Nov 2023 19:37:58 +0000 https://adambien.blog/roller/abien/entry/how_han_solo_wrote_steelseries
    Late 2023 JUGs, Workshops and Conferences
  • w-jax: J2EE, Java EE, Jakarta EE ...und was machen wir jetzt?
    session w-jax munich conference 8 Nov 2023
  • Java User Group (JUG) Vienna: Reasonable Cloud Practices with Java on AWS
    session Java User Group (JUG) Vienna vienna 4 Dec 2023
  • airhacks.live: AWS Security, Authentication and Authorization for Java [online event]
    airhacks.live workshop 7 Dec 2023
  • airhacks.live: Serverless Java Patterns and Best Practices on AWS [online event]
    airhacks.live workshop 14 Dec 2023
  • ]]>
    https://adambien.blog/roller/abien/entry/late_2023_jugs_workshops_and Tue, 07 Nov 2023 14:22:53 +0000 https://adambien.blog/roller/abien/entry/late_2023_jugs_workshops_and
    M2M Authentication, Quarkus and CraC, OIDC--or Questions for the 116th airhacks.tv Questions and topics for the 116th airhacks.tv:
    1. conference news and updates
    2. Quarkus and CraC (from: https://discord.gg/airhacks by jarry_dk)
    3. Machine to Machine authentication on AWS
    4. Access to external resources to AWS
    5. Documentation with antora
    6. 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,"

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: gist.github.com/AdamBien/31e84638e4a97a3ebb4074dc3b8118bb and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/m2m_authentication_quarkus_and_crac Mon, 06 Nov 2023 12:38:28 +0000 https://adambien.blog/roller/abien/entry/m2m_authentication_quarkus_and_crac
    Money API, Virtual Threads, Jakarta Data, Lambdas, Dynamo--115th airhacks.tv "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":

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/money_api_virtual_threads_jakarta Mon, 06 Nov 2023 12:24:49 +0000 https://adambien.blog/roller/abien/entry/money_api_virtual_threads_jakarta
    Instrumenting, Probing and Asynchronous Profiling--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #267 airhacks.fm episode with Ingo Kegel (@IngoKegel) about:
    the building blocks of a profiler and the pros and cons of instrumenting and sampling profilers
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/instrumenting_probing_and_asynchronous_profiling Sun, 05 Nov 2023 14:54:54 +0000 https://adambien.blog/roller/abien/entry/instrumenting_probing_and_asynchronous_profiling
    Java, Microsoft and Software Development with AI--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #266 airhacks.fm episode with Brian Benz (@bbenz)) about:
    Java, Jakarta EE on Azure, Kubernetes operators on Azure, open source at Microsoft, GitHub Copilot Chat and software development with AI.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_microsoft_and_software_development Tue, 31 Oct 2023 03:26:59 +0000 https://adambien.blog/roller/abien/entry/java_microsoft_and_software_development
    How JProfiler Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #265 airhacks.fm episode with Ingo Kegel (@IngoKegel) about:
    Java profilers, design decisions, developer experience and the creation of JProfiler
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_jprofiler_happened_airhacks_fm Sun, 22 Oct 2023 10:59:12 +0000 https://adambien.blog/roller/abien/entry/how_jprofiler_happened_airhacks_fm
    Profilers, Probing, Sampling and Instrumentation--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #264 airhacks.fm episode with Jaroslav Bachorik (@yardus) about:
    probing, instrumentation, sampling, state of the art profilers and high performance messaging
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/profilers_probing_sampling_and_instrumentation Sun, 15 Oct 2023 14:00:19 +0000 https://adambien.blog/roller/abien/entry/profilers_probing_sampling_and_instrumentation
    How JAX-RS Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #263 airhacks.fm episode with Paul Sandoz (@paulsandoz) about:
    remote control of manufacturing plants with a cellular phone, developing a VR headset, graphics programming, SOAP, XML and JAX-RS
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_jax_rs_happened_airhacks Sun, 08 Oct 2023 13:15:02 +0000 https://adambien.blog/roller/abien/entry/how_jax_rs_happened_airhacks
    Devoxx Belgium: Java Patterns and Practices for Serverless Applications 6 years break, I delivered a talk at Devoxx Belgium with the proposed abstract:
    "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!"

    ...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.

    The talk was recorded and is available on:

    All examples were based on: https://github.com/AdamBien/aws-quarkus-lambda-cdk-plain

    ]]>
    https://adambien.blog/roller/abien/entry/devoxx_belgium_java_patterns_and Fri, 06 Oct 2023 03:43:47 +0000 https://adambien.blog/roller/abien/entry/devoxx_belgium_java_patterns_and
    Money, Authentication, Formatters, Jakarta Data, Serverless, ULIDs, Events--Or Questions for 115th airhacks.tv Questions and topics for the 115th airhacks.tv live streamin show:
    1. The airhacks.tv time travelling: 15th airhacks.tv (8 years ago)
    2. A standard Money and Currency implementation
    3. Authorization and authentication with Jakarta EE and Microprofile
    4. Virtual Threads and JPA
    5. Java Formatters
    6. Jakarta Data and BCE
    7. PostgreSQL with AWS Lambdas
    8. Composite keys and REST API
    9. UUIDs vs. ULIDs
    10. DocumentDB vs. DynamoDB vs. AuroraV2
    11. SQS vs. SNS vs. Kinesis vs. EventBridge

    Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

    Any questions left? Ask now: https://gist.github.com/AdamBien/132643f891e116fe0d0e0722f63fb7d5 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/money_authentication_formatters_jakarta_data Mon, 02 Oct 2023 08:27:01 +0000 https://adambien.blog/roller/abien/entry/money_authentication_formatters_jakarta_data
    The IBM Certified Presenter and XML Evangelist--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #262 airhacks.fm episode with Brian Benz (@bbenz) about:
    Java, XML, and the mysterious OpenTech department at Microsoft
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_ibm_certified_presenter_and Mon, 02 Oct 2023 02:31:50 +0000 https://adambien.blog/roller/abien/entry/the_ibm_certified_presenter_and
    JCON Europe Cologne 2023: "Serverless" Is What J2EE Was Meant To Be Live from Jcon Europe Cologne 2023, discussing, cloud native, cloud costs, "scale to zero", green IT, productivity and the relation between application servers ...and serverless architectures:

    ]]>
    https://adambien.blog/roller/abien/entry/jcon_europe_cologne_2023_serverless Tue, 26 Sep 2023 11:11:33 +0000 https://adambien.blog/roller/abien/entry/jcon_europe_cologne_2023_serverless
    JAX-RS, OAuth, OpenID Connect (OIDC), Authentication, Authorization and Quarkus--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #261 airhacks.fm episode with Sergey Beryozkin (@sberyozkin) about:
    the beginnings of JAX-RS, OAuth, OIDC, Authentication, Authorization and Quarkus
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/jax_rs_oauth_openid_connect Sun, 24 Sep 2023 16:57:30 +0000 https://adambien.blog/roller/abien/entry/jax_rs_oauth_openid_connect
    Autumn 2023: Upcoming Java Conferences, Java User Group Events and Online Workshops
  • Silesia JUG: Serverless Java Patterns, Hacks and Workarounds
    Silesia JUG session Silesia JUG Offline Only / Katowice 28 Sep 2023
  • Devoxx Conference: Java Patterns and Practices for Serverless Applications
    Conference Session Devoxx Conference Antwerp Belgium 5 Oct 2023
  • JUG Oberpfalz: Java Hater’s Meetup
    JUG Session JUG Oberpfalz Weiden 11 Oct 2023
  • EclipseCon: Building Future-Proof Jakarta EE Applications On-Premise and In The Clouds Adam Bien
    Community Day Session EclipseCon Ludwigsburg 16 Oct 2023
  • BaselOne: Lean, Fast, Productive - Self-Provisioned Serverless Java Runtimes on AWS
    Workshop BaselOne Basel 18 Oct 2023
  • BaselOne: Modern Java in the Cloud or OnPrem
    Keynote BaselOne Basel 18 Oct 2023
  • geecon: Thinking in Serverless Java (Code)
    Session geecon Prague 20 Oct 2023
  • infoshare DEV: Katowice: Building Self-Provisioned Runtimes with Serverless Java on AWS
    Workshop infoshare DEV Katowice 24 Oct 2023
  • infoshare DEV: Katowice: Why Serverless Enterprise Java Rocks
    Session infoshare DEV Katowice 24 Oct 2023
  • JDD: The Best of Java Shorts Show--100 Snippets in 45 Minutes
    Session JDD Krakow 25 Oct 2023
  • infoshare DEV: Gdynia: Building Self-Provisioned Runtimes with Serverless Java on AWS
    Workshop infoshare DEV Gdynia 26 Oct 2023
  • infoshare DEV: Gdynia: Why Serverless Enterprise Java Rocks
    Session infoshare DEV Gdynia 26 Oct 2023
  • airhacks.live: AWS Security, Authentication and Authorization for Java [online event]
    airhacks.live workshop 7 Dec 2023
  • airhacks.live: Serverless Java Patterns and Best Practices on AWS [online event]
    airhacks.live workshop 14 Dec 2023
  • ]]>
    https://adambien.blog/roller/abien/entry/autumn_2023_upcoming_java_conferences Fri, 22 Sep 2023 03:03:42 +0000 https://adambien.blog/roller/abien/entry/autumn_2023_upcoming_java_conferences
    How BTrace Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #260 airhacks.fm episode with Jaroslav Bachorik (@yardus) about:
    Java, NetBeans, Profilers, DTrace and BTrace
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_btrace_happened_airhacks_fm Sun, 17 Sep 2023 18:19:10 +0000 https://adambien.blog/roller/abien/entry/how_btrace_happened_airhacks_fm
    How Boundary Control Entity, UML and Components Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #259 airhacks.fm episode with Ivar Jacobson (@ivarjacobson) about:
    Component Based Development, Objectory, UML, Rational Unified Process, agile, artificial intelligence and intelligent assistant and how Boundary Control Entity (BCE) happened
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_boundary_control_entity_uml Thu, 14 Sep 2023 09:41:50 +0000 https://adambien.blog/roller/abien/entry/how_boundary_control_entity_uml
    Cloud Native CI/CD, Trunk Based Development, Sockets, Cloud Test Stacks, Test Data, XA, Handling Exceptions--Or 114th airhacks.tv Questions and topics for the 114th airhacks.tv live stream Questions and Answers:
    1. Implementing Sockets and Java
    2. What does your test stack look like on AWS?
    3. Does it make any difference cloud vs. on premises?
    4. What are you using for load testing?
    5. What are you using for end-to-end tests where you simulate users/clients?
    6. Do you have experience with Grafana k6 and if yes, what is your experience?
    7. And where do you run client simulators, on AWS EC2 instances or on a runner/agent in your pipeline?
    8. What is your strategy for setting up test data for end-to-end tests?
    9. 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?
    10. Best way to integrate a non xa resource into container managed transactions of stateless EJBs (wildfly)
    11. CI/CD on AWS example
    12. Experiences with trunk based development
    13. Handling persistence (JPA) exceptions
    14. RequestScope, long running transactions and JWT

    Any questions left? Ask now: https://gist.github.com/AdamBien/0088a3d6964ebdae9b59693400747106 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/cloud_native_ci_cd_trunk Mon, 04 Sep 2023 11:58:56 +0000 https://adambien.blog/roller/abien/entry/cloud_native_ci_cd_trunk
    How FlywayDB Happened--airhacks.fm Podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #258 airhacks.fm episode with Axel Fontaine (@axelfontaine) about:
    Continous Delivery, database migrations, the evolution of FlywayDB and the open-source Business
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_flywaydb_happened_airhacks_fm Sun, 03 Sep 2023 17:08:45 +0000 https://adambien.blog/roller/abien/entry/how_flywaydb_happened_airhacks_fm
    Why MicroStream is Faster--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #257 airhacks.fm episode with Florian Habermann (@FHHabermann) about:
    A conversation with Florian Habermann about Object-relation impedance mismatch, limitations of the Java serialization, and MicroStream
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/why_microstream_is_faster_airhacks Sun, 27 Aug 2023 12:59:36 +0000 https://adambien.blog/roller/abien/entry/why_microstream_is_faster_airhacks
    Virtual Threads, Parallel Streams, Concurrency and Parallelism--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #256 airhacks.fm episode with Heinz Kabutz (@heinzkabutz) about:
    Project Loom, Virtual Threads from user perspective, Parallel Streams, ForkJoinPool, Concurrency and Parallelism
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/virtual_threads_parallel_streams_concurrency Sun, 20 Aug 2023 11:50:29 +0000 https://adambien.blog/roller/abien/entry/virtual_threads_parallel_streams_concurrency
    A Deeper Dive Into Debugging--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #255 airhacks.fm episode with Shai Almog (@debugagent) about:
    logpoints, watchpoints, tracepoints, breakpoints, time travelling, or effective debugging, logging, testing and clouds
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_deeper_dive_into_debugging Mon, 14 Aug 2023 17:45:15 +0000 https://adambien.blog/roller/abien/entry/a_deeper_dive_into_debugging
    How JavaPolis and Devoxx Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #254 airhacks.fm episode with Stephan Janssen (@Stephan007) about:
    continuous learning for fun, JavaPolis, Devoxx, AI and Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_javapolis_and_devoxx_happened Tue, 08 Aug 2023 13:16:02 +0000 https://adambien.blog/roller/abien/entry/how_javapolis_and_devoxx_happened
    Real World BCE, Modularization, Jigsaw, BPMN, Minio Integration, Schema Evolution--Or 113th airhacks.tv Questions and Topics for the 113th airhacks.tv live stream Q and A:
    1. What are you using for modularization of your monolithic Java backend? by @kriehzoo
    2. What is your experience with project jigsaw, do you use it for your projects? by @kriehzoo
    3. Real world BCE article
    4. Kogito vs. Camunda by @dempile
    5. Minio integration ideas by @dempile
    6. "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"

    Any questions left? Ask now: gist.github.com/AdamBien/d6c474fe8869b2c278ab6dbd4d03afaf and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/real_world_bce_modularization_jigsaw Mon, 07 Aug 2023 09:14:37 +0000 https://adambien.blog/roller/abien/entry/real_world_bce_modularization_jigsaw
    Java on Azure and a Nailless Java Champion--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #253 airhacks.fm episode with Antonio Goncalves (@agoncal) about:
    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
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_on_azure_and_a Sun, 30 Jul 2023 11:00:15 +0000 https://adambien.blog/roller/abien/entry/java_on_azure_and_a
    BDD: Bug Driven Development vs. Continuous Observability--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #252 airhacks.fm episode with Roni Dover (@doppleware) about:
    software, complexity, architecture, development trends, polyglot programming, continuous feedback and digma.ai
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/bdd_bug_driven_development_by Sun, 23 Jul 2023 15:17:54 +0000 https://adambien.blog/roller/abien/entry/bdd_bug_driven_development_by
    From CORBA, over RPC to REST ...and Back?--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #251 airhacks.fm episode with Sergey Beryozkin (@sberyozkin) about:
    CORBA, RPC, SOAP, SOA, IONA, Orbix and Atrix, Apache CXF, Apache Tika and Quarkus
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_corba_over_rpc_to Sun, 16 Jul 2023 05:12:40 +0000 https://adambien.blog/roller/abien/entry/from_corba_over_rpc_to
    FPGAs, GPUs or Data Science with Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #250 airhacks.fm episode with Juan Fumero (@snatverk) about:
    FPGA and GPU accelarated Java, TornadoVM and machine learning with Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/fpgas_gpus_or_data_science Mon, 10 Jul 2023 15:03:48 +0000 https://adambien.blog/roller/abien/entry/fpgas_gpus_or_data_science
    A Freakonomic Guide to Jakarta EE with a Guardian--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #249 airhacks.fm episode with Reza Rahman (@reza_rahman) about:
    Caucho Resin, the economic take on standards and Jakarta EE and Java on Azure
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_freakonomic_guide_to_jakarta Tue, 04 Jul 2023 12:46:10 +0000 https://adambien.blog/roller/abien/entry/a_freakonomic_guide_to_jakarta
    Break Your Limits and the Java Challengers--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/break_your_limits_and_the Sun, 25 Jun 2023 07:13:37 +0000 https://adambien.blog/roller/abien/entry/break_your_limits_and_the
    A Gentle Introduction to Debugging--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #247 airhacks.fm episode with Shai Almog (@debugagent) about:
    various observability and debugging tools, time travelling debuggers and various breakpoint types
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_gentle_introduction_to_debugging Wed, 21 Jun 2023 11:47:30 +0000 https://adambien.blog/roller/abien/entry/a_gentle_introduction_to_debugging
    How Log4j, SLF4j, Jakarta Commons Logging, Logback and Reload4j Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #246 airhacks.fm episode with Ceki Guelcue (@ceki) about:
    the history of logging in Java (Log4j 1 and 2, SLF4j, Apache / Jakarta Commons Logging, Logback, reload4j)
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_log4j_slf4j_jakarta_commons Sun, 11 Jun 2023 12:12:20 +0000 https://adambien.blog/roller/abien/entry/how_log4j_slf4j_jakarta_commons
    From OpenShift to Azure App Service--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #245 airhacks.fm episode with James Falkner (@schtool) about:
    Java on OpenShift, the ideal RedHat stack, Quarkus, JBossEAP and JBoss EAP on Azure App Service
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_openshift_to_azure_app Thu, 08 Jun 2023 08:43:33 +0000 https://adambien.blog/roller/abien/entry/from_openshift_to_azure_app
    Java EE 6: Migration: From Application Servers over MicroProfile to Serverless AWS Lambda JDD 2012 conference, more than ten years ago I delivered a session a with the title: Java EE: The Future Is Now, But Is Not Evenly Distributed Yet.

    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:

    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:

    ]]>
    https://adambien.blog/roller/abien/entry/java_ee_6_migration_from Sat, 03 Jun 2023 03:56:38 +0000 https://adambien.blog/roller/abien/entry/java_ee_6_migration_from
    Monoliths, Microservices, Auth, API Gateways, Schedulers-111th airhacks.tv airhacks.tv with the following topics:
    "Microservices vs. Monoliths, Schedulers, Lightweight vs. Heavyweight, Time Derived Properties, Groovy, JavaScript":

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    Any questions left? Ask now: gist.github.com/AdamBien/62791e98ed40d1d2b13801e3e717a949 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    ]]>
    https://adambien.blog/roller/abien/entry/monoliths_microservices_auth_api_gateways Thu, 01 Jun 2023 11:00:48 +0000 https://adambien.blog/roller/abien/entry/monoliths_microservices_auth_api_gateways
    The Reset Boy--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #244 airhacks.fm episode with Vinicius Senger (@vsenger) about:
    Sun Microsystem memories, Java, Quarkus, AWS cloud, The Developer's Conference and the Java Academy
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_reset_boy_airhacks_fm Sun, 28 May 2023 16:47:08 +0000 https://adambien.blog/roller/abien/entry/the_reset_boy_airhacks_fm
    Microservices vs. Monoliths, Schedulers, Lightweight vs. Heavyweight, Time Derived Properties, Groovy, JavaScript--Or 111th airhacks.tv Questions and Topics for the 111th airhacks.tv live stream Q and A are ready:
    1. Microservices vs. Monoliths
    2. Best way to schedule a repeated task in an application scoped cdi bean
    3. Airhacks Time Machine
    4. The Airhacks Time Machine:
      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.

    Any questions left? Ask now: gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Also checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/microservices_vs_monoliths_schedulers_lightweight Sat, 27 May 2023 09:00:52 +0000 https://adambien.blog/roller/abien/entry/microservices_vs_monoliths_schedulers_lightweight
    Understanding and Practising Quarkus--an airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #243 airhacks.fm episode with Antonio Goncalves (@agoncal) about:
    J2EE, Jakarta EE and MicroProfile stability and portability. Azure, Java, IaC and serverless.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/understanding_and_practicing_quarkus_an Sun, 21 May 2023 18:37:08 +0000 https://adambien.blog/roller/abien/entry/understanding_and_practicing_quarkus_an
    2023 Spring / Summer: Upcoming Conferences, Streams and Workshops The 111th airhacks.tv will take place one week earlier, on may 27th (instead of June 5th). File your questions now: gist.github.com/AdamBien/a97ce552e3f784721dda8054ab1871f2

    See you at these upcoming conferences and workshops:

    1. Code Europe Conference: Dissecting Serverless Java on AWS
      conference session Code Europe Conference Cracow 23 May 2023
    2. InfoShare: The Java Shorts Animation Show: 100 Snippets in 40 Minutes
      conference session InfoShare Gdansk 24 May 2023
    3. Code Europe Conference: Keynote: Dissecting Serverless Java on AWS
      keynote conference session Code Europe Conference Warsaw 25 May 2023
    4. InfoShare: The Future of Java in the Cloud and on Premises
      conference session InfoShare Gdansk 25 May 2023
    5. online: AWS Java Bootstrap [online event]
      airhacks.live workshops 15 Jun 2023
    6. Jcon Europe: "Serverless" Is What J2EE Was Meant To Be
      conference session Jcon Europe Cologne 20 Jun 2023
    7. online: Cost Driven Architectures with Java on AWS [online event]
      airhacks.live workshops 22 Jun 2023
    ]]>
    https://adambien.blog/roller/abien/entry/2023_spring_summer_upcoming_conferences Fri, 19 May 2023 08:54:48 +0000 https://adambien.blog/roller/abien/entry/2023_spring_summer_upcoming_conferences
    Java FX, Codename One, Swing, Flutter and a Bit Android--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #242 airhacks.fm episode with Shai Almog (@debugagent) about:
    the challenges of marketing and the architectural comparison of Java FX, Codename One, Swing, Flutter and Android
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_fx_codename_one_swing Sun, 14 May 2023 17:25:53 +0000 https://adambien.blog/roller/abien/entry/java_fx_codename_one_swing
    Simplicity is a Good Incentive--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #241 airhacks.fm episode with Ceki Gülcü (@ceki) about:
    joy of programming, simplicity, network protocols, tor network, and the beginnings of Log4j
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/simplicity_is_a_good_incentive Sun, 07 May 2023 17:58:57 +0000 https://adambien.blog/roller/abien/entry/simplicity_is_a_good_incentive
    Reactive programming, 12factors, gRPC,SPAs, openJDK choices--Questions for 110th airhacks.tv Questions and Topics for the 110th airhacks.tv live stream Q and A are ready:
    1. Follow up: my interview questions
    2. Programmatic and portable JAX-RS endpoint registration
    3. Time machine, the 10th episode: "Java EE Favourites, SPA technologies, complex JSON strategies, CDI scope management"
    4. Are shared deployments back?
    5. Are there any reason for reactive programming left?
    6. About OpenJ9 JVM, or which JDK to pick
    7. Jakarta gRPC, Google gRPC
    8. Do application servers make sense?
    9. Thoughts on Ansible deployments
    10. Thoughts on 12 factors and cloud native

    Any questions left? Ask now: gist.github.com/AdamBien/6147ea9d4d354b5cae3cb3726b1db0de and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/reactive_programming_12factors_grpc_spas Mon, 01 May 2023 07:34:04 +0000 https://adambien.blog/roller/abien/entry/reactive_programming_12factors_grpc_spas
    Serverless Java (17) on AWS--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #240 airhacks.fm episode with Maximilian Schellhorn (@maschnetwork ) about:
    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
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/serverless_java_17_on_aws Sat, 29 Apr 2023 05:05:03 +0000 https://adambien.blog/roller/abien/entry/serverless_java_17_on_aws
    Low-Code, No-Code with Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #239 airhacks.fm episode with Richard Fichtner (@richardfichtner) about:
    writing low-code / no-code products in Java, Java startups, Low Code / No Code Java IDEs, Java frontends, Vaadin and the JCON conference
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/low_code_no_code_with Wed, 26 Apr 2023 02:14:59 +0000 https://adambien.blog/roller/abien/entry/low_code_no_code_with
    The History of Mobile Java and Codename One--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #238 airhacks.fm episode with Shai Almog (@debugagent) about:
    LWUIT, i-mode, Java FX Script, Wireless Toolkit, J2ME and Codename One
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_history_of_mobile_java Sun, 16 Apr 2023 17:13:43 +0000 https://adambien.blog/roller/abien/entry/the_history_of_mobile_java
    Hooked on Java--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #237 airhacks.fm episode with Logan Kulinski (@lbkulinski) about:
    Java passion, Java in the clouds, smart charging vehicles, and new Java language features
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/hooked_on_java_airhacks_fm Thu, 06 Apr 2023 12:15:45 +0000 https://adambien.blog/roller/abien/entry/hooked_on_java_airhacks_fm
    Serverless Enterprise Java, TDD, Resilience, API Gateways, Optimistic Locking--Questions for 109th airhacks.tv Questions and topics for the 109th / 2023.4 airhacks.tv:
    1. Test Driven Development
    2. Maven vs. Gradle
    3. Serverless Enterprise Java

    Time machine 100 episodes ago 8th airhacks.tv episode: 31st, October, 2014

    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
    Backlog / timemachine 101 episodes ago 9th airhacks.tv episode: 30th, November, 2014
    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

    Any questions left? Ask now: https://gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/serverless_enterprise_java_tdd_resilience Mon, 03 Apr 2023 07:40:41 +0000 https://adambien.blog/roller/abien/entry/serverless_enterprise_java_tdd_resilience
    Naming Is Hard--Not With The VarVar Pattern

    In Java naming is not hard, you can conveniently name everything var:

    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());
        }
    }
    
    ]]>
    https://adambien.blog/roller/abien/entry/naming_is_hard_not_with Sat, 01 Apr 2023 12:21:28 +0000 https://adambien.blog/roller/abien/entry/naming_is_hard_not_with
    Pommes, PaaS and Java on AWS--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #236 airhacks.fm episode with Sascha Moellering (@sascha242) about:
    game development, a PaaS successtory, low latency Java, and Java on AWS
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/pommes_paas_and_java_on Sat, 01 Apr 2023 06:29:38 +0000 https://adambien.blog/roller/abien/entry/pommes_paas_and_java_on
    Debugging on Fire--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #235 airhacks.fm episode with Shai Almog (@debugagent) about:
    programming flight simulators, Java consultancy, and embedded Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/debugging_on_fire_airhacks_fm Sun, 26 Mar 2023 13:25:27 +0000 https://adambien.blog/roller/abien/entry/debugging_on_fire_airhacks_fm
    How JPA Buddy Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #234 airhacks.fm episode with Aleksey Stukalov (@AlekseyStukalov) about:
    about low code Java frameworks like: CUBA and JMIX, design principles, DTOs and JPA Buddy
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_jpa_buddy_happened_airhacks Sun, 19 Mar 2023 17:59:15 +0000 https://adambien.blog/roller/abien/entry/how_jpa_buddy_happened_airhacks
    Early 2023 Java / Clouds Events, JUGs, Workshops and Conferences
  • Gedoplan Remote Session: Standards, J2EE, Java EE, Jakarta EE, MicroProfile ....und nun was? [online event]
    "Expertenkreis Java" remote session 16 Mar 2023
  • CODE Frenzy Conference: Lean, Fast, Productive - IaC for Serverless Java on AWS [online event]
    CODE Frenzy Virtual Conference 29 Mar 2023
  • Cloud Builders Conference: Сloud Builders: Java Patterns and Practices for Serverless Applications [online event]
    Cloud Builders: Java Virtual Conference 30 Mar 2023
  • JUG Zurich: Wenn Cloud, dann richtig... und mit Java
    JUG Zurich session (in-person) JUG Zurich Gleisarena FFHS Campus Zürich 30 Mar 2023
  • JUG Zurich: To Cloud Or Not To Cloud What Is The Architectural Difference?
    Digital Crafts Day / Conference (in-person) JUG Zurich Ostbayerische Technische Hochschule Amberg-Weiden 28 Apr 2023
  • online: AWS Java Bootstrap [online event]
    airhacks.live workshops 15 Jun 2023
  • online: Cost Driven Architectures with Java on AWS [online event]
    airhacks.live workshops 22 Jun 2023
  • Events are also announced at meetup.com/airhacks/ and discord.gg/airhacks

    ]]>
    https://adambien.blog/roller/abien/entry/early_2023_java_clouds_events Mon, 13 Mar 2023 10:46:49 +0000 https://adambien.blog/roller/abien/entry/early_2023_java_clouds_events
    How Apache Roller Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #233 airhacks.fm episode with Dave Johnson (@snoopdave) about:
    about GRASS, early J2EE, Java, Sun Microsystems and how Apache Roller blogging software was created
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_apache_roller_happened_airhacks Sun, 12 Mar 2023 10:46:18 +0000 https://adambien.blog/roller/abien/entry/how_apache_roller_happened_airhacks
    Leaving Clouds, Java LTS, CQRS, TDD, JAX-RS and AutoCloseable, Lambda Limitations, Dependencies and Updates-108th airhacks.tv airhacks.tv with the following topics:
    "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":

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    Any questions left? Ask now: gist.github.com/AdamBien/ab8b773336a30dd543af03b62c4a2a0d and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java: youtube.com/@bienadam/shorts

    ]]>
    https://adambien.blog/roller/abien/entry/leaving_clouds_java_lts_cqrs Tue, 07 Mar 2023 18:13:05 +0000 https://adambien.blog/roller/abien/entry/leaving_clouds_java_lts_cqrs
    Flutter, Leaving Clouds, Http Client, Liskov Principle, AutoCloseable, Update Strategies--Questions for 108th airhacks.tv Questions and topics for the 108th airhacks.tv:
    1. LTS clarifications: 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. [from discord.gg/airhacks]
    2. Dart / Flutter opinions
    3. Leaving clouds? Thoughts on article: world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0
    4. HttpClient and Response as JSON
    5. What is "Liskov substitution principle"
    6. Why JAX-RS Response is AutoCloseable?
    7. The name of the current method
    8. Update strategies and Quarkus

    Any questions left? Ask now: gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/flutter_leaving_clouds_http_client Mon, 06 Mar 2023 12:08:57 +0000 https://adambien.blog/roller/abien/entry/flutter_leaving_clouds_http_client
    Kubernetes Was Never Supposed To Leak--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #232 airhacks.fm episode with Kelsey Hightower (@kelseyhightower) about:
    learning programming, configuration management, shell scripting, Java, GO, clouds, simplicity and kubernetes
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/kubernetes_was_never_supposed_to Sun, 05 Mar 2023 15:38:52 +0000 https://adambien.blog/roller/abien/entry/kubernetes_was_never_supposed_to
    Chicago Java User Group: Structuring Java Applications CLI, Monoliths, Microservices and Serverless Chicago Java Users Group, Feb 1st, 2023, with the following abstract:
    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.

    ...is available:

    ]]>
    https://adambien.blog/roller/abien/entry/chicago_java_user_group_structuring Thu, 02 Mar 2023 10:17:40 +0000 https://adambien.blog/roller/abien/entry/chicago_java_user_group_structuring
    Live From "The Software Architecture Gathering" Conference: Saving Costs with Pragmatic Serverless Java Architectures "The Software Architecture Gathering — Digital 2022", November 14th 2022, with the following abstract:
    "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."

    ...is available:

    ]]>
    https://adambien.blog/roller/abien/entry/live_from_the_software_architecture Mon, 27 Feb 2023 08:03:26 +0000 https://adambien.blog/roller/abien/entry/live_from_the_software_architecture
    Thinking About Decentralized Web--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #231 airhacks.fm episode with Andrew Lee Rubinger (@alrubinger) about:
    decentralized web use cases and killer apps, standards, similarities between J2EE, Java EE, Jakarta EE and TBD, Web 5
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/thinking_about_decentralized_web_airhacks Sun, 26 Feb 2023 15:31:52 +0000 https://adambien.blog/roller/abien/entry/thinking_about_decentralized_web_airhacks
    A Human-Centric, OpenSource Workflow Engine on Jakarta EE--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #230 airhacks.fm episode with Ralph Soika (@rsoika) about:
    building an open source (www.imixs.org), human-centric, workflow engine on Jakarta EE, kubernetes on-premise and in the clouds, clouds and portability.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/a_human_centric_opensource_workflow Sat, 18 Feb 2023 06:09:26 +0000 https://adambien.blog/roller/abien/entry/a_human_centric_opensource_workflow
    Highly Structured Lifehacks with Heinz--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #229 airhacks.fm episode with Heinz Kabutz (@heinzkabutz) about:
    From "lost in the woods", over JDK contributions and Java features to Garbage Collectors and weak references.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/highly_structured_lifehacks_with_heinz Sun, 12 Feb 2023 16:00:06 +0000 https://adambien.blog/roller/abien/entry/highly_structured_lifehacks_with_heinz
    Cloud Native vs On-Premise, Thin-, Fat-, Jars, Hot Redeployment, Strategies for Multi Tenancy, Horizontal vs. Deep Learning--107th airhacks.tv airhacks.tv with the following topics:
    "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":

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    Any questions left? Ask now: gist.github.com/AdamBien/3eba2c0cee3c6e2722cd6c3d440d9bef and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds with Java

    ]]>
    https://adambien.blog/roller/abien/entry/cloud_native_vs_on_premise Tue, 07 Feb 2023 18:41:48 +0000 https://adambien.blog/roller/abien/entry/cloud_native_vs_on_premise
    Dead OneToMany, Docker, Thin-, Fat-, Jars, Hot Redeployment, Strategies for Multi Tenancy, Horizontal vs. Deep Learning--107th airhacks.tv questions and topics for the second / 107th airhacks.tv in 2023:
    1. Time travel: topics from 100 episodes back (October 2014): SessionScoped, Stateful, RequestScoped, avoiding OneToMany JPA, stateless session beans
    2. Thoughts on docker, layered images, Thin Jars, Fat Jars, Jakarta EE server
    3. Challenges and strategies for application hot redeployment
    4. Strategies for multi tenant applications
    5. Thoughts on learning: horizontal knowledge vs. deep dive

    Any questions left? Ask now: gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Are you nice? :-) Then checkout: the airhacks discord server

    ]]>
    https://adambien.blog/roller/abien/entry/dead_onetomany_docker_thin_fat Mon, 06 Feb 2023 12:40:08 +0000 https://adambien.blog/roller/abien/entry/dead_onetomany_docker_thin_fat
    Star Trek, Star Wars, Transactions, SQL, NoSQL and almost Streaming--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #228 airhacks.fm episode with Mary Grygleski (@mgrygles) about:
    Star Trek, Star Wars, transactional file systems, Java, Java EE, SQL, NoSQL and almost streaming
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/star_trek_star_wars_transactions Sun, 05 Feb 2023 17:34:10 +0000 https://adambien.blog/roller/abien/entry/star_trek_star_wars_transactions
    From Jakarta EE ManagedExecutorService to MicroProfile ManagedExecutor ManagedExecutorService instance is injectable via the @Resource annotation:
    
    import javax.enterprise.concurrent.ManagedExecutorService;
    public class EventSource {
    
        
        @Resource
        ManagedExecutorService threadPool;
    (...)
    }
    
    
    [code from: Java EE 8: Sending asynchronous CDI 2.0 events with ManagedExecutorService]

    In pure MicroProfile environments these API is not available but can be replaced with ManagedExecutor from MicroProfile Context Propagation:

    
    import org.eclipse.microprofile.context.ManagedExecutor;
    public class EventSource {
    
        @Inject
        ManagedExecutor executor;
    }
    
    

    Both injected instances are inheriting from ExecutorService. Migration from javax.enterprise.concurrent.ManagedExecutorService to org.eclipse.microprofile.context.ManagedExecutor should be matter of replacing @Resource with @Inject, renaming the injected classes and fixing the imports.

    ]]>
    https://adambien.blog/roller/abien/entry/from_jakarta_ee_managedexecutorservice_to Mon, 30 Jan 2023 10:26:24 +0000 https://adambien.blog/roller/abien/entry/from_jakarta_ee_managedexecutorservice_to
    From Amiga, Java ME, JavaFX over Clouds to Decentralized Package Network--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #227 airhacks.fm episode with Karol Harezlak (@karolh2000) about:
    Amiga love, assembly, C, Java, Java ME, Java FX, NetBeans, Clouds and a Decentralized Package Network
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_amiga_java_me_javafx Sun, 29 Jan 2023 20:32:25 +0000 https://adambien.blog/roller/abien/entry/from_amiga_java_me_javafx
    Supercharging the GraalVM--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/supercharging_the_graalvm_airhacks_fm Sun, 22 Jan 2023 20:42:30 +0000 https://adambien.blog/roller/abien/entry/supercharging_the_graalvm_airhacks_fm
    Obsessed With Performance--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/obsessed_with_performance_airhacks_fm Sun, 15 Jan 2023 17:14:10 +0000 https://adambien.blog/roller/abien/entry/obsessed_with_performance_airhacks_fm
    What does it mean to be a professional programmer?--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #224 airhacks.fm episode with Ken Fogel (@omniprof) about:
    capturing requirements, writing maintainable software, unit and system testing
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/what_does_it_mean_to Sun, 08 Jan 2023 18:11:59 +0000 https://adambien.blog/roller/abien/entry/what_does_it_mean_to
    Optional, Java Modules, Kotlin, Rust, Lambda, VS Code, Java EE, PlayFramework--106th airhacks.tv airhacks.tv with the following topics:
    "Lambda Extensions, token cache with DynamoDB, Java EE vs. PlayFramework popularity, Kotlin, Rust, Optional use cases, Java Modules":

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/d5e03decb40c390ff44c1a41de52657c and get the answers at the next airhacks.tv.

    Some questions are also answered with a short video: one minute with...

    News: the airhacks discord server is available: https://discord.gg/BpMGmxvRDb

    ]]>
    https://adambien.blog/roller/abien/entry/optional_java_modules_kotlin_rust Wed, 04 Jan 2023 04:58:48 +0000 https://adambien.blog/roller/abien/entry/optional_java_modules_kotlin_rust
    Play, Java EE, AWS Lambda Tokens, 2022 Observations--106th airhacks.tv airhacks.tv in 2023:
    1. Time travel: 100 episodes ago: Play Framework vs. Java EE, reading a network file, ID generation, stateful calculations, JSF and Bootstrap, structuring huge applications, mixing storage and transfer concerns (...)
    2. 2022 observations
    3. Strategies for updating tokens of AWS Lambda's
    4. the state of airhacks industries :-)

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72 and get the answers at the next airhacks.tv.

    Some questions are also answered with a short (video): one minute with... on www.youtube.com/bienadam

    ]]>
    https://adambien.blog/roller/abien/entry/play_java_ee_aws_lambda Mon, 02 Jan 2023 10:03:07 +0000 https://adambien.blog/roller/abien/entry/play_java_ee_aws_lambda
    How Grizzly and Atmosphere Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #223 airhacks.fm episode with Jeanfrancois Arcand (@jfarcand) about:
    real time communication with Java, Grizzly and Atmosphere projects, Sun Microsystems, AI, Environmental, social, and corporate governance (ESG), and the Go programming language
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_grizzly_and_atmosphere_happened Sat, 31 Dec 2022 14:31:39 +0000 https://adambien.blog/roller/abien/entry/how_grizzly_and_atmosphere_happened
    Xmas with the Brazilian JavaMan--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #222 airhacks.fm episode with Bruno Souza (@brjavaman) about:
    Xmas trees, Java and automation, public and private cloud and the Golden Circle
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/xmas_with_the_brazilian_javaman Fri, 23 Dec 2022 12:31:37 +0000 https://adambien.blog/roller/abien/entry/xmas_with_the_brazilian_javaman
    What is foojay.io?--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #221 airhacks.fm episode with Geertjan Wielenga (@GeertjanW) about:
    Friends of OpenJDK (foojay), Java.net 2.0, Wikipedia for Java and Azul
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/what_is_foojay_org_airhacks Fri, 16 Dec 2022 15:06:49 +0000 https://adambien.blog/roller/abien/entry/what_is_foojay_org_airhacks
    To MicroProfile, Or Not To MicroProfile?--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #220 airhacks.fm episode with Romain Manni-Bucau (@rmannibucau) about:
    about the advantages and shortcomings of MicroProfile, building a custom MicroProfile-based platform, and Kubernetes' portability
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/to_microprofile_or_not_to Sun, 11 Dec 2022 17:22:53 +0000 https://adambien.blog/roller/abien/entry/to_microprofile_or_not_to
    CraC, SnapStart, AWS Lambda, REST, Change Data Capture in the Clouds, GraalVM--105th airhacks.tv airhacks.tv with the following topics:
    "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":

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/d60f7b91dc0e897915c083de35edef72 and get the answers at the next airhacks.tv.

    Some questions are also answered with a short video: one minute with...

    ]]>
    https://adambien.blog/roller/abien/entry/crac_snapstart_aws_lambda_rest Wed, 07 Dec 2022 04:14:28 +0000 https://adambien.blog/roller/abien/entry/crac_snapstart_aws_lambda_rest
    Stateful Microservices, BCE, REST, CraC, SnapStart, Serverless--105th airhacks.tv airhacks.tv in 2022:
    1. 100 episodes ago: stateful microservices, BCE design, how to learn Java, .NET vs. Java EE, REST, Layers, micro services, GoF and Java EE (...)
    2. CraC / SnapStart and Monolithic Lambdas
    3. Opinion: the state of Java documentation
    4. AWS Lambda and REST Endpoints
    5. Non AWS Endpoints
    6. Packaging serverless applications

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7 and get the answers at the next airhacks.tv.

    Some questions are also answered with a short video: one minute with...

    ]]>
    https://adambien.blog/roller/abien/entry/stateful_microservices_bce_rest_crac Mon, 05 Dec 2022 12:22:27 +0000 https://adambien.blog/roller/abien/entry/stateful_microservices_bce_rest_crac
    End of Year: Java and Cloud Sessions and Workshops
  • airhacks.tv interactive live stream: #105th airhacks.tv Questions and Answers [online event]
    airhacks.tv Questions and Answers 5 Dec 2022
  • JakartaOne Live session: Ideas for Lean, Maintainable and Productive Jakarta EE / MicroProfile Projects [online event]
    JakartaOne Live 6 Dec 2022
  • airhacks.live workshop: Serverless Event-Driven Architectures with Serverless Java on AWS [online event]
    airhacks.live workshops 8 Dec 2022
  • airhacks.live workshop: Serverless Persistence for Serverless Java on AWS [online event]
    airhacks.live workshops 15 Dec 2022
  • ]]>
    https://adambien.blog/roller/abien/entry/end_of_year_java_and Sat, 03 Dec 2022 16:33:53 +0000 https://adambien.blog/roller/abien/entry/end_of_year_java_and
    "CraC Applied":SnapStart Java AWS Lambda Cold Start Acceleration in Action In this screencast I deployed a MicroProfile / Quarkus application as AWS Lambda (github.com/AdamBien/aws-quarkus-lambda-cdk-plain) using CDK and compared the cold- with the "snap"-start.

    SnapStart / CraC was also covered at the: airhacks.fm podcast episode with the title: "Java, CraC and Reducing Cold Start Duration with AWS Lambda SnapStart"

    ]]>
    https://adambien.blog/roller/abien/entry/crac_applied_snapstart_java_aws Wed, 30 Nov 2022 13:17:04 +0000 https://adambien.blog/roller/abien/entry/crac_applied_snapstart_java_aws
    Java, CraC and Reducing Cold Start Duration with AWS Lambda SnapStart--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #219 airhacks.fm episode with Mark Sailes (@MarkSailes3) about:
    Java, Coordinated Restore at Checkpoint (CraC), the serverless Java mindset and reducing Cold Start Duration with AWS Lambda SnapStart
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_crac_and_reducing_cold Tue, 29 Nov 2022 18:41:26 +0000 https://adambien.blog/roller/abien/entry/java_crac_and_reducing_cold
    How OmniFish Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #218 airhacks.fm episode with David Matejcek (@dmatej) about:
    GlassFish, Payara, open source contributions and raise of the OmniFish
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_omnifish_happened_airhacks_fm Mon, 28 Nov 2022 15:50:25 +0000 https://adambien.blog/roller/abien/entry/how_omnifish_happened_airhacks_fm
    ACID, Base, XA and Long Running Actions--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #217 airhacks.fm episode with Daniel Kec (@danielkec) about:
    ACID, BASE, local and distributed transactions, MicroProfile Long Running Actions (LRA), SAGA pattern and high availability of LRA transaction coordinators in the cloud
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/acid_base_xa_and_long Sun, 20 Nov 2022 18:01:05 +0000 https://adambien.blog/roller/abien/entry/acid_base_xa_and_long
    Low Code, No Code, WYSIWYG …and some CRaC--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #216 airhacks.fm episode with John Ceccarelli (@jceccarelli1) about:
    technical writing about NetBeans for Sun Microsystems, no code, low code, and WYSIWYG challenges, JVM optimizations and openJDK CRaC
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/low_code_no_code_wysiwyg Sun, 13 Nov 2022 18:31:51 +0000 https://adambien.blog/roller/abien/entry/low_code_no_code_wysiwyg
    Blocking Lambdas, Off-Heap Memory, BCE, AWS SDKs--104th airhacks.tv airhacks.tv with the following topics:
    Clustered annotation corrections, blocking lambdas, quarkus, resteasy vs. jersey, modern Java challenges, off-heap memory, boundary control entity structure, AWS SDKs

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: https://gist.github.com/AdamBien/dc9b58e2c5e4a3232cb8df8fa8ba7fc7 and get the answers at the next airhacks.tv.

    Some questions are also answered with a short video: one minute with...]]> https://adambien.blog/roller/abien/entry/blocking_lambdas_off_heap_memory Thu, 10 Nov 2022 03:33:04 +0000 https://adambien.blog/roller/abien/entry/blocking_lambdas_off_heap_memory Ten Years After: From Java 6 / Java EE 6 and Glassfish to Quarkus and AWS Lambda--A Live Migration I took Java 6 / Java EE 6 sample / GlassFish application created live at the JDD 2012 conference (Java EE: Future Is Now, But It Is Not Evenly Distributed Yet) and migrated it to MicroProfile and deployed as AWS Lambda (in 18 mins):

    ]]>
    https://adambien.blog/roller/abien/entry/ten_years_after_from_java Wed, 09 Nov 2022 08:06:59 +0000 https://adambien.blog/roller/abien/entry/ten_years_after_from_java
    Blocking Lambdas, Java's Complexity, AWS APIs, Clustered Corrections--104th airhacks.tv gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d) for the the 104th (November) edition of airhacks.tv Q & A live stream (youtube.com/bienadam/):
    1. airhacks.tv time machine. Reviewing content from 100 episodes ago: exposed DB objects, vanilla Java EE, shared classes, BCE and *Resources, uploading large files, maven lifecycle hooks (...)
    2. What if a lambda needs to call an external api, I.e. Wait for a reply?
    3. I'm moving from Payara to Quarkus but I can't make sense of the CXF plugin for Quarkus(...)
    4. 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?
    5. Java Releases now seem to have the tend to add more and more syntax sugars to the language (modules, var, records,…). Whats your opinion on that? Will it help the language to grow or does it make it more unaccessible for inexperienced developers?
    6. 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?
    7. 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?
    8. announcement: "for short questions - you don't have to wait a month"

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d and get the answers at the next airhacks.tv.

    ]]>
    https://adambien.blog/roller/abien/entry/blocking_lambdas_java_s_complexity Mon, 07 Nov 2022 14:50:14 +0000 https://adambien.blog/roller/abien/entry/blocking_lambdas_java_s_complexity
    Karatsuba, Megamorphic Call-sites, Deadlocks and a bit of Loom--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #215 airhacks.fm episode with Heinz Kabutz (@heinzkabutz) about:
    Deadlocks, Project Loom, Fork Join, concurrency, parallelism and the performance of an empty stream
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/karatsuba_megamorphic_call_sites_deadlocks Sun, 06 Nov 2022 17:02:43 +0000 https://adambien.blog/roller/abien/entry/karatsuba_megamorphic_call_sites_deadlocks
    StarOfJava Session: Past, Present and Future: Serverside Java on Premise and in the Clouds An recording for the online session for Starof(Java) with the following abstract:

    "In this webinar, Adam Bien (@AdamBien) 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."
    ]]>
    https://adambien.blog/roller/abien/entry/webinar_recordings_past_present_and Mon, 31 Oct 2022 15:41:05 +0000 https://adambien.blog/roller/abien/entry/webinar_recordings_past_present_and
    It is Cool to Block Again--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #214 airhacks.fm episode with Daniel Kec (@@danielkec) about:
    reactive programming, Helidon news, Project Loom on Helidon, microservices, transactions and MicroProfile Long Running Actions (LRA)
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/it_is_cool_to_block Sun, 30 Oct 2022 11:27:07 +0000 https://adambien.blog/roller/abien/entry/it_is_cool_to_block
    Captain Primak Meets Clustered Singletons--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #213 airhacks.fm episode with Lenny Primak (@lprimak) about:
    the inner workings of Payaras' @Clustered annotation and corrections / clarification of my explanation in the 103rd airhacks.tv, committing code to Apache Shiro and flying small jets
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/captain_primak_meets_clustered_singletons Tue, 25 Oct 2022 15:26:07 +0000 https://adambien.blog/roller/abien/entry/captain_primak_meets_clustered_singletons
    From a NetBeans Champion to a Friend of the openJDK--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    ]]>
    https://adambien.blog/roller/abien/entry/from_a_netbeans_champion_to Sun, 16 Oct 2022 16:04:14 +0000 https://adambien.blog/roller/abien/entry/from_a_netbeans_champion_to
    Clustering in the Clouds, Logging, NoSQL, BCE, Jakarta EE vs. Quarkus, LRA, Lambda--103rd airhacks.tv airhacks.tv with the following topics:
    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

    ...is ready to watch:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: https://gist.github.com/AdamBien/ad7ced219e3f9224866de30a6bbb347d and get the answers at the next airhacks.tv.

    Some questions are also answered with a short video: one minute with...

    ]]>
    https://adambien.blog/roller/abien/entry/clustering_in_the_clouds_logging Wed, 12 Oct 2022 04:24:53 +0000 https://adambien.blog/roller/abien/entry/clustering_in_the_clouds_logging
    How Liberica JDK Happened--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #211 airhacks.fm episode with Dmitry Chuyko (@dchuyko) about:
    programming and math, improving JDKs performance, BellSoft and Liberica JDK
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/how_liberica_jdk_happened_airhacks Mon, 10 Oct 2022 12:58:02 +0000 https://adambien.blog/roller/abien/entry/how_liberica_jdk_happened_airhacks
    The Cloud is Slower Than Your Local Machine--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #210 airhacks.fm episode with Goran Opacic (@goranopacic) about:
    Open source vs. cloud native managed services trade-offs, cloud native persistence, performance, scalability, and the return of premises
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/the_cloud_is_slower_than Mon, 03 Oct 2022 12:41:57 +0000 https://adambien.blog/roller/abien/entry/the_cloud_is_slower_than
    Clustered, Distributed Events, System.out.println, NoSQL challenges, BCE, Jakarta EE vs. Quarkus--103rd airhacks.tv gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0) for the 103rd airhacks.tv Q & A live stream (https://www.youtube.com/c/bienadam/):
    1. airhacks.tv time machine. Reviewing content from 100 episodes ago: cross-cutting concerns, horizontal vs. vertical splitting, mockito, configuration (...)
    2. @Clustered vs. Hazelcast and distributed events
    3. data in NoSQL storage
    4. Quarkus vs. Jakarta EE
    5. System.out.println vs. logging
    6. BCE pattern and builders
    7. Is System.out.println too complex and verbose?
    8. announcement: "for short questions - you don't have to wait a month"

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0 and get the answers at the next airhacks.tv.

    ]]>
    https://adambien.blog/roller/abien/entry/clustered_distributed_events_system_out Mon, 03 Oct 2022 08:07:27 +0000 https://adambien.blog/roller/abien/entry/clustered_distributed_events_system_out
    From Punched Cards to Java 11--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #209 airhacks.fm episode with Glenn Holmer (@gholmer) about:
    the transition from punched cards over assembly, servlets, enterprise java to Java 11+.
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/from_punched_cards_to_java Sun, 25 Sep 2022 15:42:20 +0000 https://adambien.blog/roller/abien/entry/from_punched_cards_to_java
    Debugging Incoming Headers with jwebserver jwebserver introduced with JEP 408 can be used for incoming header / user agent debugging.

    Launching the web server in verbose mode with: jwebserver -o verbose, outputs the incoming headers after executing: curl http://localhost:8000:

    
    > Accept: */*
    > Host: localhost:8000
    > User-agent: curl/7.79.1
    
    

    The following Java HttpClient:

    
    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())
    
    

    generates these headers:

    
    > Connection: Upgrade, HTTP2-Settings
    > Http2-settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
    > Host: localhost:8000
    > User-agent: Java-http-client/19
    > Upgrade: h2c
    
    

    See it in action and in less than 1 min:

    ]]>
    https://adambien.blog/roller/abien/entry/debugging_incoming_headers_with_jwebserver Fri, 23 Sep 2022 15:50:53 +0000 https://adambien.blog/roller/abien/entry/debugging_incoming_headers_with_jwebserver
    JCon 2022 Conference Keynote: Thinking About Persistence for Serverless Java Thanks for all the questions and interactions. This keynote was fun!

    Abstract:

    "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.

    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!"

    ]]>
    https://adambien.blog/roller/abien/entry/jcon_keynote_thinking_about_persistence Wed, 21 Sep 2022 10:53:41 +0000 https://adambien.blog/roller/abien/entry/jcon_keynote_thinking_about_persistence
    GraalVM: Meta Circularity on Different Levels--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #208 airhacks.fm episode with Fabio Niephaus (@fniephaus) about:
    various ways for language interoperability on GraalVM and GraalVM developer tools
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/graalvm_meta_circularity_on_different Sun, 18 Sep 2022 13:37:47 +0000 https://adambien.blog/roller/abien/entry/graalvm_meta_circularity_on_different
    Mission Critical Transactions--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #207 airhacks.fm episode with Alejandro Pablo Revilla (@apr) about:
    mission critical Java, transactions and POS, dependency management, open source vs. managed services in the clouds
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/mission_critical_transactions_airhacks_fm Sun, 11 Sep 2022 13:04:11 +0000 https://adambien.blog/roller/abien/entry/mission_critical_transactions_airhacks_fm
    Closing JAX-RS Response with try-with-resources Response implements AutoCloseable. It can either be closed explicitly, or via try-with-resources:
    
    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);
            }
        }
    }
    
    

    The corresponding client (Rest Client for MicroProfile) used in this example is:

    
    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();
    }
    
    

    Too many "open" Responses may lead to blocking behavior.

    ]]>
    https://adambien.blog/roller/abien/entry/closing_jax_rs_response_with Fri, 09 Sep 2022 04:23:08 +0000 https://adambien.blog/roller/abien/entry/closing_jax_rs_response_with
    Migrations, Transactions, Retries, Long URIs, JPA, JSON-B, HTTP/2--102nd airhacks.tv airhacks.tv with the following topics:
    "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"

    is ready:

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: https://gist.github.com/AdamBien/877ce9c05f8eaeaf1dda2ba2df7eddd0 and get the answers at the next airhacks.tv.

    ]]>
    https://adambien.blog/roller/abien/entry/migrations_transactions_retries_long_uris Wed, 07 Sep 2022 03:58:47 +0000 https://adambien.blog/roller/abien/entry/migrations_transactions_retries_long_uris
    Java EE Upgrades, NetBeans, Bean Validation, Transactions, HTTP/2, 414--102nd airhacks.tv airhacks.tv live stream (https://www.youtube.com/c/bienadam/):
    1. The time machine or topics from 100 episodes ago (the 2nd airhacks.tv)
    2. J2EE, Java EE and Jakarta EE upgrades
    3. NetBeans and Visual Studio Code
    4. The single Jakarta EE dependency
    5. Installation of custom Bean Validators
    6. Date conversions with JPA and JSON-B
    7. The "retriable transaction" annotation
    8. Use cases for http 2 server push
    9. Dealing with 414 (Request-URI Too Large)

    See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

    Any questions left? Ask now: gist.github.com/AdamBien/49efb5c357b19ad2bdde82ea026db803 and get the answers at the next airhacks.tv.

    ]]>
    https://adambien.blog/roller/abien/entry/java_ee_upgrades_netbeans_bean Mon, 05 Sep 2022 08:23:08 +0000 https://adambien.blog/roller/abien/entry/java_ee_upgrades_netbeans_bean
    Java 19: Millions of Threads in No Time--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #206 airhacks.fm episode with Nicolai Parlog (@nipafx) about:
    Java 19, Project Loom, structured concurrency and reactive programming
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/java_19_millions_of_threads Sun, 04 Sep 2022 14:22:27 +0000 https://adambien.blog/roller/abien/entry/java_19_millions_of_threads
    Quarkus, Hanging MP REST Client and the Solution (Rest Client for MicroProfile) interface:
    
    @RegisterRestClient(baseUri = "http://localhost:8000")
    public interface WebsiteClient {
        
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        Response getContent();
    }
    
    

    ...injected to Quarkus JAX-RS resource:

    
    
    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 < 500; i++) {
                Response firstResponse = this.firstClient.getContent();
                Response secondResponse = this.secondClient.getContent();
                System.out.println(i);
            }
            return "+";
        }    
    }
    
    

    will block after 50 iterations.

    Reason: the exhaustion of the underlying HTTP connection pool. See stack trace:

    
    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)
    
    

    The underlying resources are freed with the Response#close call, now all 500 iterations are performed without blocking:

    
    @GET
    public String injected() {
        for (int i = 0; i < 500; i++) {
            Response firstResponse = this.firstClient.getContent();
            firstResponse.close();
            Response secondResponse = this.secondClient.getContent();
            firstResponse.close();
            System.out.println(i);
        }
        return "+";
    }    
    
    

    The blocking behaviour depends on the JAX-RS / MicroProfile Rest Client implementation. RESTEasy requires an explicit Response#close call, Jersey does not.

    ]]>
    https://adambien.blog/roller/abien/entry/quarkus_hanging_mp_rest_client Sat, 03 Sep 2022 10:40:41 +0000 https://adambien.blog/roller/abien/entry/quarkus_hanging_mp_rest_client
    Time Measurement with Duration, Instant, and ISO-8601 Duration is a viable alternative to System.currentTimeMillis() for time measurements (also checkout: Beyond System.currentTimeMillis: Measuring Time with Duration and Instant):
    
    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);
        }
    }
    
    

    The method Duration#toString returns a combined representation of hours, minutes, seconds and fractional seconds, standardized by ISO-8601.

    The above example produces the following output: PT1.001087S.

    ]]>
    https://adambien.blog/roller/abien/entry/time_measurement_with_duration_instant Fri, 02 Sep 2022 03:54:47 +0000 https://adambien.blog/roller/abien/entry/time_measurement_with_duration_instant
    From Java Object to JSON-P Type with "Pattern Matching for instanceof" JEP 305: Pattern Matching for instanceof allows a more concise type conversion; the method javaToJson tests the type of the Java object and converts it to the corresponding JSON-P without casting:

    
    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 instanceof String string) {
                return Json.createValue(string);
            } else if (javaType instanceof Integer integer) {
                return Json.createValue(integer);
            } else if (javaType instanceof Boolean bool) {
                return bool? JsonValue.TRUE : JsonValue.FALSE;
            }
            return Json.createValue(javaType.toString());
        }
    
    }   
    
    

    Now a List of various Java types can be converted to the corresponding JSON-P (Jakarta JSON Processing) values:

    
    @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());
    }   
    
    
    ]]>
    https://adambien.blog/roller/abien/entry/from_java_object_to_json1 Thu, 01 Sep 2022 02:34:42 +0000 https://adambien.blog/roller/abien/entry/from_java_object_to_json1
    Duration Conversion with java.util.concurrent.TimeUnit java.util.concurrent.TimeUnit provides methods to convert across various time units.

    As an example, the following test converts three seconds to milliseconds:

    
    @Test
    public void secondsToMs() {
        var expected = 3 * 1000;
        var actual = TimeUnit.SECONDS.toMillis(3);
        assertEquals(expected, actual);
    }
    
    

    Now from milliseconds to minutes:

    
    @Test
    public void msToMinutes() {
        var expected = 3;
        var actual = TimeUnit.MILLISECONDS.toMinutes(180000);
        assertEquals(expected, actual);
    }
    
    

    With TimeUnit we can even wait for the next vacations:

    
    @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);
    }
    
    
    ]]>
    https://adambien.blog/roller/abien/entry/duration_conversion_with_java_util Tue, 30 Aug 2022 13:44:00 +0000 https://adambien.blog/roller/abien/entry/duration_conversion_with_java_util
    More Convenience with Rest Client for MicroProfile and Method Overloading JAX-RS resource with optional header, or query parameters:
    
    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;
        }
    }
    
    

    ...is accessible via a Rest Client for MicroProfile interface with overloaded methods:

    
    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();
        
    }
    
    

    Now the client can be injected and the overloaded methods conveniently called:

    
    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");
        }  
    }
    
    
    ]]>
    https://adambien.blog/roller/abien/entry/more_convenience_with_rest_client Sun, 28 Aug 2022 13:29:52 +0000 https://adambien.blog/roller/abien/entry/more_convenience_with_rest_client
    Mr. Omni--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #205 airhacks.fm episode with Ken Fogel (@omniprof) about:
    3bit computers, early programming, mainframes, and teaching Java
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/mr_omni_airhacks_fm_podcast Sat, 27 Aug 2022 08:02:20 +0000 https://adambien.blog/roller/abien/entry/mr_omni_airhacks_fm_podcast
    Creating an empty, immutable, List List.of() to create an empty, immutable, List instance with typed elements (if there were any):
    
    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.<String>of();
            assertTrue(emptyList.isEmpty());
        }
    }    
    
    
    Prior to Java 9, you would have to use Collections.emptyList() to create an empty, immutable, List:
    
        //Java 5+
        @Test
        public void emptyList() {
            var emptyList = Collections.<String>emptyList();
            assertTrue(emptyList.isEmpty());
        }
    
    
    ]]>
    https://adambien.blog/roller/abien/entry/creating_an_empty_immutable_list Tue, 23 Aug 2022 02:43:22 +0000 https://adambien.blog/roller/abien/entry/creating_an_empty_immutable_list
    About Java 18--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #204 airhacks.fm episode with Nicolai Parlog (@nipafx) about:
    vacations, Java 18 features, unit and system testing for documentation purposes and new Java keywords
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/about_java_18_airhacks_fm Sun, 21 Aug 2022 18:34:48 +0000 https://adambien.blog/roller/abien/entry/about_java_18_airhacks_fm
    Renarde Web Framework--The Very First Impression "Hello, Renarde!"--the very first impression of the Quarkus Renarde - a server-side Web Framework based on Convention over Configuration:

    This screencast was inspired by a question from the 96h airhacks.tv:

    ]]>
    https://adambien.blog/roller/abien/entry/renarde_web_framework_the_very Fri, 19 Aug 2022 09:46:34 +0000 https://adambien.blog/roller/abien/entry/renarde_web_framework_the_very
    CDI RequestScoped,Threading and the javax.enterprise.context.ContextNotActiveException @RequestScoped bean:
    
    import javax.enterprise.context.RequestScoped;
    
    @RequestScoped
    public class Greeter {
        
        public String hello(long number){
            return "hello, duke " + number;
        }
    }
    
    
    asynchronously:
    
    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 numbers.parallelStream() //stream() would work...
            .map(number -> this.greeter.hello(number))
            .collect(Collectors.joining(","));
        }
    }
    
    
    may cause a javax.enterprise.context.ContextNotActiveException, like e.g.
    
    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
    
    

    The entire example was implemented, and explained, "from scratch":

    ]]>
    https://adambien.blog/roller/abien/entry/cdi_requestscoped_threading_and_the Wed, 17 Aug 2022 08:45:59 +0000 https://adambien.blog/roller/abien/entry/cdi_requestscoped_threading_and_the
    Adding / Merging / Joining two Collections / Lists List / Collection instances, you can concat their streams:
    
    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);
        }
    }
    
    

    Prints: 1 2 3 4

    See it in action:

    ]]>
    https://adambien.blog/roller/abien/entry/adding_merging_joining_two_collections Tue, 16 Aug 2022 08:28:17 +0000 https://adambien.blog/roller/abien/entry/adding_merging_joining_two_collections
    "I first played games I wrote"--airhacks.fm podcast Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

    The #203 airhacks.fm episode with Daniel Lipp (@dynamic_123) about:
    SmallTalk, ugly Java, enterprise architectures, clouds and Quarkus
    is available for
    ]]>
    https://adambien.blog/roller/abien/entry/i_first_played_games_i Sun, 14 Aug 2022 12:03:32 +0000 https://adambien.blog/roller/abien/entry/i_first_played_games_i
    JSON-B / JSON-P: From TextBlock To JsonArray TextBlocks to JsonArray with Jakarta JSON Binding (JSON-B) and Jakarta JSON Processing (JSON-P):
    
    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);
        }
        
    }
    
    

    The output:

    
    {"name":"java","age":25}
    {"name":"python","age":52}
    

    JSON-B and JSON-P functionality comes as a single dependency:

    
    <dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>2.0.4</version>
    </dependency>
    
    
    ]]>
    https://adambien.blog/roller/abien/entry/json_b_json_p_from Sat, 13 Aug 2022 09:17:39 +0000 https://adambien.blog/roller/abien/entry/json_b_json_p_from