InfoQ Homepage Articles
-
Building Functional .NET Applications: a Guide for Choosing between F# vs C#
C# and F# are languages, each with growing user bases, that approach functional programming in fundamentally different ways. C# relies on object-oriented, imperative principles, and F# relies on functional principles. Some developers are using F# as a complement to C#, rather than relying on the functional capabilities that exist natively in C#.
-
Moving Past Simple Incident Metrics: Courtney Nash on the VOID
The Verica Open Incident Database (VOID) is assembling publically available software-related incident reports. InfoQ talks with Courtney Nash about their recent findings including how MTT* metrics may not be beneficial, the average time to incident resolution, and the importance of studying near-miss reports.
-
PHP 8 - Arrays, Variables, Operators, Exception Handling and More
In this article, we discuss new features brought by PHP 8 related to arrays, variables, operators, and exception handling. We also discussed some trait-, class-, and function-related features. This article concludes the PHP 8 article series.
-
Secure Delivery: Better Workflows for Secure Systems and Pain-Free Delivery
The software delivery process has been transformed in the last decade; we’ve adopted well-understood workflows around functions such as testing, release management and operational support. In this article we'll explore the impact that security workflows have on software delivery, explain the root causes and share battle-proven techniques to show how we can make delivering secure software easier.
-
Understanding and Debugging Deep Learning Models: Exploring AI Interpretability Methods
ML interpretability refers to a user's ability to explain decisions made by an ML system. Interpretability increases confidence in the model, reduces bias, and ensures that model is compliant and ethical. In this article, author Andrew Hoblitzell discusses several methods of ML interpretability and dives deep into Local Interpretable Model-Agnostic Explanations (LIME) and Shapley Values.
-
Containers and Serverless—Rivals or Cohorts?
This article will try to decode these technologies and explore how developers should consider containers or serverless functions within their tech stack. For example, if your application has a longer startup time, then a container would suit the need better. Highly efficient stateless functions that need to scale up and down massively would benefit from running serverless functions.
-
Hard-Won Lessons from the Trenches: Failure Modes of Platform Engineering — and How to Avoid Them
Platform Engineering is a hot topic with many orgs hoping to reap the benefits. However, it is easy to go astray. This article reviews the common pitfalls of building a platform and how to avoid them.
-
Article Series: Developing Apache Kafka applications on Kubernetes
Apache Kafka has integrations with most of the languages used these days, but in this article series, we cover its integration with Java. In this series, we also discuss how to provision, configure and secure an Apache Kafka cluster on a Kubernetes cluster.
-
Designing for Concurrency: the Hilbert’s Hotel Problem in Go
In this article, we want to show how achieving concurrency is the result of an appropriate design. A concurrent solution may turn out to be more elegant and easier to reason about than an equivalent sequential algorithm. To illustrate these concepts we use, as an example, the Hilbert’s Hotel mathematical problem.
-
Lambda Throttling - How to Avoid It?
This article aims to explain best practices if you have throttled your application and services and suggestions for how to handle these cases. We performed an in-house experiment at Jit (a SaaS-based DevSecOps platform) built on serverless to learn how our application behaves.
-
If Twitter Doesn’t Have a Staging Environment, Should Anyone?
With Twitter revealing they do not have a staging environment, how important is staging to delivering quality? When so many tasks are shifting to the developer these days and no one best developer approach fits all, how do dev teams determine the best developer methodology for them and their company?
-
Your Tech Stack Doesn’t Do What Everyone Needs It To. What Next?
Stack extensibility is an essential trait of well-designed IT ecosystems. Low-code BPA (Business Process Automation) has advantages that puts it at the forefront of approaches to stack extensibility. Learn how low-code software increases process resiliency by empowering business teams with an easy-to-use, easy-to-understand and, most of all, IT-sanctioned set of tools.