Lambda Calculus in Clojure (Part 2)

In Part 1, we built a boolean algebra using Church Encoding. In this post, we are going to reuse some of the previous work to build a similar algebra, this time for numerals. Church numerals In the algebra we built in the previous post, Church...


One Year of Codurance Barcelona

It’s been one year since codurance Barcelona started being a reality. After so many paperwork, negotiations and efforts, all was set and we needed to start building that reality. During this year many things happened, some really good, others not so good, but the average...


Functions

In the previous posts, we took a look at how functions are the core pieces in functional programming languages. We talked about pure functions, referential transparency, side effects and recursion in the previous posts. In this post, we are going to explore some properties of...


Applicative Functors and data validation, part II

In the first part of this series, we went through a basic introduction to Functor and Applicative Functor. In this second part, we will go through an exercise to show how to use them to perform input data validation. Create the types: Address Body Email...


Living a Coderetreat as a facilitator

Last 18th of November, I lived my first experience facilitating a Coderetreat. We celebrated the Global Day of Coderetreat, an annual event in which Coderetreats take place simultaneously around all the world. For those people who never attended a Coderetreat, it's a full day event...


Tetris - Failed Experiment: Next Steps

Intro The theoretical background for this experiment is available here: Tetris AI Experiment 1 & 2 As before, the source code is available on github Since my last experiment, I have implemented crossover - AKA a 2 parent evolutionary algorithm. I have also tried changing...


Shrinking Haskell Docker images using multi-stage builds

I have recently discovered Docker's new multi-stage build feature. This has been a great help in answering my question of how to reduce the size of my haskell images for deploying, as the main haskell image on Docker Hub is over 1GB before you start...


Lambda Calculus in Clojure (Part 1)

Lambda Calculus is the smallest programming language. As we saw on my previous post, the only building blocks available are functions, variables and expressions. There are no built-in primitive values or operations. How can we then solve real-world problems using Lambda Calculus? In this post,...


  • Posted 11 Dec 2017

Newsletter - December 2017

Hi, This month, we look at: The OSWASP Top 10, Software Design Bias, Functional Programming, IDE setup for Rust, and Setting up an AI experiment to play Tetris. Enjoy! The Codurance Team P.S Missed our last newsletter? Catch up here. Our Opinion On ... OWASP...


Introducing Interaction-Driven Design

Before reading this post, I strongly recommend you read the two previous blog posts that serve as a foundation to this blog: MVC, Delivery Mechanism and Domain Model and A Case for Outside-In Development. Most software projects become very difficult to maintain and evolve after...


Codurance Hiring

We're hiring!

We are hiring Java and .NET Craftspeople in London and Barcelona

Enjoying this article?

Sign up to our monthly newsletter to get content like this in your inbox!

Codurance Logo

Software is our passion.

We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.

Latest Blogs




Contact Us

15 Northburgh Street
London EC1V 0JR

Phone: +44 207 4902967

Carrer Aragó, 208
08011, Barcelona

Phone: +34 689 723 737

Email: hello@codurance.com