InfoQ Homepage Programming Content on InfoQ
-
How Expedia Is Getting Rid of Java Bean Transformers
Expedia created and released BULL, an open-source Java Bean transformer library that can automatically transform all kinds of beans, including immutable and mixed beans, not just the traditional mutable case.
-
Q&A on the Book OpenSpace Beta - A Handbook for Organizational Transformation in Just 90 Days
The book OpenSpace Beta by Silke Hermann and Niels Pflaeging describes an invitation-based approach for rapid and lasting organizational change using concepts such as OpenSpace and the BetaCodex. It provides a visual timeline with roles and components to guide a co-creation based transformation.
-
The Impact and Ethics of Conversational Artificial Intelligence
Improvements in natural language understanding and our changing relationship means we can use chatbots in ways we couldn’t before - both to augment human conversation and support, or indeed, to replace it. Those working in the software industry must understand and take responsibility for how we use Conversational AI and our users' data.
-
Transforming the Healthcare Industry through API Marketplaces
A key problem in the healthcare industry is that valuable data points are hidden and siloed. Through an API marketplace, we can expose these data points securely and make them accessible by healthcare industry stakeholders and citizens alike, improving efficiency in the industry and enabling innovation in population health technologies.
-
Two Sides of a Coin: Blockchain, Ethics and Human Rights
Blockchain is, for many people, still synonymous with cryptocurrencies and financial applications, but it has enormous potential as a tool for the common good. This article explores whether blockchain could help good causes and discusses whether the lessons from ethics could benefit the blockchain community.
-
Tap Compare Testing with Diferencia and Java Microservices
“Tap compare” is a testing technique that allows you to test the behavior and performance of the new service by comparing its results against the old service. This article provides an example of using a new open source tool, Diferencia, and mirroring production traffic across both old and new services to compare the difference in result.
-
Automating Your Java Project Workflow with a Modified Gitflow Branching Model
Gitflow is a collaborative branching model that attempts to exploit the power, speed and simplicity of Git branching. But documentation for Gitflow in an automated build, integrate, and deploy environment is sparse. This article provides a flavor of Gitflow that can be used in an automated build environment.
-
Adapting Projects to Use C# 8 and Nullable Reference Types
This report is a case study on upgrading a C# 7 class library to C# 8 with nullable reference types. The project used in this case study is a collection of MVVM style base classes, reflection code, and various utility functions. It was chosen because it is reasonably small and has a good mix of idiomatic and unusual C# patterns.
-
Ambassador: Building a Control Plane for an Envoy-Powered API Gateway on Kubernetes
This article provides an insight into the creation of the Ambassador open source API gateway for Kubernetes, and discusses the technical challenges and lessons learned from building a developer-focused control plane for managing ingress or "edge" traffic within microservice-based applications.
-
Overcoming RESTlessness
New API protocols like GraphQL, gRPC, and Apache Kafka have risen in popularity as alternatives to REST-inspired HTTP APIs. Instead of seeking to replace REST, the software engineering industry should seek to evolve by building on the maturity of the REST ecosystem while exploiting the technological strengths of the new protocols.
-
The Complete Guide to the Java SE 12 Extended Switch Statement/Expression
A complete guide to Java SE 12 extended switch statement/expression. This article contains details on the proposed extension to the Java switch statement that allows it to be used as either an enhanced switch statement or a switch expression. Examples are included.
-
Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report
AppsFlyer processes nearly 70+ billion HTTP requests a day, and is built using a microservices architecture style. The entry point to the system that wraps all of the frontend services is a mission-critical (non-micro) service called the API Gateway. This article is an experience reporting of migrating from a Clojure-based gateway to a newly designed Go-based implementation.