When people tell computers what to do.

Committing to Git with style

The code in this post has the following dependencies: python: 2.7 Git is a surprisingly powerful tool to manage code. It is very useful even if used by one developer alone, but it really comes to life in larger teams, but it's not all safe sailing. Often managing a large codebase or more than one person working on the same codebase at the same time can be problematic. Aside from decision on how…

Things I wish I knew before starting the last one page app, a back-end developer confession.

Lately I have been involved in the development of a few web applications that were split in a back-end REST API and a front-end one page web application written in Javascript. When I started my first split web application I was merely acquainted with Javascript and even less so with the tool chain and the web framework (angular) itself, but full of enthusiasm. Later in the process I would find out…

One Tag to rule them all, One Tag to find them, One Tag to bring them all, and in the page bind them

please note that this post uses these versions of the following libraries: angular: 1.4.8 requirejs: 2.1.20 jquery: 2.1.4 For a full stub project go to my Github repository. One of the problems experienced in developing a large one-page front end application is dependency management which if not dealt with properly means big headaches when it's time to get the application ready for production.…

Property based testing in Haskell with QuickCheck

Automated testing is (hopefully) becoming a normal part of the development workflow, ideally tests should be thought and written even before the actual code as an aid for specifying the problem that has to be solved. But this is not all, as the code base grows, all the tests accumulated in the process will help detecting changes that break backwards compatibility. The agile community is especially…

Haskell optimisations for large datasets

Python and Haskell might seem like worlds apart. One is object-oriented, the other purely functional, one is dynamic the other static, one is interpreted the other compiled. Yet I find the two languages to have a similar feel: they both have a clan syntax, prefer a declarative approach to programming and provide high-level constructs. In this post we're going to try both languages in a mapreduce-…