Write a predicate once and run it against SQL, MongoDB, Elasticsearch, or any backend. An introduction to criteria4s and its practical take on the Expression Problem.
Write a predicate once and run it against SQL, MongoDB, Elasticsearch, or any backend. An introduction to criteria4s and its practical take on the Expression Problem.
Why do modern query engines pass around columns instead of rows? Because the hardware loves it. This post explains why columnar layout is so fast, how Apache Arrow represents it in memory, and how to build and manipulate Arrow arrays in Rust without treating the whole thing like black magic.
You write a SQL query, hit enter, and a few milliseconds later results appear. In between, a small compiler has already parsed your text, built a plan, optimized it, and executed it. This post walks through that pipeline with a real query and real Rust code using DataFusion.
Model, Update, View. Three pieces, one loop, zero surprises. We explain The Elm Architecture from scratch with side-by-side examples in Rust and Scala, trace where the pattern came from, why it keeps showing up in TUIs and functional codebases, and when it stops being the right tool.
Every well-typed program is a proof. Every type is a proposition. This is not a metaphor; it is a mathematical theorem discovered in the 1930s that explains why making invalid states unrepresentable actually works.
Null references, UI loading spinners that show errors and data simultaneously, payments that are captured and voided at the same time. These are not hypotheticals. They are the direct consequence of types that lie about the domain.
Types are called algebraic because they obey arithmetic. Product types multiply, sum types add. Understanding this arithmetic explains why an enum with 5 variants is infinitely more precise than 4 boolean flags.