Sign in

I’m job hunting and today I had the pleasure of talking to Cable. They want to tackle financial crime and improve our currently abysmal efforts to reduce financial crime (currently only a tiny percentage of financial crime is caught).

In preperation I watched this talk by Natasha the founder, which…


Photo by Edu Lauton on Unsplash

I wanted to show the way I’ve been thinking about structuring umbrella apps in Elixir applications. I’ve been using this approach for a while and have found it useful. …


Photo by Shaojie on Unsplash

What exactly is immutability? What are the implications of immutable data types in our languages?

What is it?

Immutability is a constraint on our data types that says “this data type cannot be modified”. On the surface this sounds like very counter intuitive thing to want. How on earth can we do anything if we can’t change any data?!

Well, we do it by making a copy. Here…


Pictured: disappointment. Photo by Sarah Kilian on Unsplash

Let me tell you about the time I accidentally deleted the users table. Why? Well people make mistakes all the time andI think it’s important to be open about them so they get fixed quickly. I think it’s important to normalize talking about mistakes because they are a part of…


Photo by Tomas Sobek on Unsplash

Protocols are a very powerful feature of Elixir. I’ve introduced them before here, and I looked at how you might use them to solve the expression problem here.

Today I want extend an idea I touched on in that last article and explain it better. It doesn’t matter if you…


Creating a has_one_of association in Ecto with EctoMorph

Photo by Jason Leung on Unsplash

So what do I mean by has_one_of? Well sometimes when modelling data we want to say something like “this thing can be one of these types of things”. That is to say, our thing can be one of a group of possibilities, and can only be one of those at…


Photo by Brooke Lark on Unsplash

In our previous post we took a little look at the differences between some common changeset functions in Ecto. Here I want to look a little bit more deeply into the cast functions cast_embed and cast_assoc. I want to show you how it is implemented (conceptually at least) and then…


Currying. Another in a long list of words that anyone outside of programming hears and just assumes you are making up. Currying is a way to partially apply a function. What the hell does that mean? …


knowledge DOES grow on trees

This is part 2 of a three part series. Part one here, Part three coming soon.

Let’s start with a definition. When I say coaching, I mean the efficient transfer of knowledge from someone with more of it, to someone with less of it. …

Adz

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store