Clojure: Set for a Lazy Life

I’m now reaching Pt. III of “The Joy of Clojure”. The first part is about immutability and lazy evaluation. Recap: Benefits of Immutability Values are set in constructors and don’t change thereafter. Makes it easier to debug and reason about programs. Implementing invariants is easier: invariants only need to be checked at creation time. Equality… Continue reading

Clojure: Scale those scalars

Now for some more details on fundamental data types. The fourth chapter of “The Joy of Clojure” 2nd ed. deals with some scalar data type topics. I’ll cover integer overflow, keywords, symbols, metadata, regular expressions, and others. Overflow and Promotion By default, we get Longs: user> (def regular 23) #’user/regular user> (class regular) java.lang.Long For… Continue reading

This Clojure Firehose

Previously, I’ve been starting my foray into Clojure-land with some pretty basic stuff, an intro to some datastructures. Now I’m going into more interesting territory: functions, namespaces, blocks & scope. Functions make the Lisp go round Functions Anonymous Defining anonymous functions is done with this ‘special form’ ie. builtin primitive: user> (fn [a] (+ a… Continue reading

Mocking Flask

I’ve come to appreciate Flasks’ ease-of-use more and more. For example, when developing clients that connect to some HTTP/RESTful backend there’s always a decision to be made on how to test the client. Some options are: Test against PROD. Avoid, unless you really want to be that guy Prepare a copy of production and test… Continue reading

Puppet & Ruby

So I spent the last week in Amsterdam for training. Amsterdam is a great city, so it’s unfortunate that I didn’t have all that much time for exploration. Luckily I at least managed a small trip to the Rijksmuseum; while most of the museum is close…

Learning Go

That is, Go the programming language, not the board game. I’ve tremendously enjoyed learning Erlang some time back, and I’ve realized that besides the value the Erlang/OTP platform itself provided, learning a new computer programming language has …