Fun with Blocks

We’ve already seen that Smalltalk has a very lightweight syntaxes for closures: [:x | x] for the identity function, for instance. We’ve seen them form an essential part of Smalltalk’s structure, allowing us to have all control structures part of the library rather than baked into the language. For what else might we use them?

Secure communication in the Cloud

The internet does reliability end to end. That is, when a node A sends a message to node B, the message travels through many other nodes. These intervening nodes make a best effort at delivery, but if they don’t succeed, they just forget about it. B must confirm receipt, and A must try again if…

Continuous Integration for Haskell: Cabal TeamCity plugin!

I’m happy to announce that my _Haskell Cabal TeamCity plugin_ is [available for download][Cabal TeamCity plugin]. With this plugin you can practise continuous integration (CI) with your [Cabalised Haskell projects][Cabal] using a CI server called [TeamCity][]. In case you haven’t heard of TeamCity, it’s a really neat piece of kit. Internally we use TeamCity quite…

Visualising your web browsing history

I’ve been doing a bit more data visualisation work, with a focus this time on my web browsing. If you’re using Firefox or Chrome (not Opera, as they don’t provide this data), then it turns out that your local history also contains referrer data i.e. you have a history record of not just where you’ve…