Tag: hacking
-
Why LLMs Rock (or: BooLLMean Logic for the Uninitiated)
· 5 min read
A truth table for human-LLM cooperation, why the comment section immediately accused me of supporting both Trump and Putin, and a sarcastic, joyful breakdown of garbage-in vs. wise-out.
-
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
-
Marcli: Markdown Belongs in the Terminal
· 7 min read
A lightweight Rust library that renders CommonMark Markdown as richly styled ANSI terminal output, with syntax highlighting, full theming, and zero runtime overhead you did not ask for
-
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.
-
Myths of Backward Compatibility
· 5 min read
Most fears about backward compatibility are precisely that—myths, nourished by laziness, ignorance, or a banal unwillingness to think the problem through. Just ensure backward compatibility. Leave the choice between SemVer, CalVer and assorted ShitVer to the angels-on-a-pinhead crowd.
-
Bus Factor as Seen by the Bus Driver
· 6 min read
Bus factor comes in two varieties. The first is provoked by saboteurs who write deliberately unreadable code. The second—far more common—arises because only one person on the team is capable of solving the hard problems, and nobody else can be bothered to learn. The cure for the second kind is not better documentation; it is better hiring.
-
The Diagnosis ‘SLOP’ Is the New Ad Hominem
· 5 min read
The accusation ‘this is slop’—applied to any body of information, be it letters, pixels, or notes—is pure, undiluted argumentum ad hominem. Let us stop counting bullet points in other people’s texts and return to judging by quality.
-
How Does Clean Code Work?
· 6 min read
Clean Code doesn't work—not because the principles are wrong, but because the real world is dirty, chaotic, unpredictable, and asynchronous. The best code I’ve ever seen violated a good half of Clean Code’s commandments.
-
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)
-
Wash your dishes
· 5 min read
What to look at when you interview people (spoiler: not their imminent knowledge)
-
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
-
Why Am I Not To IDE
· 5 min read
A rant on why I do not use IDE (and think that IDE hinders the good developers more than helps)
-
Do Not Doughnut Donates
· 4 min read
A rant on why I do not like donate-based reward systems in OSS
-
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
-
Not God but Man Makes Pot and Pan
· 7 min read
No one is born a master: how to learn from masters but not fall under authority bias
-
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
-
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
-
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
-
Better pry for Ruby REPL
· 4 min read
Ruby REPL “pry” is way more powerful than “irb” and might be even better tuned
-
Developer Is The Next Ideological Beggar Job
· 5 min read
We developers tend to whine and claim for better life while we are extremely overpaid for doing neither complicated not important stuff
-
Raise For The Rescue
· 4 min read
When in any incomprehensible situation—raise! Do not let the uncertainty propagate through.
-
SeeAsVee Library For Handy CSV Processing
· 3 min read
The most intelligent library to process CSV files
-
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.
-
Parent Of My Child Is Not Exactly Me
· 2 min read
Ruby anti-pattern: cross references inside the same table must be avoided
-
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
-
Ruby Challenges as QotD
· 1 min read
The selected challenges from our company’s weekly Monday greeting
-
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
-
Iteraptor :: Iterating Nested Terms Like I’m Five
· 4 min read
The tiny library (200 LOC) to iterate/map/filter deeply nested structures in Ruby
-
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
-
Real applications of flip-flop in ruby
· 2 min read
A couple of examples of flip-flop real applications
-
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
-
Workflow as FSM: lost transitions
· 3 min read
building a robust FSM for a workflow
-
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
-
Hack vs Kludge
· 1 min read
what is the difference between an elegant hack and a nasty kludge on a linguistic example
-
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
-
Struct With Hash-like Default Proc
· 1 min read
How to implement default_proc functionality in ruby structs
-
Progress Bar in Console for Rake Tasks
· 2 min read
How to make long-running rake task execution fancy
-
Use Hooks in Riak to Create Views
· 3 min read
Riak hooks are a good tool to simplify creation of views
-
Monkeypatch It!
· 2 min read
In Ruby, we love and hereby use monkeypatching
-
StackOverflow Achievements
· 2 min read
Why we post answers on StackOverflow and why we should keep doing it that way
-
New Hash Syntax for the Rescue
· 1 min read
Why using new hash syntax might significantly improve the code quality
-
Testing migrations
· 1 min read
How to test migrations with rspec, especially the migrations, that heavily change the data
-
Recursion Without Explicit Method
· 1 min read
Ruby way to organize recursion with infinite loop
-
Two ways to write ruby code
· 2 min read
Make you code to be appreciated by the offspring
-
Quotation Marks in XXI Century
· 1 min read
How to escape quotation marks safely, or typography is coming
-
Pry :: breakpoint or ARGF?
· 1 min read
How to make binding.pry work when $stdin is given
-
CASE-WHEN :: another trick for N+1 problem
· 1 min read
N+1 query problem might be solved in elegant way for mid-sized tables
-
YAML Parser Tuning
· 2 min read
An example on how to tune a JSON parser
-
Log With Pleasure
· 3 min read
A couple of tricks to make your logging experience pleasing
-
Don’t be a language slave
· 3 min read
Another matter why PHP is damaging brains
-
Using local sources in Gemfile
· 1 min read
Comfort development of several gems simultaneously
-
Ruby Memory Pitfalls
· 2 min read
Ruby Memory Operation :: Pitfalls
-
Command line application wrappers problem
· 1 min read
Problem with shell script wrappers in non-default I18N environment
-
Debug inplace
· 1 min read
Example of using PRY for inplace debugging in ruby
-
Sequentional execution: example of Reactor pattern impl
· 2 min read
Basic example of Reactor pattern implementation within two threads
-
Collage directory preview with RMagick
· 1 min read
Monkeypatch for RMagick to produce collages
-
Developer Omniboxes for Chrome
· 1 min read
A collection of omnibox search extensions for Google Chrome™, for searching API reference documentation for a number of different languages and libraries.
-
Ruby 2.0 Refinements: Totally Useless Crap
· 1 min read
Are refinements in Ruby 2.0 totally useless?— Yes they are.
-
Ruby Shorthand to Yield Within Blocks
· 1 min read
Example of using shorthand to yield keyword
-
Match or Not Die
· 1 min read
Match string painless without superfluous if-then clauses
-
Delightful Logging
· 1 min read
Facilitation of dealing with Logger
-
Make Hash Element Access Painless
· 1 min read
Provide a common mechanism to access deeply nested hash elements w/o annoying exception handling
-
Ruby Logger :: Temporary Enable Debug for One Class
· 1 min read
How to enable debug for a couple of classes only
-
Shorthands in Ruby Code Blocks
· 1 min read
Syntactic sugar using ampersand notations
-
Multiple Match in Ruby
· 1 min read
Matching all the occurences of a pattern returning MatchData
-
EventMachine :: Nested Calls
· 3 min read
Yield ⇒ Choose one ⇒ Yield