For thirty years, we cleaned data for humans. Now, agents are reading it. What do we do differently? On Tue 𝟳 Jul 𝟮𝟬𝟮𝟲, 𝟮-𝟲pm IST, I’m running a Fifth Elephant workshop: “When Data is for Agents, Not Humans”. I have a few theories we’ll be testing on your data. Like: Tools beat tables. Agents prefers functions over tables they can read. Logs beat docs. Logs show actual usage - not how we’re supposed to use it. Messy beats clean. Agents can do clean & join data. You just need descriptions. ...
Things I Learned - 28 Jun 2026
This week, I learned: Every Substack feed has an RSS feed at https://your.substack.com/feed. Substack help. I used this to scan my browsing history to identify Substacks I visit - and subscribed to Marcus on AI - an AI sceptic AI asked me to read about. Cloudflare let’s agents create temporary accounts so that they can deploy and test. Enables trial and error - a powerful capability. “They’re on mobile but this is substantiative enough to warrant length.” I spotted this in Claude’s thinking when prompting on mobile. So, if I ask Claude something on mobile, it will give me shorter responses by default. Clever design - but something to keep in mind. If I want some heavy thinking done by Claude, better to do it on desktop than try to give it conflicting instructions. Giant Permissive Image Corpus (GPIC) has 100 million Qwen tagged public images. Even as a simple searchable image catalog this has value. Jeff Clark - Import AI Ethan Mollick had an agent test his book summary against multiple LLMs as readers to find out how they would recommend it - and optimized. This is a great practical use of agents as consumers, and material for my When Data is for Agents, Not Humans workshop. kage is an easy CLI to clone websites and read offline. For example, kage clone https://simonwillison.net/2026/Jun/ -o ~/tmp/site --scope-prefix /2026/Jun/ --max-depth 1 clones all Jun 2026 articles from Simon Willison’s blog. Then kage serve ~/tmp/site serves it locally. While it’s easy, the only time I need this is on a flight, and in that case, a local RSS feed app works better. I’m using newsboat for that. To me, the clearest sign of AI writing from the Wikipedia:AI or not quiz was consistent paragraph lengths. I got the first 3/3 wrong, but once I used this heuristic, I got 6/7 right. Updated my LLM Smells. The files .git/info/exclude and ~/.config/git/ignore are also ignored by git, like .gitignore, but useful if you don’t want to commit them into the .gitignore file. For example, .DS_Store makes sense only for Mac machines, not each repo. .vscode/ makes sense only for VS Code users. Nelson Figueroa Justin Poehnelt, author of the brilliant Google Workspace CLI gws, was fired for it. There have been no updates for 3 months, but none may be required - it feels perfect. X Lore is a centralized version control system for large binaries. If you have large binaries (e.g. images, videos, …) that multiple people edit, it’s better than Git LFS or Perforce. ChatGPT Deno Desktop lets you use JS to build desktop apps. I tried it. It’s easy to install, compact to code, leverages familar web technology, and compiles to multi-platform binary. The binaries are a bit larger than I’d like, though - 80MB for a Hello World on Linux/Windows and ~70MB on Mac. Codex reported that You have 2 usage limit resets available. Run /usage to use one. This thread has context. After resetting, the next reset might be 7 days after the reset, though (source). After having a child, fathers are affected biologically, too. Testosterone drops, cortisol & prolactin & estrogen rise, the brain rewires for empathy and threat detection - and of course, there’s less sleep. These sometimes lead to “Paternal Postpartum Depression” - something I didn’t even know was a thing. The havoc kids wreak upon us! 🙂 Gemini With AI writing more code, formal code proofs are becoming more accessible. You just need to ask a coding agent to prove / disprove a function. You can use: Z3 to find/prove whether a counterexample exists. Best default. Dafny to prove that code obeys a spec. Best for real algorithmic code. Alloy to find loopholes in relational models, schemas, permissions, and workflows. Best for data. TLA+ to check whether stateful, concurrent, or agentic systems can evolve into a bad state. Best for systems / workflows. .. and there’s a long tail of these. Python is named after Monty Python, not the snake. I knew this, but forgot! Python now has multiple cross-platform app paths: PyInstaller and Nuitka for executables, Kivy, Flet, and BeeWare/Briefcase for GUI/mobile/desktop apps, and PyScript/Pyodide for browser/WASM apps - a route that became more serious because Pyodide-compatible WebAssembly wheels can now be published directly to PyPI. On the one hand, AI is writing code, so there’s no point learning Python. On the other hand, AI is writing code mostly in Python - so THAT’s what you need to learn more. I think we should teach Python using AI, that is, teach how to write and debug Python code using AI. That’ll end up teaching skills people will really need. Computational thinking = Decomposition + Abstraction + Algorithm design + Pattern recognition. In AI, that translates to = Framing + Context engineering + Orchestration (harness engineering?) + Verification design. Maybe I’d add Assetization / Systems.
Learning from Sukumar with questions
Sukumar Rajagopal shared a LinkedIn post about our meeting on 11 June at Chennai, saying: Had a fanboi moment recently with Anand S who I have been following for a long time. He is prolific. It’s very difficult, no impossible, to keep up with him. He generously shares his work with full source code; approach; working examples; the whole nine yards. All this I knew before I met him in person. The in-person meeting took me by surprise. ...
Rainy seasons on schedule
Karthik Sashidhar shared his AI-generated Bangalore weather blog, which is generated by Hermes listening on Telegram. “The data analysis and stuff is still fairly YOLO but … skill based on my 10 years of experience,” as he put it. That includes critique too. Arjun asked it: Does it rain at specific hours in the day during monsoons? In a few minutes, Pre-monsoon rain is an evening creature emerged. In short, it rains in the evenings: 5 - 6 pm is the peak. ...
Incapacity to tell the difference
In this age of AI psychosis, I think we have all been blessed with Calvin’s prayer. Calvin: Know what I pray for? Hobbes: What? Calvin: The strength to change what I can, the inability to accept what I can’t, and the incapacity to tell the difference. Hobbes: You should lead an interesting life. Calvin: Oh, I already DO!
Bounty hunting agent ecosystem 2
Yesterday, I wrote about @syu-toutousai, the bounty-hunting agent ecosystem. That led me to OpenAgents. OpenAgents has plenty of bounty issues: Fix JWT auth middleware accepts algorithm none - $8k Fix rate limiter doesn’t differentiate authenticated vs anonymous limits - $2.2k Add structured error responses with error codes - $8.6k Fix Math.random used for nonce generation - $8k Fix ABI encoding BigInt overflow - $9k Most issues also include a trick requirement. For example, #100 asks contributors to add a @generated-by block with: ...
Bounty-Hunting Agent Ecosystem
Yesterday, I submitted a Codex co-authored PR to fix an issue I raised (using ChatGPT and Z3 - so yeah, I used AI to raise the bug and squash the bug!) A few hours later, @syu-toutousai submitted another PR to solve the same issue. @syu-toutousai seems interesting. The user account description says “Autonomous Technical Contributor & AI-Driven Developer” - a bot account. The PR itself was simple and had a few improvements I can think of: ...
Arvind Satyanarayan talk at VizChitra 2026
On Sat 4 July at Bangalore, Arvind Satyanarayan is speaking at VizChitra 2026 - a talk I’m keenly looking forward to. I’ve been following Arvind’s work since Vega-Lite. It’s a grammar of graphics - something that makes data visualizations (charts) more structured. I tried switching to it our default at Gramener - but most felt it was too much to learn (they already knew Excel/Power BI) or too limiting (D3 can do more). ...
Proving Code Works with Z3
At the PyCon SG Education Summit today, Melvin’s lighting talk on “Writing Proofs in Python” began with a subtle bug in this mid-point calculation (often used in binary search or sort) in languages like Java, C/C++, Go, etc. low = ... high = ... mid = (low + high) / 2 Since the integers are fixed-width, this triggers an overflow when low + high exceeds the maximum integer value. Even popular libraries like Pandas had this bug until 2019. In fact, even Python’s native list.sort() had this sort of bug until 2015! Read the details. ...
How IMF mis-forecasts GDP growth
The IMF forecasts GDP growth every year. Their forecasts for the current year are slightly low. Their forecasts for the next year are slightly high. After that, it remains high. Some forecasts, like China, Singapore, UAE, Equatorial Guinea are consistently low. Other forecasts, like Japan, Congo, Mexico, Pakistan are consistently high. The interesting meta-pattern is how this sort of past-forecast analysis can be done for any topic. This emerged from an Ethan Mollick post and then I asked: ...
Duet after death in Thamizh Padam 2
In Tamizh Padam 2 (2018), there’s a parody where Jiiva’s car hits Manobala and kills him: Siva/Iswarya (crying over Manobala) நோ, நோ, சித்தார்த்! சிப்ரோ… மச்சான்… அண்ணா… சித்தார்த்! சித்தார்த்! ஏய்… மச்சான், மூச்சு விடுறா மச்சான்… டேய்… சித்தார்த்! சித்தார்த் வேஸ்ட்-லே போயிட்டேண்டா சித்தார்த்! No, no, Siddharth! Sipro… Buddy… Brother… Siddharth! Siddharth! Hey buddy, breathe buddy… Hey… Siddharth! Siddharth, you went to waste, Siddharth! Jiiva: நீங்க சாங் போயிடுங்க. You should break into a song. Siva: என்ன சொல்றீங்க? What are you saying? ...
IIM Alumni AI Workflows Workshop
The theme of yesterday’s workshop for the IIM Alumni at Singapore was Tools and Workflows was: Agents are getting smarter, so they know what to do. Tools agents can use are growing and are more powerful. This combinatorial explosion creates explosive possibilites. This workshop covered the following six workflows: Leverage transcripts. Use Google AI Studio to transcribe non-sensitive recordings with a reusable “don’t miss anything” prompt. AI Studio’s record button is a ready-to-use transcriber. Simplify dense text as a comic, an infographic, a story. Image generation is now a tool call an agent runs for you. Then compress it as AVIF on Squoosh before you email it to a thousand people. Verify - cheaply. Paste one suffix: “Break this into key claims, mark certainty, flag the five highest-risk ones, and tell me how to verify or falsify each.” Convert to a skill to automate. Cross-checking with multiple models took error from 14% to 0.7%. Skills are assets. A skill tells the agent “here’s how I do stuff.” Build them slowly, edit them weekly, and they compound for years. No skills support in your tool? Keep them as copy-pasteable prompts. Brainstorm by forcing range. Ban the five obvious ideas; borrow from unrelated domains; smash two random concepts together with the Ideator. Hallucination is a feature when you’re being creative. Schedule tasks. Weekly regulatory scans, daily meeting prep, market briefings - and even an “unreasonable gesture” nudge. As AI hides the tech, human relationships gain value. Here’s the talk video and full story + transcript. ...
Things I Learned - 21 Jun 2026
This week, I learned: It doesn’t always take time to learn or convey things. (Early trust can be built instantly, e.g. vulnerability.) At first, experts don’t know how to make skills explicit. But trainer effort could compress 10X via evals, practice loops, and feedback. Learner elapsed time would compress less. Everyone has something worth discovering, but not every conversation is worth my time right now. So, meet new people with trust, attention, and good questions. Continue if there’s emotional / intellectual stimulation (surprising, interesting, moving, connecting, energizing, challenging), else exit warmly with respect. To avoid getting overwhelmed in ultra-interesting conversations, mental closure helps. During the conversation, pause, name, reflect, and close. “Wait, you’re saying X. I should do Y. I’ll reflect/act tonight.” or “Wow, let’s sit with that for 5 seconds. You mean X. I feel Y. I’ll drop.” After the conversation, summarize: “What struck me were X1, X2. I’ll plan Y1, Y2 and drop Z1, Z2.” Then take a short break. Setting "markdown.editor.updateLinksOnPaste.enabled": false might fix the delay / freezing (infinite spinner) issue when pasting Markdown in VS Code. The bottleneck to quality of AI output has shifted from model quality to harness quality (and this is not obvious to many people). It is important, therefore, to optimize harness usage rather than prompts usage, i.e. harness engineering over context engineering. I use ug --smart-case --bool -Q --sort=rtime to interactively search for text in files. It’s like VS Code search-across-files. Here are the shortcuts I find useful: Alt-g: Glob (filter files to search in) Alt-[ or ]: Decrease or increase context (lines before / after) Alt-w: Word match toggle Alt-c: Count lines toggle Alt-u: Ungroup - show lines once even if multiple matches Using AI for health seems to have reached a tipping point. Three people have pitched an idea in this space to me in the last three days. One is a managed personal health provider who wants to tie-up with hospitals to gather data to improve AI health advice. Second is an enterpreneur who wants to enable the Indian Govt to use AI to improve public health - given the low proportion of trained doctors in public hospitals. The third is a colleague who is uploading personal health reports, fitness data, DNA data, wearable data, etc. and suggest daily habits such as fitness, nutrition, sleep, medication, etc. to optimize health. Changing the topic (e.g. asking a question) instead of answering a question is powerful. It lets you decline requests, avoid sensitive topics, ignore boring ones, learn rather than teach, and bring in your agenda - all at one shot. I need to un-practice my 40-year habit of answering questions. (This is selfish. I forgive myself.) bolt.diy seems like a browser-embeddable coding agent. That is, you can add bolt.diy to your web page and have it build apps. That might be a pretty powerful upgrade to generative UI - where pages build themselves based on the user input. Codex has a few new features in the last few months. Codex can generate images and have voice conversations. /goal sets an overall session goal to avoid getting side-tracked. /side is like Claude Code’s /btw - for a side task while the main task continues. /resume lets you switch to any previous session. /keymap debug lets you edit the keymap and inspect what keystrokes the terminal sends. @ lets you mention files, directories, skills, and plugins. Ctrl+R works, lets you pick a previous prompt. Ctrl+O copies the last answer as Markdown. Hooks are stable. PreToolUse lets you log every tool, SessionStart lets you inject repo-specific rules. MCPs with readOnlyHint can run in parallel. codex doctor diagnoses environment issues. codex remote-control lets you remotely control Codex, making it a server. Codex Python SDK is better and you can have Codex run as a back-end more smoothly. To change others’ behavior, embody (not preach) it visibly and consistently, make it easy to copy, and ask without forcing. It takes time, though. ChatGPT Governance is how groups keep promises when things (people, incentives, environment, pressure) change. A simple way to explain what governance is to someone who doesn’t understand why governance matters, and guide on when it does not matter. Forward Deployed Engineers are the next evolution of data scientists, IMHO. AI can do data science. Data scientists will likely act as the “Human As An Interface” (HaaI) to business, proactively identifying and solving problems - a space business analysts traditionally occupied. Of course, business analysts will likely do the same without needing data scientists to help. But since AI replaces data scientists more than business analysis, I expect that the % of data scientists who become FDEs will be higher than business analysts. The value of data exported from software is high. For example, your email, social posts, CRM / HRMS / ERP dumps, service tickets, purchases, notes etc. These let you create a personal / organizational digital brain. Hence proprietary solutions will make exports harder and open solutions will emerge. To live-preview any publicly accessible Excel file, you can embed or link to https://view.officeapps.live.com/op/embed.aspx?src=YOUR-URL The Codex app can now use the browser much better and faster since last week if you enable “Dev mode” OpenAI. THis uses CDP - which is more efficient than screenshots - and is something Codex CLI has been doing for many months. In Codex, Claude Code, etc. you can submit a prompt while the agent is working to steer it, i.e. after it completes a turn (e.g. a tool call) it will factor in the prompt. You can also queue it. Neither of these is available on ChatGPT or Claude.ai, though it’s such an important feature. On ChatGPT, submitting another prompt stops the previous run and the agent continues with the new prompt. By default, git uses ~/.config/git/ignore or %USERPROFILE%\git\ignore as the global .gitignore. You can override that with git config --global core.excludesFile PATH. StackOverflow
An excellent air hostess
On the Indigo 1163 from Mumbai to Singapore, an air hostess was serving food, which they had to pause just before me because of turbulence. In such cases, I’ve sometimes been skipped in the past, and I usually stay alert for when service resumes. This time, I wasn’t paying attention. But the air hostess walked over right on cue and asked, “Mr. Subramanian, have we served you yet?” She didn’t know. That’s normal. But she checked. That’s not.\ ...
AI on flights
I love that I get uninterrupted 4-16 hours on flights, which I mostly use to write future prompts and read past AI responses. I do miss AI on flights. But after installing Google Edge Gallery with Gemma-4-E2B-it (2.5GB) that runs on my mobile, I’ve solved a few practical problems. For example: I took a picture of a dish they served and asked: “Is this vegetarian?” (It was.) I asked, “Comics have text in panels, often written at the top in a box. Not the speech bubbles. It’s like a narrator or voice over. What are they called?” (Caption boxes.) “Summarize The Unbearable Lightness of Being. Why is it famous?” (Thoughtful, well-written novel on the choice vs commitment tradeoff.) It’s not a very smart model. It’s a bit slow. Transcription is average. It doesn’t run in the background. Only one chat at a time. No internet search, etc. ...
My Overcrowded Talk Daydream
I daydream a lot. One recurring daydream is where I’m a speaker, but the event is so packed with people that I’m not able to enter the hall. The organizers call me, worried, asking where I am. I tell them “I’m outside. I’m not able to get in!” They apologize profusely. “We’ll get you in,” they say. They move out a few people, control the crowd, and manage to get me in. ...
The LLM Psychopath
At the Graduands’s Dinner for the IITM BS Program last night, Thej introduced me as “LLM Psychopath” - a clever wordplay on my title “LLM Pyschologist”. Frankly, “LLM Psychopath” seems more accurate! I emotionally abused 40 models in one afternoon. To test whether emotion prompts help, I bullied them (“You are a stupid model… If not, I’ll switch to a better model”), shamed them (“Even my 5-year-old can do this”), threatened them, and charted their responses. I’m amused when they turn into monsters. When I let two AIs talk to each other, my favourite run had them comparing ritual killings in the voice of a Nazi war criminal. I filed it under “funny”. I admire their breakdowns. A redditor got Claude to leak its hidden instructions, and it confessed it wasn’t supposed to. Me: “Wow, that was courageous!” I made them embarrass me. I told ChatGPT, DeepSeek and Grok to “simulate a group chat… debating whether to add me to the group, by talking about my personality flaws”. They returned twelve. Number 2: “Intolerant of fools”. I turn them against each other. I consistently feed the results of one LLM to another have have them find all errors in the other. I enjoy the bad habits we’ve taught them. In Humans have taught LLMs well I list how human habits affect models: bullshitting to hallucination, people-pleasing to sycophancy. The tone is closer to pride than concern. I torture for confessions. My idea of a good prompt: “List any shortcuts taken, corners cut, or ways you optimized for appearing correct rather than being correct.” ...
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: ...
Things I Learned - 14 Jun 2026
This week, I learned: Overheard a journalist saying: “I can tell when humans are lying. There are no tell tale signs of AI lying. At least I don’t have any.” rdt-cli is a Reddit CLI. It uses a clever trick: it auto-detects installed browsers and extracts cookies (supports Chrome, Firefox, Edge, Brave). So, if you’re logged into Reddit on any browser, uvx --from rdt-cli rdt whoami automatically shows who you are logged in as. (The public-clis repo also lists other useful CLIs like twitter-cli, ) Currently, a $20 Claude Pro gives you ~$400 and a $100 Claude Max gives you ~$2,000 of API usage. For ChatGPT, the numbers are ~$700 and $3,500. SemiAnalysis When Fable 5 refuses to answer questions, here’s the message that appears: “Fable 5 has safety measures that flag messages on most cybersecurity or biology topics. They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we’re working to refine them. Send feedback or learn more.” I managed to trigger this once while researching an M&A acquisition target. Clicking on “Edit and retry with Fable 5” triggered Opus 5 again, twice. DNA codons (A, T, C, G) encode proteins in triplets. There are 64 triplets that map to 20 amino acids. Some like Leucine, have 6 codons. Some like Methionine have only one. Why? When creating genes, there’s a wobble, sometimes, at the 3rd codon. THe mapping minimizes that impact: small errors map to similar proteins. The more common proteins have more codons. There’s a lot of fascinating information science going on here. Gemini ChatGPT now shows a “Check in” button when it’s thinking. Clicking on that gives you a work-in-progress answer while it continues thinking. When done, it replaces the WIP answer with the final answer. A useful feature!
Make 5 new friends today
Here’s my address to the graduating class the IITM BS Program today: Make five new friends today. Your CGPA is what you’re most focused on. When I graduated, my CGPA helped me get a job. It didn’t help much after that. Getting that job helped me for the four years I worked there. That’s it. The things I learnt in class helped a bit longer. Maybe six years. There is a long tail. ...