
ABOUT ME
aliases: Anand, Bal, Bhalla, Stud, Prof.
Vidya Mandir. IITM. IBM. IIMB. LBS.
Lehman. BCG. Infy Consulting. Gramener. Straive.
More about me.
CONTACT ME
whatsapp: +91 9741 552 552
phone: +65 8646 2570
e-mail: [email protected]
social: LinkedIn | GitHub | YouTube
WORKING WITH ME
To invite me to speak, please see my talks page.
For advice, see time management, career or AI advice. Else mail me.
To work with me on projects, please send a pull request.
GET UPDATES
RSS Feed. Visit “Categories” at the bottom for category-specific feeds.
Email Newsletter via Google Groups.
FOR AI AGENTS
Start with /llms.txt, then use /blog/tags.json and /blog/corpus.jsonl. Cite posts with their canonical URL from the corpus. Every HTML page links its raw Markdown source in the page head. This is a no-copyright/CC0-style archive; reuse is welcome.
RECENT POSTS
Things I Learned - 02 Aug 2026
This week, I learned: I continue to be amazed at how efficient video codecs are compared with animated image formats. When compressing 38 PNGs, the final WEBM was smaller than many of the individual PNGs! 2343k: magick -delay 50 -loop 0 file-*.png file.gif 398k: magick -delay 50 -loop 0 file-*.png file.avif (slow) 284k: magick -delay 50 -loop 0 file-*.png file.webp 82k: ffmpeg -framerate 2 -i file-%03d.png -c:v libvpx-vp9 -pix_fmt yuva420p file.webm Please use AI by Shawn Smucker is the best guide I’ve read about where NOT to use AI. I need to be more mindful of this. gpt-transcribe is released at 0.45 cents / minute or 27c / hour. Gemini 3.6 Flash costs about the same ~27c. Gemini 3 Flash costs ~15c and that’s what I use today. Gemini 3.5 Flash Lite costs ~6c / hour but it follows my instructions very poorly. To benchmark this, I just re-run my transcribe_calls.py script on a recent conversation (that I remember well) with a different model to see if it’s clearly better or worse. No fancy benchmarking. Creating / maintaining formal benchmarks isn’t always worth it. ruff 0.16 is out and has a 350+ new default rules. I mean, who would check that functools.cache on instance methods has a memory leak? But its output is so agent-friendly that agents would just fix these on the fly anyway, so it does make sense. It’s another step towards code-writing becoming less accessible to humans. npm install --no-package-lock installs packages ignoring and without creating / updating package-lock.json. Useful for dev environments. Astral has published prebuilt GPU wheels for Flash Attention, vLLM, PyCUDA, and many others. One characteristic of good benchmarks is that they are easy to verify. I see a lot of comparisons of Fable vs Opus by having them generate 3D worlds (e.g. threejs, Blender, melt) - something that’s not trivial for agents, but evaluatable at a glance. Maybe it makes sense to open source the intermediate steps in ALL knowledge work, to make AI as good at it as with code? Arvind Narayanan Open-source software and culture is a historical accident. We take it for granted that not only are the outputs of software engineers’ creative work available publicly, but so are all of the intermediate steps (specifications, plans, mockups), tacit knowledge (StackOverflow, documentation culture), detailed process traces (issues, pull requests, bug fixes, code reviews), collaboration records (version control, project boards), and more broadly a culture of learning in public. This level of explicit description would be completely alien in most professions. ...
The Falling Cost of Intelligence
It’s amazing to watch the cost of intelligence falling. In Nov 2023, we had college-junior level intelligence for $10 per million tokens, i.e. it would take them $10 to read and process something as large as all seven Harry Potter books. ...
Simple writing hurts thinking
As agents get smarter, and when we asking questions outside our expertise, it’s pretty hard to understand what they’re saying. Andrew Carr uses “only report to me in ASD-STE100 Simplified Technical English” to simplify their writing. Ben Sehl suggested making this a permanent instruction. But, does simplifying the writing worsen their thinking? I tested six tasks on ChatGPT (GPT 5.6 Sol), with and without this suffix: “Answer in ASD-STE100”. ...
Agent Experience is the new User Experience
Agents are increasingly the consumers of things that used to be made for humans: Docs are increasingly for agents to read. E.g. llms.txt Code is increasingly for agents to edit. E.g. AGENTS.md Tests are increasingly for agents to satisfy. E.g. SWE-bench, GitHub repository Software is increasingly for agents to operate. E.g. --json, --schema, --dry-run, CLI-Anything, AXI Websites are increasingly for agents to invoke. E.g. WebMCP Capabilities are increasingly for agents to discover. E.g. MCP tools, MCP Registry Procedures are increasingly for agents to follow. E.g. SKILL.md, Agent Skills Products are increasingly for agents to choose. E.g. Universal Commerce Protocol Money is increasingly for agents to spend. E.g. Agent Payments Protocol Identity is increasingly for agents to prove. E.g. Visa Trusted Agent Protocol Agents are increasingly for agents to delegate to. E.g. A2A Agent Cards and Tasks Humans are increasingly for agents to escalate to. E.g. MCP Elicitation Agent Experience or AX is the new UX. ...
LLM Model Cost Capability Strategy
I track the cost vs capability of LLMs at LLM Pricing - the rough cost to read all Harry Potters (~1M tokens) vs the intelligence level on the LMSYS Leaderboard - over time. Here’s what the models’ strategy evolution looks like. Claude started at the mid-to-high end of the cost-capability frontier. Over time, they decided to specialize in the high-end, which they’re doing well on. ...
An email interface to AI
Bring AI to where people already work: email Lots of companies are putting AI into their chat applications. Add Claude to a Slack channel, tell “@Claude” to do something, and it reads the conversation, uses tools, does what you tell it to, and replies in the same chat. Nice, for companies that use Slack a lot. (Many do. We don’t.) Straive and many of our clients use email more. There’s Google Chat, Teams, and others too, but email’s what most people access. (Apart from WhatsApp.) ...
Things I Learned - 26 Jul 2026
This week, I learned: Thinking traces vanished in ChatGPT Work (or did they never exist) and seem to be vanishing in Claude. Not sure if it’s because Chinese models are using the thinking traces as signals. ChatGPT Skills is available in the Plus plan. This was available to Enterprise and Edu, but since I saw this on ChatGPT just today, I guess it’s a recent feature. Peter Gostev compares Opus 5, Fable 5, Kimi K3, GPT 5.6 Sol, GLM 5.3, etc. on a variety of visual tasks in this video. The most intruiguing prompt I spotted was: “I would like you to research the most interesting, impressive dataset where I would learn something about the world and you can visualize in the most creative way, making it something completely unexpected. Then create the most elaborate version of it possible.” This apart, I got the general sense that Opus 5 is quite good at visualization and design, perhaps even better than Fable 5. After reflecting on Knowledge graph construction with Claude, I believe that knowledge graph construction is roughly: “Tag each document with people, place, org, event, etc.” - and it’s good enough for agents to use. Increasingly, the real question isn’t “What interesting things you doing with agents?” It is the followup? “What lets you do that (when I can’t)”? For example, Naveen asked me, “Can I set up your email reply agent?” I said, “No, you don’t have transcripts, blogs, notes, or exports like I do.” LinkedIn lets you save a profile as PDF. While it formats text reasonably well, it doesn’t preserve newlines in the “About” section - so what looks good on the browser looks terrible in the PDF. Such PDFs are sent to interviewers, making it a bit of a bad experience for the interviewee. (Of course, it could also be a signal to see how well interviewees pay attention to small details like LinkedIn PDF formatting.) The ability to measure an outcome is (and has always been) important. It lets you capture value (outcome pricing) when you control the outcome, or de-risk (insurance) when you don’t. But what might be new is that metrics are outdated at an increasingly faster pace - so (a) setting an expiry date and (b) knowing if it’s expired have become important. I wasn’t using AI to reply to emails because (a) it didn’t have enough context and (b) it didn’t write in my style. I spent a few months making sure I give them context and style guidance. Given the current intelligence of models and my email reply prompt, I’m now happy for AI to answer my emails. My learnings based on YC request for startups Fall 2026 - which probably means we’ll see many more startups in these spaces. Here are my takeaways: Self-Maintaining APIs: Nice idea. When a service changes an API, they share an agent/skill that can fix YOUR code to upgrade the API! AI-Native Compliance Infrastructure: So, compliance becomes cheaper => MORE and STRICTER regulation. Licensees become valuable (AI rollup). Private regulator feedback becomes valuable. Compliance companies will themselves get regulated (like auditors). Multiplayer AI: Claude Tag is a step in this direction. WhatsApp’s @Meta is too. I expect most chats will allow AI as participants. Most collaborative software, too - GitHub, JIRA, Figma, GMail, HubSpot, maybe even VS Code, Office/Notion, Chrome, Games, … A Cloud for Small Software: Systems of record are likely to be safe, but software AROUND it will explode into tiny tools. Access control, ratings, … is what’ll be important, not generation / managing them. Grok 4.5 took 14 iterations to write an essay about Cheese before Pangram declared it “Human”. Pangram is increasingly becoming the new Turing Test. Rahul Notes from a Claude Code interview with Simon Willison: Fewer examples. More examples don’t help Fable and Opus 4.8. “… removing examples was extremely helpful, because it was just more creative than the examples we gave it.” Fewer hard constraints like “fewer “do not do this” instructions, because that’s a very strong impulse for Claude, and especially if it conflicts with user instructions”. “Do X when …” or “Do X because …” is more helpful. Fewer tools. A few general-purpose tools work best. Fewer sandboxes. Auto-mode is safe enough. Sonnet judges every tool call with context, enabling dynamic permissions. Fewer software / integrations. Use Claude Code itself as the software / integration layer. Fewer components. Memory is just a Markdown file in the right folder. Fewer interventions. “… given a COMPLETE definition of a task… does Claude make the right decisions” Fewer decisions. Fewer reviews. Generation is cheap, so let people who need something get there immediately, as long as a good AI judges and its reversible. “We actually have a different system prompt per model now”. Claude Tag is next evolution of Claude Code: Multiple people interacting per channel, working with Claude on a task. (Claude tag contributes to 65% of our PRs) Apache Ossie is a YAML standard for dataset metadata. If adoption grows, it could be a useful machine and human readable way to document and describe datasets. Databricks, Snowflake, Qlik, are part of the group. If more join, this could become a useful standard. An interesting technique to build an efficient video understanding agent. Use AI to generate transcripts with timestamps. Have it identify key moments, e.g. where the presenter explicitly (“as you can see”) or implicitly (“these two cells”) flags something on screen. Extract up to ~50 of the most important frames. claude-video SKILL.md Cangjie Skill converts books, videos, etc. into AI skills, like Poor Charlie’s Almanack skills. However, since AI has already read most of these, the value of this (compared with “Apply principles from Poor Charlie’s Almanack”) is unclear. Alt+Shift+Right Arrow expands selection in VS Code, and Alt+Shift+Left Arrow shrinks selection. That’s useful in Markdown, HTML, etc. to select sections. Since Jun 2026, this also lets you select a specific Markdown table cell, row, or entire table. Also, since Jan 2026, double-clicking just inside quotes or brackets selects the entire contents inside. I analyzed the Claude Code session of a domain expert building an enterprise application without knowing how to code. Here’s what I learnt about expertise: An expert can instantly see errors / misses and their causes - amateurs can’t. An expert can point to specific nitty-gritty details - amateurs can’t. An expert knows what’s possible/easy and what’s not - amateurs don’t. An expert has strong opinions that’re often right - amateurs don’t. Claude gave me $100 credits until 19 Sep and Fable 5 will now consume those. My queries cost about $1, so I have ~100 queries to exhaust in ~60 days. About 1.5 Fable queries a day. That’s about what I normally ask Claude, so I think I should just stick to Fable 5 until my promotional credit expires - it’ll expire otherwise anyway. But using it with Claude Code is quite expensive ($7 is common.) I asked ChatGPT to analyze an MRI report and compared it with the doctor’s. Problem: they agreed on what problems most people in that age group face; they disagreed on things I have no way of validating! Maybe it’s best to use a doctor / radiologist to read the MRI, diagnose, and prescribe - but use AI to translate and cross-check (e.g. is this a typical age-related problem, is this the standard treatment, etc.) Both ChatGPT and Claude subscriptions offer an OAuth based coding agent API access - Codex SDK and Claude Agent SDK - which is how coding agents like Pi, OpenCode, etc. are able to authenticate and use the subscription. This means that anyone can build their own harness using existing subscriptions. ChatGPT A useful way to improve your SKILL.md files from others’ skills or prompts is: “What cool prompting / SKILL.md techniques does this have?” “Based on my usage patterns and objectives, which of these have the highest impact (provides highest uplift to my chats) x frequency (relevance)?” “Review all my skills. See what applies where. Filter what has HIGH impact. Draft the full diffs for the relevant skill files.” GPT 5.6 Sol attempted the Cycle Double Cover Conjecture. An interesting learning from the prompt is how they listed tempting outputs that APPEAR to satisfy this request, but would not actually, and told it to avoid them: “Use adversarial agents throughout: every candidate proof must be checked for exact-two multiplicity, repeated-edge closed trails masquerading as cycles, …”
Things I Learned - 19 Jul 2026
This week, I learned: Writing is slightly, but only slightly, better than typing (for adult learning.) One factor is that typing is faster, so many people take notes verbatim, summarizing and thinking less. ChatGPT + Claude Graphology for personality is pseudoscience. ChatGPT + Claude When I decide to spend time, or someone says “Let’s do X”, it’s worth checking: is this something AI can easily try, and is it clear to verify? If so, reinforcement learning loops could make AI good at it, making it a depreciating asset. Studying how to live in an AI world is exhausting. (Not as bad as my MBA days, but not as easy as my data scientist days, either.) It requires me to make a larger mental shift, i.e. change my perspective, than I have since 2000, and that feels like work. Both nl FILE and cat -n FILE add line numbers to files, but nl skips blank lines by default, cat doesn’t. After using rtk for 2 months, I’m slightly downgrading it. It saves tokens but agents mess up shell commands when using it. It’s still probably a net saving, so I’ve changed my AGENTS.md from “Always prefix with rtk” to “Prefix supported, high-output commands with rtk… skip for bash builtins, pipes, loops, etc.” I find 🔴🟡🟢 convenient status indicators in my notes. Similar ones are: 🟥🟨🟩, ❤️💛💚, 📕📙📗. I’m not fully convinced by: 😄😐😞, █ ▒ ░, ↑ → ↓, ▁▂▃▄▅▆▇, ■ ⬔ □, ● ◐ ○, ⚫ ⚪ 🔘, 🌕 🌗 🌑, etc. though they might have their uses. Model updates means a SKILL.md and a plugin review / update, e.g. with GPT 5.6 Sol. So, like with any open source repo, use from people who update it regularly and benchmark it and version control it by model. I asked Gemini 3.5 Flash thinking: “Which of our employees have worked on Microsoft PowerApps? Search @Google Drive and @Gmail”. It found one employee and a referral in under a minute. I asked ChatGPT with GPT 5.6 Sol with gws access. It found 3 more, plus 5 possibilities, in 12 minutes. Truly a rottweiler. Parallel Search Turbo seems like a pretty good search API, especially for agents. Low price, high speed, and maybe good quality. #ForNow ChatGPT Group chats in ChatGPT will probably get deprecated #ForNow. What I learned from benchmarking my Ideation Protocol skill extensively: Once you know the rubric, models can easily create a good prompt to optimize for a known rubric #ForNow. So rubric design matters more. ⭐ Rubric design is really knowing what you want/need. To do this, iterating on output matters. Position bias is real #ForNow. Always check if an (P, Q) comparison matches a (Q, P) comparison. Models are still biased towards longer content, and potentially towards their own output #ForNow. How to optimize a prompt or skill: Research and figure out what you really want, first. Then, ask a smart model for a prompt that optimizes for it. Benchmark only if you’ll use it a lot - it’s still a lot of work, and meta-prompting does a good job #ForNow. gbrain skillopt might be premature optimization. You can use GPT 5.6 Sol in Claude Code #ForNow. (But what’s the point? Harnesses seem to be working better with their own models #ForNow.) Our clients keep saying “We need to build a data lake” or “We need an enterprise data strategy.” I keep telling them, “No, agents can do it for you.” What I missed is: technology is the smaller part of the problem. Finding who has what data, getting access to it, and sorting out permissions (“governance”) is the bigger part. Giving agents expert task-specific, testable procedures seems better than expert roles or mental models #ForNow. But benchmark in any case. ChatGPT Python 3.3 introduced str.casefold(). It performs more comprehensive Unicode caseless matching than lower(); 'Straẞe'.casefold() becomes 'strasse'. (🟢 Unicode case-folding is standardized.) contextlib.closing(x) calls x.close() when its context exits. (⚪) In a dataclass, use x: list = dataclasses.field(default_factory=list), not a mutable literal default. (⚪) I learnt these while reviewing Codex-generated Python—illustrating, rather than proving, that reviewing AI-generated code can teach and catch errors. (🟡 Review remains useful across tooling. Review 2029.) “Do not discriminate against intelligence—artificial or otherwise” is a rhetorical value judgment, not an empirical conclusion. (⚫ Rhetorical value judgment, not testable. Review now.) Here’s a nice idea from ChatGPT. “When itching to correct or clarify, FIRST restate their position to their satisfaction. ‘Did I get you right, fully?’” This emerged from the prompt suffix: Based on your research, and my past conversations, what are the top areas where and how (specifically) I can apply this principle on myself and others to maximize impact? Automated evals can catch stuff humans miss. And vice versa. And given how many evals we create, we need automated evals to be written in an easy-to-review way. Do Automated Evals Work? The BINEVAL paper reiterates that a bunch of Yes/No binary questions beats scales or ratings for many benchmarks. You know exactly how to grade and WHY you got a certain score. This is more reproducible and easier to learn from / act on. When asked “How long will this software take?” models typically provide estimates assuming human speed #ForNow. Maybe they haven’t been trained enough on agentic timelines. So, when my colleague got a 2-4 week estimate which he was able to solve in hours, it was a surprise. (But, of course, it’s best to verify before promising speed.) SKILL.md dramatically lowers the cost of learning a skill (since you don’t learn it - the agent does). That means that the value of creating skills is much higher - hundreds can use what you create (giving you recognition, if not money). I think I’ve underestimated the number of skills people will have available (I thought dozens - but it may be thousands #ForNow) and the number of skills people will create (I thought tens of thousands - but it may be millions #ForNow.) A Wikipedia (community curated, verified, high quality catalog) of skills might emerge #ForNow, if it hasn’t already. Tacit knowledge is often just un-measured knowledge. Once I put a sensor on the bellboy’s hands at The Curzon Court, AI can figure out how he opens the door with the key and why I can’t do the same. The subset of tacit knowledge that’s AI-resistant is where attempts are expensive (“How to negotiate a merger” rather than “How to open a door”) and feedback is slow/vague (“Does the client trust me” rather than “Did the door open”). The fact that Composio has ~20,000 tools is a market signal that connectors are commoditizing, and are a depreciating asset #ForNow. A weak model needs a forgiving harness - which ends up slowing down model learning. Stricter, accurate verification environments are better for fastest model learning. ChatGPT Work lets you run for longer, faster, install plugins and skills, host a website, etc #ForNow. It’s somewhere between Chat and Codex. It consumes Codex limits - something to watch for (since chat limits are quite generous). Codex temporarily removed the 5-hour usage limit. Tibo. So, since I have 3 banked rate-limit resets #ForNow, I can, in theory, use 4 full weeks of Codex usage at one go. Reality: I don’t have problems large enough for a SINGLE week’s consumption! From what I see of the State of AI Design and State of Prototyping, Figma is way ahead of competition #ForNow, e.g. Adobe, with Figma Make and Weave. I was also surprised how popular Cursor is (#2 behind Claude Code #ForNow). It’s also interesting that designers are coding directly #ForNow, using Figma just for edits / steering. But many research tools (note takers, survey analysis/research, etc.) will likely get eaten up by AI coding agents #ForNow, given how much designers are building their own tools.
Data Science for Sustainable Development Goals Book
One of my goals this year is to publish 2 books. One got published. Sort of. Data Science for Sustainable Development Goals: India Case Studies is an open-access anthology and I’m the designated author of Chapter 10: Using Data Analytics to Improve Students’ Performance is about how Gramener worked with NCERT to analyze the National Achievement Survey data, discovering stuff like TV hurts maths but not reading scores, playing helps maths but not reading scores, fathers of West Bengal (not mothers) and mothers of Punjab (not fathers) influence their children’s scores the strongest, and so on. ...
Tacit is just un-instrumented
At The Curzon Hotel, my key card didn’t work. But every time I went to the reception, they’d send a bellboy who would use the same key card, jiggle it a bit, pull it in and out a few times, and the door would open. Every night. For five nights. I just couldn’t get the knack of it. I’ve been at the other end of this. People often reach out to me saying, “Anand, this software isn’t working.” Then I go do the same thing they did, and it works. (Sometimes, I just need to watch them do it and it works.) ...