2025-03-10
The power of interning: making a time series database 2000x smaller in Rust | Blog | Guillaume Endignoux
gendignoux.com/blog/2025/03/03/rust-interning-2000x.htmlIn this deep dive post, I’ll explain how I used the interning design pattern in Rust to compress this data set by a factor of two thousand! We’ll investigate how to best structure the interner itself, how to tune our data schema to work well with it, and likewise how serialization can best leverage interning.
2025-01-22
Packer: How to Build NixOS 24 Snapshot on Hetzner Cloud - Developer Friendly Blog
developer-friendly.blog/blog/2025/01/20/packer-how-to-build-nixos-24-snapshot-on-hetzner-cloudStep-by-step guide to building a NixOS 24 snapshot on Hetzner Cloud using Packer, with complete configuration files and OpenTofu deployment examples.
Building a tiny Linux from scratch
blinry.org/tiny-linuxLast week, I built a tiny Linux system from scratch, and booted it on my laptop!
2024-12-05
Optimization adventures: making a parallel Rust workload 10x faster with (or without) Rayon | Blog | Guillaume Endignoux
gendignoux.com/blog/2024/11/18/rust-rayon-optimized.htmlIn a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores.
In this post, I’ll first explain which profiling tools I used to chase optimizations, before diving into how I built a faster replacement of Rayon for my use case. In the next post, I’ll describe the other optimizations that made my code much faster. Spoiler alert: copying some data sped up my code!
2024-11-27
April King — Handling Cookies is a Minefield
grayduck.mn/2024/11/21/handling-cookies-is-a-minefieldDiscrepancies in how browsers and libraries handle HTTP cookies, and the problems caused by such things.
2024-11-22
Protecting Signal Keys on Desktop
cryptographycaffe.sandboxaq.com/posts/protecting-signal-desktop-keysThis blogpost describes our investigation and proof of concept to enhance the security of Signal Messenger key management on desktop.
2024-11-07
Model Predictive Control in the browser with WebAssembly | garethx
garethx.com/posts/cart-pole-mpcCommentary on software, robotics, and computer vision.
2024-10-18
Optimizing Mandelbrot Generation with SIMD
bumbershootsoft.wordpress.com/2024/01/27/optimizing-mandelbrot-generation-with-simd2024-09-25
Web Browser Engineering
browser.engineeringWeb browsers are ubiquitous, but how do they work? This book explains, building a basic but complete web browser, from networking to JavaScript, in a couple thousand lines of Python.
2024-09-19
How to Build a Small Solar Power System
solar.lowtechmagazine.com/2023/12/how-to-build-a-small-solar-power-systemThis guide explains everything you need to know to build stand-alone photovoltaic systems that can power almost anything you want.
2024-09-12
Computational Journalism | At the Tow Center for Digital Journalism
compjournalism.comThe course is a hands-on, research-level introduction to the areas of computer science that have a direct relevance to journalism, and the broader project of producing an informed and engaged public $100 installment loan. We study two big ideas: the application of computation to produce journalism (such as data science for investigative reporting), and journalism about areas that involve computation (such as the analysis of credit scoring algorithms.)
2024-09-10
What is the best pointer tagging method?
coredumped.dev/2024/09/09/what-is-the-best-pointer-tagging-methodIn this post, we are going to take a deep dive into pointer tagging, where metadata is encoded into a word-sized pointer. Doing so allows us to keep a compact representation that can be passed around in machine registers. This is very common in implementing dynamic programming languages, but can really be used anywhere that additional runtime information is needed about a pointer. We will look at a handful of different ways these pointers can be encoded and see how the compiler can optimize them for different hardware.
2024-09-07
Elixir Dev Environment With Nix Flakes
www.mathiaspolligkeit.com/elixir-dev-environment-with-nix-flakesIn a previous article, I described how to set use Nix and Niv to configure an Elixir dev environment. This setup can be simplified by using Nix flakes instead of Niv.
2024-09-04
the spatula
www.thespatula.io/rust/rust_io_uring_echo_serverIn this article we build off what we’ve already learned about io_uring and extend that to build an async echo server.
2024-09-02
Timeseries Indexing at Scale - Artem Krylysov
artem.krylysov.com/blog/2024/06/28/timeseries-indexing-at-scale2024-08-19
JTAG Hacking with a Raspberry Pi - Introducing the PiFex
voidstarsec.com/blog/jtag-pifexJTAG for Reverse Engineers
2024-07-31
Compiler Options Hardening Guide for C and C++
best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.htmlThe Best Practices for OSS Developers working group is dedicated to raising awareness and education of secure code best practices for open source developers.
2024-07-28
Windows Security best practices for integrating and managing security tools | Microsoft Security Blog
www.microsoft.com/en-us/security/blog/2024/07/27/windows-security-best-practices-for-integrating-and-managing-security-toolsWe examine the recent CrowdStrike outage and provide a technical overview of the root cause.
2024-07-07
Optimizing Large-Scale OpenStreetMap Data with SQLite
jtarchie.com/posts/2024-07-02-optimizing-large-scale-openstreetmap-data-with-sqlite2024-06-20
Even JSONB in Postgres needs schemas
nexteam.co.uk/posette_even_jsonb_in_postgres_needs_schemas.pdfTalk from POSETTE conference