<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Books on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/books/</link><description>Recent content in Books on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 02 Feb 2026 11:54:29 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/books/index.xml" rel="self" type="application/rss+xml"/><item><title>Announcing: Sustainability for Java Developers</title><link>https://foojayio.github.io/website/today/announcing-sustainability-for-java-developers-a-new-collaborative-guide-from-the-foojay-io-community/</link><pubDate>Mon, 02 Feb 2026 11:04:54 +0000</pubDate><guid>https://foojayio.github.io/website/today/announcing-sustainability-for-java-developers-a-new-collaborative-guide-from-the-foojay-io-community/</guid><description>&lt;p&gt;Java developers from around the world are writing a book about a question that&amp;rsquo;s becoming impossible to ignore: how do we write software that&amp;rsquo;s good for both our projects and the planet?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sustainability for Java Developers: Towards an Understanding of Sustainable Java Software Development&lt;/em&gt; is now freely available on Leanpub, bringing together Java Champions, architects, and technical writers to look at sustainability from every angle.&lt;/p&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;
 &lt;img fetchpriority="high" decoding="async" width="793" height="1024" src="sustainabilitybook-793x1024.png" alt="" class="wp-image-122569" style="width:277px;height:auto"&gt;
&lt;/figure&gt;
&lt;p&gt;The book covers everything from the environmental footprint of our data centers to the ethics of open source supply chains, from efficient data formats to the often-overlooked topic of career longevity.&lt;/p&gt;</description></item><item><title>Book Review: Writing for Developers</title><link>https://foojayio.github.io/website/today/book-review-writing-for-developers/</link><pubDate>Wed, 18 Jun 2025 10:58:31 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-writing-for-developers/</guid><description>&lt;p&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: This post includes affiliate links; I may receive compensation if you purchase the book from the different links provided in this post.&lt;/p&gt;
&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/writing-for-developers?utm_source=frankel&amp;amp;amp;utm_medium=affiliate&amp;amp;amp;utm_campaign=affiliate&amp;amp;amp;a_aid=frankel" target="_blank" rel="noopener noreferrer"&gt;Writing for Developers&lt;/a&gt;
 by Piotr Sarna and Cynthia Dunlop from Manning.&lt;/p&gt;
&lt;p&gt;I started &lt;a href="https://blog.frankel.ch/" target="_blank" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;
 as a hobby seventeen years ago, in April 2008. At the time, I had no clue about technical writing. I&amp;rsquo;m pretty sure it was not even a thing back then: the only content aimed at developers was technical documentation. Since then, the landscape has changed a lot, to the point that companies hire for technical writer positions.&lt;/p&gt;</description></item><item><title>Book Review: Raising Young Coders</title><link>https://foojayio.github.io/website/today/book-review-raising-young-coders/</link><pubDate>Wed, 07 May 2025 07:04:09 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-raising-young-coders/</guid><description>&lt;p&gt;&amp;ldquo;&lt;a href="https://www.amazon.com/Raising-Young-Coders-Teaching-Programming/dp/B0DVBQZ483/" target="_blank" rel="noopener noreferrer"&gt;Raising Young Coders&lt;/a&gt;
&amp;rdquo; by Cassandra Chin: A Parent&amp;rsquo;s Guide to Inspiring the Next Generation of Technologists&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Author Who Understands Both Sides&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Raising Young Coders: A Parent&amp;rsquo;s Guide to Teaching Programming at Home&amp;rdquo; by Cassandra Chin is an invaluable resource for parents seeking to introduce their children to the world of technology in a fun, accessible way.&lt;/p&gt;
&lt;p&gt;As a young computer science student who has been teaching kids&amp;rsquo; programming workshops since age 14, Chin brings both technical expertise and genuine understanding of children&amp;rsquo;s learning styles to this comprehensive guide.&lt;/p&gt;</description></item><item><title>Foojay Podcast #67: Writing a book and fame and fortune!</title><link>https://foojayio.github.io/website/today/foojay-podcast-67/</link><pubDate>Mon, 24 Feb 2025 12:23:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-67/</guid><description>&lt;p&gt;Let me share a personal story. I started experimenting with Java on a Raspberry Pi about five years ago and blogged a few articles about it. But the more I experimented, the more I wrote down, and eventually, I had written a book&amp;hellip; I worked on it for six months in a row, every evening and a lot of weekends. But the moment I received the box with my author copies was an incredible feeling. Holding a paper book with your name is a special moment.&lt;/p&gt;</description></item><item><title>Book Review: Mastering the Java Virtual Machine</title><link>https://foojayio.github.io/website/today/book-review-mastering-the-java-virtual-machine/</link><pubDate>Fri, 18 Oct 2024 13:54:49 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-mastering-the-java-virtual-machine/</guid><description>&lt;p&gt;&lt;strong&gt;Otávio Santana&amp;rsquo;s&lt;/strong&gt; &lt;strong&gt;&amp;ldquo;Mastering the Java Virtual Machine&amp;rdquo;&lt;/strong&gt; takes readers on an insightful journey through the inner workings of the JVM. As I read this book, I found myself reconnecting with the fundamentals of Java programming while also discovering new depths of understanding.&lt;/p&gt;
&lt;p&gt;The book strikes a perfect balance between nostalgia and innovation. It reminded me of my early programming days, while also introducing cutting-edge concepts that are crucial for modern Java development. Santana uses clever technical metaphors to make complex JVM internals more accessible, bridging the gap between theory and practical application.&lt;/p&gt;</description></item><item><title>Sustainable Software Engineering: Input Requested!</title><link>https://foojayio.github.io/website/today/sustainable-software-engineering-input-requested/</link><pubDate>Wed, 21 Aug 2024 09:49:20 +0000</pubDate><guid>https://foojayio.github.io/website/today/sustainable-software-engineering-input-requested/</guid><description>&lt;p&gt;&lt;strong&gt;The Foojay community has a strong tradition around the creation of content on all things Java and OpenJDK. Since about a year ago, the community has a group of people that are working on a book with tips and information on Sustainable Software Engineering. For some of the topics in the book, we are looking for data to either support claims that are made, or inform us on the best direction to write a topic.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Book review: Frontend Development with JavaFX and Kotlin</title><link>https://foojayio.github.io/website/today/book-review-frontend-development-with-javafx-and-kotlin/</link><pubDate>Fri, 14 Jun 2024 09:06:53 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-frontend-development-with-javafx-and-kotlin/</guid><description>&lt;figure class="wp-block-image size-full is-resized"&gt;
 &lt;img fetchpriority="high" decoding="async" width="327" height="466" src="cover.jpg" alt="" class="wp-image-110882" style="width:auto;height:200px"&gt;
&lt;/figure&gt;
&lt;p&gt;For a personal pet project, I started experimenting with JavaFX and Kotlin to create a user interface with a lot of Java / Kotlin background processing. As I knew there is a book available on this specific topic, Apress was so kind to send me a review copy of &lt;a href="https://www.amazon.nl/Frontend-Development-JavaFX-Kotlin-State/dp/1484297164" target="_blank" rel="noopener noreferrer"&gt;Frontend Development with JavaFX and Kotlin: Build State-of-the-Art Kotlin GUI Applications&lt;/a&gt;
 by Peter Späth (152 pages, 48€ on paper, 35.5€ for ebook on Amazon.nl).&lt;/p&gt;</description></item><item><title>Crowd-Publishing the 10x Java Dev Book</title><link>https://foojayio.github.io/website/today/crowd-publishing-the-10x-java-dev-book/</link><pubDate>Thu, 02 May 2024 07:17:58 +0000</pubDate><guid>https://foojayio.github.io/website/today/crowd-publishing-the-10x-java-dev-book/</guid><description>&lt;p&gt;&lt;strong&gt;Java transformed the world of software development as we know it and continues to evolve as a platform and language. Nevertheless, the &amp;ldquo;&lt;a href="https://github.com/devoxx/JavaRoadmap" target="_blank" rel="noopener noreferrer"&gt;enlightenment roadmap&lt;/a&gt;
&amp;rdquo; of a Java developer can be scary. How do you become the 10x Java Developer you always dreamed of becoming?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s the question Steve Poole and Olimpiu Pop embarked on to respond. And, what better way to achieve it than to tap into the best resource Java has: its community!&lt;/p&gt;</description></item><item><title>Book Review: Modern Frontends with htmx</title><link>https://foojayio.github.io/website/today/book-review-modern-frontends-with-htmx/</link><pubDate>Sun, 24 Dec 2023 10:07:20 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-modern-frontends-with-htmx/</guid><description>&lt;p&gt;&lt;strong&gt;People who follow me probably know I have a big love for user interface development with JavaFX (for desktop), and Vaadin (for browser). But as always, there are different solutions for every challenge, and building a web user interface with Java can be done with other frameworks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;htmx seems to be one of those hot new rising stars, and I already wanted to dive deeper into it, but didn&amp;rsquo;t find the time yet.&lt;/p&gt;</description></item><item><title>Book Review : The Software Engineer's Guidebook</title><link>https://foojayio.github.io/website/today/book-review-the-software-engineers-guidebook/</link><pubDate>Fri, 15 Dec 2023 14:12:12 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-the-software-engineers-guidebook/</guid><description>&lt;p&gt;&lt;strong&gt;Gergely Orosz&amp;rsquo;s book, &amp;ldquo;The Software Engineer&amp;rsquo;s Guidebook,&amp;rdquo; takes readers on an enthralling exploration of the realm of software development, working in various companies, and startups.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A software engineer in a startup or Big Tech company traces the journey in this book, starting from a beginner developer to a principal engineer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This book serves as a comprehensive guide, especially beneficial for new engineers and individuals with limited work experience in a few companies.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Book review: "Persistence Best Practices for Java Applications"</title><link>https://foojayio.github.io/website/today/book-review-persistence-best-practices-for-java-applications/</link><pubDate>Fri, 27 Oct 2023 08:56:21 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-persistence-best-practices-for-java-applications/</guid><description>&lt;p&gt;&lt;strong&gt;In todays ever-evolving world, fast and efficient data management is becoming ever more important. With the explosion of digital data and diverse data sources, selecting the right database type, whether it&amp;rsquo;s traditional relational, NoSQL, or emerging options like NewSQL, has become pivotal. This also leads us to the next challenge for us, how do we integrate with this? Do we use JPA/JOOQ/&amp;hellip; ? Where/how do we map our data? What is a polyglot setup, and should we be using it?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Book review: “Developing Apps with GPT-4 and ChatGPT”</title><link>https://foojayio.github.io/website/today/book-review-developing-apps-with-gpt-4-and-chatgpt/</link><pubDate>Sun, 22 Oct 2023 06:05:28 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-developing-apps-with-gpt-4-and-chatgpt/</guid><description>&lt;p&gt;Whether you&amp;rsquo;re pro or con the usage of AI, LLMs, and ChatGPT one cannot deny that there are a plethora of possibilities now available to us.&lt;/p&gt;
&lt;p&gt;Now, given the rapid shift in this field, a lot of us are left with a lot of queries such as: what are the differences between the models, how do I query them and of course, how can I use them to my advantage?&lt;/p&gt;</description></item><item><title>Book review: "Get Your Hands Dirty on Clean Architecture - Second Edition"</title><link>https://foojayio.github.io/website/today/book-review-get-your-hands-dirty-on-clean-architecture-second-edition/</link><pubDate>Sat, 14 Oct 2023 11:51:34 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-get-your-hands-dirty-on-clean-architecture-second-edition/</guid><description>&lt;p&gt;&lt;strong&gt;Clean Architecture helps us ensure a solid foundation for our applications&lt;/strong&gt; ,&lt;strong&gt;and helps keep our code organized and maintainable. Furthermore when properly applied it helps keep ones team on the same page and ensures our applications stay robust and flexible over time. Of course there are a lot of pitfalls to take into account, and a lot of pros/cons to each approach. There certainly is no one size fits all approach. But luckily this book by &lt;a href="https://www.linkedin.com/in/thombergs/" target="_blank" rel="noopener noreferrer"&gt;Tom Hombergs&lt;/a&gt;
 provides a lot of valuable practical insights.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>OpenJDK Migration Book Review</title><link>https://foojayio.github.io/website/today/openjdk-migration-book-review/</link><pubDate>Wed, 04 Oct 2023 08:13:53 +0000</pubDate><guid>https://foojayio.github.io/website/today/openjdk-migration-book-review/</guid><description/></item><item><title>Visit Azul at Devoxx!</title><link>https://foojayio.github.io/website/today/visit-azul-at-devoxx/</link><pubDate>Tue, 26 Sep 2023 07:55:31 +0000</pubDate><guid>https://foojayio.github.io/website/today/visit-azul-at-devoxx/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://devoxx.be/?utm_medium=event&amp;amp;utm_campaign=20231003-SEV-Devoxx%20Belgium&amp;amp;utm_source=unbounce&amp;amp;utm_content&amp;amp;utm_term" target="_blank" rel="noopener noreferrer"&gt;Devoxx Belgium 2023&lt;/a&gt;
 is finally here! To mark the 20^th^ anniversary of the conference and the release of the new Azul book &lt;a href="https://www.azul.com/openjdk-migration-for-dummies/?utm_medium=event&amp;amp;utm_campaign=20231004-HEV-Dummies%20Launch%20Party%20at%20Devoxx%20BE&amp;amp;utm_source=unbounce&amp;amp;utm_content=&amp;amp;utm_term=" target="_blank" rel="noopener noreferrer"&gt;OpenJDK Migration for Dummies&lt;/a&gt;
, this post summarizes all the logistical details you need to know to get the most out of Azul at Devoxx!&lt;/strong&gt;
&lt;img src="https://foojayio.github.io/website/today/visit-azul-at-devoxx/2023-9-14b-devoxx-hero-1024x400.jpg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;Devoxx Belgium will take place on 2 &amp;ndash; 6 October 2023 at &lt;a href="https://www.google.com/maps/dir/Kinepolis&amp;#43;Antwerpen,&amp;#43;Groenendaallaan&amp;#43;394,&amp;#43;2030&amp;#43;Antwerpen,&amp;#43;Belgium/Kinepolis,&amp;#43;Groenendaallaan&amp;#43;394,&amp;#43;2030&amp;#43;Antwerp/@51.2459867,4.3338087,12z/data=!4m13!4m12!1m5!1m1!1s0x47c3f63435c044a3:0xa9fd5c643a4787c5!2m2!1d4.4162091!2d51.2459082!1m5!1m1!1s0x47c3f63435c044a3:0xa9fd5c643a4787c5!2m2!1d4.4162091!2d51.2459082?entry=ttu" target="_blank" rel="noopener noreferrer"&gt;Kinepolis&lt;/a&gt;
 in Antwerp (Belgium). This edition is set to become the most visited of the series with over 3,200 attendees expected!&lt;/p&gt;</description></item><item><title>Book Review: Get Your Hands Dirty on Clean Architecture</title><link>https://foojayio.github.io/website/today/book-review-get-your-hands-dirty-on-clean-architecture/</link><pubDate>Sat, 23 Sep 2023 12:00:31 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-get-your-hands-dirty-on-clean-architecture/</guid><description>&lt;p&gt;&lt;strong&gt;I recently completed reading &amp;ldquo;Get Your Hands Dirty on Clean Architecture&amp;rdquo; authored by Tom Hombergs and I deem it an indispensable resource for developers aspiring to produce clean code and implement the Hexagonal Architecture. Consequently, I have resolved to compose a review to aid numerous individuals who harbor a fervent interest in technology!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; Get Your Hands Dirty on Clean Architecture&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; Tom Hombergs&lt;br&gt;
&lt;strong&gt;Genre:&lt;/strong&gt; Technical, Software Architecture&lt;/p&gt;
&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/book-review-get-your-hands-dirty-on-clean-architecture/GetYourHandsDirtyOnCleanArchitecture.jpg" alt="CleanArchitecture" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;In the constantly changing realm of software development, architectural principles hold a crucial position in determining the triumph and sustainability of a project. The book authored by Tom Hombergs, titled &amp;ldquo;Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java,&amp;rdquo; is an exceptional guide that illuminates the importance of clean architecture, while also offering practical perspectives on its implementation through the Java programming language.&lt;/p&gt;</description></item><item><title>Mastering the Challenges of OpenJDK Migration.</title><link>https://foojayio.github.io/website/today/mastering-the-challenges-of-openjdk-migration/</link><pubDate>Fri, 22 Sep 2023 15:11:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/mastering-the-challenges-of-openjdk-migration/</guid><description>&lt;p&gt;&lt;strong&gt;Ah, the halcyon days of Java development, where coding was king and APIs were the castle! From the nitty-gritty of the Java VM and garbage collection to the euphoria of leveraging new APIs, life was straightforward. With each Java update, you could expect nothing but improvements, a far cry from other ecosystems where every new version turned into a mini-project just to keep your codebase relevant. And with DevOps in the picture, version constraints felt like a thing of the past. Come 2017, Oracle promised us an accelerated release cycle, and life was good.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Book Review: "OpenJDK Migration for Dummies"</title><link>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies-3/</link><pubDate>Mon, 18 Sep 2023 04:48:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies-3/</guid><description>&lt;p&gt;I recently read the free book &lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;OpenJDK Migration for Dummies&lt;/a&gt;
 by &lt;a href="https://www.linkedin.com/in/siritter/" target="_blank" rel="noopener noreferrer"&gt;Simon Ritter&lt;/a&gt;
. Simon is the Deputy CTO at Azul Systems.&lt;/p&gt;
&lt;p&gt;Azul has its own OpenJDK distribution which also has commercial flavors. So, obviously, my first thought was, &amp;ldquo;Well, of course, he&amp;rsquo;s going to say nice things about Azul&amp;rsquo;s JDK distribution and try to sell it everywhere&amp;rdquo;. But, to my surprise, that wasn&amp;rsquo;t entirely true. To be fair, he does sell Azul&amp;rsquo;s JDK a bit, and the goal of the book seems to include some marketing and advocacy for Azul. However, overall the book is what it promises in the title, a guide for migrating to an OpenJDK distribution, regardless of the vendor.&lt;/p&gt;</description></item><item><title>Book Review: "Java Basics", by Shai Almog</title><link>https://foojayio.github.io/website/today/book-review-java-basics-a-practical-introduction-to-full-stack-java/</link><pubDate>Sat, 16 Sep 2023 08:43:09 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-java-basics-a-practical-introduction-to-full-stack-java/</guid><description>&lt;p&gt;Shai Almog&amp;rsquo;s &amp;ldquo;&lt;a href="https://www.amazon.com/Java-Basics-Practical-Introduction-Full-Stack/dp/B0CCCJ38WH" target="_blank" rel="noopener noreferrer"&gt;Java Basics: A Practical Introduction to Full Stack Java&lt;/a&gt;
&amp;rdquo; more than lives up to its title. And how could it be otherwise, with its highly Java driven and opinionated author having a track record going back to leading Java mobile efforts all the way back to Sun Microsystems.&lt;/p&gt;
&lt;figure class="wp-block-image size-full is-resized"&gt;
 &lt;img fetchpriority="high" decoding="async" src="B0CCCJ38WH.01._SCLZZZZZZZ_SX500_.jpg" alt="" class="wp-image-102286" style="width:290px;height:362px" width="290" height="362"&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Thoroughness and Ambition&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The thoroughness and ambition of the book is clear from its table of contents, each chapter well laid out, in short very readable chapters, each ending with a summary and a quiz.&lt;/p&gt;</description></item><item><title>Review: OpenJDK Migration for Dummies</title><link>https://foojayio.github.io/website/today/review-openjdk-migration-for-dummies/</link><pubDate>Fri, 15 Sep 2023 18:46:59 +0000</pubDate><guid>https://foojayio.github.io/website/today/review-openjdk-migration-for-dummies/</guid><description>&lt;p&gt;&lt;strong&gt;Have you been thinking of moving away from the Oracle JDK to OpenJDK? The book &amp;ldquo;OpenJDK Migration for Dummies&amp;rdquo;, written by Simon Ritter of Azul, provides direction for those who are looking to make the move.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In many cases, organizations develop Java applications to work on a specific version of the JDK. Oftentimes, as long as the application continues running without issue, organizations wouild not upgrade the JDK. As we well know, as with all software, as time goes on, the JDK which is in use can age and become out-of-date, exposing security vulnerabilities. Moreover, if the JDK in use is aging, then there likely have been many enhancements in more recently released JDKs which could provide performance benefits for the deployed application(s).&lt;/p&gt;</description></item><item><title>Book review: "OpenJDK Migration for Dummies"</title><link>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies-2/</link><pubDate>Fri, 01 Sep 2023 07:42:43 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies-2/</guid><description>&lt;p&gt;&lt;strong&gt;In the past couple of years, there have been quite a lot of Oracle Java licensing changes which can have quite the impact on how much using the Oracle JDK will cost your organization, especially since under the latest terms it&amp;rsquo;s quite easy to have a &amp;ldquo;rogue&amp;rdquo; install cost you quite a bit.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is where the new &lt;strong&gt;free&lt;/strong&gt; book &lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;OpenJDK Migration for Dummies&lt;/a&gt;
 by &lt;a href="https://www.linkedin.com/in/siritter/" target="_blank" rel="noopener noreferrer"&gt;Simon Ritter&lt;/a&gt;
 offers a very useful resource.&lt;/p&gt;</description></item><item><title>Well Worth My Time: "OpenJDK Migration for Dummies"</title><link>https://foojayio.github.io/website/today/well-worth-my-time-openjdk-migration-for-dummies/</link><pubDate>Thu, 24 Aug 2023 07:51:26 +0000</pubDate><guid>https://foojayio.github.io/website/today/well-worth-my-time-openjdk-migration-for-dummies/</guid><description>&lt;p&gt;I&amp;rsquo;ve just read the (free) &lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;OpenJDK Migration for Dummies book&lt;/a&gt;
. It was well worth my time!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I first started using Java in 1998, so I&amp;rsquo;ve got a long history with it and feel very comfortable with the language itself. However, the licensing changes and proliferation of OpenJDK distributions are much more recent, and those aspects can be a bit confusing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The book is obviously written by a vendor, but it&amp;rsquo;s very honest about that. It does a good job of establishing the motivation for using OpenJDK, providing actionable steps for how to pursue that migration, and presenting meaningful information that a business should consider when selecting an OpenJDK vendor.&lt;/p&gt;</description></item><item><title>Is OpenJDK Just a Drop-In Replacement?</title><link>https://foojayio.github.io/website/today/is-openjdk-just-a-drop-in-replacement/</link><pubDate>Fri, 18 Aug 2023 07:58:02 +0000</pubDate><guid>https://foojayio.github.io/website/today/is-openjdk-just-a-drop-in-replacement/</guid><description>&lt;p&gt;&lt;strong&gt;I don&amp;rsquo;t know anyone who is still using the Oracle JDK. It has been my recommendation for quite a while to just switch to an OpenJDK distribution as they are roughly drop-in replacements for Oracle&amp;rsquo;s official JDK. I&amp;rsquo;ve repeated that advice quite frequently but I guess I glossed over a lot of details that might be insignificant for hackers but can become a pretty big deal in an enterprise setting.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Book Review: "OpenJDK Migration for Dummies"</title><link>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies/</link><pubDate>Fri, 04 Aug 2023 09:02:46 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-openjdk-migration-for-dummies/</guid><description>&lt;p&gt;&lt;strong&gt;The subject of Java licensing and OpenJDK migration is complex and vital to many software engineers.&lt;/strong&gt; &lt;strong&gt;I am no different. It&amp;rsquo;s a topic often shrouded in legal jargon and technicalities, making it difficult to approach.&lt;/strong&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&amp;ldquo;OpenJDK Migration for Dummies&amp;rdquo; by&lt;a href="https://www.linkedin.com/in/siritter/" target="_blank" rel="noopener noreferrer"&gt;Simon Ritter&lt;/a&gt;
 offers a fresh perspective, breaking down these challenges into digestible segments. (&lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;Get it for free here.&lt;/a&gt;
)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;img decoding="async" class="alignright wp-image-101738" src="dummies-373x510.png" alt="" width="270" height="369"&gt;
&lt;p&gt;](&lt;a href="https://www.azul.com/openjdk-migration-for-dummies/" target="_blank" rel="noopener noreferrer"&gt;https://www.azul.com/openjdk-migration-for-dummies/&lt;/a&gt;
)&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;The book directly speaks to my core expertise in Java, providing clarity and guidance.&lt;/p&gt;</description></item><item><title>Book Review: "Designing APIs with Swagger and OpenAPI"</title><link>https://foojayio.github.io/website/today/book-review-designing-apis-with-swagger-and-openapi/</link><pubDate>Tue, 01 Aug 2023 18:21:08 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-designing-apis-with-swagger-and-openapi/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: this post includes affiliate links; I may receive compensation if you purchase the book from the different links provided in this post.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/designing-apis-with-swagger-and-openapi?utm_source=frankel&amp;amp;amp;utm_medium=affiliate&amp;amp;amp;utm_campaign=affiliate&amp;amp;amp;a_aid=frankel" target="_blank" rel="noopener noreferrer"&gt;Designing APIs with Swagger and OpenAPI&lt;/a&gt;
 by Joshua S. Ponelat and Lukas L. Rosenstock from Manning.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m continuing my API journey by reading books, viewing relevant YouTube videos, and reading relevant s.&lt;/p&gt;
&lt;p&gt;Today is a book review.&lt;/p&gt;
&lt;h2 id="h2-0-facts"&gt;Facts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;21 chapters&lt;/li&gt;
&lt;li&gt;$38.39 (eBook)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-1-chapters"&gt;Chapters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Part 1: Describing APIs
&lt;ol&gt;
&lt;li&gt;Introducing APIs and OpenAPI&lt;/li&gt;
&lt;li&gt;Getting set up to make API requests&lt;/li&gt;
&lt;li&gt;Our first taste of OpenAPI definitions&lt;/li&gt;
&lt;li&gt;Using Swagger Editor to write OpenAPI definitions&lt;/li&gt;
&lt;li&gt;Describing API responses&lt;/li&gt;
&lt;li&gt;Creating resources&lt;/li&gt;
&lt;li&gt;Adding authentication and authorization&lt;/li&gt;
&lt;li&gt;Preparing and hosting API documentation&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Part 2: Design first
9. Designing a web application
10. Creating an API design using OpenAPI
11. Building a change workflow around API design&amp;ndash;first
12. Implementing frontend code and reacting to changes
13. Building a backend with Node.js and Swagger Codegen
14. Integrating and releasing the web application&lt;/li&gt;
&lt;li&gt;Part 3: Extending APIs
15. Designing the next API iteration
16. Designing schemas with composition in OpenAPI
17. Scaling collection endpoints with filters and pagination
18. Supporting the unhappy path: Error handling with problem+json
19. Improving input validation with advanced JSON Schema
20. Versioning an API and handling breaking changes
21. The API prerelease checklist&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The book goes through designing a complete API via a demo project, the &lt;a href="https://github.com/designapis/farmstall" target="_blank" rel="noopener noreferrer"&gt;Farmstall API&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Book Announcement: "OpenJDK Migration Guide for Dummies"</title><link>https://foojayio.github.io/website/today/book-announcement-openjdk-migration-guide-for-dummies/</link><pubDate>Tue, 01 Aug 2023 16:15:47 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-announcement-openjdk-migration-guide-for-dummies/</guid><description>&lt;p&gt;For the fourth time in four years, Oracle has changed how it prices and licenses Java.&lt;/p&gt;
&lt;p&gt;Many organizations that rely on Java are switching from the Oracle JDK to OpenJDK and taking advantage of significant cost savings in the process.&lt;/p&gt;
&lt;p&gt;But if you have a variety of specialized Java applications, created at different times and running on different JDK versions, you may have some anxiety about making the switch.&lt;/p&gt;
&lt;p&gt;But, worry no more, Java Champion Simon Ritter has you covered in a new (free) book.&lt;/p&gt;</description></item><item><title>"Transitioning to Java": My First Book!</title><link>https://foojayio.github.io/website/today/transitioning-to-java-my-first-book/</link><pubDate>Wed, 24 May 2023 08:01:58 +0000</pubDate><guid>https://foojayio.github.io/website/today/transitioning-to-java-my-first-book/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/transitioning-to-java-my-first-book/BookCover-407x510.jpg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;When I retired from the classroom in 2021, I had no intention of sitting on a rocking chair on my front porch.&lt;/p&gt;
&lt;p&gt;I looked for speaking opportunities, became a member of the JCP EC, and continued thinking about ways to enhance Java teaching.&lt;/p&gt;
&lt;p&gt;I also wanted to write a book. I approached a number of publishers with my idea for a beginner&amp;rsquo;s book. I even wrote a sample chapter and publsihed it on my blog, &lt;a href="https://www.omnijava.com/2021/10/20/java-for-beginners-my-unsuccessful-book-proposal/" target="_blank" rel="noopener noreferrer"&gt;https://www.omnijava.com/2021/10/20/java-for-beginners-my-unsuccessful-book-proposal/&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Book Review: "API Design Patterns"</title><link>https://foojayio.github.io/website/today/book-review-api-design-patterns/</link><pubDate>Sun, 19 Mar 2023 15:20:56 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-api-design-patterns/</guid><description>&lt;p&gt;&lt;em&gt;Disclaimer: this post includes affiliate links; I may receive compensation if you purchase the book from the different links provided in this post.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/api-design-patterns?utm_source=frankel&amp;amp;amp;utm_medium=affiliate&amp;amp;amp;utm_campaign=affiliate&amp;amp;amp;a_aid=frankel" target="_blank" rel="noopener noreferrer"&gt;API Design Patterns&lt;/a&gt;
 by JJ Geewax from Manning.&lt;/p&gt;
&lt;p&gt;I &lt;a href="https://blog.frankel.ch/structured-errors-http-apis/" target="_blank" rel="noopener noreferrer"&gt;already mentioned&lt;/a&gt;
 how I&amp;rsquo;m trying to get to speed in the API world: reading books, viewing relevant YouTube videos and reading relevant s.&lt;/p&gt;
&lt;h2 id="h2-0-facts"&gt;Facts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;30 chapters, $35.00&lt;/li&gt;
&lt;li&gt;The author is a Principal Software Engineer at Google&lt;/li&gt;
&lt;li&gt;He&amp;rsquo;s also the author behind&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-1-chapters"&gt;Chapters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Design principles
3. Naming
4. Resource scope and hierarchy
5. Data types and defaults&lt;/li&gt;
&lt;li&gt;Fundamentals
6. Resource identification: How to identify resources in an API
7. Standard methods: The set of standard methods for use in resource-oriented APIs
8. Partial updates and retrievals: How to interact with portions of resources
9. Custom methods: Using custom (non-standard) methods in resource-oriented APIs
10. Long-running operations: How to handle methods that are not instantaneous
11. Rerunnable jobs: Running repeated custom functionality in an API&lt;/li&gt;
&lt;li&gt;Resource relationships
12. Singleton sub-resources: Isolating portions of resource data
13. Cross references: How to reference other resources in an API
14. Association resources: How to manage many-to-many relationships with metadata
15. Add and remove custom methods: How to manage many-to-many relationships &lt;em&gt;without&lt;/em&gt; metadata
16. Polymorphism: Designing resources with dynamically-typed attributes&lt;/li&gt;
&lt;li&gt;Collective operations
17. Copy and move: Duplicating and relocating resources in an API
18. Batch operations: Extending methods to apply to groups of resources atomically
19. Criteria-based deletion: Deleting multiple resources based on a set of filter criteria
20. Anonymous writes: Ingesting unaddressable data into an API
21. Pagination: Consuming large amounts of data in bite-sized chunks
22. Filtering: Limiting result sets according to a user-specified filter
23. Importing and exporting: Moving data into or out of an API by interacting directly with a storage system&lt;/li&gt;
&lt;li&gt;Safety and security
24. Versioning and compatibility: Defining compatibility and strategies for versioning APIs
25. Soft deletion: Moving resources to the &amp;ldquo;API recycle bin&amp;rdquo;
26. Request deduplication: Preventing duplicate work due to network interruptions in APIs
27. Request validation: Allowing API methods to be called in &amp;ldquo;safe mode&amp;rdquo;
28. Resource revisions: Tracking resource change history
29. Request retrial: Algorithms for safely retrying API requests
30. Request authentication: Verifying that requests are authentic and untampered with&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each &lt;em&gt;design pattern&lt;/em&gt; chapter follows the same structure:&lt;/p&gt;</description></item><item><title>Book review - Practical Design Patterns for Java Developers</title><link>https://foojayio.github.io/website/today/book-review-practical-design-patterns-for-java-developers/</link><pubDate>Fri, 17 Mar 2023 08:27:08 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-practical-design-patterns-for-java-developers/</guid><description>&lt;h2 id="h2-0-hone-your-software-design-skills-by-implementing-popular-design-patterns-in-java"&gt;Hone your software design skills by implementing popular design patterns in Java&lt;/h2&gt;
&lt;p&gt;This book is for sale on &lt;a href="https://www.amazon.de/dp/180461467X" target="_blank" rel="noopener noreferrer"&gt;Amazon in Kindle and Paperback editions&lt;/a&gt;
.&lt;/p&gt;
&lt;figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"&gt;
 &lt;figure class="wp-block-image size-large"&gt;
 &lt;img fetchpriority="high" decoding="async" width="830" height="1024" data-id="62853" src="practical-cover-830x1024.jpg" alt="" class="wp-image-62853"&gt;
 &lt;/figure&gt;
 &lt;figure class="wp-block-image size-large"&gt;
 &lt;img decoding="async" width="600" height="740" data-id="62852" src="practical-backside.jpg" alt="" class="wp-image-62852"&gt;
 &lt;/figure&gt;
 &lt;figure class="wp-block-image size-large"&gt;
 &lt;img decoding="async" width="426" height="426" data-id="62851" src="miro.jpg" alt="" class="wp-image-62851"&gt;
 &lt;/figure&gt;
&lt;/figure&gt;
&lt;p&gt;We&amp;rsquo;ll start this post with the personal verdict of two avid readers of this book:&lt;/p&gt;
&lt;h2 id="h2-1-frank-delporte-s-verdict"&gt;Frank Delporte&amp;rsquo;s Verdict&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been programming since I was 10y old, but I graduated from film school as a video editor, so I never learned the &amp;ldquo;official&amp;rdquo; way to be a programmer. It was only by following courses and, most importantly, learning from colleagues that I started making &amp;ldquo;readable and maintainable&amp;rdquo; code, which is precisely the topic of this book.&lt;/p&gt;</description></item><item><title>42 Practical Java Design Patterns: Builder and More</title><link>https://foojayio.github.io/website/today/42-practical-java-design-patterns-builder-and-more/</link><pubDate>Mon, 27 Feb 2023 08:27:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/42-practical-java-design-patterns-builder-and-more/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/42-practical-java-design-patterns-builder-and-more/book_cover-414x510.jpeg" alt="Figure 1: Hone your software design skills" loading="lazy"&gt;
 &lt;strong&gt;Figure 1&lt;/strong&gt;.: Hone your software design skills&lt;/p&gt;
&lt;p&gt;The aim of the article is to introduce my newly published book &amp;ldquo;Practical Design Pattern for Java Developers&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Together, we&amp;rsquo;ll explore today&amp;rsquo;s application development challenges and dive deeper into some of Java&amp;rsquo;s new language enhancements by exploring the &lt;strong&gt;Builder&lt;/strong&gt; Design pattern in more detail.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;T&lt;/strong&gt;he days when applications were developed &amp;ldquo;ad hoc&amp;rdquo; seem to have ended only on paper.&lt;/p&gt;</description></item><item><title>Book review: Learn JavaFX Game Development with FXGL 17</title><link>https://foojayio.github.io/website/today/book-review-learn-javafx-game-and-app-development-with-fxgl-17/</link><pubDate>Wed, 19 Oct 2022 07:20:32 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-learn-javafx-game-and-app-development-with-fxgl-17/</guid><description>&lt;p&gt;This summer, I read the book &lt;a href="https://entreprenerd.lowagie.com/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;&amp;ldquo;Entreprenerd&amp;rdquo;&lt;/strong&gt; by &lt;strong&gt;Bruno Lowagie&lt;/strong&gt;&lt;/a&gt;
. It tells the story of how he started with the &lt;a href="https://itextpdf.com/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;iText&lt;/strong&gt; PDF Java library&lt;/a&gt;
 and turned that into a company together with his wife, and eventually sold it with all problems related to most sales and acquisitions trajects&amp;hellip;&lt;/p&gt;
&lt;p&gt;In &amp;ldquo;Entreprenerd,&amp;rdquo; he also describes the process of writing two books about the iText library itself, as there were no good manuals available, and he wanted to liberate himself from the ever-returning same questions.&lt;/p&gt;</description></item><item><title>Book Review: Monolith to Microservices (Part 2)</title><link>https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-2/</link><pubDate>Wed, 25 May 2022 09:09:08 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-2/</guid><description>&lt;p&gt;This is the second article &lt;a href="https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-1/"&gt;of the first one I wrote the other day&lt;/a&gt;
, &amp;ldquo;&lt;a href="https://www.amazon.ca/Monolith-Microservices-Evolutionary-Patterns-Transform/dp/1492047848" target="_blank" rel="noopener noreferrer"&gt;Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith&lt;/a&gt;
&amp;rdquo; by Sam Newman.&lt;/p&gt;
&lt;p&gt;In this article, I will summarize chapter two.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-2/monolith-to-microservice.jpeg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;h2 id="h2-0-chapter-2-planning-to-migration"&gt;&lt;strong&gt;Chapter #2: Planning to Migration&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In this chapter, the book discusses the goal and mindset. When we are looking for a Microservices, what should be our goal.&lt;/p&gt;
&lt;p&gt;It argues that our goal shouldn&amp;rsquo;t be the Microservices. Something worked for Netflix or Amazon, which means it will work for me as well. This thought process has a major flaw. It makes you fall into a cargo cult mentality.&lt;/p&gt;</description></item><item><title>Book Review: Monolith to Microservices (Part 1)</title><link>https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-1/</link><pubDate>Wed, 18 May 2022 07:43:41 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-monolith-to-microservices-part-1/</guid><description>&lt;p&gt;I have just finished reading &lt;a href="https://www.amazon.ca/Monolith-Microservices-Evolutionary-Patterns-Transform/dp/1492047848" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith&lt;/a&gt;
&amp;rdquo; by Sam Newman.&lt;/p&gt;
&lt;img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-55937" src="monolith-to-microservice-388x510.jpeg" alt="" width="388" height="510"&gt;
&lt;br /&gt;
&lt;p&gt;This book is undoubtedly great. It explains the critical aspects applicable when moving away from a monolith to a microservices architecture.&lt;/p&gt;
&lt;p&gt;In this article, I will try to summarize some of the key elements from the book that impacted me.&lt;/p&gt;
&lt;p&gt;This book contains five chapters, each of which has a great deal of context and explanation.&lt;/p&gt;</description></item><item><title>Introducing the GKE Autopilot Cluster</title><link>https://foojayio.github.io/website/today/introducing-the-gke-autopilot-cluster/</link><pubDate>Thu, 20 Jan 2022 08:28:34 +0000</pubDate><guid>https://foojayio.github.io/website/today/introducing-the-gke-autopilot-cluster/</guid><description>&lt;p&gt;&lt;strong&gt;Learn about Google Kubernetes Engine Autopilot features. Also, let&amp;rsquo;s find out if it is worth managing your Kubernetes worker nodes yourself!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The following is an excerpt from my book &lt;strong&gt;Effortless Cloud-Native App Development Using Skaffold&lt;/strong&gt; from Packt Publishing.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1636304168731/qHmKbqm_y.jpeg" alt="B17385_Mockup Cover_High Res.jpg" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The book is available for order from &lt;a href="https://www.amazon.com/Effortless-Cloud-Native-Development-using-Skaffold/dp/1801077118" target="_blank" rel="noopener noreferrer"&gt;Amazon.com&lt;/a&gt;
 and directly from &lt;a href="https://www.packtpub.com/product/effortless-cloud-native-apps-development-using-skaffold/9781801077118" target="_blank" rel="noopener noreferrer"&gt;Packt&lt;/a&gt;
. The excerpt below comes from chapter 8: &amp;ldquo;Deploying a Spring Boot Application to the Google Kubernetes Engine Using Skaffold&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>What is GitOps? What are its benefits?</title><link>https://foojayio.github.io/website/today/what-is-gitops-what-are-its-benefits/</link><pubDate>Fri, 17 Dec 2021 16:19:17 +0000</pubDate><guid>https://foojayio.github.io/website/today/what-is-gitops-what-are-its-benefits/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Let&amp;rsquo;s understand what GitOps is and its benefits. You will also learn how ArgoCD can help with the continuous delivery of Kubernetes-based applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The following article is an excerpt from my book &lt;strong&gt;Effortless Cloud-Native App Development Using Skaffold&lt;/strong&gt; from Packt Publishing.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1636304168731/qHmKbqm_y.jpeg" alt="B17385_Mockup Cover_High Res.jpg" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;It is available for order from &lt;a href="https://www.amazon.com/Effortless-Cloud-Native-Development-using-Skaffold/dp/1801077118" target="_blank" rel="noopener noreferrer"&gt;Amazon.com&lt;/a&gt;
 and directly from &lt;a href="https://www.packtpub.com/product/effortless-cloud-native-apps-development-using-skaffold/9781801077118" target="_blank" rel="noopener noreferrer"&gt;Packt&lt;/a&gt;
. This excerpt comes from chapter 9: Creating a Production-Ready CI/CD Pipeline with Skaffold:&lt;/p&gt;
&lt;h3 id="h3-0-what-is-gitops"&gt;What is GitOps&lt;/h3&gt;
&lt;p&gt;The word GitOps was coined by a company named Weaveworks. The idea behind GitOps is to consider Git as a single source of truth for your application and declarative infrastructure. Using Git to manage your declarative infrastructure makes it easy for developers because they interact with Git daily. Once you add configuration inside Git, you get the benefits of version control, such as reviewing changes using pull requests, audit, and compliance.&lt;/p&gt;</description></item><item><title>Book Review: “Effortless Cloud-Native App Development Using Skaffold”</title><link>https://foojayio.github.io/website/today/book-review-effortless-cloud-native-app-development-using-skaffold-2/</link><pubDate>Thu, 25 Nov 2021 12:52:08 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-effortless-cloud-native-app-development-using-skaffold-2/</guid><description>&lt;p&gt;I&amp;rsquo;m a developer who cares deeply about production. But I&amp;rsquo;m not a devops and unfortunately I&amp;rsquo;m pretty bad at that. That&amp;rsquo;s why when I heard about Skaffold it instantly piqued my interest. Write Kubernetes cloud native apps without well&amp;hellip; Writing Kubernetes native apps&amp;hellip; Sign me up!&lt;/p&gt;
&lt;p&gt;Unfortunately, as we all know. The time to pick up a new technology is when we actually need it and then it&amp;rsquo;s a rush to get something out. Few of us have time to take off from our busy day to study something and learn something new. That&amp;rsquo;s why when &lt;a href="https://twitter.com/iASHeeesh" target="_blank" rel="noopener noreferrer"&gt;Ashish Choudhary&lt;/a&gt;
, the author of the book &amp;ldquo;&lt;strong&gt;Effortless Cloud Native App Development Using Skaffold&lt;/strong&gt; &amp;quot; asked for reviewers in the &lt;a href="https://foojayio.github.io/website/"&gt;foojay.io&lt;/a&gt;
 slack group, I jumped on the opportunity. I can learn something interesting and be productive (this book review).&lt;/p&gt;</description></item><item><title>Book Review: Why Programs Fail by Andreas Zeller</title><link>https://foojayio.github.io/website/today/book-review-why-programs-fail/</link><pubDate>Tue, 09 Nov 2021 10:18:25 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-why-programs-fail/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/book-review-why-programs-fail/wpf3-415x510.jpeg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;When I got my new job as developer advocate at Lightrun, one of the first things I asked for was books. Lots of books. Some of them cover my new job and others talk about debugging. I&amp;rsquo;ve been debugging for decades, but I feel like the theory around debugging is a bit vague. My goal was to bolster my terminology used by academics and peers. A secondary goal is to see how others teach ideas related to debugging.&lt;/p&gt;</description></item><item><title>Exception Chaos Java Code Quiz</title><link>https://foojayio.github.io/website/today/exception-chaos-java-code-quiz/</link><pubDate>Wed, 27 Oct 2021 15:03:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/exception-chaos-java-code-quiz/</guid><description>&lt;p&gt;Working correctly with exceptions is crucial to a high-quality application that users enjoy using. This quiz reinforces some of the basic concepts of exceptions.&lt;/p&gt;
&lt;p&gt;Therefore, what do you think will happen when running the following code?&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java"&gt;import java.io.FileNotFoundException;

public class ExceptionChaosChallenge {
 static String s = "-";

 public static void main(String... doYouBest) {
 try {
 throw new IllegalArgumentException();
 } catch (Exception e) {
 try {
 try {
 throw new FileNotFoundException();
 } catch (RuntimeException ex) {
 s += "run";
 }
 throw new NullPointerException();
 } catch (Exception x) {
 s += "exc";
 } finally {
 s += "fin";
 }
 } finally {
 s += "of";
 try {
 throw new VirtualMachineError("JVMError") {};
 } catch (Error error) {
 s += "error" + error.getMessage();
 }
 }

 System.out.println(s);
 }

}&lt;/pre&gt;
&lt;p&gt;A) -runfinoferror&lt;/p&gt;</description></item><item><title>Book Review: "Effortless Cloud-Native App Development Using Skaffold"</title><link>https://foojayio.github.io/website/today/book-review-effortless-cloud-native-app-development-using-skaffold/</link><pubDate>Fri, 15 Oct 2021 08:19:17 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-effortless-cloud-native-app-development-using-skaffold/</guid><description>&lt;figure class="wp-block-image size-large is-resized"&gt;
 &lt;a target="_blank" href="https://www.packtpub.com/product/effortless-cloud-native-app-development-using-skaffold/9781801077118"&gt;&lt;img fetchpriority="high" decoding="async" src="effortless-cloud-skaffold-835x1024.png" alt="" class="wp-image-49805" width="299" height="367"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;In &amp;ldquo;&lt;a href="https://www.packtpub.com/product/effortless-cloud-native-app-development-using-skaffold/9781801077118" target="_blank" rel="noopener noreferrer"&gt;Effortless Cloud-Native App Development Using Skaffold&lt;/a&gt;
&amp;rdquo;, Ashish Choudhary provides a thorough overview of &lt;a href="https://skaffold.dev/" target="_blank" rel="noopener noreferrer"&gt;Skaffold&lt;/a&gt;
, with the book&amp;rsquo;s subtitle clearly defining its agenda: &amp;ldquo;Simplify the development and deployment of Cloud-native SpringBoot applications on Kubernetes with Skaffold&amp;rdquo;.&lt;/p&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Section 1, &amp;ldquo;The Kubernetes Nightmare &amp;ndash; Skaffold to the Rescue&amp;rdquo;, promises to describe &amp;ldquo;the pain and suffering of developing an application with Kubernetes&amp;rdquo;, with Skaffold as the solution to help in automating the building, pushing, and deployment of applications running on Kubernetes.&lt;/p&gt;</description></item><item><title>Book Review: Quarkus for Spring Developers</title><link>https://foojayio.github.io/website/today/book-review-quarkus-for-spring-developers/</link><pubDate>Mon, 04 Oct 2021 08:25:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-quarkus-for-spring-developers/</guid><description>&lt;h2 id="h2-0-"&gt;&lt;a href="https://developers.redhat.com/e-books/quarkus-spring-developers" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="https://foojayio.github.io/website/today/book-review-quarkus-for-spring-developers/quarkus-book-340x510.png" alt="" loading="lazy"&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;h2 id="h2-1-key-take-aways"&gt;Key Take-Aways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Quarkus and Spring are both powerful frameworks.&lt;/li&gt;
&lt;li&gt;Developers with years of Spring experience can consult side-by-side examples to quickly shift code and tests to Quarkus.&lt;/li&gt;
&lt;li&gt;Quarkus has moved quickly by leveraging proven technologies from existing Java frameworks and standards.&lt;/li&gt;
&lt;li&gt;Cloud-Native and Java-Native-Image (GraalVM / Mandrel) combine to run Quarkus apps very quickly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://developers.redhat.com/e-books/quarkus-spring-developers" target="_blank" rel="noopener noreferrer"&gt;Quarkus for Spring Developers&lt;/a&gt;
 is a straight-forward guide to enable senior developers to quickly shift their Spring skills to leverage the &amp;ldquo;supersonic subatomic&amp;rdquo; Quarkus framework, and junior/mid-level developers to learn two frameworks at once.&lt;/p&gt;</description></item><item><title>Arrays and Object Reference Java Challenge Code Quiz</title><link>https://foojayio.github.io/website/today/arrays-and-object-reference-java-challenge-code-quiz/</link><pubDate>Wed, 29 Sep 2021 11:18:13 +0000</pubDate><guid>https://foojayio.github.io/website/today/arrays-and-object-reference-java-challenge-code-quiz/</guid><description>&lt;p&gt;Arrays are objects in Java.&lt;/p&gt;
&lt;p&gt;Variables in Java actually store references to the object, instead of the real object.&lt;/p&gt;
&lt;p&gt;When we pass an object reference to a method, we are changing the object that is in the heap of the memory.&lt;/p&gt;
&lt;p&gt;Considering the explanation above, can you solve the following &lt;strong&gt;Java Challenge&lt;/strong&gt;? What is going to happen when you run the following code?&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java"&gt;public class ArrayChallenge2 {
 public static void main(String... doYourBest) {
 int[] anyArray = new int[5];
 anyArray[0] = 0;
 anyArray[1] = 2;
 anyArray[2] = 4;
 anyArray[3] = 6;
 anyArray[4] = 8;

 int[] otherArray = anyArray;
 doSum(anyArray);
 doSum(otherArray);

 Arrays.stream(anyArray).forEach(System.out::println);
 }
 private static void doSum(int[] anyArray) {
 for (int i = 0; i &amp;lt; anyArray.length; i++) {
 anyArray[i] = anyArray[i] + 2;
 }
 }
}
&lt;/pre&gt;
&lt;p&gt;a) 0&lt;/p&gt;</description></item><item><title>Parallel Streams Java Code Quiz</title><link>https://foojayio.github.io/website/today/parallel-streams-java-code-quiz/</link><pubDate>Wed, 15 Sep 2021 09:04:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/parallel-streams-java-code-quiz/</guid><description>&lt;p&gt;Using streams concurrently with the parallel method is a good idea to optimize performance.&lt;/p&gt;
&lt;p&gt;However, it&amp;rsquo;s not always the case that we can use the parallel method, for example, when we depend on the order of logic execution. When we can process the method concurrently, the parallel method comes in handy.&lt;/p&gt;
&lt;p&gt;In the following Java Challenge, we will explore the use of parallel streams with the forEachOrdered method!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Parallel Stream Java Challenge&lt;/p&gt;</description></item><item><title>Book Review: "Help Your Boss Help You"</title><link>https://foojayio.github.io/website/today/book-review-help-your-boss-help-you/</link><pubDate>Fri, 13 Aug 2021 12:19:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-help-your-boss-help-you/</guid><description>&lt;figure class="wp-block-image size-medium"&gt;
 &lt;a target="_blank" href="https://pragprog.com/titles/kkmanage/help-your-boss-help-you/"&gt;&lt;img fetchpriority="high" decoding="async" width="415" height="510" src="book-help-your-boss-help-you-415x510.png" alt="" class="wp-image-46413"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;Some books were written to be read once and put aside, others to be read thoroughly several times over and then to be placed behind glass to be broken in case of emergency. This book is of the latter kind&amp;mdash;once you&amp;rsquo;ve read through it a few times, and dipped into the areas that speak to you most, you want to have it nearby both as a PDF and in hard copy format
&amp;mdash;as a backup just in case you can&amp;rsquo;t find that PDF at the crucial moment when you really need to have a response at hand in times of crisis. You&amp;rsquo;ll also gradually find your hard copy filled with yellow sticky notes at the points in the book that speak to you most, with underlinings of the crucial passages that resonate back to battles long gone but frequently relived in anguish.&lt;/p&gt;</description></item><item><title>Announcing New Book: "Practical Vaadin"</title><link>https://foojayio.github.io/website/today/new-book-practical-vaadin/</link><pubDate>Mon, 09 Aug 2021 18:02:08 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-book-practical-vaadin/</guid><description>&lt;p&gt;I am pleased to announce the publication of Practical Vaadin by Alejandro Duarte.&lt;/p&gt;
&lt;p&gt;The book is available now as an eBook, and print availability will follow within a few days:&lt;/p&gt;
&lt;figure class="wp-block-embed is-type-rich is-provider-amazon wp-block-embed-amazon"&gt;
 &lt;div class="wp-block-embed__wrapper"&gt;
 &lt;iframe title="Practical Vaadin: Developing Web Applications in Java" type="text/html" width="500" height="550" frameborder="0" allowfullscreen style="max-width:100%" src="https://read.amazon.com/kp/card?preview=inline&amp;amp;linkCode=kpd&amp;amp;ref_=k4w_oembed_Pn2dEsswHsNWme&amp;amp;asin=B09BYC4QWD&amp;amp;tag=kpembed-20"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Alejandro&amp;rsquo;s book shows how to implement web applications in Java using the open source Vaadin framework version 20 and later.&lt;/p&gt;
&lt;p&gt;The book covers the key concepts and steps to become competent with modern versions of Vaadin, including everything from setting up the development environment to implementing advanced features such as Server Push and database connectivity.&lt;/p&gt;</description></item><item><title>New Book Review: Seriously Good Software</title><link>https://foojayio.github.io/website/today/book-review-seriously-good-software/</link><pubDate>Thu, 22 Jul 2021 07:17:33 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-seriously-good-software/</guid><description>&lt;p&gt;&lt;img src="https://horstmann.com/unblog/2021-07-05/Faella-SGS-HI.jpeg" alt="Cover" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;I recently &lt;a href="https://foojayio.github.io/website/today/book-review-java-by-comparison/%27"&gt;reviewed the book &amp;ldquo;Java by Comparison&amp;rdquo;&lt;/a&gt;
 by Simon Harrer, Jörg Lenhard, and Linus Dietz. That book is intended for programmers who know the basics of the Java language, perhaps from a university curriculum. The book teaches programmers to improve their Java language and library usage through seventy &amp;ldquo;before and after&amp;rdquo; examples, covering topics such as coding style, naming, exceptions, streams, and class design.&lt;/p&gt;
&lt;p&gt;For contrast, I&amp;rsquo;ll now review Marco Faella&amp;rsquo;s book &amp;ldquo;&lt;a href="https://www.manning.com/books/seriously-good-software" target="_blank" rel="noopener noreferrer"&gt;Seriously Good Software&lt;/a&gt;
&amp;rdquo; that also teaches intermediate Java programmers to write better software, using an entirely different approach. (Disclaimer: Marco talked me into writing the preface for his book.)&lt;/p&gt;</description></item><item><title>New Book Announcement: "Taming Thymeleaf"</title><link>https://foojayio.github.io/website/today/new-book-taming-thymeleaf/</link><pubDate>Mon, 21 Jun 2021 16:27:53 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-book-taming-thymeleaf/</guid><description>&lt;p&gt;Spring Boot is heavily promoted as the best way to write REST API&amp;rsquo;s in Java, but it can also be used as a very good alternative to Laravel/PHP, Rails/Ruby, or Django/Python to write server-side rendered HTML for Java developers.&lt;/p&gt;
&lt;p&gt;When combining the ease of use of Spring Boot with the power of Java and the easy templating of Thymeleaf, you have a very powerful combination that makes Java developers extremely productive to write web applications.&lt;/p&gt;</description></item><item><title>Announcing New Book Review: "Java by Comparison"</title><link>https://foojayio.github.io/website/today/book-review-java-by-comparison/</link><pubDate>Wed, 02 Jun 2021 08:13:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-java-by-comparison/</guid><description>&lt;figure class="wp-block-image size-medium"&gt;
 &lt;a target="_blank" href="https://pragprog.com/titles/javacomp/java-by-comparison/"&gt;&lt;img fetchpriority="high" decoding="async" width="423" height="510" src="book-java-by-comparison-423x510.png" alt="" class="wp-image-46411"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;The book &lt;a href="https://pragprog.com/titles/javacomp/java-by-comparison/" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Java by Comparison&amp;rdquo; by Simon Harrer, Jörg Lenhard, and Linus Dietz&lt;/a&gt;
, promises the reader to become a &amp;ldquo;Java Craftsman&amp;rdquo; through the study of 70 examples. The book is published by The Pragmatic Bookshelf.&lt;/p&gt;
&lt;p&gt;Each &amp;ldquo;example&amp;rdquo; is structured as a before-and-after comparison. It&amp;rsquo;s best to illustrate that with, well, an example:&lt;/p&gt;
&lt;h3 id="h3-0-return-boolean-expressions-directly"&gt;&lt;strong&gt;Return Boolean Expressions Directly&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""&gt;boolean isValid() {
 if (missions &amp;lt; 0 || name == null || name.trim().isEmpty()) {
 return false;
 } else {
 return true;
 }
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>New Book Announcement: "Java Challengers"</title><link>https://foojayio.github.io/website/today/new-book-java-challengers/</link><pubDate>Mon, 03 May 2021 07:03:36 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-book-java-challengers/</guid><description>&lt;p&gt;To get the best jobs and create massive value, you need to know Java very well. The &lt;a href="https://leanpub.com/javachallengers" target="_blank" rel="noopener noreferrer"&gt;newly released &amp;ldquo;Java Challengers&amp;rdquo; book&lt;/a&gt;
 is a way for you to challenge yourself with fun code challenges so that you will become a better Java developer.&lt;/p&gt;
&lt;p&gt;This book contains more than 70 well-elaborated Java Challenges that will help you break your limits on your Java skills. Want to challenge yourself and become better? The Java Challengers is the book for you!&lt;/p&gt;</description></item></channel></rss>