Skip to main content

· 4 min read

Solar technologies have long been a pillar of sustainable energy, accounting for almost 10% of Australia's total electrical energy production in 2019. One of the incentives driving this adoption is the Small-scale Energy Certificate (STC) program offered by the Australian government, which offers discounts for the purchase of small-scale solar energy equipment such as solar panels and inverters.

A compliance industry has emerged from the introduction of these incentives in order to verify the eligibility of residential solar installations for STCs. This is because only a certain set of solar equipment are approved for STCs. When an application for STCs is incorrect either due to fraud or accident, the compliance industry is fined by the government. Therefore, this process is critical and involves reviewing a large amount of photographic evidence, which is time-consuming and prone to errors. But what if this didn't have to be the case?

· 5 min read

Working with type systems and communications can be very difficult. In Haskell, messages between threads are usually conveyed through channels that only accept a single type, and as a result are not very versatile. In networked systems, a stream of bytes is sent that hopefully conforms to one of many protocols including TCP, UDP, and HTTP, and hopefully both parties agree on what is sent and when. Session Types are a way to bridge the gap between these systems, as they can capture complicated protocols, and be properly type checked.

· 3 min read

TCP/IP networking relies on IP addresses mapped to a machine to facilitate routing through the Border Gateway Protocol ( BGP). This mapping is usually done through the DNS, which maps human-readable names ("cats.com") to IP addresses. Service centric networks are an alternative/extension to DNS, where the host maintains their own table of mappings from service names to tuples of IP address and port number, but with additional capabilities to control the routing of data. This additional flexibility is usually referenced in the literature as separating the control plane and data plane. The key advantage provided by this is additional flexibility in dynamically modifying the service table compared to DNS. Our discussion of service centric networking is based on the Serval paper here.

· 7 min read

The fundamental isolation technology supporting containers on Linux are Linux namespaces. Namespaces provide isolation of global resources in a way that is transparent to the processes within the namespace. There are currently 7 different namespaces that are supported: Cgroups, IPC, Network, Mount, PID, User, UTS. Today we will be looking at the network namespace.

· 3 min read

At Matrix AI our research into language constructs for formally describing distributed systems has led us to a concept called Linear Temporal Logic. It is a logic system that allows us to express logical statements about time. This article will provide a brief introduction to this logic system.