Zombie Zen

Roxy's Blog

Connecting Bash to Nix

Posted at by Roxy Light

Julia Evans wrote a toot asking:

are there any guides to nix that start from the bottom up (for example starting with this bash script https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh) and then working up the layers of abstraction) instead of from the top down?

I realized that despite the title, my blog post Nix From the Ground Up misses the mark on providing this type of explanation. While I do think the Nix language is the lowest abstraction layer to learn Nix, I wanted to zoom in on the core derivation abstraction through a tutorial. This way, we can better understand how Nix derivations relate to Bash scripts.

Read more…
Posted at
Permalink

TIL: SQLite Virtual Tables

Posted at by Roxy Light

I’ve been working on implementing virtual tables for my zombiezen.com/go/sqlite package. I hadn’t used virtual tables in SQLite before this, so to get a feel for the API, I played around with the feature and read up on the documentation. Since it’s not a feature I’ve seen talked about a lot, I wanted to share what virtual tables are, why you might want to use them, and what some limitations are.

Read more…
Posted at
Permalink

New Year, New Job: Discord

Posted at by Roxy Light
Roxy, grinning, standing in front of a glass wall with the Discord logo. Behind the glass is an empty reception desk.

I announced on Twitter a few weeks ago that I took a job on the Tools team at Discord. I’m really excited by Discord’s mission to create a feeling of belonging in this world, being a long-time user myself. I was also really drawn to the problems the Tools team is solving for Discord’s growing engineering organization. I’m delighted to be starting this new chapter in my career.

Can’t wait to see what 2022 brings!

Posted at
Permalink

Nix From the Ground Up

Posted at by Roxy Light
Nix logo

I recently spent some time learning Nix after watching this talk by Xe. Nix is a package manager/build system for Linux and macOS. It does a number of things I really like:

  • Transparent handling of source and binary packages.
  • Includes a rich central package registry, but you can host your package descriptions or binaries anywhere.
  • Does not require root and runs alongside any Linux distribution.
  • Easy to pin or customize versions of individual packages.
  • Straightforward support for project-specific dependencies.

Nix is a cool piece of tech, but in my opinion, it’s pretty hard to learn (at least at time of writing). I think this is accidental complexity: I was able to be productive with Nix in my personal projects in a few days, but it took a fair amount of research from many different sources. I took a lot of notes, then realized I wanted to publish them to share this knowledge.

So here’s my guide! “Nix From the Ground Up” aims to help explain the concepts behind Nix with a hands-on approach.

Read more…
Posted at
Permalink

Three Years of Getting Things Done

Posted at by Roxy Light

It’s been three years since my initial post about Getting Things Done. The last couple years have been weird, to say the least. I’ve still stuck to the Getting Things Done methodology, but the last year in particular has made me acutely aware of weaknesses in my practice. This year, almost all the projects I took on had high number of unknowns: becoming a manager, buying a house, and improving the house. The slight discomfort I identified in my previous retrospective has grown to an unavoidable problem. When the next steps for most of my projects aren’t obvious, my “external brain” frequently gets out of date and stops helping me. In turn, the staleness of my “external brain” erodes my trust in it. This feedback loop got me back into a pattern of reacting without much planning, and the stress of internalized time management came back. In the last six months, I’ve been improving my tooling to address this problem.

Read more…
Posted at
Permalink
← Previous Page Next Page →