NixOS: A developer workstation setup

NixOS: A developer workstation setup

nixos nix linux

Work in progress

This post is a placeholder — full content coming soon.

The plan is to walk through setting up NixOS as a daily-driver developer workstation: from installation to a fully declarative, reproducible system configuration.

Topics to cover:

  • Why NixOS (and why it’s worth the learning curve)
  • Partitioning and installation
  • The basics of configuration.nix
  • Home Manager for dotfiles and user-level packages
  • Flakes: pinning inputs and building reproducible environments
  • Sway / Wayland compositor setup
  • Lessons learned and rough edges

De-Googling: Taking back your digital life

privacy linux self-hosting

Work in progress

This post is a placeholder — full content coming soon.

The plan is to document the process of removing Google’s services from day-to-day life: moving email, calendar, search, photos, and cloud storage to self-hosted or privacy-respecting alternatives.

Topics to cover:

  • Why bother (and why it’s harder than it sounds)
  • Email: Migrating away from Gmail
  • Search: life after Google Search
  • Photos: self-hosted alternatives
  • Calendar & contacts: CalDAV/CardDAV
  • DNS: blocking trackers at the network level

Learning Rust: Error handling with Result and Option

rust error-handling

Learning Rust

Change below reflect growing understanding of handling errors cleanly in Rust.

From “Check result and expect” to “This is actually an error, let’s map that to our Enum”

Some fun with learning more about error handling in Rust. The code here is interesting as someone moving from Go’s model of errors of values to Rust’s more Enum-driven world:

I have a function that finds a Pot in Monzo when given an auth token and name.

Read more...