Home Energy Dashboard with Elixir and Scenic

Patrick Tschorn wrote “As of last month, I am able to poll my solar PV inverter for its current yield and other interesting data, which I would ultimately like to display using a Raspberry Pi plus touch screen. On this home energy dashboard, I would like to be able to cycle through different pages, showing: current solar PV…”

Reading current solar PV output with Elixir

Patrick Tschorn wrote “I have a domestic solar PV installation and I would like to be able to programmatically read the current output, so that I can display it on a dashboard, perhaps together with other information such as a detailed weather forecast for the day and the expected sunset time. The inverter in my installation records a…”

An exploration of local gen_server multi_call in Elixir

Patrick Tschorn wrote “OTP’s gen_server module provides a convenient multi_call method that forwards a given request to all gen_server processes that are locally registered with a given name on a given list of nodes. multi_call subsequently awaits the responses and returns a tuple of successful replies and nodes that failed to respond. I would like a variant of…”

A brief introduction to Ripple Down Rules (RDR)

Patrick Tschorn wrote “Ripple Down Rules (RDR) provide a structure for rule-based classifiers and an incremental construction method. Ripple Down Rules are organized as trees: a case (data to be classified) enters the root node and ripples down a particular path to receive its classification each node comprises a list of rules a rule has a set of…”

Accuracy, Precision and Recall: Multi-class performance metrics for supervised learning—Elixir

Patrick Tschorn wrote “A key aspect of judging whether a classifier is fit for purpose is measuring its predictive performance. Any commercial project that involves machine learning is well advised to establish the minimum predictive performance that a classifier has to achieve in order to be viable. In a similar vein, it is useful to establish a baseline…”

Outline of a trainable, streaming tokenizer for NLP with Elixir

Patrick Tschorn wrote “Virtually all NLP tasks require some form of tokenization, and in many cases the tokenizers provided by popular NLP libraries are adequate. If, however, the input material strays sufficiently from the norm, the available tokenizers may not be satisfactory and it may turn out that it is nearly impossible or far too costly to adapt…”

Reading ARFF files with Elixir

Patrick Tschorn wrote “If you are implementing a machine learning approach, you are likely to want to test it on publicly available datasets. A large number of these datasets use the ARFF file format established by Weka. I am not aware of any Elixir ARFF readers, so I am going to explore writing one (‘Arfficionado‘) in this blog.…”

Building rule-based machine learning systems from scratch

Patrick Tschorn wrote “Sometimes, it is obvious that a project needs machine learning, but you can tell that simply pumping the data through all the algorithms in a popular library (and picking the one algorithm that performs least badly) is not the answer. Machine learning libraries cannot cover all algorithms, trade-offs and heuristics specific to arbitrary problem domains.…”

Three books every software developer should read in 2019

Patrick Tschorn wrote “Ok, that title is tongue-in-cheek clickbait, but here are three books which in my opinion are likely to broaden your horizon by offering surprising perspectives on the most powerful tool that you have at your disposal: your mind (and your body). I have found these books to be filled with interesting observations and pieces of…”

Dockerizing Sybase and connecting to it from Elixir

Patrick Tschorn wrote “On a recent project, we were required to connect our software to a Sybase DB on Linux, which we managed through FreeTDS and ODBC. I will summarize the relevant details in this post. Please be aware that a number of alternative solutions are conceivable. I built Docker images for our software, so that I would…”

Spot Colour Puzzle

Patrick Tschorn wrote “I failed to solve the Spot Colour Puzzle at a recent team-building event. Time to revisit state space search and have some fun with Elixir. The puzzle consists of seven discs, each of which has six coloured spots. One disc is to be placed at the center and the remaining six discs have to be…”

Visitor7 [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], from Wikimedia Commons

Fast Elixir Porter2 Stemmer

Patrick Tschorn wrote “Motivation: understand the Porter2 stemming algorithm and learn some Elixir On a recent project, my mission was to refine and substantially extend a prototype document classification system originally written by somebody else in Python. In order to keep the extended system small and understandable (i.e. maintainable by the original author), I implemented all but one of…”

By Image has "Wilse" lettered on it (part of the largely illegible text at lower left). That would be Anders Beer Wilse. Seattle Municipal Archives (Flickr: Construction of Cedar River Pipeline, 1900) [CC BY 2.0 (https://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons

Setting up drone.io CI

Patrick Tschorn wrote “Drone.io for go I was recently asked to set up a CI server for one of our go projects and decided to try out drone.io 0.8. From my point of view, the two most attractive features of drone.io are that: the build is defined through a single .drone.yml file in the root directory of the…”

A basic recipe for an Elixir SSL server

Patrick Tschorn wrote “In this post, we’ll first try out Erlang’s SSL application interactively and then put together a simple Elixir SSL server OTP application using the Supervisor and GenServer behaviours. Preparation First of all, we’ll create a self-signed certificate: mkdir foo cd foo openssl genrsa -out key.pem 1024 openssl req -new -key key.pem -out request.pem # (using…”