Artificial intelligence
fromInfoQ
1 day agoChoosing Your AI Copilot: Maximizing Developer Productivity
Most developers are at an intermediate level of AI-assisted coding, with around 50% generating little to no code using AI.
The most dangerous assumption in quality engineering right now is that you can validate an autonomous testing agent the same way you validated a deterministic application. When your systems can reason, adapt, and make decisions on their own, that linear validation model collapses.
Air, now free for MacOS with Linux and Windows versions coming soon, is an agentic development environment, or ADE, built on the idea of integrating the essential tools for managing coding agents into a single coherent experience. Serving as a single workspace where Claude Agent, Gemini CLI, Codex, and Junie CLI can work side-by-side, Air helps developers navigate a codebase and easily switch back and forth between different coding agents.
The integration of AI-enhanced microservices within the SAFe 5.0 framework presents a novel approach to achieving scalability in enterprise solutions. This article explores how AI can serve as a lean portfolio ally to enhance value stream performance, reduce noise, and automate tasks such as financial forecasting and risk management. The cross-industry application of AI, from automotive predictive maintenance to healthcare, demonstrates its potential to redefine processes and improve outcomes.
Readable failures. When something breaks, I want to understand why in seconds, not minutes. Predictable setup. I want to know exactly what state my tests are running against. Minimal magic. The less indirection between my test code and what's actually happening, the better. Easy onboarding. New team members should be able to write tests on day one without learning a new paradigm.
The request for its API val request = Request[IO](Method.POST, uri"/jobs")val api = new AsyncJobApi // this will not compile since AsyncJobApi is not defined yet Minimal implementation to make it green: class AsyncJobApi Red test: The API should return a 202 Accepted response: "POST /jobs returns Accepted" in { val request = Request[IO](Method.POST, uri"/jobs") val api = new AsyncJobApi api.routes.orNotFound.run(request).asserting : response => response.status shouldBe Status.Accepted} Make it green: class AsyncJobApi { val routes: HttpRoutes[IO] = HttpRoutes.of[IO] : case req @ POST -> Root / "jobs" => Accepted()} 5.2 Add headers (Trivial Implementation) Red test: add X-Total-Count and Location headers with job ID (only the assertion is shown)
From the discussions in the Jakarta EE Platform call[s] the last couple of weeks, it looks like we won't see a release of Jakarta EE 12 on this side of summer (on the Northern Hemisphere at least). The reason is that since Jakarta EE 11 was delayed by a year, most of the vendors are currently working on their implementations.
Hast mentioned that they trust their unit tests and integration tests individually, and all of them together as a whole. They have no end-to-end tests: We achieved this by using good separation of concerns, modularity, abstraction, low coupling, and high cohesion. These mechanisms go hand in hand with TDD and pair programming. The result is a better domain-driven design with high code quality. Previously, they had more HTTP application integration tests that tested the whole app, but they have moved away from this (or just have some happy cases) to more focused tests that have shorter feedback loops, Hast mentioned.
If there's one thing I want you to take away from this article, it's this: testing harness is the most important thing for vibe-coding. Not prompt engineering, not fancy plugins, just constraining your AI outside AI toolchain. I'm calling it harness because it's not only tests. It's tests, types, linters, and any other automated checks you can put in place. The more you rely on AI, the more harness you need.
JEP 527, Post-Quantum Hybrid Key Exchange for TLS 1.3, has been elevated from Proposed to Target to Targeted for JDK 27. This JEP proposes to enhance the implementation of RFC 8446, Transport Layer Security (TLS) Protocol Version 1.3, using the Hybrid Key Exchange in TLS 1.3 specification, currently being drafted by the Internet Engineering Task Force (IETF) in conjunction with JEP 496, Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism, delivered in JDK 24.
To find the typical example, just observe an average stand-up meeting. The ones who talk more get all the attention. In her article, software engineer Priyanka Jain tells the story of two colleagues assigned the same task. One posted updates, asked questions, and collaborated loudly. The other stayed silent and shipped clean code. Both delivered. Yet only one was praised as a "great team player."