Currently browsing

Clojure

Monads for Software Engineers

The term monad could sound weird to a software engineer because it comes from category theory. There’s plenty of related maths material around but let’s just forget about it and about the choice of that word (BTW am I the only one being triggered Leibniz memories from high-school philosophy classes?): I’m interested in a software engineering perspective on the topic and, since I couldn’t find an introductory one that was clear enough for me, I decided to take a dive in and build my own. What is a monad? Very, very shortly: a data structure implements a monad interface iff it defines some “lifted-up” functions sequencing operator (think of a functional “;“-like sequencing). So a monad itself is basically …

Blazar: another pill to relieve Asyncmania

I’ve been ranting already about today’s non-thread-blocking needs (here: Efficient I/O: working smart with slow byte movers) and the fact that some of the most prominent runtimes (e.g. JVM…) lack support for fibers, causing everyone to shelter in asynchronous programming models instead of looking for ways to complement the runtime. Actually Ron Pressler has been writing about this issue quite extensively in Parallel Universe’s blog , for example a very fine post is Little’s Law, Scalability and Fault Tolerance: The OS is your bottleneck (and what you can do about it) but I warmly recommend reading everything in there as there’s a lot of insight and great architectural and even day-to-day suggestions are provided. Let me call this syndrome …

Efficient I/O: working smart with slow byte movers

These days I feel deeply puzzled with (not to say troubled by) a few aspects of our contemporary software architecture & development machinery. There’s a lot of gossiping going on about efficient runtime & programming models in the context of contemporary operating systems’ support for so-called “non-blocking I/O” (read: vert.x, node.js, netty & the like), which basically means “tell what you’re interested in and where, then I’ll call you back so you don’t have to stand up waiting for a slow guy like I am”. Actually, some smart people got the topic right in a clever way long time before this trend started to get hot: they are the Erlang guys. …

Wordpress

How to Paint Dreamtime Circles: a Journey in Web Technologies

Once upon a time, there was a guy that loved writing. He loved anything related to writing: languages, alphabets, typefaces and he loved poetry as much as stories and scientific papers. He was into computers for a living and he was spending most of his day writing as well. So one day he told himself: “I love writing, so why not sharing my passion with others? I could create something and give it to people in addition to rely and enjoy other’s work”. He loved trees and he was into computers as we said, so the most natural, cheap, and paper-free way for him to start writing was obvious: creating …