J3RN's Blog

Truly Declarative: Logic Programming

I solve a simple math problem with three languages representing three paradigms which I see placed along the sliding scale of "declarativeness".

Elixir Behaviours vs Protocols

As developers begin learning Elixir, they often have a very understandable confusion around the difference between Elixir's behaviours and protocols. These are similar constructs, but with important differences.

Exciting Changes Coming in Elixir 1.12

I'm dedicating this post to trawling through the full Elixir 1.12 changelog and shining a spotlight on a few of my favorite changes.

The Agile Myth

Who actually follows the Agile Manifesto? Is it even reasonable to expect that anyone would?

The Harmful Duality of Elixir's nil

In Elixir, nil can mean "what was sought was not found" and also "this is intentionally blank". This disparity in the intentionality of nil makes life difficult for Elixir developers.

Escaping from Ruby Blocks

If you need to bail out of a Ruby block before the end, how is that accomplished?

To Monkey Patch Ruby

Monkey-patching is a controversial topic in Ruby and other languages. So, should I use it or not?

Rage Against the Unintelligent Machine

"Classical AI" (fancy single-purpose algorithms) is still being taught in university AI courses. In this post I argue that computer science, as a field, should focus more on general AI and neuromorphic computing, while also noting ambiguity of the word "intelligence."

Interpolating Ruby Strings

Sometimes I want string templates that I can pass around. In this post, I discuss how this can be accomplished in Ruby.