My Blog
Logs and tracing in Rust: From Terminal to Grafana
How to ship structured logs from a Rust application to Grafana Loki and query them, with a complete local setup using Docker Compose.
Logs and tracing in Rust: Structured Fields and Spans
How to use structured fields and spans in the Rust tracing crate to add context to your logs and understand the flow of execution in your code.
Logs and tracing in Rust: Fundamentals
An introduction to logging and tracing in Rust, covering some of the philosophy behind logging and how to set up a basic tracing subscriber in your Rust projects.
Why Synthetic Data is Good for Open Science
Understanding the benefits of synthetic data for open science and reproducibility.
Is your Synthetic Data actually private?
A practical guide to the three privacy risks in synthetic data, the metrics that quantify them, and why no single number tells you whether your data is safe.
Applying the Open-Closed Principle to Research Code
Applying the Open/Closed Principle is how you stop accidentally changing yesterday's results.
The Single Responsibility Principle for Scientists Who Write Code
Exploring the Single Responsibility Principle in the context of scientific programming and data analysis.
Synthetic Data: The Complete Series
The jumping off point for my synthetic data series, covering the basics of synthetic data generation and its applications.
Representativeness in Synthetic Data: What It Means and How to Measure It
Understanding the concept of representativeness in synthetic data and the methods used to measure it.