Curious logging activity

The heartbeat of our logs Logentries draws a neat linechart to visualize your logging activity. This chart is great for seeing if there are any errors appearing after a change, so you see at a glance if it’s worth to check the logs. Looking at one of our services, this chart caught my eye: At first sight this doesn’t say very much apart from...
Click to read more ...

Type variance explained

Reasoning about subtype relations between parameterised types tend to confuse developers. If you are a Java developer you've probably seen the syntax ? extends T and ? super T, or might even used it to create flexible method signatures. I was very confused at first when I tried to use them as their meaning wasn't clear to me. So, I just placed e...
Click to read more ...

Java, the bad parts: Recursive lambdas

Have you ever tried to create a recursive lambda in Java? You might ask why on earth would somebody do that. For you I have a confession to begin with: I've been spoiled. I've been spoiled with the overwhelming expressiveness of functional programming. I've been using Scala and JavaScript for more almost 2 years now, and that leaves a trace. I ...
Click to read more ...

Monoids

Monoids Monoids are algebraic structures that have an identity element and an associative binary operation. So what is a monoid? It’s a … trait Monoid[A] { def mempty: A def mappend(a0: A, a1: A): A } defined trait Monoid … and the associativity and identity rules which cannot be enforced by Scala 😞 Okay, but what can we do with it? ...
Click to read more ...

Your first native audio effect

A na(t)ive compressor plugin Time to dive into deep water. Let's create a native audio effect plugin. This tutorial is suitable for those who already know C++. It takes time and motivation to learn it – it's not a simple language. It's especially hard for those who previously had no programming background because its complex syntax can put off ...
Click to read more ...