Constraint-based layout for Scenic—a proof of concept

Patrick Tschorn wrote “Scenic is an Elixir UI framework intended for fixed-screen devices. In Scenic, UIs are constructed and updated by modifying a scene graph, i.e. a tree of graphical elements such as shapes, buttons and text fields. Elements are positioned on screen by specifying their x,y coordinates. In this post, I am going to present Jurby, a…”

Cassowary / Kiwi-Solver Elixir Port

Patrick Tschorn wrote “A large variety of 2d diagrams and UI layouts can be described declaratively using x,y-coordinates and spatial relations. These spatial relations, or ‘constraints’, can be expressed as systems of linear in-/equalities, which can be solved automatically by a linear constraint solver. Once the solver has assigned a concrete value to each variable in the system,…”

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…”

munger: Scan-to-cloud for local scanners

Tom Parker-Shemilt wrote “Despite the ongoing good work in many places to move to fully digital options, many organisations remain committed to sending you shards of dead tree through the post (particularly the NHS, though I can understand that given how they’ve been burnt in the past). Keeping track of all this paper is tricky, and particularly hard…”

Hacktoberfest 2019

Tom Parker-Shemilt wrote “It’s October, so once again it’s Hacktoberfest! This is an annual Open Source event, held since 2014 in the month of October. For the first one, it was just Digitalocean saying ‘do 50 commits on public repositories in October and we’ll send you a t-shirt‘. 676 people signed up, and 505 achied the goal. After…”

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…”

Parochial: working around limits on DLNA players

Tom Parker-Shemilt wrote “A little while ago we acquired a internet-connected radio for our kitchen. We intended on using it for a variety of it’s capabilities, and my particular interest was it’s DLNA support. I figured I’d just be able to point it at my music collection and it would all be fine right? laughs  As I’m writing…”

Strife: Using OAuth to make a Discord profile page

Tom Parker-Shemilt wrote “I’ve written an app (Strife) to provide Discord profile pages, but I’m surprised no-one had already done so, so I’m going to show you how I did it. I’ve started using Discord recently, and I was surprised that there was no way to link to a users profile. You can search for profiles inside the…”

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.…”

Vellere: exposing Github vulnerability notifications to Slack

Tom Parker-Shemilt wrote “A few years ago, Github introduced vulnerability alerts on repositories and although it was initially just for Javascript and Ruby, they’ve since expanded it to Python, Java and .Net and I’m guessing more languages are also on their roadmap. It’s a useful feature, except for one problem: it’s notifications are poorly implemented. They appear to…”

On the value of maintenance

Tom Parker-Shemilt wrote “Most of our posts here talk about new software, but there’s also a lot of value in the longer-term maintenance of code and given I’ve done some of that recently, I thought it worth revisiting various earlier projects in that light. None of these are really large enough to have their own post, but collectively…”

Serialising Rust tests

Tom Parker-Shemilt wrote “I’m once again prodding the potboiler tests and a couple of the tests I was doing wanted to mess around with the shared database. This had the problem that multiple tests would collide with each other, as the default for Rust testing is to run everything in parallel. This is unusual, but good in many…”

Making a Spaceteam timer app with Flutter

Tom Parker-Shemilt wrote “Some of you may have run into the excellent Spaceteam mobile game. It’s best described as ‘co-operatively shouting at each other to fix your broken ship’, and it’s a lot of fun. Some fun folks then went and made a card game variant of it, which is similar in many ways. Now, both games have…”

Clincher: checking your signed git commits

Tom Parker-Shemilt wrote “Recently for a project with tight regulatory requirements we decided that git signing throughout the project was a good idea. There’s a debate about it’s level of effectiveness, given that all it tells you is that a particular commit was made from a particular developers machine, and if they’re not careful, they can end up…”

Not all watchers are created equal (or how to make yak shaving useful)

Tom Parker-Shemilt wrote “I’ve been hacking around with a Clojurescript project recently, and it resulted in a certain amount of yak shaving when I found the watcher system I was using was eating a lot of CPU. On the one hand, yak shaving is bad, because you’re doing other things that aren’t the core task you’d originally meant…”

How to be a Rockstar developer!

Tom Parker-Shemilt wrote “You’ve probably followed that clickbait of a title and are hoping for some super-secret tips on how to be a ‘Rockstar developer’, and I’m not going to disappoint on that (technically). But before that, I’m going to note to those of you lucky enough to have not seen that particular variety of recruiter spam that…”