Tag: elixir
-
Anti-Antipatterns in Elixir Library Guidelines
· 7 min read
Deconstructing the dogmatic anti-patterns section of the official Elixir library guidelines and demonstrating when every single one of them is actually needed.
-
Exploring Programming Languages
· 2 min read
True story of the developer exploring different programming languages
-
Your Orchestrator Is a Finite Automaton in Denial
· 14 min read
On the lonely `status` column that quietly metastasised into a state machine, the boolean flags breeding in its shadow, and why a real finite automaton is not academic finery but the cheapest insurance you will ever decline to buy
-
Make Friends With Your AI Assistant
· 5 min read
Several rules from my experience which would make your cooperation with AI assistants a charm
-
Mocks Are Your Friends, Not Your Servants
· 6 min read
On treating mocks as protagonists of the testing narrative rather than disposable stand-ins hired to nod along
-
Head of the Agents and Assistants Department
· 7 min read
A first-hand account of building the Cure programming language with AI agents as co-developers—what worked, what crashed spectacularly, and the distilled rules that emerged from the wreckage.
-
Cure, Four Releases Deep: From FSMs to Furniture
· 19 min read
A walk through Cure v0.16.0 through v0.19.1. A Finitomata-inspired FSM rewrite, the dependent-types core finally behaving like it promised, a pattern engine that actually matches, and a stack of ergonomics that should have been there six versions ago.
elixir cure programming compiler type-system fsm dependent-types hacking
-
The Long Road to Cure
· 3 min read
Just under a year ago I started building a BEAM language with dependent types and first-class FSMs—chose the wrong implementation language, wrote spaghetti, had an LLM tell me it was garbage, shipped something embarrassing, then spent months rethinking. Here is what I learned and where Cure stands today.
-
A Score for an Invisible Orchestra
· 9 min read
Every programming language stores its AST in its own idiosyncratic format. Writing a code-analysis tool means rewriting it from scratch for each new language. MetaAST—a meta-model sitting one level above any concrete AST—solves this by providing a single universal representation. One analyser, all languages, linear instead of quadratic growth. This is the score that every instrument in the orchestra can read.
-
How Many Paradigms Does It Take to Screw In a Lightbulb?
· 12 min read
If a developer claims the badge of mid-level-plus but doesn’t feel at ease in at least the five principal paradigms—they are a pompous fool, and you should show them the door.
-
Software Development in 2026
· 9 min read
Three years after the four key developer skills, a modest update: five stages of LLM grief, why the models are glorified T9, why context matters more than the model, and the surprising effectiveness of saying ‘please.’
-
Tests as First-Class Citizens
· 5 min read
A brief description of how I made testing a charm with stream data generators supplied with my estructura library
-
DIY Message Broker
· 6 min read
The history and purpose of Antenna library, providing all the features usually achieved by adding an extra message broker dependency.
-
Long-lived Process and State Recovery After Crashes
· 6 min read
-
Make your library test-friendly
· 8 min read
Finitomata ships with a testing framework
-
Finitomata FTW
· 3 min read
Why would one use Finite Automata for almost anything having state
-
Horizontal Scaling
· 5 min read
Part four of 'four key developer skills': what horizontal scaling actually means (and why Shopify is not an example of it), why FSMs are non-negotiable, and why 201 is good while 200 is dreadful.
elixir erlang programming architecture distributed-systems hacking
-
YAGNIN, but YAGNIL
· 5 min read
Part three of ‘four key developer skills’: why YAGNI is the laziness excuse of the decade, what the correct formulation actually is, and how dependency injection lets you be ready for tomorrow without writing a single superfluous line today.
-
Divide et Impera
· 3 min read
Part two of ‘four key developer skills’: how to break a system into isolated parts, why SRP is the only principle in SOLID worth knowing, and why anyone who says code can’t be tested in isolation should be shown the door.
-
No Failures Despite Bugs
· 6 min read
Part one of ‘four key developer skills’: how to guarantee fault tolerance even when your code has bugs—and why tests and types are a plastic bag on your head.
-
Software Development in 2023
· 5 min read
Four skills that actually matter in 2023, or: a blanket glorification of Elixir masquerading as a balanced opinion piece.
-
Finitomata ❤ Mox
· 3 min read
Synchronization points: the proper way to test FSM in details of how to control data flow (opinionated approach)
-
Finitomata Marries Ecto
· 4 min read
The proper way to use FSM to control data consistency (opinionated approach)
-
FSM Driven Development
· 3 min read
A new library to manage statefull processes as Finite Automatæ and the impudent proposal for the HTTP verbs extentions
-
Md. Another Word About Markdown
· 6 min read
A humanitarian story about how I decided to write my own markdown parser with a customizable grammar and how it went
-
URL Shortener
· 5 min read
How Would You Design a URL Shortener Service Like TinyURL?
-
Shining Access
· 4 min read
Access is the most underrated feature of Elixir
-
Parser for Markdown Family
· 2 min read
What’s wrong with markdown and how can we improve it
-
Finitomata :: First Class Documentation
· 1 min read
The FSM implementation that exposes proper documentation
-
Finitomata :: The Proper FSM for Elixir
· 5 min read
The FSM implementation that’s worth it to give a try
-
Plugins in Elixir Applications
· 3 min read
How to make your application to easily support plugins
-
Help To Test Your Library
· 3 min read
How to make your library a charm to test with a minimal effort
-
Yet Another Markup Parser
· 4 min read
Elixir library for customizable blazingly fast markup parsing with callbacks
-
Finite Automata with Tarearbol
· 3 min read
DynamicManager provided by Tarearbol is extremely handy for FSM implementation
-
Handling Async Responses with Tarearbol
· 2 min read
DynamicManager provided by Tarearbol is extremely handy for handling asynchronous responses from external services
-
Dynamic Nested Function Call
· 4 min read
Macro to the rescue: how to build the nested function call dynamically with a bit of metaprogramming
-
Conditional context for macros
· 3 min read
The trick allowing to implement the extended functionality of macros depending on the context they were called from
-
Conditional guard for structs of an explicit type
· 2 min read
The trick allowing to declare the guard that gracefully falls back on earlier versions of Elixir/OTP
-
Will No One Rid Me Of This Turbulent GUI
· 5 min read
The biased set of reasons why I think IDE does not bring any good at all to the development process
-
Reserved Backward Compatibility
· 5 min read
One small step towards backward compatibility, one giant leap for mankind
-
O tempora, o mores!
· 3 min read
Tempus is a library to deal with time slots, like doctor appointments and/or room reservations
-
Wolf, Goat, Cabbage… and Elixir
· 4 min read
Use asynchronous traversal of a branched state graph to find a solution of a Lewis Carroll’s favorite puzzle
-
Generated Types II — Down the Rabbit Hole
· 5 min read
Use metaprogramming to deal with erlang typespec at runtime
-
Generated Types
· 6 min read
Use metaprogramming to generate nifty types for generated structures
-
Vela → Time Series Cache
· 4 min read
The library providing easy maintaining of the self-expiring cache for several time series
-
Telemetría
· 4 min read
The handy helper to work with :telemetria library without an enormous boilerplate needed
-
Reverse Engineering for Poor
· 2 min read
Quick, nasty, and dirty hack to quickly grasp how the foreign code works
-
Cloister
· 4 min read
The handy helper to work with distributed Erlang in dockerized environment
-
WordCount in Elixir
· 12 min read
Prove of that Elixir/Erlang can be not a mile behind C/Haskell
-
Strong Types Should Have Been Named Strong Hypes
· 5 min read
Arguably more robust way to write the good code compared to Strong Typing hype
-
Dialyzer specs: 2 in 1
· 4 min read
Arguably more elegane way to save keystrokes when providing specs
-
Formulæ and Lazy Combinators
· 5 min read
Formulæ library introduction and tutorial on building lazy combinators
-
Beware of Tests et Fudicia Ferentes
· 5 min read
Post-mortem of one internal discussion on whether or not everything must be covered with tests
-
Standing on the Shoulders of Giants
· 1 min read
How I implicitly helped Joe Armstrong a while ago
-
Scaffolds Backed Up By Behaviours
· 3 min read
Minimizing the boilerplate across your in-house library / applications is easy
-
Use Github CI for Elixir Projects
· 3 min read
Quick and dirty howto on setting Github CI for Elixir projects
-
GenServer At The Therapist's Appointment
· 1 min read
Imagine what could happen if a standalone GenServer came to the therapist's appointment
-
Stop Abusing Nihil
· 5 min read
nil / null is a perfectly valid useful first class citizen in many languages, and here is why
-
Pattern Matching Empty MapSets
· 1 min read
Long story short: Elixir MapSets are cool and shall be used widely. Empty MapSets can be pattern-matched easily.
-
Elixir Structs on Steroids
· 3 min read
Tiny library adding validation support, reasonable Access and Collectable implementations and more to Elixir Structs
-
Gospel of Barabbas or Concurrent Execution
· 5 min read
The beginner-friendly explanation of what concurrency is and why it ever matters
-
Iteraptor → Unforeseen utilization
· 3 min read
Using Iteraptor in test environment to test deeply nested maps/lists passed as JSON
-
Idempotent Supervision Tree
· 3 min read
The main advice on how to keep a supervision tree immune to members crashes
-
Plug in JSON API Readonly Webserver
· 2 min read
How to expose some read-only data from the already existing Elixir application with zero code
-
Elixir Compilation Hooks
· 3 min read
How to make custom macro `use` calls safer by checking the conditions met
-
Go Outta Here
· 6 min read
The step-by-step explanation of why Go language is not good at all
-
Sigils To The Rescue
· 2 min read
Exvalibur does now allow custom guards and pattern matching of values
-
Iteraptable → Swiss Knife For Structs
· 4 min read
Simple way to make the struct all Enumerable, Collectable and Accessable
-
¡AST FTW!
· 4 min read
Why Abstract Syntax Tree is a core feature of any modern language
-
Smart Validation In Elixir With Exvalibur
· 4 min read
Use generated module with pattern matching clauses and guards to validate any input given as a map
-
ActiveRecord Smell With Elixir/Ecto
· 7 min read
Quick how-to on bringing some ActiveRecord goodness into Elixir/Ecto
-
Generated Module As A Guard
· 4 min read
Better and faster way to implement validation of incoming data than just looking it up in the global config map
-
Raise For The Rescue
· 4 min read
When in any incomprehensible situation—raise! Do not let the uncertainty propagate through.
-
Ruby metaprogramming for beginners → Elixir-like specs
· 6 min read
Hacky implementation of Elixir-like specs in pure ruby with examples
-
Protocols in Ruby → Allow Implicit Inheritance
· 2 min read
Dry-behaviour ruby library implementing Elixir protocols for Ruby going towards 1.0 release
-
Adopting Property Testing in Elixir
· 4 min read
Property testing gives way more assurance in many cases than other testing techniques
-
Hype Demythified or Pizza With Pineapple Topping
· 6 min read
Don’t blindly follow the paradigms. Here is why.
-
Tarearbol now allows subscriptions to task results
· 2 min read
Tarearbol gracefully uses Envío’s functionality to subscribe to task execution results
-
Envío as a reincarnation of GenEvent²
· 3 min read
Publishing and subscribing to events with ease
-
These Weird Accents
· 4 min read
The detailed how-to on dealing with strings having accents nowadays
-
To IF Or Not To IF—That’s The Conditional Statement
· 7 min read
Why do I consider using if operator to be a code smell
-
Elixir Iteraptor :: Iterating Nested Terms Like I’m Five
· 6 min read
The tiny elixir library to iterate/map/filter deeply nested structures in Elixir
-
Elixir Pipeline Operators
· 3 min read
What operators can be used in Elixir for pipelining and how
-
Pattern matching on dynamic struct types
· 1 min read
A less known patter matching feature in Elixir
-
Why immutability rules
· 2 min read
A list of some less evident advantages of immutability
-
Pattern matching on binaries takes over Regex
· 3 min read
Cumbersome pattern matching might be way better than parsing strings with regexps
-
Automate pattern matching for structs
· 5 min read
How to bulk pattern match structs in function clauses in Elixir
-
Pattern matcher for Protocols
· 3 min read
How to pattern match a protocol in Elixir
-
.iex.exs to the rescue
· 3 min read
How to tune up your project environment in Elixir
-
Idiomatic function memoization in Elixir
· 3 min read
How to memoize the function in Elixir
-
Unveil Erlang Code of Your Elixir Project
· 2 min read
How to see what erlang code was compiled to run your Elixir project
-
StringNaming to call UTF8 by name
· 7 min read
compile-time generated set of modules to ease an access to a predefined subset of UTF8 symbols
-
Define module in Elixir with initial binding
· 8 min read
tiny library that provides the same binding mechanism as quote bind_quoted: [] does
-
Use `credo` Linter in Git `pre-commit` Hook
· 4 min read
copy-paste solution to start using credo linter in git pre-commit hook
-
`is_empty` Guard for Binaries in Elixir
· 1 min read
nifty trick that provides the same functionality as [not existing] is_empty guard
-
Either Monad in Elixir
· 2 min read
that is not widely known, but an Either monad is already presented in Elixir
-
Iterating Tuples in Elixir
· 3 min read
handy way of making tuples enumerable
-
Open Graph Protocol …and Her Friends
· 2 min read
the how-to on making links to your site beautifully expanded in facebook, twitter and family
-
Dry Behaviour aka Protocol Pattern in Ruby
· 6 min read
Tiny library inspired by Elixir protocol pattern
-
Use Hooks in Riak to Create Views
· 3 min read
Riak hooks are a good tool to simplify creation of views