<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/categories/security/</link><description>Recent content in Security on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 01 Jul 2026 07:00:01 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/categories/security/index.xml" rel="self" type="application/rss+xml"/><item><title>The 5 Knights of the MCP Apocalypse</title><link>https://javapro-en.svenruppert.com/the-5-knights-of-the-mcp-apocalypse/</link><pubDate>Wed, 01 Jul 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-5-knights-of-the-mcp-apocalypse/</guid><description>&lt;p&gt;Let&amp;rsquo;s talk about that new &lt;strong&gt;MCP (Model Context Protocol) Server&lt;/strong&gt; your team is using to connect to your real data services. It&amp;rsquo;s awesome, right? It&amp;rsquo;s the &amp;ldquo;magic box&amp;rdquo; that gives your AI Agent access to the &lt;strong&gt;real world&lt;/strong&gt;—live databases, internal APIs, and all your tools.&lt;/p&gt;
&lt;p&gt;But here&amp;rsquo;s the catch: &lt;strong&gt;you don&amp;rsquo;t own the code.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a vendor product, an open-source project, or another team&amp;rsquo;s platform. You can&amp;rsquo;t just change its code when you find a security hole, unless you have the code and recompile it and deploy it.&lt;/p&gt;</description></item><item><title>The Whispering JAR: Java Security Lessons Hidden in a Fantasy Tale</title><link>https://javapro-en.svenruppert.com/the-whispering-jar-java-security-lessons-hidden-in-a-fantasy-tale/</link><pubDate>Thu, 23 Apr 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-whispering-jar-java-security-lessons-hidden-in-a-fantasy-tale/</guid><description>&lt;p&gt;It&amp;rsquo;s December 29th, 1865, and a woman is walking down &lt;em&gt;Salzstraße&lt;/em&gt; in the city of &lt;em&gt;Freiburg&lt;/em&gt; in the Duchy of &lt;em&gt;Baden&lt;/em&gt;. She has a green cloak on, and her face is not very visible in the thick fog. She enters a small alley and knocks. A man walks to the door and asks, &amp;ldquo;What&amp;rsquo;s in the jar?&amp;rdquo; The woman replies, &amp;ldquo;Java beans.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2026/02/ChatGPT-Image-Feb-10-2026-11_25_24-PM.png" alt="Woman with a hood and red hair and a plate armor walking in the streets of Freiburg in 1865" loading="lazy" decoding="async"&gt;
 
 &lt;figcaption&gt;Woman with a hood and red hair and a plate armor walking in the streets of Freiburg in 1865&lt;/figcaption&gt;
 
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Modernizing Production Containers to Resist the Constant CVE Flow</title><link>https://javapro-en.svenruppert.com/modernizing-production-containers-to-resist-the-constant-cve-flow/</link><pubDate>Tue, 14 Apr 2026 07:00:03 +0000</pubDate><guid>https://javapro-en.svenruppert.com/modernizing-production-containers-to-resist-the-constant-cve-flow/</guid><description>&lt;p&gt;Common Vulnerabilities and Exposures or CVEs is a catalog of publicly disclosed software security flaws that attackers can use to gain unauthorized access.&lt;/p&gt;
&lt;p&gt;With 40,003 CVEs recorded in 2024, denoting a 39% increase as compared to 2023, container vulnerabilities are no longer a minor cleanup task. It is a river that floods Kubernetes clusters, drowning the teams in operational burden while real exposures slip through.&lt;/p&gt;
&lt;p&gt;Chasing every single CVE is a road to nowhere as new vulnerabilities are discovered constantly. The solution is to build a centralized vulnerability management system that will serve as a dam resisting the CVE flood and enable controlled CVE identification and remediation. &lt;/p&gt;</description></item><item><title>Zero Migration Java - Staying Current Without Breaking Your App</title><link>https://javapro-en.svenruppert.com/zero-migration-java-staying-current-without-breaking-your-app/</link><pubDate>Fri, 10 Apr 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/zero-migration-java-staying-current-without-breaking-your-app/</guid><description>Keeping enterprise Java applications secure and up-to-date is critical but traditional runtime upgrades often come with painful migrations, broken dependencies, and retesting cycles. What if developers could upgrade their runtime without touching their code? In this article, we explore the concept of zero migration — a runtime model that allows Java applications to stay current with the latest pat</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>10 Docker Commandos: Docker Commands to Hunt the Predator</title><link>https://javapro-en.svenruppert.com/10-docker-commandos-docker-commands-to-hunt-the-predator/</link><pubDate>Thu, 19 Mar 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/10-docker-commandos-docker-commands-to-hunt-the-predator/</guid><description>&lt;p&gt;Whose day is it on Tuesday?&lt;/p&gt;
&lt;p&gt;I mean, Wednesday is Odin&amp;rsquo;s day, Thursday is Thor&amp;rsquo;s day, and Friday is Frigg&amp;rsquo;s day, or Freya&amp;rsquo;s, depending on who you ask. But what about Tuesday? Who is the god of Tuesday?&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2026/02/day.png" alt="Odin = Wednesday Thor = Thursday Frigg = Friday" loading="lazy" decoding="async"&gt;
 
 &lt;figcaption&gt;Odin = Wednesday Thor = Thursday Frigg = Friday&lt;/figcaption&gt;
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s Týr, the god of war and justice. In Norse mythology, Týr is known for his bravery and sacrifice, as he lost his hand to the monstrous wolf Fenrir.&lt;/p&gt;</description></item><item><title>7 Habits of Highly Effective AI Java Coding</title><link>https://javapro-en.svenruppert.com/7-habits-of-highly-effective-ai-java-coding/</link><pubDate>Thu, 12 Mar 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/7-habits-of-highly-effective-ai-java-coding/</guid><description>&lt;h3 id="from-ai-user-to-ai-pro"&gt;&lt;strong&gt;From AI User to AI Pro&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://schedule.jcon.one/2026/session/1034618"&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;Let&amp;rsquo;s be real, AI coding tools are everywhere now.  They&amp;rsquo;re no longer some shiny new toy—they&amp;rsquo;re a part of our daily grind as developers, just like our morning coffee. &lt;/p&gt;
&lt;p&gt;For us Java devs, whether we&amp;rsquo;re wrestling with a giant legacy app or juggling a bunch of microservices, these tools look like a huge win for getting stuff done faster. &lt;/p&gt;
&lt;p&gt;But here&amp;rsquo;s the catch: just coding faster isn&amp;rsquo;t the whole story. If you&amp;rsquo;re not careful, it can actually lead to bigger problems down the road. &lt;/p&gt;</description></item><item><title>PEM files as an alternative to keystores</title><link>https://javapro-en.svenruppert.com/pem-files-as-an-alternative-to-keystores/</link><pubDate>Tue, 17 Feb 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/pem-files-as-an-alternative-to-keystores/</guid><description>&lt;p&gt;JDK 25 introduces the preview of JEP 470 - PEM encodings of cryptographic objects. The JEP introduces new classes and methods to handle keys and certificates stored in so-called PEM files. It was possible to load / store files in this format before this JEP, but the handling was far from easy. This JEP simplifies the handling of and allows programmers to easily work with the widely used PEM file format in their applications.&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>Security in the Age of Java 25: New Language Tools for Safer Code</title><link>https://javapro-en.svenruppert.com/security-in-the-age-of-java-25-new-language-tools-for-safer-code/</link><pubDate>Tue, 30 Dec 2025 07:00:03 +0000</pubDate><guid>https://javapro-en.svenruppert.com/security-in-the-age-of-java-25-new-language-tools-for-safer-code/</guid><description>&lt;p&gt;Security is more than just encryption - it&amp;rsquo;s also about how you write code. There are several Java security features that can help prevent logic bugs, misuse of types, and unexpected state mutations. Learn how sealed classes, pattern matching, and records can reinforce domain modeling, reduce null checks, and prevent injection-prone scenarios.&lt;/p&gt;
&lt;h2 id="introduction-why-java-security-features-matters-more-than-ever"&gt;Introduction: Why Java security features Matters More Than Ever&lt;/h2&gt;
&lt;p&gt;Application security has never been a static field. Over the past two decades, the Java platform has evolved not just as a runtime for enterprise applications but as a trusted foundation for industries ranging from finance and healthcare to government systems. Security breaches, once attributed primarily to poor encryption or missing authentication, now more often stem from subtler flaws: unchecked input, leaky abstractions, and poorly modeled domain logic.&lt;/p&gt;</description></item><item><title>Mastering API Security in Java: OWASP Best Practices</title><link>https://javapro-en.svenruppert.com/mastering-api-security-in-java-owasp-best-practices/</link><pubDate>Wed, 12 Nov 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/mastering-api-security-in-java-owasp-best-practices/</guid><description>&lt;h5 id="introduction"&gt;Introduction&lt;/h5&gt;
&lt;p&gt;Building secure applications is a top priority for any developer, and when it comes to APIs, security becomes even more crucial. APIs expose sensitive data and functionality, making them attractive targets for attackers. The &lt;strong&gt;&lt;a href="https://owasp.org/API-Security/editions/2023/en/0x11-t10/"&gt;OWASP&lt;/a&gt;&lt;/strong&gt; API Security Top 10 provides a list of the most critical security risks to be aware of.&lt;/p&gt;
&lt;p&gt;You will be mastering the API Security in Java by mitigating these risks, &lt;strong&gt;offering practical Java code examples to illustrate both bad practices and best practices for each vulnerability.&lt;/strong&gt;&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>Exploring XDEV SSE: Enhancing Spring Security for Modern Applications</title><link>https://javapro-en.svenruppert.com/exploring-xdev-sse-enhancing-spring-security-for-modern-applications/</link><pubDate>Fri, 25 Jul 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/exploring-xdev-sse-enhancing-spring-security-for-modern-applications/</guid><description>&lt;p&gt;In the ever-evolving world of web application security, keeping up with best practices is crucial. XDEV’s &lt;em&gt;&lt;strong&gt;Extras for Spring Security&lt;/strong&gt;&lt;/em&gt; (XDEV SSE) addresses common challenges developers face when securing distributed systems. This open-source enhancement for Spring Security offers a suite of features to simplify secure application development.&lt;/p&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;The extension provides several modules that make managing security in Spring-based applications more straightforward. Its main focus lies on &lt;strong&gt;improving OAuth2/OIDC management, session handling, and login persistence&lt;/strong&gt;, while also simplifying integration with modern frontends. One key benefit is more efficient handling of user sessions through automatic access validation—even after server restarts, security is maintained across all applications.&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>How to Containerize a Java Application Securely</title><link>https://javapro-en.svenruppert.com/how-to-containerize-a-java-application-securely/</link><pubDate>Thu, 03 Jul 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/how-to-containerize-a-java-application-securely/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Containerization&lt;/strong&gt; or &lt;strong&gt;Dockerization&lt;/strong&gt; is the process of packaging an application and its dependencies into a Docker image.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s beneficial to containerize your Java application as it provides a consistent environment for development, testing, and deployment.&lt;/li&gt;
&lt;li&gt;Java is a compiled language, so your Docker image will only contain the compiled Java bytecode and the Java runtime environment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supply-chain security&lt;/strong&gt; is the process of checking the dependencies in your application for vulnerabilities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SBOM&lt;/strong&gt; (Software Bill of Materials) is a list of all the dependencies in your application.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s a good practice to generate an SBOM when building your Docker image and push it to a registry for later reference.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="technical-requirements"&gt;Technical Requirements&lt;/h2&gt;
&lt;p&gt;In this article, we will use the following tools:&lt;/p&gt;</description></item><item><title>Java in Critical Operations: How Custom Development Ensures Control and Secures Mission-Critical Systems</title><link>https://javapro-en.svenruppert.com/java-in-critical-operations-how-custom-development-ensures-control-and-secures-mission-critical-systems/</link><pubDate>Mon, 02 Jun 2025 08:15:19 +0000</pubDate><guid>https://javapro-en.svenruppert.com/java-in-critical-operations-how-custom-development-ensures-control-and-secures-mission-critical-systems/</guid><description>&lt;p&gt;When IT fails, no one notices—until everyone does.&lt;br&gt;
Whether in hospitals, energy grids, or airports, stable operation of digital systems in safety-critical environments is not an option, but a strict requirement. This is where infrastructure must prove its resilience, scalability, and independence in the face of real-world crises.&lt;/p&gt;
&lt;p&gt;A prime example is Fraport AG, operator of one of Europe’s largest aviation hubs. When baggage goes missing or safety-critical information is delayed, it’s not just individual passengers’ vacations that are at risk—the operational stability of the entire airport is on the line. Behind the scenes of such a hub runs an extremely complex digital infrastructure that must operate reliably 24/7, despite increasing demands, ageing legacy systems, and tightening security regulations.&lt;/p&gt;</description></item><item><title>A Passwordless Future: Passkeys for Developers</title><link>https://javapro-en.svenruppert.com/a-passwordless-future-passkeys-for-developers/</link><pubDate>Fri, 30 May 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/a-passwordless-future-passkeys-for-developers/</guid><description>&lt;p&gt;Passwords have been around for thousands of years and we were all happily sharing our Netflix passwords. They are probably not going anywhere but they are not the best way to secure our digital lives. They are a hassle for users and a security risk for applications. The future of secure authentication is passwordless and passkeys are leading the way.&lt;/p&gt;
&lt;p&gt;According to &lt;a href="https://www.verizon.com/business/resources/reports/dbir/2023/summary-of-findings/"&gt;Verizon’s 2024 Data Breach Investigations Report&lt;/a&gt;, stolen credentials and phishing account for over 65% of all data breaches.&lt;/p&gt;</description></item><item><title>Top Security Flaws hiding in your code right now - and how to fix them</title><link>https://javapro-en.svenruppert.com/top-security-flaws-injections/</link><pubDate>Tue, 29 Apr 2025 07:00:07 +0000</pubDate><guid>https://javapro-en.svenruppert.com/top-security-flaws-injections/</guid><description>&lt;p&gt;In 2019, a significant &lt;a href="https://medium.com/@sashni/dont-play-games-with-your-cybersecurity-c3dbea71685b"&gt;breach in Fortnite&lt;/a&gt;, the popular game, reportedly exposed millions of players to malware risk. The incident underscored the importance of securing SQL databases properly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But this is not an isolated issue.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Multiple attacks involving SQL injection have occurred, like the one Tesla experienced in 2018. In that case, another SQL injection attack affected Tesla’s Kubernetes console, resulting in financial losses due to unauthorized cryptocurrency mining activities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But this is not only about SQL Injection.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Securing the Future of AI: Authorization for Java RAG Systems using LangChain4j and OpenFGA</title><link>https://javapro-en.svenruppert.com/securing-the-future-of-ai-authorization-for-java-rag-systems-using-langchain4j-and-openfga/</link><pubDate>Mon, 14 Apr 2025 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/securing-the-future-of-ai-authorization-for-java-rag-systems-using-langchain4j-and-openfga/</guid><description>In this post, we explore how to build a robust Java-based RAG system by integrating LangChain4j with OpenFGA for fine-grained, relationship-based access control. Learn how to tackle the unique security challenges of RAG applications—from dynamic context and complex document relationships to real-time authorization checks—and follow step-by-step examples that show you how to implement a secure syst</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>The quick check for your software - the Software Coma Scale (SCS)</title><link>https://javapro-en.svenruppert.com/the-quick-check-for-your-software-the-software-coma-scale-scs/</link><pubDate>Mon, 07 Apr 2025 11:22:49 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-quick-check-for-your-software-the-software-coma-scale-scs/</guid><description>&lt;p&gt;Do you know this situation: You have are sitting on your desk when your boss asks you to “just have a look at an old software-system” at its current status? Since he doesn&amp;rsquo;t know much about your job (IT), you have to use a system that&lt;/p&gt;
&lt;p&gt;a) he understands and&lt;/p&gt;
&lt;p&gt;b) allows you to make an informed assessment relatively quickly.&lt;/p&gt;
&lt;p&gt;Or a customer asks whether you could change this or that thing in a system you don&amp;rsquo;t know - or even take over the maintenance for it. And just like your boss, he is not an IT specialist!&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>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>Discovering the perfect Java Supply Chain Attack vector and how it got fixed</title><link>https://javapro-en.svenruppert.com/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed/</link><pubDate>Tue, 19 Nov 2024 12:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed/</guid><description>&lt;p&gt;You may have heard about the &lt;a href="https://www.oracle.com/java/technologies/javase/23-relnote-issues.html#JDK-8321314"&gt;changes to annotation processing that have been done in Java 23&lt;/a&gt;. This post will cover the underlying topic, how I learned about it, and how it got fixed.&lt;/p&gt;
&lt;h4 id="background"&gt;Background&lt;/h4&gt;
&lt;p&gt;To understand annotation processing and why it is even there, we first need to hop into our DeLorean and go back to the year &lt;del&gt;1955&lt;/del&gt; 2005. So back then there were no build tools like Maven or Gradle, which we have nowadays. Java was still developed by Sun Microsystems and the newest version was 5. Java annotations were introduced with Java 5 but an API for processing them at build-time did not exist, so &lt;a href="https://www.jcp.org/en/jsr/detail?id=269"&gt;JSR 269&lt;/a&gt; was born. The general idea seems to have been to allow the generation of (boilerplate) code and similar operations. Examples that use the concept nowadays are probably &lt;a href="https://projectlombok.org/"&gt;Lombok&lt;/a&gt; or &lt;a href="https://github.com/google/dagger"&gt;Dagger&lt;/a&gt; (for the Android world) but these are usually run with dedicated plugins. I found &lt;a href="https://www.youtube.com/watch?v=0hN6XJ69xn4"&gt;an old video of a presentation&lt;/a&gt; about this topic - you may want to check it out for additional background information. JSR 269 was ultimately implemented and shipped in 2006 with Java 6. Most details of it were likely ignored over the years as better build tools such as Maven or Gradle gradually gained popularity.&lt;/p&gt;</description></item></channel></rss>