Posts

RSS

Notes on software, language, and the overlap between them.

Introducing Fig

8/14/20269 min read

A small TypeScript UI runtime based on React Fiber.

#frontend#open-source

Introducing agentpane

3/5/20264 min read

A local web UI for AI coding agents. Multi-pane, multi-session, streaming — run Claude Code and Codex side by side from your browser.

#ml/ai#open-source#frontend

Introducing helm

2/25/20264 min read

A typed TypeScript framework for AI agents. Replace dozens of tools with two — search and execute — and sandbox LLM-generated code with granular permissions.

#ml/ai#open-source#frontend

My Internship at Vercel

11/20/20253 min read

My experience as an intern working on Next.js at Vercel.

#random

Summer 2025 in Review

9/19/20253 min read

Things I learned and projects I made.

#random

Introducing ts-base: A Modern TypeScript Library Template

9/17/20257 min read

Build with tsdown, Vitest, release-please, and Biome.

#frontend#open-source

Introducing Eta v4

9/17/20251 min read

Making Eta ESM-only, changing package scope, and improving CI/CD.

#open-source

Introducing tokka-bench

8/25/202512 min read

A comprehensive evaluation framework for comparing tokenizers across human and programming languages.

#ml/ai#linguistics#open-source

Nix macOS Starter: Declarative Development Setup with Mise

7/8/20252 min read

Starter Nix config for macOS using nix-darwin, home-manager, and mise.

#open-source

Dialects for Humans: Sounding Distinct from LLMs

7/1/20253 min read

Humans are developing new linguistic patterns to distinguish themselves from AI-generated content, and the rate of change will accelerate.

#ml/ai#linguistics

Adding .md URLs for Raw Markdown Content in Next.js

6/14/20255 min read

How to add .md URLs to your Next.js blog to serve raw markdown content, inspired by Vercel's docs.

#frontend

Smooth Page Transitions in Next.js with next-view-transitions

6/14/20254 min read

Add smooth page transitions to Next.js using the View Transitions API.

#frontend

No, Children Aren't Naturally Better at Languages

8/22/20242 min read

A short summary of Mark Rosenfelder's thoughts on child language acquisition

#linguistics

More Language Thoughts

8/22/20242 min read

Quick thoughts about miscellaneous language / linguistic topics

#linguistics

Links #1

8/14/20243 min read

Interesting things I've been reading

#random

Using HuggingFace Datasets Offline

7/16/20241 min read

How to save a HuggingFace dataset to disk and use it offline

#ml/ai

Tips #1

7/16/20241 min read

Markdown detection in Google Docs, swiping between tabs in Brave Browser for iOS, and running TypeScript files from the command line.

#random#ml/ai

Making a Radix Dropdown the Same Width as Its Trigger

7/2/20241 min read

How to make the dropdown content of a Radix or shadcn dropdown match the width of the trigger.

#frontend

Debugging Python in VSCode

7/2/20241 min read

Using the code.interact() function to launch an interactive code interpreter

#random

On Microblogging

7/1/20242 min read

Why I'm starting a microblog and how it differs from my main blog.

#random

Rebuilding Alpaca with the Hugging Face Trainer Class

11/7/20235 min read

Fine-tuning Llama-2-7B using the Alpaca dataset and Hugging Face Trainer

#ml/ai#open-source

Introducing gom: GPU Monitoring across Containers

10/16/20232 min read

I published `gom`, a CLI tool for monitoring GPU usage across Docker containers.

#ml/ai#open-source

Enroot on Slurm for Distributed ML: Part 2

9/11/20234 min read

How to use Enroot on Slurm for containerized multi-node training.

#ml/ai

Enroot on Slurm for Distributed ML: Part 1

9/8/20232 min read

How to use Enroot on Slurm for containerized multi-node training.

#ml/ai

Quick & Helpful Slurm Commands

9/8/20232 min read

A quick guide to using Slurm for distributed machine learning.

#ml/ai

Setting Up Docker for Machine Learning

9/8/20232 min read

The Dockerfile I use to set up my machine learning environment.

#ml/ai

Accelerate vs. DeepSpeed vs. FSDP

8/29/20233 min read

Which one should you use for distributed training?

#ml/ai

LLMs Will Never Be Able to Do (Complicated) Math

8/23/20232 min read

Since contemporary LLM architectures lack recursion, they're fundamentally incapable of doing some math operations.

#ml/ai

One Config File to Rule Them All

6/29/20232 min read

JavaScript tools have too many config files. Let's combine them.

#open-source

Introducing Eta v3

6/22/20235 min read

The next version of Eta, an embedded JS template engine, brings API and documentation improvements.

#open-source

Introducing My New Website

5/6/20231 min read

I created a brand-new personal website using Next.js, Tailwind CSS, and MDX.

Archived

Older posts that might be outdated but still have some value.