2026 4

Editing Workshop Videos

I sometimes use Google Meet, Teams, Zoom, etc. to record workshops and talks. These record the entire session, including before and after the actual talk, and save it as large MP4 files. I use ffmpeg to trim the video to just the talk, and then compress it for sharing. I’m sharing the options that work for me, discovered by trial-and-error. To trim it, I use the following command: ffmpeg -ss 00:10:00 -to 02:10:00 \ -i "original.mp4" \ -map 0 \ -c copy \ -avoid_negative_ts make_zero \ -movflags +faststart \ new.mp4 Arguments: ...

Recording screencasts

Since WEBM compresses videos very efficiently, I’ve started using videos more often. For example, in Prototyping the prototypes and in Using game-playing agents to teach. I use a fish script to compress screencasts like this: # Increase quality with lower crf= (55 is default, 45 is better/larger) # and higher fps= (5 is default, 10 is better/larger). screencastcompress --crf 45 --fps 10 a.webm b.webm ... To record the screencasts, I prefer slightly automated approaches for ease and quality. ...

AI video compression

I recorded a short screen cast of a demo I built. It was ~900KB - way too large to publish as a thumbnail. So I asked ChatGPT: What’s the best equivalent of squoosh.app for WEBM compression? I’m looking for a free modern high-quality online video compressor. There are a few, and they compressed it to a third of its size, but 300KB is still too large. So I attached the original and asked: ...

Things I Learned - 22 Feb 2026

This week, I learned: tree-sitter is a fast incremental parser generator. That means you can use it to create a parser for any language that works even if there are errors, e.g. malformed JSON, Python, etc. It’s used by most editors. For example, tree-sitter-python is a fast forgiving Python parser. There are official parsers and community parsers Programming Languages: All popular ones, less popular ones like Ada, Fortran, Lua, Zig, … and even niche / domain-specific languages (Gleam, TLA⁺). Markup & Data Formats: HTML, XML, Markdown, JSON, YAML, TOML, CSV, … Query, Scripting & Config: SQL, GraphQL, Bash, Dockerfile, Regex, Terraform (HCL), … Ligature fonts are nice, but it might not be worth forming a habit out of. Claude Cloudflare introduced Markdown for Agents. This converts websites from HTML to Markdown via Accept: text/markdown for any Cloudflare endpoint which has enabled this feature. This requires a Pro account. Microgrants is a list of microgrants programs - where you can give small amounts of money, e.g. $50 - $1K as well as large fellowships over $100K. This includes student grants, creative & community grants, tech grants, social & policy grants, etc. “Animated web formats are simply video codecs … stripped of their most powerful feature.” A .webm file is likely to compress much better than an animated .webp, etc. Gemini esbuild can compile CSS files to support old browsers, e.g. nested rules, custom properties, etc. Usage: esbuild input.css --target=chrome90 --outfile=output.css. Julia Evans New jargon I learnt: Human-On-The-Loop. Treasure In Treasure Out VS Code’s GitHub Copilot extension supports a github.copilot.chat.commitMessageGeneration.instructions setting that lets you add a [{"text": ...}] or [{"file": "path/to/file.ext"}] prompt to the commit message generation. I’ve pointed this to my git-commit.md custom prompt.