InfoQ Homepage Articles
-
How to Use Rust Procedural Macros to Replace Panic with syn’s Fold
In this article, we show how you can write advanced macros to step through Rust code and modify it. Using the standard tooling available in the syn crate, we first show how to change the occurrence of a panic into an Err. Then we go a step beyond and use the Fold trait to recursively step through the entire function, automatically executing a change in every applicable location.
-
Agile Architecture, Lean Architecture, or Both?
When it comes to software architecture, should you adopt an agile or a lean approach? The answer, of course, is "it depends." Agile is better suited for situations where you know what you need, but not how to build it. Lean is more appropriate when requirements are certain and you want to optimize a well-known process.
-
Testing Machine Learning: Insight and Experience from Using Simulators to Test Trained Functionality
When testing machine learning systems, we must apply existing test processes and methods differently. Machine Learning applications consist of a few lines of code, with complex networks of weighted data points that form the implementation. The data used in training is where the functionality is ultimately defined, and that is where you will find your issues and bugs.
-
The Hidden Cost of Using Managed Databases
The rising popularity of managed relational databases brings hidden costs, and informed decisions are crucial for optimal use. This article shows the importance of monitoring service expenses, revising default settings, and understanding operational constraints, considering limitations like reduced flexibility and observability.
-
Advice for Engineering Managers: Enabling Developers to Become (More) Creative
As an engineering manager, it is your responsibility to help facilitate creative thinking skills among the development team, but that's easier said than done. This article provides advice on how can you help amplify the creative thinking skills of your software development colleagues. We examine how different levels of creativity influence creativity and strategies to encourage creativity.
-
What's New in PHP 8.3
PHP 8.3 is the latest major update in the PHP 8.x series. In addition to performance improvements, it brings a wealth of new features, including amendments to the readonly feature introduced in PHP 8.1; explicitly-typed class constants; a new #[\Override] attribute for methods intended to be overridden from a superclass, and more.
-
Four Steps to Achieving Operational Flow and Improving Quality in Tech Teams
No matter the team or organisation size, there’s always more to do than is possible to get done. That’s why it’s so important for work to flow effectively. This article discusses four steps to achieving operational flow and improving quality in tech teams.
-
Generative AI: Shaping a New Future for Fraud Prevention
This article explores how generative AI affects fraud detection by reducing false positives and dynamically adapting to changing fraud patterns. This combination offers a potent preventive solution when integrated with machine learning. The efficacy and scalability of fraud prevention initiatives are enhanced by this innovative approach.
-
Multiplying Engineering Productivity in the Face of Constant Change
Leaders know that they need to support organizational efficiency, but how they do that can vary based on the situation and context of the organization. Learning how to utilize a few key leadership frameworks in certain environments can help maintain the appropriate level of support, urgency, and independence when situations shift.
-
Spring Boot 3.2 and Spring Framework 6.1 Add Java 21, Virtual Threads, and CRaC
Spring Framework 6.1 and Spring Boot 3.2 run on Java 21. They make concurrent programming simpler and more efficient with virtual threads, as well as improving reactive programming and Kotlin coroutines. For “Scale to Zero” startup time reduction, the OpenJDK project CRaC received initial support, while the existing GraalVM Native Image integration got faster through a GraalVM release.
-
How Platform and Site Reliability Engineering Are Evolving DevOps
Companies are now looking to grow and more effectively manage DevOps with platform engineering and site reliability engineering roles. No one has these roles perfectly carved out right now — there’s just too much to do and not enough people to do it — but knowing where these three disciplines do and don’t overlap will help organizations evolve and take advantage when they are ready.
-
A Primer on Idempotence for AWS Serverless Architecture
Understand idempotence in AWS serverless, tackling challenges from at-least-once delivery. Implement and automate with AWS Lambda, emphasizing early planning for consistent outcomes. Use tools like Lambda Powertools and prioritize testing for reliability.