<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Book Review on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/category/book-review/</link><description>Recent content in Book Review on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 21 Sep 2026 05:56:45 +0000</lastBuildDate><atom:link href="https://foojay.io/today/category/book-review/index.xml" rel="self" type="application/rss+xml"/><item><title>Build an AI Agent (From Scratch)</title><link>https://foojay.io/today/build-an-ai-agent-from-scratch/</link><pubDate>Mon, 07 Sep 2026 05:52:13 +0000</pubDate><guid>https://foojay.io/today/build-an-ai-agent-from-scratch/</guid><description>&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/build-an-ai-agent-from-scratch?utm_source=frankel&amp;amp;utm_medium=affiliate&amp;amp;utm_campaign=affiliate&amp;amp;a_aid=frankel" target="_blank" rel="noopener noreferrer"&gt;Build an AI Agent (From Scratch)&lt;/a&gt; by Jungjun Hur and Younghee Song from Manning.&lt;/p&gt;&#10;&lt;h2 id="facts"&gt;Facts&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;10 chapters&lt;/li&gt;&#10;&lt;li&gt;$29.29 (at the time of this writing)&lt;/li&gt;&#10;&lt;li&gt;315 pages&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="chapters"&gt;Chapters&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Building your first LLM agent&#10;&lt;ol&gt;&#10;&lt;li&gt;What is an AI agent?&lt;/li&gt;&#10;&lt;li&gt;The brain of AI agents: LLMs&lt;/li&gt;&#10;&lt;li&gt;Enabling actions: Tool use&lt;/li&gt;&#10;&lt;li&gt;Implementing a basic ReAct agent&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Developing advanced agent capabilities&#10;&lt;ol&gt;&#10;&lt;li&gt;Building knowledge bases with RAG&lt;/li&gt;&#10;&lt;li&gt;Adding memory to your agent&lt;/li&gt;&#10;&lt;li&gt;Planning and reflection for complex tasks&lt;/li&gt;&#10;&lt;li&gt;Empowering agents with code execution&lt;/li&gt;&#10;&lt;li&gt;Orchestrating multi-agent systems&lt;/li&gt;&#10;&lt;li&gt;Evaluating agents&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="pros-and-cons"&gt;Pros and cons&lt;/h2&gt;&#10;&lt;p&gt;At Manning, I consider the following two books to be references:&lt;/p&gt;</description></item><item><title>The Software Architect Elevator</title><link>https://foojay.io/today/the-software-architect-elevator/</link><pubDate>Tue, 24 Mar 2026 20:28:33 +0000</pubDate><guid>https://foojay.io/today/the-software-architect-elevator/</guid><description>&lt;p&gt;I don&amp;rsquo;t think it&amp;rsquo;s necessary to introduce Gregor Hohpe. I&amp;rsquo;m a big fan, having read &lt;a href="https://www.enterpriseintegrationpatterns.com/" target="_blank" rel="noopener noreferrer"&gt;Enterprise Integration Patterns&lt;/a&gt;, and I&amp;rsquo;ve recommended the book ever since. When I spoke at the &lt;a href="https://conferences.isaqb.org/software-architecture-gathering/session/make-your-security-policy-auditable/" target="_blank" rel="noopener noreferrer"&gt;Software Architecture Gathering&lt;/a&gt; in 2024, I was fortunate enough to meet him and purchase this book. I&amp;rsquo;m the happy owner of a signed copy.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Modern architects don&amp;rsquo;t try to be the smartest people in the room–they make everyone else smarter. They ride the &lt;em&gt;Architect Elevator&lt;/em&gt; from the penthouse, where the business strategy is set, to the engine room, where the enabling technologies are implemented. They shun popular buzzwords in favor of decision discipline and clear communication across levels.&lt;/p&gt;</description></item><item><title>Book Review: Writing for Developers</title><link>https://foojay.io/today/book-review-writing-for-developers/</link><pubDate>Wed, 18 Jun 2025 10:58:31 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/writing-for-developers?utm_source=frankel&amp;amp;utm_medium=affiliate&amp;amp;utm_campaign=affiliate&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;&#10;&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://foojay.io/today/book-review-raising-young-coders/</link><pubDate>Wed, 07 May 2025 07:04:09 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;p&gt;&lt;strong&gt;An Author Who Understands Both Sides&lt;/strong&gt;&lt;/p&gt;&#10;&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;&#10;&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>Book Review: DuckDB in Action</title><link>https://foojay.io/today/book-review-duckdb-in-action/</link><pubDate>Wed, 05 Mar 2025 13:42:59 +0000</pubDate><guid>https://foojay.io/today/book-review-duckdb-in-action/</guid><description>&lt;p&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;/p&gt;&#10;&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/duckdb-in-action?utm_source=frankel&amp;amp;utm_medium=affiliate&amp;amp;utm_campaign=affiliate&amp;amp;a_aid=frankel" target="_blank" rel="noopener noreferrer"&gt;DuckDB in Action&lt;/a&gt; by JoMark Needham, Michael Hunger, and Michael Simons from Manning.&lt;/p&gt;&#10;&lt;p&gt;The book was sent to me by &lt;a href="https://mastodon.social/@rotnroll666" target="_blank" rel="noopener noreferrer"&gt;Michael Simons&lt;/a&gt;. He asked for my feedback: I changed my reading schedule, took a few months, and here it is.&lt;/p&gt;&#10;&lt;h2 id="facts"&gt;Facts&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;10 chapters&lt;/li&gt;&#10;&lt;li&gt;288 pages&lt;/li&gt;&#10;&lt;li&gt;$33.59 (eBook)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Note that MotherDuck, the company behind DuckDB, offers a &lt;a href="https://motherduck.com/duckdb-book-brief/" target="_blank" rel="noopener noreferrer"&gt;free PDF copy&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Book Review: Mastering the Java Virtual Machine</title><link>https://foojay.io/today/book-review-mastering-the-java-virtual-machine/</link><pubDate>Fri, 18 Oct 2024 13:54:49 +0000</pubDate><guid>https://foojay.io/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;&#10;&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>Book review: Frontend Development with JavaFX and Kotlin</title><link>https://foojay.io/today/book-review-frontend-development-with-javafx-and-kotlin/</link><pubDate>Fri, 14 Jun 2024 09:06:53 +0000</pubDate><guid>https://foojay.io/today/book-review-frontend-development-with-javafx-and-kotlin/</guid><description>&lt;figure class="size-full is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/book-review-frontend-development-with-javafx-and-kotlin/cover.jpg" alt="" width="327" height="466" style="width:auto;height:200px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&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>Foojay Podcast #51: Persistence, Evolving your Career, Jakarta EE, GlassFish, Messaging via Telegram</title><link>https://foojay.io/today/foojay-podcast-51/</link><pubDate>Mon, 03 Jun 2024 08:03:53 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-51/</guid><description>&lt;p&gt;This is part 3 of the JCON interviews.&lt;/p&gt;&#10;&lt;p&gt;Frank meets Otavio Santana, who recently wrote the book &amp;ldquo;Mastering the Java Virtual Machine.&amp;rdquo; At JCON, he talked about the persistence layer and how you can evolve your career.&lt;/p&gt;&#10;&lt;p&gt;You&amp;rsquo;ll also learn more about Jakarta EE, GlassFish, and a PET project with messaging via Telegram.&lt;/p&gt;&#10;&lt;h2 id="video"&gt;Video&lt;/h2&gt;&#10;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/7-lhQld4KVc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;h2 id="podcast-apps"&gt;Podcast Apps&lt;/h2&gt;&#10;&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>Book review: "Tidy first?"</title><link>https://foojay.io/today/book-review-tidy-first/</link><pubDate>Fri, 26 Jan 2024 18:30:35 +0000</pubDate><guid>https://foojay.io/today/book-review-tidy-first/</guid><description>&lt;p&gt;&lt;img src="https://foojay.io/today/book-review-tidy-first/learning-oreilly-com-a8475420.jpg" alt="Tidy first" width="250" height="328" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;p&gt;price: €39.99 for the eBook&lt;/p&gt;&#10;&lt;p&gt;publication date: October 2023&lt;/p&gt;&#10;&lt;p&gt;publisher: O&amp;rsquo;Reilly Media, Inc.&lt;/p&gt;&#10;&lt;p&gt;pages: 99&lt;/p&gt;&#10;&lt;p&gt;ISBN: 9781098151249&lt;/p&gt;&#10;&lt;p&gt;Kent Beck, who certainly is not an unknown name in the software development world, recently published this book, which is based upon his newsletter with the same name.&lt;/p&gt;&#10;&lt;p&gt;In this book, which is the start of a new series, we dive into the world of tidyings which are small changes that do not alter the behaviour of our applications.&lt;/p&gt;</description></item><item><title>Book Review: Modern Frontends with htmx</title><link>https://foojay.io/today/book-review-modern-frontends-with-htmx/</link><pubDate>Sun, 24 Dec 2023 10:07:20 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/today/book-review-the-software-engineers-guidebook/</link><pubDate>Fri, 15 Dec 2023 14:12:12 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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://foojay.io/today/book-review-persistence-best-practices-for-java-applications/</link><pubDate>Fri, 27 Oct 2023 08:56:21 +0000</pubDate><guid>https://foojay.io/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://foojay.io/today/book-review-developing-apps-with-gpt-4-and-chatgpt/</link><pubDate>Sun, 22 Oct 2023 06:05:28 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/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://foojay.io/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://foojay.io/today/openjdk-migration-book-review/</link><pubDate>Wed, 04 Oct 2023 08:13:53 +0000</pubDate><guid>https://foojay.io/today/openjdk-migration-book-review/</guid><description/></item><item><title>Book Review: Get Your Hands Dirty on Clean Architecture</title><link>https://foojay.io/today/book-review-get-your-hands-dirty-on-clean-architecture/</link><pubDate>Sat, 23 Sep 2023 12:00:31 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; Get Your Hands Dirty on Clean Architecture&lt;br&gt;&#10;&lt;strong&gt;Author:&lt;/strong&gt; Tom Hombergs&lt;br&gt;&#10;&lt;strong&gt;Genre:&lt;/strong&gt; Technical, Software Architecture&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://foojay.io/today/book-review-get-your-hands-dirty-on-clean-architecture/GetYourHandsDirtyOnCleanArchitecture.jpg" alt="CleanArchitecture" width="378" height="466" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&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://foojay.io/today/mastering-the-challenges-of-openjdk-migration/</link><pubDate>Fri, 22 Sep 2023 15:11:37 +0000</pubDate><guid>https://foojay.io/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://foojay.io/today/book-review-openjdk-migration-for-dummies-3/</link><pubDate>Mon, 18 Sep 2023 04:48:45 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/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://foojay.io/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;&#10;&lt;figure class="size-full is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/book-review-java-basics-a-practical-introduction-to-full-stack-java/B0CCCJ38WH.01._SCLZZZZZZZ_SX500_.jpg" alt="" width="290" height="362" style="width:290px;height:362px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;Thoroughness and Ambition&lt;/strong&gt;&lt;/p&gt;&#10;&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://foojay.io/today/review-openjdk-migration-for-dummies/</link><pubDate>Fri, 15 Sep 2023 18:46:59 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/today/book-review-openjdk-migration-for-dummies-2/</link><pubDate>Fri, 01 Sep 2023 07:42:43 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/today/well-worth-my-time-openjdk-migration-for-dummies/</link><pubDate>Thu, 24 Aug 2023 07:51:26 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;blockquote&gt;&#10;&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;&#10;&lt;/blockquote&gt;&#10;&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://foojay.io/today/is-openjdk-just-a-drop-in-replacement/</link><pubDate>Fri, 18 Aug 2023 07:58:02 +0000</pubDate><guid>https://foojay.io/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://foojay.io/today/book-review-openjdk-migration-for-dummies/</link><pubDate>Fri, 04 Aug 2023 09:02:46 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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;&#10;&lt;p&gt;[&lt;/p&gt;&#10;&lt;figure class="alignright"&gt;&#10; &lt;img src="https://foojay.io/today/book-review-openjdk-migration-for-dummies/dummies-373x510.png" alt="" width="270" height="369" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&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;&#10;&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://foojay.io/today/book-review-designing-apis-with-swagger-and-openapi/</link><pubDate>Tue, 01 Aug 2023 18:21:08 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;utm_medium=affiliate&amp;amp;utm_campaign=affiliate&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;&#10;&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;&#10;&lt;p&gt;Today is a book review.&lt;/p&gt;&#10;&lt;h2 id="facts"&gt;Facts&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;21 chapters&lt;/li&gt;&#10;&lt;li&gt;$38.39 (eBook)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="chapters"&gt;Chapters&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Part 1: Describing APIs&#10;&lt;ol&gt;&#10;&lt;li&gt;Introducing APIs and OpenAPI&lt;/li&gt;&#10;&lt;li&gt;Getting set up to make API requests&lt;/li&gt;&#10;&lt;li&gt;Our first taste of OpenAPI definitions&lt;/li&gt;&#10;&lt;li&gt;Using Swagger Editor to write OpenAPI definitions&lt;/li&gt;&#10;&lt;li&gt;Describing API responses&lt;/li&gt;&#10;&lt;li&gt;Creating resources&lt;/li&gt;&#10;&lt;li&gt;Adding authentication and authorization&lt;/li&gt;&#10;&lt;li&gt;Preparing and hosting API documentation&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Part 2: Design first&#10;9. Designing a web application&#10;10. Creating an API design using OpenAPI&#10;11. Building a change workflow around API design–first&#10;12. Implementing frontend code and reacting to changes&#10;13. Building a backend with Node.js and Swagger Codegen&#10;14. Integrating and releasing the web application&lt;/li&gt;&#10;&lt;li&gt;Part 3: Extending APIs&#10;15. Designing the next API iteration&#10;16. Designing schemas with composition in OpenAPI&#10;17. Scaling collection endpoints with filters and pagination&#10;18. Supporting the unhappy path: Error handling with problem+json&#10;19. Improving input validation with advanced JSON Schema&#10;20. Versioning an API and handling breaking changes&#10;21. The API prerelease checklist&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&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 Review: "API Design Patterns"</title><link>https://foojay.io/today/book-review-api-design-patterns/</link><pubDate>Sun, 19 Mar 2023 15:20:56 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;p&gt;This review is about &lt;a href="https://www.manning.com/books/api-design-patterns?utm_source=frankel&amp;amp;utm_medium=affiliate&amp;amp;utm_campaign=affiliate&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;&#10;&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;&#10;&lt;h2 id="facts"&gt;Facts&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;30 chapters, $35.00&lt;/li&gt;&#10;&lt;li&gt;The author is a Principal Software Engineer at Google&lt;/li&gt;&#10;&lt;li&gt;He&amp;rsquo;s also the author behind&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="chapters"&gt;Chapters&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Introduction&lt;/li&gt;&#10;&lt;li&gt;Design principles&#10;3. Naming&#10;4. Resource scope and hierarchy&#10;5. Data types and defaults&lt;/li&gt;&#10;&lt;li&gt;Fundamentals&#10;6. Resource identification: How to identify resources in an API&#10;7. Standard methods: The set of standard methods for use in resource-oriented APIs&#10;8. Partial updates and retrievals: How to interact with portions of resources&#10;9. Custom methods: Using custom (non-standard) methods in resource-oriented APIs&#10;10. Long-running operations: How to handle methods that are not instantaneous&#10;11. Rerunnable jobs: Running repeated custom functionality in an API&lt;/li&gt;&#10;&lt;li&gt;Resource relationships&#10;12. Singleton sub-resources: Isolating portions of resource data&#10;13. Cross references: How to reference other resources in an API&#10;14. Association resources: How to manage many-to-many relationships with metadata&#10;15. Add and remove custom methods: How to manage many-to-many relationships &lt;em&gt;without&lt;/em&gt; metadata&#10;16. Polymorphism: Designing resources with dynamically-typed attributes&lt;/li&gt;&#10;&lt;li&gt;Collective operations&#10;17. Copy and move: Duplicating and relocating resources in an API&#10;18. Batch operations: Extending methods to apply to groups of resources atomically&#10;19. Criteria-based deletion: Deleting multiple resources based on a set of filter criteria&#10;20. Anonymous writes: Ingesting unaddressable data into an API&#10;21. Pagination: Consuming large amounts of data in bite-sized chunks&#10;22. Filtering: Limiting result sets according to a user-specified filter&#10;23. Importing and exporting: Moving data into or out of an API by interacting directly with a storage system&lt;/li&gt;&#10;&lt;li&gt;Safety and security&#10;24. Versioning and compatibility: Defining compatibility and strategies for versioning APIs&#10;25. Soft deletion: Moving resources to the &amp;ldquo;API recycle bin&amp;rdquo;&#10;26. Request deduplication: Preventing duplicate work due to network interruptions in APIs&#10;27. Request validation: Allowing API methods to be called in &amp;ldquo;safe mode&amp;rdquo;&#10;28. Resource revisions: Tracking resource change history&#10;29. Request retrial: Algorithms for safely retrying API requests&#10;30. Request authentication: Verifying that requests are authentic and untampered with&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&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://foojay.io/today/book-review-practical-design-patterns-for-java-developers/</link><pubDate>Fri, 17 Mar 2023 08:27:08 +0000</pubDate><guid>https://foojay.io/today/book-review-practical-design-patterns-for-java-developers/</guid><description>&lt;h2 id="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;&#10;&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;&#10;&lt;figure class="gallery" style="--gallery-cols: 3"&gt;&lt;figure class="gallery__item"&gt;&lt;a href="https://foojay.io/today/book-review-practical-design-patterns-for-java-developers/practical-cover.jpg"&gt;&lt;img src="https://foojay.io/today/book-review-practical-design-patterns-for-java-developers/practical-cover-830x1024.jpg" alt="" loading="lazy" class="is-zoomable"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class="gallery__item"&gt;&lt;img src="https://foojay.io/today/book-review-practical-design-patterns-for-java-developers/practical-backside.jpg" alt="" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&lt;figure class="gallery__item"&gt;&lt;img src="https://foojay.io/today/book-review-practical-design-patterns-for-java-developers/miro.jpg" alt="" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&lt;/figure&gt;&#10;&lt;p&gt;We&amp;rsquo;ll start this post with the personal verdict of two avid readers of this book:&lt;/p&gt;&#10;&lt;h2 id="frank-delportes-verdict"&gt;Frank Delporte&amp;rsquo;s Verdict&lt;/h2&gt;&#10;&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>Book review: Learn JavaFX Game Development with FXGL 17</title><link>https://foojay.io/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://foojay.io/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;&#10;&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://foojay.io/today/book-review-monolith-to-microservices-part-2/</link><pubDate>Wed, 25 May 2022 09:09:08 +0000</pubDate><guid>https://foojay.io/today/book-review-monolith-to-microservices-part-2/</guid><description>&lt;p&gt;This is the second article &lt;a href="https://foojay.io/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;&#10;&lt;p&gt;In this article, I will summarize chapter two.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://foojay.io/today/book-review-monolith-to-microservices-part-2/monolith-to-microservice.jpeg" alt="" width="548" height="720" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;h2 id="chapter-2-planning-to-migration"&gt;&lt;strong&gt;Chapter #2: Planning to Migration&lt;/strong&gt;&lt;/h2&gt;&#10;&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;&#10;&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://foojay.io/today/book-review-monolith-to-microservices-part-1/</link><pubDate>Wed, 18 May 2022 07:43:41 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;figure class="size-medium"&gt;&#10; &lt;img src="https://foojay.io/today/book-review-monolith-to-microservices-part-1/monolith-to-microservice-388x510.jpeg" alt="" width="388" height="510" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&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;&#10;&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;&#10;&lt;p&gt;This book contains five chapters, each of which has a great deal of context and explanation.&lt;/p&gt;</description></item></channel></rss>