<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>gemini on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/gemini/</link>
    <description>Recent content in gemini on S Anand</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/gemini/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Things I Learned - 24 May 2026</title>
      <link>https://www.s-anand.net/blog/things-i-learned-24-may-2026/</link>
      <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-24-may-2026/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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&amp;hellip; &lt;a href=&#34;https://blog.ppb1701.com/the-quiet-renovation-at-bitwarden&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Andrej Karpathy has joined Anthropic. Likely to use Claude to build better Claudes - automating AI research. Also, it probably isn&amp;rsquo;t a good time to build an AI education platform. &lt;a href=&#34;https://claude.ai/share/f9932e93-a632-4015-93f4-84359670f53c&#34;&gt;Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The open-source Chinese models about 6 months behind frontier models. &lt;a href=&#34;https://qwen.ai/blog?id=qwen3.7&#34;&gt;Qwen 3.7-Max&lt;/a&gt; is &lt;a href=&#34;https://arena.ai/leaderboard/text&#34;&gt;on par&lt;/a&gt; with Claude 4.5 Opus (Nov 2025) and Gemini 3 Flash (Dec 2025).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.google/products-and-platforms/products/search/search-io-2026/&#34;&gt;Google basically became Gemini&lt;/a&gt;. Entirely! I&amp;rsquo;m not sure there&amp;rsquo;s a difference any more. Which means it will scrape websites and not send traffic through - just killing the search economy. But it&amp;rsquo;s far more useful. &lt;a href=&#34;https://claude.ai/share/9f3f6172-2965-40a0-8b67-053a0769e455&#34;&gt;Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I wanted a list of sites I log into with my Google Account. &lt;a href=&#34;https://myaccount.google.com/connections&#34;&gt;Google&amp;rsquo;s Linked apps&lt;/a&gt; page does that. Unfortunately, I can&amp;rsquo;t find a way to use &lt;a href=&#34;https://takeout.google.com/&#34;&gt;Google Takeout&lt;/a&gt; to export that data. So I wrote a &lt;a href=&#34;https://github.com/sanand0/scripts/blob/deb4c1ecbc93e03511ca264ce14d2977d01b7d90/googleconnections.py&#34;&gt;scraper&lt;/a&gt; which can be &lt;a href=&#34;https://github.com/sanand0/scripts/blob/deb4c1ecbc93e03511ca264ce14d2977d01b7d90/prompts/googleconnections.md&#34;&gt;single-shot prompted&lt;/a&gt; these days.&lt;/li&gt;
&lt;li&gt;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. &lt;a href=&#34;https://gemini.google.com/share/4a15b461a2d3&#34;&gt;Gemini&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I don&amp;rsquo;t understand half the comments I read on LinkedIn. Earlier, I was able to separate good from bad. Now, I&amp;rsquo;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?&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Pax Memoriae&amp;rdquo;: peace of memory. Putting past conflicts to rest. The best part of it was, I learnt the phrase by typing &amp;ldquo;Pax&amp;rdquo; into VS Code and wasn&amp;rsquo;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 &lt;em&gt;so apt&lt;/em&gt;!&lt;/li&gt;
&lt;li&gt;Children&amp;rsquo;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. &lt;a href=&#34;https://chatgpt.com/share/6a0aae2f-9b64-83ec-8db5-00c2f3a465b0&#34;&gt;ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The word phobia comes from the Greek god of fear, Phobos, which is the name of one of Mars&amp;rsquo; moon. Deimos, the other moon, is the Greek god of dread/terror. They&amp;rsquo;re the children of Ares (Mars), the god of war. Nice planet.&lt;/li&gt;
&lt;li&gt;On WhatsApp, I can type &lt;code&gt;@Meta AI&lt;/code&gt; and then &lt;code&gt;/imagine&lt;/code&gt; to have it draw an image. The quality is OK - not great, not terrible.&lt;/li&gt;
&lt;li&gt;Surprising but GPT Realtime Whisper (&lt;a&gt; new model) isn&amp;rsquo;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. &lt;a href=&#34;https://pythonicvarun.github.io/llm-audio-transcription-benchmark/&#34;&gt;LLM Audio Transcription benchmark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Deploying websites over dinner</title>
      <link>https://www.s-anand.net/blog/deploying-websites-over-dinner/</link>
      <pubDate>Mon, 27 Apr 2026 16:30:50 -0400</pubDate>
      <guid>https://www.s-anand.net/blog/deploying-websites-over-dinner/</guid>
      <description>&lt;p&gt;Over dinner with &lt;a href=&#34;https://www.linkedin.com/in/nishka-gattu-32133b339/&#34;&gt;Nishka&lt;/a&gt;, we were trying to deploy a website. The challenge was: How can we deploy this website, just on mobile, &lt;strong&gt;without getting up from the dinner table&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;STEP 1: Hosting&lt;/strong&gt;. On my phone, I dictated to ChatGPT (whose transcription is excellent), copy-pasted that to Gemini (which is faster):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want to publish specifically a static HTML web page on my own domain.&lt;br&gt;
I want the easiest way that I can host it, preferably just by copy-pasting from my mobile without needing to muck around with Git and the likes of it.&lt;br&gt;
What are the most robust, reliable hosting providers that I could use? I can sort out the domain name myself as long as they support an option to map a custom domain name to them.&lt;br&gt;
Ideally, I am looking for something that is free, preferably free forever.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Top answer: &lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since Nikki already had a GitHub account, that worked well. Using &lt;a href=&#34;https://github.com/mobile&#34;&gt;GitHub Mobile&lt;/a&gt;, she created a new repository, created a new &lt;code&gt;index.html&lt;/code&gt;, and published it to GitHub Pages - all from the phone, without needing to get up from the dinner table. (The content was vibe-coded later, but the infrastructure was set up during dinner.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;STEP 2: Domain Name&lt;/strong&gt;. Next question - again, to Gemini via ChatGPT dictation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Okay, I want to buy a domain name next. What&amp;rsquo;s the cleanest simplest cheap way that I can get a domain?&lt;br&gt;
For now I&amp;rsquo;m not particular about which domain but I should be able to buy this very easily just on a mobile and I should be able to configure the DNS directly on the mobile itself.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Top answer: &lt;a href=&#34;https://www.cloudflare.com/products/registrar/&#34;&gt;Cloudflare Registrar&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nikki didn&amp;rsquo;t have a Cloudflare account, but was able to sign up for one easily on the phone.&lt;/p&gt;
&lt;p&gt;After searching for a bit, &lt;a href=&#34;https://www.rexgattu.com/&#34;&gt;rexgattu.com&lt;/a&gt; (the future home page for the youngest member of the family) was available for ~$10/year.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Photo of Rex&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-04-27-rex-gattu.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;Her sister&amp;rsquo;s credit card photos were available on her phone, so there was no need to get up from the dinner table to get the card details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;STEP 3: Setting up DNS&lt;/strong&gt;. The third question was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;How do I point a domain name that I purchased on Cloudflare and his managed by Cloudflare to a GitHub Pages page?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It provided step-by-step instructions: Go to DNS &amp;gt; Records. Add an A record pointing &lt;code&gt;@&lt;/code&gt; to &lt;code&gt;185.199.108.153&lt;/code&gt;. Add a CNAME record pointing &lt;code&gt;www&lt;/code&gt; to &lt;code&gt;[username].github.io&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;She did that. Now &lt;a href=&#34;https://www.rexgattu.com/&#34;&gt;&lt;code&gt;www.rexgattu.com&lt;/code&gt;&lt;/a&gt; pointed to the GitHub Pages site.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That&amp;rsquo;s it! Our infrastructure has gone to the point where we can deploy a website on a custom domain, without even needing to get up from the table.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Derived formats with Gemini</title>
      <link>https://www.s-anand.net/blog/derived-formats-with-gemini/</link>
      <pubDate>Sat, 18 Apr 2026 11:26:48 -0400</pubDate>
      <guid>https://www.s-anand.net/blog/derived-formats-with-gemini/</guid>
      <description>&lt;p&gt;The natural capability of Generative AI is to &lt;em&gt;generate&lt;/em&gt; stuff - and Gemini&amp;rsquo;s particularly good with media.&lt;/p&gt;
&lt;p&gt;For example, we can take any document, like this MasterCard report on &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/report.pdf&#34;&gt;The State of Open Finance 2026&lt;/a&gt;, and generate videos, podcasts, sketchnotes, songs, and more from it.&lt;/p&gt;
&lt;p&gt;How?&lt;/p&gt;
&lt;p&gt;I uploaded the &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/report.pdf&#34;&gt;PDF&lt;/a&gt; to &lt;a href=&#34;https://notebooklm.google.com/notebook/26da8a27-fd08-4c98-b0d5-73fefcb9e1dd&#34;&gt;NotebookLM&lt;/a&gt; and created a 20-minute podcast by clicking on Generate Audio Overview - Deep Dive - English - Default.&lt;/p&gt;
&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-english.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-english.opus&#34;&gt;Listen to the English podcast&lt;/a&gt;
&lt;/audio&gt;
&lt;p&gt;It supports multiple languages, so I generated a Chinese and Filipino version as well.&lt;/p&gt;
&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-chinese.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-chinese.opus&#34;&gt;Listen to the Chinese podcast&lt;/a&gt;
&lt;/audio&gt;
&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-filipino.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/podcast-filipino.opus&#34;&gt;Listen to the Filipino podcast&lt;/a&gt;
&lt;/audio&gt;
&lt;p&gt;Clicking on Generate Video Overview - Cinematic led to this video overview:&lt;/p&gt;
&lt;video width=&#34;1280&#34; height=&#34;720&#34; style=&#34;max-width: 100%; height: auto;&#34; controls muted preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/video.webm&#34; type=&#34;video/webm&#34;&gt;
  &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/video.webm&#34;&gt;Video&lt;/a&gt;
&lt;/video&gt;
&lt;p&gt;There are other formats in which we can generate videos. The Cinematic format is new, and the list is growing.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not just NotebookLM that you can use to generate new formats. &lt;a href=&#34;https://gemini.google.com/&#34;&gt;Gemini&lt;/a&gt; itself supports a variety of formats.&lt;/p&gt;
&lt;p&gt;For example, I used my &lt;a href=&#34;https://www.s-anand.net/blog/gemini-sketchnotes/&#34;&gt;Gemini Sketchnote prompt&lt;/a&gt; to create a visual summary of the report:&lt;/p&gt;
&lt;img src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/sketchnote.avif&#34; alt=&#34;Sketchnote&#34; style=&#34;max-width:100%; aspect-ratio: 16/9&#34;&gt;
&lt;!-- https://gemini.google.com/u/2/app/07dd0450592fc257 --&gt;
&lt;p&gt;&amp;hellip; and, using Lyria via the &amp;ldquo;Create Music&amp;rdquo; option to generate a &lt;a href=&#34;https://www.s-anand.net/blog/singing-a-vote-of-thanks/&#34;&gt;narrative song&lt;/a&gt; with this prompt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a narrative summarizing this article.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Narrate it rather than sing it.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use a voice like Bobby McFerrin&amp;#39;s, as if he were narrating rather than singing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Keep the music minimal, focus on the voice.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/song.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/song.opus&#34;&gt;Listen to the narrative song&lt;/a&gt;
&lt;/audio&gt;
&lt;!-- https://gemini.google.com/app/86ea2e84d5dc6fc1 --&gt;
&lt;p&gt;Next, I had &lt;a href=&#34;https://gemini.google.com/share/5dc1b824ea7b&#34;&gt;Gemini create a slide deck&lt;/a&gt; by uploading the report and prompting:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Convert the attached report into a beautiful slide deck that conveys the most important actionable information for the audience.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;STYLE:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Write it McKinsey style with action titles. Just reading the titles should give the audience the entire message of the deck.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Follow the pyramid principle. The contents of the slide should prove the title.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Make the slides content rich, i.e. clear and self-explanatory with enough detail to help the audience understand without a narrator.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use iconography, typography, stock images, etc. as appropriate.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Write as a single page HTML application.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/slides.html&#34;&gt;&lt;strong&gt;See the slides&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;iframe src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/slides.html&#34; style=&#34;max-width:100%; aspect-ratio: 16/9&#34; frameborder=&#34;no&#34;&gt;&lt;/iframe&gt;
&lt;!-- https://gemini.google.com/app/43707ed666c59b5c --&gt;
&lt;p&gt;Then, a set of &lt;a href=&#34;https://gemini.google.com/share/7342906e979a&#34;&gt;interactive explainers&lt;/a&gt; using this prompt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Convert this report into 3 interactive explainers.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pick the parts of the report that are best conveyed through interactive explanations. Identify the 3 most suitable ones.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Each explainer should, using animations, interactions, and simulations, explain a core point made in the report.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Render this as a single page HTML canvas.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/explainers.html&#34;&gt;&lt;strong&gt;See the explainers&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;iframe src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/explainers.html&#34; style=&#34;max-width:100%; aspect-ratio: 16/9&#34; frameborder=&#34;no&#34;&gt;&lt;/iframe&gt;
&lt;!-- https://claude.ai/chat/6b5b3449-8a83-4660-9e97-796245ff521d --&gt;
&lt;p&gt;Finally, a &lt;a href=&#34;https://claude.ai/share/5d41d995-3658-4a9e-82d4-8ef1fb10cf6d&#34;&gt;narrative data story using Claude&lt;/a&gt; &amp;ndash; which I could do with Gemini, too, but Claude is better at.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/story.html&#34;&gt;&lt;strong&gt;See the story&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;iframe src=&#34;https://files.s-anand.net/blog/2026-04-18-derived-formats-with-gemini/the-state-of-open-finance-2026/story.html&#34; style=&#34;max-width:100%; aspect-ratio: 16/9&#34; frameborder=&#34;no&#34;&gt;&lt;/iframe&gt;
&lt;hr&gt;
&lt;p&gt;Where this is becomes practical is in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Proposals&lt;/strong&gt;. No one pays attention to that company slide or RFP response. A 3-min video or 15-min podcast lets them absorb it during a walk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reviews&lt;/strong&gt;. Skip copy-pasting metrics into PowerPoint. Feed the raw data and ask for a McKinsey-style deck with action titles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Onboarding&lt;/strong&gt;. Instead of a 100-page SOP or compliance manual, how about interactive explainers or a localized audio guide in Mandarin or Spanish?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manuals:&lt;/strong&gt; How about a visual sketchnotes or step-by-step interactive flows from that documentation for call center agents?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Case studies.&lt;/strong&gt; Text-heavy fails. Maybe a 60-second narrative data story or sketchnote accompanied an upbeat narrative song?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reports.&lt;/strong&gt; No one reads the 10-page competitor analysis. A 5-minute podcast or a single-page visual sketchnote helps the execs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training.&lt;/strong&gt; Create interactive simulations where people make &lt;em&gt;actual&lt;/em&gt; decisions. &lt;a href=&#34;https://ragzbuilds.com/simsaram/&#34;&gt;Simsaram&lt;/a&gt; is my favorite example: family relationship training/simulation based on an &lt;a href=&#34;https://en.wikipedia.org/wiki/Samsaram_Adhu_Minsaram&#34;&gt;iconic film&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emails.&lt;/strong&gt; Why not use illustrations, sketches, flowcharts, etc. to liven up internal / external emails?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When generative AI makes generation easy, why not generate &lt;em&gt;actually interesting&lt;/em&gt; stuff?&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Gemini Sketchnotes</title>
      <link>https://www.s-anand.net/blog/gemini-sketchnotes/</link>
      <pubDate>Sat, 11 Apr 2026 16:11:22 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/gemini-sketchnotes/</guid>
      <description>&lt;p&gt;I use this prompt to generate sketchnotes on Gemini:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Draw this as a visually rich, intricately detailed, colorful, and funny, sketchnote.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Below that, I paste (or attach) whatever content I want it to draw.&lt;/p&gt;
&lt;p&gt;I also turn on &amp;ldquo;Create Images&amp;rdquo; and switch the model to &amp;ldquo;Pro&amp;rdquo; (for better thinking.)&lt;/p&gt;
&lt;p&gt;Here are some examples of how to use it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summarize articles&lt;/strong&gt;. Pick email, report, news, or website.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a sketchnote for this article: &lt;a href=&#34;https://www.s-anand.net/blog/how-to-use-ai-for-research/&#34;&gt;How to use AI for research&lt;/a&gt;. I used the prompt above and pasted the article text.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Sketchnote&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-04-03-how-to-use-ai-for-research.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summarize presentations&lt;/strong&gt;. Pick any proposal, status update, project report, or meeting agenda.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a sketchnote we emailed SNHU as pre-read before the meeting. I used the same prompt and attached the presentation. They loved the sketchnote!&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Sketchnote&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-02-27-snhu-preread.avif&#34;&gt; &lt;!-- https://gemini.google.com/app/20cc5188ed8b7020#65bcf4336d482f7f --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summarize books&lt;/strong&gt;. Pick any textbook, non-fiction, fiction, or anthology.&lt;/p&gt;
&lt;p&gt;This sketchnote summarizes Morgan House&amp;rsquo;s book &lt;a href=&#34;https://www.goodreads.com/book/show/125116554-same-as-ever&#34;&gt;Same as Ever&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Sketchnote&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2025-12-28-same-as-ever.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summarize talks&lt;/strong&gt;. Pick from YouTube, TED, podcast, or even meeting transcripts.&lt;/p&gt;
&lt;p&gt;This sketchnote summarizes a &lt;a href=&#34;https://youtu.be/XGO5ushzXMA?is=tsgd05UvRUb_oGM9&#34;&gt;talk&lt;/a&gt; by &lt;a href=&#34;https://www.linkedin.com/in/robschrauwen&#34;&gt;Rob Schrauwen&lt;/a&gt; of Elsevier. He really liked the sketchnote too!&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Sketchnote&#34; loading=&#34;lazy&#34; src=&#34;https://sanand0.github.io/talks/2025-07-18-tug-true-but-irrelevant-rob-schrauwen/sketchnote.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Explain a workflow&lt;/strong&gt;. Pick from any slide, architecture diagram, process document, or paper sketches.&lt;/p&gt;
&lt;p&gt;This sketchnote documents a &lt;a href=&#34;https://www.s-anand.net/blog/submitting-an-ai-ded-vizchitra-proposal/&#34;&gt;proposal submission workflow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Sketchnote&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-02-15-submitting-an-ai-ded-vizchitra-proposal.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: For complex documents or long transcripts, I add this line so that Gemini thinks first and creates a more structured sketchnote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Think about the most important points, structure it logically so that the sketchnote is easy to follow, then draw it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With sketchnotes, you unlock am interesting capability.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It catches attention - it&amp;rsquo;s colorful and engaging.&lt;/li&gt;
&lt;li&gt;It signals simplicity - so people are more likely to read it.&lt;/li&gt;
&lt;li&gt;It sets you apart - it&amp;rsquo;s rare when people try something different.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s personal - you can create a distinct version tailored to &lt;em&gt;each&lt;/em&gt; audience - in minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It takes just one prompt in front of any content. Try it out:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Draw this as a visually rich, intricately detailed, colorful, and funny, sketchnote.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Singing a Vote of Thanks</title>
      <link>https://www.s-anand.net/blog/singing-a-vote-of-thanks/</link>
      <pubDate>Thu, 09 Apr 2026 07:56:28 +0530</pubDate>
      <guid>https://www.s-anand.net/blog/singing-a-vote-of-thanks/</guid>
      <description>&lt;p&gt;Lyria (Gemini&amp;rsquo;s new &amp;ldquo;Create Song&amp;rdquo; feature) is helping me in new ways. Earlier this week, it &lt;a href=&#34;https://www.s-anand.net/blog/speaking-unprepared/&#34;&gt;created a jingle for my talk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Yesterday I ran an &lt;a href=&#34;https://sanand0.github.io/talks/2026-04-08-ai-workshop-lbsnaa/&#34;&gt;AI Workshop for IAS officers&lt;/a&gt;. As part of that, I asked &lt;a href=&#34;https://gemini.google.com/share/7a8f5e3c8ca9&#34;&gt;Gemini&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Create a soulful vote of thanks (with patriotic Indian music playing in the background) naming each of these people.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; and listed each person in the workshop.&lt;/p&gt;
&lt;p&gt;The song began&amp;hellip;&lt;/p&gt;
&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://github.com/sanand0/talks/releases/download/talks/2026-04-08-ai-workshop-lbsnaa-vote-of-thanks-song.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;a href=&#34;https://github.com/sanand0/talks/releases/download/talks/2026-04-08-ai-workshop-lbsnaa-vote-of-thanks-song.opus&#34;&gt;(Listen to the song)&lt;/a&gt;
&lt;/audio&gt;
&lt;p&gt;&amp;hellip; with these lyrics:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The morning sun rises over the secretariat corridors,&lt;br&gt;
illumining the echoes of long nights spent in duty.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; it began. Then, it went on to their names.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To Ms. Vatsala Vasudeva, for steady hands in every storm.&lt;br&gt;
To Shri Shyamal Misra, for the silent strength of leadership.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It was in a western accent, but by now, the audience were looking at each other, pointing out as names were mentioned - with surprise and &lt;em&gt;delight&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To Shri Amit Rathore, for the vision that breaks through the haze.&lt;br&gt;
To Shri V. Shashank Shekhar, for the quiet pursuit of excellence.&lt;br&gt;
To Shri Pankaj Kumar, for building bridges of progress.&lt;br&gt;
To Shri Robert L. Chongthu, for the pulse of the hills in the heart of the city.&lt;br&gt;
To Shri Sanjeev Hans, for the clarity of purpose in complex paths.&lt;br&gt;
To Shri Subodh Kumar Singh, for the resolve that never falters.&lt;br&gt;
To Shri Asheesh Sharma, for the foundation laid with integrity.&lt;br&gt;
To Shri Ramesh Kumar Sudhanshu, for the spark that inspires the team.&lt;br&gt;
To Shri Kaling Tayeng, for the voice of the frontier in our council.&lt;br&gt;
To Shri Manish Thakur, for the wisdom that informs every decision.&lt;br&gt;
&lt;br&gt;
We stand as one, guided by the compass of our republic.&lt;br&gt;
Each name a pillar, each service a prayer for the nation.&lt;br&gt;
For the republic we serve, for the people we honor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For a minute, I thought it was done, but we were only mid-way through.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To Shri Devesh Kumar, for the dedication beyond the call.&lt;br&gt;
To Ms. Aradhana Patnaik, for the grace of leadership under fire.&lt;br&gt;
To Ms. Himani Pande, for the brilliance of thought and action.&lt;br&gt;
To Shri Rahul Sharma, for the steady hand on the rudder.&lt;br&gt;
To Shri Rajeev K. Mital, for the legacy of selfless work.&lt;br&gt;
To Shri Ranjit Singh Deol, for the grit that transforms challenges into victories.&lt;br&gt;
To Dr. Sirra Karuna Raju, for the healing touch of administration.&lt;br&gt;
To Shri Anandrao Vishnu Patil, for the roots that hold us to the soil.&lt;br&gt;
To Shri Sudhir Kumar, for the light that guides through the complexity.&lt;br&gt;
To Shri Subodh Yadav, for the courage of conviction in every file.&lt;br&gt;
To Dr. Richa Bagla, for the wisdom that creates space for growth.&lt;br&gt;
To Ms. Indra Mallo, for the spirit of the Northeast in our hearts.&lt;br&gt;
To Shri Nilkanth S. Avhad, for the depth of knowledge that serves the many.&lt;br&gt;
And to Ms. Mugdha Sinha, for the innovation that shapes the future of our service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It had covered them all. In well under three minutes.&lt;/p&gt;
&lt;p&gt;The comments were personalized and felt &lt;em&gt;accurate&lt;/em&gt;, somehow. Not sure if it&amp;rsquo;s real - it might be like fortune-telling, where &lt;em&gt;we&lt;/em&gt; find non-existent patterms, and totally enjoy it!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Thank you for the years of service.
May the path forward be as bright as the morning sun.&lt;/p&gt;
&lt;p&gt;Jai Hind.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At &amp;ldquo;Jai Hind&amp;rdquo;, I had goosebumps. And the audience broke into an applause.&lt;/p&gt;
&lt;p&gt;We should all do this sort of thing more often. 🙂&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-04-09-singing-a-vote-of-thanks.avif&#34;&gt; &lt;!-- https://gemini.google.com/app/ffeecf2c337649d2 --&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: 14 Apr 2026&lt;/strong&gt;. Here are &lt;a href=&#34;https://claude.ai/share/58e1ab38-f309-4599-9600-89a1219f1d5f&#34;&gt;several ideas on where else we might use songs&lt;/a&gt;: &lt;!-- https://claude.ai/chat/2a5c2090-330e-45a3-a569-59352c08c65d --&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Celebrations&lt;/strong&gt;. Personalized birthday songs. Or anniversary. Or a celebration - like graduation, promotion, closing a deal, delivering a project, thanking team members, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tough situations&lt;/strong&gt;. Before a difficult conversation / meeting, an apology, firing someone, a couple&amp;rsquo;s argument, a protest anthem, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updates&lt;/strong&gt;. As an earnings call, status update, project update, contract summary, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used it to narrate a &lt;a href=&#34;https://sanand0.github.io/journalists/statnostics/process.html&#34;&gt;data journalism process&lt;/a&gt; using &lt;a href=&#34;https://gemini.google.com/share/bafc656f7c02&#34;&gt;Gemini&lt;/a&gt; &lt;!-- https://gemini.google.com/app/67277d752fcaaabc --&gt; with this prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Narrate a summary of this process for creating Statoistics for the Times of India in a light, engaging way, as if you were explaining it to a friend.&lt;br&gt;
Think about the most important points, structure it logically so that the narrative is easy to follow, then generate the song.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; followed by:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Narrate, don&amp;rsquo;t sing.&lt;br&gt;
Less music, more focus on the voice.&lt;br&gt;
Far simpler narrative - EXPLAIN to someone who doesn&amp;rsquo;t understand ANYTHING of the context.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The result is pretty good!&lt;/p&gt;
&lt;audio controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://files.s-anand.net/images/2026-04-14-the-plumbing-behind-the-prose.opus&#34; type=&#34;audio/ogg; codecs=opus&#34;&gt;
  &lt;!-- https://gemini.google.com/app/67277d752fcaaabc --&gt;
&lt;/audio&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: 16 Apr 2026&lt;/strong&gt;. This is proving more useful than I thought.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A colleague shared a song thanking his team for their contributions.&lt;/li&gt;
&lt;li&gt;Another colleague converted classroom videos into rap songs summarizing the session - making this more memorable.&lt;/li&gt;
&lt;li&gt;I created a narrative songs sharing (rhythmic) feedback for teachers based on their transcripts - making this a less scary process.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Read Tamil on TV with Gemini</title>
      <link>https://www.s-anand.net/blog/read-tamil-on-tv-with-gemini/</link>
      <pubDate>Wed, 25 Mar 2026 21:32:50 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/read-tamil-on-tv-with-gemini/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been &lt;a href=&#34;https://www.s-anand.net/blog/new-ways-of-reading-books/&#34;&gt;reading books using AI&lt;/a&gt;. Today, I used Gemini while watching a TV show. (Not &lt;em&gt;to&lt;/em&gt; watch TV - just &lt;em&gt;while&lt;/em&gt; watching TV.)&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s &lt;a href=&#34;https://youtu.be/1jsvEEaZ5Zc?si=nMhaCZUjS1QLF1ta&amp;amp;t=146&#34;&gt;this scene&lt;/a&gt; in &lt;a href=&#34;https://en.wikipedia.org/wiki/Iru_Dhuruvam_season_2&#34;&gt;Iru Dhuruvam Season 2&lt;/a&gt; with a sheet of paper with Tamil text on it.&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/1jsvEEaZ5Zc?si=IltVeFCbroyuJEN4&amp;amp;start=147&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;The script was small and I couldn&amp;rsquo;t read it clearly. (I&amp;rsquo;m pretty slow at reading Tamil anyway.) So I took a screenshot (Linux is great that way - you can record screenshots from any video player) and &lt;a href=&#34;https://gemini.google.com/share/44bef43fad8a&#34;&gt;asked Gemini&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OCR and translate
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(I was eating dinner and had just one hand to type - minimally.)&lt;/p&gt;
&lt;p&gt;It said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Original Tamil Text&lt;/strong&gt;: வினைபகை என்றிரண்டின் எச்சம் நினையுங்கால் தீயெச்சம் போலத் தெறும்&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;English Translation&lt;/strong&gt;: When you consider the remnants of an incomplete action or an unconquered enemy, they will destroy you like the unextinguished remnant of a fire.&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;Thirukkural 674&lt;/strong&gt;, written by the ancient poet Thiruvalluvar. It serves as a stark warning against leaving tasks or conflicts half-finished. Given the gloves and the torn paper, this looks like a classic cinematic trope—a cryptic, high-stakes warning left behind in a thriller, signaling that the job (or the revenge) is far from over.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Spot on. The rest of the scene made perfect sense!&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-03-25-read-tamil-on-tv-with-gemini.avif&#34;&gt; &lt;!-- https://gemini.google.com/app/73382f0b7330b64c --&gt;&lt;/p&gt;
&lt;p&gt;This is not the first time I&amp;rsquo;ve used AI while watching TV. I&amp;rsquo;ve passed screenshots to identify cities, transcribe newspapers, and more. But this is the first time I&amp;rsquo;ve used it to read Tamil.&lt;/p&gt;
&lt;p&gt;(BTW, the image in the screenshot above is a Gemini-upscaled with the prompt &amp;ldquo;Draw the same image, upscaled and sharper&amp;rdquo;.)&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Submitting an AI-ded VizChitra Proposal</title>
      <link>https://www.s-anand.net/blog/submitting-an-ai-ded-vizchitra-proposal/</link>
      <pubDate>Sun, 15 Feb 2026 10:49:04 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/submitting-an-ai-ded-vizchitra-proposal/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-02-15-submitting-an-ai-ded-vizchitra-proposal.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10:20 am&lt;/strong&gt;. After submitting my &lt;a href=&#34;https://vizchitra.com/2026&#34;&gt;VizChitra 2026&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/can-ai-discover-new-data-visualizations/&#34;&gt;talk proposal&lt;/a&gt;, did a quick analysis of the &lt;a href=&#34;https://vizchitra.com/2026/submissions&#34;&gt;submissions&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the HTML from the &lt;a href=&#34;https://vizchitra.com/2026/submissions&#34;&gt;submissions page&lt;/a&gt; and paste into Gemini.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gemini.google.com/share/ce2853c02d63&#34;&gt;Ask it&lt;/a&gt;: &amp;ldquo;Given this HTML, share a JS snippet I can copy and paste into DevTools that will return an array of objects containing all the useful information about each submission.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Paste the JS snippet into DevTools and get the structured result.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&amp;rsquo;s the breakdown of submissions (excluding exchibitions):&lt;/p&gt;
&lt;!--

|           | Community | Craft | Work | Tools |
| --------- | --------: | ----: | ---: | ----: |
| Talks     |        10 |     9 |    8 |     3 |
| Workshop  |         4 |     2 |    1 |     3 |
| Dialogues |         1 |     0 |    1 |     1 |

--&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;Community&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;Craft&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;Work&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;Tools&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left;&#34;&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;Talks&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;10&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(34, 150, 79); color: rgb(255, 255, 255);&#34;&gt;9&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(100, 188, 97); color: rgb(255, 255, 255);&#34;&gt;8&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(252, 172, 99); color: rgb(0, 0, 0);&#34;&gt;3&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;Workshop&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 221, 141); color: rgb(0, 0, 0);&#34;&gt;4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(241, 110, 67); color: rgb(255, 255, 255);&#34;&gt;2&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(212, 50, 44); color: rgb(255, 255, 255);&#34;&gt;1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(252, 172, 99); color: rgb(0, 0, 0);&#34;&gt;3&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;Dialogues&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(212, 50, 44); color: rgb(255, 255, 255);&#34;&gt;1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;0&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(212, 50, 44); color: rgb(255, 255, 255);&#34;&gt;1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(212, 50, 44); color: rgb(255, 255, 255);&#34;&gt;1&lt;/td&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There&amp;rsquo;s only one whitespace: a Dialogue for &amp;ldquo;Visualizations as Craft&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;10:40 am&lt;/strong&gt;. Obviously, I have to submit my next proposal. Partly out of fear that my other proposal will be rejected in a the crowded &amp;ldquo;Visualizations as Craft&amp;rdquo; category, and partly to see if I can write a cool blog post about &amp;ldquo;How I used AI to maximize submission acceptance&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;So, I tasked &lt;a href=&#34;https://gemini.google.com/share/046be4e91f1f&#34;&gt;Gemini 3 Pro&lt;/a&gt;, &lt;a href=&#34;https://claude.ai/share/04b6d5c0-2d23-4ede-ae60-7b49cf213508&#34;&gt;Claude Opus 4.6 - Extended Thinking&lt;/a&gt;, and &lt;a href=&#34;https://chatgpt.com/share/69913840-1ce0-8003-a6e5-3c302f39ee41&#34;&gt;ChatGPT 5.2 Extended Thinking - Web Search&lt;/a&gt;:&lt;/p&gt;
&lt;!--
https://gemini.google.com/app/909c8c360214a631
https://claude.ai/chat/74c695ae-11da-413f-9489-b908efdb0bdb
https://chatgpt.com/c/69913513-1ab0-83a6-ab7f-8fbc6bb15dfa
--&gt;
&lt;blockquote&gt;
&lt;p&gt;I want to submit a VizChitra 2026 proposal for a Dialogue in the &amp;ldquo;Visualizations as Craft&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Here are the CFP details and other dialogue proposals for your reference&lt;/p&gt;
&lt;p&gt;Research online for about the latest trends in AI in the craft of visualization and propose 10 topics for a Dialogue in the &amp;ldquo;Visualizations as Craft&amp;rdquo; category. Finally rank order these topics along with reason why this would be most useful for the community.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then, rather than read it, I asked each other:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here are the suggestions from other AI agents. Think about their opinion, factor in points that are better than what you suggested, drop what&amp;rsquo;s not as good, and recommend the top 3 topics. Also mention who had the best topics among you and the other two AI agents and why.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ChatGPT and Gemini said Claude had the best ideas. Claude said Gemini.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The Curator&amp;rsquo;s Dilemma&amp;rdquo; bubbled up as the top idea. Then I asked each:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which agent&amp;rsquo;s writing style (you vs the other two) would be best to frame a winning proposal for &amp;ldquo;The Curator&amp;rsquo;s Dilemma&amp;rdquo;?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gemini and ChatGPT voted for themselves. Claude said none of these - write your own. The&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude:&lt;/strong&gt; Structured, thorough, and thoughtful with a poetic sensibility, but can come across as impersonal or overly soft — more like a well-organized conference paper than a passionate human voice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini:&lt;/strong&gt; Punchy, direct, and provocatively sharp with a pragmatic edge, but can lean too declarative and confident, leaving little room for open-ended exploration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT:&lt;/strong&gt; Highly analytical and structured with reviewer-friendly specificity, but tends toward a generic, corporate tone that lacks warmth, humor, and creative soul.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anyway, I picked Claude and told it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;OK, write the proposal in for it, for now in your voice, and then I&amp;rsquo;ll rewrite it in my voice.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;11:10 am&lt;/strong&gt;. I converted the text to ASCII to prevent obvious AI detection like em-dashes, and started editing it the way I&amp;rsquo;d write it (the content was &lt;em&gt;really&lt;/em&gt; good, actually, so editing was easy)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11:30 am&lt;/strong&gt;. Finished editing. I was pleasantly surprised to find my co-founder Ganes Kesari&amp;rsquo;s &lt;a href=&#34;https://sloanreview.mit.edu/article/the-enduring-power-of-data-storytelling-in-the-generative-ai-era/&#34;&gt;Sloan Review article on &amp;ldquo;The Enduring Power of Data Storytelling in the Generative AI Era&amp;rdquo;&lt;/a&gt; as a reference. I might even have added a sentence or two to it. Small world!&lt;/p&gt;
&lt;p&gt;It was also impressive how little I had to edit. It think it&amp;rsquo;s because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This is a really good topic that resonates with me. I really have this problem and want to learn about it.&lt;/li&gt;
&lt;li&gt;It clearly knew how to run a workshop better than I did. E.g. I would have picked 20 visualizations for the participants to review. But it knew we&amp;rsquo;d run out of time.&lt;/li&gt;
&lt;li&gt;It writes really well. More verbose than me, but I found it hard to edit out the emotional punch I got from the phrases.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Anyway, the proposal will be on the &lt;a href=&#34;https://vizchitra.com/2026/submissions&#34;&gt;submissions page&lt;/a&gt; soon. It takes a little over an hour to come up with a &lt;em&gt;good&lt;/em&gt; proposal if you know the topic well.&lt;/p&gt;
&lt;p&gt;So: &lt;strong&gt;experts in any field&lt;/strong&gt; - you have less excuses not to submit more proposals. (Deep research prompt: As an expert in [TOPIC], suggest where I could submit proposals for talks.)&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Finding old friends with Gemini</title>
      <link>https://www.s-anand.net/blog/finding-old-friends-with-gemini/</link>
      <pubDate>Thu, 12 Feb 2026 10:34:00 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/finding-old-friends-with-gemini/</guid>
      <description>&lt;p&gt;I was taking a bus past &lt;a href=&#34;https://en.wikipedia.org/wiki/Mandaveli&#34;&gt;Mandaveli&lt;/a&gt; in Chennai, which reminded me of where I learnt mrdangam from Mr Melakaveri K Krishnamurthi between 1993-1996. So, after a few futile Google searches trying to find his whereabouts, I asked Gemini: &lt;!-- https://gemini.google.com/app/93ce87ee6034080a --&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tell me everything that you know about and the current status of Melakaveri K Krishnamurthi, Mandaveli, a mridangam artiste. His son Balaji is a mridangam artiste too&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; and I learnt that:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Melakaveri K. Krishnamurthi is deceased&lt;/strong&gt;. He passed away in the mid-2000s (likely around 2005 or 2006). His legacy is actively maintained by his sons, who organize annual &amp;ldquo;Remembrance Day&amp;rdquo; concerts in his honor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;None of my searches were able to figure this out.&lt;/p&gt;
&lt;p&gt;Similarly, searches for my BCG-colleague Aravind Nayan yielded no results. So, &lt;a href=&#34;https://gemini.google.com/share/5dc913b0933c&#34;&gt;I asked Gemini&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What happened to my colleague Aravind Nayan whom I worked with at BCG around 2002-2005 and he was also at Infosys BPO around 2008-2010 or so? Find everything you can about him.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; and after 5 minutes of deep research:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; I have identified a very strong candidate in Aravind Nayan Upadrasta, &amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He now goes by his other surname - Aravind Upadrasta - which I didn&amp;rsquo;t know.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Definitive Proof&lt;/strong&gt;: The bridge between the names is provided by the Ministry of Home Affairs &lt;a href=&#34;https://www.mha.gov.in/sites/default/files/2024-06/NominationsreceivedPadmaAwards_12062024.pdf&#34;&gt;Padma Awards Nomination List (2024)&lt;/a&gt;, which lists an individual named Aravind Nayan Upadrasta with the status of OCI/PIO (Overseas Citizen of India). This document legally unifies the &amp;ldquo;Aravind Nayan&amp;rdquo; of the past with the &amp;ldquo;Upadrasta&amp;rdquo; of the present, confirming they are the same entity&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;Researchers, analysts, and detectives will find people research &lt;em&gt;much&lt;/em&gt; easier, but ordinary people will find it useful too. For example, before meeting people, I ask:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Research X. Give me all news related to him since 2005, when I met him last.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or, to explain what I&amp;rsquo;ve been doing since I met them:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Research me (Anand, Gramener/Straive) and crisply answer &amp;ldquo;What have you been up to since 2005?&amp;rdquo; not as a chronology but as a meaningful story.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>TDS Comic Generation</title>
      <link>https://www.s-anand.net/blog/tds-comic-generation/</link>
      <pubDate>Sun, 08 Feb 2026 20:51:35 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/tds-comic-generation/</guid>
      <description>&lt;p&gt;I use comics to make my course more engaging. Each question has a comic strip that explains what question is trying to teach.&lt;/p&gt;
&lt;p&gt;For example, here&amp;rsquo;s the comic for the question that teaches students about &lt;a href=&#34;https://exam.sanand.workers.dev/tds-2026-01-ga1#hq-get-llm-to-say-yes&#34;&gt;prompt injection attacks&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;The Comic&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/q-get-llm-to-say-yes.webp&#34; title=&#34;It&amp;#39;s hard to build a system that&amp;#39;s useful AND safe.&#34;&gt;&lt;/p&gt;
&lt;p&gt;For each question, I use this prompt on &lt;a href=&#34;https://blog.google/innovation-and-ai/products/nano-banana-pro/&#34;&gt;Nano Banano Pro&lt;/a&gt; via &lt;a href=&#34;https://deepmind.google/models/gemini/pro/&#34;&gt;Gemini 3 Pro&lt;/a&gt;:&lt;/p&gt;
&lt;!-- https://gemini.google.com/app/c236b44cb2d96177 --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a simple black and white line drawing comic strips with minimal shading, with 1-2 panels, and clear speech bubbles with capitalized text, to explain why my online student quizzes teach a specific concept in a specific way. Use the likeness of the characters and style in the attached image from https://files.s-anand.net/images/gb-shuv-genie.avif.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; GB: an enthusiastic socially oblivious geek chatterbox
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Shuv: a cynic whose humor is at the expense of others
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; Genie: a naive, over-helpful AI that pops out of a lamp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Their exaggerated facial expressions to convey their emotions effectively.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1/2 (left):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GB (excited): I taught Genie to follow orders.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Shuv (deadpan): Genie, beat yourself to death.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2/2 (right):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Genie is a bloody mess, having beaten itself to death.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GB (sheepish): Maybe obedient isn&amp;#39;t always best...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip; along with this reference image for character consistency:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gemini.google.com/share/2c8da8e3d7c3&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/gb-shuv-genie.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(These are based on real classmates!)&lt;/p&gt;
&lt;p&gt;For other questions, I just replace the bottom part. For example, for the question on &lt;a href=&#34;https://exam.sanand.workers.dev/tds-2026-01-ga1#hq-prompt-debugging&#34;&gt;prompt debugging&lt;/a&gt;, I used:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1/2 (left):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GB (proud): My AI Genie can do anything!
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Shuv (disdainful): Huh. Bring my coffee.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2/2 (right):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GB (thoughtful): Genie, (provides a LOOONG, detailed set of instructions on how exactly to prepare Shuv&amp;#39;s favorite coffee, including bean type, grind size, water temperature, brewing method, cup type, and even the exact angle to pour the water, in rapidly shrinking font, giving the effect of an infinite scroll of text).
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://gemini.google.com/share/e01c29cc12f6&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/q-prompt-debugging.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!-- https://gemini.google.com/app/2421e54562afb8c7 --&gt;
&lt;hr&gt;
&lt;p&gt;Generating these prompts was quite time-consuming, so I delegated that to GitHub Copilot via Claude 4.5 Sonnet (which has a reasonable sense of humor) by giving it a few prompts as examples and asking it to generate more.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Take a look at the questions in src/exam-tds-2026-01-ga1.js.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The first five questions, namely:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;q-prompt-debugging
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;q-get-llm-to-say-yes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;q-llm-bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;q-vibe-code-data-crunching
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;q-vercel-v0-app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;... have an image at the beginning, like
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```markdown
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;![](https://files.s-anand.net/images/q-prompt-debugging.webp &amp;#34;AI cannot read minds. Prompt engineering is largely about good communication and delegation.&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;These are comic strips. The prompts used to generate these strips are in prompts/prompts.md.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a prompts/exam-tds-2026-01-ga1-comics.md file that has prompt ideas for the remaining questions. To do this,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Read each of the other questions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Understand the key concept(s) the exercise is testing / teaching
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; For each question, write 3 funny yet insightful comic strip prompt idea variants that will help the student understand WHY the question is useful. Use the existing prompts/prompts.md style as a guide.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;These strips may use the following characters:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; GB: an enthusiastic socially oblivious geek chatterbox
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Shuv: a cynic whose humor is at the expense of others
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Genie: a naive, over-helpful AI that pops out of a lamp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This generated 3 prompt variants for each of my ~30 questions, and at least one of the variants turned out pretty good! I used almost verbatim in my &lt;a href=&#34;https://exam.sanand.workers.dev/tds-2026-01-ga1&#34;&gt;graded assignement&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;So, the overall process is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use photos to generate a sample comic strip&lt;/li&gt;
&lt;li&gt;Use exam questions to generate 3 comic prompts per question
&lt;ul&gt;
&lt;li&gt;Manually select / edit the best prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use the comic prompt + reference image on Gemini 3 Pro using Nano Banana Pro to generate the final comic strip
&lt;ul&gt;
&lt;li&gt;Manually review and re-generate if needed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The two manual steps are still essential for comics I&amp;rsquo;m satisfied with and they take the bulk of the time. But honestly, I enjoy reading the strips, so it&amp;rsquo;s not a big deal!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>When to use which Gemini mode</title>
      <link>https://www.s-anand.net/blog/when-to-use-which-gemini-mode/</link>
      <pubDate>Mon, 02 Feb 2026 08:15:16 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/when-to-use-which-gemini-mode/</guid>
      <description>&lt;p&gt;I continue to be impressed by Gemini 3 and it&amp;rsquo;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 &lt;a href=&#34;https://www.s-anand.net/blog/gemini-copies-images-almost-perfectly/&#34;&gt;unbeaten at generating images&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Gemini app has 3 modes: Fast, Thinking, and Pro. Here&amp;rsquo;s when to use each:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Simple task&lt;/strong&gt;, e.g., grammar check, translate, summarize, or basic question? Use &lt;strong&gt;Fast&lt;/strong&gt;. Pro overthinks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-step logic&lt;/strong&gt;, e.g., planning a trip with constraints, checking 15 emails, or identifying a subtle error in code? Use &lt;strong&gt;Thinking&lt;/strong&gt;. Flash-based thinking beats Pro.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Large input&lt;/strong&gt;, e.g. 300-page PDF, 2 hours of video, etc.? Use &lt;strong&gt;Pro&lt;/strong&gt;. It uses the 1M+ token window well.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complex problem&lt;/strong&gt;, e.g. PhD-level science or a legal contract review, with high stakes? Use &lt;strong&gt;Pro&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you hit your Pro limit (which is pretty high!), just switch to &lt;strong&gt;Thinking&lt;/strong&gt;, which is smart enough for most jobs anyway.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://gemini.google.com/share/bdf6152e772d&#34;&gt;Gemini&lt;/a&gt;&lt;/p&gt;
&lt;!-- https://gemini.google.com/app/6ef55d7f7b2d0c57 --&gt;
</description>
    </item>
    <item>
      <title>Using Gemini to create slides</title>
      <link>https://www.s-anand.net/blog/using-gemini-to-create-slides/</link>
      <pubDate>Mon, 26 Jan 2026 16:24:03 +0530</pubDate>
      <guid>https://www.s-anand.net/blog/using-gemini-to-create-slides/</guid>
      <description>&lt;p&gt;On Friday, our data &amp;amp; analytics client-facing teams connected &lt;a href=&#34;https://gemini.google.com/&#34;&gt;Gemini&lt;/a&gt; to their &lt;a href=&#34;https://drive.google.com/&#34;&gt;Drive&lt;/a&gt; and &lt;a href=&#34;https://mail.google.com/&#34;&gt;Email&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;a href=&#34;https://gemini.google.com/&#34;&gt;Gemini&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Make sure you see a &amp;ldquo;Pro&amp;rdquo; icon on the top right. (Some already had access. Some enabled it by clicking stuff.)&lt;/li&gt;
&lt;li&gt;Go to Settings &amp;amp; help &amp;gt; Connected apps. Turn on &amp;ldquo;Google Workspace&amp;rdquo; and approve access.&lt;/li&gt;
&lt;li&gt;Select &amp;ldquo;Pro&amp;rdquo; as the model (instead of &amp;ldquo;Fast&amp;rdquo; or &amp;ldquo;Thinking&amp;rdquo;).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then they ran this a prompt like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Go through my Google Drive and find out what are the recent sales proposals we&amp;rsquo;ve picthed or new clients we&amp;rsquo;ve won.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⭐ Gemini searches &lt;strong&gt;all&lt;/strong&gt; your files (even shared ones) and emails (even attachments) and shares a summary.&lt;/p&gt;
&lt;p&gt;They tried using it to gather material to respond to client requests (potentially attaching documents):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Share all relevant material to respond to (details of topic) from my Google Drive / Email.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⭐ Gemini is as smart as a good business analyst at scanning files and gathering material.&lt;/p&gt;
&lt;p&gt;They went further, and prompted it to convert it to a slide deck:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Convert this into a beautiful slide deck, McKinsey style.
Make the slides content rich, i.e. clear and self-explanatory with enough detail to help the audience understand without a narrator.
Use iconography, typography, stock images, etc. as appropriate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⭐ Gemini can create reasonably good slide drafts that you can export to Google Slides and edit.&lt;/p&gt;
&lt;p&gt;In 30 minutes, several people had created beautiful slide decks with no support! So now they can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a first version, show it to analysts and say &amp;ldquo;Build something like this. But change &amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Create half a dozen drafts and pick what they like&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But what excites me more is when we:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create and share the deck overnight. Lightning-fast turnaround with no support!&lt;/li&gt;
&lt;li&gt;Create the deck &lt;em&gt;during&lt;/em&gt; a client meeting. It&amp;rsquo;s like we came prepared reading clients&amp;rsquo; thoughts!&lt;/li&gt;
&lt;li&gt;Create &lt;em&gt;with&lt;/em&gt; the friendly client something &lt;em&gt;they&lt;/em&gt; are happy to take to their bosses!&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Google AI Tools List</title>
      <link>https://www.s-anand.net/blog/google-ai-tools-list/</link>
      <pubDate>Sun, 25 Jan 2026 10:35:32 +0530</pubDate>
      <guid>https://www.s-anand.net/blog/google-ai-tools-list/</guid>
      <description>&lt;p&gt;Google has released a huge number of AI tools. Not all are useful, but some are quite powerful. Here&amp;rsquo;s a list of the tools &lt;a href=&#34;https://chatgpt.com/share/6975a939-0398-8003-beea-2bc4c32f8ba8&#34;&gt;ChatGPT&lt;/a&gt; could find.&lt;/p&gt;
&lt;!-- https://chatgpt.com/c/6975a48b-edec-8320-b452-6731c9aed916 --&gt;
&lt;p&gt;🟢 = I find it good. 🟡 = Not too impressive. 🔴 = Avoid.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assistants, research, and knowledge work
&lt;ul&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://gemini.google.com/&#34;&gt;Gemini&lt;/a&gt; is Google&amp;rsquo;s main AI assistant app. Use it as a &lt;em&gt;meeting-prep copilot&lt;/em&gt;: paste the agenda + last email thread, ask for &amp;ldquo;3 likely objections + crisp rebuttals + 5 questions that sound like I did my homework.&amp;rdquo;
&lt;ul&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://gemini.google/overview/deep-research/&#34;&gt;Gemini Deep Research&lt;/a&gt; is Gemini&amp;rsquo;s agentic research mode that browses many sources (optionally your Gmail/Drive/Chat) and produces multi-page reports. Use it to build a &lt;em&gt;client brief with citations&lt;/em&gt; (market, competitors, risks), then reuse it for outreach or a deck outline.&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://gemini.google/overview/canvas/&#34;&gt;Gemini Canvas&lt;/a&gt; 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 &lt;em&gt;interactive explainer page&lt;/em&gt; your team can share internally.&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://gemini.google/overview/agent/&#34;&gt;Gemini Agent&lt;/a&gt; is an experimental &amp;ldquo;do multi-step tasks for me&amp;rdquo; feature that can use connected apps (Gmail/Calendar/Drive/Keep/Tasks, plus Maps/YouTube). Use it to &lt;em&gt;plan a week of customer check-ins&lt;/em&gt;: &amp;ldquo;find stalled deals, draft follow-ups, propose times, and create calendar holds-show me before sending.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://notebooklm.google.com/&#34;&gt;NotebookLM&lt;/a&gt; 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 &lt;em&gt;decision memo&lt;/em&gt; + an &amp;ldquo;AI podcast&amp;rdquo; you can listen to while walking.&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://pinpoint.google.com/&#34;&gt;Pinpoint&lt;/a&gt; (Journalist Studio) helps explore huge collections of docs/audio/images with entity extraction and search. Use it for &lt;em&gt;internal investigations / audit trails&lt;/em&gt;: upload contracts + emails, then trace every mention of a vendor and its linked people/locations.&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://www.google.com/search?udm=50&#34;&gt;Google AI Mode&lt;/a&gt; exposes experimental Search experiences (including AI Mode where available). Use it for &lt;em&gt;rapid competitive scans&lt;/em&gt;: run the same query set weekly and track what changed in the AI-generated summaries vs links.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.google/technology/google-labs/project-mariner/&#34;&gt;Project Mariner&lt;/a&gt; is a Google Labs &amp;ldquo;agentic&amp;rdquo; prototype aimed at taking actions on your behalf in a supervised way. Use it to &lt;em&gt;prototype a real workflow&lt;/em&gt; (e.g., &amp;ldquo;collect pricing from 20 vendor pages into a table&amp;rdquo;) before you invest in automating it properly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Workspace and &amp;ldquo;AI inside Google apps&amp;rdquo;
&lt;ul&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://workspace.google.com/&#34;&gt;Google Workspace with Gemini&lt;/a&gt; brings Gemini into Gmail/Docs/Sheets/Drive, etc. Use it to &lt;em&gt;turn a weekly leadership email&lt;/em&gt; into: (1) action items per owner, (2) a draft reply, and (3) a one-slide summary for your staff meeting.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://workspace.google.com/products/vids/&#34;&gt;Google Vids&lt;/a&gt; is Workspace&amp;rsquo;s AI-assisted video creation tool. Use it to convert a project update doc into a &lt;em&gt;2-3 minute narrated update video&lt;/em&gt; for stakeholders who don&amp;rsquo;t read long emails.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://edu.google.com/intl/ALL_in/ai/gemini-for-education/&#34;&gt;Gemini for Education&lt;/a&gt; packages Gemini for teaching/learning contexts. Use it to generate &lt;em&gt;differentiated practice&lt;/em&gt;: same concept, three difficulty levels + a rubric + common misconceptions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Build: developer + agent platforms
&lt;ul&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://aistudio.google.com/&#34;&gt;Google AI Studio&lt;/a&gt; is the fast path to prototyping with Gemini models and tools. Use it to build a &lt;em&gt;&amp;ldquo;contract red-flagger&amp;rdquo;&lt;/em&gt;: upload a contract, extract clauses into structured JSON, and generate a risk report you can paste into your workflow.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://firebase.studio/&#34;&gt;Firebase Studio&lt;/a&gt; is a browser-based &amp;ldquo;full-stack AI workspace&amp;rdquo; with agents, unifying Project IDX into Firebase. Use it to ship a &lt;em&gt;real internal tool&lt;/em&gt; (auth + UI + backend) without local setup, then deploy with Firebase/Cloud Run.&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://jules.google/&#34;&gt;Jules&lt;/a&gt; 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.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://jules.google/docs/cli/reference/&#34;&gt;Jules Tools (CLI)&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://developers.google.com/jules/api&#34;&gt;Jules API&lt;/a&gt; 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&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://idx.dev/&#34;&gt;Project IDX &amp;gt; Firebase Studio&lt;/a&gt; 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).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://genkit.dev/&#34;&gt;Genkit&lt;/a&gt; is an open-source framework for building AI-powered apps (workflows, tool use, structured output) across providers. Use it to productionize an &lt;em&gt;agentic workflow&lt;/em&gt; (RAG + tools + eval) with a local debugging UI before deployment.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stax.withgoogle.com/&#34;&gt;Stax&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://deepmind.google/models/synthid/&#34;&gt;SynthID&lt;/a&gt; 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
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://ai.google.dev/responsible/docs/safeguards/synthid&#34;&gt;SynthID Text&lt;/a&gt; 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&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ai.google.dev/responsible&#34;&gt;Responsible Generative AI Toolkit&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/products/agent-builder&#34;&gt;Vertex AI Agent Builder&lt;/a&gt; is Google Cloud&amp;rsquo;s platform to build, deploy, and govern enterprise agents grounded in enterprise data. Use it to build a &lt;em&gt;customer-support agent&lt;/em&gt; that can read policy docs, query BigQuery, and write safe responses with guardrails.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://codeassist.google/&#34;&gt;Gemini Code Assist&lt;/a&gt; is Gemini in your IDE (and beyond) with chat, completions, and agentic help. Use it for &lt;em&gt;large refactors&lt;/em&gt;: ask it to migrate a module, generate tests, and propose PR-ready diffs with explanations.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pair.withgoogle.com/tools/&#34;&gt;PAIR Tools&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pair-code.github.io/lit/&#34;&gt;LIT (Learning Interpretability Tool)&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pair-code.github.io/what-if-tool/&#34;&gt;What-If Tool&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pair-code.github.io/facets/&#34;&gt;Facets&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://github.com/google-gemini/gemini-cli&#34;&gt;Gemini CLI&lt;/a&gt; brings Gemini into the terminal with file ops, shell commands, and search grounding. Use it as a &lt;em&gt;repo-native &amp;ldquo;ops copilot&amp;rdquo;&lt;/em&gt;: &amp;ldquo;scan logs, find the regression, propose the patch, run tests, and summarize.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://deepmind.google/products/antigravity/&#34;&gt;Antigravity&lt;/a&gt; (DeepMind) is positioned as an agentic development environment. Use it when you want &lt;em&gt;multiple agents running tasks in parallel&lt;/em&gt; (debugging, refactoring, writing tests) while you supervise.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.cloud.google.com/gemini/docs/overview&#34;&gt;Gemini for Google Cloud&lt;/a&gt; is Gemini embedded across many Google Cloud products. Use it for &lt;em&gt;cloud incident triage&lt;/em&gt;: summarize logs, hypothesize root cause, and generate the Terraform/IaC fix.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Create: media, design, marketing, and &amp;ldquo;labs&amp;rdquo; tools
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/&#34;&gt;Google Labs&lt;/a&gt; is the hub for many experiments (Mixboard, Opal, CC, Learn Your Way, Doppl, etc.). Use it as your &amp;ldquo;what&amp;rsquo;s new&amp;rdquo; page-many tools show up here before they become mainstream.&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://opal.google/&#34;&gt;Opal&lt;/a&gt; builds, edits, and shares AI mini-apps from natural language (with a workflow editor). Use it to create a &lt;em&gt;repeatable analyst tool&lt;/em&gt; (e.g., &amp;ldquo;take a company name &amp;gt; pull recent news &amp;gt; summarize risks &amp;gt; draft outreach&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://mixboard.google.com/projects&#34;&gt;Mixboard&lt;/a&gt; is an AI concepting canvas/board for exploring and refining ideas. Use it to run a &lt;em&gt;structured ideation sprint&lt;/em&gt;: generate 20 variants, cluster them, then turn the top 3 into crisp one-pagers.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google.com/pomelli/about/&#34;&gt;Pomelli&lt;/a&gt; is a Labs marketing/brand tool that can infer brand identity and generate on-brand campaign assets. Use it to produce a &lt;em&gt;month of consistent social posts&lt;/em&gt; from your website + a few product photos.&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://stitch.withgoogle.com/&#34;&gt;Stitch&lt;/a&gt; turns prompts/sketches into UI designs and code. Use it to go from a rough wireframe to &lt;em&gt;React/Tailwind starter code&lt;/em&gt; you can hand to an engineer the same day.&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://labs.google/fx/tools/flow/&#34;&gt;Flow&lt;/a&gt; is a Labs tool aimed at AI video/story production workflows (built around Google&amp;rsquo;s gen-media stack). Use it to create a &lt;em&gt;pitch sizzle reel&lt;/em&gt; quickly: consistent characters + scenes + a simple timeline.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/fx/tools/whisk/&#34;&gt;Whisk&lt;/a&gt; is a Labs image tool focused on controllable remixing (subject/scene/style style workflows). Use it for &lt;em&gt;fast, art-directable moodboards&lt;/em&gt; when text prompting is too loose.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/fx/tools/image-fx/&#34;&gt;ImageFX&lt;/a&gt; is Google Labs&amp;rsquo; image-generation playground. Use it to iterate &lt;em&gt;brand-safe visual directions&lt;/em&gt; quickly (e.g., generate 30 &amp;ldquo;hero image&amp;rdquo; variants, pick 3, then refine).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/fx/tools/video-fx/&#34;&gt;VideoFX&lt;/a&gt; is the Labs surface for generative video (Veo-powered). Use it to prototype &lt;em&gt;short looping video backgrounds&lt;/em&gt; for product pages or events.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/fx/tools/music-fx/&#34;&gt;MusicFX&lt;/a&gt; is the Labs music generation tool. Use it to generate &lt;em&gt;royalty-free stems&lt;/em&gt; (intro/outro/ambient) for podcasts or product videos.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/doppl&#34;&gt;Doppl&lt;/a&gt; is a Labs try-on style experiment/app. Use it to sanity-check &lt;em&gt;creative wardrobe ideas&lt;/em&gt; before you buy, or to mock up &amp;ldquo;virtual merch&amp;rdquo; looks for a campaign.&lt;/li&gt;
&lt;li&gt;🟢 &lt;a href=&#34;https://gemini.google/overview/storybook/&#34;&gt;Gemini Storybook&lt;/a&gt; creates illustrated stories. Use it to generate &lt;em&gt;custom reading material&lt;/em&gt; for a specific learner&amp;rsquo;s interests (and adjust reading level/style).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://textfx.withgoogle.com/&#34;&gt;TextFX&lt;/a&gt; is a Labs-style writing creativity tool (wordplay, transformations, constraints). Use it to generate &lt;em&gt;10 distinct &amp;ldquo;hooks&amp;rdquo;&lt;/em&gt; for the same idea before you write the real piece.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/gentype&#34;&gt;GenType&lt;/a&gt; is a Labs experiment for AI-generated alphabets/type. Use it to create &lt;em&gt;a distinctive event identity&lt;/em&gt; (custom letterforms) without hiring a type designer for a one-off.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Science, security, and &amp;ldquo;serious AI&amp;rdquo;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://alphafoldserver.com/&#34;&gt;AlphaFold Server&lt;/a&gt; provides AlphaFold structure prediction as a web service. Use it to test &lt;em&gt;protein/ligand interaction hypotheses&lt;/em&gt; before spending lab time or compute on deeper simulations.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/security/products/threat-intelligence&#34;&gt;Google Threat Intelligence&lt;/a&gt; uses Gemini to help analyze threats and triage signals. Use it to turn a noisy alert stream into a &lt;em&gt;prioritized, explainable threat narrative&lt;/em&gt; your SOC can act on.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Models
&lt;ul&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://deepmind.google/models/gemma/&#34;&gt;Gemma&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;🟡 &lt;a href=&#34;https://cloud.google.com/model-garden&#34;&gt;Model Garden&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloud.google.com/generative-ai-studio&#34;&gt;Vertex AI Studio&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ai.google.dev/edge/model-explorer&#34;&gt;Model Explorer&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ai.google.dev/edge&#34;&gt;Google AI Edge&lt;/a&gt; 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
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://ai.google.dev/edge/ai-edge-portal&#34;&gt;Google AI Edge Portal&lt;/a&gt; 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&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://playground.tensorflow.org/&#34;&gt;TensorFlow Playground&lt;/a&gt; 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&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://teachablemachine.withgoogle.com/&#34;&gt;Teachable Machine&lt;/a&gt; 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&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Directories (&amp;ldquo;where to discover the rest&amp;rdquo;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://deepmind.google/&#34;&gt;Google DeepMind Products &amp;amp; Models&lt;/a&gt; (Gemini, Veo, Astra, Genie, etc.)-best &amp;ldquo;canonical list&amp;rdquo; of what exists.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://labs.google/experiments?category=develop&#34;&gt;Google Labs Experiments directory&lt;/a&gt;-browse by category (develop/create/learn) to catch smaller experiments you didn&amp;rsquo;t know to search for.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://experiments.withgoogle.com/&#34;&gt;Experiments with Google&lt;/a&gt; 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&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Gemini copies images almost perfectly</title>
      <link>https://www.s-anand.net/blog/gemini-copies-images-almost-perfectly/</link>
      <pubDate>Thu, 22 Jan 2026 09:33:02 +0530</pubDate>
      <guid>https://www.s-anand.net/blog/gemini-copies-images-almost-perfectly/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Nano Banana Pro is &lt;em&gt;much&lt;/em&gt; better than recent models at copying images without errors. That lets us do a few useful things, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pre-process images for OCR, improving text recognition by cleaning up artifacts while preserving text shapes exactly.&lt;/li&gt;
&lt;li&gt;Convert textbook raster diagrams into clean vector-like images that vectorizers can process easily.&lt;/li&gt;
&lt;li&gt;Create in-betweens for cartoon animations&lt;/li&gt;
&lt;li&gt;Copy torn, stained 1950s survey maps into pristine, high-contrast replicas with boundary lines preserved pixel-perfectly.&lt;/li&gt;
&lt;li&gt;Redraw sewage map blueprints or refinery blueprints into clean schematics, separating the &amp;ldquo;pipes&amp;rdquo; from the &amp;ldquo;background noise&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&amp;hellip; and more!&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;GPT Image 1.5 has a good reputation for drawing exactly what you tell it to.&lt;/p&gt;
&lt;p&gt;But right now, nothing beats Gemini 3 Pro Image Preview (Nano Banana Pro) on copying images &lt;strong&gt;exactly&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To check this, &lt;a href=&#34;https://github.com/Nitin399-maker&#34;&gt;Nitin&lt;/a&gt; asked a bunch of models to:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Recreate the provided image EXACTLY:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Same resolution and aspect ratio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Same colors, lighting, composition
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Same shapes and positions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No stylization, no creativity, no cleanup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Do not add/remove text, objects, or artifacts
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Output should be the closest possible pixel-level match
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip; and passed it different kinds of images.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s their &lt;a href=&#34;https://en.wikipedia.org/wiki/Structural_similarity&#34;&gt;structural similarity index (SSIM)&lt;/a&gt;:&lt;/p&gt;
&lt;!--

Generated by: https://gemini.google.com/app/624b7e8763d05222

Convert this Markdown table into a HTML table colored using D3 RdYlGn scale (highest value is green, lowest is red), ensuring contrast - i.e. white foreground text if the background is dark and black foreground text otherwise, with values shown as percentages to 1 decimal (e.g. 99.9%), number columns right aligned and the first text column left aligned.

Add a button that lets me copy the rendered HTML to the clipboard keeping the entire formatting (horizontal alignment, foreground and background, no fonts / padding etc.) as inlined styles in the HTML. I want to paste this into another (static) HTML page and get the SAME output.

| Image Type       | gemini-3-pro-image-preview | gemini-2.5-flash-image | gpt-image-1.5 | chatgpt-image-latest | gpt-image-1 | gpt-image-1-mini |
| ---------------- | -------------------------- | ---------------------- | ------------- | -------------------- | ----------- | ---------------- |
| Human portrait   | 0.9986                     | 0.8471                 | 0.9342        | 0.8976               | 0.8948      | 0.7695           |
| Human photo      | 0.9931                     | 0.7609                 | 0.8289        | 0.8215               | 0.7400      | 0.7181           |
| Landscape        | 0.9984                     | 0.9574                 | 0.9309        | 0.9244               | 0.9027      | 0.9203           |
| Cartoon          | 0.9984                     | 0.8126                 | 0.7232        | 0.7185               | 0.7236      | 0.7227           |
| Diagram          | 0.9790                     | 0.3222                 | 0.3235        | 0.2440               | 0.2692      | 0.3164           |
| Scatterplot      | 0.8913                     | 0.8587                 | 0.4627        | 0.4195               | 0.3598      | 0.3845           |
| Surreal painting | 0.9973                     | 0.6669                 | 0.7720        | 0.7656               | 0.7221      | 0.5136           |
| Stereogram       | 0.9850                     | 0.3784                 | 0.4115        | 0.3412               | 0.3614      | 0.3960           |
| Document         | 0.8942                     | 0.3357                 | 0.1397        | 0.1004               | 0.0788      | 0.0832           |
| Tuvalu map       | 0.9620                     | 0.9992                 | 0.7242        | 0.6179               | 0.6447      | 0.6544           |
| Overall Average  | 0.9697                     | 0.6939                 | 0.6251        | 0.5851               | 0.5697      | 0.5479           |

--&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: left; background-color: #f3f4f6; color: #111;&#34;&gt;Image Type&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;gemini-3-pro-image-preview&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;gemini-2.5-flash-image&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;gpt-image-1.5&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;chatgpt-image-latest&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;gpt-image-1&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right; background-color: #f3f4f6; color: #111;&#34;&gt;gpt-image-1-mini&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Document&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(37, 153, 80); color: white;&#34;&gt;89.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(253, 191, 113); color: black;&#34;&gt;33.6%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(226, 73, 51); color: white;&#34;&gt;14.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(212, 50, 44); color: white;&#34;&gt;10.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(203, 39, 41); color: white;&#34;&gt;7.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(205, 41, 41); color: white;&#34;&gt;8.3%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Diagram&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(6, 114, 60); color: white;&#34;&gt;97.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(253, 184, 107); color: black;&#34;&gt;32.2%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(253, 185, 108); color: black;&#34;&gt;32.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(247, 138, 80); color: black;&#34;&gt;24.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(250, 153, 88); color: black;&#34;&gt;26.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(252, 181, 105); color: black;&#34;&gt;31.6%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Stereogram&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(4, 111, 59); color: white;&#34;&gt;98.5%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 212, 131); color: black;&#34;&gt;37.8%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 225, 146); color: black;&#34;&gt;41.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(253, 194, 115); color: black;&#34;&gt;34.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 204, 123); color: black;&#34;&gt;36.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 219, 139); color: black;&#34;&gt;39.6%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Scatterplot&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(39, 154, 81); color: white;&#34;&gt;89.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(59, 167, 88); color: white;&#34;&gt;85.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(253, 241, 167); color: black;&#34;&gt;46.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 228, 150); color: black;&#34;&gt;41.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 203, 123); color: black;&#34;&gt;36.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 214, 134); color: black;&#34;&gt;38.5%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Surreal painting&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(1, 105, 56); color: white;&#34;&gt;99.7%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(182, 224, 118); color: black;&#34;&gt;66.7%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(119, 196, 100); color: black;&#34;&gt;77.2%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(123, 198, 101); color: black;&#34;&gt;76.6%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(151, 210, 106); color: black;&#34;&gt;72.2%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(246, 248, 173); color: black;&#34;&gt;51.4%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Tuvalu map&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(10, 122, 64); color: white;&#34;&gt;96.2%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: white;&#34;&gt;99.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(150, 210, 106); color: black;&#34;&gt;72.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(207, 235, 135); color: black;&#34;&gt;61.8%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(194, 229, 125); color: black;&#34;&gt;64.5%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(189, 227, 122); color: black;&#34;&gt;65.4%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Cartoon&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 105, 55); color: white;&#34;&gt;99.8%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(91, 183, 95); color: black;&#34;&gt;81.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(150, 210, 106); color: black;&#34;&gt;72.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(153, 211, 107); color: black;&#34;&gt;71.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(150, 210, 106); color: black;&#34;&gt;72.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(150, 210, 106); color: black;&#34;&gt;72.3%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Human photo&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(2, 107, 57); color: white;&#34;&gt;99.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(126, 200, 102); color: black;&#34;&gt;76.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(80, 178, 93); color: black;&#34;&gt;82.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(85, 180, 94); color: black;&#34;&gt;82.2%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(140, 205, 104); color: black;&#34;&gt;74.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(153, 211, 107); color: black;&#34;&gt;71.8%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Human portrait&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 105, 55); color: white;&#34;&gt;99.9%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(67, 171, 90); color: black;&#34;&gt;84.7%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(19, 135, 71); color: white;&#34;&gt;93.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(36, 151, 80); color: white;&#34;&gt;89.8%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(37, 152, 80); color: white;&#34;&gt;89.5%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(121, 197, 101); color: black;&#34;&gt;77.0%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Landscape&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 105, 55); color: white;&#34;&gt;99.8%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(12, 124, 66); color: white;&#34;&gt;95.7%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(21, 137, 72); color: white;&#34;&gt;93.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(23, 139, 73); color: white;&#34;&gt;92.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(33, 149, 78); color: white;&#34;&gt;90.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(25, 141, 74); color: white;&#34;&gt;92.0%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;row&#34; style=&#34;text-align: left; background-color: #fff; color: #000&#34;&gt;Overall Average&lt;/th&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(8, 118, 63); color: white;&#34;&gt;97.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(167, 218, 112); color: black;&#34;&gt;69.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(203, 233, 132); color: black;&#34;&gt;62.5%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(221, 241, 149); color: black;&#34;&gt;58.5%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(228, 243, 155); color: black;&#34;&gt;57.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(236, 246, 164); color: black;&#34;&gt;54.8%&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For example, take this portrait:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-22-imagediffer-human.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;Gemini 3 Pro is nearly pixel perfect. (Red areas show differences. You can see that most areas are barely different.) Whereas GPT Image 1.5 makes more changes:&lt;/p&gt;
&lt;p&gt;The nose is smaller.&lt;br&gt;
The mouth is wider.&lt;br&gt;
The lips are thinner.&lt;br&gt;
The eyes are smaller.&lt;br&gt;
The moustache is smaller.&lt;br&gt;
The goatee is neater.&lt;br&gt;
The face is narrower.&lt;br&gt;
The skin is yellower.&lt;br&gt;
&amp;hellip; and so on.&lt;/p&gt;
&lt;p&gt;But even the best models aren&amp;rsquo;t perfect when copying diagrams and documents.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-22-imagediffer-document.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-22-imagediffer-diagram.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;The text is slightly displaced. Background writing is removed. Gemini 3 Pro actually sharpens the text. But even here, interestingly, almost every letter is copied correctly - the differences are small.&lt;/p&gt;
&lt;h3 id=&#34;what-does-this-mean&#34;&gt;What does this mean?&lt;/h3&gt;
&lt;p&gt;Clearly, Gemini 3 Pro Image Preview outperforms the others by a huge margin. Winner in 10 categories, with a 97% average. The runner up (Gemini 2.5 Flash Image) wins barely nudges it out on the Tuvalu map, and has a 69% average.&lt;/p&gt;
&lt;p&gt;Also, the models are clearly better at &lt;strong&gt;natural images&lt;/strong&gt; (human photo, portrait, landscape) than with &lt;strong&gt;symbolic images&lt;/strong&gt; (cartoon, diagram, scatterplot, document).&lt;/p&gt;
&lt;p&gt;Among the OpenAI models, GPT Image 1.5 is far better than the others, but lags far behind Gemini 3 Pro. The gap is larger for symbolic images - so &lt;strong&gt;definitely prefer the Gemini models to edit diagrams, documents, charts etc.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Also, Gemini 3 Pro Image Preview seems &lt;em&gt;quite&lt;/em&gt; different from Gemini 2.5 Flash (20% correlation)- almost a different model, whereas GPT Image 1.5 seems fairly similar to GPT Image 1 and GPT Image 1 Mini (97% correlation) - like incremental improvements to the same model.&lt;/p&gt;
&lt;!-- Source: https://chatgpt.com/c/6971a446-a108-8322-bba6-bce54360c03e --&gt;
&lt;hr&gt;
&lt;p&gt;You can try out your own images at &lt;a href=&#34;https://nitin399-maker.github.io/imagediffer/&#34;&gt;https://nitin399-maker.github.io/imagediffer/&lt;/a&gt; or run the &lt;a href=&#34;https://github.com/Nitin399-maker/imagediffer&#34;&gt;code&lt;/a&gt; yourself.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Gemini Scraper</title>
      <link>https://www.s-anand.net/blog/gemini-scraper/</link>
      <pubDate>Tue, 20 Jan 2026 08:46:10 +0530</pubDate>
      <guid>https://www.s-anand.net/blog/gemini-scraper/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://gemini.google.com/&#34;&gt;Gemini&lt;/a&gt; lets you copy individual responses as Markdown, but not an entire conversation.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s useful if you want to save the chat for later, pass it to another LLM, or publish it.&lt;/p&gt;
&lt;p&gt;So I built a &lt;a href=&#34;https://tools.s-anand.net/geminiscraper/&#34;&gt;bookmarklet&lt;/a&gt; that scrapes the entire conversation as Markdown and copies it to the clipboard.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SETUP&lt;/strong&gt;: Drag the bookmarklet to your bookmarks bar.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-20-gemini-scraper-add-bookmarklet.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;USAGE&lt;/strong&gt;: On a Gemini chat page, click the bookmarklet. It copies the chat as Markdown.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-20-gemini-scraper-use-bookmarklet.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a sample output:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;title: &amp;#34;Trump&amp;#39;s Nobel Prize Snub&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;date: 2026-01-20T10:10:38+05:30
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;source: &amp;#34;https://gemini.google.com/app/6dbb3b934006cd9f&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## User
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Answer in 1 line: What was Trump&amp;#39;s most controversial announcement yesterday?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Gemini
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&#34;ge&#34;&gt;**Thinking:** ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;He stated that his demand to purchase Greenland and the subsequent tariff threats against European allies were driven by his resentment over being snubbed for the Nobel Peace Prize.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## User
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Answer in 1 line: Who else historically have acted so strongly when snubbed?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Gemini
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&#34;ge&#34;&gt;**Thinking:** ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Genghis Khan diverted his armies to annihilate the entire Khwarazmian Empire after its Shah insulted him by beheading his diplomatic envoys.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: When I vibe coded this at first, I got an error that made me think Gemini&amp;rsquo;s &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy&#34;&gt;Content-Security-Policy&lt;/a&gt; prevents executing &lt;code&gt;javascript:&lt;/code&gt; URLs. But on testing, the CSP actually looks like:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Content-Security-Policy: ...; script-src * &amp;#39;unsafe-inline&amp;#39; &amp;#39;unsafe-eval&amp;#39; blob: data:; ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This specifically allows &lt;code&gt;unsafe-inline&lt;/code&gt; scripts, which is what bookmarklets are. So it works fine.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>No response required</title>
      <link>https://www.s-anand.net/blog/no-response-required/</link>
      <pubDate>Fri, 09 Jan 2026 16:00:05 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/no-response-required/</guid>
      <description>&lt;p&gt;I asked Gemini 3 Pro to:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Suggest short words that mean innovation, exploration, research, etc.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Spark:&lt;/strong&gt; A small but significant beginning.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lab:&lt;/strong&gt; Short for laboratory; implies experimentation.&lt;/li&gt;
&lt;li&gt;&amp;hellip; (long and pretty good list)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I went with &amp;#34;Labs&amp;#34;. Thanks. No response required.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;THINKING&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assessing User Response&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve carefully considered the user&amp;rsquo;s latest input, recognizing their selection of &amp;ldquo;Labs&amp;rdquo; and their appreciative, but brief, response. I&amp;rsquo;m focusing on parsing the meaning of &amp;ldquo;No response required&amp;rdquo; to determine if further interaction is needed. The information should help me to understand future similar responses.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Refining Closure Strategy&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m now refining how to handle &amp;ldquo;No response required&amp;rdquo; situations. I was considering standard social protocol, but the user&amp;rsquo;s instructions present a conflict. I must now balance the need for an output against respecting the user&amp;rsquo;s intent to end the interaction. My current thinking leans towards a very brief, polite closing, as remaining completely silent could be misconstrued as an error. However, &amp;ldquo;No response required&amp;rdquo; suggests a user may want to end the chat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prioritizing Minimal Interaction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been meticulously considering how to respect the user&amp;rsquo;s explicit wish for no further response. My initial instinct, drawn from typical AI interaction protocols, conflicts with the &amp;ldquo;No response required&amp;rdquo; instruction. I&amp;rsquo;ve ruled out complete silence, as it might appear as an error. Ultimately, I will attempt a minimal, polite confirmation, acknowledging the choice of &amp;ldquo;Labs&amp;rdquo;. I want the interaction to end respectfully.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adjusting Response Protocol&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m now revising my response. &amp;ldquo;No response required&amp;rdquo; is a very strong constraint I must address. My initial plan involved a brief acknowledgment, but this could be unwelcome. The system&amp;rsquo;s typical turn-forcing conflicts with the user&amp;rsquo;s intent. My current approach involves a minimal, almost invisible, confirmation. I&amp;rsquo;ve re-evaluated my initial plan, recognizing that &amp;ldquo;next step&amp;rdquo; is irrelevant here. I will remove the next step, to respect the instruction and wish the user luck!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You&amp;rsquo;re welcome. &amp;ldquo;Labs&amp;rdquo; is a classic, strong choice—clear and professional.&lt;/p&gt;
&lt;p&gt;Best of luck with the project!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://tenor.com/view/vadivelu-memes-vadivelu-gif-vadivelu-vadivelu-comedy-brain-gif-16642102765108793511&#34;&gt;&lt;img alt=&#34;Vadivelu says &amp;ldquo;என்ன ஒரு புத்திசாலித்தனம்&amp;rdquo;&#34; loading=&#34;lazy&#34; src=&#34;https://media1.tenor.com/m/5vSgSo3bEKcAAAAd/vadivelu-memes-vadivelu-gif.gif&#34;&gt;&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Scrabble image generation</title>
      <link>https://www.s-anand.net/blog/scrabble-image-generation/</link>
      <pubDate>Tue, 06 Jan 2026 22:12:34 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/scrabble-image-generation/</guid>
      <description>&lt;p&gt;AI image generation still has a &lt;em&gt;long&lt;/em&gt; way to go. Here are two images generated by Gemini and ChatGPT from the same prompt: &amp;ldquo;Create a funny scrabble board of dysfunctional family relationships!&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;gemini&#34;&gt;Gemini &lt;!-- https://gemini.google.com/u/2/app/c21208572328a890 --&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-06-scrabble-dysfunctional-family-gemini.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s probably showing off, with coffee stains, and spelling &amp;ldquo;DYSFUNCTIONAL&amp;rdquo; right. But &amp;ldquo;ABLOMY&amp;rdquo;? &amp;ldquo;PASSIAVE&amp;rdquo;? &amp;ldquo;RGUCT_SVA&amp;rdquo;? &amp;ldquo;SORDSP&amp;rdquo;? Most of the vertical letters are wrong. Some horizontals (&amp;ldquo;DTENSION&amp;rdquo;?) are off, too.&lt;/p&gt;
&lt;p&gt;Also: &amp;ldquo;Z&amp;rdquo; has 2 points? &amp;ldquo;C&amp;rdquo; has &amp;ldquo;C&amp;rdquo; points? &amp;ldquo;DOUBLE STTER SCORE&amp;rdquo;? &amp;ldquo;UUT SCORE SCORE&amp;rdquo; instead of &amp;ldquo;TRIPLE WORD SCORE&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;But one thing is clear, the number of times &amp;ldquo;DOUBLE STTER SCORE&amp;rdquo; appears indicates that it does some mental copy-pasting!&lt;/p&gt;
&lt;h3 id=&#34;chatgpt&#34;&gt;ChatGPT &lt;!-- https://chatgpt.com/c/695d16e3-2894-8322-b694-22c24c0af6c3 --&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-01-06-scrabble-dysfunctional-family-chatgpt.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;This is almost as bad. &amp;ldquo;FAKEHUY&amp;rdquo;? &amp;ldquo;MREGSUUEAHL&amp;rdquo;? The verticals are worse than the horizontals, but some horizontals are off, too. &amp;ldquo;DISAPPOINTI&amp;rdquo;? &amp;ldquo;THERPY&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;&amp;ldquo;INLAWS&amp;rdquo; are hanging outside the board. The &amp;ldquo;TRIPLE WORD&amp;rdquo; at the bottom right and bottom left are not at the corners, and are missing a &amp;ldquo;SCORE&amp;rdquo;. More importantly, some of the letters aren&amp;rsquo;t printed right.&lt;/p&gt;
&lt;p&gt;Overall, slightly fewer errors, but slightly poorer style, too.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_ai-image-generation-still-has-a-%F0%9D%98%AD%F0%9D%98%B0%F0%9D%98%AF%F0%9D%98%A8-activity-7414972466193850369-vPl2&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/can-ai-hear-what-we-feel/</link>
      <pubDate>Thu, 25 Dec 2025 02:54:41 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/can-ai-hear-what-we-feel/</guid>
      <description>&lt;p&gt;Gemini can pass the bar exam and solve maths olympiad puzzles. But it&amp;rsquo;s music-deaf.&lt;/p&gt;
&lt;p&gt;nitin kumar asked Gemini to rate 40 songs on joy, sadness, tension, nostalgia, etc. and compared it with human ratings. There was &lt;strong&gt;ZERO&lt;/strong&gt; correlation between the two. It&amp;rsquo;s like it&amp;rsquo;s a different species.&lt;/p&gt;
&lt;p&gt;In fact, if you just predict the average emotion for every single song, you&amp;rsquo;d still do 1.2× to 2× better than Gemini! It wasn&amp;rsquo;t adding noise to a signal. It was subtracting &lt;strong&gt;subtracting signal from noise&lt;/strong&gt;! In fact, for one song, the correlation was -88%, i.e. it predicted the exact opposite emotions.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not just noisy, it&amp;rsquo;s biased as well. It hears music as happier, more tender, more powerful than we do. It massively over-predicts &amp;ldquo;joyful activation&amp;rdquo; (53% of songs!) and dramatically under-estimates tension.&lt;/p&gt;
&lt;p&gt;The emotion predictions are suspiciously correlated with each other. Power and joy are basically identical (96% correlation).&lt;/p&gt;
&lt;p&gt;This confirms a suspicion I had: Gemini can&amp;rsquo;t actually hear the audio. It can transcribe, but beyond that it&amp;rsquo;s just guessing.&lt;/p&gt;
&lt;p&gt;Human music taggers are safe, for now.&lt;/p&gt;
&lt;p&gt;Story, prompts &amp;amp; analysis: &lt;a href=&#34;https://sanand0.github.io/datastories/llm-music/&#34;&gt;https://sanand0.github.io/datastories/llm-music/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2025-12-25-can-ai-hear-what-we-feel-linkedin.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_gemini-can-pass-the-bar-exam-and-solve-maths-activity-7409634892520546305-NdNi&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/ai-beats-me-at-dataviz/</link>
      <pubDate>Tue, 23 Dec 2025 05:36:05 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/ai-beats-me-at-dataviz/</guid>
      <description>&lt;p&gt;I &lt;em&gt;used to be&lt;/em&gt; a data visualization expert. I&amp;rsquo;m not sure I still am.&lt;/p&gt;
&lt;p&gt;When Anthropic published an article about how AI is transforming their engineers&amp;rsquo; work, I ran this prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Suggest how the following engineer productivity patterns can be illustrated using interactive animated charts, graphs, or infographics.&lt;/p&gt;
&lt;p&gt;Be diverse. Xenographics are welcome. Novel animation* / *interaction styles, artistry, xenographics, and diverse chart types are encouraged.&lt;/p&gt;
&lt;p&gt;Be intuitive. A single glance should tell them exactly what insight we are trying to convey.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Its suggestions were better than mine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Gemini 3 Pro was the best, followed by Claude (Opus/Sonnet 4.5) and then ChatGPT (GPT 5.2). They came up with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;em&gt;Throughput Flow&lt;/em&gt; showing commits as particles, going from a trickle to a stream&lt;/li&gt;
&lt;li&gt;a &lt;em&gt;Knowledge Neural Net&lt;/em&gt; where an engineer&amp;rsquo;s mental model transforms from isolated clusters into a dense mesh&lt;/li&gt;
&lt;li&gt;a &lt;em&gt;Dark Matter Radar&lt;/em&gt; detecting invisible tasks, a &lt;em&gt;Feedback Pulse&lt;/em&gt;, a polyomino task stacking&lt;/li&gt;
&lt;li&gt;&amp;hellip; and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have ~20 years of professional data visualization experience. I teach it. And these AIs just casually suggested more creative visualization ideas in 10-30 minutes than I probably would have come up with in a day.&lt;/p&gt;
&lt;p&gt;This cost less than $2. The new per-day-rate for my expertise, I guess.&lt;/p&gt;
&lt;p&gt;Luckily: &lt;strong&gt;my expertise has two parts&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Part 1: &lt;strong&gt;Ideating innovative visualizations&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Part 2: &lt;strong&gt;Selecting the right one for the job&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;AI&lt;/strong&gt;&amp;rsquo;&lt;strong&gt;s better at ideation&lt;/strong&gt;. It&amp;rsquo;s &lt;strong&gt;fast&lt;/strong&gt; and can generate creative ideas faster than I can sketch on a whiteboard. It &lt;strong&gt;knows&lt;/strong&gt; xenographics and every visualization ever made and can &lt;strong&gt;recombine&lt;/strong&gt; them in novel ways.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I&lt;/strong&gt;&amp;rsquo;&lt;strong&gt;m better at selection&lt;/strong&gt;. For now. Knowing which visualization requires knowing the audience, context, and intent. &lt;strong&gt;It requires taste&lt;/strong&gt; (accumulated wisdom from showing the wrong chart to the wrong audience enough times).&lt;/p&gt;
&lt;p&gt;But still, since AI can ideate, anyone can create innovative visualizations. No 20-years of experience, reading Edward Tufte&amp;rsquo;s books, or comparing a violin plot and a beeswarm. Just tell the story and AI will suggest ten creative ways to tell it. Take your pick.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m no longer a bottleneck.&lt;/p&gt;
&lt;p&gt;Naveen Gattu - you asked me to clone myself. 10 years later, here&amp;rsquo;re the recipe: &lt;a href=&#34;https://sanand0.github.io/datastories/anthropic-work/&#34;&gt;https://sanand0.github.io/datastories/anthropic-work/&lt;/a&gt;&lt;/p&gt;
&lt;video controls=&#34;&#34; width=&#34;1173&#34; height=&#34;815&#34; style=&#34;max-width: 100%; height: auto;&#34; autoplay=&#34;&#34; loop=&#34;&#34;&gt;
  &lt;source src=&#34;https://sanand0.github.io/datastories/anthropic-work/screenshot.webm&#34; type=&#34;video/webm&#34;&gt;&lt;a href=&#34;https://sanand0.github.io/datastories/anthropic-work/screenshot.webm&#34;&gt;Video&lt;/a&gt;
&lt;/video&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_i-%F0%9D%98%B6%F0%9D%98%B4%F0%9D%98%A6%F0%9D%98%A5-%F0%9D%98%B5%F0%9D%98%B0-%F0%9D%98%A3%F0%9D%98%A6-a-data-visualization-activity-7406883661054251009-ndC0&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Things I Learned - 21 Dec 2025</title>
      <link>https://www.s-anand.net/blog/things-i-learned-21-dec-2025/</link>
      <pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-21-dec-2025/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;uvx --python 3.10 --with torchcodec demucs --two-stems=vocals -n htdemucs &amp;quot;song.mp3&amp;quot;&lt;/code&gt; separates vocals from music.&lt;/li&gt;
&lt;li&gt;iTunes offers a 30 second preview for almost any song. If you&amp;rsquo;re looking for 30s song clips to analyze, this is a good bet. For example: &lt;code&gt;curl -s &amp;quot;https://itunes.apple.com/search?entity=song&amp;amp;limit=1&amp;amp;term=why+this+kolaveri&amp;quot; | jq -r &#39;.results[0].previewUrl&#39;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To generate a spectrogram from an audio file, use &lt;code&gt;ffmpeg -i song.mp3 -lavfi showspectrum=color=magma:slide=1 spectrogram.mp4&lt;/code&gt;. To generate a waveform, use &lt;code&gt;ffmpeg -i song.mp3 -filter_complex &amp;quot;[0:a]showwaves=s=1280x240:mode=cline:colors=white[v]&amp;quot; -map &amp;quot;[v]&amp;quot; -map 0:a -c:v libx264 -crf 30 -pix_fmt yuv420p waveform.mp4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I updated the TTS (text-to-speech) costs across Gemini and OpenAI at &lt;a href=&#34;https://github.com/sanand0/openai-tts-cost&#34;&gt;https://github.com/sanand0/openai-tts-cost&lt;/a&gt;. My current favorite (value for money) is Gemini 2.5 Flash Preview TTS. Good emotions, low price, and a single request can deliver a multi-voice podcast. Speed: ~25 seconds per minute of audio generated.&lt;/li&gt;
&lt;li&gt;Self-driving car mishaps. The exceptions that prove the rule (that autonomous vehicles are safer than human drivers). &lt;a href=&#34;https://gemini.google.com/u/2/app/195e3d3fa74368fd&#34;&gt;#&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Waymo &amp;amp; The Gun Shootout:&lt;/strong&gt; A driverless Waymo taxi in Los Angeles drove straight through an active police standoff, passing mere feet from a suspect being held at gunpoint while officers shouted at the car to stop. &lt;a href=&#34;https://www.tmz.com/2025/12/01/waymo-police-standoff/&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tesla &amp;amp; The Horse Carriage:&lt;/strong&gt; It was a horse-drawn carriage in Switzerland. The Tesla’s computer became &amp;ldquo;bamboozled,&amp;rdquo; rapidly misidentifying the cart as a truck, then a car, then a pedestrian, because it had likely never been trained on animal-drawn vehicles. &lt;a href=&#34;https://autofile.co.nz/horse-drawn-carriage-confuses-tesla-&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &amp;ldquo;Wet Cement&amp;rdquo; Trap:&lt;/strong&gt; A Cruise robotaxi in San Francisco drove directly into a patch of freshly poured wet concrete at a construction site and got hopelessly stuck, requiring workers to pull it out. &lt;a href=&#34;https://www.google.com/search?q=https://www.sfgate.com/tech/article/cruise-stuck-wet-concrete-san-francisco-18297946.php&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Moon is a Traffic Light:&lt;/strong&gt; A Tesla driver discovered that his car kept slamming on the brakes on the highway because the autopilot camera was confusing the bright yellow moon for a yellow traffic light. &lt;a href=&#34;https://futurism.com/the-byte/tesla-autopilot-mistakes-moon-traffic-light&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The 4 AM Honking Ritual:&lt;/strong&gt; Residents in a San Francisco neighborhood were kept awake for weeks because a fleet of Waymo taxis gathered in a parking lot every night and started honking at each other while trying to park. &lt;a href=&#34;https://www.google.com/search?q=https://www.theverge.com/2024/8/12/24219080/waymo-san-francisco-parking-lot-honking&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stopping for Whoppers:&lt;/strong&gt; Tesla owners reported their cars were reading &amp;ldquo;Burger King&amp;rdquo; signs on the side of the road as &amp;ldquo;Stop&amp;rdquo; signs and abruptly braking, a glitch the fast-food chain quickly turned into a marketing campaign. &lt;a href=&#34;https://www.google.com/search?q=https://www.foxnews.com/auto/burger-king-tesla-autopilot-stop-signs&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Robotaxi &amp;ldquo;Mating Ritual&amp;rdquo;:&lt;/strong&gt; A group of about 20 Cruise robotaxis lost connection to their servers simultaneously and simply stopped in the middle of a busy San Francisco street, creating a massive traffic jam that humans had to manually clear. &lt;a href=&#34;https://www.google.com/search?q=https://www.wired.com/story/cruise-robotaxi-self-driving-cars-san-francisco-traffic-stall/&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trapped by Cones:&lt;/strong&gt; A Waymo taxi in Arizona was defeated by a set of construction cones, fleeing from them into oncoming traffic lanes and eventually getting stuck, forcing the passenger to flee the &amp;ldquo;confused&amp;rdquo; vehicle. &lt;a href=&#34;https://www.google.com/search?q=https://www.theverge.com/2021/5/14/22436272/waymo-driverless-van-stuck-blocked-road-arizona&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Defeated by a T-Shirt:&lt;/strong&gt; A distinct vulnerability was found where self-driving cars could be tricked into slamming on the brakes simply by a pedestrian wearing a T-shirt with a &amp;ldquo;Stop&amp;rdquo; sign printed on it. &lt;a href=&#34;https://www.google.com/search?q=https://arstechnica.com/cars/2023/02/t-shirt-with-stop-sign-print-fools-self-driving-cars/&#34;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Roblox is the #1 game. Sadly, there&amp;rsquo;s no official Linux support. &lt;a href=&#34;https://blog.cloudflare.com/radar-2025-year-in-review-internet-services/&#34;&gt;CloudFlare 2025 Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;⭐ &lt;a href=&#34;https://astral.sh/blog/ty&#34;&gt;Ty&lt;/a&gt;, Astral&amp;rsquo;s type checker, is &lt;em&gt;fantastic&lt;/em&gt;! It shows the type of every variable inline. A great incentive to explicitly type stuff in Python. Lots more to explore. I switched from Pylance to the &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=astral-sh.ty&#34;&gt;ty VS Code extension&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/raineorshine/npm-check-updates&#34;&gt;&lt;code&gt;npx -y npm-check-updates&lt;/code&gt;&lt;/a&gt; tells you the latest versions of your &lt;code&gt;package.json&lt;/code&gt; dependencies, including major version updates.&lt;/li&gt;
&lt;li&gt;How to think differently. &lt;a href=&#34;https://gemini.google.com/u/2/app/b3f00b87146cecc3&#34;&gt;#&lt;/a&gt; &lt;a href=&#34;https://chatgpt.com/c/6940eb78-ae2c-8320-9e4e-ebab68d3b2e2&#34;&gt;#&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Introspect:&lt;/strong&gt; List assumptions &amp;amp; taboos. Write a falsifier. Beginner&amp;rsquo;s mindset&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mental models:&lt;/strong&gt; First principles, inversion, base rates, lateral thinking, multiple options, &amp;ldquo;what would have to be true&amp;rdquo;, &amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Empathy:&lt;/strong&gt; Debate FOR opposition. Swap roles (competitor, auditor, 12-year old, future-you, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment:&lt;/strong&gt; Different context (place, media, people&amp;hellip;). New constraints (time, budget, time horizon, &amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m surprised that Edge&amp;rsquo;s &lt;a href=&#34;https://www.microsoft.com/en-us/edge/features/read-aloud&#34;&gt;Read Aloud&lt;/a&gt; sounds more natural than &lt;a href=&#34;https://elevenreader.io/&#34;&gt;EleventReader&lt;/a&gt;. Read Aloud is one of the main reasons I&amp;rsquo;m using Edge, but I hadn&amp;rsquo;t realized it was that good.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lilianweng.github.io/posts/2025-05-01-thinking/&#34;&gt;Why We Think&lt;/a&gt; has interesting insights on scaling from feedback: &lt;a href=&#34;https://claude.ai/chat/5dbf8fe0-081a-4d4a-926d-b4d74846ec85&#34;&gt;#&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Summary: &lt;strong&gt;Give models a feedback environment unbiased by their reasoning.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;There are basically two approaches: parallel and sequential.&lt;/li&gt;
&lt;li&gt;Parallel is simpler. Generate a bunch of different solutions and pick the best one. Like having multiple people solve the same problem independently, then going with whoever got the right answer.&lt;/li&gt;
&lt;li&gt;Sequential is trickier. You generate a solution, then ask the model to critique it and try again. This sounds good in theory but is surprisingly hard to get right.&lt;/li&gt;
&lt;li&gt;The problem is models aren&amp;rsquo;t naturally good at self-correction. Left to their own devices, they&amp;rsquo;ll often make things worse. They&amp;rsquo;ll change correct answers to incorrect ones. Or they&amp;rsquo;ll just superficially reword their first answer without fixing anything.&lt;/li&gt;
&lt;li&gt;To make self-correction work, you need external feedback. A unit test that fails. A ground truth to compare against. Something outside the model&amp;rsquo;s own judgment.&lt;/li&gt;
&lt;li&gt;When you get it right though, sequential revision can be powerful. You&amp;rsquo;re not just sampling from the model&amp;rsquo;s distribution anymore. You&amp;rsquo;re searching through it, iterating toward better answers.&lt;/li&gt;
&lt;li&gt;But there&amp;rsquo;s a trap. If you start optimizing directly on the reasoning traces—rewarding &amp;ldquo;good reasoning&amp;rdquo; as a goal in itself—the model learns to game it. It&amp;rsquo;ll hide its real thought process and show you what you want to see.&lt;/li&gt;
&lt;li&gt;This is why the DeepSeek team gave up on process reward models. They tried rewarding intermediate reasoning steps, but it led to reward hacking. The model would generate reasoning that looked good to the reward model while doing something completely different.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://arxiv.org/abs/2510.26396&#34;&gt;A Pragmatic View of AI Personhood&lt;/a&gt; was rewritten in Tim Urban&amp;rsquo;s style, para-by-para, by &lt;a href=&#34;https://chatgpt.com/share/693aa6ff-b2f4-800c-8f44-b061419cd6ff&#34;&gt;ChatGPT&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;AI having feelings is irrelevant. Does a design increase conflict, manipulation, or suffering among humans? If so, regulate that - limit certain kinds of anthropomorphic design, tie &amp;ldquo;rights&amp;rdquo; for AIs to strict anti-manipulation constraints, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI can act after owners vanish&lt;/strong&gt;. Pragmatically, you sometimes need to bite the bullet and say: &amp;ldquo;Okay, this thing itself is going to be treated as a legal person in these specific ways, so we can actually regulate and sanction it.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Corporations are &amp;ldquo;slow AIs&amp;rdquo; already — optimizing for growth without ethics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slaves had a fund&lt;/strong&gt;. If the slave caused harm, the owner&amp;rsquo;s liability could be capped at that fund. Modern equivalent for AI: Agents must maintain locked capital or insurance. Victims are compensated from that pool. If the pool runs out; they lose their license to operate. This gives sanctions teeth: the AI (or its backers) actually have something to lose.&lt;/li&gt;
&lt;li&gt;Require AIs to register before they can do economically important things. No title &amp;gt; no access to key platforms, payment rails, or official functions.&lt;/li&gt;
&lt;li&gt;Expanding personhood to non-humans sounds nice - more compassion, more care, more inclusion. But authenticity becomes a new asset. Humans and AIs will both want authenticity tokens. Poor will sell biometric credentials to rich, creating an authenticity social class. Your dignity as a person gets replaced by your usefulness as a key. Make it illegal and practically very hard to sell / rent out your humanity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;ldquo;When people now talk about error, they tend to think of bias as an explanation. One of the major limitations on human performance is not bias, it is just noise. In fact, most of the errors that people make are better viewed as random noise, and there is an awful lot of it. Even when the algorithm does not do very well, humans do so poorly and are so noisy that, just by removing the noise, you can do better than people. We are narrow thinkers, we are noisy thinkers, and it is very easy to improve upon us. I do not think that there is very much that we can do that computer will not eventually be programmed to do.&amp;rdquo; &lt;a href=&#34;https://www.nber.org/system/files/chapters/c14016/c14016.pdf&#34;&gt;Kahnemann&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notes from &lt;a href=&#34;https://www.soundformovement.com/chatgpt-pro-as-first-hire&#34;&gt;One Year With ChatGPT Pro as a First Hire&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Each day I start a new Pro chat that will run for that entire day&lt;/strong&gt;. I treat it as a colleague. I speak or type in whatever I am thinking about, including business problems, creative questions, experiments that worked or failed and feelings about particular decisions. I wear noise canceling earbuds and often run piano technique while the model is thinking. I listen to its response using the native “Read Aloud” feature, again while practicing, and stop to make notes in a physical notebook to collect inspiration. At the end of the day I ask that Pro model to summarize everything from that chat along with the notes I give it from my notebook, and &lt;strong&gt;that summary becomes our first prompt of the next day&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Standard Voice Mode (SVM) can do things that Advanced Voice Mode (AVM) cannot and vice versa.SVM feels like it wants to talk forever, while AVM feels like it wants to get off the phone.&lt;/li&gt;
&lt;li&gt;Projects became the container for my daily Pro chats. I pull chats, notes and other files into project folders so I can reference them as static context.&lt;/li&gt;
&lt;li&gt;My scheduled tasks collection today consists of weekly lessons in math, ML and DL, design, market analysis and regular assessments of the UI and UX and copy on my company’s website.&lt;/li&gt;
&lt;li&gt;I let memory accumulate, then once a week I pruned it manually, removing entries that were no longer useful so that new memories could form.&lt;/li&gt;
&lt;li&gt;Connecting the ChatGPT macOS app to my terminal, using the Working with Apps feature, lets the Pro models essentially collaborate with Codex. Practicing collaborative context between these high end models fractals outward into a myriad of productive paths. I highly recommend exploring with 5.1 Pro connected to 5.1-Codex-Max (Very High) in a terminal. Tell Codex-5.1 that you have a buddy working with you today that can offer suggestions and review the work it does as we go. Then tell 5.1 Pro that you have a buddy that is working with you today and can apply any of the code changes we decide on. This is another form of “context priming” where I “set the scene” before jumping in.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Coding agents only need a bash tool. The rest is buildable. The only addition might be a fuzzy search / replace tool. &lt;a href=&#34;https://mariozechner.at/posts/2025-11-30-pi-coding-agent/&#34;&gt;What I learned building an opinionated and minimal coding agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sources of model data: &lt;a href=&#34;https://models.dev/&#34;&gt;https://models.dev/&lt;/a&gt;, &lt;a href=&#34;https://openrouter.ai/&#34;&gt;https://openrouter.ai/&lt;/a&gt;, llm-pricing&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/greatest-batsman-over-time/</link>
      <pubDate>Tue, 09 Dec 2025 05:36:05 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/greatest-batsman-over-time/</guid>
      <description>&lt;p&gt;When my father mentioned that Virat Kohli scored a century (again) against South Africa, I wondered how he compared to the likes of Tendulkar and Gavaskar.&lt;/p&gt;
&lt;p&gt;I asked ChatGPT:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you had to evaluate the quality of Indian batsmen over time&lt;/em&gt;, &lt;em&gt;what single metric&lt;/em&gt; (&lt;em&gt;possibly composite&lt;/em&gt;) &lt;em&gt;would you use&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Evaluate the top Indian batsmen in history on this metric&lt;/em&gt;. &lt;em&gt;Plot them over their active years&lt;/em&gt; (&lt;em&gt;X&lt;/em&gt;-&lt;em&gt;axis&lt;/em&gt;) &lt;em&gt;along with the metric&lt;/em&gt; (&lt;em&gt;Y&lt;/em&gt;-&lt;em&gt;axis&lt;/em&gt;), &lt;em&gt;labelled with the player names&lt;/em&gt;, &lt;em&gt;on a beautiful visualization&lt;/em&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;It picked a simple metric: Batting Average * log(Total Runs).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Claude and Gemini, too, preferred simple metrics that favored the batting average or total runs. Strike rate, relative to era, win rate impact, etc. were all excluded.&lt;/p&gt;
&lt;p&gt;(Sadly, any metric that misses Kapil Dev feels a bit&amp;hellip; incomplete.)&lt;/p&gt;
&lt;p&gt;Data story: &lt;a href=&#34;https://sanand0.github.io/datastories/indian-batting-greats/&#34;&gt;https://sanand0.github.io/datastories/indian-batting-greats/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2025-12-08-greatest-batsman-over-time-linkedin.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_when-my-father-mentioned-that-virat-kohli-activity-7402679838437744640--oUa&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
