InfoQ Homepage Programming Content on InfoQ
-
C# 8 Ranges and Recursive Patterns
C#8 adds Ranges and Recursive Patterns. Ranges define a sequence of data while the use of Recursive Patterns provides the ability to deconstruct objects that match a given pattern. This expands on the basic pattern matching that debuted in C#7.
-
Securing web.config with Encryption Certificates on Windows and Azure
A major area where security is often lax is the web.config file. Usually stored in plain text, an intruder who gains access to this file can then easily access databases and other resources both internal and external. With this technique, secrets in your web.config can be encrypted using the Windows certificate store
-
The Rewards and Challenges of Predictive Maintenance
Predictive maintenance is not new, but today more than ever, with advancements in industrial Internet of things (IIoT) and artificial intelligence (AI), predictive maintenance can result in significant savings for manufacturers.
-
Q&A on the Book Testing in the Digital Age
The Book Testing in the Digital Age by Tom van de Ven, Rik Marselis, and Humayun Shaukat, explains the impact that developments like robotics, artificial intelligence, internet of things, and big data are having in testing. It explores the challenges and possibilities that the digital age brings us when it comes to testing software systems.
-
Building an API Gateway with the Ballerina Programming Language
An API Gateway is a layer in an architecture pattern that allows the business API to focus on the business functionality while taking care of the request dispatching, policy enforcement, protocol translations and analytics. This article is about how we built an API Gateway in Ballerina for the WSO2 API Manager.
-
Getting to Know Graal, the New Java JIT Compiler
Oracle have released Graal, a new JIT compiler for Java. For Java developers, Graal can be thought of as several separate but connected projects - it is a new JIT compiler for HotSpot, and also a new polyglot virtual machine, GraalVM. The initial release includes support for JVM bytecode and JavaScript with LLVM, Ruby and R in beta.
-
Your Roadmap to an Open Mobile Application Development Strategy
This article explains why, in a fast-changing mobile app environment, organizations should aim for flexibility by using an open development infrastructure for their mobile app development. This infrastructure should support multiple deployment options, decouple the front-end and MBaaS infrastructure, enable task automation by using both cloud services and a low-code development approach.
-
Cats, Qubits, and Teleportation: The Spooky World of Quantum Algorithms (Part 2)
Quantum information theory really took off once people noticed that the computational complexity of quantum systems was actually a computational capacity, which could be applied to other problems, such as factorization, which is used within public key cryptography. This article explores quantum algorithms and their applicability.
-
App Architecture, iOS Application Design Patterns in Swift Review and Author Q&A
App Architecture, iOS Application Design Patterns in Swift by Chris Eidhof, Matt Gallagher, and Florian Kugler presents a number of architectures for iOS Swift applications, from the ubiquitous Model-View-Controller to a few more experimental ones. The book is accompanied by a set of videos that are available as a separate purchase and add a live-coding dimension to the book content.
-
How BuzzFeed Migrated from a Perl Monolith to Go and Python Microservices
Starting in 2016 BuzzFeed began a re-architecture project moving from a single monolithic application written in Perl to a set of microservices. The main reason for the move was that the Perl application was proving hard to scale, essential given that buzzfeed.com alone serves about 7 billion page views/month.
-
Can People Trust the Automated Decisions Made by Algorithms?
The use of automated decision making is increasing. These algorithms can produce results that are incomprehensible, or socially undesirable. How can we determine the safety of algorithms in devices if we cannot understand them? Public fears about the inability to foresee adverse consequences has impeded technologies such as nuclear energy and genetically modified crops.
-
Default Interface Methods in C# 8
Default interface methods are included in a new feature proposal for C# 8, which will allow developers to use the traits programming technique. Based on an existing language feature found in Java, traits are an OOP technology that promotes the reuse of methods between unrelated classes.