Recently (9 Feb 2019)

In no particular order.

Don’t Let the Internet Dupe You, Event Sourcing is Hard

I’m grateful that I never had a chance to actually implement event sourcing in a non-trivial setting. I was a bit infatuated with the idea for a while, but I’ve come to realize that there are more tradeoffs and complications than might be obvious at first glance. Still a cool technique for the right problem, but not a holy grail.

Dear Podcasters…

Podcasting is still a space where sticking to open standards and interoperable implementations is the norm. It would be a profound shame for a powerful aggregator to gain and abuse too much power.

The Bike Shed 185: The Transactional Fallacy (Avdi Grimm)

Includes a nice, non-inflammatory discussion about what “Object Oriented” actually means and why it is important to think about the flow of data and execution when building software.

Sensible Software Engineering

The way most contemporary software is built is structured around local optimums/maximums like Agile and TDD… Agile sacrifices long term vision for short term gains and TDD optimizes for writing more code to achieve correctness.

We Need Open Hosting Platforms

I’m going to point out a depressing fact: open source products aren’t successful… if maintaining open source is difficult and unsustainable, hosting that software is even worse.

No one cares how open and wonderful our software is if they can’t use it.

How to blog

Reminded me of the power of a “recently” post habit. It’s nice to be more purposeful about recording things that I’ve found interesting or useful over time.


Why aren't my Rust threads running?

I got a bit tangled up while experimenting with threads and channels in Rust. The compiler prevented any undefined behavior or memory corruption, but it can only do so much. My problems came from a shaky understanding of the language’s fundamentals and the inherent complexity of parallel programming. Or, in my case, attempted parallel programming.

Keep reading ›


Elm range syntax

Update: Elm’s list range syntax has been removed as of version 0.18. The replacement is List.range 1 2, which is if nothing else more searchable.

I recently stumbled around for more than a few moments searching for a canonical way to generate a range of numbers in Elm. I finally found a working example by searching for “haskell range syntax”.

> [1..2]
[1,2] : List number

Elm doesn’t appear to support the more advanced variants such as [1,3..20], but this definitely covers 95% of my use cases.

This is actually documented under the Lists section of the syntax docs, but there aren’t any useful words for a search to match on. Hopefully this post will save a few minutes for a few people.