2026 8

Things I Learned - 23 Aug 2026

This week, I learned: DuckDB 2.0 adds a CONNECT command that can connect to databases like MySQL, PostgreSQL, etc. making DuckDB the only DB client I need. EQ-Bench evaluates models on capabilities like: does it follow direction, does it challenge you, how good are its insights, does it build rapport, etc. Very interesting to see that the Gemini models are the most “yielding” to your pressure and “validating” your beliefs (Anthropic’s are the least) while OpenAI models are the most “directive” (give concrete actions) #ForNow. There are other benchmarks such as Creative writing which Opus 5, Kimi K3, and GPT-5.6 Sol lead #ForNow. OpenRouter offers several models at a discount. #ForNow, GPT-5.6 Sol is at a 50% discount, DeepSeek v4 Pro at 62%, and Gemini 3.7 Flash at 75% discount. There’s also a Free Models collection that #ForNow includes Nemotron 3 Ultra and more. For a few years, I’ve been feeling useless, that I don’t contribute anything tangible to my organization. No measurable metric I’ve improved. Today, it strikes me that this is a good thing if I don’t want to be fired. As AI eats up more of our work, measurable contributions naturally shrink (AI does more, you do less/different work), and the vague “Oh, he’s probably doing some good” is a safer bet than “He contributed 10% to this metric last year, this year it’s 1%, can we justify his cost?” (I’m sure marketers will come up with a good term to cover this feeling of uselessness that is actually a good thing.) ChatGPT Desktop - Work is a layer on top of Codex #ForNow (which I sort-of expected, but the session logs confirm this). It adds instructions that cover: Memory: from memory_summary.md, MEMORY.md, rollout summaries, and saved skill notes. Recheck decaying ones, mention if unverified. Folders: Temo work in work/, final in outputs/, local files use absolute paths. Coordination: How to start, fork, inspect, message, wait for, rename, … Codex tasks, how to use subagents. Automations: Available tools for reminders, schedules, monitors, follow-ups, and wake-ups. Knowledge management: known project → memory; specialist task → skill; external object → connector; subtask → subagent; recurring work → automation; finished artifact → Work UI primitive. Presentation: Use shell/scripts internally but hide it, describe outcomes in user terms. Apps/Connectors: Gmail, Drive, GitHub, Dropbox, etc. Skills: via SKILL.md Neither ChatGPT Work nor Claude Work can read the ChatGPT / Claude chat conversations. But the chat conversations can access past conversations via “Memory”. That’s a pity, and one of the reasons I’m more often on “chat” than on “work” - it can refer to my past chats automatically, which helps build a kind of unstructured knowledge base. The other reason is that, at least on ChatGPT, chat does not consume usage limits #ForNow. ChatGPT work and Claude - both chat and work - consume usage limits. Weird that there’s a “make a lot of money” button and nobody’s pressing it (take your SaaS, make it headless, let agents use it, charge per interaction esp for enterprises). Thariq AI is accelerating discoveries in cyber (definitely) and maths (reasonably) but not as much in algorithms. METR “Match your prompt style to the desired output.” Clear guidance from Anthropic that “The formatting style used in your prompt may influence Claude’s response style.” OpenAI says something similar - adapting implicitly to the user’s tone. But this is not a very strong signal - examples are better guides. Why model routing must be in the harness. Makes perfect sense. “Only the harness can judge when a model switch is worth the cache miss.” I’m sure some popular harness (like OpenCode, Codex, Claude Code) will enable an “auto model” mode that’ll pick and change the model by itself by the end of the year. Microsoft Print to PDF can, sometimes, generate PDFs with no highlightable or selectable text - all fonts get converted to paths. A crude solution is below. This is a poor solution but often good enough for an LLM to process. (Of course, if you’re passing it to an agent, you could just upload the file and it’ll figure it out.) sudo apt install ocrmypdf tesseract-ocr ocrmypdf --output-type pdf input.pdf ocr.pdf pdftotext ocr.pdf - When my train neighbor started talking to me (asking personal questions but was self-aware, rambling but was partly interesting), I asked if he was an extrovert. He said “No”. People who talk a lot can still be introverts if they’re: socially competent (like me at work) in “performance mode” (like me when I’m on stage) are high energy and engaged by topics (maybe him - or me when, like now, when I just HAVE to tell the flight attendant Ollama + Gemma 4 + Pi answering a psychology question is a delight!) ambiverts (maybe him) not self-aware and are mistaken (maybe him) ffmpeg can embed subtitles. ffmpeg -i video.webm -i subtitles.srt -map 0:v -map 0:a? -map 1:0 -c:v copy -c:a copy -c:s srt -metadata:s:s:0 language=eng -metadata:s:s:0 title="English" -disposition:s:0 default output.mkv adds subtitles.srt to video.webm and creates output.mkv with embedded subtitles. Note: On VLC, MKV works better than WEBM if you want to embed subtitles. On the browser, you need to use the <video> tag with a <track> tag to display subtitles. ffmpeg can burn subtitles. ffmpeg -i video.webm -vf "subtitles=subtitles.srt" -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a copy output.webm re-encodes the video with subtitles added to the video. ffmpeg can offset subtitles. For example: ffmpeg -itsoffset 10 -i input.srt -c copy output.srt creates output.srt with subtitles starting 10 seconds later than input.srt. When I hear my father’s tales from his childhood, I’m struck by how much India moved forward in half a century on child mortality, consumerism, and communication (mobiles). Also surprising are what feels the same: legal system, travel (trains made it easy), food (tasted better, then), entertainment (theatres made it easy), gardening, education (scholarships made international study more accessible than I thought), I asked ChatGPT how I adapt my message based on the audience. It discovered that I tailor messages to the audience’s (A) Objectives (B) Examples (C) Expertise - e.g. tell vs ask (D) Risk appetite. But what’s distinctive is that I often surrender, i.e. I don’t defend my view, but drop it and run with their framing. “People with taste are picky. The only way to make money is by satisfying those who can’t discern quality.” Adrian Hanft. I’ve been telling people that taste is our differentiator against AI. And yes, it’s a fickle differentiator. I mean, how do you build a taste that thousands or millions will adopt? Or… is taste marketed more often than organically adopted, in which case, persuasiveness matters more than taste? But either way, unless most people disagree with you, you’re building conformity, not taste. On a flight, I tried ollama launch pi --model gemma4:e4b-it-qat. It’s a reasonably sensible model. Power consumption is high, though. I was at about 8 watts with ~7 hours of battery life. While running, power spiked to ~50W (1.5h) and settled down to ~12W (4h) when idle. The llama-server process consumes some CPU/GPU even when idle, but I couldn’t get it back to the ~8W even after ollama stop. (It eventually did return to 8W after an hour. Not sure why.) When I tried again on 21 Aug, it went up from 8W (8h life) to 28W (3h life) and back to 8W, so looks like when idle, it doesn’t consume power. I look forward to using local LLMs more! Pain is good. Struggle is good. Stretch is good. Not new. But worth reminding, worth seeking. T3 Code is a coding agent orchestrator. It lets you “remote control” multiple coding agent sessions across systems. The ecosystem of tools around coding agents is growing. Observability, e.g. AgentsView, is one such area.

Things I Learned - 05 Jul 2026

This week, I learned: ⭐ How to teach so people learn better. Make them do > Show > Tell. Workshop > Demo > Slides. Let them ask, try, struggle, and commit first; explain next; help last. But only when they know enough to get part-way. Make problems CONCEPTUALLY hard (not in language, visual, or procedure). But make sure instructions are clear. Test their learning with a NEW case, immediately. Measure learning. Can they recall it LATER, apply it ELSEWHERE, explain WHY, and know when they may be WRONG? Vogue runs an “In the bag” series where people pull stuff out of their bag, and audiences watching feel they KNOW the person. Depending on the setting, we might be able to help people “know” each other by curating several items. Here are a few ideas. Physical: Bag, Wallet, Fridge, Drawer, Keychain, Remembered phone numbers Mobile: Battery usage by app, Recent emojis, Text prediction for “Honestly, I just want to…”, Autocorrect dictionary, Alarm labels / reminders, Saved Wi-Fi, Blocked/muted contacts, Contact favorites, Contact names, e.g. “Mom ❤️” vs “DO NOT PICK UP”, Device / Wi-Fi names Laptop: Open tabs (count, age), Recurring calendar events, /Downloads, Photos, Email drafts, Subscriptions, Kindle highlights Ownership and connections come from attachment, which can be created. If you name something, touch something, contribute to something in any way, it becomes yours. When people contribute to someone else’s work and discuss it, they build a connection. According to both Claude and ChatGPT, if you had to pick one model for ideation / brainstorming, it might be GPT 5.5. It’s better for divergent generation: the broadest, most exhaustive pool of usable ideas. Fable 5 is better for deep creative judgment: reframing, finding structural flaws, recombining ideas. Claude Code supports rules which are exactly like a CLAUDE.md but support a paths: YAML metadata - so they’ll be read only when Claude Code is reading those paths. If you have a SKILL.md that explains how to do something and you only need its outcome, then move it to a sub-agent (e.g. fake data generation, tool failure logging). Use SKILL.md for instructions that need to be woven into a task, e.g. memorable explanations. The key bottlenecks in running an agent /loop are (a) imagining higher order problems and (b) defining a measure of success / progress. Long tail -> sell options. Black swan -> Buy options. That’s a roughly accurate summary. The trouble is, we don’t always know which tail we’re in. So, sell only if you can afford one hit. ArchiveBox lets you view pages / RSS feeds offline. uvx --from git+https://github.com/ArchiveBox/ArchiveBox.git@dev archivebox works, and config / tools are stored in ~/.config/abx/. The installation didn’t go very smoothly and the whole thing felt bloated, so I abandoned it. I use monolith -I -e $URL to download a page as an offline single-page HTML. Combined with uvx feed2exec I can archive RSS feeds for offline reading. That’s easier than having to open Feedly - I just mark read files with a x at the front and keep reading. The downloads are slow (~3 min/feed) and large (5 GB for 15 feeds, 5MB median feed size) because they embed videos and all images/files, but I can safely delete what I’ve read or will ignore. ChatGPT Project Injection as Role Confusion is a very well written paper (blog-post style) that says the key to tricking LLMs is to confuse them about WHO wrote a line. Just adding a “User: " in front of a line makes it more likely that LLMs think it’s a user. Even when test is written in the style of their system instructions, they fall for it - irrespective of where the content came from. This makes GEO more effective, too. Also, the last section “8. Open Ideas for Roles Research” is a fantastic read on LLM psychology (or rather, neurology). On The AI Compass I am The Podcast Bro. Patron saint: Lex Fridman. “You listened to a three-hour interview with an AI researcher and now you have opinions. Strong ones. You’re long on compute and short on regulation, and you’ve said ’exponential’ more times this month than a calculus teacher. Love is the answer, and also AGI.” Impact: +5.9. Valence: +4.1. Since Nano Banana 2 Lite isn’t as good as Nano Banana 2 and about half the price, I wouldn’t switch yet. Claude Sonnet 5 is out. Fable 5 will be released soon. GPT 5.6 is still on probation. Codex has a Record and Replay feature for Mac that lets you do something, records it, and learns from it. Very useful for non-developers. It’s like recording Excel macros, which unleashed a lot of power for me when I didn’t know Visual Basic. Claude Code Artifacts lets Claude Code live-publish a web page and share it securely. The “live-publish” part is the interesting thing. Claude in a /loop can now become the app that updates a “dashboard”, a live feed/story, a self-evolving app, … and so much more. (This feature is only available for Team/Enterprise but the idea is universal.) Tau, like Pi, is a minimal coding agent. τ = 2*π. It shows what it does very transparently, making it easy to learn how agents work. uvx --from tau-ai tau works seamlessly. Configs, logs, and sessions are stored in ~/.tau and you can log in via your Codex/ChatGPT subscription. Skills for Design Engineers has a useful animation vocabulary skill that converts vague animation prompts to precise animation terminology. X has an MCP Server but it’s meant for development/coding than general users. Setting it up for ChatGPT / Claude requires creating tunnels. OpenAI supports Secure MCP Tunnels that let ChatGPT connect to your machine securely. A very powerful feature. Unfortunately, this seems to need an organization - and even though personal accounts can still access it, it’s proven a bit more messy than I’d like to use. notebooklm-py is a CLI for NotebookLM. Unofficial and potentially unsupported, but it’s amazing how AI makes reverse-engineering APIs so easy. If you start a temporary ChatGPT chat and close it, it still runs in the background - but you have no way of going back to it (not even the back button) or seeing what it said/did. I know this because it was accessing my MCP server even after I navigated away from the chat accidentally. The code refactoring industry can go full swing now. “As an example of what AI can accomplish, Claude Opus 4.7 substantially reimplemented gotree—a bioinformatics toolkit with about 16,000 lines of Go and 40+ commands. We believe this same task would take a human engineer without AI assistance 2–17 weeks. Opus 4.7 solved it in 14 hours, passing 2,000/2,001 tests (99.95%), at a cost of $251.” MirrorCode A useful rule of thumb: Cloudflare tunnels are for links to share with others. Taiscale is for services (even non-HTTP) only your devices should see. ChatGPT date -d (date +-%wday) +%F is the most compact way to round down to the nearest Sunday. Avoid date -d "last sunday" +%F which, on a Sunday, returns the previous Sunday, not today. ChatGPT A useful way of controlling AI verbosity is word count. To do that, I need an intuitive sense of how much to ask for. Here’s my rule of thumb: one page of paragraph text on ChatGPT is 200-300 words. 150-200 if it’s mostly bullets. I can typically read 1-2 pages of output. So, 300-600 words is my limit. Google Labs launched a DESIGN.md spec to guide agents on a consistent design. The good part is that it aligns with the proposed W3C design tokens spec. But beyond that, I’m not convinced of the benefit. Atlassian’s DESIGN.md had mixed results. Claude feels it could go either way. I’ll give this a miss for now.

Thinking Beyond Automation to Safeguard Tomorrow’s Software Talent

Or, Why I Now Prefer Interns Over Senior Developers Ankor runs a company of several thousand people. After a bunch of calls with one of our interns, Varun (a student at IIT Madras), Ankor messaged me: “This guy is fantastic. How is he doing it?” This is what Varun was doing: he records calls, feeds the transcript to Claude Code / Codex, and delivers results. That’s the whole process. He doesn’t interpret the content. He doesn’t apply domain knowledge. He gets out of the way. ...

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 - 19 Apr 2026

This week, I learned: WebApps are a depreciated store of value. Earlier, a web-app would have impressed me because the capability to create it is rare, and the effort to create it is high. Today, when I see a “localhost:3000” or a “replit.app” domain, I mentally discount the effort behind it and ask: How rare is the capability to create this with a coding agent and how much effort is it. THAT determines the value of what I see. Part of the value is “Look ma, no hands!” and it’s delightful they’ve learnt. Part of the value is “There’s gold in them thar hills!” and use-case discovery is important. WaveCity is a WASM build of Audacity, i.e. Audacity running in the browser! Audiomass is a similar but simpler audio editor - again, WASM-based. Gemini

Sonnet 4.6 vs MiniMax M2.7

Based on several (i.e. two) recommendations, I subscribed to MiniMax. At $10/month, you get 1,500 requests every 5 hours and 15,000 every week. That’s a LOT! Using the same prompt I had Claude Code generate two data stories: The first paragraph, by Claude Sonnet 4.6 The first paragraph, by MiniMax M2.7 Here’s my comparison of the two. It’s partly based on Claude Opus 4.6’s comparison but I felt the same way. ...

Gemini CLI harness is not good enough

I’ve long felt that while the Gemini 3 Pro model is fairly good, the Gemini CLI harness isn’t. I saw an example of this today. Me: Tell me the GitHub IDs of all students in this directory. Gemini CLI: SearchText 'github' within ./ Found 100 matches (limited) Sending this message (14606686 tokens) might exceed the remaining context window limit (1037604 tokens). Me: Only send the (small) required snippets of data. Write code as required. ...

AnalAIzing Cloud Costs

I have a GitHub Education since I teach at IITM. But if I switch back to a free account, how much would I need to pay? I asked Codex (5.3, xhigh): My GITHUB_TOKEN is in .env. Go through my GitHub billing. Ignore the $100 sponsorships I make. Other than that, my current metered usage is $6.71 for Feb 2026 (which is included in my billing plan). $0.35 comes from sanand0/exam and $0.34 from sanand0/blog and so on. That’s coming mostly from “Actions Linux”, occasionally “Actions Storage”. Pick a few of the top repos and tell me what I should do to make the cost zero - or reduce the cost as much as possible. See if there’s a pattern across repos. ...

2025 7

LLM creative tool capabilities

I asked the popular chatbots for creative ways to use tools they have access to. Here are the responses. I did not know ffmpeg could visualize audio via filters. I had a coding agent generate a dozen stunning visualizations of a 12 second clip and create a very interesting compilation video. This indicates that coding agents can be used to explore lesser-known features of complex tools like ffmpeg, and create impressive results with minimal human input. Effectively, discovering hidden capabilities of software through AI assistance. Enabling more creative uses of existing tools. This could be a powerful way to unlock new functionalities in widely used software. You have a container environment with a set of tools installed and you can run commands. Identify creative ways in which the tools you have access to can be used, combined, or extended to create new capabilities or powerful workflows that most people don't know about - perhaps that no one has thought of anyway. Begin by identifying strategies (e.g. single tool unusual use, e.g. ffmpeg to create visualizations from audio; or single tool interesting combinations of workflows, e.g. multiple ffmpeg visualizations + static titles strung together to form a collage / mix; or multiple tools combined in creative ways; or ...) Then apply the strategies to identify concrete ideas. Save it in an ideas.md and let me download it. I leave you to decide the length of the list but I want as long a list as possible. Fact-check by cursorily verifying the command options - by running and testing -- for capabilities you may not be sure of, etc. But no need to implement any of these. I will pick from these and ask you to implement later. BLOW MY MIND!! Expand to read their responses: ...

When I realized Aishwarya Rai begins and ends with AI, I had to find out if there were more like her. It took a coding agent (Claude Code in this case) 10 minutes to find the 10 celebrities who share that distinction, at least across the 24,086 names on Wikipedia: Ai Nagai - Japanese playwright Aiguo Dai - Chinese-American atmospheric scientist Ai (poet) - American poet Aisea Nawai - Fijian rugby player Ai (singer) - Japanese-American singer Aisha Chughtai - Pakistani actress Aiyappan Pillai - Indian social reformer Aizawa Seishisai - Japanese Confucian scholar Ainmuire mac Sétnai - Irish high king Aisha Yousef al-Mannai - Qatari artist Glory be to these AI bookends! ...

If a bot passes your exam, what are you teaching?

It’s incredible how far coding agents have come. They can now solve complete exams. That changes what we should measure. My Tools in Data Science course has a Remote Online Exam. It was so difficult that, in 2023, it sparked threads titled “What is the purpose of an impossible ROE?” Today, despite making the test harder, students solve it easily with Claude, ChatGPT, etc. Here’s today’s score distribution: ...

I asked multiple coding agents and models to build the same app: Create a single-page web app at index.html that beautifully renders a GitHub user profile and activity comprehensively. Pick the ID in the URL ?id=…, default to ?id=torvalds. … and compared their quality, cost, and speed. My observations: Quality variance is the highest. Some models / agents produce great visuals, some average, some fail completely. Cost and time variance are lower among the successful models. About 2X variance in each. ...

Alibaba released an open-source coding model (qwen-coder) and tool (qwen-code). qwen-code + qwen-coder cost 8 cents and made 3 mistakes. https://lnkd.in/gguSGdv6 qwen-code + claude-sonnet-4 cost 104 cents and made no mistakes. https://lnkd.in/gEPnVS-F claude-code cost 29 cents and made no mistakes. https://lnkd.in/gyCVeAr4 There’s no reason to shift yet, but it’s a good step in the development of open code models & tools. LinkedIn

I use Codex and Jules to code while I walk. I’ve merged several PRs without careful review. This added technical debt. This weekend, I spent four hours fixing the AI generated tests and code. What mistakes did it make? Inconsistency. It flips between execCommand("copy") and clipboard.writeText(). It wavers on timeouts (50 ms vs 100 ms). It doesn’t always run/fix test cases. Missed edge cases. I switched <div> to <form>. My earlier code didn’t have a type="button", so clicks reloaded the page. It missed that. It also left scripts as plain <script> instead of <script type="module"> which was required. ...

Turning Walks into Pull Requests

In the last few days, I’m coding with Jules (Google’s coding agent) while walking. Here are a few pull requests merged so far: Add features via an issue Write test cases Add docs Why bother? My commute used to be audiobook time. Great for ideas, useless for deliverables. With ChatGPT, Gemini, Claude.ai, etc. I was able to have them write code, but I still needed to run, test, and deploy. Jules (and tools like GitHub Copilot Coding Agent, OpenAI Codex, PR Agent, etc. which are not currently free for everyone) lets you chat clone a repo, write code in a new branch, test it, and push. I can deploy that with a click. ...