sunshowers

Recent content on sunshowers
https://sunshowers.io/ (RSS)
visit blog
Why nextest is process-per-test
7 Jan 2025 | original ↗

I’m often asked why the Rust test runner I maintain, cargo-nextest, runs every test in a separate process. Here’s my best attempt at explaining the rationale behind it. This document is cross-posted from the canonical copy at the nextest site. Benchmarks are available there as well, though a large part of this document talks about...

Beyond Ctrl-C: The dark corners of Unix signal handling
3 Sept 2024 | original ↗

RustConf 2024 is next week, so I thought I’d put up a written version of my RustConf 2023 talk about signals in time for that. I’ve tried to retain the feel of it being a talk, while editing it heavily to make it readable as a blog entry. Some links: Video of the talk on YouTube. Slides on Google Slides. Demo repository on GitHub. 1....

Debugging a rustc segfault on illumos
4 Aug 2024 | original ↗

At Oxide, we use Helios as the base OS for the cloud computers we sell. Helios is a distribution of illumos, a Unix-based operating system descended from Solaris. As someone who learned illumos on the job, I’ve been really impressed by the powerful debugging tools it provides. I had a chance to use some of them recently to track down a...

Professionals demonstrate empathy
2 Jul 2024 | original ↗

As of this writing, it appears that another open-source project lead has rejected a proposal to replace gendered he language with they, citing vague concerns about “politics.” (Please refrain from contacting the project about this; it’s counterproductive.) At Oxide, one of our core values is empathy: the ability to understand others’...

ECC RAM on AMD Ryzen 7000 desktop CPUs
9 Oct 2023 | original ↗

Introduction One of the coolest features of AMD’s Ryzen desktop CPUs, and historically a great reason to get them over the competition, was the official support for error-corrected memory (ECC RAM)1. With most Ryzen 1000 through 5000 series CPUs and the right motherboards, ordinary users could get ECC RAM going without having to spring for more...

Dealing with tempfile cleaners
5 Oct 2023 | original ↗

I used to use this as a place to write long-form thoughts, but with the demise of Twitter I want to also write short-form posts here under the #shorts tag. I also post on Mastodon but that’s a little more ephemeral and less searchable than this blog. Let’s say you’re creating a temporary directory with some cached artifacts to share across...

How (and why) nextest uses tokio
3 Oct 2022 | original ↗

1. Introduction Update 2022-11-03: This was originally the first in a series of two blog posts. I’ve now marked this as a standalone post. Content originally slated for part 2 will now be published as followup posts. I’m the primary author and maintainer of cargo-nextest, a next-generation test runner for Rust released earlier this year. (It...

Open and closed universes
2 Aug 2021 | original ↗

Type systems are tools for modeling some aspect of reality. Some types need to represent one of several different choices. Sometimes, all the choices may be known in advance and will likely never change—this is often called a closed universe of values. Other times, the set of options will change over time, and the type needs to represent an open...

What I use, late 2020 edition
21 Dec 2020 | original ↗

I’m going to try and write up a post about my digital tools at the end of every year. Here’s what I’m using in late 2020. My desktop The computer I use for work and play is a desktop with an AMD Ryzen 9 3900x processor, a Samsung 970 EVO Plus 2TB NVMe drive, 64GB of RAM, and an RTX 2060 Super graphics card. The case I use is an NZXT H1: it is...

The social consequences of type systems
27 Sept 2020 | original ↗

Title page of The Social Contract, by Jean-Jacques Rousseau. Public domain. Type systems1 are the wellspring of some of the most interesting work in computer science, and practitioners like myself deal with them everyday. This post collects some thoughts I’ve had about how type systems interact with the communities that use them. Types as...

Thinking about dependencies
22 Aug 2020 | original ↗

People tend to have lots of opinions about software dependencies. Here are mine. Standing on the shoulders of giants United, by truthseeker08 on Pixabay. At a high level, virtually all code in existence relies on tools and libraries written by other people. Even projects that don’t use any library dependencies rely on tools written...

Work
1 Jan 2001 | original ↗

What I do for a living is best described as domain modeling (h/t @whitequark). Let’s say you have a bunch of raw data that has some sort of underlying structure, and you want to make sense out of it. If your data can be fit into well-known structures like Merkle trees or directed acyclic graphs, it can be used to build high-quality,...

About me
1 Jan 2001 | original ↗

Hello, and welcome to my little corner of the internet! 💕 I’m Rain (like the weather 🌧) and my pronouns are they/she. I’m a queer, trans, nonbinary immigrant based in Oakland, CA, US, and I build systems and tools for Oxide in Rust for a living. This blog is where I express longform opinions that don’t quite fit in a social media thread. Check...

↑ These items are from RSS. Visit the blog itself at https://sunshowers.io/ to find everything else and to appreciate author's digital home.