Tools I Use to Live My Glamorous Life

Development

Languages/Technologies

  • I am primarily a Python expert (25 years!)
  • I am primarily a FastAPI user, and I am better than average at doing async programming (which sucks and is bad, but it’s fun to do bad things)
  • I primarily choose Postgres as my database
  • I do most of my personal dev projects in Go
  • If you ask me to write something in C++ I will say no but I will write C++ to spite you
  • I prefer Linux on the desktop to Mac on the desktop at this point
    • I do not value my time or sanity
    • If something is reliable, I get bored and self-destructive so I need to be in a state of crisis in all aspects of my life and a Linux desktop fills that need in this space
  • I usually prefer Debian stable or one of its relatives for servers and Alpine for container base images
  • I use Tailwind at home, Sass at work
  • I use Solid and plain old JS at home, React at work
  • I use Ollama on Mac and Linux to locally run LLMs

Editors/Environments

  • My muscle memory is Vim, I use it everywhere
  • Most of my polyglot development is via VS Code
    • I use LLMs for developing code signficiantly less than other people on the cutting edge of tech. I have the Continue plugin installed at home against local Ollama but use its features quite sparingly.
  • I am forcing myself to use Zed more too, just because monocultures are a Bad Idea and VSC is a monoculture now
  • I like using Ebitengine to make silly 2D games
  • I also (rarely) play around with Picotron, Pico-8, TIC-80 and LÖVE for the same

Command line

  • Here is the bootstrap set of dotfiles I use on new computers
  • I use zsh and bash almost equally, though I think I have more zsh machines now
  • I usually start out with oh-my-zsh or oh-my-bash on new systems
  • I use nvm, pyenv and rbenv to manage node/python/ruby installs
  • I use grep, rg and ag in descending order of frequency
  • I like git-delta for command line diffing
  • I like lazygit for some easy to explain but harder to do than necessary git operations. Sometimes a GUI (or a TUI) is nice! Not everythnig has to be commands or code!

It Came from Userspace

  • I always add ~/.local/bin and ~/bin/ to my $PATH so I can manage my own binaries without superuser perms
  • I download VS Code and Go (setting $GOPATH to ~/.go) from tarballs and manage them myself, adding ~/go/bin and ~/VSCode-linux-x64/bin to $PATH – that way I don’t need to deal with native packages or elevated install permissions
  • Same with Deno
  • Currently in ~/bin: btm slirp4netns1 tmux tic80 (static binaries acquired from their release pages)

Cloud Stuff

  • In the past, I did Terraform
  • At my last job, I learned a little Pulumi
  • At most places of employment, I use AWS
  • I had to learn Azure at my last job
  • At home, I use GCP
  • I am in the process of switching my self-hosted stuff over to fly.io

This Site

Productivity

Producing and Manipulating Visual Artifacts

  • Monodraw for cool text-mode diagrams
  • Xara Photo and Graphic Designer as I have muscle memory and it’s fast to make drawings in
  • The Gimp for quick raster touchups
  • Inkscape to touch up SVGs
  • D2 for diagrams as code – I like it in terms of how clean the language looks, how clean the output looks, and how easy it is to use
  • Mermaid for diagrams extensively because it’s everywhere, mark a code block as mermaid in markdown and you get the rendering for free in things like Obsidian and on Github
  • Graphviz comes along for the party, too – it’s old but it gets the job done for a large range of jobs

Desktop Apps

Mac

Linux

Networked Software

Computer Hardware

General-Purpose Computing and Development

I have a handful of computers I use regularly!

Toys

  • Shanling Q1 for listening to music outside of my home office
  • RG35XX running MyMinUI for video games during my commute hours
  • Flipper that I never break the law with

Non-Computer Hardware


  1. This is missing in ChimeraOS for some reason and the only part absent from a working podman setup on my handheld ↩︎