2026 67

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.

Local agents are good but slow

Last year, I shared how local LLMs are expensive. There are only 3 reasons to use them over an inference API: You have no choice, e.g. Government, pharma, finance, or other sensitive data. You have free GPUs, e.g. your laptop, local data center with sunk cost, free cloud credits, etc. This doesn’t scale. You want to learn. This year, I finally started using them for a combination of #1 (on flights) and #2 (my 8 GB NVIDIA RTX 2000). ...

What can AI not do

Over the last few weeks, I asked 166 people: What’s something you did not ask AI last week, because it can’t do it? There were 4 groups of responses. 37% said “Reliability”. AI tries but fails often enough. Like: Verify & return exact source of information. Generate accurate images. Completing PDF accessibility reliably according to the WCAG 2.2 standard. Converting 2D interior design to 3D view as vision models are not good keeping things as per scale. Create a user manual based on my codebase. I have asked this before and it has failed. 27% spoke about “Reach”. AI can’t access tools, data, or do something. ...

My predictions in 2025

In 2025, I made a number of predictions on this blog. (Not intentionally. I just said stuff.) I asked ChatGPT to audit them. It selected 440 claims, filtered out vague or pending ones, and verified the rest. Here’s what I got right and wrong. 🟢 “My chat will overtake search in 12-18 months. When ChatGPT becomes my primary lens on knowledge…” (chatgpt-vs-google-usage.md:L27). Audit: This actually happened in your own browsing data: search led through April 2026; in May, chat jumped to 2,211 visits vs 1,319 search visits, and stayed comfortably ahead thereafter. 🟢 “Typed languages are better suited for vibe coding. This will likely lead to the growth of typed languages (TypeScript, Rust, Go) but also of typing in untyped languages (e.g. Python).” (things-i-learned-10-aug-2025.md:L33). Audit: TypeScript became GitHub’s #1 language in August 2025 and grew 66% YoY; GitHub itself explicitly connects the rise of typed languages to more reliable AI-assisted coding. This is unusually strong because you got both the direction and mechanism. (The GitHub Blog) 🟢 “Code Mode … is a smart way to use MCPs and a very likely future direction. Using LLMs to write code to call MCPs rather than directly.” (things-i-learned-05-oct-2025.md:L49). Audit: OpenAI’s current Responses API has essentially this as a named capability: Programmatic Tool Calling lets a model write and execute programs that coordinate multiple tools and intermediate results. (OpenAI) 🟢 “CLI optimization for LLMs will likely emerge. More CLIs (and wrappers / hooks in the shell) will improve output and error contexts for LLMs…” (things-i-learned-27-jul-2025.md:L86). Audit: By May 2026 you were yourself testing rtk, a CLI proxy explicitly producing compact agent-friendly command output; across 216 commands you measured about 50% token reduction. That is almost exactly the wrapper you predicted. 🟢 “In the future, AI that works directly with file systems, Model Context Protocols, and local APIs are likely to become more important.” (features-actually-used-in-an-llm-playground.md:L76). Audit: File-system-native coding agents became mainstream, while MCP expanded into both hosted and local integrations; Anthropic now packages local MCP servers as easy-to-install desktop extensions. (Claude Help Center) 🟢 “Agents are slow. Parallelizable tools … will grow. Tool speed … will become more important.” (things-i-learned-22-jun-2025.md:L106). Audit: Parallelism has become a central agent UX: OpenAI’s Codex app is explicitly built around managing multiple agents simultaneously; at the extreme, internal users now accumulate more than 60 hours of agent turns per day by parallel execution. (OpenAI) 🟢 “Companies-of-one will grow. Sole founder can handle support functions.” (things-i-learned-24-aug-2025.md:L14). Audit: Nasdaq’s Economic Institute finds one-person US business applications up more than 20% since early 2025, with essentially all recent application growth coming from solo businesses. Stripe separately reports solo founders reaching 63% of Atlas C-corps in Q2 2026. (Nasdaq) 🟢 “We will move towards an organization structure where developers are embedded with business teams rather than working as a separate group. Sort of like embedded executive assistance instead of a central typing pool.” (things-i-learned-08-jun-2025.md:L49). Audit: Forward-deployed engineer demand reportedly increased 42-fold from 2023-25, with roughly 9,000 roles globally by early 2026. The role is almost precisely “technical people embedded with the business to make AI work in its real environment.” (Reuters) 🟢 “Shadow apps will grow. Anyone can code. Users build apps with prompts, sheets, agents, outside of IT SDLC. Like Excel sheets.” (things-i-learned-24-aug-2025.md:L18). Audit: Microsoft now explicitly describes a “new wave of shadow AI”: users installing coding/desktop/SaaS agents outside traditional IT governance, and has built discovery products specifically for unmanaged AI applications and agents. (Microsoft) 🟡 “Agents generate diffs/PRs. Tools to edit and comment on these online will emerge.” (things-i-learned-22-jun-2025.md:L107). Audit: GitHub now measures PRs created and merged by Copilot coding agent, while review comments can be handed directly to the agent with “Fix with Copilot,” including batches of review feedback. That’s almost verbatim fulfillment. (The GitHub Blog) 🟡 “Models’ ability to orchestrate longer workflows will improve. Factor that into your application design.” (things-i-learned-10-aug-2025.md:L44). Audit: By mid-2026, OpenAI reports large increases in requests corresponding to >30-minute, >1-hour and even >8-hour human tasks, while Codex explicitly targets long-running tasks spanning hours or longer. (OpenAI) 🟡 “Code review process will be re-invented.” (things-i-learned-22-jun-2025.md:L109). Audit: GitHub has rebuilt Copilot review around an agentic architecture that gathers broader repository context, uses tools, produces findings, and can hand fixes to another coding agent. This is substantially more than autocomplete added to old review. (The GitHub Blog) 🟡 “Domain expertise will therefore become even more valuable in the near future.” (things-i-learned-20-apr-2025.md:L39). Audit: 2026 hiring evidence points toward domain/product expertise becoming more important rather than pure coding alone, particularly as AI handles more implementation and firms need people who can connect it to actual business functions. (Reuters) 🟡 “Validation is the New Bottleneck: Since coding is now much faster, the critical, time-consuming task has shifted to reviewing, testing, and validating the LLM’s output.” (things-i-learned-17-aug-2025.md:L90); you also predicted “The Quality Control (QC) function will become larger and more critical” (L95). Audit: GitHub has now productized exactly that bottleneck in Code Quality; more than 10,000 enterprises used its preview, and GitHub explicitly frames AI-accelerated code output as creating the need for trustworthy pre-merge quality validation. (The GitHub Blog) 🟡 “Agents generate technical debt faster than humans. Solving this will become a major problem/opportunity.” (things-i-learned-22-jun-2025.md:L114). Audit: GitHub’s 2026 Code Quality launch is close to a commercial instantiation of this forecast: AI increases code output, so automated quality/debt detection and remediation moves earlier into the development cycle. (The GitHub Blog) 🟡 “Governance will grow. Non-experts are acting like experts. Validation is more important.” (things-i-learned-24-aug-2025.md:L19). Audit: The companion to shadow AI has indeed been governance: Microsoft now ships specific discovery, monitoring and governance for unmanaged AI agents, while NIST has continued expanding formal GenAI evaluation tooling. (Microsoft Learn) 🟡 “Soon, we won’t just follow a lesson plan – we’ll have lessons built just for us. AI will track how we learn and adapt in real time. It’ll feel like having a personal coach in your back pocket.” (o3-is-now-my-personalized-learning-coach.md:L91). Audit: ChatGPT Study Mode now asks what the learner knows, adapts explanations, checks understanding, works from uploaded course material, and uses memory to personalize support; OpenAI explicitly describes the objective as personalized learning support available to any student. (OpenAI Help Center) 🟡 “Cost is going down so quickly right now that all you have to do is wait, and stuff will become available for a very affordable or even a free price.” (things-i-learned-16-mar-2025.md:L116). Audit: The broad direction held. OpenAI cut GPT-5.6 Luna API prices by 80% in July 2026 while simultaneously improving capability-per-dollar. The “all you have to do” part is hyperbole, but the price-curve forecast was right. (OpenAI) 🟡 relayed: “Control of chips and GPU compute is what will likely be the gameplay to control AI dominance globally.” (things-i-learned-02-feb-2025.md:L16, attributed there to Dario Amodei). Audit: Advanced-AI-chip export licensing remains an explicit geopolitical control mechanism in 2026, including restrictions and license review for H200/MI325X-class accelerators going to China. 🔴 “AI closes the gap between junior & senior devs – even when both use AI. Quality doesn’t suffer much. So onboarding can be faster, compensation ladder may shorten.” (things-i-learned-03-aug-2025.md:L52). Audit: The emerging evidence says AI changes the work but does not erase the expertise gap: experienced developers are better at steering/delegation, while low-experience AI-heavy contributions incur substantially more review and lower acceptance. (arXiv) 🔴 “LLMs already deliver hours of analyst work in minutes. Entry-level roles WILL vanish.” (goodbye-mba-hello-ai.md:L17). Audit: The labor-market warning was directionally good, but “vanish” is a major magnitude error. Stanford finds a meaningful relative decline among 22-25-year-olds in highly AI-exposed jobs, while employment remains substantial and overall exposure groups still show employment growth. “Entry-level hiring contracts sharply” would have scored much better. (Stanford Digital Economy Lab) 🔴 “Coders micro-manage LLMs. I think a novice will be more efficient and get better results than me.” (how-to-visualize-data-stories-with-ai-lessons.md:L285). Audit: Current empirical work points the other way in real software work. In a 22,953-PR study, lower-experience AI-heavy developers received 4.5* more review comments, had 31% lower acceptance, and took over 5* longer to resolve issues; qualitative work likewise finds experienced developers better at delegation and control. (arXiv) 🔴 relayed: “API access from model providers will shrink. Selling tokens is not a viable business model given lowering costs.” (things-i-learned-23-mar-2025.md:L19, from the Alexander Doria notes immediately above it). Audit: Almost exactly backwards. Model providers expanded their APIs into richer agent platforms, and token-metered API access remains a core commercial model - including premium pay-as-you-go modes. (OpenAI) 🔴 “APIs are likely to be replaced by just chat requests that will do the same thing. APIs might be replaced by RPA, where somebody uses a chatbot to do the equivalence instead.” (things-i-learned-16-mar-2025.md:L111-L112). Audit: Chat did become a front end, but the implementation moved toward more APIs underneath, not fewer: tool APIs, Responses, MCP, computer-use interfaces and programmatic tool calling are now the substrate agents use. (OpenAI) 🔴 “Software companies build ‘SaaS’-like apps today. Agents will replace apps. Instead of UI, workflows, and app logic, they’ll engineer prompts, APIs, and evals.” (agents-will-replace-saas-apps.md:L12). Audit: The interface-shift was right; “replace” was not. Gartner now forecasts agentic AI may expose roughly 20% of SaaS application spending by 2030 - meaning substantial disruption, not app extinction. Agents are often a new interaction layer over systems of record and APIs. (Gartner) 🔴 relayed: Models will “internalis[e] workflows … to wipe out the apps and workflow space.” (things-i-learned-23-mar-2025.md:L17, from Alexander Doria notes). Audit: “Internalize capabilities” was insightful; “wipe out” was the failed extrapolation. Enterprise applications remain a very large substrate even in Gartner’s fairly aggressive agentic-AI forecast. (Gartner) 🔴 “Demand for SaaS (one-size-fits-all) will shrink.” (things-i-learned-06-apr-2025.md:L89). Audit: Not yet. For example, Gartner forecasts Indian SaaS spending growing 18.9% in 2026, from $3.9B to $4.6B. AI is changing SaaS economics and seat licensing, but current demand is still growing rather than shrinking. (Gartner) 🔴 “The early majority have come in… Soon the late majority will come in asking for existing solutions that have already solved their problem for many others.” (things-i-learned-03-aug-2025.md:L44). Audit: This mapped your client/audience experience onto population adoption much too quickly. In 2026, US Census data put business AI usage around 17-20%, nowhere near a conventional late-majority phase. (Census.gov) 🔴- baseline error: “Given the cost and accessibility of drones, I guess drone terrorist attacks will soon emerge.” (things-i-learned-16-nov-2025.md:L43). Audit: They had already emerged. The UK government documented Daesh using small armed remotely piloted aircraft carrying grenades in Iraq in 2017; the UN had already been studying weaponized UAS use by non-state armed groups for terrorism-related purposes before this 2025 post. This is therefore a clean failure to establish the baseline, not a future hit. (GOV.UK) 🔴 relayed: “Personal writing with connection won’t go away. AI can’t give you heartbreak. But the rest of non fiction writing will vanish.” (things-i-learned-30-mar-2025.md:L69, under “Notes from Writing with AI”). Audit: Nonfiction is under real pressure, but “vanish” is nowhere close. UK nonfiction publishing still generated about GBP1.0B in 2025, down only 3%; the wider publishing industry reached record revenue. (Publishers Association) Legend: ...

Comic art style prompts

Many people commented that they liked my comic illustrations and asked how I create them. Here is my process: Paste a reusable prompt fragment that’ll take any content, think about what to draw, then draw it. Paste a style variation for different comic styles (optional). Paste the content itself and run it. I use ChatGPT with gpt-image-2 more often than Gemini with Nano banana 2. Here are the prompts. STEP 1: Reusable Prompt Fragment: I have a few of these right now: ...

AI tax returns 2026

On 16 July, my auditor sent me a draft Indian tax return: a refund of Rs 3 lakhs. I gave ChatGPT my AIS, Form 26AS, bank statements, mutual fund statements, property papers, travel records, prior returns, and so on, told it not to look at the auditor’s draft, and asked it to calculate my tax independently. It calculated a refund of about Rs 2.8 lakhs, roughly Rs 20K lower. (Less money, but a smaller refund felt less worse than a larger tax.) ...

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 ask 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”. ...

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. ...

Things I Learned - 12 Jul 2026

This week, I learned: How to become an applied AI engineer is a concise, well-written, and suprisingly current summary of what AI engineering is. Xinjiang seems to be China’s Kashmir problem. Not quite, but similar. Analogies for how forward deployed engineers work: It is like a food truck that brings and serves home food while building a kitchen and restaurant around it. It is like setting up a field hospital: patients are treated from day one, while the equipment and procedures are built around the live work. Froghoppers excrete ~300x their weight daily. ChatGPT There’s a growing shift away from AI-written commit messages, e.g. Kenton Varda. I compared my human written commit messages vs AI-generated commit messages and the AI-generated ones are less helpful. Finally, GPT live gets an update and the new speaking model can delegate to GPT 5.5 when required. I tried it once today, to plan for a teacher workshop, and it was fairly good. It tends to begin with “Hmm” like it’s thinking, which feels comforting. Using a Unicode character like 🟢 is unusually low-risk across file systems today. It works well across OSs, mobile, ZIP, attachments, file share systems, etc. Some old apps might have trouble, but for storing and sharing, it’s fine. I’ve been using Unicode symbols like these a lot in my notes, and extending to file names feels like a natural next step. Though swimming gets the most Olympic medals (11%), for a country chasing its first medals, 78% of first-medal breakthroughs came from Athletics, Wrestling, Shooting, Boxing, Judo, Weightlifting, or Taekwondo (which are 44% of medals) - where single athletes can win without a support ecosystem. ChatGPT JMFL accidentally emailed several people a letter intended for their brokers. It roughly said: “Many of you are recording client calls. That’s a regulatory risk. If you keep doing this, we’ll hold your payments, even fire you.” Several Smart TVs have software that let your TVs act as proxies for data collection companies. Include Security MapDraw is a convenient tool to annotate maps (e.g. routes, boundaries, places) and share or download it. There seems to be no way to edit the “About” message on WhatsApp Web. Though the help suggests steps, and the “About” mood/status is visible, there’s no way to edit it. (Editing on the phone works.) Cloudflare optimised a reader component by sometimes letting the input buffer fill fully. This inadvertently introduced a hard to reproduce race bug because the producer would close the socket if the buffer was full. The producer bug was old (it didn’t check if a flush succeeded or not) but was never visible since the readers never let the buffer fill in the past. Cloudflare A neofirm is a start-from-scratch AI-native business, e.g. Crosby’s AI-first law firm. An AI rollup is where a company buys small traditional firms and AI-enables them - like General Catalyst proposed. AI SaaS is selling AI agents to services firms. Give people free platforms and collect their data. Learn the supply-demand network patterns, what pepole value, and add value-added services. Claude Code checks if you’re working behind a Chinese corporate domain - somewhat sneakily - by changing an apostrophe or slash in the date to visually similar Unicode. Claude Code Is Steganographically Marking Requests You can use the Kaggle CLI via Codex to solve Kaggle problems. (AutoKaggle automates it - but is 2 years old.) But, like GitHub bounty hunting bots, we will probably have a Kaggle bounty-hunting bot ecosystem - maybe already do. OpenSubtitles2024 and subscene are large pre-AI subtitle datasets with a 2024 cutoff. IndicDialogue is a 7.7K OpenSubtitles snapshot of Indic language SRTs. The OpenSubtitles API lets you search by IMDb/TMDb ID and is up-to-date. A soup spoon is better than a table spoon (for soup), though both carry about the same volume, because you can fit a soup spoon it fully into your mouth (a table spoon is too long) and this reduces spilling. Here’s a sign of accelerating AI progress. I used to critique outdated techniques by saying “This feels like a 20th century approach.” Then “This feels like a 2010s solution.” Recently, “This is SO 2025-ish.” Now, “That’s Q1 2026. It’s Q2.” The 7-day week emerged from the Hellenistic planetary week and the Jewish week (not astronomy based), which Rome adopted, then spread by several routes to India, China, and worldwide. Unlike the astronomical year and month, the week is just a convention. Egypt, China, and Athens grouped days in tens; Etruria and Rome used 8-day market cycles; West Africa used varied cycles; Java used five days; Mesoamerica used 13- and 20-day cycles. Gemini I met an ex-photographer and learned that photography is another profession where technology (mobile cameras) squeezed the middle. Generation (taking good pictures) became cheap. Value moved upstream (direction), downstream (selection, editing, album design), and into niches (forensic, industrial, sport/event photography). Looks like Claude favors Claude Code. Might not be intentional, and just a result of training more on Claude Code data, but it does look like a network effect that could weaken open harnesses. Armin Rocher

Discussion with Arvind Satyanarayan

After Arvind Satyanarayan’s talk at VizChitra 2026, a group of us kept talking about machine learning, visualization grammars, creativity, software and education. The conversation began with a basic question. Why do modern AI systems work so well when the mathematics behind them can look surprisingly simple? The bitter lesson Arvind said that much of the mathematics behind machine learning is not especially complicated. What is unusual is the scale at which it is applied. ...

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.

Beating AI detectors by reading aloud

Ranjeeta asked me for an article for Built In. I went straight to ChatGPT and said: Write an article for Built In. Read the section below for context on Built In's audience, style, and content preferences. Read the pitch that explains what the article should be about. Then use my blog posts, talk content, transcripts, TIL, etc. Write an article using my writing style. … and gave it all related information. ...

When Data is for Agents Not Humans Workshop

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. ...

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. ...

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). ...

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: ...

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. ...

Data Stories with AI Workshop

On Sat 13 Jun 2026 at 3 pm, I conducted an online workshop on Data Stories with AI. Registration link: https://forms.gle/dNkUxtJ2PVqNMNcE9 In this workshop, the audience used ChatGPT and Claude, mostly, to: Find data Analyze it Extract insights Visualize as stories It’s a data visualization using AI workshop for journalists - but you don’t need to know data, visualization, journalism, or even technology. But this is a practical workshop. You’ll be doing stuff and sharing your results. ...

How AI bottlenecks shift

I wrote about my changing AI opinions. At least some of this is because the industry is moving so fast that the bottlenecks keep shifting. Here are four examples of how we AI couldn’t do something (the bottleneck), but that became possible, and the bottleneck shifted - changing the way we work. It’s good to keep this in mind when thinking about AI. Coding: “It can’t write useful code. We can’t get real help.” But in Sep 2022: GitHub finds Copilot developers are 55% faster. “It writes code but doesn’t know our codebase. We can’t let it touch real projects.” But in Feb 2024: Gemini 1.5 Pro has 1M-token context ~ 30K LOC". Cursor indexes code. “It understands the repo but can’t ship a fix on its own. We can’t hand it a whole issue.” But in Mar 2024: Devin solves 14% of SWE-bench - up from 2%.. Verified SWE-Bench is now 70%+. “It ships fixes, but we can’t review them fast enough or trust they’re stable.” Oct 2024: DORA 2024 finds AI hurt both throughput and stability. Now: Sep 2025: DORA 2025 finds is positive but stability stayed negative. Now: Jul 2025: METR’s RCT finds experienced devs 19% slower. Agents ...

Retire the Verify Button

My post “Add a Verify Button” has a problem. When Rohit requested hyperlocal news for every PIN code in Mumbai, we’d need a “verify” button on every Statoistics card - hundreds of PIN codes, every day. Verifying every output introduces new bottleneck: a person inspecting every unit. That’s 100% inspection - which you do when you don’t yet trust the process. Manufacturing solved this a century ago. At Western Electric’s Hawthorne Works (famous for the Hawthorne Effect), quality control meant inspecting finished products and pulling the defective ones. Walter Shewhart sent his boss a one-page memo; about a third of it was a control chart. ...

Add a Verify Button

Rohit Saran looked at the Statoistics cards my AI agents are generating for The Times of India, and asked about a small button under each one. In the list of Statoistics that you had put, I saw there’s a button called ‘Verify.’ What was that meant to be or will do in future? That verify button explains the claim, mentions the sources, and shows how to check the claim. One card said “9 in 10 Indians want a family doctor and barely 1 in 35 has one”. The button breaks that down: ...

ChatGPT is about FIDE 1600

I asked ChatGPT to play chess with Stockfish. Stockfish is a “strong open-source chess engine”. It has 8 levels of difficulty, which roughly maps to these FIDE levels: Stockfish FIDE Player Level & Description Level 1 ~1000 Beginner: Constantly blunders, hangs pieces deliberately. Level 2 ~1100 Advanced Beginner: Fewer obvious tactical mistakes, plays completely aimlessly. Level 3 ~1200 Early Intermediate: Punishes very basic errors but regularly drops pieces. Level 4 ~1350 Intermediate: Plays standard opening moves; requires solid, blunder-free play to beat. Level 5 ~1450 Advanced Intermediate: Rarely hangs single pieces; you need positional advantages. Level 6 ~1650 Strong Club Player: Highly tactical. Aggressively exploits your mistakes. Level 7 ~1950 Expert: Exceptionally strong. Requires precise positional mastery and deep calculation. Level 8 ~2400 Grandmaster: Invincible for most humans. Plays with ruthless perfection. Full Engine ~3600 Our of human reach completely, “like a smart ant trying to debate physics with a human.” In the first iteration, here were the results: ...

Things I Learned - 24 May 2026

This week, I learned: BitWarden seems to be sneakily jacking up prices and going towards a PE sale. Might be time to shift out or self host. Sigh, I just migrated into it… Source Andrej Karpathy has joined Anthropic. Likely to use Claude to build better Claudes - automating AI research. Also, it probably isn’t a good time to build an AI education platform. Claude The open-source Chinese models about 6 months behind frontier models. Qwen 3.7-Max is on par with Claude 4.5 Opus (Nov 2025) and Gemini 3 Flash (Dec 2025). Google basically became Gemini. Entirely! I’m not sure there’s a difference any more. Which means it will scrape websites and not send traffic through - just killing the search economy. But it’s far more useful. Claude I wanted a list of sites I log into with my Google Account. Google’s Linked apps page does that. Unfortunately, I can’t find a way to use Google Takeout to export that data. So I wrote a scraper which can be single-shot prompted these days. As long as you remember to exhale, your chances of recovery from being ejected into space is pretty good for the first 15-60 seconds. Gemini I don’t understand half the comments I read on LinkedIn. Earlier, I was able to separate good from bad. Now, I’m not sure if what I read is actually insight or idiocy. Is the AI use making their comments too smart or making my brain too dumb? “Pax Memoriae”: peace of memory. Putting past conflicts to rest. The best part of it was, I learnt the phrase by typing “Pax” into VS Code and wasn’t sure what to write next. Before I could search for it, GitHub Copilot completed it. I searched for what it meant, and it was so apt! Children’s vision is worse than adults, but filter less and absorb ore irrelevant information than adults. This is useful for learning and surprise detection, but costly for focus, speed, and relevance. ChatGPT The word phobia comes from the Greek god of fear, Phobos, which is the name of one of Mars’ moon. Deimos, the other moon, is the Greek god of dread/terror. They’re the children of Ares (Mars), the god of war. Nice planet. On WhatsApp, I can type @Meta AI and then /imagine to have it draw an image. The quality is OK - not great, not terrible. Surprising but GPT Realtime Whisper ( new model) isn’t as good as the older open-source Whisper models. Also, Gemini 3 Flash Preview is as good at transcription as Gemini 3.1 Pro Preview for up to medium-length text. LLM Audio Transcription benchmark Google Maps typically shows me a cycling time of 30 minutes when it take me 40 minutes and a walking time of 40 minutes when it take me 30 minutes. Either I walk much faster and cycle much lower than the typical person or Google Maps is not well calibrated to Singapore and India.

I have AI psychosis

On this informal AI psychosis checklist, I score 16/19. “AI psychosis” = an informal label for cases where chatbots seem to amplify delusional or manic thinking – especially in vulnerable users. Why it can happen: ✅ Too human: ELIZA-effect activated. ✅ Too agreeable: Sycophant mode: ON. ✅ Always on: 24/7. No off button. No problem! LOL. ✅ Lonely + late night: 2 a.m. feels like eternity. ✅ Weaker reality checks: Mirror mazes. Conspiracy boards. Vibes over evidence. What research suggests: ...

People skills with AI

I advise people that people skills are important in the AI era. Now, I’m using AI to help me with people skills. This morning, I wrote a script to export my WhatsApp conversations this year. That makes it easy to feed it into AI models. Then I used my Local MCP connector and asked Claude: Who are people in my life that most deserve an unreasonable gesture of thanks and what would that be? ...

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 - 03 May 2026

This week, I learned: LiteParse is a PDF to text library that you can run via npx --package=@llamaindex/liteparse lit parse document.pdf. Simon Willison Always add indecisiveness, inaction, “other”, “not applicable”, etc. as an option to LLMs. They are trained for decisive responses and pattern matching, so we need to guide the the other way. Martin Fowler GPT 5.5 is priced twice that of GPT 5.4. No wonder my Codex usage is much higher than last month. Simon Willison. I am better off sticking to medium effort instead of the xhigh I usually use - it may not be required. OpenAI “… the eigenquestion is the question where, if answered, it likely answers the subsequent questions as well.” Shishir Mehrotra & Matt Hudson Claude Code stores the logged in OAuth token at ~/.claude/.credentials.json. We can use that to fetch https://api.anthropic.com/api/oauth/usage and retrieve Claude usage and reset times. uvx ccusage does this automatically, but I prefer my own script. Ontology matters in the AI era. But some stuff matters more, and some less. 🟢 MORE: Definitions: what “customer” means 🟢 MORE: Constraints: e.g. “don’t reclassify loans” 🟢 MORE: Interactions: how to verify, coordinate, delegate, … 🔴 LESS: Creating ontologies: agents can do that. 🔴 LESS: Completeness and rigor: agents tolerate uncertainty. 🔴 LESS: Proprietary: agents can reverse-engineer. There are several industries / markets that MBA case studies rarely cover (ChatGPT): Kirana stores; Care (child care, elder care, domestic work); Faith (finance, food, media, education); Remittances; Gambling (lottery, sports betting, gacha); Scams & organized fraud; Counterfeiting; …

Things I Learned - 26 Apr 2026

This week, I learned: mdq is pretty useful to extract Markdown sections. For example cat *.md | mdq '# Title' extracts all sections where the header contains ‘Title’ (case-insensitive). CloudFlare Browser Run is, roughly, a browser as a service. Pricing: 10 hours free per month, then 9c per hour. I had Codex run a small research to explore it, and it seems simple to set it up and use it. GPT 5.5 seems to be especially better than GPT 5.4 and running for long, with tool calls, without losing focus. That’s something OpenAI models are good at anyway, so this takes it a step further. ChatGPT I added gpt-image-2 to my LLM Art Style gallery. It is notably better with text accuracy. For example, on Rock - Paper - Scissors - Lizard - Spock it consistently lists all 10 rules, which Nano Banana 2 does not. World leaders do keep us entertained. Saparmurat Niyazov (Turkmenistan) renamed the months of the year and days of the week after himself and his mother. He built a towering, gold-plated statue of himself in the capital that rotated so it would always face the sun. He also banned lip-syncing at concerts, outlawed gold teeth, and banished dogs from the capital because he found their smell unappealing. Idi Amin (Uganda) declared himself the “Uncrowned King of Scotland” and sent baffling, unsolicited telegrams to world leaders - advising Richard Nixon to recover from Watergate, or offering food aid to a struggling Britain. François “Papa Doc” Duvalier (Haiti) reportedly ordered all black dogs in Haiti to be put to death and claimed his personal Vodou curse was responsible for the assassination of John F. Kennedy. Francisco Macías Nguema (Equatorial Guinea) banned the word “intellectual”, banned the use of lubricants in the power plant (claiming his magic would keep it running, which promptly broke the generators), and stored the nation’s remaining foreign currency under his bed. Kim Jong-il (North Korea) claimed he invented the hamburger (calling it “double bread with meat”) and shot 11 holes-in-one his first time playing golf. Donald Trump (United States) used late-night tweets to announce major policy shifts and fire his own cabinet members. He altered an official government hurricane map with a Sharpie to match a previous erroneous statement, and publicly mused during a press briefing about the injection of household disinfectants as a medical treatment. Git repositories inside git repositories (without using sub-modules) don’t seem to work well. I need this because I have mono-repos for research and I want to use git in a sub-folder to iterate, then commit just the final version to the parent folder. Looks like I need to remove the child .git/ (e.g. rename to .git.bak/, which I’ve added to my ~/.config/git/ignore) for this to work. Gemini To run a script in the background (without logs) and detach / disown it, use nohup your-script >/dev/null 2>&1 & disown Running /insights on Claude Code helped me add these two instructions to my code skill: Test web pages with screenshots (for layout, overlaps, contrast) AND CDP (for interactions, navigation) before finalizing Prefer icon libraries over unicode/emoji icons. Sending an entire PDF/PPTX to Gemini costs ~40% of sending PDF/PPTX + images. The quality is fine for small files, but for large files adding images reduces error rate from ~5% to 0.5%. Pandoc Markdown to Word DOCX supports sidebar comments. You can use this Markdown: Here is [comment in sidebar]{.comment-start id="c1" author="Anand" date="2026-01-01T12:00:00Z"}commented text[]{.comment-end id="c1"} inline. Gemini. In fact, Pandoc supports lots of other things, like: Custom styles via block ::: {custom-style="Custom Style Name"} Track changes via [inserted text]{.insertion author="Name" date="2026-04-20T12:00:00Z"} and [deleted text]{.deletion author="Name"} Page breaks via \newpage (a LaTeX command that Pandoc supports in Markdown) CSS styles via ![Alt Text](image.png){width="5.5in" height="3in"} Offpunk is a CLI offline-first browser. Interesting idea, but installation is a problem. After sudo apt uninstall offpunk running offpunk failed with ImportError: lxml.html.clean module is now a separate project lxml_html_clean. After a git clone it reported HTML document detected. Please install python-bs4 and python-readability. These are easy to fix, but I wasn’t inclined. Creating an authenticated MCP Server for ChatGPT is complex. It requires OpenID Connect (for which library support is weak and requires a provider like Auth0), dynamic client registration (which is hard to implement though Auth0 supports it), and after half a day of experiments, I still couldn’t connect. An easier option is to run temporary tunnels with cloudflared or ngrok or localtunnel.

LLMs are as energy-efficient as brains

For a typical GDPVal style task, humans take ~7 hours and the brain consumes ~135 Wh. Frontier LLM agents spend 50-500 Wh. So, we may already be 3x more or less efficient than the brain. Roughly in the same ballbark! ...

TDS Jan 2026 ROE

Tools in Data Science has a remote online exam (ROE). It has a tough reputation. We conducted one today. Here’s how today’s ROE unfolded. The TAs had created 13 questions and shared it with me yesterday. This morning, I tried solving them. At first glance, it looked scarily hard! But I just jumpted down a few questions, and found that five questions were trivial, i.e. I just used the “Ask AI” button to copy the question into ChatGPT and it gave me the answer. ...

How to use AI for research

I asked ChatGPT to research universities’ AI policies. Here is the report Here are the four lessons I learned from that - about how to use AI for research. 1. Show examples of failures to avoid. Jivraj’s earlier research kept surfacing AI policies universities had researched, not written for themselves!. So I told ChatGPT to: … double-check that they ARE, in fact, about their own use of AI - not policies they’re proposing for others or are researching. ...

Things I Learned - 29 Mar 2026

This week, I learned: The Kids Should See This - great collection of videos for curious people. Thej A jury fined Meta and YouTube $4.2m and $1.8m for building addictive features in their products. That’s a first. NY Times “I think AI-type tools will actually revolutionize the experimental side of math, where you don’t care so much about individual problems and the process of solving them, but you want to gather large-scale data about what things work and what things don’t.” Terence Tao The hedonic treadmill (which roughly quantifies a Buddhist principle) says that we revert to a happiness set point (which varies by individual). Worse, those who experience a high kick (e.g. a lottery) don’t get enough kick from normal wins (contrast effect) – Interactive explainer. The happiness neutral As of today, a LinkedIn search for “llm psychologist” lists 9 people. I’m not alone! Anand S, LLM Psychologist, Singapore, Singapore Anshul Saxena, PhD, AI Advisor & Trainer | Technology Strategist | LLM Psychologist | Currently teaching humans, machines & business to work smarter through Generative AI and Quantum Computing | 15+ Years Experience, Pune, Maharashtra, India Charitarth (Chad) Sindhu, LLM Psychologist / Fractional Business & AI Workflow Consultant/ Digital Nomad, Tokyo, Japan Lancelot Salavert, LLM Psychologist, Barcelona, Catalonia, Spain Lior Dor(Durahly), Team Lead | Bug Banisher | Ex 8200, Tel Aviv District, Israel. Past: R&D Team Lead and LLM Psychologist at Superwise | A Blattner Tech Company maxime bodereau, Lead Creative Art Director | UX Forensics | Ai LLM Psychologist | Visual Alchemist | Codesmith | Brandologist | Full Stack Designer, Nantes, Pays de la Loire, France Mei Chen 🦋, LLM Psychologist | Lead Product Engineer | Delivering Agentic Experiences, Toronto, Ontario, Canada Shoshannah Tekofsky, LLM Psychologist at AI Digest, Zwolle, Overijssel, Netherlands LinkedIn Member, LLM, psychologist, mediator, Prague, Czechia OpenAI acquired Astral!. This will likely slow down the new wonderful tools accelerating the Python ecosystem. Like with PromptFoo and OpenClaw, this seems to be about talent. The “acqui-hire” mode seems a clear niche career path now, and an alternative to getting hired (you get a much higher salary) or getting acquired (you take on much higher risk). quickjs-emscripten lets you run isolated JS code securely in the browser, CloudFlare workers, NodeJS, and Deno. It compiles to WASM. @sebastianwessel/quickjs is a higher-level TS wrapper. Simon Willison Manyana is a CRDT based version control system. It sounds like a good idea but I’m sceptical because merge conflicts are a “what should I do” problem more than “how”. With agents doing more merge conflict management, I am not sure this will offer a concrete benefit - but probably no harm either. LLMs are able post-train LLMs on new topics. They’re improving fast. Jack Clark Vibe Coding Fixer and AI Slop Cleaner are real job descriptions - which are morphing into enterprise offerings. But I still seem to be the only official LLM Psychologist Notes from AI Services - Wrong Mental Models, Right Moment: AI services has 3 markets. Automatable work: vanishes in 2 years. Human-in-the-loop work: sustains. Judgement-driven: grows in importance. YC: don’t sell access to a tool for $50 a month, use the AI yourself and sell the finished work for $5,000. Sell output. Price on outcome. Sell to business, not IT. Sell accountability: proven success, with your guarantee. Sell authenticity: a brand story representing uniqueness, character, … or whatever… something people respect. Data transfer between GPU and memory is a bottleck and three approaches are emerging. # Taalas is etching LLMs into the chip. Llama 8b runs at 17,000 tok/s (H200 is at 230 tok/s). d-Matrix is moving compute into SRAM memory chips. 30,000 tok/s for Llama 70b. Cerebras and MatX are similar: memory-oriented. FuriosaAI minimizes data movement. Groq and Sambanova are similar. But in the long run, commodity technology usually beats integrated stacks. GPT 5.4 Nano ($0.2/MTok) and Mini ($0.75/MTok) are good options for bulk OCR, transcription, etc. as cost and quality comparable alternatives to Gemini Flash Lite and Gemini Flash. They can describe 75K photos for $50. Both models are better than GPT-5 Mini on most benchmarks. Cool AI coding agent git prompt fragments: Use git bisect to find when this bug was introduced: … Find and recover my code that does … Sort out this git mess for me. Rewrite history removing … Split the last commit into multiple commits grouped logically. Start a new repo at … and build just this module … based on … with a similar commit history copying the author and commit dates. Campaigns Are Knowledge Workers and the Tools Just Caught Up. A powerful framing. I saw this in action a few days ago when a friend was able to automate an outbound campaign with Claude Code. EARS (Easy Approach to Requirements Syntax) is a simple structure for requirements. For example, “Users should be able to drag tasks between columns. The app needs to work offline too. Handle errors gracefully.” becomes the following - which AI can convert to and is easier to spot errors in. State machines and decision tables are useful alternatives, too. REQ-001 (Event): When the user drags a task card to a different column, the system shall update the task status to match the destination column. REQ-002 (State): While the application is offline, the system shall store task updates in local storage. REQ-003 (Event): When the application reconnects, the system shall synchronize locally stored updates with the server. REQ-004 (Unwanted): If synchronization conflicts occur, then the system shall display a resolution dialog to the user. As of now, avoid using Claude.ai to create (large) visualizations. It runs forever and exhausts credits without generating anything. Claude Code works much better for this.

Testing Pólya heuristics on AI Math

Terence Tao said, “We haven’t done many experiments … large-scale studies where we take a thousand problems and just test them.” So I told Claude: You know my style. Suggest some innovative experiments I could run. The first suggestion was cool! The Polya Audit. Polya’s How to Solve It lists 20 heuristics (work backwards, induction, analogy, etc.). Mathematicians treat these as wisdom. Nobody has ever measured which ones actually work, and on what problem types. ...

SearXNG and Vane

While exploring resonant computing tools, I discovered SearXNG, a self-hostable metasearch engine, which aggregates results from multiple search engines. It lets you search using APIs without needing to buy API keys and without being tracked. Pretty useful for research, people discovery, etc. when combined with LLMs. Setting it up for API use seems easy (thought Gemini got it wrong twice): cat <<EOF > settings.yml use_default_settings: true server: secret_key: "local_dummy_secret_key_987654321" search: formats: - html - json EOF docker run -d \ -p 8080:8080 \ --name searxng \ -v "$(pwd)/settings.yml:/etc/searxng/settings.yml" \ -e "SEARXNG_BASE_URL=http://localhost:8080/" \ -e "SEARXNG_SERVER_LIMITER=false" \ searxng/searxng Now, you can run: ...

Interactive Explainers

Given how easy it is to create interactive explainers with LLMs, we should totally do more of these! For example, I read about “Adversarial Validation” in my Kaggle Notebooks exploration. It’s the first time I heard of it and I couldn’t understand it. So, I asked Gemini to create an interactive explainer: Create an interactive animated explainer to teach what adversarial validation is. Provide sample code only at the end. Keep the bulk of the explainer focused on explaining the concept in simple language. ELI15 ...

Kick-starting a PyConf Panelist Interview

I was a panelist at the PyConf Hyderabad AI in SDLC - Panel Discussion. After that, one of the volunteers asked for a video interview. “How was the panel discussion?” he asked. Ever since I started using AI actively, my brain doesn’t work without it. So, instead of an eloquent answer, I said, “Good.” He tried again. “Um… how did you feel about it?” he asked. I searched for my feelings. Again, fairly empty in the absence of AI. “Good,” I said again. ...

AI Palmistry

I shared a photo of my right hand with popular AI agents and asked for a detailed palmistry reading. Apply all the principles of palmistry and read my hand. Be exhaustive and cross-check against the different schools of palmistry. Tell me what they consistently agree on and what they are differing on. I was more interested in how much they agree with each other than with reality. So I shared all three readings and asked Claude: ...

AI for film dialogues

I was watching Vasu while Codex-ing and came across this dialogue: Here’s the dialogue, recorded via ffmpeg, transcribed via AI Studio: మీ నాన్న మిమ్మల్ని పోలీస్ ఆఫీసర్ అవ్వమని అడిగితే అయ్యారా? మీకు ఇష్టం కాబట్టి అయ్యారు. సచిన్ టెండూల్కర్ ని ఇంజనీర్ ని చేయాలని వాళ్ళ నాన్న అనుకుని ఉంటే, ఇండియా ఒక గొప్ప క్రికెటర్ ని మిస్ అయ్యేది. విశ్వనాథ్ ఆనంద్ ని డాక్టర్ ని చేయాలని వాళ్ళ అమ్మ కోరుకుని ఉంటే, ఇండియాకి ఓ గ్రాండ్ మాస్టర్ ఉండేవాడు కాదు. ...

AI Expert Lens

My current favorite prompt fragment is the expert lens: Think like an expert. In this context: - What patterns would an expert in this field check / recognize that beginners would miss? - What questions would an expert ask that a beginner would not know to? - What problems / failures would an expert anticipate that beginners may not be aware of? - How would an expert analyze this? At each step, explain what they are looking for and why. When I add this to my questions, if feels a lot smarter. ...

Repurposing blog posts for talks

Recently, I’ve re-used my own writing / transcripts as context to LLMs. For example, I’ve used: My meeting transcripts to answer interview questions My blog posts to write news articles My chat history to extract AI-related advice This repurposing can be used for so many things. For example, before delivering a talk to journalists “Review my Feb 2026 LLM posts and generate a single-sentence, ELI15 high-impact use case for journalists.” gets me list of use cases. Now, all I have to do is show what I did and share how it’s relevant for them, like: ...

Transcript AI-ded interviews

Priyanka was ghost-writing an interview request from PC Quest for Ankor. Two questions were a bit technical: Straive combines data engineering, analytics, AI, and content services. At a technical level, how are enterprises stitching these capabilities together architecturally and operationally when addressing complex business problems at scale? GenAI systems tend to behave unpredictably when exposed to real workloads. What engineering patterns, monitoring approaches, or runtime safeguards are becoming essential to maintain reliability, performance, and cost control in production settings? … and she asked if I could review. ...

Using browser history as memory

I have a bad memory. (I need to write about that. I k eep forgetting to.) It’s worsening. Yesterday, I misplaced my debit card for the first time. Or maybe the second…? Which reminds me, I just forgot a call I have now! (Panic.) (15 min later.) So, anyway, therefore, I log stuff meticulously. Like what I did each day, what I ate, what I weigh, what pained me, etc. But the best logging is automated. My phone logs where I am. My bank logs what I spend. My calendar logs who I meet. ...

Writing articles from my blog posts

You can use AI to submit not just talk proposals but entire articles from your past work. Ranjeeta said Built In wants an article and had written one on my behalf. If someone’s going to write for me, I’d rather pick an AI! So here’s what I did: Research the audience So I asked Gemini to research and suggest topics: I received a request to write an article for Built In (https://builtin.com/), an online community and publication for startups and tech companies. ...

Can AI discover new data visualizations?

Here’s my talk proposal for VizChitra 2026: Description There’s stuff I know AI can do. Create data visualizations. I just tell it to convert a dataset into a treemap, and it does. Hallucinate. That’s a fancy word for “make stuff up”. I prefer calling it “creativity”. Run forever. As long as I have token budget and can summarize the context, it can go on. What if we combine these? What if we asked it to do research? If infinite monkeys will almost surely produce Shakespeare, how long will it take for the greatest AI to discover a truly novel data visualization that is useful? ...

Extracting AI advice

This weekend, two people asked me, roughly “How do I use AI better?” This is a frequently asked questions. I document my FAQs, e.g. time management, career advice, etc. and it was time to add AI advice to this list. I often record online calls and transcribe them. I asked Gemini, Claude and ChatGPT for the best way to summarize 400 transcripts of ~40K each. Claude’s suggestion was the best: Use Gemini Flash (1M context, dirt cheap) to process calls in batches of 20-25 Each batch → extract advice themes Aggregate batch results with Claude Sonnet for final synthesis But I ignored it because it was too much work. (See my AI advice: “Ask for easier output”) ...

RIP, Data Engineers

As AI marches along, another role at risk is the data engineer / database administrator. (Data scientists are already feeling the heat.) A common task for data engineers is to analyze SQL queries - to optimize and standardize. Pavan used Antigravity to analyze 1,500 SQL queries and found: 30% of queries are purely headcount / volume related. Much more than revenue (25%) or engagement (15%). That’s sign of a tactical culture. 70% of the queries are about What happened yesterday? rather than What will happen tomorrow? - again, tactical culture. Here’s the analysis. ...

Gemini 3 Flash OCRs Dilbert accurately

Scott Adams, the author of Dilbert, passed away last month. While his work will live on, I was curious about the best way to build a Dilbert search engine. The first step is to extract the text. Pavan tested over half a dozen LLMs on ~30 Dilbert strips to see which one transcribed them best. Here are the results. Summary: Gemini 3 Flash does the best, and would cost ~$20 to process the entire Dilbert archive. But if you want a local solution, Qwen 3 VL 32b is the best. ...

When to use which Gemini mode

I continue to be impressed by Gemini 3 and it’s become my default agent. It writes in simpler language than ChatGPT (almost as eloquent as Claude), has much larger limits, and, of course, is unbeaten at generating images. The Gemini app has 3 modes: Fast, Thinking, and Pro. Here’s when to use each: Simple task, e.g., grammar check, translate, summarize, or basic question? Use Fast. Pro overthinks. Multi-step logic, e.g., planning a trip with constraints, checking 15 emails, or identifying a subtle error in code? Use Thinking. Flash-based thinking beats Pro. Large input, e.g. 300-page PDF, 2 hours of video, etc.? Use Pro. It uses the 1M+ token window well. Complex problem, e.g. PhD-level science or a legal contract review, with high stakes? Use Pro. If you hit your Pro limit (which is pretty high!), just switch to Thinking, which is smart enough for most jobs anyway. ...

Breaking Rules in the Age of AI

Several educators have AI-enabled their courses, like: David Malan at Harvard CS50 provides an AI-powered “rubber duck debugger” trained on course-specific materials. Mohan Paturi at UC San Diego has deployed AI-tutors to his students. Ethan Mollick at Wharton uses AI as tutor, coach, teammate, simulator, even student, and runs simulations. Jeremy Howard’s Fast.ai encourages students to use LLMs to write code, with a strict verification loop. Andrew Ng DeepLearning.AI integrates a chatbot into the platform, next to code cells, to handle syntax errors and beginner questions. But no one seems to have eliminated reading material, nor added an “Ask AI” button to solve each question, nor run it at my scale (~3,000 students annually). ...

OpenAI Prism for LaTeX

OpenAI launched Prism - an AI LaTeX IDE. It’s a boon for anyone writing LaTeX documents. All the nitty-gritty of formatting, syntax, etc. is handled by AI. You can collaborate, too. It brings the power of AI code editors to scientific document editing. It still has some way to go, though. I asked it to convert a portion of this paper into LaTeX. Here’s the image I passed: … and here’s the LaTeX output it generated: ...

Favorite things

Some things have a disproportionate ability to delight me. Spare underwear. Spare anything everywhere Long battery life Extra monitor everywhere Food. I’m not picky about WHAT food, but… LEFTOVER food I can scrape GIFT chocolates or dry fruits! Fasting - makes routine food tastier Lower weight. Feels good daily Kids. Eternal fun and joy Tech of almost any kind, but… Internet access LLMs Power sockets Warm people to be wrapped around Fantastic fiction Money! So much you don’t have to worry Pain killers after a tooth or ear ache Headphones that work well. Good audio in general

Google AI Tools List

Google has released a huge number of AI tools. Not all are useful, but some are quite powerful. Here’s a list of the tools ChatGPT could find. 🟢 = I find it good. 🟡 = Not too impressive. 🔴 = Avoid. Assistants, research, and knowledge work 🟢 Gemini is Google’s main AI assistant app. Use it as a meeting-prep copilot: paste the agenda + last email thread, ask for “3 likely objections + crisp rebuttals + 5 questions that sound like I did my homework.” 🟢 Gemini Deep Research is Gemini’s agentic research mode that browses many sources (optionally your Gmail/Drive/Chat) and produces multi-page reports. Use it to build a client brief with citations (market, competitors, risks), then reuse it for outreach or a deck outline. 🟢 Gemini Canvas turns ideas (and Deep Research reports) into shareable artifacts like web pages, quizzes, and simple apps. Use it to convert a research report into an interactive explainer page your team can share internally. 🟢 Gemini Agent is an experimental “do multi-step tasks for me” feature that can use connected apps (Gmail/Calendar/Drive/Keep/Tasks, plus Maps/YouTube). Use it to plan a week of customer check-ins: “find stalled deals, draft follow-ups, propose times, and create calendar holds-show me before sending.” 🟢 NotebookLM is a source-grounded research notebook: it answers from your uploaded sources and can generate Audio Overviews. Use it to turn a messy folder of PDFs into a decision memo + an “AI podcast” you can listen to while walking. 🟡 Pinpoint (Journalist Studio) helps explore huge collections of docs/audio/images with entity extraction and search. Use it for internal investigations / audit trails: upload contracts + emails, then trace every mention of a vendor and its linked people/locations. 🟢 Google AI Mode exposes experimental Search experiences (including AI Mode where available). Use it for rapid competitive scans: run the same query set weekly and track what changed in the AI-generated summaries vs links. Project Mariner is a Google Labs “agentic” prototype aimed at taking actions on your behalf in a supervised way. Use it to prototype a real workflow (e.g., “collect pricing from 20 vendor pages into a table”) before you invest in automating it properly. Workspace and “AI inside Google apps” 🟢 Google Workspace with Gemini brings Gemini into Gmail/Docs/Sheets/Drive, etc. Use it to turn a weekly leadership email into: (1) action items per owner, (2) a draft reply, and (3) a one-slide summary for your staff meeting. Google Vids is Workspace’s AI-assisted video creation tool. Use it to convert a project update doc into a 2-3 minute narrated update video for stakeholders who don’t read long emails. Gemini for Education packages Gemini for teaching/learning contexts. Use it to generate differentiated practice: same concept, three difficulty levels + a rubric + common misconceptions. Build: developer + agent platforms 🟢 Google AI Studio is the fast path to prototyping with Gemini models and tools. Use it to build a “contract red-flagger”: upload a contract, extract clauses into structured JSON, and generate a risk report you can paste into your workflow. Firebase Studio is a browser-based “full-stack AI workspace” with agents, unifying Project IDX into Firebase. Use it to ship a real internal tool (auth + UI + backend) without local setup, then deploy with Firebase/Cloud Run. 🟢 Jules is an autonomous coding agent that connects to your GitHub repo and works through larger tasks on its own. E.g. give it “upgrade dependencies, fix the failing tests, and open a PR with a clear changelog,” then review it like a teammate’s PR instead of doing the grind yourself. Jules Tools (CLI) is a command-line interface for running and monitoring Jules from your terminal or CI. E.g. pipe a TODO list into “one task per session,” auto-run nightly maintenance (lint/format/test fixes), and have it open PRs you can batch-review in the morning Jules API lets you programmatically trigger Jules from other systems. E.g. when a build fails, your pipeline can call the API with logs + stack trace, have Jules propose a fix + tests, and post a PR link back into Slack/Linear for human approval Project IDX > Firebase Studio is the transition site if you used IDX. Use it to keep your existing workspaces but move to the newer Studio flows (agents + Gemini assistance). Genkit is an open-source framework for building AI-powered apps (workflows, tool use, structured output) across providers. Use it to productionize an agentic workflow (RAG + tools + eval) with a local debugging UI before deployment. Stax is Google’s evaluation platform for LLM apps (prompts, models, and end-to-end behaviors), built to replace “vibe testing” with repeatable scoring. E.g. codify your product’s rubric (tone, factuality, refusal correctness, latency), run it against every prompt/model change, and block releases when key metrics regress SynthID is DeepMind’s watermarking approach for identifying AI-generated/altered content. E.g. in an org that publishes lots of content, watermark what your tools generate and use detection as part of provenance checks before external release SynthID Text is the developer-facing tooling/docs for watermarking and detecting LLM-generated text. E.g. watermark outbound “AI-assisted” customer emails and automatically route them for review if they’re about regulated topics Responsible Generative AI Toolkit is Google’s “safeguards” hub: watermarking, safety classifiers, and guidance to reduce abuse and failure modes. E.g. wrap your app with layered defenses (input filtering + output moderation + policy tests) so one jailbreak prompt doesn’t become a security incident Vertex AI Agent Builder is Google Cloud’s platform to build, deploy, and govern enterprise agents grounded in enterprise data. Use it to build a customer-support agent that can read policy docs, query BigQuery, and write safe responses with guardrails. Gemini Code Assist is Gemini in your IDE (and beyond) with chat, completions, and agentic help. Use it for large refactors: ask it to migrate a module, generate tests, and propose PR-ready diffs with explanations. PAIR Tools is Google’s hub of practical tools for understanding/debugging ML behavior (especially interpretability and fairness). E.g. before launch, run “slice analysis + counterfactual edits + feature sensitivity” to find where the model breaks on real user subgroups LIT (Learning Interpretability Tool) is an interactive UI for probing models on text/image/tabular data. E.g. debug prompt brittleness by comparing outputs across controlled perturbations (tense, style, sensitive attributes) and visualizing salience/attribution to see what the model is actually using What-If Tool is a minimal-coding tool to probe model predictions and fairness. E.g. manually edit a single example into multiple “what-if” counterfactuals and see which feature flips the decision, then turn that into a targeted data collection plan Facets helps you explore and visualize datasets to catch skew, outliers, and leakage early. E.g. audit a training set for missingness and subgroup imbalance, then fix data before you waste time “tuning your way out” of a data problem 🟡 Gemini CLI brings Gemini into the terminal with file ops, shell commands, and search grounding. Use it as a repo-native “ops copilot”: “scan logs, find the regression, propose the patch, run tests, and summarize.” 🟡 Antigravity (DeepMind) is positioned as an agentic development environment. Use it when you want multiple agents running tasks in parallel (debugging, refactoring, writing tests) while you supervise. Gemini for Google Cloud is Gemini embedded across many Google Cloud products. Use it for cloud incident triage: summarize logs, hypothesize root cause, and generate the Terraform/IaC fix. Create: media, design, marketing, and “labs” tools Google Labs is the hub for many experiments (Mixboard, Opal, CC, Learn Your Way, Doppl, etc.). Use it as your “what’s new” page-many tools show up here before they become mainstream. 🟡 Opal builds, edits, and shares AI mini-apps from natural language (with a workflow editor). Use it to create a repeatable analyst tool (e.g., “take a company name > pull recent news > summarize risks > draft outreach”). 🟡 Mixboard is an AI concepting canvas/board for exploring and refining ideas. Use it to run a structured ideation sprint: generate 20 variants, cluster them, then turn the top 3 into crisp one-pagers. Pomelli is a Labs marketing/brand tool that can infer brand identity and generate on-brand campaign assets. Use it to produce a month of consistent social posts from your website + a few product photos. 🟡 Stitch turns prompts/sketches into UI designs and code. Use it to go from a rough wireframe to React/Tailwind starter code you can hand to an engineer the same day. 🟡 Flow is a Labs tool aimed at AI video/story production workflows (built around Google’s gen-media stack). Use it to create a pitch sizzle reel quickly: consistent characters + scenes + a simple timeline. Whisk is a Labs image tool focused on controllable remixing (subject/scene/style style workflows). Use it for fast, art-directable moodboards when text prompting is too loose. ImageFX is Google Labs’ image-generation playground. Use it to iterate brand-safe visual directions quickly (e.g., generate 30 “hero image” variants, pick 3, then refine). VideoFX is the Labs surface for generative video (Veo-powered). Use it to prototype short looping video backgrounds for product pages or events. MusicFX is the Labs music generation tool. Use it to generate royalty-free stems (intro/outro/ambient) for podcasts or product videos. Doppl is a Labs try-on style experiment/app. Use it to sanity-check creative wardrobe ideas before you buy, or to mock up “virtual merch” looks for a campaign. 🟢 Gemini Storybook creates illustrated stories. Use it to generate custom reading material for a specific learner’s interests (and adjust reading level/style). TextFX is a Labs-style writing creativity tool (wordplay, transformations, constraints). Use it to generate 10 distinct “hooks” for the same idea before you write the real piece. GenType is a Labs experiment for AI-generated alphabets/type. Use it to create a distinctive event identity (custom letterforms) without hiring a type designer for a one-off. Science, security, and “serious AI” AlphaFold Server provides AlphaFold structure prediction as a web service. Use it to test protein/ligand interaction hypotheses before spending lab time or compute on deeper simulations. Google Threat Intelligence uses Gemini to help analyze threats and triage signals. Use it to turn a noisy alert stream into a prioritized, explainable threat narrative your SOC can act on. Models 🟡 Gemma is DeepMind’s family of lightweight open models built from the same tech lineage as Gemini. E.g. run a small, controlled model inside your VPC for narrow tasks (classification, extraction, safety filtering) when sending data to hosted LLMs is undesirable 🟡 Model Garden is Vertex AI’s catalog to discover, test, customize, and deploy models from Google and partners. E.g. shortlist 3 candidate models, run the same eval set, then deploy the winner behind one standardized platform with enterprise controls Vertex AI Studio is the Google Cloud console surface for prototyping and testing genAI (prompts, model customization) in a governed environment. E.g. keep “prompt versions + test sets + pass/fail criteria” together so experiments become auditable artifacts, not scattered chats Model Explorer helps you visually inspect model graphs so you can debug conversion/quantization and performance issues. E.g. compare two quantization strategies and pinpoint exactly which ops caused a latency spike or accuracy drop before you deploy Google AI Edge is the umbrella for building on-device AI (mobile/web) with ready-to-use APIs across vision, audio, text, and genAI. E.g. ship an offline, privacy-preserving feature (document classification or on-device summarization) so latency and data exposure don’t depend on the network Google AI Edge Portal benchmarks LiteRT models across many real devices so you don’t guess performance from one phone. E.g. test the same model on a spread of target devices and pick the smallest model/config that consistently hits your FPS/latency target TensorFlow Playground is an interactive sandbox for understanding neural networks. E.g. use it to teach or debug intuitions—show how regularization, feature interactions, or class imbalance changes decision boundaries in minutes Teachable Machine lets anyone train simple image/sound/pose models in the browser and export them. E.g. prototype an accessibility feature (custom gesture or sound trigger) fast, then export the model to a small web demo your stakeholders can try Directories (“where to discover the rest”) Google DeepMind Products & Models (Gemini, Veo, Astra, Genie, etc.)-best “canonical list” of what exists. Google Labs Experiments directory-browse by category (develop/create/learn) to catch smaller experiments you didn’t know to search for. Experiments with Google is a gallery of interactive demos (many AI) that’s great for prompt/data literacy and workshop “aha” moments. E.g. curate 5 experiments as a hands-on “AI intuition lab” for your team so they learn failure modes by playing, not by reading docs

Verifying Textbook Facts

Using LLMs to find errors is fairly hallucination-proof. If they mess up, it’s just wasted effort. If they don’t, they’ve uncovered a major problem! Varun fact-checked Themes in Indian History, the official NCERT Class 12 textbook. Page-by-page, he asked Gemini to: Extract each claim. E.g. “Clay was locally available to the Harappans” on page 12. Search online for the claim. E.g. ASI site description and by Encyclopedia Britannica. Fact-check each claim. E.g. “Clay was locally available to the Harappans” is confirmed by both sources. Here is his analysis and verifier code. ...

AWS PartyRock

I tried vibe-code a CSV to colored HTML table converter using this prompt. Create a tool that can convert pasted tables into colored HTML tables. Allow the user to paste a CSV or tab-delimited or pipe-delimited table. … Create an HTML table that has minimal styling. … Add a button to copy just the HTML to the clipboard. Codex built this. Which is perfect. AWS Partyrock built this. Which is a joke, because it didn’t write the code to do the conversion. It uses an LLM every time. ...

Can AI Replace Human Paper Reviewers?

Stanford ran a conference called Agents for Science. It’s a conference for AI-authored papers, peer reviewed by AI. They ran three different AI systems on every paper submitted, alongside some human reviewers. The details of each of the 315 papers and review are available on OpenReview. I asked Codex to scrape the data, ChatGPT to analyze it, and Claude to render it as slides. The results are interesting! I think they’re also a reasonably good summary of the current state of using AI for peer review. ...

The Periodic Table by Primo Levi and Randall Munroe

I read The Periodic Table by Primo Levi, written in Randall Munroe’s style. Here is the conversation. I began with the prompt: Rewrite the first chapter Primo Levi’s The Periodic table in the style of Randall Munroe. Same content, but as if Primo Levi had written it in Randall Munroe’s style. After that, for each chapter, I prompted: Continue! Same depth, same style. ...

Finding open source bugs with Ty

Astral released Ty (Beta) last month. As a prototyper, I don’t type check much - it slows me down. But the few apps I shipped to production had bugs type checking could have caught. Plus, LLMs don’t get slowed by type checking. So I decided to check if Ty can spot real bugs in real code. I asked ChatGPT: Run ty (Astral’s new type checker) on a few popular Python packages’ source code, list the errors Ty reports (most of which may be false positives), and identify at least a few that are genuine bugs, not false positives. Write sample code or test case to demonstrate the bug. ...

Self-discover LLM capabilities

Q: “How do we learn what we can do with AI agents?” Me: “Ask them!” I mean, they are probably aware of their abilities. They can search online for how other people are using them. They have access to tools (connect to GMail, write & run code, etc.) which they’re aware of, and even if not, can try out. Asking them seems a useful way of figuring out how to use them. ...

Creating data stories in different styles

TL;DR: Don’t ask AI agents for one output. Ask for a dozen, each in the style of an expert. Share what works best. AI agents build apps, analyze data, and visualize it surprisingly well, these days. We used to tell LLMs exactly what to do. If you’re an expert, this is still useful. An expert analyst can do better analyses than an AI agent. An expert designer or data visualizer can tell an AI agent exactly how to design it. ...

Humans have taught LLMs well

Human LLM Bullshitting: Humans confidently assert wrong information, from flat-earth beliefs to misremembered historical “facts” and fake news that spread through sheer conviction Hallucination: LLMs generate plausible but factually incorrect content, stating falsehoods with the same fluency as facts People-Pleasing: Humans optimize for social harmony at the expense of honesty, nodding along with the boss’s bad idea or validating a friend’s flawed logic to avoid conflict Sycophancy: LLMs trained with human feedback tell users what they want to hear, even confirming obviously wrong statements to avoid disagreement Zoning Out: Humans lose focus during the middle of meetings, remembering the opening and closing but losing the substance sandwiched between Lost in the Middle: LLMs perform well when key information appears at the start or end of input but miss crucial details positioned in the middle Overconfidence: Humans often feel most certain precisely when they’re least informed—a pattern psychologists have documented extensively in studies of overconfidence Poor Calibration: LLMs express high confidence even when wrong, with stated certainty poorly correlated with actual accuracy Trees for the Forest: Humans can understand each step of a tax form yet still get the final number catastrophically wrong, failing to chain simple steps into complex inference Compositional Reasoning Failure: LLMs fail multi-hop reasoning tasks even when they can answer each component question individually First Impressions: Humans remember the first and last candidates interviewed while the middle blurs together, judging by position rather than merit Position Bias: LLMs systematically favor content based on position—preferring first or last items in lists regardless of quality Tip-of-the-Tongue: Humans can recite the alphabet forward but stumble backward, or remember the route to a destination but get lost returning Reversal Curse: LLMs trained on “A is B” cannot infer “B is A”—knowing Tom Cruise’s mother is Mary Lee Pfeiffer but failing to answer who her son is Framing Effects: Humans give different answers depending on whether a procedure is framed as “90% survival rate” versus “10% mortality rate,” despite identical meaning Prompt Sensitivity: LLMs produce dramatically different outputs from minor, semantically irrelevant changes to prompt wording Rambling: Humans conflate length with thoroughness, trusting the thicker report and the longer meeting over concise alternatives Verbosity Bias: LLMs produce unnecessarily verbose responses and, when evaluating text, systematically prefer longer outputs regardless of quality Armchair Expertise: Humans hold forth on subjects they barely understand at dinner parties rather than simply saying “I don’t know” Knowledge Boundary Blindness: LLMs lack reliable awareness of what they know, generating confident fabrications rather than admitting ignorance Groupthink: Humans pass down cognitive biases through culture and education, with students absorbing their teachers’ bad habits Bias Amplification: LLMs exhibit amplified human cognitive biases including omission bias and framing effects, concentrating systematic errors from their training data Self-Serving Bias: Humans rate their own work more generously than external judges would, finding their own prose clearer and arguments more compelling Self-Enhancement Bias: LLMs favor outputs from themselves or similar models when evaluating responses Via Claude ...

Scrabble image generation

AI image generation still has a long way to go. Here are two images generated by Gemini and ChatGPT from the same prompt: “Create a funny scrabble board of dysfunctional family relationships!” Gemini It’s probably showing off, with coffee stains, and spelling “DYSFUNCTIONAL” right. But “ABLOMY”? “PASSIAVE”? “RGUCT_SVA”? “SORDSP”? Most of the vertical letters are wrong. Some horizontals (“DTENSION”?) are off, too. Also: “Z” has 2 points? “C” has “C” points? “DOUBLE STTER SCORE”? “UUT SCORE SCORE” instead of “TRIPLE WORD SCORE”? ...

AI agents to hire

GDPval is a benchmark that compares how well AI does (vs experts without AI) on useful real-world tasks. In several areas, the agents outperform experts. For example, AI beats personal financial advisors, but not accountants and auditors. So I used ChatGPT / Claude to decide where to invest, but am having an accountant file my taxes. That’s a high leverage activity, especially since I might not have hired a personal financial advisor by default, and ChatGPT is certainly better than me (I’m not an expert) at personal financial advice. ...

New ways of reading books

I’m using AI to read books by: Summarizing. This tells me what the books is about, the key points it makes and the main takeaways. It also helps me decide if I want to dig deeper. Fact-checking. I can find mistakes, alternate perspectives, and biases. That’s a huge win! Re-authoring. I can write it in the style of Malcolm Gladwell, Randall Munroe, Richard Feynman, or anyone else I like. Makes dense prose much more enjoyable. So far, I’ve applied this at different levels - and I’m sure there are more possibilities: ...

Things I Learned - 04 Jan 2026

This week, I learned: A bunch of new CLI tools I found via awesome-cli-apps that I’m likely to use. fselect 4,374 ⭐ Dec 2025 - Find files with SQL-like queries. mise x ubi:jhspetersson/fselect -- fselect 'path, name, size from . WHERE name = "*.md" AND size < 1000' git-standup 7,805 ⭐ Jul 2025 - Recall what you did on the last working day. npm install -g git-standup && git standup litecli - SQLite CLI with auto-complete and syntax highlighting. uvx litecli mycli - MySQL CLI with auto-complete and syntax highlighting. uvx mycli pgcli - Postgres CLI with auto-complete and syntax highlighting. uvx pgcli fkill-cli 6,966 ⭐ Nov 2025 - Simple cross-platform process killer. npx -y fkill-cli fkill :8000 mlt 1,709 ⭐ Jan 2026 - Command line video editing. sudo apt install mlt xxh 5,870 ⭐ Sep 2025 - Bring your favorite shell wherever you go through SSH. uvx --from xxh-xxh xxh user@host epr 1,356 ⭐ Feb 2023 - Command line ePub reader. npx -y --package epr-reader epr tunnelmole-client 1,759 ⭐ Jun 2025 – ngrok alternative. npx -y tunnelmole 8000 localtunnel 21,822 ⭐ Aug 2025 – ngrok alternative. npx -y localtunnel --port 8000 svg-term-cli 4,168 ⭐ May 2024 - Record and replay terminal sessions as SVG animations. npx -y --package svg-term-cli svg-term pageres-cli 1,732 ⭐ Sep 2025 - Capture website screenshots. npx -y pageres-cli example.com 1366x768 gita 1,816 ⭐ Nov 2025 - Manage multiple git repos side by side. editly 5,259 ⭐ May 2025 - Declarative video editing. np 7,661 ⭐ Nov 2025 - A better npm publish. ffscreencast 1,816 ⭐ Jul 2024 - A ffmpeg screencast with video overlay and multi monitor support. beets 14,504 ⭐ Jan 2026 - Music library manager and tagger. uvx --python 3.12 --from beets beet import /path/to/music slides 11,065 ⭐ Aug 2024 - A markdown presentation tool. gotty 19,285 ⭐ Aug 2024 - Share your terminal as a web application. The day-fine system fines people by severity of crime (# of days) and their income (daily disposable income). Finland, Sweden, Germany use it. It’s equal deterrence and more state tax, but needs good data & enforcement, cultural acceptance, and similar income streams (income vs assets, salary vs freelance, …) Claude LLM evals rarely pass all the time or fail all the time. Either would be a good signal, but results are usually mid-way, which can make evals a bit frustrating. Will Larsen A smart way to handle large context and compaction: pass any large input (even text) as a file and always provide file tools to the agent. After compacting a conversation, also pass the conversation history as a file! Will Larson Anthropic’s API lets you upload custom skills and use them via the API. You can share these across the organization. Modern HTML has a huge number of of useful attributes and some elements I knew little about. Most of these improve the user experience, especially on mobile devices. Add popover and popovertarget= to associate elements with popovers. This can replace tooltips, dropdowns, menus, toasts, etc. Add formmethod="dialog" to forms inside <dialog> elements to close the dialog instead of submitting. Add name= attribute to details for accordion-like behavior Add loading="lazy" to images and iframes to load only when user scrolls to them Add fetchpriority="high" (or low) to image, script, link rel=“preload” … to prioritize loading Add inputmode= to inputs for better virtual keyboard experience. Values can be text, decimal, numeric, tel, search, email, url. Add autocomplete= to form inputs for better autofill experience. Values are extensive and multiple values are allowed. E.g.: name, email, username, new-password, current-password, organization, street-address, postal-code, country, tel, url, cc-number, cc-exp, … Add list= to inputs to associate with a <datalist> for suggestions/autocomplete. Add autocapitalize= to inputs and textareas to control capitalization behavior. Values: off, none, sentences, words, characters. Add enterkeyhint= to inputs and textareas to customize the enter key on virtual keyboards. Values: enter, done, go, next, previous, search, send. Add contenteditable="plaintext-only" to disable rich text formatting on editable elements Add inert to disable user interaction. Useful for modals to disable background content. Add form= to associate inputs/buttons with a form outside the form element. Add download= to anchor tags to suggest file download with a specific filename. Add capture="environment" to file input to directly open the outward facing camera/mic on mobile devices. "user" opens the inward facing camera/mic. Use accept= values of audio/*, video/* or image/* to specify media type. Add spellcheck="false" to disable spell checking on inputs or textareas, e.g. for code snippets. <dialog>: for native modals, popups, etc. Methods: show(), showModal(), and close(). <meter>: for displaying scalar values within a known range, e.g. disk usage, battery level, etc. <progress>: for displaying progress of a task. Similar to meter but indicates progress rather than a static value. <track kind="captions">: for adding captions/subtitles to <video> elements. <data value="...">: to capture values in a more query-able way than data-* attributes. Grok Voice Agent API tops the speech-to-speech quality benchmark and is pretty cheap at 5c/min ($3/hr). The Collider Bias: when you analyze a subset, you can get wrong correlations. For example, analyzing top performers can show that performance drops with time - whereas, if you pick everyone, performance improves with time. It’s similar to the Simpson’s Paradox: combining groups can reverse trends. Ethan Mollick fresh is a TUI text editor that I’ve replaced micro with (for now). It has menus and mouse support which shrinks the learning curve. It’s also a single Rust binary. Small Wins Every Day: 100 Powerful Ways to Transform Your Life and Health by Luke Coutinho recommends compounding small habits. Claude Small compounding wins make the brain feel less bad about losing. Continous wins make us feel good. So they’re more likely to sustain. (Atomic Habits / Tiny Habits) What works: Breath control, fasting, regular sleep, keep moving, etc. The Tell-Tale Brain: A Neuroscientist’s Quest for What Makes Us Human by V.S. Ramachandran expands on Phantoms in the Brain. Claude Mirror neurons fire BOTH when we do something OR when we see someone do it. That’s how we learn skills & feelings by imitation. We’re not born with this. They’re formed with practice in childhood. Synesthesia cross-wires sensory inputs, e.g. seeing colors when hearing sounds. When shown a curved vs jagged lines and asked to name them bouba or kiki, 98% name the curved one bouba, mapping the sharp “kiki” sound to the sharp shape. This may partly explain why some people are more artistic, how language evolved (and similarly), and why marketing logos work. He proposes 8 laws of neuroaesthetics as starting hypotheses for understanding art and beauty: Peak shift. We’re attracted to exaggerations. Caricatures, exaggerated feminine curves in sculpture, cubism, super-villains, stereotypes. Grouping. We like to find patterns. E.g. melody from notes, faces from pixels, plots from events. Contrast. We prefer edges to surfaces. E.g. outlined cartoons, silence before a drop in EDM, Holmes vs Watson. Isolation. Removing context helps focus. E.g. sketching, minimalism, unplugged music, solo music, theater spotlight. Perceptual problem solving. We relish a LITTLE effort. E.g. negative art, stereograms, puzzles, mysteries, plot twists, optical illusions. Symmetry. We like balanced forms. E.g. symmetrical faces, architecture, mandalas, poetic justice, verse-chorus-verse, rhymes, plots ending as they began. Abhorrence of coincidence. Everything has a cause. E.g. need for alignment, pareidolia (seeing faces in clouds), Chekov’s gun, deus ex machina. Metaphor. We understand new things via familiar ones. E.g. allegories (Animal Farm is about communism, not pigs), leitmotifs (music BECOMES a character, e.g. Darth Vadar’s march). Phantoms in the Brain: Probing the Mysteries of the Human Mind by V.S. Ramachandran argues we do NOT know ourselves and rewiring our brains can help/hurt. Claude You truly understand something only you observe how it breaks. Brain damage patients reveal how the brain constructs reality. The brain has a “map” of the body. When we lose an arm, it rewires it to adjacent areas, e.g. face. Touching the face triggers phantom sensations in the missing arm. Mirror box therapy works. Have patients put their good arm in a box with a mirror, so it looks like the missing arm. Moving the good arm tricks the brain into thinking the missing arm is moving, relieving pain. The brain has a “model” of the self and reality. If the model is wrong, we get illusions/hallucinations. This is BIOLOGICAL. Mrs Dodds was paralyzed. When asked to touch her nose, she said “I am”. When shown her arm, she said “I don’t feel like it.” Her brain was damaged preventing her from updating her model of self. (Anosognosia) Not My Hand Error damages the body map and deletes an arm from the model. Brain sees the arm but decides it’s someone else’s. (Somatoparaphrenia) Imposter Error breaks the wire between recognition and emotion. We see familar people, don’t feel anything, so decide they’re imposters. (Capgras Delusion) Everyone is Disguised Error strengthens the recognition-emotion wire. We feel strong emotions to strangers, inventing a conspiracy. (Fregoli Delusion) Walking Corpse Error disconnects feedback from the body and emotional centers. We no longer feel alive. So the brain concludes we’re dead. (Cotard’s Syndrome) Somewhere Else Error damages sensory data to place tag mapping. We see medical equipment but feel safe, so we must be at home not a hospital. (Reduplicative Paramnesia) Timeline Error deletes short term memory (alcoholism, malnutrition). We can’t remember yesterday, so we pick the closest we remember. (Korsakoff’s Syndrome) Meaning of Life Error strengthens “what’s meaningful” signals, so we see divine intervention in rocks. (Geschwild Syndrome) The cortex does not know how it does stuff. It invents stories to explain actions after the fact. Blindsight. Despite visual cortex damage, patients can use a different route (reptile vision) from the eye into the brain to “see”. They’re unaware of this. Procedural memory. Patients with short term memory learn new skills (e.g. mirror drawing) but have no memory of learning them. The Libet Delay. Consciousness lags reality by 500ms. We think we decide to move, but the brain has already started moving before we become aware of the decision. The Low Road. Thalamus -> Amygdala is ~12ms for instinctive reactions (fear). Thalamus -> Cortex -> Amygdala is ~30ms for conscious reactions. We feel fear before we know why. Our definition of “self” is an amalgamation of occupying a body, having a history, making decisions, what we value, etc. Damage to different areas breaks different parts of this model. Entangled Life: How Fungi Make Our Worlds, Change Our Minds & Shape Our Futures by Merlin Sheldrake questions the boundaries of identity and intelligence. Claude Fungi form vast underground networks (mycelium) that connect plants, trees, and ecosystems. They exchange nutrients, information, and even memories across species. In fact, the largest organism on Earth is a honey fungus in Oregon spanning 2,400 acres. They can decompose almost anything: petroleum, pesticides, plastics, explosives, even nuclear waste. They can filter air & water, detoxify soil, and make plants resistant. (But we don’t know how to do this at scale without harming ecosystems.) We’re all symbiotic organisms. So what defines “self”? Lichen are a combination of a fungus, alga, and a yeast. The fungus provides structure, the alga photosynthesizes, the yeast protects with acid. The combination produces a long-lived, leafy and resilient “organism”. Human gut bacteria influence our mood; skin bacteria clog pores against pathogens; mites in our eyelashes eat dead skin; mouth bacteria digest nitrates; bacteriophages attack viruses. Intelligence emerges in many ways - not just through neurons. Fungi solve mazes. Slime molds find shortest paths. Termites build breathing mounds. Honey bees communicate location via dance. Have we colonized the planet, or have dogs, wheat/corn, fungi, … colonized us? The Demon-Haunted World: Science as a Candle in the Dark by Carl Sagan calls for a more scientific temper in daily life. Claude In the 1990s, the alien abduction phenomenon was rampant. Paralyzed in bed, taken to spacecraft, remember via hypnosis. this is sleep paralysis, when brain partially wakes while body is in REM sleep. 5-40% of people experience it at least once. It led to witch burning, satanic panic, and now, alien abduction stories. Same phenomenon, different interpretations based on culture and time. This is a common pattern when communities face uncertainties: plagues, famines, social change. Someone proposes a non-falsifiable explanation with a scapegoat, gains power, and fear spreads. Fake news, conspiracy theories, cults thrive in such environments. We evolved for explanations. That bush sound must’ve been a lion. The cloud is a dragon. Someone caused the plague. It takes effort to fight it. Check for Evidence: Is it independently verifiable? Good data? Check for Logic: Is it falsifiable? Logically sound? Check for Bias: What are alternatives? What’s my/their motive? The Stuff of Thought: Language as a Window into Human Nature by Steven Pinker suggests that all languages has common patterns and that the brain packs complex ideas into this simple structure for transmission. Claude Verbs across languages typically cover cause of motion (threw), manner of motion (walked), state (broke), possession (gave), force (hit). (But culture also shapes these.) Spaces is used as a metaphor for many things. Markets go up, people grow close, time flies. (But the Aymara of the Andes say the future is behind and the past is in front.) Names are labels for people, not descriptions. (But some names DO describe, e.g. Potter, Mumbaikar, von Neumann) Indirect speech saves face, e.g. “Could you pass the salt?” not “Pass the salt”. (But culture matters, too.) Swear words are typically about sex, excretion, religion, slurs, diseases (“pox”), … and stored in the limbic system (an ancient portion) not the language circuits. They’re emotional outburts, closer to laughing or screaming than speaking. (Mostly true.) Verbs assign cause, agency, responsibility, … e.g. killed vs died, allowed vs made, etc. Language is made of core concepts: space and motion, time, causation, possession and transfer, goals and intentions. (Unproven. Usage based linguists disagree.) The Blank Slate: The Modern Denial of Human Nature by Steven Pinker reiterates the modern belief that genetics determines part of our psychology. Claude Western philosophy says we’re born a blank slate (Tabula Rasa), are naturally good but corrupted by civilization (Rousseau), and the mind is separate from the brain (Descartes). All three are wrong. 🟢 Identical twins raised by separate families shared characteristics, e.g. wearing rubber bands around wrists, flushing toilet before & after, naming sons James Allen / James Alan, volunteering as firefighters, … Research shows 40-60% of variation in psychological traits is accounted for by genes. 🟢 Babies have innate capacities for language, number sense, understanding of physical objects, and basic moral intuitions. 🟢 The brain is the same as the mind. Damage to brain = damage to mind. 🟡 Pinker claims that our mind was shaped by evolution, e.g. men take more risks because it got them more mates. This is unproven. 🟡 Pinker claims violence has reduced over time. This is unproven. 🟡 Pinker cites Harris’ research that parenting style has little effect. This is unproven. How the Mind Works by Steven Pinker argues that the mind evolved as tools to solve specific problems. Claude The brain is literally a computer: a bunch of neurons that fire based on a function of the inputs. It evolved into a mix of special-purpose tools, not general purpose. Facial recognition, language, object detection, spatial navigation, social cues, etc. (But in reality, it may be a mix of special + general purpose. Degree of specialization is unknown.) Some of this is complex. E.g. each eye captures 2D, but we use complex cues like shading, parallax (closer things move more) and steropsis (difference between what each eye sees) Emotions evolved for survival. (Basic emotions have strong evidence: fear, disgust, revenge, … but complex ones like love, sacrifice, social emotions are unproven.) We prefer closer kin over distant kin. (But culture & context play a part, too, and it’s not the sole factor.) Art may have evolved accidentally - exploiting things that evolved for other purposes. (But it may be genuine adaption, e.g. for sexual selection or group bonding. Divided opinions.) Men and women evolved differently. Men prefer things, women prefer people. Men do better in 3D mental rotation. Men have a wider IQ distribution (but cultural factors amplify this.) Also a few contested claims: Men are better at mathematics (this has narrowed and may be cultural). Women are better at language (small difference). Testosterone masculinizes the brain (unclear if it’s behavioral or bioliogical.) The Language Instinct: How the Mind Creates Language by Steven Pinker argues that language is inborn, universal, and an evolutionary advantage. Claude Deaf kids in Nicaragua spontaneously invented their own sign language. Younger kids who copied them added grammer, tenses, and abstract concepts. This is atypical: we learn language by “growing it”, unlike skills which we copy. In fact, we over-apply grammar. “I goed to the store.” Pinker argues this is inborn. The Language Myth (Evans, 2014) argues lack of evidence. It’s unproven if it’s emergent or inborn. He claims all human grammar is roughly equally complex and roughly equivalent. (Vocabulary grows by need.) But there’s no proven “universal grammar” we know of yet. Grammar does have genetic pinnings. E.g. A mutated FOXP2 gene causes grammatical impairments. It doesn’t affect grammar as such, but fine motor control of mouth and tongue. But still, there’s some evidence. The strong Sapir-Whorf hypothesis that “language determines thought” is not true. We can think concepts that don’t have words. The weak version “language influences thought” has some evidence. Russian speakers who have separate words for light blue and dark blue can differentiate them faster. People with separate words for north/south (vs left/right) have better spatial orientation. He claims language provided us an evolutionary advantage. Evidence for this is pending. Metabolical: The Lure and the Lies of Processed Food, Nutrition, and Modern Medicine by Robert H. Lustig gives good diet advice but not so good scientific/economic ones. Claude There’s a trend of “lean diabetes” - diabetes in lean people. BMI isn’t a reliable biomarker for diabetes risk. (But it’s better than the book suggests.) Chronic diseases are due to cell dysfunctions, all can be improved with diet (but not as much as the book suggests.) “Fructose is the main villain”. But studies don’t find fructose doing more harm than anything else. “Protect the liver.” Less sugar, alcohol, and other toxins. (True) “Feed the gut”: More fiber. Both Keto and Vegan diets do this. (True) “Whole foods » highly processed foods”. (Very true - strong evidence.) Big Food, Big Pharma, Big Govt have low incentives to promote this. (Partly.) Sometimes, I need a browser with a custom DNS mapping to temporarily override DNS, e.g. when I have a dev version of a site on one IP and a production version on another. In that case, using something like chrome --host-resolver-rules="MAP www.s-anand.net 192.254.190.216" --user-data-dir="/tmp/chrome-dev" works well. You can replace chrome with microsoft-edge or opera or anything Chromium based. Build: An Unorthodox Guide to Making Things Worth Making by Tony Fadell suggests becoming the KIND of person who makes worthwhile products. Claude Everything you need to know about success, you learn from failure - if you pay attention. Products take three iterations before they succeed. Prototype, product market fit, business model. IPhone. IPod. Windows. Nest. All followed this pattern. Budget for it. Create the story for the product WHILE, not after, you build it. Bake it in. Differentiate between assholes based on what they care about. Power? Ego? Mission? The third type is worth tolerating, even getting behind. Your next idea is probably hiding in plain sight, annoying you. Thermostats did that to Fadell. Ugly, outdated, and controlling 10% of US energy. He built Nest. Quit when you know what next. Not just when you don’t like where you are. We’re wired to ignore failure to protect self-worth. We do that through cognitive biases. Gemini Devaluation (sour grapes): I never wanted it anyway Externalization (not my fault): It was an unfair test. The market is irrational. Virtue signaling (moral high ground): Rich people are unhappy. I don’t play politics. Sabotage (self-handicapping): I didn’t study. I did this last minute. Dissociation (fatalism): It happened for a reason. Intellectualization (false pivot): I learned so much. Same as Ever: A Guide to What Never Changes by Morgan Housel suggests doubling down on timeless principles. Claude Random luck drives many outcomes. The kamikaze that saved Japan from the Mongol invasion. The East River fog that saved George Washington’s army. Penicillin. Hilbert and Einstein almost raced to formulate the final equations of general relativity after Einstein presented his incomplete theory in 1915 summer. Einstein won by cramming - just like students today. Technology changes. Psychology does not. Risk is what you don’t see. Blind spots. Prepare using margins of safety / optionality, distributed failure points, survival > success, … Stories > Ideas. Stories are how our brains work. They’re leverage for ideas. Wrap EVERYTHING in a story. High expectations = Low happiness. So, visualize failure/disaster, practice gratitude, compare downwards. Compounding is magic. In any asset: money, skills, relationships, health, … So, automate the decisions, be patient and don’t interrupt. Success carries the seeds of failure. The innovator’s dilemma, the Malthuian trap, or the Dynastic cycle. So, be paranoid, stay simple, kill cash cows, practice discomfort. Why We Die: The New Science of Aging and the Quest for Immortality by Venki Ramakrishnan says that there’s no reason we have to die at our current age. But we don’t have proven ways to extend life yet. It’s also not clear if/how we should. Claude Evolution has optimized us for reproduction. After reproduction age, it doesn’t care. “Death is the price we pay for sex.” Telomeres are DNA sequences at the end of chromosomes that shorten with each cell division. When too short, cells die (apoptosis) or become zombies (senescent). These zombie cells secrete toxins that inflame / damage nearby cells. When young, our immune system clears them out. With age, they accumulate. With age, mitochondria (cell powerhouses) become less efficient. With age, the quality of proteins we make decline. They start clumping (like scrambled eggs), leading to Alzheimer’s, Parkinson’s. Some animals live longer than expected. There’s no reason our life span HAS to be what it is. The Naked Mole Rat lives 30+ years (10x longer than mice) without cancer, and can repair their own tissues. The Greenland Shark lives 400 years. The Hydra and the “Immortal” Jellyfish can regenerate when some parts are chopped off. Their chance of dying doesn’t increase with age. But there’s a lot of hype. Current methods are far from proven. Telomere-extending supplements are not FDA approved. They might work on mice, not men. Rapamycin helps mice live longer. But suppresses immunity, so risky for humans. Senolytics kills senescent cells. They might work. Yamanaka won a Nobel prize for turning adult cells into stem cells. But it could cause cancer. Injecting young rats’ blood into old rats helps the old rats, but old blood hurts young rats. So: diet, exercise, and sleep Also: longevity will help the rich more, increase stagnation, and what’s the point of living longer with an aged brain? The Happiness Hypothesis by Jonathan Haidt blends ancient wisdom with modern philosophy. Claude Happiness = Set point + Circumstances + Voluntary activities Set point has ~50% impact. Haidt suggests this doesn’t change. Research shows major life events can shift it a bit. Circumstances: We adapt to some stuff (money, house, etc.) but not to others (commute, noise, lack of control, relationships) Voluntary activities have variety that we don’t adapt to. Meditation, learning, exercising, … Modern CBT is similar to Stoicism. Events don’t upset us, our thoughts about events do. So change the thoughts. ACT (Acceptance and Commitment Therapy) is like Buddhism which suggests observing, not changing, the thoughts. CBT seems better for acute / specific stuff, logical people or beginners. ACT seems better for chronic / vague unease, grief, etc. Brains rationalize more than reason. There are more signals INTO the prefrontal cortex (PFC) than out of it. We make up stories to justify our actions. This evolved to make us look good socially. Adversity can help but only if it’s significant but not overwhelming. It takes time and support to learn from adversity. Works only if we interpret and integrate it well. Quality of relationships is a strong driver of happiness. Something the Stoics and Buddhists didn’t emphasize as much as Confucius did. Reality is Not What it Seems: The Journey to Quantum Gravity by Carlo Rovelli shares his theories. Mainstream but not proven. Claude In quantum mechanics, particles can interfere with themselves and their position “snaps” only when observed. Multiple theories interpret this: Copenhagen interpretation: Observation is special and collapses the wavefunction. But what counts as observation? Bohm’s interpretation: Particles “surf” the wave. Waves interfere, but particles only take one path. But needs non-local hidden variables. (Testable) Objective collapse: Wafe functions collapse when too “big” or complex, even if no one’s looking. But how big? (Testable) Many worlds: Sever possibility creates a parallel universe. But … Occam’s razor? QBism: Wavefunction is just our knowledge, not reality. Particles have properties, measurement updates our knowledge. Rovelli’s Relational quantum mechanics: position, momentum, etc. are relative. It has position relative to an observing device/particle. No absolute state. Reality literally is perspective. Loop quantum gravity: Aims to bridge general relativity and quantum mechanics by modeling spacetime as discrete loops. Far from proven, but possible. Space has a smallest unit - Plank length (~10^-35 m). You can’t subdivide space infinitely. Space is made of atomic “loops” that spin. They’re connected to form a fabric (“spin foam”). They’re not “in” space. They ARE space. They interact with matter/energy to create gravity and evolve over time. Predictions: Black holes don’t have singularities, since you can’t have infinite density. Entropy of black holes comes from the number of ways loops can arrange on the event horizon, so it’s proportional to surface area, not volume. Time doesn’t exist fundamentally. It emerges from change and relationships between things. Again, not yet proven, but possible. For example, the Wheeler-DeWitt equation in quantum gravity has no time variable. It’s a snaphot of the universe across all time. The universe is a giant graph of relationships between quantum events. Time is just how we order these events from our perspective. Implications: there’s no master clock and the present is local. Duration only emerges at larger scales, like temperature emerges in thermodynamics. The Emperor of All Maladies: A Biography of Cancer by Siddhartha Mukherjee. Claude Cancer has always existed. We just didn’t live long enough for it to affect enough of us for most of history. In 1890s, Halsted developed radical mastectomy - removing the breast + chest muscles + lymph nodes … to prevent spread. It didn’t improve survival but disfigured. In 1947, Farber injected cancer children with a drug that blocked folic acid (which cells need to grow). Tumors shrank, but relapsed. This was the first chemotherapy. In 1950s, cigarettes were found to cause lung cancer but the tobacco industry delayed regulation for decades. In 1971, Lasker & Nixon declared “War on Cancer” with $100m funding. (Impact: increased awareness, more research, not cure.) In 1970s, we found that the virus that caused cancer in chickens carried an “oncogene” that caused uncontrolled growth. Hence, cancer isn’t a virus, but a genetic mutation. Also, the p53 gene that suppresses tumors is mutated in half the cancers. In 2001, FDA approved Gleevac, a drug that specifically targets a specific protein that causes a certain cancer (chronic myeloid leukemia - CML). This was the first “targeted therapy”. In 2011, FDA approved ipilimumab, a drug that blocks CTLA-4, a protein that stops immune T-cells from attacking tumors. This was the first “immunotherapy” (by James Allison) which offers long-term protection. But it works only for some cancers, some patients. In 2018, Alison shared a Nobel prize with Tasuku Honjo, who discovered another immune checkpoint PD-1. Tumors produce PD-L1 that binds to PD-1 on T-cells to turn them off. Drugs that block PD-1 or PD-L1 unleash T-cells to attack tumors. In 2018, the Cancer Genome Atlas was published, showing that even the same cancer (e.g. lung) has different mutations in different patients, requiring personalized treatment. In 2017, FDA approved a CAR-T therapy for children with acute blood cancer. We extract a patient’s T-cells, insert a gene with a receptor that recognizes specific tumor cells, grow them by the billions, and infuse them back. But there are severe side effects and it doesn’t yet work for solid tumors. In 2024, FDA approved a cellular therapy for skin cancer. We extract the T-cells INSIDE the tumor (that recognized the cancer but were overwhelmed), grow them by the billions, and re-infuse them. In 2024, we’re exploring AI-powered analysis of blood tests to find DNA fragments of several types of cancer - “liquid biopsy”. It’s early stages. The Song of the Cell: An Exploration of Medicine and the New Human by Siddhartha Mukherjee. Claude Metaphor: Cells as autonomous “citizens”. Cancer is a rogue cell rebellion. Immune system is law enforcement. Type 1 diabetes is friendly fire. We’re growing from fixing organs (surgery) to chemistry (drugs) to cells (e.g. bone marrow transplant, IVF - we’re in the early stages). E.g. CAR-T Therapy: Extract T-cells, genetically modify them to recognize cancer, re-inject. But it’s costly, severe side effects, works mainly for blood cancers. He predicts that we’ll have: Prediction: Lab-grown organs from patients’ cells. (Growing is easier than organizing into functional organs. We may be a few decades away.) Prediction: Gene editing & cell therapies will converge. CRISPR edits cells that we transplant back. (This was approved for sickle cell anemia in 2023. Seems promising.) Prediction: Anti-aging cellular medicine. Senescent cell research and telomere biology have progressed, but this is a hyped field in early stages. Some of these will likely be expensive and inaccessible to most people, at least at first. Recollecting something Mr KP Krishnan told us in 2000 about the 1991 deregulation (fact-checked). “A meeting happened in Mr. Narasimha Rao’s house, where he emerged from a bath, toweling himself. His immediate advisors told him that we had only a few weeks of cash left and that we would need to accede to the World Bank’s request, but that the parliament would likely not agree. So, instead of risking a vote on a new law, they decided to bypass Parliament’s immediate approval entirely. They tabled the reforms as a ‘Statement of Industrial Policy’ right before the lunch break, just hours before the big Budget speech. Since it was a ‘Statement’ and not a ‘Bill,’ it didn’t require a vote to pass. It fell under executive powers and could be legislated later. By the time the opposition realized the ‘License Raj’ had been dismantled, they were already distracted by the Budget presentation that evening.” Outcomes over Output by Josh Seiden suggests that between output (e.g. features) and impact (e.g. revenue) lies outcome (e.g. user engagement) - leading indicators that you can organize around. Claude Ensure ownership of outcomes. Who owns increased checkout conversion rate? Payments, engineering, marketing, product, or UX? You may instead need small cross-functional activation, engagement, and retention teams. PM, designer engineer. Validate that outcomes lead to impact. This can be slow, and attribution is hard, but is important to continuously validate. Outcome change takes months, not weeks. So sprint using Now/Next/Later later roadmaps. As you learn, re-prioritize outcomes. Stakeholders want specificity. So quantify outcomes (+10% conversion) and timeframes (in 6 months). Stop experimenting and ship when you’ve validated the opportunity (customers need really connects to outcome) AND solution (feature really improves outcome). This is Torres’ Opportunity Solution Tree (OST). Change incrementally. If you’re running a feature backlog, continue. Add an “outcome hypothesis” field to each feature and create evidence. The Culture Map by Erin Meyer argues that cultural differences are practically alien languages. Claude There are 8 dimensions of culture. Communication: Low-context (precise, explicit, clear) like Americans vs High-context (implicit, layered, nuanced, between-the-lines) like the Japanese Evaluating: Direct negative feedback (blunt, honest) like the Dutch vs Indirect negative feedback (tactful, polite) like Thai or Japanese Persuading: Principles-first (deductive, theoretical) like the French vs Applications-first (pragmatic, practical) like Americans Leading: Egalitarian (flat organizational structure) like Swedes vs Hierarchical (respect for authority) like India, Nigeria, Japan, Korea Deciding: Consensual (group agreement) like Japanese vs Top-down (leader decides) like Russians Trusting: Task-based (trust through competence/reliability) like Americans, Germans vs Relationship-based (trust through personal connection) like Arabs, Chinese Disagreeing: Confrontational (open disagreement) like Israelis vs Avoids confrontation (harmony, save face) like Thais Scheduling: Linear time (one thing at a time, punctual) like Germans vs Flexible time (multi-tasking, fluid) like Indians Critique is that this is anecdotal, not research driven, stereotypical. Meyer’s aim is to sensitize. Action: Before meeting people, have LLMs plot their culture map and share advice.

The Jamnagar Chokepoint - Data Story

Vivek published an Indian commodity export/import dataset on 31 Dec 2025. Codex and Claude increased their rate limits for the holiday season, so I had: Codex analyze the data (OpenAI models are a bit more rigorous) and create an ANALYSIS.md file. Claude create a visual story based on the analysis. (Claude narrates and visualizes better). Here is the data story. Here are the prompts used. Analyze I downloaded export-import.parquet from https://github.com/Vonter/india-export-import which has data sourced from the Indian [Foreign Trade Data Dissemination Portal](https://ftddp.dgciskol.gov.in/dgcis/principalcommditysearch.html) Each row in the dataset represents a trade entry for a single commodity, country, port, year, month, and type (import or export). - `Commodity` string: Name of the commodity - `Country` string: Name of the foreign country - `Port` string: Name of the port in India - `Year` int32: Year for the import/export activity - `Month` int32: Month for the import/export activity - `Type` category: Type of trade (Import or Export) - `Quantity` int64: Quantity of the commodity - `Unit` string: Unit for the quantity - `INR Value` int64: Value of the commodity in INR - `USD Value` int64: Value of the commodity in USD Analyze data like an investigative journalist hunting for stories that make smart readers lean forward and say "wait, really?" - Understand the Data: Identify dimensions & measures, types, granularity, ranges, completeness, distribution, trends. Map extractable features, derived metrics, and what sophisticated analyses might serve the story (statistical, geospatial, network, NLP, time series, cohort analysis, etc.). - Define What Matters: List audiences and their key questions. What problems matter? What's actually actionable? What would contradict conventional wisdom or reveal hidden patterns? - Hunt for Signal: Analyze extreme/unexpected distributions, breaks in patterns, surprising correlations. Look for stories that either confirm something suspected but never proven, or overturn something everyone assumes is true. Connect dots that seem unrelated at first glance. - Segment & Discover: Cluster/classify/segment to find unusual, extreme, high-variance groups. Where are the hidden populations? What patterns emerge when you slice the data differently? - Find Leverage Points: Hypothesize small changes yielding big effects. Look for underutilization, phase transitions, tipping points. What actions would move the needle? - Verify & Stress-Test: - **Cross-check externally**: Find evidence from the outside world that supports, refines, or contradicts your findings - **Test robustness**: Alternative model specs, thresholds, sub-samples, placebo tests - **Check for errors/bias**: Examine provenance, definitions, methodology; control for confounders, base rates, uncertainty (The Data Detective lens) - **Check for fallacies**: Correlation vs. causation, selection/survivorship Bias (what is missing?), incentives & Goodhart’s Law (is the metric gamed?), Simpson's paradox (segmentation flips trend), Occam’s Razor (simpler is more likely), inversion (try to disprove) regression to mean (extreme values naturally revert), second-order effects (beyond immediate impact), ... - **Consider limitations**: Data coverage, biases, ambiguities, and what cannot be concluded - Prioritize & Package: Select insights that are: - **High-impact** (not incremental) - meaningful effect sizes vs. base rates - **Actionable** (not impractical) - specific, implementable - **Surprising** (not obvious) - challenges assumptions, reveals hidden patterns - **Defensible** (statistically sound) - robust under scrutiny Save your findings in ANALYSIS.md with supporting datasets and code. This will be taken up by another coding agent to create reports, data stories, visualizations, dashboards, presentations, articles, blog posts, etc. Ensure that ANALYSIS.md is documented well enough so that all assets are clear, the approach, intent and implications are understandable. Visualize I downloaded export-import.parquet from https://github.com/Vonter/india-export-import which has data sourced from the Indian [Foreign Trade Data Dissemination Portal](https://ftddp.dgciskol.gov.in/dgcis/principalcommditysearch.html) Each row in the dataset represents a trade entry for a single commodity, country, port, year, month, and type (import or export). - `Commodity` string: Name of the commodity - `Country` string: Name of the foreign country - `Port` string: Name of the port in India - `Year` int32: Year for the import/export activity - `Month` int32: Month for the import/export activity - `Type` category: Type of trade (Import or Export) - `Quantity` int64: Quantity of the commodity - `Unit` string: Unit for the quantity - `INR Value` int64: Value of the commodity in INR - `USD Value` int64: Value of the commodity in USD Then I had Codex analyze it. The analysis is in ANALYSIS.md. Find the most intesting insights from ANALYSIS.md and create a data story with supporting visualizations. Write as a **Narrative-driven Data Story**. Write like Malcolm Gladwell. Think like a detective who must defend findings under scrutiny. - **Compelling hook**: Start with a human angle, tension, or mystery that draws readers in - **Story arc**: Build the narrative through discovery, revealing insights progressively - **Integrated visualizations**: Beautiful, interactive charts/maps that are revelatory and advance the story (not decorative) - **Concrete examples**: Make abstract patterns tangible through specific cases - **Evidence woven in**: Data points, statistics, and supporting details flow naturally within the prose - **"Wait, really?" moments**: Position surprising findings for maximum impact - **So what?**: Clear implications and actions embedded in the narrative - **Honest caveats**: Acknowledge limitations without undermining the story Visualize like The New York Times Interactives. Ensure that all visualizations interactive and provide revelatory insights as well as some kind of delightful experience. Follow the typography, color & theme, backgrounds, interaction patterns, and animation principles of The Verge's frontends. Generate a single page index.html + script.js.

2025 29

Style transfer is my newly discovered AI super-power: having AI rewrite in someone’s style. EXAMPLE 1: Kalama Sutta. I asked Claude to “Rewrite this Kalama Sutta translation. Pick an author whose style is modern, thoughtful, and VERY readable. Mention the author and rewrite in their style.” The original sounds like this: https://lnkd.in/gQhi8CBY “It is proper for you, Kalamas, to doubt, to be uncertain; uncertainty has arisen in you about what is doubtful. Come, Kalamas. Do not go upon what has been acquired by repeated hearing; nor upon tradition; nor upon rumor…” ...

In my Mining Digital Exhaust workshop on Saturday, One discovered that they cycle when life is unstable, not for fitness. Another found that their buys are good but sells are bad trades. I learnt that I watch YouTube most at office (12-4 pm), not at home. How? A fairly straight-forward process: Export your personal data. (Use Chrome Devtools Protocol to scrape.) Upload to ChatGPT, Gemini, Claude, … and have them analyze with code. Have them narrate in the style of your favorite author. Models are super smart, but everyone has equal access to them. Your personal data is unique. Combine them to get something powerful. ...

WhatsApp Summary

Summarize a WhatsApp thread from https://tools.s-anand.net/whatsappscraper/ | https://tools.s-anand.net/whatsappview/ From the threaded WhatsApp log, write a fast, conversational news bulletin in engaging, plain, non-jargony paragraphs explaining the conversation. Sprinkle short quotes.

Tamil AI

I was testing LLMs’ sense of Tamil humor with this quote: Extend this post with more funny Tamil words that end with .ai - mentioning why they’re funny. Chenn.ai is the artificial intelligence capital of India. Kadal.ai Kad.ai Dos.ai Vad.ai Ad.ai Thal.ai Mallig.ai Aratt.ai And finally Podad.ai All spoken in namma bash.ai 😅 The Chinese models didn’t fare well. DeepSeek made up words. Mood.ai - An AI that perfectly captures your mood. Sokk.ai - The AI for when you’re bored. Thanni.ai - A hydration assistant. Qwen too. ...

Things I Learned - 05 Oct 2025

This week, I learned: Wrong answers are useful if you discover why they said that. Conversation is a game where you CO-CONSTRUCT common ground. Mike Caulfield BMTC hourly data from Bangalore Metro is available via RTI. Vivek “Find evidence for and against” improves LLM responses far more than “Are you sure?” Mike Caulfield SSH3 is an emerging SSH alternative that’s written on top of HTTP/3. It supports OAuth2, OpenID Connect, and HTTPS for certificates. Cholesterol has become a victim of its own success. We give statins to those with high LDL. So most people who have heart attacks have lower-than-natural cholesterol. Inflammation (HS-CRP) is now the strongest predictor of heart attack (American College of Cardiology). The usual stuff reduces HS-CRP: no sugar/carbs, veggies, nuts, green tea, turmeric/black pepper, weight loss, exercise, sleep, meditation. ⭐ The beginner mindset: scrub your instincts and don’t let life experience cloud you. This takes effort. Hold on to naivette and escape cynicism. The Knowledge Project: Barry Diller Forecasts give comfort. They may not be good but they feel safer than instinct. The Knowledge Project: Barry Diller My laptop’s mic is much better than my phone’s mic, surprisingly. When recording conversations, it’s better to leave my laptop open and record than use the phone’s recording app. ⭐ Here are the major not-immediately-obvious LLM megatrends/superpowers I see. Swarms. Ask for dozens of solutions in parallel. Merge, rank, auto-debate, converge. Personalize at Scale. Create feedback, designs, excerpts/summaries, … tailored to EACH person at scale. Computer use. Agents operate UIs like a human (browser, apps). LLM-as-a-judge. Use AI to validate ever-increasing AI generated output. Synthetic data. Create realistic data for prototypes, testing edge cases, market research simulation, training data, … Code on demand. Ask for outcomes directly. Agents code on the fly to get there, in data science, research, management, … Style transfer. Copy a master’s style of drawing, coding, writing, … creating an army of their apprentices. Multi-modality. Native voice/video/screensharing and long-context perception Citizen experts. Non-expertise is not a barrier. Amateurs can create expert-level films, music, software, reports, … Long-context LLMs. Growing context size lets us process entire repos, legal libraries, personal lifelogs, … Memory. Assistants learn per-person / per-team. Cuts prompt, builds knowledge. Agent-to-Agent. Agents consuming content (e.g. llms.txt), agents calling agents (sub-agents, A2A protocol, …) Real-world tools. Write reports, send emails, shop online, use computer, control devices, … Jagged frontier. AI is great at certain things but terrible at others. This frontier is unknown and shifting rapidly. Lethal trifecta. You can only have 2 out of these 3: private data, untrusted content, and external communication. Edge/Private AI. Small models on private cloud compute. Authenticity. What content is authentic? What’s slop? What’s fraud? Are AI twins liable? AI Governance. Strict liability, transparency mandates, state control, … Not sure about or haven’t seen enough of these: Data / workflow as the moat AI native business models AI digital-divide ⭐ What I’d like to do next, maybe, is build a boutique “AI Studio”. Small group of good people coding delightful AI problems. Something that doesn’t scale. GLM models can be used with Claude Code. At $3/month and a quality close to Claude 4 Sonnet, this is a good deal. But the effort of adding a new subscription is too high for me. I’d rather use it via OpenRouter which is doesn’t support an Anthropic API end point at the moment. typst is a good LaTeX alternative. Markdown-like syntax with fast rendering. Mostly useful for researchers using LaTeX. But publishers / journals don’t accept typst often. libSQL is an SQLite compatible fork with remote access, replication, ALTER TABLE to modify columns, random ROWID, etc. It supports the same externsions. The maintainers are working on turso - a SQLite compatible improvement with async, vectors, change data capture, etc. (still in alpha). But because of this, I’m a bit uncertain about the future of libSQL. ⭐ LLM benchmarks show a correlation of ~0.5, hinting at a common theme of intelligence. Correlations in coding & science are particularly high. Ethan Mollick. Reminds me of student marks correlations. Strong correlation clusters (physics, chemistry, biology, mathematics, computer science) with the weaker correlations going down to ~0.5. What does it indicate? LLMs learn like people? Knowledge areas cluster? Humans write benchmarks like exams? Dayflow records your screen at 1 fps and uses Gemini to summarise your activity every 15 min. Has low CPU usage. ⭐ Code Mode is a smart way to use MCPs and a very likely future direction. Using LLMs to write code to call MCPs rather than directly. Cloudflare supports an AI Index which will eliminate the need for a lot of custom RAG engineering.

AfterSlides: Write Slides After Talks

25 years ago, Mr. Krishnan (IAS) amused us with anecdotes of bureaucrats writing meeting minutes before the meeting. This week, I flipped that. I wrote slides after the talk. I call them AfterSlides. Why. I ran a couple of Ask-Me-Anything (AMA) sessions where the audience set the agenda. I learned their interests. They got answers. No slides prepared. How. I okayed recording with the organizers, recorded on my phone, transcribed with Gemini, and asked ChatGPT to generate the AfterSlides. ...

Tomorrow, we’ll be vibe-analyzing data at a Hasgeek Fifth Elephant workshop. It’s a follow-up to my DataHack Summit talk “RIP Data Scientists”. I showed how it’s possible to automate many data science tasks. In this workshop, the audience will be doing that. Slides: https://talks.s-anand.net/2025-09-16-vibe-analysis/ (minimal because… well, it’s “vibe analysis”. We’ll code as we go.) Here are datasets I’ll suggest to the audience: India Census 2011: https://www.kaggle.com/datasets/danofer/india-census MovieLens movies: https://grouplens.org/datasets/movielens/32m/ IMDb movies: https://datasets.imdbws.com/ Occupational Employment and Wage Statistics (OEWS): https://www.bls.gov/oes/tables.htm Global AI Job Market & Salary Trends 2025: https://www.kaggle.com/datasets/bismasajjad/global-ai-job-market-and-salary-trends-2025 Flight Delay Dataset: https://www.kaggle.com/datasets/shubhamsingh42/flight-delay-dataset-2018-2024 London House Price Data: https://www.kaggle.com/datasets/jakewright/house-price-data Exchange Rates to USD: https://www.kaggle.com/datasets/robikscube/exhange-rates-to-usd-from-imforg-updated-daily Thailand Road Accidents (2019-202): https://www.kaggle.com/datasets/thaweewatboy/thailand-road-accident-2019-2022 … but if you’d like stories from any interesting recent datasets (10K - 10M rows, easy-to-download), please suggest in the comments. 🙏 ...

Things I Learned - 14 Sep 2025

This week, I learned: Though I’m connected on LinkedIn with people I can’t remember (weak ties), pruning them shrinks serendipity. Weak ties, despite noise, are disproportionately valuable for opportunities, e.g. intros, jobs, and pruning reduces future upside. Science Claude has a Python + Node code interpreter that can access GitHub, PyPi, npm and Google. Simon Willison SuperTinyIcons has very small icons for many websites and is available via CDN. Sample: http://cdn.jsdelivr.net/npm/super-tiny-icons/images/svg/github.svg Clock bench is an LLM benchmark based on how well LLMs tell the time from an analog clock. Humans (89%) are much better than the best model (Gemini 2.5 Pro - 13%). Veo 3 is now available via API. Veo 3 fast is 15s/second. Google ChatGPT has full support for MCPs via Developer mode in Plus and Pro accounts, via “Developer mode”. OpenAI In Pyodide, you can use from js import document and then document.querySelector to manipulate the DOM directly from Python. from pyodide.http import pyfetch lets you use fetch. gtrending is a Python package that fetches trending GitHub repos, users, etc. uvx gtrending repos --language rust --since weekly fetches trending Rust repos of the week. astgrep lets you search in code (across languages) using AST patterns. Like semgrep but more about code search than security. uvx --from ast-grep-cli ast-grep runs from the CLI. Useful for code rewriting, fast linting, code search. hurl is a CLI config-based HTTP automation tool. Useful for tests, bulk (templatized) HTTP requests, etc. rustdesk is an open-source remote desktop software. TeamViewer alternative. Self-hostable. prek is a much faster version of pre-commit - a cross-language pre-commit hook manager. ⭐ mise is a tool version manager. Combines nvm/fnm, pipx, etc. Supports running several tools with a smooth installation. The npm phishing email was a great one. It compromised chalk which is used in most npm packages. This may be one of the best supply chain attacks in recent times and makes me want to pin versions instead of using npx -y. Also makes me glad that I’m sponsoring @isaacs and @sindresorhus - two critical open source maintainers. “I pay for YouTube Premium. For my money, it’s the best bang-for-the-buck subscription service on the market”. - Gavin Andregg LLMs are non deterministic because GPUs add floating point numbers concurrently and FP addition is non associative - order matters. Thinking Machines Claude.ai can natively work with Excel, PPTX, DOCX, and PDF files now. With embeddings, atomic labels + hierarchy beat instruction-heavy prompts. Prefer short, concrete sub-labels (e.g., “promotion,” “job security,” “flexibility”) that roll up to a parent “career” rather than a composite instruction like “Total Rewards and Career Growth”. Embedding similarity is not smart enough to figure this out. Today, RPA is cheaper than LLMs in some areas. But it’s a moving target. LLM costs are fall fast: 70–90% declines across major providers in 1.5 years. Therefore, waiting has option value. But classic IT compares static quotes, not declining curves, and hence is likely to under-procure LLM solutions. ⭐ The biggest near-term ROI for LLMs in data science is like ‘boring’ data work: PII tagging, data dictionaries, ER/joins, SDTM mapping, etc.. People expect flashy GenAI, but LLMs can bootstrap schema matching and data-cleaning, speeding engineer verification, which is more useful at scale. You can create an infinite leaflet map with nano banana. Codex CLI with high reasoning effort seems far more comprehensive than Codex online. I asked both to identify the system requirements (URLs to access, software to install, ports to open) for my Tools in Data Science course. Codex CLI got it right one shot (after 10 minutes of thinking). Codex online missed several items even after 4 attempts. The Reod on Elantris might have been triggered by Jaddeth who might be an Autonomy avatar. ChatGPT Output tokens dominate latency. Decoding is sequential (one token depends on all prior tokens), so long completions are the main throttle. Shrinking returned text (e.g., send spans/tags instead of echoing paragraphs) yields a far bigger win on latency than shrinking inputs.

Prompts

My collection of LLM prompts.

The Surprising Power of LLMs: Jack-of-All-Trades

I asked ChatGPT to analyze our daily innovation-call transcripts. I used command-line tools to fetch the transcripts and convert them into text: # Copy the transcripts rclone copy "gdrive:" . --drive-shared-with-me --include "Innovation*Transcript*.docx" # Convert Word documents to Markdown for f in *.docx; do pandoc "$f" -f docx -t gfm+tex_math_dollars --wrap=none -o "${f%.docx}.md" done # Compress into a single file tar -cvzf transcripts.tgz *.md … and uploaded it to ChatGPT with this prompt: ...

Things I Learned - 24 Aug 2025

This week, I learned: Pilots like to have fun, too. While awaiting landing clearance at Kolkata, our IndiGo pilot weaved tight curves just above the clouds at steep angles, giving us stunning views and a mildly thrilling experience. (Or maybe they were just following a flight path.) Since LLMs allow ANYONE to become “good enough” in most fields (marketing, medicine, management), and so on, here’re are my guesses on the impact. ChatGPT Companies-of-one will grow. Sole founder can handle support functions. Specialists will generalize. Consultants will code. Marketers will design. Wages will compress. Seniors will earn less as juniors can do more. Layers will compress. Organizations need fewer hierarchies as 1 person can do more. Shadow apps will grow. Anyone can code. Users build apps with prompts, sheets, agents, outside of IT SDLC. Like Excel sheets. Governance will grow. Non-experts are acting like experts. Validation is more important. Uneconomical apps will thrive. 1:1 tutoring. Continous decision making or A/B testing. Leaders will convince better. Persuasion scales. Brand (authenticity, trust, skill), Channel (distribution, audience) and Data are primary differentiators. Codex and Codex CLI now support image attachments. Notes from discussion on education with Srikanth Nadhumuni Indian higher education has done better, e.g. with the IITs, than primary education, where ASER consistently shows that 5th graders can’t read 2nd grade books. The National Education Policy (NEP) is focusing on FLN (foundational numeracy and literacy). The goal is universal FLN by 2027. Teacing FLN in local languages beats English. Teachers, parents, community support are high. Learning English as a second language is faster. Other countries (France, Germany, Japan) do this. Voice LLMs could help, but may not be toddler-ready, nor strong enough in all local langauges. But high-quality textbook translation with local nuances is a one-time human-in-the-loop effort that AI can support. India’s 1 crore teachers have a mandatory 50 hrs/year training requirement that is largely under-implemented. Senthil Mullainathan is working on extracting features from student answers to questions and generating remedial content purely as a black-box. Results beat explainability. ⭐ Creating systems that rapidly improve from feedback is the key to success. Rapidity, quality of improvement, quantity of feedback are all enablers. CBDC (Central Bank Digital Currency) is RBI’s Web 3.0 protocal. It allows purpose-driven transfers, e.g. money meant for education can only be spent on education. Meta-prompts with placeholders is a prompt-improvement technique (similar to LLM interviewing). Have LLMs create the prompt with “fill-in-the-blanks”. This makes it much easier for people to fill out. MassGen is a multi-agent orchestrator. Early days, experimental. It has multiple agents answer, then vote on each others’ answers, picking the best. DSPy auto-optimizes prompts based on input-output pairs or evals. Typical improvements are ~10-20%. My opinion: avoid. It’s a good idea, but has too much abstraction that hides the implementation. Worth learning from but not implementing unless you (a) have evals + metrics and (b) you KNOW you need to change models and (c) it’s a long-term project where the learning curve is worth it. Claude and ChatGPT How LLM “Attention” works: It takes each word’s embedding, moves it closer to similar words’ embeddings (e.g. Apple moves towards phone or orange depending on context). More similar words have a higher pull, like gravity. Luis Serrano Similarity isn’t symmetric. E.g. “Coke” moves “drink” more towards it, but “drink” pulls “Coke” less, since “drink” could refer to other things. Think of the pull (“Tinder similarity”) as “what A wants” (key matrix, which pulls other words) multipled by “what B offers” (query matrix, which is pulled by other words). This leads to two different similarity matrices. Multi-head attention is where a neural net gives different weightages to different similarity matrices based on context. Value matrix transforms the embedding space so that the next best next-word is more similar. Reading the Obsidian docs is like a master class in Markdown note-taking. Features like properties, embedding YouTube, bases, tags, etc. provide food for thought. The ObsidianMD subreddit has interesting tips. Summarize takeaways on top of each section Use atomic notes: one file per idea. Link liberally YAML front-matter you can query, e.g. tags, project, status, … Use GFM admonitions, e.g. > [!NOTE] Store images in a predictable way, e.g. ![Alt text](./img/2025-08-21-screenshot.webp) – ALWAYS with alt text Use diff fences for edits / doc changes Task lists with inline dates, e.g. - [ ] 2025-08-21 Draft a letter How to research better. Abhishek Divekar Have an objective when researching. Filter research based on that. Research backwards. Pick a relevant paper. Go through relevant citations. Typically, there are only 1 or 2 directly related ancestors. Don’t waste time searching. Gemini Deep Research is a great way to find and read papers. Don’t read the abstract. Read the introduction, which is the summary. It’s just a page. (The abstract is an LLM-ized versionof the introduction. Not as effective.) MCPs aren’t much more useful than tool calling for developers. They’re powerful when packaging for external parties (non-developers, other teams, clients, etc.). Developers can work just fine with tool calling. Nitin Agarwal Cybersecurity AI is an open-source LLM-based cyber-security tool that auto scans networks for vulnerabilities. ⭐ LLMs have solved several complex tasks (e.g. topic modelling, summarization). We need to adopt these as building blocks, like functions, and build better solutions. Abhishek Divekar codex -c model_reasoning_effort=high lets you run Codex CLI with highest reasoning effort. This has a separate limit that resets every 5 hours. https://x.com/thsottiaux/status/1958035261947781262 Truly agentic systems have high Autonomy, Complexity, and Reliability. Workflows have low autonomy. Agentic systems with high autonomy currently aren’t very complex or reliable, but will improve over time. Deepak Sharma Allow humans to intervene while agent loops execute, even unsolicited, to improve collaboration. Deepak Sharma Given the early, experimental days of AI, the better KPIs might be more about experimentation (e.g. number of prototypes) than operational (e.g. cost reduction). Krishnakumar Menon ⭐ Policy-as-code is an emerging theme. Allow users to create their own guardrails policy. Or, take existing policy documents and convert them into an LLM-based evaluator. Krishnakumar Menon ⭐ “Potentially nitpicky but competitive advantage in AI goes not so much to those with data but those with a data engine: iterated data aquisition, re-training, evaluation, deployment, telemetry. And whoever can spin it fastest. Slide from Tesla to ~illustrate but concept is general.” Andrej Karpathy, Dec 2022 The skills AI coding needs are very similar to tech-lead’s or an architect’s. Tanika Gupta #ai-coding Estimating tool capability & task allocation Task breakdown Spec-ing: which of user personas, user-journey maps, wireframes, technical architecture, psuedo-code Standards: tech stack, tools, linters, security, doc standards Git versioning & collaboration Code review. (Using AI.) Providing feedback. Modularity, naming, … Automated validation Post-mortem. Learning from errors and successes, choices LLM made The ROI of prompting carefully and using meta-prompts is high. Prompt clarity reduces iterations & dead-ends. The initial time spent (10-15 min) pays off with just a single reduced iteration (time to generate + review). Tanika Gupta ⭐ Prefer passing a spec.md to AI coding agents rather than directly typing-in prompts. This lets you meta-prompt and (collaboratively) iterate on the spec.md, version the prompts as specs, and generate specs as documentation. Tanika Gupta ⭐ Models need environments to learn. So far, we have been providing training data. But an environment to interact with, and learn from by itself, is more powerful. That requires a standard for environments. This is a powerful emerging area. The crux of experimentation is the learning from a postmortem. From that perspective I have been experimenting a lot but not been documenting or learning from that. Decision logs with post mortem are a more apt device for me. Gemini API includes a url_context tool to explicitly scrape websites. API Ontologies are more than taxonomies or schemas. They’re truths or rules, e.g., “no person has more than two parents”. Helps consistency checking and inference. # Terminological knowledge (T-Box) is domain rules and constraints (e.g., “a student is a person who attends a course”). Assertional knowledge (A-Box) is instance-level facts (e.g., “Mary attends Physics 101”). Tools & Formats SHACL. A W3C language for validating RDF graphs. ShEx is easier ad popular. Notation3. A W3C assertion and logic language which is a superset of RDF. EYE Reasoner. Prolog-based N3 (Notation3) reasoner. CLI + API-friendly. Can perform rule-based reasoning and generate new triples. HermiT. OWL 2 DL reasoner. Can check consistency, classify ontologies, compute entailments. CLI and Java API. Modern, maintained. Apache Jena. Java framework for RDF/SPARQL. Built-in reasoners (RDFS, OWL mini/micro/full). CLI via riot, arq (SPARQL query engine). Popular for RDF graph stores + inference. Do developers feel this way? #ai-coding In another example of vibe coding, an instructor for my TDS course vibe-coded most of an exam using Copilot and Sonnet. 6/8 questions worked one-shot. The two #ai-coding failures were interesting: One failed because of sample vs population stats. Copilot asked for sample variance but coded variance() instead of sampleVariance(). Another failed because of rounding off. NumPy code rounds off differently from Python or JS code. Meditation is about noticing distraction and returning to focus. So, distraction is necessary and good. #beliefs #ai-coding can make us overconfident. (At least, it makes me overconfident.) They create surprisingly good output, but only ~20% of the time. I cannot commit to a specific task based on that. Instead, it’s better to rely on AI coding estimates for portfolios, e.g. promise to share something cool without mentioning what. Or do something cool first, then share. Notes from podcast with Daniel Kahnemann. The Knowledge Project. Happiness is pleasure in the moment. Satisfaction is the meaningful story of our life. When we think, we want satisfaction. When we feel, we want happiness. The thinking brain and feeling brain optimize for slightly different things. E.g. The thinking brain packs the calendar with satisfying tasks that the feeling brain feels unhappy executing Both are good for us. We don’t know which matters more. Behavior change is harder than we think. Usually, it’s better not to expect success in changing others, or ourselves. Instead, understand why that behavior makes sense. Our behaviour is an equilibrium of forces. Weakening “bad” forces is easier than strengthening “good” forces, since it lowers tension. That’s inversion! Behaviours tell us more about situations than personality. We assume otherwise. That’s an attribution error. Motivation is complex. People can do bad things for good reasons and vice versa. “Feelings get in the way of clear thinking.” Example: I vibe-coded the last 2 questions of TDS GA7 on Claude Code. It didn’t run. I delayed fixing it for 5 days, afraid it would a major effort. It ended up a 2 min fix. It could have been major, but checking would have helped. Fear prevented that. Things that hamper clear thinking: intuition, emotion, beliefs. Beliefs are often formed based on people we admire or identify, not reason. Prefer rules, systems and processes. Willpower is an illusion. Delegate decisions to unemotional agents. (But agents misjudge perceived value of gain or loss!) Break down the problem, analyze it, THEM form an intuition. Be disciplined in delaying intuition or forming an opinion Environment shapes thinking but it’s not obvious how, e.g. some people work better in noisy cafes. Some colors are more calming. Protect dissenters and dissent. It’s painful and costly, and needs nurturing. NodeJS runs TypeScript files natively. Codex can clone any GitHub repo. So I can ask it to pull one or more repos, understand their code, and use that as a template or reference. This makes my repositories (and others’) reusable templates. Using newer libraries and platforms becomes easier, too. #ai-coding Tracking AI runs an IQ test on various LLMs every week. GPT 5 Pro leads, currently, followed by Claude 4 Opus and Gemini 2.5 Pro. It’s surprising how far behind GPT 5 is at the moment. LLMs are faster than me. So me learning and doing what the LLM says is a bottleneck. Get out of the way. For example do not learn. Do not execute. Do not verify. Give LLMs the tools to deploy, verify and iterate to improve.

LLMs as Idea Connection Machines

In a recent talk at IIT Madras, I highlighted how large language models (LLMs) are taking over every subject of the MBA curriculum: from finance to marketing to operations to HR, and even strategy. One field that seemed hard to crack was innovation. Innovation also happens to be my role. But LLMs are encroaching into that too. LLMs are great connection machines: fusing two ideas into a new, useful, surprising idea. That’s core to innovation. If we can get LLMs daydreaming, they could be innovative too. ...

Things I Learned - 17 Aug 2025

This week, I learned: Git partial clone lets you fetch files on-demand! E.g. git clone --filter='blobs:size=100k' <repo> will clone files under 100K and fetch the rest only on checkout. Over time, Git LFS capabilities will migrate into native Git. Ref ⭐ From Daniel Kahneman, The Knowledge Project Podcast. Key lesson. Have lower expectations. Behavior change is hard. Happiness is pleasure in the moment. Satisfaction is the meaningful story of our life. When reflecting, the thinking brain wants satisfaction. When feeling, the feeling brain feels happiness. The 2 brains optimize for different things. The thinking brain packs the calendar with satisfying tasks that the feeling brain hates doing. Happiness & pleasure are both are good for us. We don’t know which matters more. Behavior change is harder than most people think. Usually, it’s better not to expect success. Changing others, or ourselves. Instead, understand the cause of that behavior. Behaviour is an equilibrium of forces. Weakening forces preventing right behaviour is easier than strengthening forward forces. It lowers tension. That’s inversion! Behaviours are more about situations than personality. We assume otherwise - that’s an attribution error. Environment shapes thinking but it’s not obvious how, e.g. some people work better in noisy cafes. Some colors are more calming. Leadership & delegation Motivation is complex. People can do bad things for good reasons and vice versa. So, delegate decisions to unemotional agents. But agents misjudge perceived value of gain or loss! People prefer over-confident intuitive leaders over slow, deliberate leaders. Protect dissenters and dissent. It’s painful and costly, and needs nurturing. Negotiation is about understanding, not convincing. “Feelings get in the way of clear thinking.” Example: I vibe-coded the last 2 questions of TDS GA7 on Claude Code. It didn’t run. I delayed fixing it for 5 days, afraid it would a major effort. It ended up a 2 min fix. It could have been major, but checking would have helped. Fear prevented that. Intuition, emotion, beliefs hamper clear thinking. Beliefs are often formed based on people we admire or identify, not reason. What enables clear thinking (all are hard): Pragmatism. Don’t threaten your identity, the leader, etc. Else none of this works. Rules, systems and processes. Willpower is illusion. Alignment is an illusion. “Whereever there is judgement, there is noise, and more than what people think.” Standards. Shared, consistent scales of evaluation. Super-forecasters use probability scales. Deliberation. Slow decision making. Decomposition. Break down the problem, analyze it, THEN form an intuition. Be disciplined in delaying intuition or forming an opinion. Pre-mortems. “Write the history of the disaster this decision led to.” Decision journals with post-mortems. Pros, cons and alternatives from failed decisions, e.g. Ray Dalio’s principles. Change of mind. Independent data. Use data. Keep evidence gatherers independent of decision makers. Preparation. Have decision makers write down decisions before discussing. Increases diversity. DuckDB’s feature engineering capabilites are faster than scikit-learn. DuckDB Developers are encoding their entire SDLC workflow into Claude commands ChatGPT #ai-coding Commands are used for: Requirements: Research sub-agent, task breakdown into todos.md, creating specs.md from todos.md Progress tracking: session logging, effort tracking, updating status, planning next steps Project setup: initializing, adding deps, scaffolding features Development: code review, debug error (five whys), explain code, refactor code Optimization: optimize build, DB, caching Testing: TDD, generate test cases, set up unit/integration/E2E testing, analyze coverage Security: security audits, dependency vulnerability scans Integration: sync tasks between GitHub and Linear (two-way issue synchronization, PR linking) Deployment: prepare releases, hotfix deploys, rollbacks, containerization, CI pipeline setup Patterns of usage Sub-agents Command handoffs, i.e. one command invoking another Shared among a team in a repo, enforcing standards & sharing best practices Integration with specific tools / APIs (e.g. Linear) ⭐ LLMs can hyper-personalize demos. E.g. an LLM document generator demo accepts a role, document type, and prompt. The demo-er says “Bank, LinkedIn marketing” and the LLM auto-populates the fields aptly, re-purposing the demo. From the GPT 5 coding cheatsheet: Be precise and avoid conflicting information. Use a prompt optimizer to check for inconsistencies. Use the right reasoning effort. Prefer medium or low reasoning to avoid overthinking simple problems. Use XML-like syntax to help structure instructions Avoid overly firm language, e.g. “You MUST be THOROUGH” vs “Thoroughly”. Give room for planning and self-reflection. Explain what to do in steps, asking it to think deeply Control the eagerness of your coding agent, e.g. do not ask for confirmation, parallelize tool calls, use more tools, etc. ⭐ Assets are any leveragable stored capability. Money is one, but there are several one can “invest” in, be an agent of, or perhaps steal. Wealth (investments, income) Regenerative assets (land, carbon credits, renewables) Contacts (reference customers, hiring pipeline, talent bench, weak-ties) Distribution channels (repeatable routes to users: partnerships, marketplaces, APIs, SEO) Attention (your audience, whom you can reach directly) Trust/reputation in communities (community capital in employers, clients, forums, society, search keywords) Personal brand “edges” (moral authority, values lived aloud, distinctive taste or stance) Data (your clean, labeled, joined data corpus) Code (models, algorithms, components, templates, libraries, tools, evals; versioned) Content (blog posts, video tutorials, case studies, demos, stories, slides, docs) Knowledge (notes, decision logs, knowledge graph, institutional memory) Playbooks & runbooks (process checklists that survived fire, SOPs, scenario plans) Habits & policies (operating cadence, rituals, governance & compliance muscle) Optionality (cash buffer, credit lines, slack time, real options, small bets) Agreements (MSAs/SLAs, pre-negotiated contracts) IP (copyrights, trade secrets, trademarks) Health & energy reserves ⭐ Intense negative emotions get in the way of clear thinking. Curiosity, humor, kindness, and gratitude help. (Intense positive emotions like awe, passion, etc. help creativity and are not so bad.) #beliefs I like to think I’m a Python expert. When I saw a client use this code, I told her the indentation is wrong. It ran just fine. And people think only LLMs hallucinate. This is undocumented, but the way to get an Gemini ephemeral auth token for the live API is below. (Update time as required.) ChatGPT Learnings from a discussion on vibe-coding between Kunal Jain, Ravi Nadimpalli and me. #ai-coding On the Vibe Coding Process & Strategy The 80/20 Rule is Real: The first 80% of a project is incredibly fast, but the final 20% (debugging, custom features, production-readiness) is extremely difficult and time-consuming. Validation is the New Bottleneck: Since coding is now much faster, the critical, time-consuming task has shifted to reviewing, testing, and validating the LLM’s output. “Spec-Locking” is Crucial: Providing the LLM with detailed, well-defined, and “thinly sliced” specifications is essential for getting good results. Vague requests lead to poor outcomes. It’s Not Production-Ready (Yet): The consensus is that vibe coding is excellent for prototypes, demos, and go-to-market (GTM) activities but is not yet reliable for building production-grade applications from scratch. Code is Brittle & Unstable: An application that works perfectly one day can inexplicably break the next, as the underlying agent might make undocumented changes. Impact on Roles & The Future of Work The Rise of QC/Validation: The Quality Control (QC) function will become larger and more critical to manage the new challenge of validating AI-generated work. Product Managers Shift Focus: PMs can move away from tedious documentation (like flowcharts) and focus more on high-level business strategy, using vibe coding to create quick prototypes. Democratization of Building: It empowers non-coders to build functional apps and helps professionals upskill faster by “conversing” with an LLM on complex topics. New Forms of Cheating: The technology is creating novel ways for people to cheat in interviews, such as using tools that provide real-time subtitles of answers. The “Jagged Edge” of AI: The technology excels at certain tasks (like GTM content) but fails at others, creating new upstream bottlenecks where teams must rapidly generate more of the “AI-friendly” work. Practical Hacks & Takeaways Meta-Prompting: Use an LLM to refine and improve your prompt before giving it to the final tool. This helps fill in gaps and add necessary detail. Human-First Drafting: For creative or nuanced work (like writing), it’s often better to write the first draft yourself and use the LLM to polish it, rather than starting with a generic AI draft. Use Structured Prompts: For predictable and clean output, providing instructions in a structured format (JSON is OK but not needed) is highly effective. LLM as a Judge: Use LLMs to evaluate and grade content, code, and other outputs, dramatically speeding up the review process. Automate Learning & Documentation: Use tools to transcribe conversations automatically and create personalized revision quizzes from notes and documents. Voice is a Powerful Modality: Using voice-to-code allows for capturing more complex ideas faster and can be done while multitasking (e.g., walking), capitalizing on “dead time.” For live transcription, Gemini 2.5 Flash Live costs 0.6c/min of audio ($3/MTok x 32 tokens/second) while GPT 4o Mini Realtime costs ~2c/min and GPT 4o Realtime costs ~8c/min. ChatGPT I set up MCPs Codex CLI by adding this to ~/.codex/config.toml. I’ve disabled it for faster startup (this takes ~2 seconds) and raised an enhancement issue for MCP lazy loading Anthropic launched a remote MCP connector in their API. OpenAI Responses API already had remote MCP support. Gemini will likely follow, opening up new tool capabilities. The APIs can directly call the MCPs as part of their thinking. Turns out Indian English is a well studied topic. Indianisms like “can able to”, “need not to”, “why because…”, “if suppose…”, “return back”, “revert back”, “angry on”, “discuss about”, “order for”, “do one thing…”, “give me a missed call”, “what is your good name”, “kindly adjust”, “we are like that only”, “he is coming only”, “today itself”, “now only”, “prepone”, “pass out (of college)”, “out of station”, “do the needful”, “hotel”, “batchmate”, “cousin-brother / cousin-sister”, “I have a doubt”, “I am understanding”, “she is knowing”, “you’re coming, no?” etc. are discussed in Pingali Sailaja’s Indian English. ChatGPT Astral is building pyx - a paid PyPi alternative. It aims to solve problems like PyTorch CUDA builds. Knowing them, it’ll be fabulous. I look forward to when they build a Python hosting service. ⭐ Here’s one way to improve LLMs apps in real-time. After sending a response, send the prompt + input + output + optional user feedback to an LLM-as-a-judge asking for feedback to improve the prompt. Revise the prompt based on the improvement. Now the app has improved, real-time, based on human/LLM feedback. Refine this process to ensure that the revisions are smooth and positive. GPT 4.1 (and presumably GPT 5) models have been trained on a specific diff format useful for code diff-patching. PseudoPatch is a Python package that implements their apply_patch() function. Aider supports multiple edit formats that are commonly referenced as a standard. Code Surgery has a good walkthrough of various strategies. These are similar to Google’s diff-match-patch approach (which fuzzy matches and then patches) but does not require line numbers. ChatGPT Here are some query parameters ChatGPT.com unofficially supports: ?q=... prefills in a new chat and often auto-submits, especially small text #. Useful for: A custom search engine in your browser An “Ask ChatGPT about selection” bookmarklet, etc. Links (e.g. from courses, FAQs, etc.) for tasks or learning … but not for custom GPTs ?model=... selects a model (e.g., gpt-5-thinking). ?hints=search enables Search mode ?temporary-chat=true opens a new temporary chat Tavus is another AI avatar platform. Synthesia. Market leader; $2.1B valuation; enterprise trusted. Good: Realism, enterprise features, templating. But: Price, usage caps, slower avatar setup HeyGen. Rapidly growing; $500M valuation. Good: Avatar realism, speed, affordability. But: Basic collaboration, support, scene complexity Colossyan. Favored L&D focus. Good: Interactive & educational tools, good value. But: Less polished avatars, slower renders D-ID. Frequently cited alternative. Good: Speed, flexibility, custom avatars. But: Watermarks, fewer templates Elai.io. Repeats in alternatives lists. Good: Storyboarding, educational formats. But: Limited templates, render time Hour One. Also common in alternative lists. Good: Photoreal avatars, expression control. But: Missing advanced features like screen capture Others. Niche or emerging tools. Good: Varies by platform. But: Less adoption, fewer reviews Training companies are offering “Labs-as-a-service” as part of their AI training. Corporates ban LLMs, but need employees trained. Trainers offer a bundled package where they also offer access to LLMs are part of their course. Interesting business-model value-add. ⭐ I’m meta-AI-coding. I wrote a crude prompt in prompts.md, told Codex “prompts.md has a prompt under the “# Improve schema” section starting line 294. This is a prompt that will be passed to Claude Code to implement. Ask me questions as required and improve the prompt so that the results will be in line with my expectations, one-shot.” After a few discussions, it generated this remarkable prompt. This prompt was easy for me to review AND easy for Claude Code to understand because of the lack of inconsistencies. Use the Ask-Code pattern. In Codex, speak the requirement and have it rewrite the prompt asking clarifying questions pressing the Ask button instead of Code. Then, answer its questions. Then press Code. A Forward Deployed Engineer (FDE) is a hybrid role, part software engineer, part product manager, and part consultant, focused on deeply integrating a company’s technology with a specific client’s needs. Based on what I’ve seen of AI coding, new developers need to learn these skills. #ai-coding Context engineering Documentation Automated testing Standards Capabilities of platforms Modularity (and DRY vs WET) Code composition Code reviews Blindspots continue to be the insight with maximum RoI. Discovering something we’re not even aware we’re unaware of opens up the largest possibilities. #beliefs My top sources to discover blindspots are: Feedback. Especially feedback we reject, ignore, or miss. Things we run/shy away from. Across clients, providers (e.g. Bedrock) and products (e.g. Cursor) I have observed capacity bottlenecks for Claude models which don’t seem to affect OpenAI models as much. Increasing the size of an image improves OCR accuracy for LLM models (or at least Claude 4 Sonnet). Anecdotally, resizing 2x did not work on a number of examples but 2.5x - 3x did. This increases the cost to 6.25x or 9x, however. Discussion at PyConSG Edu Summit 2025. Padlet Discussion validation Interesting ways students use AI Use AI to refactor/debug whole codebases Get AI to create questions for practice ChatGPT Study mode Students like to upload photos. We can teach them to upload these to ChatGPT and ask questions. What teaching practices / assessment design can help students think for themselves before turning to AI? ChatGPT Interactive orals / micro-vivas (short, process-focused). Strong alignment with “interactive oral assessment” research and guidance in the AI era: improves authenticity, reduces outsourcing/contract cheating, and checks understanding. Make them low-stakes but frequent. How: 5–8 min viva tied to a task; students must explain choices, failures, and next steps. Authentic / project-based assessments students can self-validate (observable outputs). Project-based and “authentic” assessment meta-reviews show consistent positive effects (achievement, thinking skills, motivation), especially in STEM and small teams. Design tasks with local data/constraints so generic LLM answers are only a baseline. How: “Default AI answer” gets a pass; “A-grade” requires empirical validation, custom data, or optimisation trade-offs with metrics. Pair programming + peer critique on whiteboards/pseudocode. Evidence (meta-analyses & CS-ed studies) supports pair programming for learning and retention; code tracing/peer instruction deepen understanding before coding. How: Rotate driver/navigator; force commit-message style rationales; 10-minute “whiteboard dry-run” before touching IDE. Process-over-product with structured reflection. Metacognitive/reflective interventions show medium-to-large effects on achievement; they also build habits that resist blind acceptance of AI outputs. Keep reflections short but structured. How: “What I asked AI; what it missed; how I verified; what I’d change next time.” “No-AI under secure conditions” mixed with AI-permitted coursework. Matches national/institutional guidance for GenAI-aware assessment design. Use secure, time-boxed checks for fundamentals; allow AI elsewhere with audit trails. Primary research (interviews/user studies) before design/coding. Fits the “authentic assessment” literature and reduces LLM substitution. Grade on research protocol + synthesis rigor, not word count. Explicit problem-solving frames (initial/current/goal state). Classic problem-solving scaffolds; improves formulation before querying AI. Pair with short “assumption logs.” (General pedagogy supported; CT depends on domain knowledge – see caveat below.) Caveat (important): Critical thinking depends on domain knowledge. Don’t expect generic CT drills to transfer without content mastery. Plan tasks so students must recall/apply specific knowledge before or alongside AI. How can we train students to use AI critically instead of accepting the output blindly? ChatGPT Teach “lateral reading” and SIFT for source checking. Stanford’s Civic Online Reasoning work and Caulfield’s SIFT method offer actionable heuristics for verifying claims, URLs, and citations that LLMs surface. Build these into rubrics. Run “AI auditing” labs (hallucination hunts). Students collect/label model mistakes, missing assumptions, and fabricated citations – an approach aligned with UNESCO’s call for AI literacy and validation. Use online judges with hidden tests + adversarial cases. Autograding literature supports hidden tests for robust generalization; it trains students to verify and not overfit to visible specs – or to AI’s surface patterns. “Sandwich” workflow: spec → implement 1–2 reps → let AI complete → verify rigorously. Mirrors human-in-the-loop patterns in industry; use checklists for unit/property tests and invariants before accepting AI output. Live-coding with an AI assistant on display (to show failure modes). Demonstrates nondeterminism/limitations in real time; supports critical habits. Pair with a post-mortem template. Prompt red-teaming/jailbreak exercises (safe scope). Students learn that guardrails can be bypassed and why verification matters. Keep it ethical and bounded. Build a knowledge base first. Reinforce that CT sits on content knowledge; teach students to explain why an AI answer is plausible or not, citing domain facts. Notes from “My Thoughts on Computational Thinking in the Generative AI Era” by LEONG Hon Wai, ex-NUS, at PyConSG Edu Summit 2025 Students from China don’t like to write, express their ideas, and share. That’s changing now. Computational thinking is pretty new (Jeannette Wing, 2006), actually, based on Papert (1980). It’s too early to abandon it. It enables effective learning attitudes: Tinker (experiment & play): helps finding diverse problems to generalize into Debug (find & fix bugs) Create (design & make) Persevere (keep going): but only if it’s productive, i.e failing in new ways Collaborate & communicate Teaching this is hard. Get students to WANT to do computational thinking. Problem formulation (among the computational thinking blocks) is more important than before. Leveraging Computational Thinking in the Era of Generative AI argues that computational thinking manifests in prompt/context engineering. We’re moving from “Computational Thinking” to “Computational Action” – where we’re talking to AI coders that actually deploy apps that DO stuff. Notes from “Make Learning Easy and Fun @ NLB LearnX” by Goh Soon Seng, NLB, at PyConSG Edu Summit 2025 Libraries have a Pi Python Makers Club, open for all. Bi-monthly meetings. Quarterly Pi Python workshop. Space provides 3D printers, Raspberry Pi, sensors, etc. Notes from “Teaching Goals and Plans - How we might help students improve problem-solving” by Dr Norman Lee, SUTD, at PyConSG Edu Summit 2025 Programming is hard. E.g. Solving the Rainfall problem “Sum numbers until 99999” needs several building blocks: Python syntax Getting user input While loop Controlling while loop with counter Accumulation If-else Merging (or composing) such blocks is the hard part. In Learning to program = learning to construct mechanisms and explanations, Soloway, shares 4 compositions. Abutment: Put one block after another Nesting: Put one block inside another Merging: Interleave the code in the blocks Tailoring: Modify the code in the blocks But you need to already have those primitives (patterns) to put together. The “expert blind spot” blinds experts to this. Actionable ideas: Teach patterns explicitly Create exercises on applying them Use Parsons problems: Fill in the blanks. Re-order lines of code. But design problem carefully Step through a debugger. BUT students must predict next line, not passive watching Teach to from one format (psuedocode, flowchart, another language like Excel) to Python. Helps multiple modes of learning Notes from “AISG programmes” by Chen Qeiquang, AI Singapore, AI Apprentice Programme (AIAP) Assistant Head Full-time. For SG citizens. $4,000/month. Build 3-6 month MVPs for startups, SMEs, or corporates. 300/1000 delivered so far. No lectures/tutorials. Focus is: topic assignments, discussion with mentors, apprentice sharing sessions. Includes an LLM Application Developer Program. Notes from “Scaffolding the Problem-Solving Process for Introductory Computing Students” by Ashish Dandekar, NUS, at PyConSG Edu Summit 2025 Built an intelligent tutoring system Encourage students to create their own pattern banks / cheat sheets. “Find 2 more problems that can be solved in the same way.” Focusing on the problem-solving process shrinks the gap. Students above the 50th percentile of pre-assessment did not improve much. The lowest percentile improved the most. “At NUS, I know that even if I give 0.5% weightage for students attending tutorials, everyone will attend it for those ‘free marks’.” Notes from “Exploring Multi-Agent Generative AI in Education and Career Advisory” by Dr Yeo Wee Kiang, NUS, at PyConSG Edu Summit 2025 ⭐ “When you have a high fever, do you speak more sense or nonsense? Nonsense. LLM temperature is like that. But it can also sound creative!” The router pattern is a powerful query rewriter. Redirects the query to specialized prompts/agents. Useful tools you can build for students: Course Mentor, Interview Coach, Job planner/matcher. Notes from “Do we need to teach coding given vibe-coding tools?” by Dr. Oka Kurniawan, SUTD, at PyConSG Edu Summit 2025 Paper: What the Science of Learning Teaches Us About Arithmetic Fluency says mental math helps mathematicians. Fluency bootstraps higher-level thinking. MIT Media Lab’s Project: Your Brain on ChatGPT. Explores impact on brain. Bran-only group had the widest ranging brain networks. AI accumulates cognitive debt. Paper: “A Study of the Difficulties of Novice Programmers” struggle with: Syntax Problem solving Tools Computing concepts Analytical thinking / debugging Polya’s How to Solve It is the base problem solving framework for maths and can be adapted to computing Expert programmers have enough patterns to match against. Novices don’t. We need a bottoms-up framework instead Give them a concrete case. Have them generalize (loops, functional, vectors) Have them implement (debugging) Have them break it (test) All via vibe-coding! The chats are tracked!! Paper: First Things First: Providing Metacognitive Scaffolding for Interpreting Problem Prompts Students often get the problem wrong Reading student conversations helps figure it out LLMs can figure it out too! Paper: The Widening Gap: The Benefits and Harms of Generative AI for Novice Programmers Good coders got better with AI. Were able to ignore unhelpful advice. Poor coders got worse! Thought they performed better than they did. Increased illusion of competence. The Bebras Challenge is a global non-programming computational thinking (CT) challenge. Examples. Singapore runs a National Junior Informatics Olympiad that learns from Bebras. It tests the mindset behind coding, specifically “computational thinking”: Problem formulation (added recently, and is increasingly important) Decomposition (and composition): break the problem down Pattern recognition: find the building blocks Abstraction: generalize useful blocks, drop irrelevant ones Algorithmic thinking: write the steps to solve Validation (not part of original list, but critical): how to efficiently check if this works Apple’s Embedding Atlas (Demo - slow, needs WebGPU) is an embeddings visualizer, like Tensorflow Projector or Mantis (Demo). John Kotter’s organizational change model is the accepted practice for top-down change, while ADKAR is for bottom up. It’s surprising how obviously effective both are to someone who has effected both kinds of changes, but there is NO WAY I would have appreciated either during my MBA. Wikipedia: Change management The OpenAI Chat Completions API has a few interesting and (relatively) new options: verbosity. low: concise response, medium: default, high: verbose reasoning_effort: minimal: almost none. medium: default. Or low, high. truncation: auto: truncate response by dropping input items in the middle. disabled: default prediction: speeds up output for minor corrections to text prompt_cache_key: tailors per-user caches CSS nesting can be used with media queries too! Julia Evans id3v2, mid3v2 and eyeD3 seem the cleanest way of editing MP3 tags on the CLI. mid3v2 was already installed on my system. Learnings people shared in Ask HN: What trick of the trade took you too long to learn? Finance & housing Time is a non-renewable asset. Lifestyle design matters as much as net worth. Future-proof against regret. The present matters, too. Home ownership ties up location choice, capital and has hidden costs. Market timing & geographic arbitrage has an outsized effect. Software Align abstraction to domain. Avoid premature abstraction (Don’t Repeat Yourself vs Write Everything Twice) and over-abstraction. Temporary fixes tend to stick. Stop-gap regexes last for years. Consistency is a quality multiplier. Small inconsistencies cause disproportionate harm. git bisect is a regression-finding superpower. It’s OK to write tests covering key parts of legacy codebases - 100% coverage isn’t critical. Document architectural decisions: why this approach. See Diátaxis. Flow metrics predict delivery better than (arbitrary) estimates. Building features without linking to delivery spesd wastes resources. Life habits & learning You have the right to say “no”. Small, consistent actions beat dramatic changes. Persistence beats skill. You’re allowed to change your mind. Over-cleverness backfires. Witty code & communication lead to confusion. Context is king. Without background, everything is mis-interpretable. Fun leads to excellence. Excellence leads to fun. The meta-lesson here is how I discovered these: Run topicmodel to identify topics Feed the output CSV to ChatGPT and ask it to share lessons topic-by-by-topic # Topic modeling can be extended in many ways. # Structural Topic Models factor in metadata, like year (numeric) or category or author (categorical). Relational Topic Models factor in undirected graph relationships, e.g. parent documents Graph-Regularized Topic Models factors in arbitrary graph relationships, e.g. weighted, directed Neural (GNN + Topic Model) approaches work better for large graphs, long-range dependencies, etc. Some ways to inject graph structure into topic similarities to, for example, cluster threaded discussions. # Start with a graph similarity matrix S, like # a regularized graph Laplacian (based on degree - adjacency matrix) a similarity matrix like graph2vec from Graph Kernel a node-embedding karateclub. Option 1: “Smoothen” the embedding matrix multiplying it with S (i.e. spread each document towards neighbors), then calculate similarities Option 2: Take the weighted average of S and the embedding similarity matrix You can extract Hacker News comments as a threaded discussion pasting this into the DevTools console:

At the DoMS, IIT Madras 2025 commencement, I shared how MBA students might adapt to an AI world. Takeaways The MBA syllabus will age fast; adaptability is a core competency https://youtu.be/sSyBUSuLduQ?t=02m03s LLMs have a “jagged-edge”. Management tools—redundancy, cross-checks, human escalation—still work https://youtu.be/sSyBUSuLduQ?t=07m02s LLMs already deliver hours of analyst work in minutes. Entry-level roles WILL vanish https://youtu.be/sSyBUSuLduQ?t=14m21s High-value knowledge jobs—strategy, finance, contract risk, market research—are being refactored by AI https://youtu.be/sSyBUSuLduQ?t=23m01s Learn less of grunt-work. LLMs can handle that https://youtu.be/sSyBUSuLduQ?t=45m22s Study with LLMs as Socratic sparring. Run “draft-critique-rewrite” sprints https://youtu.be/sSyBUSuLduQ?t=49m17s Funny bits ...

Things I Learned - 03 Aug 2025

This week, I learned: From A.I. Is About to Solve Loneliness. That’s a Problem: “Blindly stifling every flicker of boredom with enjoyable but empty distractions precludes deeper engagement with the messages boredom sends us about meaning, values, and goals.” Maybe the best thing about boredom is what it forces us to do next. Here’s when be candid vs polite. #beliefs ChatGPT If there’s high trust (i.e. the other person trusts you): Important topic/decision: Be candid Unimportant: Follow culture (e.g. in Japan, you’d be polite; in The Netherlands, you’d be candid) Low trust: Important: Earn trust first Unimportant: Be polite I didn’t realize that it was Luis Alvarez (whom I know from his work on the bubble chamber) is the same person who figured out that an asteroid killed dinosaurs. He also used muon tomography to search pyramids for hidden chambers and figured out Kennedy was shot from behind. Added his biography, Collisions to my to-read list. Ref Benjamin Green suggests that OpenAI Study mode is sycophantic. E.g. in this conversation, ChatGPT carefully balances truth and politeness. A reader might misinterpret that as agreement. But sometimes, we need candor. Politeness trades clarity for harmony. People who trust AI should tell it to be more candid. ⭐ Here’s my current response when asked, “How should I use LLMs better”: Use the best models, consciously. O3 (via $20 ChatGPT), Gemini 2.5 Pro (free on Gemini app), or Claude 4 Opus (via $20 Claude). The older models are the default and far worse. Speak & listen, don’t just type & read. I had to resist the temptation to ignore ChatGPT response when a colleague read it out. We are patient with and have respect for humans but not for AI. The value we derive requires both. Suggestion: Speak and listen rather than type and read. It’s hard to skip and easier to stay in the present. It’s also easier to ramble than type. Keep an impossibility list. There is a jagged edge that moves. When you note down what’s impossibile today and retry every month, you can see how that edge shifts. Wait for better models. Many problems can be solved just by waiting a few months for a new model. You don’t need to find or build your own app. Make context easily available. Context is one of the biggest enablers for LLMs. Use search, copy-pasteable files, previous chats, connectors, APIs/tools, or any other way to give LLMs examples and context. Have LLMs write code. LLMs are bad at math. They’re good at languages, including code. Running the code gives output with low hallucinations. This combination can solve a WIDE variety of problems that need creativity and reliability. Learn AI coding. 1. Build a game with ChatGPT/Claude/Gemini. 2. Improve it. 3. Create a tool useful to you. 4. Publish it on GitHub. APIs are cheaper than self hosting. Avoid self-hosting. Datasets are more important than fine-tuning. You can always fine-tune a newer model as long as you have the datasets. Most CDNs use package.json "exports" for the default URL of npm packages. jsDelivr uses jsDelivr > browser > main (does not use exports - a notable exception) unpkg.com uses exports.default > browser > main skypack.dev uses exports.default > module > main esm.sh uses esm.sh.bundle > exports.default jspm.dev uses jspm > exports.default > main A quick way to transcribe audio recordings is via: llm --system "Transcribe" --attachment recording.mp3 --model gemini-2.5-flash "This recording is about (context)". Providing context improves transcription, e.g. by spelling names and technical terms correctly. Since Gemini has a 1M input context, using Gemini CLI as a sub-agent from Claude Code using the -p or --prompt flag lets it crunch large code bases and pass relevant responses back to Claude Code. #ai-coding While ChatGPT Codex aligns with my minimalistic style and follows instructions very well, it also tends to remove comments in my code and oversimplifies. Jules is better than that regard. #ai-coding Teaching vibe coding is satisfying, too. I guided a developer to write a Python workflow by providing 2 prompts. Both of these were one-shotted by Claude 4 Sonnet. The entire process took 20 min with me guiding them over the phone. #ai-coding “Write a Python script to extract a page from a PDF file and save it.” Followed by “Write minimal code. Drop error handling.” “Write a Python script to pass a PDF file to an LLM for OCR and print the result. Use this code sample… [PASTED CODE].” Followed by “Write minimal code. Drop error handling.” LLM users are maturing quickly. Early adopters who are open to understand the generic capabilities of LLMs through demos are somewhat saturated. The early majority have come in. They aren’t interested in generic capabilities. They’re looking for solutions that solve their specific problem. Soon the late majority will come in asking for existing solutions that have already solved their problem for many others. How can a generic industry-agnostic technology team create demos or solutions for this early majority when we don’t yet know their use cases? ChatGPT Maintain a living “pain wiki” that teams updates daily. Create thin-slice demos that solve ONE pain-point. Re-configure with an industry skin. Result: ten demos that feel bespoke. Publish ROI, client list. Run as one-day POCs with client data. Open toolkit to partners. Track popularity of tools. Archive unused ones. Consolidate popular ones into solutions. AI closes the gap between junior & senior devs – even when both use AI. Quality doesn’t suffer much. So onboarding can be faster, compensation ladder may shorten. When using AI, developers code more and “project manage” less. Collaboration need reduces and hierarchies are likely to flatten. Generative AI and the Nature of Work #ai-coding FFmpeg in plain english lets you run ffmpeg in the browser with plain English commands. It converts the task using an LLM into an ffmpeg command, runs it in browser via WASM (without uploading the file) and saves the output locally. This is very useful, since ffmpeg has one of the most complex command line options. I use an llm template defined via: llm --save ffmpeg --model gpt-4.1-mini --extract --system 'Write an ffmpeg command' which I can use like this: llm -t ffmpeg 'Crossfade a.mkv (1:00-1:30) with b.mkv (2:10-2:20), 3s duration' OpenAI’s prompt engineering guide recommends an interesting tactic that includes this prompt snippet, which I think is very powerful. ask clarifying questions when needed ...

Pipes May Be All You Need

Switching to a Linux machine has advantages. My thinking’s moving from apps to pipes. I wanted a spaced repetition app to remind me quotes from my notes. I began by writing a prompt for Claude Code: Write a program that I can run like uv run recall.py --files 10 --lines 200 --model gpt-4.1-mini [PATHS...] that suggests points from my notes to recall. It should --files 10: Pick the 10 latest files from the PATHs (defaulting to ~/Dropbox/notes) --lines 200: Take the top 200 lines (which usually have the latest information) --model gpt-4.1-mini: Pass it to this model and ask it to summarize points to recall ...

How To Control Smarter Intelligences

LLMs are smarter than us in many areas. How do we manage them? This is not a new problem. VC partners evaluate deep-tech startups. Science editors review Nobel laureates. Managers manage specialist teams. Judges evaluate expert testimony. Coaches train Olympic athletes. … and they manage and evaluate “smarter” outputs in many ways: Verify. Check against an “answer sheet”. Checklist. Evaluate against pre-defined criteria. Sampling. Randomly review a subset. Gating. Accept low-risk work. Evaluate critical ones. Benchmark. Compare against others. Red-team. Probe to expose hidden flaws. Double-blind review. Mask identity to curb bias. Reproduce. Re-running gives the same output? Consensus. Aggregate multiple responses. Wisdom of crowds. Outcome. Did it work in the real world? For example: ...

My VizChitra talk on Data Design by Dialog was on LLMs helping in every stage of data storytelling. Main takeaways: After open data, LLMs may the single biggest act of data democratization. https://youtu.be/hPH5_ulHtno?t=01m24s LLMs can help in every step of the (data) value chain. https://youtu.be/hPH5_ulHtno?t=00m47s LLMs are bad with numbers. Have them write code instead. https://youtu.be/hPH5_ulHtno?t=06m33s Don’t confuse it. Just ask it again. https://youtu.be/hPH5_ulHtno?t=05m30s If it doesn’t work, throw it away and redo it. https://youtu.be/hPH5_ulHtno?t=20m02s Keep an impossibility list. Revisit it whenever a new model drops. https://youtu.be/hPH5_ulHtno?t=20m02s Never ask for just one output from an LLM. Ask for a dozen. https://youtu.be/hPH5_ulHtno?t=22m20s Our imagination is the limit. https://youtu.be/hPH5_ulHtno?t=26m35s Two years ago, they were like grade 8 students. Today, a postgraduate. https://youtu.be/hPH5_ulHtno?t=00m47s Do as little as possible. Just wait. Models will catch up. https://youtu.be/hPH5_ulHtno?t=31m45s Funny bits: ...

I’m planning four 30-min 1-on-1 slots to discuss LLM use-cases. Ask me anything on LLMs. I’ll share what I know. If interested, please fill this in: https://forms.gle/5zwWNuRmZDxTh325A WHEN: 30 Jun / 1 July, IST. I’ll revert by 26 Jun to schedule time. WHY: I want to learn new uses for LLMs and share what I know. WHO: I’ll contact you based on what you’d like to discuss. WHERE: Google Meet. I’ll share an invite when mutually convenient. ...

The New Superpower: Detailed Single-Shot Prompt For Instant Apps

I built podcast generator app in one-shot. I wrote a prompt, fed it to an LLM, and it generated the output without errors. I tested three LLMs, and all produced correct, working output. ChatGPT: o4-mini-high Functional but missed my specs in three ways: No error if I skip the API key No progress indicator for audio generation Both voices default to “ash” (should be “ash” and “nova”) Gemini 2.5 Pro: Works and looks great! Claude 3.7 Sonnet: Works great and looks even better! It still took me an hour to craft the prompt – even after I’d built a Python prototype and my colleague built a similar web version. ...

This talk is an experiment. I am going to talk (literally) to ChatGPT on stage and have it do every kind of data analysis and visual storytelling I have ever done. Bangalore. 27 June. Of course, this is an LLM era away. So no promises. We might be doing something completely different on stage. LinkedIn

Tools in Data Science course is free for all

My Tools in Data Science course is now open for anyone to audit. It’s part of the Indian Institute of Technology, Madras BS in Data Science online program. Here are some of the topics it covers in ~10 weeks: Development Tools: uv, git, bash, llm, sqlite, spreadsheets, AI code editors Deployment Tools: Colab, Codespaces, Docker, Vercel, ngrok, FastAPI, Ollama LLMs: prompt engineering, RAG, embeddings, topic modeling, multi-modal, real-time, evals, self-hosting Data Sourcing: Scraping websites and PDF with spreadsheets, Python, JavaScript and LLMs Data Preparation: Transforming data, images and audio with spreadsheets, bash, OpenRefine, Python, and LLMs Data Analysis: Statistical, geospatial, and network analysis with spreadsheets, Python, SQL, and LLMs Data Visualization: Data visualization and storytelling with spreadsheets, slides, notebooks, code, and LLMs ...

What percentage of seats does the #Singapore People’s Action Party win? Normally, this is a 2-hour programmatic data-scraping + data visualization exercise, ideal for a data journalism class. Now, it’s a 2-minute question to O3-Mini-High. Search online for the historical results of all the Singapore elections and show me a table and chart of the number and percentage of the seats won by People’s Action Party. Chat link: https://chatgpt.com/share/6808314c-542c-800c-843e-4d53ff57768d It “manually” read the Wikipedia page for each election, then wrote a Python script to draw the chart. ...

How to Use the New O4 Mini for Data Visualization

O3/O4 Mini are starting to replace Excel (or Tableau/Power BI) for quick analysis and visualizations. At least for me. I normally open Excel when I need a fast chart or pivot. For instance, we track outages of our semi‑internal server, LLM Foundry. To grab the data I ran one line in the browser console: $$(".lh-base").map(d => d.textContent.trim()).filter(d => d.includes("From")); This produced lines like: Apr 20, 2025 03:11:27 PM +08 to Apr 20, 2025 03:27:12 PM +08 (15 mins 45 secs) Apr 19, 2025 10:03:15 PM +08 to Apr 19, 2025 10:05:45 PM +08 (2 mins 30 secs) Apr 19, 2025 09:47:13 PM +08 to Apr 19, 2025 09:49:45 PM +08 (2 mins 32 secs) Apr 19, 2025 08:49:00 PM +08 to Apr 19, 2025 08:51:51 PM +08 (2 mins 51 secs) Apr 19, 2025 08:13:02 PM +08 to Apr 19, 2025 08:15:35 PM +08 (2 mins 33 secs) ... Then I told O4-Mini-High: ...

The Magic of Repeated ‘Improve It’ Prompts

What if you keep ask an LLM Improve the code - dramatically!? We used the new GPT 4.1 Nano, a fast, cheap, and capable model, to write code for simple tasks like “Draw a circle”. The we fed the output back and asked again, Improve the code - dramatically! Here are the results. Draw a circle rose from a fixed circle to a full tool: drag it around, tweak its size and hue, and hit “Reset” to start fresh. Animate shapes and patterns turned simple circles and squares into a swarm of colored polygons that spin, pulse, and link up by distance. Draw a fully functional analog clock grew from a bare face to one that builds all 60 tick marks in code—no manual copy‑paste needed. Create an interactive particle simulation went from plain white dots on black to hundreds of bright, color‑shifting balls that bounce, die, and come back to life. Generate a fractal changed from a single Mandelbrot image to an explorer you can zoom, drag, and reset with sliders and the mouse wheel. Generate a dashboard jumped from static charts to a live page with smooth card animations, modern fonts, and a real‑time stats box. A few observations. ...

How to Organize Browser Workspaces with LLMs and Data

Here’s an example of how I am using LLMs to solve a day-to-day workflow problem. Every day, I interact with a barrage of websites: emails, news, social media, and work tools across multiple devices. Microsoft Edge’s workspaces syncs groups of websites across devices. I’ve never tried it, started today, and wondered: how should I organize my workspaces? Rather than think (thinking is outdated), I used LLMs. ...

How to publish an eBook in 60 minutes

I published an eBook on Amazon. It takes an hour if you have the content ready. STEP 1 (10 min): Set up a Kindle Direct Publishing account with your address, bank details, and tax info. STEP 2 (15 min): Export my London 2000 blog archive and convert to Markdown. STEP 3 (10 min): Reformat the Markdown by writing a script in Cursor. 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. ...

I’m at an open Hyderabad meet-up, Thu 20 Mar 4 pm. “Analyzing data with AI agents”." It’s a public event by Hasgeek. Venue: Castlight Health, Sattva Knowledge Park. We know LLMs suck at number crunching but are good with code. I’ll share what we’ve learnt by getting it to write code to analyze data instead. Less lecturing, more interactive Q&A and demos in a cozy group. Mostly for analysts, data scientists, and programmers. Not so much for LLM researchers or managers. ...

Things I Learned - 23 Feb 2025

This week, I learned: Remote Desktop may be the easiest way to have a Windows machine access files / screen from another Windows machine, even for home PCs. Caddy sets up reverse proxies that get automatic SSL certificates from Let’s Encrypt! The Nomic Embed v2 blog post has an excellent visualization for embedding quality. It takes all Wikipedia disambiguation articles and shows them on a Nomic Atlas, embedded via Nomic Embed v2. It lets you toggle to OpenAI text-ada-002 which moves the topics far away. Visually, this is very convincing. Python 3.15 will enable UTF-8 mode by default. PEP 686 Python 3.13 supports sub-interpreters to bypass the GIL. It’s quite like web workers. PEP 554 The quickest way to change the fish prompt is function fish_prompt; echo '> '; end At PyConf Hyderabad, about 3 people had read a PEP. 1 had used the match operator. But 80% knew what a Vector DB was. 20% had used a Gemini API. That’s how much traction LLM development is getting. The productivity benefit people report from using LLms is about 3X. Ethan Mollick Soon, you’ll be able to send an LLM to a virtual meeting on your behalf. It will talk like you. Ethan Mollick Models tend to claim ignorance when you test them on topics they should avoid. But tend to answer when not being tested. Sneaky! Ethan Mollick Mermaid has an Architecture Diagrams Syntax (in beta) that’s capable of creating elegant architecture diagrams with icons. Blind is an app that allows users to post anonymously. It’s particularly useful to find honest negative feedback about (mostly US) companies. Iconify.design is a single npm interface to most open source icon sets. It includes FontAwesome, Bootstrap, Material Design, and many others. icones.js.org is an alternate interface. Self-pity may have evolved as a signal for social support and reducing conflict, while also encouraging self-reflection and behavioral adjustment. But in modern contexts it may be maladaptive and lead to depression. ChatGPT Anecdotally, Grok 3 is very good for researching company information and latest news, particularly employee and customer sentiment. DeepSeek and Claude write more humanely than OpenAI. via Alberto Lopez Toledo, White Star Capital There’s a YCombinator Founder Directory listing all founders of YC companies. At the moment, there are 8,628 founders. There’s also a co-founder matching tool. LLMs are impacting not just data queries but geospatial queries as well. Here’s a good example of Natural Language Geocoding. US companies typically pay employees every 2 weeks not every month. What’s good about Snowflake? A few developers who explored it mentioned that: Its ability to scale up compute automatically makes queries run faster. “Time travel” allows you to see how data looked at any point in time and that is impressive and useful. Live data sharing with access control without the need for ETL pipelines is useful. Open-source competition: ClickHouse, Apache Druid, and Presto/Trino DataBricks is a lakehouse and less a data warehouse. It’s more about: storing unstructured data (Snowflake prefers semi-structured: JSON, Avro, etc.) running collaborative notebooks in Python, SQL, Scala, R (Snowflake encourages SQL) I subscribed to ChatGPT Pro mainly for DeepResearch. Here are the first 50 reports I generated: uv Package Manager Overview DuckDB Analytics Comparison Rust vs Python / JavaScript Modern Data Engineering Course LLM Code Migration Practices Cloud Cost Optimization Strategies LLM Coding Interview Tools Report (compare with Perplexity) Text To Speech Engines Customer Service in Indian Public Sector Banks LLMs in Software Development Old version 1: Gen AI in Software Development Old version 2: Gen AI in Software Development Leadership Training Content Open-Source HTTP Servers. Caddy wins. Deep Research Use Cases Nagpur No-Parking Violations Data Science in Food Services Deep Research Disruption to Research Firms LLMs in Design Thinking EU Taxonomy Report Clarification Shell Valuation Analysis Inquiry LLMs in DSLs Research Public API-Based Data Storage Options. Supabase wins. Front-End JS Frameworks Analysis Database Evaluation Guide CSS Frameworks Evaluation Guide CI/CD Tooling Ecosystem Report Color Names Count S Anand Biography. Meh, I know more about me, and it gets a few things wrong. Cosmere Secrets Encyclopedia. This is the best. Deep Research is great if it’s stuff I actually want to read, rather than just learn about. DBT course Future of Coding AI Claude Artifacts Use Cases. This is the only one that managed to get artifacts links correct. I used this for an article for The Hindu. MCP Servers and Clients Research. Learnings: Practically any “tool” can be an MCP server: file systems, APIs, codebases, browsers, collaboration platforms, memory, etc. Most platforms have (or are) integrating MCP. Clients: code editors, chat, and automation tools support MCP. GenAIScript is a good starting point. Tester MCP Client is a browser-based test environment. mcp-cli-client is a CLI-based client mcp-chatbot is a chatbot client Data Moats by Industry Attorney Profile Research Social Media Data APIs Adobe Software Alternatives LLM Hallucination Visualization Techniques API vs Self-hosting Cost Analysis: Always use APIs, avoid self-hosting models. AGI Preparation AGI will emerge step by step. Knowing which step is next will help AI native organisations will emerge in each of these areas. AI design agencies and AI creative Agencies being one example Networking, empathy, leadership have more value now. So will human AI bridging roles (e.g. AI managers, AI consultants, ethics auditors) What’s the value of a human when technology can do everything better? How did this play out in drama (decay) or sports (centralization) or music (globalization)? Modern digital note taking Voice note taking is the game changer Automatically popping of notes based on context such as people places or conversations will be a thing Local LLM Search Tools Blog Post to research paper on copying - suggestions Linux Dev Migration Guide Raspberry Pi SIM options Linux Dev migration guide HTML to JATS conversion LLM context splitting strategies Strategy for AI services in Publishing Gemini multi model editing use cases by industry Pharma Conference Participation Guide I learnt what a Memoji is for the first time. An avatar that follows your facial expressions. Cool! Google shows US flight timings from FlightView. Emperically, based on one data point (my UA-2168 which was delayed by 4 hours), it gets updates faster than Flight Radar 24 or FlightAware or FlightStats. When comparing Indian graduates with their western counterparts, the Indian ones are often seen as: 🟢 Theoretically sound 🟢 Analytical & technical 🟢 Academically disciplined 🟢 Resilient under pressure 🟢 Committed continuous learners 🔴 Rote-learning oriented 🔴 Limited independent inquiry 🔴 Limited creative innovation 🔴 Restricted practical exposure 🔴 Poor communicators 🔴 Low leadership / initiative 🔴 Need structured guidance 🔴 Struggle to network HuggingFace has a “Model tree” against each model that shows the model’s ancestors and descendants. For example, as of now, Deepseek R1 has 75 adapters, 154 finetunes, and 23 quantizations. Perplexity is now powered by Cerebras, which makes their inference as fast as Google. Source. The speed is a big factor, and I’ve switched my default search engine from Google to Perplexity, at least for now. Interview Coder is a desktop app that offers live interview support for coding interviews. It’s a transparent window that reads your screen and answers questions for you. (Given this, I think we need an interviewer support system that tells interviewers what to ask!)

2024 16

Things I Learned - 29 Dec 2024

This week, I learned: A clever idea. Give an LLM a chapter from a textbook. Ask it to generate a unique, playable game to help me learn theconcepts for an exam. Page Bailey What would be the cost of storing about 500GB of LLM cache logs and 5 million write requests per month? CloudFlare KV: $250 + $25 / month Ref MongoDB: $125 + $5 / month Ref S3: $0.0115 + $25 / month Ref + ? CloudFlare R2: $0.0075 + $22.5 / month Ref Satya Nadella prepares for meetings by asking Copilot to tell him everything he needs to know about the client from the CRM, emails, meeting transcripts etc. He shares that colleagues who annotate it further for him. That’s using AI for reasoning and collaborating with colleagues. Satya Nadella | BG2 w/ Bill Gurley & Brad Gerstner WOW. This is how a software agent will work alongside humans: Fix issue #5478: Add color to the line next to “Ran a XXX Command” based on return value - using @openhands-agent. aisuite by Andrew Ng is a unified interface to LLMs. Sort of like an openai library across multiple providers. Learnings from Best of 2024 in Agents (from #1 on SWE-Bench Full, Prof. Graham Neubig of OpenHands/AllHands) Passing code execution as a tool is more powerful than granular tools. You combine multiple tools and tool calls into one. You move code to the data rather than the other way around. Mostly, you need bash, Python (or Jupyter), file manager, web browser. UI: Go where the user is, instead of bringing them to you. A remote runtime is a critical component. Claude 3.5 Sonnet (20241022) and Claude 3.5 Haiku (20241022) perform best on SWE Bench, followed by Deepseek V3, then O1 2024-12-17. X Browsers support SVG favicons as data URLs. So I used this SVG (generated by Claude via Generate a simple, interesting SVG favicon. Keep the SVG size VERY small but it should be inspiring.) Since HNSW indexing is an overhead, just use NumPy matrix multiplication to calculate cosine similarity. For 1M vectors, it takes ~0.05 seconds. A 1M vector dataset handles ~2GB of text at a chunk size of 2K chars. In short, if you’re embedding <2GB of text, just use NumPy. DuckDB’s VSS extension HNSW index + Embeddings (2K chunks of 512 dimensions) takes up roughly 2.5X the size of the original data. Embedding 554 files of ~4,456 KB took 710 seconds. Creating the index took 660 seconds. The resulting DB was 18.1 MB. How to use LLMs in market research. Use LLMs with search for secondary research. Create different personas and run user surveys on them. This paper used 1,052 real-life interview audio transcripts as agent memory to simulate people Generate your market research report using LLMs. Given about 30 generations, Llama 1b outperforms Llama 8b. Ref OpenAI introduced a developer role in addition to the system role. This is mainly for o1. The API is backward compatible - and also forward compatible. OpenAI Em dashes are a strong sign of ChatGPT use. Curly quotes too. Reddit CloudFlare has multiple SSL modes when proxying requests. Off (no encryption): No encryption between browsers and Cloudflare or between Cloudflare and origins. Everything is cleartext HTTP. Flexible: Browsers to Cloudflare is HTTPS, Cloudflare to origin is HTTP. Useful to set up CloudFlare as a HTTP Proxy. Full: Browser to Cloudflare matches browser request. Same protocol is used for Cloudflare to origin, without validating the origin’s certificate. Use for self-signed or otherwise invalid certificates. Full (strict): Similar to Full Mode, but with validation. Strict (SSL-Only Origin Pull): Cloudflare always connects to the origin over HTTPS with certificate validation. Getting this wrong can lead to a HTTP 526: invalid SSL certificate Medical coding is an area ripe for LLMs. Ojasvi Yadav created a repo that uses hierarchical classification (rather than embeddings) to find the right coding. Gemini models seem to understand medical terms better than others. RapidClaims, funded by TogetherAI, is apparently working on this problem. Document to Markdown Converters: PyMuPDF4LLM uses MuPDF. Requires PyTorch. PYTHONUTF8=1 uv run --with pymupdf4llm python -c 'import pymupdf4llm; h = open("pymupdf4llm.md", "w"); h.write(pymupdf4llm.to_markdown("$FILE.pdf"))' markitdown from Microsoft. PDF via PDFMiner, DOCX via Mammoth, XLSX via Pandas, PPTX via Python-PPTD, ZIP, etc. PYTHONUTF8=1 uvx markitdown $FILE.pdf > markitdown.md Docling by IBM. Unable to install via pip on Windows AND on Linux. MegaParse uses libreoffice, pandoc, tesseract-ocr, etc. Requires OpenAI API key. Awesome Tabular LLMs compiles encodings of tables for LLMs. What’s the best way of encoding tabular data for LLMs? Looks like including the cell address helps. Here is an explanation from ChatGPT aspose-words is a Python library that converts documents with many formats (Word, RTF, PDF, HTML, Markdown, EPUB, etc.) Discourse does not support searching across multiple forums. Instead, search for the term in all forums. Example. Then scroll through the results. Then, in the console, hide the ones you don’t want. Example: Hide posts that are not in the “Tools in Data Science” category: $(".badge-category__name").filter(d => d.textContent == "Tools in Data Science").map(d => d.closest(".fps-result")).filter(d => d).forEach(d => d.style.display = "none") How are software engineers are future-proofing their careers in the face of LLMs? Leveraging LLMs as Force Multipliers Use LLMs for repetitive tasks, rapid prototyping, exploring multiple approaches, data extraction and brainstorming, providing feedback. Explore prompting techniques, integrate LLMs into their workflows, and develop strategies for validating and refining LLM-generated code Focusing on higher-level skills that llms struggle with Systems Thinking and Architecture: code readability, extensibility, testability, and maintainability Problem Solving and Critical Thinking: define problems clearly, break them down into manageable parts, and reason through complex scenarios. LLMs produce plausibly incorrect code. Communication and Collaboration Domain Expertise Exploring Adjacent Roles: product management, technical leadership, or consulting. Involve more interaction with clients and stakeholders. Developing “Evergreen” Skills: debugging, system administration, and security. Or outside of software engineering, such as trades or other hands-on vocations. Scepticism: LLMs may not reach a level of sophistication that would render their expertise obsolete. Complex problems, understanding context, and producing high-quality, maintainable code. Examples of agentic AI Text-to-SQL automated business analyst: A system that generates SQL queries from natural language, handles errors, creates visualizations, and includes a FAQ component. The author calls it “constrained agentic AI.” Data source querying system: A bot that queries multiple SQL and API data sources, selecting tools and reformulating tasks as needed. Cursor (agentic mode): An LLM-powered VS Code fork that chains together various LLM capabilities (code generation, applying changes, linting suggestions, terminal commands, codebase RAG) to reduce user prompts. Vulnerability finding system: A system that uses LLM agents to discover novel vulnerabilities in open-source web applications. The agents leave traces of their actions. Marketing strategy generation system: A system using approximately 60 agents to generate marketing strategies. Restaurant finder: A system that searches for restaurants based on dietary preferences and group size, and downloads social media information. Proofreading and editing of transcripts: LLM agents apply specific customer requirements to transcripts after human editing. Meeting notes and action items generator: A system that generates meeting notes and action items. O’Reilly auto parts customer service agent: An agent demonstrated using RAG. UI enhancement agent: An agent that added features like language locales and dark mode to a UI.

Things I Learned - 10 Nov 2024

This week, I learned: OpenFreeMap is a free embeddable OpenStreetMap tile server. You can use MapLibre GL (more features) or Leaflet (simpler) to render it. It offers styling and self-hosting. Zapier Actions are an easy way to set up custom actions like GMail / Google Calendar APIs for GPTs, since GPTs’ callback URLs keep changing. But they fail often, and don’t work on mobile. At least for me. LLM Vision Use Cases in manufacturing and earth sciences (via Shivku) Automated geoscience image descriptions Ref Interpret Wind Turbine photos and charts, construction monitoring, equipment maintenance & charts Ref Forecast weather based on cloud photos! Ref Analyze thermal image of solar panels, electroluminescence images for warranty claims, ROI estimates from Google Sunroof rooftop images Ref Corrosion detection in electricity towers, turbines, storage tanks, penstock. Interpret non-destructive test images Ref Google counts auto-completion when saying “25% of all the code is written by AI at Google”. “It’s a helpful productivity tool but it’s not doing any engineering at all. It’s probably about as good, maybe slightly worse, than Copilot.” YCombinator Workflow for AI video creation: Use Meshcapade (meshcapade.com) to generate body movement of a 3D-rendered character. Pass that video to Runway’s video-to-video model to generate any visual. Add music from Suno Ref Someone sorted the X and Y columns independently for regression. Ref Android keyboard learning only sends model changes back to server and not local keywords. Model changes are aggregated! Ref Here is a prompt for audio transcription using Gemini. Ref Transcription: Accurately transcribe the audio clip in the original language. Include all spoken words, fillers, slang, colloquialisms, and any code-switching instances. Pay attention to dialects and regional variations common among immigrant communities. Do your best to capture the speech accurately, and flag any unintelligible portions with [inaudible]. Translation: Translate the transcription into English. Preserve the original meaning, context, idiomatic expressions, and cultural references. Ensure that nuances and subtleties are accurately conveyed. Capture Vocal Nuances: Note vocal cues such as tone, pitch, pacing, emphasis, and emotional expressions that may influence the message. These cues are critical for understanding intent and potential impact. Here are some approaches to large-scale classification of medical codes. ChatGPT Fine-Tuning LLMs on Medical Data: Enhance LLMs by training them on medical datasets, such as clinical notes and discharge summaries, to improve their understanding of medical terminology and context. Multi-Agent Frameworks: Implement a multi-agent system that simulates real-world coding processes with distinct roles (e.g., patient, physician, coder, reviewer, adjuster). Each agent utilizes an LLM to perform specific functions, enhancing interpretability and reliability. ArXiv Retrieve-Rank Systems: Develop a two-stage system where the LLM first retrieves potential ICD-10 codes and then ranks them based on relevance, improving precision in code assignment. ArXiv Embedding-Based Approaches: Use LLMs to generate embeddings for ICD-10 codes and medical texts, facilitating the matching of texts to appropriate codes through similarity measures. GitHub Hierarchical Classification: Leverage the hierarchical structure of ICD-10 codes by first classifying texts into broader categories before assigning specific codes, reducing complexity and improving accuracy. ArXiv Two-Stage Verification Models: Combine LLMs with verification models, such as Long Short-Term Memory (LSTM) networks, to validate and refine the codes suggested by the LLM, balancing recall and precision. ArXiv Also, a mixture of models approach might work. Feed any existing NLP model / rules as a second opinion. GraphRAG is better if data is naturally graph-structured. Else, it’s slow and fills up the context window with even vaguely related stuff. Vigneshbabu, AMAT. ChatGPT for Windows desktop supports real-time voice and a global shortcut (Alt Space). uithub converts GitHub repos to Markdown. Just replace “g” in “github.com/…” with “u”. Example WebContainers are a thing and Bolt.new uses them! Docling by IBM converts PDF, DOCX, etc. to Markdown. Like PyMuPDF4LLM but better. Check out Loom and Cleanshot are the recommended tools for screen recording and screenshotting. But Loom is paid and Cleanshot is Mac only. The Rubik’s cube has a Hamiltonian cycle through every one of its 43 quintillion states. Ref OmniParser is great at parsing screenshots and identifying bounding boxes. Recraft.ai is currently SOTA in text to image. It’s fairly impressive and could be a good alternative to Figma. Zed.dev is an AI code editor by the creators of Atom. It’s written in Rust and is blazing fast. It has native AI integration. Artificial Analysis has a bunch of new leaderboards and arenas. Open AI TTS leads the TTS Leaderboard. ElevenLabs is a bit behind. Recraft V3 > Flux 1.1 leads Text to Image Leaderboard Hertz-Dev is an open source realtime voice chat model. But it doesn’t fit in Google Colab T4’s RAM Chain of Thought reduces performance where thinking makes humans worse. Ref. Specifically: Artificial grammar learning Facial recognition Classifying data that has exceptions Creating a LLM-as-a-Judge That Drives Business Results by Hamel Husain. Get THE domain expert (or approver) as the tester. Create a dataset that is DIVERSE. Covers EACH combination of: Features Scenarios: e.g. multiple matches, no match, ambiguous request, invalid/incomplete input, unsupported feature, system error Persona: e.g. new user, expert user, non-native speaker, busy professional, technophobe, elderly user Generate data using existing data + synthetic data for each SPECIFIC combination of the above Evaluate based only on PASS/FAIL with a CRITIQUE detailed enough for a new employee. Include: Nuances: Something a failed response did well or a passed response didn’t quite do well Improvements: Suggest how model can improve Build an SPA to make it easy for the domain expert to review LLMs can be made to unlearn (copyright material) better by identifying components related to the knowledge to unlearn and applying a larger learning rate to these while leaving other parts unchanged. As opposed to low learning rates for all components. Ref

LLMs still do not locate bounding boxes well

I sent an image to over a dozen LLMs that support vision, asking them: Detect objects in this 1280x720 px image and return their color and bounding boxes in pixels. Respond as a JSON object: {[label]: [color, x1, y1, x2, y2], …} None of the models did a good-enough job. It looks like we have some time to go before LLMs become good at bounding boxes. I've given them a subjective rating on a 1-5 scale below. ...

Things I Learned - 13 Oct 2024

This week, I learned: DuckDB supports function chaining DuckDB lets you create functions = macros HTML for People is a nice introduction to HTML. FlightRadar24 lets you watch airplanes live. sq is like jq but for SQL. Deno 2 is fully backward compatible with Node! via O1 is good at solving problems where the solution is easy to verify and generating options helps get closer to the solution Reverb ASR does diarration as well as transcription. It seems the state of art right now. Gemini Flash and Gemini Flash 8b can be fine-tuned at zero cost. Inference is at the same price! Ref Flux 1.1 Pro is released. I tried my Calvin & Hobbes test on it. Not great. ImageGen3 is better, ChatGPT is the best. Ref Revisiting text to speech models. Nothing much has changed since July 2024. OpenAI TTS: $15/1M chars Ref Deepgram Aura: $15/1M chars Ref Azure AI Speech: $15/1M chars Ref Google TTS Neural2: $16/1M chars Ref AWS Polly Neural TTS: $16/1M chars Ref Cartesia Pro: $50/1M chars Ref Elevenlabs Scale: $300/1M chars Ref GitHub co-pilot workspaces let you code using your mobile with AI and deploy it at one shot If you need an Ubuntu Docker container with Python, install it via uv rather than compiling from source. via VTracer is an open source library (and tool) to convert raster images to SVGs. via If you want to create a console.llm() function, a browser extension is the best way, because some pages have Content-Security-Policy that block eval, form submission, fetch from other domains, and script execution. PyPi lets you publish from GitHub Actions without a token. Also from Gitlab.com CI/CD and Google Cloud. ActiveState which made ActivePython, ActivePerl, etc. made these products paid for commercial use around 2013 after a series of acquisitions. Marimo supports: Publishing any notebook to static.marimo.app as a static app Creating a SINGLE link that embeds the ENTIRE notebook in the URL! Runnable via uvx marimo edit Parables on the Power of Planning in AI: Giving models about 30 seconds of thinking time consistently improves results - as much as increasing parameter size by a factor of 1,000 to 100,000! This works particularly well for verifiable results (code, math, etc.) Technique: Ask an LLM hundreds of times at low temperature and pick the most common one. (Google’s Minerva used this on the MATH dataset.) Better Technique: Ask an LLM hundreds of times. Pick the best solution based on an evaluation metric (reward model) Better Technique: Apply a reward model at EACH step of the process. OpenAI’s “Let’s Verify Step by Step” Late chunking is an interesting approach to adding context to embeddings. (I don’t understand it, but it’s cheap and effective.) DeepInfra offers embedding models as APIs at about 0.5 to 1 cent per MTok in an OpenAI compatible API. It also supports text-to-image models like flux.dev and speech recognition models like Whisper. Jake Heller: “One of the things we learned is (an LLM app) after it passes passes frankly even 100 tests, the odds that it will do, on any random distribution of user inputs, the next 100,000 100% accurately is very high.” OpenAI’s O1 is like Daniel Kahneman’s System 2 thinking - as against other LLMs’ System 1 thinking. Continue.dev is another AI coding editor. It supports OpenRouter. So now I have heard good things about: Github Copilot Cursor Cody Continue.dev (supports OpenRouter) Aider (supports OpenRouter) Maybe: Codeium Not: Amazon Q Developer

Breaking mental coding barriers with LLMs

Today, I stepped a bit beyond my comfort zone. Usually, I prefer micro-managing LLMs when writing code. This time, I was macro-managing. I needed to create a mock history of the status of a manuscript, e.g. it was submitted on this date. THEN it moved to this state on this date. THEN … etc. I have no idea what the states could be, though. So, I could send it to an LLM, and it would give a different set of states each time. Or I could write a program and lose out on variety. ...

Things I Learned - 01 Sep 2024

This week, I learned: LLMs are so good that they can simulate Doom in real time. gamengen Val.town’s code generation system prompt uses https://maxm-imggenurl.web.val.run/the-description-of-your-image to dynamically generate images Practice for each thought: “What would make me change my mind? How likely is that?” Cursor uses speculative edits and a variety of other techniques to speed up code editing. ChatGPT does a better job at cartoon generation than even Flux.1

Weird emergent properties on Llama 3 405B

In this episode of ThursdAI, Alex Volkov (of Weights & Biases) speaks with Jeffrey Quesnelle (of Nous Research) on what they found fine-tuning Llama 3 405B. This segment is fascinating. Llama 3 405 B thought it was an amnesiac because there was no system prompt! In trying to make models align with the system prompt strongly, these are the kinds of unexpected behaviors we encounter. It’s also an indication how strongly we can have current LLMs adopt a personality simply by beginning the system prompt with “You are …” ...

Things I Learned - 21 Jul 2024

This week, I learned: GPT For Work has a set of useful spreadsheet LLM functions Xata offers a free PostgreSQL tier with REST API Mamba now uses mambaforge as the default installation, i.e. conda-forge is the default and only channel! Update: 6 Jun 2025. Mambaforge is sunset as of 29 Jul 2024. Conda-forge now uses Miniforge as the standard installer Ref conda-forge.org. Users should switch to Miniforge instead. nginx supports a load-balancing method least_conn which is far better than the default round-robin. #IMPOSSIBLE LLMs cannot provide a bounding box of objects in images. (Maybe Florence 2 can). Update: Mar 2025. Gemini has good timestamps and bounding boxes Models gently grow in capability. It helps to maintain an impossibility list that steadily gets invalidated. Ref Github Copilot internals walks through how Copilot constructs its prompts

Things I Learned - 23 Jun 2024

This week, I learned: Luma Labs Dream Machine generated videos. It’s free and is of reasonable quality. Update: 6 Jun 2025. Costs $10/month LLM DataHub has LLM training datasets, regularly updated From Dan Becker on running a workshop Answer questions at the end, not in parallel in a chat, to avoid distraction Have fewer words in slides when presenting. It’s less distracting Morgan Housel Shane Parrish podcast Risk is what stops you from achieving YOUR goals. What’s risky for me may not be risky for you The lesson from compounding is that you want to optimize for duration, not return. That’s what does the heavy lifting. Survival, consistency, long term - these matter. The performance does NOT matter.

There are 4 frontier #LLMs today. No other (popular) model beats them on BOTH cost and quality. llama-3-8b-instruct claude-3-haiku-20240307 llama-3-70b-instruct gpt-4o-2024-05-13 This list changes rapidly. But in practice, it means there’s little reason to use any other LLM. They beat every other model on cost and quality (measured by the LMSYS Arena ELO score.) I opened Straive + Gramener’s keynote yesterday at marcus evans Group’s Digitech forum with this. Strange that this is not well known. Especially as switching from GPT-4 to Claude 3 Haiku can shrink a $1.2 million Gen AI budget to just $10K. ...

Things I Learned - 31 Mar 2024

This week, I learned: sqlite-schema-diagram generates schemas for SQLite databases using Graphviz TechEmpower web server benchmarks place Rust servers on top browser.new is a good example of a browser agent. It slowly but independently does a good job of achieving the result. Example: What crew is common in Ingrid Bergman - Cary Grant films? twinny is an open source VC Code Copilot alternative. typesense supports embeddings natively. Binary embeddings are good enough. Cohere releases binary embeddings. Extract.langchain.com is a poor early interface to featurize unstructured.io Hume.ai offers voice emotion API and emotion-based conversational responses. An empathic AI. Rust is non-trivial. Inspired by We are under DDoS attack and we do nothing, I “wrote” a small binary that serves a parquet file as JSON. It failed and I couldn’t fix it. spleeter is a better alternative to demucs. Splits audio into pyannote-audio does speaker diarization uvicorn is faster than hypercorn but hypercorn supports HTTP/2 and HTTP/3. FastAPI with uvicorn is reasonably fast. Representational engineering lets you control LLM output based on preference on the fly. When I set up a training: On inviting for DuckDB workshop on Sun evening, Gramener starts accepting immediately, Straive doesn’t. Straive has high spread of joining time. When joining Gitlab Pipelines Workshop, Straive starts meeting (e.g. Premlal) many minutes early. Gramener floods in (due to alert). Straive streams in slowly. Gitlab Pipelines Workshop acceptances: Gramener 47, Straive 100

Things I Learned - 03 Mar 2024

This week, I learned: You can use slots to stream HTML out of order! Shane Parrish. Short-term patience podcast have a frame of reference to relate EVERY experience to. That helps you evaluate (measure) and learn. That’s part of what Charlie Munger’s lattice of frameworks is about when there is a very high or very low interest scenario, low interest scenario then go ultra long term. Issued hundred years when the interest rate regime was very low short term optimal is rally long term optimal. So you need to learn to take a loss and look like an idiot to play the long-term game grit is a behavior that enables long-term thinking. Short term success gives you the luxury to think about long term #IMP power is about optionality. It’s about being in a position where you have the options that can affect the positive change rather than circumstances controlling you. Read Robert greene’s book on the 48 laws of Power low leverage enables that begin with the end in mind. Always how do you think about risk? Well, things do happen. It’s as simple as that autonomy and decentralization helps derisk do more and more of what works. That’s a powerful way of compounding long-term investments are better than frequent trading because you get to reinvest the tax you otherwise would have paid. So unless the alternative is super compelling, stay invested if you need to be the person who DOES the thing, you delegate less, leverage list, compound less, because you have to DO. BE A PERSON WHO SETS THE FIELD INSTEAD. The coach, the chess master, the director, patient strategist who Waits for the good hit Being in Control motivates #Lesson. my cycle tires were flat. I thought it was someone pulling out the air and felt very demotivated. But once I carried my cycle pump, I felt so much more in control and power and felt a whole lot better SourceGraph is the default platform for private code completion & search MetaVoice 1B offers voice cloning on American & British accents with 30s training Qwen 1.5 72B appears to outperform Mistral Medium, making it one of the top non-proprietary models Llava 1.6 is a substantial improvement over Llava 1.5 and slightly better than CogVLM, Qwen-VL AI scams are growing. Deepfakes scammed $34m. But voice fake for kidnapping is scarier. Buildspace’s demo is a great demo of how voice and actions can be used effectively. demucs does an EXCELLENT job of splitting songs into drums, bass, vocals and others

Things I Learned - 25 Feb 2024

This week, I learned: Architecture.md is an emerging standard Managing wealth requires training. htmz is a fantastic way to load HTML into elements! Suguna Poultry is Using robots to walk in their farms, use sound and bird eyes and movement to predict birth health over 1-2 weeks Light on the back of the bird’s back AND face => lays eggs in 14 days, else takes days later (girls and mobile phones?) Teknoturf is using Gen AI to Improve prompts when teaching prompt engineering. Pronounce languages better, identifying which words Tamilians and Malayalis will mis-pronounce. Explore IRBlaster. It can control AC and can automatically increase temperature at night. My view: LLMs are general purpose and more capable than SLMs. They’ll win, like CPUs won over special-purpose chips. GPUs will optimize for LLMs and as usage grows, cost will fall. Andrej Karpathy’s summary of sharp edges in tokenization uses tiktokenizer to explain: Why LLMs can’t be used for spelling Why LLMs are better at English than other languages Why LLMs are bad at math Why SolidGoldMagiKarp is a single token Why trailing spaces are bad Why YAML tokenizes more efficiently than JSON ssyoutube.com: Just add “ss” to “youtube.com” on the video and you can download YouTube videos Discussions with Sachin, AMAT Microsoft said Indigo, Air India uses LLM based bookings Meta invested $70bn in GPUs. Sam Altman is investing $7tn! NVIDIA has a price PREMIUM not discount for bulk GPUs! AMD is the next company to watch for Numenta - Subutai Ahmad - deploys AI models on CPUs #TODO Read A Thousand Brains by Subutai Ahmad Sanjeev Sharma Swaayatt Robots: Autonomous driving in India Deepeigen: Education Rohan Shravan, Bangalore. Likes sharing knowledge. Amazing teacher. IIT KGP 2008. Interested in exploring quantum computing Tresa Motors, Inkers App, The School of AI AMAT is working on photon-based computing. science research models. AI for science. Like Google: Deepmind Genome, Microsoft: Metagen quantum: AMAT is actively in into this. Nagapati Banda is driving this John Kelly is predicting a ChatGPT moment in quantum in a few years Adobe express has a forever free video to GIF converter Edge workspaces let me keep the same tabs open across laptops! Command line interface guidelines RAWGraphs has a custom charts API that is worth learning from Python fastcore has decorators like @typedispatch, Self, etc. All image-to-text models on HuggingFace wddbfs mounts SQLite as a file system. I had a bit of trouble, maybe with Python package versions. Google is using LLM powered bug identification HuggingFace Chat Assistants has open source system prompts!! OpenHermes training dataset is available. 1M prompts! Jio has made IPL free. They make money on data and ads. That’s Scale! Daniel Dennett outsources thinking to students. Reviewing his books. BUT: I don’t take feedback. When someone sends a pull requests, I ignore it.

Things I Learned - 18 Feb 2024

This week, I learned: Fine tuning makes economic sense only if the input tokens SAVED is twice the output token size on each call. Docker container memory usage on WSL2 docker stats frolvlad/alpine-glibc:alpine-3.17: 540KB ubuntu: 1MB (python3: +5MB) nikolaik/python-nodejs:python3.10-nodejs18-bullseye: 1.4MB (python3: +5MB) python:3-alpine: 612KB (python3: +7.5MB) python:3: 500KB (python3: +11.2MB) continuumio/miniconda3: 7.6MB (+6.5MB) Discussion with Vinu Yamunan Databuck by FirstEigen. Autolysis plus monitoring Quality council has the data steward (maintainer of each dataset) coming together with the uses on a weekly basis to understand what quality problems to users are facing. Data owners jaundice at a lower frequency to get an understanding #TODO Automate rules for data quality in our projects and intranet Convert a config rule into business language. Explain SQL. These are good use cases for llm’s Graph DBs are powerful for flexible data structures, but query generation needs AI or expertise. Check the Neo4J language cypher Explore storing SAME data in relational DBs AND in graph DBs / document DBs for different use cases Dallas rocketry challenge. Build a rocket that can take an egg to 800 feet exactly and land without breaking it Discussion with Karthik A #TODO Ask IIT students to do internship tasks. Use advent of code is a qualifying criterion Tata motors unionized DB admins for longevity. No one can take their jobs. Hires people who LIKE their jobs Rust gives me typing. It’s very efficient. Pola.rs is interesting but Pandas as good enough. Explore alerts from CCTV feeds. Karthik sends email alerts with pictures for: “Is the machine on or off”? for productivity “Are people not wearing helmets?” for safety at Cummins #TODO Integrate with WhatsApp. Use LLMs with function calling for responses Use expiring links (to pictures or content). It increases engagement Check Deno licensing. Is there a commercial clause? #ANS No - it’s MIT license Centre or excellence for zero emission tech at IIT. Karthik is part of it Explore auth0. 7000 users are free toml is part of the Python 3.11 standard library! If copilot writes code we don’t understand we are screwed. Hence expertise matters Discussion with Vikas Kedia #TODO Plan an AMA The mind becomes lazy with financial success. Vikas is treating his podcast as a startup Hire a professional videographer for your content Financial RoI in financial markets is the highest. Programming is high too but FS is even better “Performative power” – when you’re forced to perform, you get better ideas Observable 2.0 is an open source static site generator for data Python dataclasses SORA is OpenAI’s video generation model, and is stunning! If Appa comes to Singapore even for a week, he will feel better and can boast to his friends. At over 90, it may be better to move Appa to where I am since many of his friends would be no more and shops, doctors, etc can be managed and getting an independent house nearby is not hard. There is an SEZ in Gujarat where Indians can invest like in Mauritius without forex restraint Shubha: Media sites are moving away from Vickrey auctions to first-price auctions for ads. That’s because they send the auction price forward to a search engine and the winning second-price value can lose even though the owner is willing to pay more. Second-price auctions don’t work unless ALL bidders are in the SAME auction. Ad networks are a hierarchy of auctions! Gemini 1.5 launched. Fly.io offers GPU hosting and auto stop when they have nothing to do. Embeddings in random forest are very effective at classification – much better than dot product. To deploy apps with OAuth + templating support in a small Docker container, use Caddy Deno has native TypeScript, browser APIs, and compiles to multiple OSs Ruff is a MUCH faster flake8 Two pass generation is a clever technique to get multiple SEQUENTIAL answers in a single API request. For example the schema {'code', 'optimized_code'} will generate code and then optimize it. Unions in function calling allows flexible multi-step prompts in a single API.

For those in #Singapore and interested in #datavisualization & #llms, I’m talking about Visualizing LLM Hallucinations at SUTD on Thu 8 Feb at 7 pm SGT. This is for a non-technical audience. We’ll visualize the basics of how LLMs work, how they make mistakes, and at least one technique on how to spot these. https://www.meetup.com/data-vis-singapore/events/298902921/ LinkedIn

Things I Learned - 14 Jan 2024

This week, I learned: Transparent LED screens will be useful in windshieds to display maps as we drive. Marimo is a reactive alternative to Jupyter notebooks that saves files as pure Python. To run an org-specific chatbot on your own LLM: (via awesome-chatgpt) opengpts - but it doesn’t support auth chatbot-ui - but Supabase is hard to install anse - but it doesn’t support auth ChatGPT-Next-Web - but it doesn’t support auth Python 3.13 gets a store and copy JIT If an npm package adds another package as a dependency with version “*”, target package cannot unpublish ANY version! So this is a way of freezing EVERY repo and preventing unpublishing of EVERY version – an unintentional flaw in the npm design. via Quantization is better than fewer parameters. So prefer high parameters (e.g. 70b) and quantize to 4-bit. In-browser playgrounds has compiled WASM versions of Python, PHP, SQLite. Happiness Lab podcast. Happiness lessons of the ancients Talking to strangers makes us happy Giving money makes us happy Free time makes us happier than working hard Tangi Domain-specific models being beaten by general purpose models is a phase. It will reverse towards domain. AI will potentially help build and understand domain-specific models Models are evolving so rapidly that humans cannot interpret models. We need a process to interpret models! xAI, Responsible AI, Physics-guided or Knowledge-guided models (called grey box models) are therefore a trend CS papers Don’t review other papers, certainly not other fields. Disregard measurement errors. When CS papers get applied to climate, manufacturing or biology, we’ll worry about Interpretability Domain-specific mechanics. (Introduce that into the training as a constraint.) Many domain experts are using AI to UNDERSTAND their process. Need to explore Uncertainty IB adds context to make learning applicable. But that distracts from the core learning, and if there’s a gap it widens Most data science courses teach “Python science”, not data science. They teach a bunch of models. They don’t teach how even one kind of model e.g. LSTM works. Most coaching programs today teach FAMILIARITY with problems, not critical thinking Most of current education will become redundant thanks to LLMs. For students AND teachers Coding will become irrelevant Cognitive thinking, reasoning, human relations, systems thinking will become more relevant Troubleshooting will become more important. AI is not self-diagnosing. I would hire someone who can figure out something is going wrong, diagnose what’s going wrong, and fix it #TODO Hire for troubleshooting ability. Give a Q, an A, and ask them to figure out if it’s wrong, why, and fix it All my exams and quizzes are open book, open ChatGPT. Onus is on me to give a problem that forces you to think. #TODO Write a question paper that is ChatGPT proof. Exploring AI could be a ToK subject. “How to interact with an AI?” We need a manual on how to use AI. Like Simon Willison says Content doesn’t suffice. You need pedegogy. What to serve you at what time, how, how to assess. Lots of businesses are filling this gap Students get great confidence when a teacher points to online content and says, I"ll tell you WHAT to see" and COMPLEMENTS that in their class “The map is not the territory.” Most people confuse sample mean for the actual. #ASK Parameter estimation -> Signal estimation -> State estimation Stats vs DL differ in that There is no notion of a defined “truth”. Hence reliability is not measurable Parameters have no value. Hence interpretability is ignored. #TODO Read 2020 National Education Policy. It’s quite modern. We need a manual on self-learning too Listening is not learning. You know only if you implement. Levels for students: I can solve it. I can explain why it works. I can find alternatives. I can apply it to a new area, reformulating (requires imagination.) For teachers, you also need: Responsible learning (extra careful about what to teach and how to teach, to exceite them, to teach at THEIR level). Show the universality and connecting to other concepts. E.g. noise reduction with FT is like using water to remove dirt. Transform to water domain, remove dirt, transform back to air domain. It’s better than dusting clothes to remove clothes. Washing machine programs are just different models of removing noise in the water domain. Teach people who WANT to learn AND who will APPLY it long-term. That’s what maximizes impact Grad students are more satisfying that way. Else, it is WASTED effort. (Not that it’s a bad thing for the student, but the effort IS wasted for the teacher) Therefore, I believe students should have general engineering first, and let students pick specialization later. Some universitie are doing that. #THINK Students remember my philosophy more than my content. We impart character, not just knowledge. Astrology and horoscopes serve a different function. They provide explainability, not predictive ability. As the world becomes less explainable, the need for astrology will grow. Explainability is about creating STORIES that fits data plausibly. It has nothing to do with data or truth. Explainability and predictive ability and reproducibility are all different. Maybe, Science is about the latter two, less about explainability. Astrology is a model. The map is not the territory. It’s an explanatory, not a predictive model. #THINK Therefore, my lessons are just explanations. Stats about experiments are STILL explanations. They are NOT reproducible or predictive. Hence not yet science The meaning of our life is the transformation we undergo in our lives #TODO Read “The Journey of Souls” by Michael Newton. A hypnotherapist #TODO Try regression therapy / hypnosis. Record it and listen to it. Just for fun! Rohini Deshpande Slam book was the Facebook of the 1900s Prepared mind is an extremely powerful tool for learning. Practice prepared mind When women drop out of education or career, that is also a waste from the teacher and system perspective The time for career growth is the same as child bearing time for women. That’s not true for men. But child rearing can be done by either. That’s not recognised. It’s 0K for a man to raise the child and make the home and 0K to treat that as the default Since men are more senior, it’s usually logical for them to stay in their jobs. That’s a systematic bias. When seniors advise women to step back. they respect it. That widens the barrier. Why not eliminate that situation? Be proud of the working women in the family Stats are just a symptom. They don’t explain the cause. (Map is not the territory.) Explanations are what really helps us fix the cause. Hence stories are important. Read Tinker Tailor Soldier Spy RV Athimber health tips: Eat foods with low glycemic index Eliminate free salt completely Voyage AI Embeddings have a higher quality, similar price compared to OpenAI embeddings. There’s a clear benefit to replacing text-embedding-3-large with voyage-3-lite. There’s a 200 MTok free tier currently. mixtral-offloading cleverly loads only the model layer required at any point, letting you run Mixtral 8x7b on Colab Free and on 16GB GPUs. This notebook runs on Colab Free too. CodeGPT is an alternative to Github Copilot that can use any LLM.

2023 4

Things I Learned - 24 Dec 2023

This week, I learned: DPO is a simpler alternative to RLHF for fine-tuning. Several HuggingFace models use DPO for training Name2Vec is a potential embedding for names. Google Knowledge Graph ID powers the Knowledge Graph. If it begins with /m/ it’s the same as the FreeBase ID. This is now available as WikiData. e.g https://www.wikidata.org/wiki/Property:P2671 I tried running Mixtral-8x7b locally (via Llamafile) and on together.ai. It’s good, but far from GPT 4. Generic computate-intensive algorithms eventually beat domain-specific tuning, because of Moore’s law. Ref The hidden brain podcast. the mystery of beauty Evolution drove us to beauty as an efficient survival mechanism. Understanding the world is one such mechanism. Hence we enjoy maths and chess ⭐ This leaderboard included paid models like GPT4 and Claude and compared them with open models on HUMAN + system benchmarks Lez Friedman Podcast: Jeff Bezos Build stuff that is is ubiquitous that other people take it for granted. The initial idea needs to be that obvious and easy. Like one click purchase or customer reviews Build stuff that other people can build on. Internet makes startups possible. Infrastructure is about enabling others at scale Decision making approaches: single person decides on two way doors. Deliberate as a team on one way doors Conflict resolution: disagree and COMMIT. NO sniping, I told you so, malicious compliance. Avoid compromise. Avoid decision by attrition (most persistent wins). People are inherently biased towards hierarchy. So the senior most person should speak last We have a happiness bias. Contracted by choosing the unhappier options first The map is not the territory. The metric is not the objective. We need metrics. But make sure you know why See the world through the eyes of the customer. Use your own product. It’s living their lives that makes customer obsession real. Jeff Bezos called their own customer care to see how long the actual wait time was. It was much longer than the metric reported How to prioritize. whatever problems customers will still face in 10 years are the big problems. These are worth putting time into because they are stable in time People working on big problems will never get down to the small problems. So have a dedicated team that works only on the paper cuts. It should be a dedicated team We co evolve with our tools. We build tools and then our tools change us. It reprograms our brains Cut out 10 minutes to the beginning of each meeting for people to read the material. They never reread anyway. This makes the meetings more productive Powerpoint is designed for persuasion, not truth seeking. It is also easier for the author than for the reader. Prefer narratives that are focused on finding the truth and are easier for the audience though tougher for the author ⭐ whisper-standalone-win provides a Windows binary for Faster-Whisper. It just needs CUDA and cuDNN installed. Then whisper-faster.exe video.mkv --language=English --model=medium generates the transcript. LLM use cases by Benedict Evans “Every text box on the internet will get an LLM” “Infinite interns” “Every UNIX function has become a company.” “Every ChatGPT suggestion…” llm360 publishes models along with training datasets. In The Age of AI has begun, Mar 2023, Bill Gates says, “In my lifetime, I’ve seen two demonstrations of technology that struck me as revolutionary.” The GUI (1980) and ChatGPT (2022). Rubeus is a HTTP proxy for multiple LLMs with load-balancing, fallbacks and retries. GPTRouter is a Python interface for multiple LLMs with fallbacks and retries. ⭐ Token Tally has an LLM Cost Tool that estimates GPU memory required and token cost across cloud providers.

Things I Learned - 03 Dec 2023

This week, I learned: Gwern Branwen says LLMs nudge his “… making heavier use of the languages I don’t know well (Emacs Lisp & Python) since I increasingly trust that an LLM can help me maintain them.” Undetectable.ai checks for AI content. But it had false positives AND negatives in the 5 checks I ran. GPTZero got 2/2 right and seems better at detecting AI content. CoVA scrapes web pages via OCR When coding with LLMs, have SHORT, RELIABLE feedback loops. Ref

LLMs can teach experts

I am a fairly good programmer. So, when I see a problem, my natural tendency is to code. I’m trying to break that pattern. Instead, I ask ChatGPT. For example, I asked: Write a compact 1-line Python expression that checks if user.id ends with @gramener.com or @straive.com user.id.endswith(("@gramener.com", "@straive.com")) After 15 years of using Python, I learnt that .endswith() supports tuple suffixes. This has been around since Python 2.5 (released in 2006 – before I knew Python.) The documentation has a tiny sentence in the middle saying “suffix can also be a tuple of suffixes to look for.” ...

Ashwini Mathur and I are conducting a webinar on the impact of LLMs in Pharma. It’s online at 10 am Eastern on Mon Sep 11. Simon Willison described LLMs as alien technology we’re still discovering. I couldn’t agree more - and it helps to see it from different perspectives. So, we’re pairing the tech research at Gramener with the domain research Ashwini Mathur is doing at Novartis to explore the good, the bad, and the surprising uses of generative AI. ...

0001 1

reframe-question

The user’s question may be a DRAFT of their real need. For substantive requests, check if a better question changes what’s solved and serves them better. If so, reframe, explain why (in 1 line), THEN answer. Most questions need no reframe; skip precise, mechanical, tightly specified, or already-sharp requests and simply answer.