Porting Tailwind to OCaml needed a CSS parser. The parser grew a typed AST, and a structural diff and a minifier fell out of it. Cascade 1.0.0 is that toolkit, and it turns out to be competitive with the minifiers people actually use.
Câble RJ45 : anatomie, normes de câblage Cat5e à Cat8, câble droit vs câble croisé, PoE et câble console expliqués simplement. Guide complet et fiable.
Many dune-based projects have optional dependencies: a library that is only built when a particular system package is present, a set of executables that only make sense when an optional backend is available, etc.. In such situtions, how do you structure the build so that those components are silently skipped during normal development, while still failing loudly when someone explicitly tries to…
Introduction If you are relying on SQLite as your production database, then it makes sense to have some sort of a backup strategy. Those backups would come handy in a multitude of situations. For e…
Almost every programmer has faced the problem of representing a tree together with a subtree that is the focus of attention, where that focus may move left, right, up or down the tree. The Zipper is Huet’s nifty name for a nifty data structure which fulfills this need. I wish I had known of it when I faced this task, because the solution I came up with was not quite so efficient or elegant as the…
I'll never forget one of my first red team engagements where I learned this lesson the hard way. I'd spent two days carefully phishing my way into a financia...
What is this? There have been some recent concerns about ML-KEM, NIST’s standard for encryption with Post-Quantum Cryptography, related standards of the IETF, and lots of conspiracy theories …
Raft is a consensus algorithm for managing a replicated log. It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos, but its tructure is different from Paxos; this makes Raft more understandable than Paxos and also provides a better foundation for building practical systems. In order to enhance understandability, Raft separates the key elements of consensus, such as…
After Gandi was bought up and started taking extortion level prices for their domains I’ve been looking for an excuse to migrate registrar. Last week I decided to bite the bullet and move to Porkbun as I have another domain renewal coming up. However after setting up an account and paying for the transfer for 4 domains, I realized their DNS services are provided by Cloudflare! I personally do not…
We recently replaced all spinlocks, OS-provided mutexes, and condition variables in WebKit with the new WTF::Lock and WTF::Condition — these new primitives have some cool properties.
Metaprogramming is a technique in which programs modify themselves at compile or run time. This can be achieved in various ways, for example through reflection (C#, Java, Ruby, Smalltalk), templates (C++, D, Template Haskell), or macros (Lisp, Elixir). The OCaml language offers a distinct approach to compile-time code generation in the form of extension points and AST rewriters, which we’ll…
The Binary Application Record Encoding (BARE) is a data format used to represent application records for storage or transmission between programs. BARE messages are concise and have a well-defined schema, and implementations may be simple and broadly compatible. A schema language is also provided to express message schemas out-of-band.
At Rivet, we're building an open-source alternative to Cloudflare Durable Objects — a tool for running stateful compute workloads. VBARE is a small but crucial component in meeting the demanding performance requirements of Rivet Actors.
Permissions drift is real: scattered checks, forgotten filters, and data leaks. PostgreSQL’s Row Level Security (RLS) flips the script: pushing verification into the database for stronger safety, but with trade-offs in debugging and performance.
The ELF object file format is adopted by many UNIX-like operating systems. While I've previously delved into the control structures of ELF and its predecessors, tracing the histori
This document describes the ELF (Executable and Linking Format) object file format. This is the official repository for the ELF Object File Format specification, part of the SVR4 gABI.
This document describes the ELF (Executable and Linking Format) object file format. Chapter 1 presents an overview of the file format and its data representation. Chapters 2–6 describe the file header and the structures that pertain to building programs. Chapters 7 and 8 describe additional structures that are necessary to execute a program.
Below are step-by-step tutorials to help you install and use handy privacy and security tools. Surveillance Self-Defense encourages you to think about online privacy and security in a sophisticated way. We want to give you the power to choose tools and habits that work for you. So, we recommend creating...
A Direct Comparison between Precise Reference Counting and Generational Garbage Collection. Presented at the Higher-order, Typed, Inferred, Strict: ML Family Workshop 2023. Sep 8, 2023. ELTON PINTO, Georgia Institute of Technology, USA DAAN LEIJEN, Microsoft Research, USA The Perceus algorithm [Reinking, Xie et al. 2021] is a precise and garbage-free reference counting scheme which shows good…
When a datacenter fire threatened 142 of my servers, my backup strategy had them back online in hours. This post shares my personal philosophy on creating a resilient system, focusing on the crucial planning that must happen before you write a single script.