Why Dhall advertises the absence of Turing-completeness — Haskell for all

total2Several people have asked why I make a big deal out of the Dhall configuration language being “total” (i.e. not Turing-complete) and this post will summarize the two main reasons:If Dhall is total, that implies that the language got several other things correct“Not Turing-complete” is a signaling mechanism that appeals to Dhall’s target audience“Because of the…Continue reading “Why Dhall advertises the absence of Turing-completeness — Haskell for all”

The Arrow – Advanced kanban board

Originally posted on The Agileist:
Ever since we started to use Kanban I have been thinking about how the ”perfect” kanban board would look like. I have searched for answers in the Kanban literature, but usually the boards shown there are simple examples to get you started, rather than ”evolved” or ”advanced” variants. Shortly after I had…

vertx.io – a lightweight and high performance application platform for the JVM

Recently, I’ve been working on a project that gave me a chance to get back to JVM world and take a nice look into its current state. Having spend a lot more time in .NET world last decade, it was very refreshing to experience it again. Highlights for me are working with Groovy (very niceContinue reading “vertx.io – a lightweight and high performance application platform for the JVM”

Distributed Systems and the End of the API

Originally posted on The Quilt Project:
This is a written (expanded) narrative of the content from a talk I first gave at PhillyETE on April 23rd, 2014. It mostly follows the flow of the presentation given then, but with a level of detail that I hope enhances clarity of the ideas therein. The talk’s original…

Either monad to the rescue…

Lots of programming problems can be modeled by pipe-lining data through series of sequential or parallel processing steps. This data flow allows us to separate computational tasks into meaningful modules and get more focused code base that is easier to debug and reason about. For example, a pipeline with three steps that takes input ‘req’Continue reading “Either monad to the rescue…”