New Blog

My blog setup has bothered me for some time. Now I have finally finished the replacement: a bunch of HTML files, generated from Markdown with a few scripts, served statically from Apache.


Haskell I/O in Five Minutes

The way you do I/O in Haskell may be radically different from what newcomers are used to, but in fact it follows a few simple rules.

Running CadSoft Eagle Version 6 in Ubuntu GNU/Linux

CadSoft recently released version 6 of its PCB layout program Eagle. You want to use it in Ubuntu? Here's how to get it working.


The re- functions

I recently realized that of the core Clojure regex functions (re-pattern, re-matcher, re-matches, re-groups, re-find, re-seq) I was completely unaware of how re-matcher, re-matches, re-groups were supposed to be used. Their names hint that they are useful for something, but I had never needed to use them. To understand them, I first had to dive into the Javadoc a bit, more specifically the java.util.regex package.

Getting Started with Clojure Development I: The REPL

This is the first post of one my ongoing attempt to write a series of blog posts about how to get started with development in Clojure. This post will cover a beginner's first encounter with the Clojure Read Eval Print Loop.

Executors in Clojure

Java has a very useful package called java.util.concurrent, which contains classes and interfaces for tasks, task execution tracking, thread-to-thread communication with blocking queues, locks, semaphores, atomic containers and the Executors Framework. This blog post will walk you through the concepts of the Executors Framework as seen from Clojure.