2026-07-04

save the Chrome console to a file

a web app left open overnight showed errors in the morning. right-click the console, save as, and the whole session is a log file.

#til#chrome#devtools
2026-07-03

copy a Claude Code answer as markdown with /copy

mouse-copying a Claude Code answer loses the code ticks and the links. /copy puts the raw markdown on the clipboard instead.

#til#cli#claude-code
2026-07-02

finding what freezes VS Code: tsserver log and extension host profile

cmd+click on a type froze VS Code, and the tsserver log looked healthy. an extension host profile found the culprit.

#til#vscode#performance
2026-06-26

disable Chrome's AI features with a macOS config profile

Chrome put AI in my address bar, and the flags I turned off came back after an update. a macOS config profile sets the enterprise policy that turns it off for good.

#til#chrome#enterprise-policy
2026-06-24

lazygit: open a file straight from the diff

to edit the file i'm looking at, i'd have to find it again in my editor. pressing `e` opens it directly, in whatever editor i configure.

#til#git#lazygit
2026-06-20

reset Karabiner after sleep without a reboot

Karabiner stopped remapping after my Mac woke. i finally found a way to reset it without a reboot.

#til#macos#karabiner
2026-06-19

keep an AVD session awake with f15

AVD logged me out over lunch and killed a long job. f15 is a key that does nothing, so I send one every two minutes to look busy.

#til#windows#avd
2026-06-18

make shift+enter a newline in Claude Code on Windows

shift+enter sent my half-written message instead of making a newline. ctrl+j fixes it in any terminal; a keybinding wins back the muscle memory.

#til#terminal#keyboard-protocol
2026-06-17

fake a non-retina screen on Chrome

a Chrome flag retired the old non-retina monitor I kept around just to test on.

#til#chrome#device-scale-factor
2026-06-16

stop pnpm churning package.json line endings

pnpm add rewrote package.json from CRLF to LF and git diffed the whole file. one line in gitattributes fixed it.

#til#git#gitattributes
2026-06-15

TIL the <a> tag has a download attribute

i spotted the download attribute on an anchor tag and assumed Content-Disposition already did the job. turns out it's for when you can't touch the server.

#til#html#anchor
2026-06-11

serialize TanStack Query mutations

my optimistic drag and drop raced itself. one scope id fixed it.

#til#react#tanstack-query
2026-06-09

reproduce a flaky test with stress-ng

it passed locally and failed on CI. stress-ng made it fail locally too.

#til#testing#cli
2026-06-05

fish-style abbreviations for PowerShell

abbreviations expand inline before they run. here's how in PowerShell.

#til#windows#shell
2026-06-03

a fish-style prompt for PowerShell

starship gives PowerShell a prompt i can live with.

#til#windows#shell
2026-05-16

iTerm: unlimited scrollback

iTerm's default scrollback is 1000 lines. you can turn that off.

#til#macos#iterm
2026-03-24

pointer events replace touch + mouse in drag and drop

pointerdown/up/move handles both touch and mouse. no more duplicate listeners.

#til#javascript#dom
2026-03-22

responsive font-weight with tailwind

lighter font weights on HiDPI screens using Tailwind v4 theme variables.

#til#css#tailwind
2026-03-20

cli tool: worktrunk

git worktree management for humans.

#til#cli#git
2026-02-22

mdx kitchen sink

every MDX formatting option this site supports, in one place.

#meta#mdx