Everything tagged with #programming

Blog Posts, Articles & Notes

2026

2025

2024

2023

2021

2020

2018

2017

2015

Moments

A reader of my blog reached out to tell me they missed one of my blog posts that I decided to delete a while ago. I didn’t think it was particularly helpful to anyone in 2026 any longer and I wasn’t too happy with the version I had published years ago.

I resurrected the article and gave it a 2026 makeover. Who’d have guessed that there’s still room for hand-written programming tips in 2026?

So, thanks for taking the time to send me that email and give me that verbal kick in the butt, dear reader.

https://hamvocke.com/blog/task-runners

Just spotted that @xoofx built a command line version of Root Loops to power XenoAtom.Terminal.UI

What a cool project, and what a great way to elevate a tiny open source project like root loops. I did not see that coming and I’m super pumped that this silly idea is useful for someone out there <3

If you want to build modern, reactive TUIs using .NET go check out XenoAtom.Terminal:

https://xenoatom.github.io/terminal/

You don’t need fancy AI tools to become a 10x developer. You can simply spend days painstakingly tweaking your dotfiles and agonizing over your neovim config to become so much more productive.

Hit me up for more career advice!

I thought coming up with a treesitter-based syntax coloring theme was hard. Turns out creating textmate-based themes is even more finicky.

In other news: Root Loops now supports Visual Studio code theming (UI and syntax). Give it a shot!

a dark visual studio scheme

I love the concept of tiling window managers but they often encourage a weird obsession to fine-tune and customize every last aspect of the experience. I gave PaperWM a shot this week and it seems to hit a sweet spot: It’s a simple Gnome plugin and integrates well with my regular desktop experience while giving me a convenient way to manage my windows and workflows with the keyboard wherever I go. If you use Gnome but miss the i3/sway experience, give it a try!

Remember, folks 🤓

Cloud infrastructure inevitably evolves through the following stages:

  1. Terraforming
  2. Terrastorming
  3. Terranorming
  4. Terraperforming

Every single time I consider using #nixos to set up a dev environment for one of my side projects, I give up after about one hour of getting more and more confused.

I really, really want to like nix. I would love to understand and use it for reproducible dev environments. I just haven’t found a way to get started without spending days to understand the fundamentals. In the meantime, an “apt install ” takes a few minutes tops and solves my immediate problem. Bummer.

Continuous Integration

[kuhn-tin-yoo-uhs] [in-ti-grey-shuhn]

Noun.

1999: Every developer on the team merges their changes into a shared mainline several times a day.

2024: There’s a YML file somewhere that declares how to build and unit test your stuff, no matter which branch you’re on.

Testing your changes in isolation from everybody else’s changes is not quite what they meant with “integration”, folks 😬

Lukewarm take:

If your generic type declaration ends with something that looks like a git conflict marker, you might have missed the opportunity to find a reasonable abstraction 🙃

private static Expression<Func<T, int, IEnumerable<Tuple<PostHistory, Tuple<string, int>>>>> GetHistorySummaryQueryFactory<T>()