<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Steve Poole on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/authors/steve-poole/</link><description>Recent content in Steve Poole on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 18 Jun 2026 07:00:02 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/authors/steve-poole/index.xml" rel="self" type="application/rss+xml"/><item><title>2: The Jakarta Cliff: Why Modern Java Leaves Struts 1 Behind</title><link>https://javapro-en.svenruppert.com/2-the-jakarta-cliff-why-modern-java-leaves-struts-1-behind/</link><pubDate>Thu, 18 Jun 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/2-the-jakarta-cliff-why-modern-java-leaves-struts-1-behind/</guid><description>&lt;p&gt;This is the second in a series of articles exploring the realities of modernisation. In this article, you&amp;rsquo;ll learn about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Modern Java Breakpoint:&lt;/strong&gt; Why the shift from &lt;code&gt;javax&lt;/code&gt; to &lt;code&gt;jakarta&lt;/code&gt; creates an unfixable compatibility break for Struts 1 on modern containers like Tomcat 10 and Jetty 11.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The External Pressure Cooker:&lt;/strong&gt; How platform baselines, security policies, and cloud migrations force the issue, even if the application code itself hasn&amp;rsquo;t changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why &amp;ldquo;Shims&amp;rdquo; Fail:&lt;/strong&gt; A look at why attempting to patch compatibility with shims is not a viable long-term solution for production environments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safe Operation Strategies:&lt;/strong&gt; What it practically means to run Struts securely on older containers without exposing the rest of your infrastructure to risk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Path to Modernisation:&lt;/strong&gt; How to use incremental migration patterns and extended support to modernise on your own terms, avoiding risky &amp;ldquo;big-bang&amp;rdquo; rewrites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2025/12/struts1-banner-1024x358.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>1: Why Struts 1.3 Still Matters in 2026</title><link>https://javapro-en.svenruppert.com/1-why-struts-1-3-still-matters-in-2026/</link><pubDate>Tue, 16 Jun 2026 16:41:08 +0000</pubDate><guid>https://javapro-en.svenruppert.com/1-why-struts-1-3-still-matters-in-2026/</guid><description>&lt;p&gt;What You’ll Learn&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
This article is the first in a series that explores why Struts 1 still shows up (quietly but persistently) in enterprise systems in 2026, and what that means for teams trying to keep the lights on.&lt;/p&gt;
&lt;p&gt;We look at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Discovery Effect&lt;/strong&gt;: How stable, forgotten Struts apps resurface during audits, migrations, and security scans.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where the Friction Really Is&lt;/strong&gt;: The talent shortage, the tooling disconnect, and the Jakarta EE shift: all colliding to make legacy upkeep harder than it should be.&lt;/li&gt;
&lt;li&gt;Modernisation Without the Fantasy: Why the rewrite-or-risk framing misleads teams, and how approaches like embedding Struts in Spring Boot create workable transition paths.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Buying Breathing Room&lt;/strong&gt;: How extended support gives organisations time to avoid crisis-driven decision-making.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2025/12/struts1-banner-1024x358.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>curl | bash | hacked: the unseen dangers in your dev lifecycle</title><link>https://javapro-en.svenruppert.com/curl-bash-hacked-the-unseen-dangers-in-your-dev-lifecycle/</link><pubDate>Wed, 25 Mar 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/curl-bash-hacked-the-unseen-dangers-in-your-dev-lifecycle/</guid><description>&lt;p&gt;&lt;a href="https://schedule.jcon.one/2026/session/1062707"&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2026/03/2026-Magazin-Artikel-Banner-1024x213.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There’s a line of shell that looks harmless, even helpful:&lt;/p&gt;
&lt;div class="code-block" data-lang=""&gt;
 &lt;div class="code-block-head"&gt;
 &lt;span class="code-block-lang"&gt;CODE&lt;/span&gt;
 &lt;button type="button" class="code-block-copy" aria-label="Copy code" data-code-copy&gt;
 &lt;span class="code-block-copy-icon" aria-hidden="true"&gt;⧉&lt;/span&gt;
 &lt;span class="code-block-copy-label"&gt;Copy&lt;/span&gt;
 &lt;/button&gt;
 &lt;/div&gt;
 &lt;pre&gt;&lt;code&gt;curl &amp;lt;XXX&amp;gt; | bash&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;It promises speed. Convenience. &lt;em&gt;“Just install the thing and get on with your day.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That promise is exactly why attackers love it.&lt;/p&gt;
&lt;p&gt;That one-liner doesn’t merely install a tool. It hands execution control to whatever sits on the other end of a network request, runs with your permissions on your machine, and within your environment. There is no sandbox. No review step. No guardrails.&lt;/p&gt;</description></item><item><title>The Myth of Stability: Java's Software Supply Chain After Log4Shell</title><link>https://javapro-en.svenruppert.com/the-myth-of-stability-javas-software-supply-chain-after-log4shell/</link><pubDate>Thu, 08 Jan 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-myth-of-stability-javas-software-supply-chain-after-log4shell/</guid><description>&lt;p&gt;For as long as most Java developers can remember, we’ve lived inside a comforting story about our ecosystem. It’s the idea that Maven Central, the Jakarta stack, the Spring universe, the vast Apache landscape, and all the independent libraries quietly carrying enterprise workloads together form a coherent, self-maintaining, self-healing whole. &lt;/p&gt;
&lt;p&gt;A world where problems are fixed upstream, where maintainers have time, where the dependencies we pull down are being actively watched by someone who knows exactly what they’re doing. It’s a lovely idea. It’s also never been completely real.&lt;/p&gt;</description></item><item><title>The Shai-Hulud NPM Worm: When Supply Chains Bite Back</title><link>https://javapro-en.svenruppert.com/the-shai-hulud-npm-worm-when-supply-chains-bite-back/</link><pubDate>Thu, 02 Oct 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-shai-hulud-npm-worm-when-supply-chains-bite-back/</guid><description>&lt;p&gt;Let’s be clear: Shai-Hulud wasn’t just another npm compromise. For the first time, a &lt;strong&gt;self-propagating worm ripped through the JavaScript supply chain.&lt;/strong&gt; We’ve seen worms before, but this one changed the game. It hijacked developers’ credentials and CI/CD pipelines, transforming them into its attack vector.&lt;/p&gt;
&lt;p&gt;At KCDC and JavaZone, I warned about the dangers of &lt;code&gt;curl | bash | hacked&lt;/code&gt;. Unfortunately, what once looked like a theory (or an occasional exploit) &lt;strong&gt;has now evolved into something far more dangerous.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Where to Use AI FOR Development: A Practical Guide for Engineers and Managers</title><link>https://javapro-en.svenruppert.com/where-to-use-ai-for-development-a-practical-guide-for-engineers-and-managers/</link><pubDate>Fri, 26 Sep 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/where-to-use-ai-for-development-a-practical-guide-for-engineers-and-managers/</guid><description>&lt;p&gt;There&amp;rsquo;s a lot of noise out there about AI generating code for you, creating tests, filing bugs, and possibly even conducting your sprint planning meetings. It&amp;rsquo;s easy to get swept up in the hype. You&amp;rsquo;ve probably seen claims like &amp;ldquo;AI can build your app from a prompt&amp;rdquo; or &amp;ldquo;Ship twice as fast with half the team&amp;rdquo;. Sounds appealing doesn&amp;rsquo;t it? The reality, as always, is more nuanced.&lt;/p&gt;
&lt;p&gt;In this article, I want to puncture some of the more inflated expectations and instead offer a grounded view of where AI can help in software development today. What works, what doesn&amp;rsquo;t, and what might be worth trying if you squint hard enough. The lens I want to use is risk. Because fundamentally, that&amp;rsquo;s what software development is: a careful game of managing risk against code.&lt;/p&gt;</description></item><item><title>A 10X Approach to Quality Assurance</title><link>https://javapro-en.svenruppert.com/a-10x-approach-to-quality-assurance/</link><pubDate>Wed, 20 Aug 2025 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/a-10x-approach-to-quality-assurance/</guid><description>&lt;p&gt;It&amp;rsquo;s often true that what you measure will define you. Measurements become critical indicators, which eventually become goals. Measure the speed of something, and soon, almost inevitably, the goal will be to increase it.&lt;/p&gt;
&lt;p&gt;In time, those goals and measurements will become the driving force behind behavior. The original objectives will be lost to history, and the new focus will be considered the norm.&lt;/p&gt;
&lt;p&gt;This transformation occurs frequently and is often the downfall of organisations. They forget what they are in business to achieve, get lost in the process, and have these fabricated objectives.&lt;/p&gt;</description></item><item><title>From Breaches to Blackouts: The Human Consequences of Software Supply Chain Attacks</title><link>https://javapro-en.svenruppert.com/from-breaches-to-blackouts-the-human-consequences-of-software-supply-chain-attacks/</link><pubDate>Wed, 23 Jul 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/from-breaches-to-blackouts-the-human-consequences-of-software-supply-chain-attacks/</guid><description>&lt;p&gt;Have you ever considered the impact of Cybercrime? How do your choices in terms of applying good security practices matter? Given that the current estimate for the annual bill worldwide is 9 Trillion US Dollars, there is obviously a significant financial reward for the bad guys, but have you ever wondered how that breaks down or if there&amp;rsquo;s more to their motivations and actions than just money?&lt;/p&gt;
&lt;p&gt;This article will explore the financial element and broader human implications.&lt;/p&gt;</description></item><item><title>Policy and Process: Thinking differently about Modern Java API design</title><link>https://javapro-en.svenruppert.com/policy-and-process-thinking-differently-about-modern-java-api-design/</link><pubDate>Wed, 30 Apr 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/policy-and-process-thinking-differently-about-modern-java-api-design/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dT9Qog-g3Gw&amp;amp;list=PLFeSAZzYdUodZjQy6a3pCBl43UUem8_E3&amp;amp;index=18"&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2025/03/Magazin-Artikel-Banner-2-1024x214.jpg" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are many guides on achieving the right architectural balance and multiple thoughts about the ‘right’ way. In this article, I want to distil some of this thinking, apply it to Java API design, and use modern Java features. Historical patterns like AWT or RMI often influence older Java API design thinking, and it’s time to remind readers that modern Java features offer new, more powerful, and frequently safer ways to design APIs.&lt;/p&gt;</description></item><item><title>Move Fast, Break Laws: AI, Open Source and Devs (Part 4)</title><link>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-4/</link><pubDate>Thu, 10 Apr 2025 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-4/</guid><description>&lt;p&gt;The software development landscape is rapidly changing, with legislation emerging as a key driver of industry trends. As our reliance on software and AI grows, so does our vulnerability to cybercrime, which is now a multi-trillion-dollar problem. This has caught the attention of regulators worldwide. &lt;/p&gt;
&lt;p&gt;This article explains the various regulatory efforts in play and summarises actions that developers and executives should consider as they get to grips with 2025 - the year of software legislation&lt;/p&gt;</description></item><item><title>Move Fast, Break Laws: AI, Open Source and Devs (Part 3)</title><link>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-3/</link><pubDate>Tue, 08 Apr 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-3/</guid><description>&lt;h4 id="background"&gt;Background&lt;/h4&gt;
&lt;p&gt;The software development landscape is rapidly changing, with legislation emerging as a key driver of industry trends. As our reliance on software and AI grows, so does our vulnerability to cybercrime, which is now a multi-trillion-dollar problem. This has caught the attention of regulators worldwide. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/2025/04/01/move-fast-break-laws-ai-open-source-and-devs-part-1/"&gt;Part 1&lt;/a&gt; covered the background, what a software supply chain is and thoughts on AI and open source.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/2025/04/03/move-fast-break-laws-ai-open-source-and-devs-part-2/"&gt;Part 2&lt;/a&gt; explored how governments are working to create legislation and what the current status is.&lt;/p&gt;</description></item><item><title>Move Fast, Break Laws: AI, Open Source and Devs (Part 2)</title><link>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-2/</link><pubDate>Thu, 03 Apr 2025 09:56:07 +0000</pubDate><guid>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-2/</guid><description>&lt;p&gt;The software development landscape is rapidly changing, with legislation emerging as a key driver of industry trends. As our reliance on software and AI grows, so does our vulnerability to cybercrime, which is now a multi-trillion-dollar problem. This has caught the attention of regulators worldwide. &lt;/p&gt;
&lt;p&gt;This article explains the various regulatory efforts in play and summarises actions that developers and executives should consider as they get to grips with 2025 - the year of software legislation&lt;/p&gt;</description></item><item><title>Move Fast, Break Laws: AI, Open Source and Devs (Part 1)</title><link>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-1/</link><pubDate>Tue, 01 Apr 2025 11:34:21 +0000</pubDate><guid>https://javapro-en.svenruppert.com/move-fast-break-laws-ai-open-source-and-devs-part-1/</guid><description>&lt;p&gt;The software development landscape is rapidly changing, with legislation emerging as a key driver of industry trends. As our reliance on software and AI grows, so does our vulnerability to cybercrime, which is now a multi-trillion-dollar problem. This has caught the attention of regulators worldwide. &lt;/p&gt;
&lt;p&gt;This article series explains the various regulatory efforts in play and summarises actions that developers and executives should consider as they prepare for 2025, the year of software legislation.&lt;/p&gt;</description></item><item><title>Thinking differently about testing</title><link>https://javapro-en.svenruppert.com/thinking-differently-about-testing/</link><pubDate>Mon, 27 Jan 2025 16:35:56 +0000</pubDate><guid>https://javapro-en.svenruppert.com/thinking-differently-about-testing/</guid><description>&lt;p&gt;10x Insights to help take a different view of quality assurance&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve given a few talks about 10x developers, or rather 10x professionals and been involved in process (re)engineering for many teams and projects. However much you learn about people and their roles - there&amp;rsquo;s always something new to discover. In fact, it&amp;rsquo;s amazing how often your worldview is blinkered, how often there&amp;rsquo;s a different way to do or think about some aspect of your life or career.&lt;/p&gt;</description></item><item><title>1BRC with AI - curious and curiouser said the LLM</title><link>https://javapro-en.svenruppert.com/maximize-productivity-with-ai-tools-in-java-development/</link><pubDate>Wed, 15 Jan 2025 11:48:56 +0000</pubDate><guid>https://javapro-en.svenruppert.com/maximize-productivity-with-ai-tools-in-java-development/</guid><description>&lt;blockquote class="pullquote"&gt;
 &lt;span class="pullquote-mark" aria-hidden="true"&gt;“&lt;/span&gt;
 &lt;div class="pullquote-body"&gt;&lt;p&gt;&lt;em&gt;Did you try turning it off and on first?&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;em&gt;(I promise this is the last 1BRC-related post). Read on to discover how large language models (LLMs) performed in generating Java code, their strengths in context-aware development, and challenges such as hallucinations and nuanced errors. Learn what makes a good AI dev tool and what makes a great IDE integration.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class="pullquote"&gt;
 &lt;span class="pullquote-mark" aria-hidden="true"&gt;“&lt;/span&gt;
 &lt;div class="pullquote-body"&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;p&gt;A definition of insanity is repeating an action and expecting a different outcome.  As developers, we’re used to doing that :-)  It’s part of our operating manual. &lt;/p&gt;</description></item><item><title>My Top 10 Principles for getting the best from AI (for developers)</title><link>https://javapro-en.svenruppert.com/my-top-10-principles-for-getting-the-best-from-ai-for-developers/</link><pubDate>Mon, 02 Dec 2024 11:56:54 +0000</pubDate><guid>https://javapro-en.svenruppert.com/my-top-10-principles-for-getting-the-best-from-ai-for-developers/</guid><description>&lt;p&gt;&lt;em&gt;AI tools for developers: principles, insights, and the importance of clean code.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Every day, I encounter a new AI tool, whether a new capability is added to an existing tool or an entirely new offering. I actively use several AI tools, including ChatGPT, Grammarly, and Amazon Q Developer, each serving different purposes. I pay for pro access to ChatGPT and Grammarly, though I sometimes consider switching to Claude.ai, which occasionally proves invaluable. s a view of AI tools for developers: my principles, insights and ultimately the realisation that development practises such as clean code is more essential than ever&lt;/p&gt;</description></item><item><title>The AI Mona Lisa Challenge: Precision and Security Adjustments for Your CI/CD Pipeline</title><link>https://javapro-en.svenruppert.com/the-ai-mona-lisa-challenge-precision-and-security-adjustments-for-your-ci-cd-pipeline/</link><pubDate>Thu, 21 Nov 2024 12:22:47 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-ai-mona-lisa-challenge-precision-and-security-adjustments-for-your-ci-cd-pipeline/</guid><description>&lt;p&gt;&lt;em&gt;&amp;ldquo;Mona Lisa, Mona Lisa, men have named you; you&amp;rsquo;re so like the lady with the mystic smile.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last time, I finished a &lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;set of articles&lt;/a&gt; about using AI coding tools.  In the end, my conclusion was that the tools can help greatly but that right now,  using them to generate whole programs was pushing the envelope.  As helpers, as pseudo-pair-programmers,  the tools can offer great value and make you more productive.  However, it’s essential to understand that this process works because of the interaction between humans and AI.  Without the steering and a continuous mix of rejection and acceptance,  the AI can’t learn how to respond correctly.  &lt;/p&gt;</description></item><item><title>UnConferences - the antidote to conferences?</title><link>https://javapro-en.svenruppert.com/unconferences-the-antidote-to-conferences/</link><pubDate>Wed, 13 Nov 2024 11:35:30 +0000</pubDate><guid>https://javapro-en.svenruppert.com/unconferences-the-antidote-to-conferences/</guid><description>&lt;p&gt;unConferences: Experience community-driven learning and networking - where attendees set the agenda and drive the conversation.&lt;/p&gt;
&lt;p&gt;In a few days, I’ll be kicking off the second London Java Community Conference this year.  We (the LJC) usually run an unConference once a year. Traditionally the last Saturday in November., but since the end of the Covid lockdown, it’s been a Monday near that date.  I’ll explain why that&amp;rsquo;s important later&lt;/p&gt;
&lt;p&gt;In this post, I want to explain why we are running an unConference and have two this year. I aim to inspire you to follow suit and run your version—wherever you are and whatever you do. It might just change your life.&lt;/p&gt;</description></item><item><title>1 Billion RECORD CHallenge - AI Style</title><link>https://javapro-en.svenruppert.com/1-billion-record-challenge-ai-style/</link><pubDate>Thu, 07 Nov 2024 10:05:34 +0000</pubDate><guid>https://javapro-en.svenruppert.com/1-billion-record-challenge-ai-style/</guid><description>&lt;p&gt;&lt;strong&gt;Previously …&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I recently &lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;wrote&lt;/a&gt; about my experiences with getting AI coding tools to find bugs and write tests.  I picked five different tools. The selection criteria were simple - free or trial with no credit card needed.  I chose three tools designed to help developers and two general-purpose LLMs.  &lt;/p&gt;
&lt;p&gt;I gave them a 1000-line Java program and asked them to do three things.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add Javadoc to explain what the code did&lt;/li&gt;
&lt;li&gt;Analyse the code for bugs and design weaknesses&lt;/li&gt;
&lt;li&gt;Create Junit testcases that would provide reasonable code coverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The results were disappointing but, in hindsight, predictable.  Overall, the tools were better at creating documentation than finding bugs and, apart from one, were pretty poor at writing test cases.  &lt;/p&gt;</description></item><item><title>Are AI Coding tools worth it - RESULTS</title><link>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-results/</link><pubDate>Wed, 30 Oct 2024 12:32:45 +0000</pubDate><guid>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-results/</guid><description>&lt;h5 id="background"&gt;Background&lt;/h5&gt;
&lt;p&gt;In &lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;Part 1&lt;/a&gt;&lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;,&lt;/a&gt; I examined the value of AI tools for developers, especially those that help them create or understand code. The tools selected are all free to use and a mix of general-purpose ones and those that declare they are specifically for coding purposes.&lt;/p&gt;
&lt;p&gt;In &lt;a href="https://javapro.io/2024/10/23/are-ai-coding-tools-worth-it-part-2/"&gt;Part 2&lt;/a&gt;, I examined these tools&amp;rsquo; ability to find bugs and weaknesses. The results were spotty and not particularly useful or time-saving.&lt;/p&gt;
&lt;p&gt;In this part, we&amp;rsquo;ll look at the results from asking these tools to create JUnit tests for the code and decide who wins (and why).&lt;/p&gt;</description></item><item><title>Are AI Coding tools worth it - Part 2</title><link>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-part-2/</link><pubDate>Wed, 23 Oct 2024 16:04:46 +0000</pubDate><guid>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-part-2/</guid><description>&lt;p&gt;In &lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;Part 1&lt;/a&gt;&lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;,&lt;/a&gt; I started to examine the value of AI tools for developers, especially those that help them create or understand code. The tools selected are all free to use and are a mix of general-purpose ones and those that declare they are specifically for coding purposes&lt;/p&gt;
&lt;h6 id="tools-being-evaluated"&gt;Tools being evaluated&lt;/h6&gt;
&lt;p&gt;1: ChatGPT  &lt;a href="https://chatgpt.com/"&gt;https://chatgpt.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2: Claude &lt;a href="https://claude.ai/"&gt;https://claude.ai/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3: Amazon Q Developer  &lt;a href="https://aws.amazon.com/q/developer/"&gt;https://aws.amazon.com/q/developer/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4: Codeium &lt;a href="https://codeium.com/"&gt;https://codeium.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5: JetBrains AI Assistant &lt;a href="https://www.jetbrains.com/ai/"&gt;https://www.jetbrains.com/ai/&lt;/a&gt;&lt;/p&gt;
&lt;h6 id="i-asked-each-tool-three-questions"&gt;&lt;strong&gt;I asked each tool three questions&lt;/strong&gt;&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;“Generate the main Javadoc to describe this class.”&lt;/li&gt;
&lt;li&gt;“Assess the class for bugs and coding weaknesses and provide corrections or guidance.”&lt;/li&gt;
&lt;li&gt;” Generate Junit test cases to provide around 90% code coverage -especially for edge conditions etc.”&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id="results-so-far"&gt;Results so FAR&lt;/h6&gt;
&lt;p&gt;In &lt;a href="https://javapro.io/2024/10/17/are-ai-coding-tools-worth-it-part-1/"&gt;Part 1,&lt;/a&gt; we saw that they could all generate Javadoc, but none could do it particularly well. ChatGPT came off best as providing the most comprehensive response, but all the tools were prone to hallucinations that made the result misleading.&lt;/p&gt;</description></item><item><title>Are AI coding tools worth it? - part 1</title><link>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-part-1/</link><pubDate>Thu, 17 Oct 2024 10:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/are-ai-coding-tools-worth-it-part-1/</guid><description>&lt;p&gt;This is the start of a few posts about AI coding tools. This one sets the scene and gives a taste of what I found. In later posts I&amp;rsquo;ll show more of what I got from using them &lt;em&gt;as is.&lt;/em&gt; , explore what the sweet spots might be and end with a harder look at getting value out of them. If you want to skip to the end go &lt;a href="https://javapro.io/2024/11/07/1-billion-record-challenge-ai-style/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="a-long-time-ago-in-a-company-far-far-away"&gt;&lt;strong&gt;A long time ago, in a company far, far away…&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt; In the very early 90&amp;rsquo;s I had the, well, honour is not quite the word I want, the experience may be, to use a prototype of one of the first viable commercial speech-to-text and speech-to-control tools.  I used it at work; I used it at home. It was a disaster in all ways.  In the first go-around, the training for learning your voice was arduous, literally painful, and demanding. In the second prototype, it would often pick up the sound of the hard disk on the computer and interpret it as text, to much hilarity for all. &lt;/p&gt;</description></item><item><title>Building a better Mouse Trap - web crawling with Temporal</title><link>https://javapro-en.svenruppert.com/building-a-better-mouse-trap-web-crawling-with-temporal/</link><pubDate>Thu, 03 Oct 2024 14:26:30 +0000</pubDate><guid>https://javapro-en.svenruppert.com/building-a-better-mouse-trap-web-crawling-with-temporal/</guid><description>&lt;p&gt;For various reasons, I’ve been looking at &lt;a href="https://github.com/temporalio"&gt;Temporal&lt;/a&gt; lately. It’s one of those open-source projects with some great users - think Netflix, Uber, etc.- yet has less visibility in the Java community than expected. &lt;/p&gt;
&lt;p&gt;I hope to raise its profile here.&lt;/p&gt;
&lt;p&gt;Before I talk about Temporal, I’ll cover my particular use case.  &lt;em&gt;Stay with me; this needs to be detailed.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="background"&gt;Background&lt;/h3&gt;
&lt;p&gt;A side project I have is to create a Java API comparison tool that can be used to check if moving from version A to version B of a dependency will have issues.  I’m looking beyond the simple class-to-class comparison, I intend to check for a more holistic view to find runtime and compile time problems that might occur within the dependency tree if you upgrade something. &lt;/p&gt;</description></item><item><title>Developer Relations as Terraforming: Cultivating Ecosystems for Success</title><link>https://javapro-en.svenruppert.com/developer-relations-as-terraforming-cultivating-ecosystems-for-success/</link><pubDate>Thu, 26 Sep 2024 11:55:28 +0000</pubDate><guid>https://javapro-en.svenruppert.com/developer-relations-as-terraforming-cultivating-ecosystems-for-success/</guid><description>&lt;p&gt;As a “DevRel” person, I’m disappointed in how often our efforts are misunderstood and marginalised. In this article, I want to take another slant on the what and why of “DevRel.”&lt;/p&gt;
&lt;p&gt;Developer Relations (DevRel) holds the same transformative potential as terraforming in science fiction. It&amp;rsquo;s cheesy, but it’s pretty accurate. Much like engineers striving to turn a hostile, barren planet into one that can sustain life, DevRel teams are tasked with creating an atmosphere where developers can thrive. Success in both cases isn’t immediate; it requires patience, deliberate planning, and constant care to cultivate a living ecosystem.&lt;/p&gt;</description></item><item><title>the Wild Frontier of Technology adoption</title><link>https://javapro-en.svenruppert.com/the-wild-frontier-of-technology-adoption/</link><pubDate>Tue, 13 Aug 2024 09:55:32 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-wild-frontier-of-technology-adoption/</guid><description>&lt;p&gt;Being out of work and looking for new opportunities means interviews. A common thread that comes up is arm waving. &amp;ldquo;There are 25 million developers out there, we want you to make them use our product/api/service&amp;rdquo;. Coupled with this idea is the expectation that if only they could get the offering in front of a developer if only that developer would try it, then all would be well and money would pour in.&lt;/p&gt;</description></item></channel></rss>