Recently published.
First Ultramarathon: River Run 50k
About a month ago we ran our first Ultramarathon, the River Run 50k.
Everything else
9 posts · sorted newestHow to Use PostgreSQL for Data Normalization
↗ ExternalData normalization in PostgreSQL, written with Timescale. Normal forms, when to denormalize instead, and how TimescaleDB changes the tradeoffs.
Resizing AWS Mac Volumes
How to resize an EBS volume on an AWS Mac EC2 instance. Bumping the volume size is only half the job; macOS needs the APFS container resized too.
Recursive Query in SQL: What It Is, and How to Write One
↗ ExternalAs developers, querying in PostgreSQL for hierarchical data is difficult. SQL is a declarative programming language, but our brains are trained to think imperat…
Understanding SQL Aggregate Functions
↗ ExternalYou may have heard that 'data is the new oil.' By itself, data is unrefined and not valuable, but given processing and refinement, it becomes precious. We gain…
Understanding Foreign Keys in PostgreSQL
↗ ExternalForeign keys in PostgreSQL are a fundamental way of defining relationships between tables. Splitting data across multiple tables is foundational to relational d…
Explaining PostgreSQL EXPLAIN
↗ ExternalHow to read PostgreSQL EXPLAIN output: the plan, operations, row counts, and timing, and using it to figure out why a query is slow.
PostgreSQL Security Guide
↗ ExternalA PostgreSQL security guide written with Timescale. What to lock down, why it matters, and the ways attackers get in when you don't.
How to Use a Common Table Expression (CTE) in SQL
↗ ExternalCommon Table Expressions (CTEs) are my go-to tool when writing complex SQL queries. They can be thought of as working like sub-queries or temporary tables but w…
Understanding PostgreSQL Tablespaces
↗ ExternalTablespaces are a PostgreSQL feature that gets easily overlooked but can provide substantial speed improvements and cost-saving potential. As our database grows…