2026 2

Things I Learned - 10 May 2026

This week, I learned: I’m experimenting with Tauon MusicBox as an alternative to VLC as a music player. Update: 01 Jun 2026. I switched back to VLC. Tauon Music Box is glitch. It stops songs mid-way and doesn’t play automatically when launched. xz is pretty slow by default. xz -T0 uses all available threads and speeds it up ~3X. Enabling “Performance mode” (over a power-saver mode) produces a further speed-up of ~2X for me. For a 200MB file, that reduces the time from ~1 minute to 10 seconds. Notes from Simon Willison’s notes from the Claude Code event: “Design for the next model”. Build things that don’t quite work today on the assumption that they’ll start working with a model upgrade in the future. “The advisor strategy”. Instead of using a smarter model to plan, use smaller models to ask Opus for advice-on-demand. Dreaming looks really interesting. You can run a task over night which examines previous sessions and creates new memories. A routine is a saved Claude Code configuration: a prompt, one or more repositories, and a set of connectors, packaged once and run automatically. Routines execute on Anthropic-managed cloud infrastructure, so they keep working when your laptop is closed. Overheard: “VCs say, ‘OpenAI wants to get into commerce, so why are you getting into commerce?’ A few weeks later, ‘OpenAI no longer wants to get into commerce, so why are you?” Delightful discovery of the day: Super + Shift + Arrow keys to move windows between monitors on Ubuntu. television is a fast, portable fuzzy finder. Like fzf but faster, useful for files, text, git repos, docker images, etc. I added approvals_reviewer = "auto_review" to my ~/.codex/config.toml. This enables auto review which uses an LLM to figure out whether to ask a human to approve or not. It’s a lot less intrusive than asking every time. Not perfectly safe, though. Copilot supports a /chronicle command that suggest tips and improvements when using Copilot. It’s like /insights on Claude Code and Carbonyl is a CLI Chromium browser. Sort of like Lynx, but supports audio/video, JavaScript, even WASM, etc. This was the author’s first Rust project. I tried Zed as an alternative to VS Code. It’s fast and lightweight, but lacks the ecosystem of VS Code. Plugins are harder to build and Markdown support is weak. I would use it on a flight to save power, not otherwise. This is similar to others’ experience. ChatGPT UPDATE 05 Jun 2026. It DOES use some battery power - more than I’d like. I am uninstalling it. LocalSend is a pretty quick way to share files between phone and laptop even if you don’t have a network - if you connect the laptop to the phone hotspot. GNOME Network Displays works pretty well if you want to screencast your screen to a network display - e.g. a Smart TV with Miracast or Chromecast support. I’m evaluating rtk - a CLI proxy to reduce tokens. For example rtk ls or rtk git status shows agent-friendly compact output. I just added one like to my AGENTS.md: “Always prefix shell commands with rtk. Examples: rtk git status, rtk pytest -q, etc.” instead of using rtk init -g. I am testing it out, so I don’t know the impact, but it seems harmless. (Based on 2 days’ usage, across 216 commands, it saved ~50% of 37K tokens. Not much, but harmless.) The emerging convention to mark a section of HTML / Markdown as AI generated content is to wrap it in: <section ai-disclosure="ai-generated" data-ai-model="claude-sonnet-4.6" data-ai-provider="Anthropic"> (W3C AI Content Disclosure Community Group).

Things I Learned - 05 Apr 2026

This week, I learned: It’s pretty convenient (on Ubuntu) to be able to move windows around desktops. Apart from the usual Super + Arrow keys to manage windows within a desktop, you can use: Ctrl + Alt + Left/Right Arrow: Move desktops Ctrl + Alt + Shift + Left/Right Arrow: Move window to desktop Super + Shift + Arrow: Move window to another monitor Super + Drag: Drag window from anywhere jq . file.json is an efficient way to pretty-print JSON files in the terminal. (Or jaq . file.json, which is ~30% faster.) GitHub Copilot monthly premium requests were not reset at 12 am UTC How Diffie Hellman Key Exchange Works by Julia Evans is an excellent explanation. Share a random number. A multiplies it by their private key and shares SA. B multiplies it by their private key and shares SB. They multiply the others’ key with their secret key and they get SAB = SBA. Now both of them have the same new secret they can encrypt/decrypt with, but no one else knows, even though they shared everything publicly! This may be one of the best cool uses of math I’ve seen in a long time. Shell tricks I didn’t know: # ALT + . cycles through the last arguments typed mv file.{txt,md} # Move file.txt to file.md ls |& tee file.txt # Pipe both stdout and stderr to tee

2025 1

Things I Learned - 06 Apr 2025

This week, I learned: <select> will soon be very customizable via CSS. Including custom HTML inside options - even SVG. MDN. Edge/Chrome already support it. The Vitali Set is every real number none of whose difference is rational. A sparse collection of irrational sets. It’s like a line but doesn’t have a measurable “length”. The Lebesgue measure measures the length of broken lines. You add up the lengths of the smallest continuous intervals that cover the line. The Cantor set (take a line, drop every middle third, repeat) has a Lebesgue measure of 0 because the sum of the removed thirds = 1/3 + 2/9 + 4/27 + … = 1. You’ve removed every “length” though infinitely many points remain. The Vitali set built so that if you shift it by every rational from -1 to +1 and add them up, you definitely cover every real from 0-1, but never anything beyond -1 to +2. So the length must be between 1-3. Yet, there’s no number you can add infinitely many times to get something between 1-3. If you add up multiple unmeasurable sets like the Vitali set, you can get any total length you want. The Banach Tarski paradox splits a sphere into unmeasurable sets and adds them to get 2 spheres. Ctrl+Alt+F1/F2/… on Ubuntu switches the terminal. Typically Ctrl+Alt+F2 switches back to Gnome. But it’s a useful hack if Gnome freezes and you need to kill a process. Press Ctrl+Alt+F3, log in, and kill what you need. Notes from AI 2027. BTW, this is the most impactful piece I’ve read recently. It’s been on my mind continuously for 36 hours. A bit distubring, too. 2025: AI can act as autonomous agents, like Glean, Devin, Operator. turn bullet points into emails take instructions via Slack or Teams and make substantial code changes on their own spend half an hour scouring the Internet to answer your question 2026: automating AI R&D is the biggest enabler for AI Labs job market for junior software engineers is in turmoil people who know how to manage and quality-control teams of AIs are making a killing 2027: potential demand for ~20,000 FTEs solving long-horizon tasks to train AI every researcher/coder becomes the manager of an AI team hiring new programmers has nearly stopped, but there’s never been a better time to be a consultant on integrating AI into your business CSS Speech is a W3C spec that lets you control how screen readers should read pages. No browser support now, though. Clipboard2Markdown is a utility that lets you paste rich text and convert it to Markdown. ChatGPT can’t yet create good sketchnotes. Here’s the impact of US tariffs on India. ChatGPT #IMPOSSIBLE OHDSI has a vocabulary you can download from Athena that includes ICD codes and a lot of medical data standards. It also has a hostable WebAPI No open source LLM-based tool handles live transcription and allows you to query notes so far during the transcription. The closest seems to be Meetily Learnings on AI code editors via Deep Research from ChatGPT, Gemini, Grok, Perplexity: #ai-coding GitHub Copilot can identify the source of a code snippet as a repo. That helps with copyright issues. Cursor uses a shadow workspace - a temporary sandbox where it edits files before applying changes at one shot. Cursor auto-complete has context of other files, i.e. inserting an class in a .js file based on another HTML file’s contents. Windsurf seems to be best for large code bases and for large-scale refactoring. It can also run test results fix them. Windsurf includes a browser and lets you click on an element and prompt to change its behavior, etc. That’s good for front-end developers. Roo Code can run scripts as part of the workflow, letting you run linting, tests, starting web apps, query databases, etc. Roo Code lets you create persona, e.g. code reviewer, data storytelling and analysis, etc. with access to different tools and behaviors. Roo Code does not support auto-complete. There’s outrage around Cursor not taking responsibility for a rules file backdoor (via Grok Deep Research) and pricing. Zapier has an MCP server. That should make most integrations easier. Airflow AI SDK is a clever idea. Airflow is a workflow system. Agents are a workflow system (sort of). This SDK exposes LLMs as Airflow tasks. Hidden Factual Knowledge in LLMs finds that the hidden states in LLMs contain much more knowledge than they share. (Sort of like sub-consciously knowing the answer.) Even after asking 1,000 times, the answer is not expressed. ChatGPT Reasoning to Learn from Latent Thoughts finds that the internal reasoning process of LLMs is useful to train other models. Notes from AI Engineering Summit, NY, Day 1 When deploying in production, you need reliable output with fundamentally unreliable components. Sort of like how the ENIAC worked with 17,000 vacuum tubes that would fail every few hours. This is a reliability engineering subject matter and needs to be thought of that way. Google Follow up Deep Research queries are a natural way to extend knowledge beyond just a single report Deep research offloads less relevant parts of the context to a separate memory store for selective retrieval later. Anthropic Don’t use agents if workflows can do the task. The reliability of each individual step of an agent is critical. Code, file access, search. These are the top three tools to use. Making agents budget aware can help deploy reliably in production. Having multiple agents like sub agents can help protect the main agents context window. Self evolving tools are a useful next step in the evolution of agents. Software development lifecycle is about how we iteratively improve consistently without getting worse. Almost like the scientific principle. Morgan Stanley It’s easy to improve knowledge in a problem. It’s very hard to influence skin in a problem. Reinforcement learning from deepseek seems one of the most promising approaches that allow llms to learn skills I published an eBook on Amazon. It takes about an hour if you have the content ready. Set up a Kindle Direct Publishing account with your address, bank details, and tax information. (10 min.) Export my London 2000 blog archive and convert to Markdown. (15 min) Reformat the Markdown by writing a script in Cursor (10 min). Here’s the prompt: Write a Python script that reads *.md including the YAML frontmatter, adds the YAML title as H1, date (yyyy-mm-dd) like Sun, 01 Jan 2000 in a new para after the frontmatter and before the content. ...

2010 1

SSH Tunneling via Rackspacecloud

I wrote about SSH Tunneling through web filters using Amazon’s EC2 at 8 cents/hr. With Rackspacecloud, you can get that down to 1.5 cents/hr. This turns out to be a lot simpler than EC2 as well! Ingredients Rackspacecloud account (sign up for free – you won’t be charged until you use it) Putty (which may be available on your Intranet, if you’re lucky) Directions On the Rackspacecloud console, click on wordpress website hosting– Cloud Servers – Add Server and select Ubuntu 9.10 (Karmic Koala). Actually, you can pick any other instance. I’m going to talk through this using Ubuntu 9.10 as the example. Type any server name, pick a 256MB RAM instance, and click on Create Server. Once the server has started, you’ll get the screen below. Click on the Console to open a session. Your password would have been e-mailed to the account you registered with. Log in as root with that password. Now type the following: sed –i “s/^Port 22/Port 443/” /etc/ssh/sshd_config /etc/init.d/ssh restart ...

2009 1

Ubuntu 8.10 on a Dell Latitude D420

Here’s the fastest way I’ve found to install Ubuntu on a USB flash drive, for my Dell Latitude D420. (Pendrivelinux.com is a great resource for this sort of thing.) Ingredients One large USB flash drive like this one. Not less than 4GB. I’d suggest 8GB or more One CD (not a DVD) Ubuntu 8.10 desktop CD ISO IMGBurn or any other CD burning software Direct Internet via LAN cable (without proxy, without wireless) Installation ...