6 items
-
#1
Discord Rich Presence
As a WSL-based NixOS user, I make life difficult for myself sometimes.
This post details setting up Discord Rich Presence to sync my Neovim activity from WSL to this blog in real-time using
npiperelayandsocat. -
#2
Simple Elixir Optimization
Coming from other languages, especially imperative ones, it’s easy to write suboptimal Elixir code.
This post covers practical optimizations—avoiding
length/1, leveraging streaming, using ETS—without needing complex profiling tools. -
#3
Distributed Erlang
Erlang’s actor model, OTP, and distribution work together beautifully to build fault-tolerant systems—but there are gotchas.
From process mailboxes and supervision trees to clustering challenges, network partitions, and the single mailbox bottleneck.
This post explores the many strengths, and subtle pitfalls, of building distributed systems with Erlang.
-
#4
You have built an Erlang
You wanted a simple service notification system, so you added HTTP callbacks, then queues, then retries, then supervision…
Congratulations! You’ve built an ad-hoc, informally-specified, bug-ridden slow implementation of half of Erlang.
A satirical journey through accidentally reimplementing the actor model as seen on Hacker News.
-
#5
The Case against Pipes
Every Elixir developer pipes everything, then
withs everything, then realizes different problems need different solutions.This post explores said overuse, and talks about my preference for
condand sometimes simplycaseas alternatives instead. -
#6
Ecto Queryable Pattern
Ecto queries are just data! This post goes over how we can abuse that fact to build ergonomic, composable query patterns.
Using behaviors, callbacks, and metaprogramming, we can create a single source of truth for query logic that works everywhere.