Godot, Nvim, C#, and GDscript

I’ve been playing around with Godot 4.4/4.5 for a while now, but using the integrated editor is quite frustrating compared to a real code editor or IDE. There are some vim plugins out there, but I wanted a more lightweight solution. So I looked into configuring Neovim and it ended up being simpler than I expected. Nvim I build my nvim using nix with nvf. I added treesitter and grammars via nix: { config.vim.treesitter = { enable = true; grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ gdscript gdshader godot-resource ]; }; } For the gdscript treesitter grammar, I used lua: ...

January 11, 2026 · 2 min

MonoGame: Shader Compilation on Linux

Recently I started learning how to make games, and I decided to follow MonoGame’s phenomenal guide to making 2D games, on linux, as my daily driver is a thinkpad running NixOS. After I set up .NET 8/9 and neovim / Visual Studio Code, it was smooth sailing until Chapter 24: Shaders. Currently, building shaders with the MGCB (MonoGame Content Builder) tool and loading them with Content.Load<Effect>() requires emulation via wine. There is another way to build shaders without MGCB, so I’ll list both methods below. ...

July 30, 2025 · 5 min

Street Fighter 6: Type Arcade, with Nesica

If you’re in Japan and are a fan of street fighter, I highly commend checking out an arcade and setting up a Nesica card. On top of being a nice memento, it comes with some quality of life features. [!NOTE] If you use a controller, don’t worry! Modern Street Fighter 6 cabinets have USB-A ports, letting you use your own… that is, if you brought one with you. Want to buy a controller? Visit a local Bookoff, Hardoff, Suruga-ya, Animate, or Don Quijote. But don’t be surprised if there’s a tourist tax. ...

May 12, 2025 · 3 min

Deploying Docker Containers with Nix

I’ve slowly been migrating my ansible-based homelab provisioning setup to NixOS. I was worried at first since I wasn’t sure how well it’d support docker and docker-compose, but it’s been almost* flawless so far. The magic lies in virtualisation.oci-containers.containers. Setup The first thing we need to do is enable an oci backend, either docker or podman. I’m used to docker so I went with the rootless version. # virtualization.nix {...}: { virtualisation = { docker.rootless.enable = true; docker.rootless.setSocketVariable = true; docker.autoPrune.enable = true; containerd.enable = true; oci-containers.backend = "docker"; # defaults to podman }; environment.sessionVariables = { DOCKER_HOST = "unix:///run/docker.sock"; # fix for rootless docker }; } [!NOTE] There is the virtualisation.docker.rootless.setSocketVariable option but it didn’t work for me, so I set DOCKER_HOST manually. ...

February 25, 2025 · 3 min

Useful Apps for Travelers in South Korea

Listed roughly in order of importance. Let me know if I missed any important ones! If you live in Korea (and have a Korean bank account and phone plan), then see my companion post, Useful Apps for Residents of South Korea. Essential Papago | 파파고 The picture to translation feature might be the most critical one here! To me the English <-> Korean translations are much more natural than Google Translate. (Japanese and Chinese, as well). ...

November 19, 2024 · 5 min

Notes on Bluesky: Feeds

I’ll admit, when I first joined Bluesky I didn’t give too much thought to the idea of custom feeds. But now I can’t see myself going back. One problem of a user network like Twitter or Tiktok growing is sifting through the noise and finding meaningful content. On Twitter, we were forced to choose between THE ALGORITHM, or a reverse chronological timeline of everyone we follow. To restate that: we were forced to choose between an algorithm that propped up rage-bait and stupid shit that led to people bickering and dunking on one another, or a time sensitive feed cluttered by That One Person Who Posts 1,000 Tweets Every Day. ...

November 17, 2024 · 2 min

Useful Apps for Learning Korean

These are apps that I’ve found useful for learning Korean while living in Korea, in no particular order. Many of these will apply to various languages, not just Korean. Please let me know if I missed any good ones! Also, note that there is no “one best app”. Learning a language requires using multiple different resources. Essential Youtube | 유튜브 If you had to have 1 app for learning, youtube is probably the ultimate choice. For beginners, there are incredible channels such as: ...

November 16, 2024 · 10 min

My Korean Journey: Update #1

This post is the first in an experimental series of tracking the progress I make in my journey to Korean learning. My goal is reaching a high degree of fluency: being able to speak at length on many topics, in a sophisticated manner. I have no need to take the TOPIK exam so none of my learning has concerned that. I don’t really know what my “level” is, but I’m advanced enough that textbooks and resources offer very little. I just need to consume way more native material. ...

September 15, 2024 · 8 min

Why and How I acquired a Korean Resident Card

Once you have a Korean visa, getting a Resident Card is fairly straightforward. The Resident Card (RC) was previously known as the Alien Registration Card (ARC). Amusingly the Korean text hasn’t changed, it still says 외국인, meaning “foreigner”. Why: The Benefits The reason I applied for the F-1-D visa in the first place was the ability to get a resident card. Without one, staying longterm in South Korea is an exercise in frustration. ...

August 24, 2024 · 2 min

How I acquired the Korean Digital Nomad Visa

In December of 2023, the South Korean government a new F-1-D visa, called the Digital Nomad / Workcation visa (hereafter referred to as the Workcation visa). I’ve lived in Korea before and I love Seoul, so I jumped at the chance to get a more long-term visa. This is my perspective of the application process as a non-Korean U.S. citizen. Please consult your consulate’s requirements for your particular situation, especially if you’re Korean, as the requirements will be different. ...

March 2, 2024 · 8 min