InfoQ Homepage Programming Content on InfoQ
-
Robust Engineering: User Interfaces You Can Trust with State Machines
Industrial-strength modelling techniques used in safety-critical domains can be leveraged for the specification and implementation of user interfaces. This article explains how state machine modelling may lead to robust, testable and maintainable user interfaces.
-
Bots Are Coming! Approaches for Testing Conversational Interfaces
Voice-based computing interfaces need testing with an adapted approached, suited for their specificity and context. Some things need to be adapted (test strategy, testing approach, validation criteria), while others can be re-used (e.g. API testing approaches and tools), and some require learning new things (e.g. testing artificial intelligence models and components).
-
Kotlin Multiplatform for iOS Developers
Leveraging the similarities between Swift and Kotlin, Kotlin Multiplatform makes it easy to create cross-platform components that you can reuse across iOS and Android projects. This article will lead you through all the steps required to set up Android Studio to build a framework you can import into Xcode.
-
Upgrading from Java 8 to Java 12
Why upgrade to Java 12? Lots of things have changed since Java 8: licensing, updates and support. On top of that, there are new language features. Now that major libraries, frameworks and build tools have adopted the latest versions of Java, it is a good time to migrate your application to Java 12.
-
Q&A on the Book Why Do So Many Incompetent Men Become Leaders?
In the book Why Do So Many Incompetent Men Become Leaders?, Tomas Chamorro-Premuzic explains why it is so easy for incompetent men to become leaders and so hard for competent people - especially women - to advance. He explores leadership qualities and dives into how to recognize them, paving the way to improve leadership in organizations.
-
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.