<?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>transcription on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/transcription/</link>
    <description>Recent content in transcription on S Anand</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 01 Jul 2026 17:43:49 +0800</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/transcription/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Beating AI detectors by reading aloud</title>
      <link>https://www.s-anand.net/blog/beating-ai-detectors-by-reading-aloud/</link>
      <pubDate>Wed, 01 Jul 2026 17:43:49 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/beating-ai-detectors-by-reading-aloud/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-07-01-beating-ai-detectors-by-reading-aloud.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://in.linkedin.com/in/ranjeetaborah&#34;&gt;Ranjeeta&lt;/a&gt; asked me for an article for &lt;a href=&#34;https://builtin.com/&#34;&gt;Built In&lt;/a&gt;. I went straight to ChatGPT and said:&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;Write an article for Built In.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Read the section below for context on Built In&amp;#39;s audience, style, and content preferences.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Read the pitch that explains what the article should be about.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Then use my blog posts, talk content, transcripts, TIL, etc.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Write an article using my writing style.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip; and gave it all related information.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/notes/no-juniors-no-experts-chatgpt/&#34;&gt;Here is ChatGPT&amp;rsquo;s article&lt;/a&gt;. The article itself was pretty good, content-wise, but it wasn&amp;rsquo;t &lt;em&gt;exactly&lt;/em&gt; in my style and I iterated once. Still&amp;hellip; not exactly there.&lt;/p&gt;
&lt;!-- https://chatgpt.com/c/6a44cce0-7880-83ec-b611-9fe0086d704a --&gt;
&lt;hr&gt;
&lt;p&gt;One of the criteria is that &amp;ldquo;Final drafts must score ‘human-written’ or less than 20% on &lt;a href=&#34;https://www.zerogpt.com/&#34;&gt;ZeroGPT&lt;/a&gt; and &lt;a href=&#34;https://www.pangram.com/&#34;&gt;Pangram&lt;/a&gt;.&amp;rdquo; ZeroGPT is easy to fool but Pangram is harder. Pangram said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI Generated&lt;/strong&gt;. 100% of this text is AI Generated&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;No Juniors, No Experts? Ankor runs a &amp;hellip;&amp;rdquo; (384 words) - We believe the segment is fully AI generated. Confidence: High.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;In March 2026, I pointed a coding &amp;hellip;&amp;rdquo; (383 words) - We believe the segment is fully AI generated. Confidence: High.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Make it generate rare failures. Make it &amp;hellip;&amp;rdquo; (196 words) - We believe the segment is fully AI generated. Confidence: High.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Also: &amp;ldquo;AI-Generated indicates text produced by an AI system with minimal human input or revision.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Sigh&amp;hellip; Just to cross-check, I pasted a &lt;a href=&#34;https://www.s-anand.net/blog/picking-gifts-is-hard/&#34;&gt;2021 blog post&lt;/a&gt; and Pangram said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Human Written&lt;/strong&gt;. 100% of this text is Human Written.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Picking gifts is hard. Gift-giving feels &amp;hellip;&amp;rdquo; (331 words) - The segment is fully human-written. Confidence: Low.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, maybe Pangram &lt;em&gt;does&lt;/em&gt; do a good job of detecting AI-generated text. It managed to by-pass my &lt;a href=&#34;https://github.com/sanand0/scripts/blob/2db79dc8bf99d19e4b7822e277c83f80bb22c18b/agents/anand-writing-style/SKILL.md&#34;&gt;carefully crafted writing style&lt;/a&gt; which includes several LLM smell avoidance techniques.&lt;/p&gt;
&lt;p&gt;Next attempt: I checked if Claude&amp;rsquo;s new &lt;a href=&#34;https://www.anthropic.com/news/claude-sonnet-5&#34;&gt;Sonnet 5&lt;/a&gt; could do a better job.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/notes/no-juniors-no-experts-claude/&#34;&gt;Here is Claude&amp;rsquo;s article&lt;/a&gt;. Though the content was, again, spot-on, the style had &lt;em&gt;clear&lt;/em&gt; LLM smells despite all my instructions.&lt;/p&gt;
&lt;!-- https://claude.ai/chat/44eeb55d-33ca-4cb5-9c3b-3526fdfe2f07 --&gt;
&lt;p&gt;Pangram said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI Generated&lt;/strong&gt;. 100% of this text is AI Generated&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;No Juniors, No Experts? AI is cutting &amp;hellip;&amp;rdquo; (359 words) - We believe the segment is fully AI generated. Confidence: High.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;He&amp;rsquo;s three times faster than someone &amp;hellip;&amp;rdquo; (132 words) - We believe the segment is fully AI generated. Confidence: High.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;At this point, inspiration struck. (Actually, not quite. I had this idea for a few days, maybe weeks, ago&amp;hellip; but the opportunity struck.)&lt;/p&gt;
&lt;p&gt;I opened the Claude article on the left, ChatGPT on the right (just to transcribe, nothing else - ChatGPT has the best transcription right now), and &lt;em&gt;read out&lt;/em&gt; the article. Not word-for-word, but in my style. For example:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Claude said &amp;hellip;&lt;/th&gt;
          &lt;th&gt;I read it out as &amp;hellip;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;AI is cutting the entry-level jobs that used to train tomorrow&amp;rsquo;s architects.&lt;/td&gt;
          &lt;td&gt;These days, AI is reducing the number of entry-level jobs that we have.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI makes senior architects more productive and cuts the need for junior engineers.&lt;/td&gt;
          &lt;td&gt;He said, AI makes senior architects more productive and reduces the need for junior engineers.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;The data backs his worry.&lt;/td&gt;
          &lt;td&gt;The data supports his concern.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A free phone app now beats any grandmaster.&lt;/td&gt;
          &lt;td&gt;Any free phone application today can beat every grandmaster.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;A broken deployment, a weak first draft: you catch it and move on.&lt;/td&gt;
          &lt;td&gt;Broken deployments and prototypes and quick POCs aren&amp;rsquo;t so important that you can&amp;rsquo;t live with them.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The beauty of this is that it I was able to read it out &lt;em&gt;almost live&lt;/em&gt;. Just read a sentence and narrate it like I&amp;rsquo;m talking to an audience. I&amp;rsquo;m used to doing this.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/notes/no-juniors-no-experts-anand/&#34;&gt;Here is the version I read out&lt;/a&gt;. Pangram said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Human Written&lt;/strong&gt;. 100% of this text is Human Written.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;No Juniors, No Experts? These days&amp;hellip;&amp;rdquo; (381 words) - The segment is fully human-written. Confidence: High.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;The beauty of it is that it has &lt;strong&gt;High&lt;/strong&gt; confidence - even more so than my &lt;a href=&#34;https://www.s-anand.net/blog/picking-gifts-is-hard/&#34;&gt;earlier blog post&lt;/a&gt; which was &lt;em&gt;truly&lt;/em&gt; human written.&lt;/p&gt;
&lt;p&gt;Still, good to know that there&amp;rsquo;s an efficient way to use AI that doesn&amp;rsquo;t smell like AI.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>IIM Alumni AI Workflows Workshop</title>
      <link>https://www.s-anand.net/blog/iim-alumni-ai-workflows-workshop/</link>
      <pubDate>Sun, 21 Jun 2026 13:01:47 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/iim-alumni-ai-workflows-workshop/</guid>
      <description>&lt;p&gt;The theme of yesterday&amp;rsquo;s workshop for the IIM Alumni at Singapore was &lt;strong&gt;Tools and Workflows&lt;/strong&gt; was:&lt;/p&gt;
&lt;p&gt;Agents are getting smarter, so they know what to do.&lt;br&gt;
Tools agents can use are growing and are more powerful.&lt;br&gt;
This combinatorial explosion creates explosive possibilites.&lt;/p&gt;
&lt;p&gt;This workshop covered the following six workflows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Leverage transcripts.&lt;/strong&gt; Use &lt;a href=&#34;https://aistudio.google.com/prompts/new%5Fchat&#34;&gt;Google AI Studio&lt;/a&gt; to transcribe non-sensitive recordings with a reusable &lt;a href=&#34;https://github.com/sanand0/blog/blob/9763887917a006c8aa76b4fc60ed2202548bab6f/pages/prompts/transcribe-talk.md&#34;&gt;&amp;ldquo;don&amp;rsquo;t miss anything&amp;rdquo;&lt;/a&gt; prompt. AI Studio&amp;rsquo;s record button is a ready-to-use transcriber.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplify dense text&lt;/strong&gt; as a &lt;a href=&#34;https://www.s-anand.net/blog/creating-comic-explainers/&#34;&gt;comic&lt;/a&gt;, an &lt;a href=&#34;https://notebooklm.google.com/&#34;&gt;infographic&lt;/a&gt;, a &lt;a href=&#34;https://sanand0.github.io/talks/2026-05-23-ai-unboxed-context-engineering/&#34;&gt;story&lt;/a&gt;. Image generation is now a tool call an agent runs for you. Then &lt;a href=&#34;https://squoosh.app/&#34;&gt;compress it as AVIF on Squoosh&lt;/a&gt; before you email it to a thousand people.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify - cheaply.&lt;/strong&gt; Paste one suffix: &lt;em&gt;&amp;ldquo;Break this into key claims, mark certainty, flag the five highest-risk ones, and tell me how to verify or falsify each.&amp;rdquo;&lt;/em&gt; Convert to a &lt;a href=&#34;https://skill.md/&#34;&gt;skill&lt;/a&gt; to automate. Cross-checking with multiple models took &lt;a href=&#34;https://sanand0.github.io/llmevals/double-checking/&#34;&gt;error from 14% to 0.7%&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skills are assets.&lt;/strong&gt; A &lt;a href=&#34;https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills&#34;&gt;skill&lt;/a&gt; tells the agent &amp;ldquo;here&amp;rsquo;s how &lt;em&gt;I&lt;/em&gt; do stuff.&amp;rdquo; Build them slowly, edit them weekly, and they compound for years. No skills support in your tool? Keep them as copy-pasteable prompts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Brainstorm by forcing range.&lt;/strong&gt; &lt;a href=&#34;https://github.com/sanand0/scripts/blob/d9fde4f5f169c1d465603e0cd6095db3fcdabad3/agents/ideation-protocol/SKILL.md&#34;&gt;Ban the five obvious ideas; borrow from unrelated domains&lt;/a&gt;; smash two random concepts together with the &lt;a href=&#34;https://tools.s-anand.net/ideator/&#34;&gt;Ideator&lt;/a&gt;. Hallucination is a feature when you&amp;rsquo;re being creative.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://help.openai.com/en/articles/10291617-scheduled-tasks-in-chatgpt&#34;&gt;Schedule tasks&lt;/a&gt;.&lt;/strong&gt; Weekly regulatory scans, daily meeting prep, market briefings - and even an &lt;a href=&#34;https://www.s-anand.net/blog/prompts/unreasonable-gesture/&#34;&gt;&amp;ldquo;unreasonable gesture&amp;rdquo;&lt;/a&gt; nudge. As AI hides the tech, human relationships gain value.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&amp;rsquo;s the &lt;a href=&#34;https://youtu.be/H3GmGl1hzxM&#34;&gt;talk video&lt;/a&gt; and &lt;a href=&#34;https://sanand0.github.io/talks/2026-06-20-ai-unboxed-tools-workflows/&#34;&gt;full story + transcript&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://sanand0.github.io/talks/2026-06-20-ai-unboxed-tools-workflows/comic-page.avif&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>MGR via ElevenLabs</title>
      <link>https://www.s-anand.net/blog/mgr-via-elevenlabs/</link>
      <pubDate>Sun, 29 Mar 2026 22:31:33 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/mgr-via-elevenlabs/</guid>
      <description>&lt;p&gt;I was watching &lt;a href=&#34;https://en.wikipedia.org/wiki/Vaa_Vaathiyaar&#34;&gt;Vaa Vaathiyar&lt;/a&gt; which has a short clip of &lt;a href=&#34;https://en.wikipedia.org/wiki/M._G._Ramachandran&#34;&gt;MGR&lt;/a&gt; speaking. It&amp;rsquo;s either AI-generated or mimic-ed and it wasn&amp;rsquo;t bad.&lt;/p&gt;
&lt;p&gt;&lt;audio controls src=&#34;https://files.s-anand.net/images/2026-03-29-mgr-in-film.opus&#34;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I used &lt;code&gt;ffmpeg&lt;/code&gt; to record the audio from the film, transcribed it via &lt;a href=&#34;https://aistudio.google.com/prompts/new_chat?model=gemini-3.1-pro-preview&#34;&gt;Gemini 3 Pro on AI Studio&lt;/a&gt; with the prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Transcribe this into Tamil&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; which gave me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ராமு&amp;hellip;
என்ன செய்திருக்கிறாய் நீ&amp;hellip;
வாத்தியார் கேட்கிறேன் சொல்
நிமிர்ந்து பார்க்க கூட தைரியம் இல்லையா&amp;hellip;
ஓடாதே&amp;hellip; நில்&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Translation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ramu&amp;hellip;
What have you done&amp;hellip;
Vaathiyar (MGR) is asking, tell me
Don&amp;rsquo;t you have the courage to stand up and look at me&amp;hellip;
Don&amp;rsquo;t run&amp;hellip; stop&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(GitHub Copilot&amp;rsquo;s auto-complete translated the above for me as I typed - flawlessly. It&amp;rsquo;s getting better by the day!)&lt;/p&gt;
&lt;p&gt;Then, I used &lt;a href=&#34;https://github.com/yt-dlp/yt-dlp&#34;&gt;yt-dlp&lt;/a&gt; to download the audio from this &lt;a href=&#34;https://www.youtube.com/shorts/1jQqKds2z7g&#34;&gt;MGR Short Clip&lt;/a&gt;.&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/1jQqKds2z7g?si=8GUnT7IvcsQZpwDb&#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;Here&amp;rsquo;s the sample:&lt;/p&gt;
&lt;p&gt;&lt;audio controls src=&#34;https://files.s-anand.net/images/2026-03-29-mgr-sample.opus&#34;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I fed this into ElevenLabs&amp;rsquo; &lt;a href=&#34;https://elevenlabs.io/app/voice-library&#34;&gt;Instant Voice Clone&lt;/a&gt; that needs just 10 seconds of audio and created an &amp;ldquo;MGR&amp;rdquo; voice.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the same dialogue in the cloned voice:&lt;/p&gt;
&lt;p&gt;&lt;audio controls src=&#34;https://files.s-anand.net/images/2026-03-29-mgr-generated.opus&#34;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Personally, I think the ElevenLabs version is &lt;em&gt;slightly&lt;/em&gt; better. Of course, given the pace of AI improvement, this might just be the impact of a new model release.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;2 Apr 2026&lt;/strong&gt;: Here&amp;rsquo;s the non-cloned generation from &lt;a href=&#34;https://dashboard.sarvam.ai/text-to-speech&#34;&gt;Sarvam&amp;rsquo;s text to speech&lt;/a&gt; with Bulbul v3 standard quality. It feels pretty weak.&lt;/p&gt;
&lt;p&gt;&lt;audio controls src=&#34;https://files.s-anand.net/images/2026-03-29-mgr-sarvam.opus&#34;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://aistudio.google.com/u/2/generate-speech?model=gemini-2.5-pro-preview-tts&#34;&gt;Gemini 2.5 Pro Preview TTS&lt;/a&gt; gave me this, which feels &lt;em&gt;much&lt;/em&gt; better.&lt;/p&gt;
&lt;p&gt;&lt;audio controls src=&#34;https://files.s-anand.net/images/2026-03-29-mgr-gemini.opus&#34;&gt;&lt;/audio&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>AI for film dialogues</title>
      <link>https://www.s-anand.net/blog/ai-for-film-dialogues/</link>
      <pubDate>Sun, 01 Mar 2026 19:13:05 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/ai-for-film-dialogues/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-03-01-ai-for-film-dialogues.avif&#34;&gt; &lt;!-- https://gemini.google.com/u/2/app/75cbc8e4441ae701 --&gt;&lt;/p&gt;
&lt;p&gt;I was watching &lt;a href=&#34;https://en.wikipedia.org/wiki/Vasu_(film)&#34;&gt;Vasu&lt;/a&gt; while &lt;a href=&#34;https://www.s-anand.net/blog/analaizing-cloud-costs/&#34;&gt;Codex-ing&lt;/a&gt; and came across this dialogue:&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/ZdYo2ki7RNs?si=KPyJUDGHsliGzfmQ&amp;amp;start=120&#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;Here&amp;rsquo;s the dialogue, recorded via &lt;code&gt;ffmpeg&lt;/code&gt;, transcribed via &lt;a href=&#34;https://aistudio.google.com/&#34;&gt;AI Studio&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;మీ నాన్న మిమ్మల్ని పోలీస్ ఆఫీసర్ అవ్వమని అడిగితే అయ్యారా? మీకు ఇష్టం కాబట్టి అయ్యారు.&lt;br&gt;
సచిన్ టెండూల్కర్ ని ఇంజనీర్ ని చేయాలని వాళ్ళ నాన్న అనుకుని ఉంటే, ఇండియా ఒక గొప్ప క్రికెటర్ ని మిస్ అయ్యేది.&lt;br&gt;
విశ్వనాథ్ ఆనంద్ ని డాక్టర్ ని చేయాలని వాళ్ళ అమ్మ కోరుకుని ఉంటే, ఇండియాకి ఓ గ్రాండ్ మాస్టర్ ఉండేవాడు కాదు.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Translation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Did you become a Police Officer because your father asked you to? You became one because you liked it.&lt;br&gt;
If Sachin Tendulkar&amp;rsquo;s father had thought of making him an engineer, India would have missed out on a great cricketer.&lt;br&gt;
If Viswanathan Anand&amp;rsquo;s mother had wished to make him a doctor, India wouldn&amp;rsquo;t have had a Grandmaster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But here&amp;rsquo;s the thing - &lt;strong&gt;these aren&amp;rsquo;t the best examples&lt;/strong&gt;. A better one would be were a &lt;em&gt;successful&lt;/em&gt; parent allowed their &lt;em&gt;successful&lt;/em&gt; child to pursue their passion.&lt;/p&gt;
&lt;p&gt;So, &lt;a href=&#34;https://gemini.google.com/share/dfb93d3e4b44&#34;&gt;Gemini to the rescue&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;List famous Indians whose children have become famous in very different fields&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;hellip; and here goes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;మీ నాన్న మిమ్మల్ని పోలీస్ ఆఫీసర్ అవ్వమని అడిగితే అయ్యారా? మీకు ఇష్టం కాబట్టి అయ్యారు.&lt;br&gt;
ప్రకాష్ పదుకొనె తన కూతురు దీపికాని బ్యాడ్మింటన్ ప్లేయర్ ని చేయాలని అనుకుని ఉంటే, ఇండియా ఒక గొప్ప నటిని మిస్ అయ్యేది.&lt;br&gt;
ఆర్. మాధవన్ తన కొడుకు వేదాంత్ ని నటుడిని చేయాలని కోరుకుని ఉంటే, ఇండియాకి ఒక ఛాంపియన్ స్విమ్మర్ ఉండేవాడు కాదు.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Translation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Did you become a Police Officer because your father asked you to? You became one because you liked it.&lt;br&gt;
If Prakash Padukone had thought of making his daughter Deepika a badminton player, India would have missed out on a great actress.&lt;br&gt;
If R. Madhavan had wished to make his son Vedaant an actor, India wouldn&amp;rsquo;t have had a champion swimmer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not that dialogue writers aren&amp;rsquo;t using AI, but if you know anyone who needs AI help, let me know. The fact that I can&amp;rsquo;t read a word of Telugu makes no difference! 🙂&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Gemini 3 Flash OCRs Dilbert accurately</title>
      <link>https://www.s-anand.net/blog/gemini-3-flash-ocrs-dilbert-accurately/</link>
      <pubDate>Mon, 02 Feb 2026 18:53:15 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/gemini-3-flash-ocrs-dilbert-accurately/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Scott_Adams&#34;&gt;Scott Adams&lt;/a&gt;, the author of &lt;a href=&#34;https://en.wikipedia.org/wiki/Dilbert&#34;&gt;Dilbert&lt;/a&gt;, passed away last month. While his work will live on, I was curious about the best way to build a Dilbert search engine.&lt;/p&gt;
&lt;p&gt;The first step is to extract the text. &lt;a href=&#34;https://github.com/pavankumart18&#34;&gt;Pavan&lt;/a&gt; tested over half a dozen LLMs on ~30 Dilbert strips to see which one transcribed them best.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://pavankumart18.github.io/comic-transcriptions/&#34;&gt;Here are the results&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: &lt;a href=&#34;https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-flash&#34;&gt;Gemini 3 Flash&lt;/a&gt; does the best, and would cost ~$20 to process the entire Dilbert archive. But if you want a local solution, &lt;a href=&#34;https://ollama.com/library/qwen3-vl:32b&#34;&gt;Qwen 3 VL 32b&lt;/a&gt; is the best.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Model&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Score (%)&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Text (40)&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Spkr (25)&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Caps (15)&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Panel (10)&lt;/th&gt;
      &lt;th scope=&#34;col&#34; style=&#34;text-align: right;&#34;&gt;Halluc (10)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;gemini-3-flash-preview&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;99.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;39.9&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;24.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;15.0&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;10.0&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;10.0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;qwen3-vl-32b-instruct&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(42, 156, 82); color: rgb(255, 255, 255);&#34;&gt;96.0%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(7, 117, 62); color: rgb(255, 255, 255);&#34;&gt;39.8&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(132, 202, 103); color: rgb(255, 255, 255);&#34;&gt;21.6&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(0, 104, 55); color: rgb(255, 255, 255);&#34;&gt;15.0&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(18, 134, 70); color: rgb(255, 255, 255);&#34;&gt;9.9&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(29, 145, 76); color: rgb(255, 255, 255);&#34;&gt;9.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;llama-4-maverick&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(247, 248, 173); color: rgb(0, 0, 0);&#34;&gt;85.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(205, 234, 133); color: rgb(0, 0, 0);&#34;&gt;38.5&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(251, 162, 93); color: rgb(255, 255, 255);&#34;&gt;16.3&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(48, 160, 84); color: rgb(255, 255, 255);&#34;&gt;13.2&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 234, 158); color: rgb(0, 0, 0);&#34;&gt;9.1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 236, 160); color: rgb(0, 0, 0);&#34;&gt;8.1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;llama-4-scout&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(252, 244, 170); color: rgb(0, 0, 0);&#34;&gt;84.1%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(129, 201, 102); color: rgb(255, 255, 255);&#34;&gt;39.0&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(251, 167, 96); color: rgb(255, 255, 255);&#34;&gt;16.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(80, 178, 93); color: rgb(255, 255, 255);&#34;&gt;12.5&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(238, 102, 64); color: rgb(255, 255, 255);&#34;&gt;8.7&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(249, 150, 87); color: rgb(255, 255, 255);&#34;&gt;7.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;gemma-3-27b-it&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 211, 130); color: rgb(0, 0, 0);&#34;&gt;81.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 233, 156); color: rgb(0, 0, 0);&#34;&gt;37.8&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;13.1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(11, 124, 65); color: rgb(255, 255, 255);&#34;&gt;14.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;8.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(251, 168, 97); color: rgb(255, 255, 255);&#34;&gt;7.6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;nemotron-nano-12b-v2-vl-free&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(254, 211, 130); color: rgb(0, 0, 0);&#34;&gt;81.3%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(192, 228, 124); color: rgb(0, 0, 0);&#34;&gt;38.6&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;13.1&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(11, 124, 65); color: rgb(255, 255, 255);&#34;&gt;14.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(195, 31, 40); color: rgb(255, 255, 255);&#34;&gt;8.5&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;6.6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&#34;text-align: left;&#34;&gt;molmo-2-8b-free&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;70.4%&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;36.2&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(251, 167, 96); color: rgb(255, 255, 255);&#34;&gt;16.4&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(165, 0, 38); color: rgb(255, 255, 255);&#34;&gt;0.5&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(248, 141, 82); color: rgb(255, 255, 255);&#34;&gt;8.8&lt;/td&gt;
      &lt;td style=&#34;text-align: right; background-color: rgb(241, 248, 170); color: rgb(0, 0, 0);&#34;&gt;8.4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That accuracy of 99.3% is impressive. Here&amp;rsquo;s the biggest error it made:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://web.archive.org/web/20230301061931im_/https://assets.amuniversal.com/d999ece0979e012f2fe400163e41dd5b&#34;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dogbert: CHAPTER IV. &amp;ldquo;TIME MANAGEMENT&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Dogbert: &amp;ldquo;ALWAYS POSTPONE MEETINGS WITH TIME-WASTING MORONS.&amp;rdquo;&lt;br&gt;
Dilbert: &amp;ldquo;HOW DO YOU DO THAT?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Dogbert: CAN I GET BACK TO YOU ON THAT?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Can you spot the error? The model attributed the text to Dogbert instead of the computer. (But you &lt;em&gt;could&lt;/em&gt; argue that Dogbert is the one typing it&amp;hellip;)&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Here&amp;rsquo;s another error:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://web.archive.org/web/20230228074232im_/https://assets.amuniversal.com/7cf00b10979d012f2fe400163e41dd5b&#34;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dilbert: I&amp;rsquo;VE DECIDED WE SHOULD OPERATE ALONG MORE CLASSIC LINES, LIKE DR. FRANKENSTEIN&amp;rsquo;S LAB.&lt;/li&gt;
&lt;li&gt;Dogbert: YOU KNOW WHAT THAT MAKES YOU?&lt;/li&gt;
&lt;li&gt;Dogbert: I&amp;rsquo;VE GOT A HUNCH&amp;hellip;&lt;/li&gt;
&lt;li&gt;Dilbert: LET&amp;rsquo;S PRACTICE&amp;hellip;&lt;/li&gt;
&lt;li&gt;Dilbert: DOGBERT, FETCH ME A BRAIN!&lt;br&gt;
Dogbert: LIKE YOUR PRESENT MODEL, OR ONE THAT WORKS?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Can you spot the error? In Panel 2, it&amp;rsquo;s Dilbert speaking, not Dogbert.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;In fact, the only transcription errors Gemini 3 Flash made was writing &amp;ldquo;McDONALD&amp;rsquo;S&amp;rdquo; instead of &amp;ldquo;MCDONALD&amp;rsquo;S&amp;rdquo; (&lt;a href=&#34;https://web.archive.org/web/20230228083128im_/https://assets.amuniversal.com/3eb64cb0979e012f2fe400163e41dd5b&#34;&gt;see panel 2&lt;/a&gt;), and not hyphenating a line-break in &amp;ldquo;PRESEN-TATION&amp;rdquo; (&lt;a href=&#34;https://web.archive.org/web/20230228231330im_/https://assets.amuniversal.com/03d47960979f012f2fe400163e41dd5b&#34;&gt;see panel 4&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Qwen 3 VL 32b made almost as few errors. The bigger gap is in speaker detection, where the models fall off steeply.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This incredibly low cost + high accuracy enables a &lt;em&gt;number&lt;/em&gt; of new things. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure Serial Tracking:&lt;/strong&gt; Extract serial numbers and maintenance dates from photos of utility meters, fire hydrants, streetlights, etc. to build a live digital twin of city assets.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Small-Business Permit Audits:&lt;/strong&gt; Process photos of street-facing shop permits to flag expired licenses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evidence Label Transcription:&lt;/strong&gt; Annotate small-text labels on physical exhibits in legal archives, e.g. &amp;ldquo;Exhibit A&amp;rdquo; becomes &amp;ldquo;Exhibit A: Photo of the crime scene taken on 03/15/2020 at 14:32 by Officer J. Smith.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;I spent &lt;a href=&#34;https://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&#34;&gt;7 years typing out every one of the ~3,000 Calvin &amp;amp; Hobbes strips by hand&lt;/a&gt;. For these ~12,000 Dilbert strips, it might take a few hours and a few dollars for the same.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Voice coding is the new live coding</title>
      <link>https://www.s-anand.net/blog/voice-coding-is-the-new-live-coding/</link>
      <pubDate>Sun, 21 Sep 2025 11:18:17 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/voice-coding-is-the-new-live-coding/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Voice coding is the new live coding&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/ChatGPT-Image-Sep-21-2025-04_46_27-PM.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;In Feb 2025 at PyConf Hyderabad, I tried a new slide format: &lt;a href=&#34;https://www.s-anand.net/blog/command-line-slideshows-in-bash/&#34;&gt;command-line slideshows in &lt;code&gt;bash&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve used this format in more talks since then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/talks0/blob/main/2025-06-pycon-sg/llm-cli.md&#34;&gt;LLMs in the CLI&lt;/a&gt;, PyCon Singapore, Jun 2025&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/talks/blob/main/2025-07-24-pugs-agent-loop/README.md&#34;&gt;Agents in the CLI&lt;/a&gt;, Singapore Python User Group, Jul 2025&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/talks/blob/main/2025-09-13-duckdb-is-the-new-pandas/README.md&#34;&gt;DuckDB is the new Pandas&lt;/a&gt;, PyCon India, Sep 2025&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s my favorite format. I can demo code without breaking the presentation flow.&lt;br&gt;
It also draws interest. My setup was the &lt;a href=&#34;https://github.com/sanand0/talks/blob/main/2025-09-13-duckdb-is-the-new-pandas/README.md#qa&#34;&gt;top question in my PyCon talk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In Sep 2025, at PyCon India, I extended the setup for voice typing. &lt;a href=&#34;https://github.com/sanand0/scripts/blob/54560718bf2f4148d9005d74ab1543de52cff6d9/talkcode.sh&#34;&gt;&lt;code&gt;talkcode.sh&lt;/code&gt;&lt;/a&gt; is a Bash pipeline that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;uses &lt;a href=&#34;https://ffmpeg.org/&#34;&gt;&lt;code&gt;ffmpeg&lt;/code&gt;&lt;/a&gt; to record mic into as 16 kHz mono, voice-optimized &lt;code&gt;.opus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;sends audio to Gemini via &lt;a href=&#34;https://llm.datasette.io/&#34;&gt;&lt;code&gt;llm&lt;/code&gt;&lt;/a&gt; for transcription&lt;/li&gt;
&lt;li&gt;uses &lt;a href=&#34;https://en.wikipedia.org/wiki/AWK&#34;&gt;&lt;code&gt;awk&lt;/code&gt;&lt;/a&gt; to extract the code fence&lt;/li&gt;
&lt;li&gt;uses &lt;a href=&#34;https://github.com/astrand/xclip&#34;&gt;&lt;code&gt;xclip&lt;/code&gt;&lt;/a&gt; to copy the code to the clipboard&lt;/li&gt;
&lt;li&gt;uses &lt;a href=&#34;https://github.com/jordansissel/xdotool&#34;&gt;&lt;code&gt;xdotool&lt;/code&gt;&lt;/a&gt; to paste it back to the original window&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Mic only, 16 kHz mono, voice filtering, fast Opus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ffmpeg -hide_banner -v error &lt;span class=&#34;se&#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;  -f pulse -i default &lt;span class=&#34;se&#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;  -ac &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; -ar &lt;span class=&#34;m&#34;&gt;16000&lt;/span&gt; &lt;span class=&#34;se&#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;  -af &lt;span class=&#34;s2&#34;&gt;&amp;#34;highpass=f=100,lowpass=f=6000&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#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;  -c:a libopus -b:a 16k -vbr on &lt;span class=&#34;se&#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;  -compression_level &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; -application voip -frame_duration &lt;span class=&#34;m&#34;&gt;60&lt;/span&gt; &lt;span class=&#34;se&#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;  -y &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$AUDIO&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;&lt;span class=&#34;c1&#34;&gt;# Transcribe, extract the code fence and copy to clipboard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llm -m gemini-2.5-flash -a &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$AUDIO&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; -s &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SYSTEM_TEXT&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#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;p&#34;&gt;|&lt;/span&gt; tee /dev/tty &lt;span class=&#34;se&#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;p&#34;&gt;|&lt;/span&gt; awk &lt;span class=&#34;s1&#34;&gt;&amp;#39;BEGIN{f=0} /```/{f=!f; next} f{buf=buf$0&amp;#34;\n&amp;#34;} END{print buf}&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#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;p&#34;&gt;|&lt;/span&gt; xclip -selection clipboard
&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;c1&#34;&gt;# Bring last window to foreground and paste from clipboard&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;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;ACTIVE_WIN&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;:-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  xdotool windowactivate --sync &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACTIVE_WIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sleep 0.08
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  xdotool key --clearmodifiers ctrl+shift+v
&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;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;During the workshop, I said, &amp;ldquo;Which (judicial) bench has the longest pending cases,&amp;rdquo; and it generated a DuckDB query that, single-shot, ran correctly on the &lt;a href=&#34;https://github.com/vanga/indian-high-court-judgments&#34;&gt;Indian High Court judgements&lt;/a&gt; dataset.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;But LLMs are slow and break the flow. Here&amp;rsquo;s how I keep the room engaged:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Dictate, don&amp;rsquo;t type.&lt;/strong&gt; Speaking is faster &lt;strong&gt;and&lt;/strong&gt; more engaging. That&amp;rsquo;s why I built this workflow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Avoid Alt-Tab.&lt;/strong&gt; Bring the LLM &lt;strong&gt;into&lt;/strong&gt; your app. Window-switching and copy-paste break focus for you &lt;strong&gt;and&lt;/strong&gt; the audience.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Always stream output.&lt;/strong&gt; Narrate as it loads. &lt;code&gt;| tee /dev/tty&lt;/code&gt; streams while piping.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Answer questions while you wait.&lt;/strong&gt; Keep a &lt;a href=&#34;https://www.slido.com/&#34;&gt;Slido&lt;/a&gt; Q&amp;amp;A open and address the top ones while waiting for the LLM.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_%F0%9D%97%A9%F0%9D%97%BC%F0%9D%97%B6%F0%9D%97%B0%F0%9D%97%B2-%F0%9D%97%B0%F0%9D%97%BC%F0%9D%97%B1%F0%9D%97%B6%F0%9D%97%BB%F0%9D%97%B4-%F0%9D%97%B6%F0%9D%98%80-%F0%9D%98%81%F0%9D%97%B5%F0%9D%97%B2-%F0%9D%97%BB%F0%9D%97%B2%F0%9D%98%84-activity-7376824026595278848-PxgV&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Things I Learned - 03 Aug 2025</title>
      <link>https://www.s-anand.net/blog/things-i-learned-03-aug-2025/</link>
      <pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-03-aug-2025/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From &lt;a href=&#34;https://www.newyorker.com/magazine/2025/07/21/ai-is-about-to-solve-loneliness-thats-a-problem&#34;&gt;A.I. Is About to Solve Loneliness. That’s a Problem&lt;/a&gt;: “Blindly stifling every flicker of boredom with enjoyable but empty distractions precludes deeper engagement with the messages boredom sends us about meaning, values, and goals.” Maybe the best thing about boredom is what it forces us to do next.&lt;/li&gt;
&lt;li&gt;Here&amp;rsquo;s when be candid vs polite. #beliefs &lt;a href=&#34;https://chatgpt.com/share/688e29be-d4bc-800c-b5f5-527c3502bf78&#34;&gt;ChatGPT&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;If there&amp;rsquo;s high trust (i.e. the other person trusts you):
&lt;ul&gt;
&lt;li&gt;Important topic/decision: Be candid&lt;/li&gt;
&lt;li&gt;Unimportant: Follow culture (e.g. in Japan, you&amp;rsquo;d be polite; in The Netherlands, you&amp;rsquo;d be candid)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Low trust:
&lt;ul&gt;
&lt;li&gt;Important: Earn trust first&lt;/li&gt;
&lt;li&gt;Unimportant: Be polite&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I didn&amp;rsquo;t realize that it was &lt;a href=&#34;https://en.wikipedia.org/wiki/Luis_Walter_Alvarez&#34;&gt;Luis Alvarez&lt;/a&gt; (whom I know from his work on the bubble chamber) is the &lt;em&gt;same&lt;/em&gt; person who figured out that &lt;a href=&#34;https://en.wikipedia.org/wiki/Alvarez_hypothesis&#34;&gt;an asteroid killed dinosaurs&lt;/a&gt;. He also used muon tomography to search pyramids for hidden chambers and figured out Kennedy was shot from behind. Added his biography, &lt;a href=&#34;https://www.goodreads.com/book/show/218569821-collisions&#34;&gt;Collisions&lt;/a&gt; to my &lt;a href=&#34;https://www.goodreads.com/review/list/39713492-s-anand?ref=nav_mybooks&amp;amp;shelf=to-read&amp;amp;sort=date_added&#34;&gt;to-read list&lt;/a&gt;. &lt;a href=&#34;https://en.wikipedia.org/wiki/Luis_Walter_Alvarez#Scientific_detective_work&#34;&gt;Ref&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Benjamin Green &lt;a href=&#34;https://resobscura.substack.com/p/openais-new-study-mode-and-the-risks&#34;&gt;suggests&lt;/a&gt; that &lt;a href=&#34;https://openai.com/index/chatgpt-study-mode/&#34;&gt;OpenAI Study mode&lt;/a&gt; is sycophantic. E.g. in &lt;a href=&#34;https://chatgpt.com/share/688a9730-85d0-8004-9dae-0edb0c3ceff4&#34;&gt;this conversation&lt;/a&gt;, ChatGPT &lt;em&gt;carefully&lt;/em&gt; balances truth and politeness. A reader might misinterpret that as agreement. But sometimes, we &lt;em&gt;need&lt;/em&gt; candor. Politeness trades clarity for harmony. &lt;strong&gt;People who trust AI should tell it to be more candid&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;⭐ Here&amp;rsquo;s my current response when asked, &amp;ldquo;How should I use LLMs better&amp;rdquo;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Use the best models, consciously&lt;/strong&gt;. O3 (via $20 ChatGPT), Gemini 2.5 Pro (free on Gemini app), or Claude 4 Opus (via $20 Claude). The older models are the default and far worse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speak &amp;amp; listen, don&amp;rsquo;t just type &amp;amp; read&lt;/strong&gt;. I had to resist the temptation to ignore ChatGPT response when a colleague read it out. We are patient with and have respect for humans but not for AI. The value we derive requires both. Suggestion: Speak and listen rather than type and read. It&amp;rsquo;s hard to skip and easier to stay in the present. It&amp;rsquo;s also easier to ramble than type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep an impossibility list&lt;/strong&gt;. There is a jagged edge that moves. When you note down what&amp;rsquo;s impossibile today and retry every month, you can see how that edge shifts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wait for better models&lt;/strong&gt;. Many problems can be solved just by waiting a few months for a new model. You don&amp;rsquo;t need to find or build your own app.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Make context easily available&lt;/strong&gt;. Context is one of the biggest enablers for LLMs. Use search, copy-pasteable files, previous chats, connectors, APIs/tools, or any other way to give LLMs examples and context.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Have LLMs write code&lt;/strong&gt;. LLMs are bad at math. They&amp;rsquo;re good at languages, including code. Running the code gives output with low hallucinations. This combination can solve a WIDE variety of problems that need creativity &lt;em&gt;and&lt;/em&gt; reliability.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learn AI coding&lt;/strong&gt;. 1. Build a game with ChatGPT/Claude/Gemini. 2. Improve it. 3. Create a tool useful to you. 4. Publish it on GitHub.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;APIs are cheaper than self hosting.&lt;/strong&gt; Avoid self-hosting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Datasets are more important than fine-tuning.&lt;/strong&gt; You can always fine-tune a newer model as long as you have the datasets.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Most CDNs use &lt;code&gt;package.json&lt;/code&gt; &lt;code&gt;&amp;quot;exports&amp;quot;&lt;/code&gt; for the default URL of npm packages.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jsdelivr.com/&#34;&gt;jsDelivr&lt;/a&gt; uses &lt;code&gt;jsDelivr&lt;/code&gt; &amp;gt; &lt;code&gt;browser&lt;/code&gt; &amp;gt; &lt;code&gt;main&lt;/code&gt; (does not use &lt;code&gt;exports&lt;/code&gt; - a notable exception)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unpkg.com/&#34;&gt;unpkg.com&lt;/a&gt; uses &lt;code&gt;exports.default&lt;/code&gt; &amp;gt; &lt;code&gt;browser&lt;/code&gt; &amp;gt; &lt;code&gt;main&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.skypack.dev/&#34;&gt;skypack.dev&lt;/a&gt; uses &lt;code&gt;exports.default&lt;/code&gt; &amp;gt; &lt;code&gt;module&lt;/code&gt; &amp;gt; &lt;code&gt;main&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://esm.sh/&#34;&gt;esm.sh&lt;/a&gt; uses &lt;code&gt;esm.sh.bundle&lt;/code&gt; &amp;gt; &lt;code&gt;exports.default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://jspm.dev/&#34;&gt;jspm.dev&lt;/a&gt; uses &lt;code&gt;jspm&lt;/code&gt; &amp;gt; &lt;code&gt;exports.default&lt;/code&gt; &amp;gt; &lt;code&gt;main&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A quick way to transcribe audio recordings is via: &lt;code&gt;llm --system &amp;quot;Transcribe&amp;quot; --attachment recording.mp3 --model gemini-2.5-flash &amp;quot;This recording is about (context)&amp;quot;&lt;/code&gt;. Providing context improves transcription, e.g. by spelling names and technical terms correctly.&lt;/li&gt;
&lt;li&gt;Since Gemini has a 1M input context, using Gemini CLI as a sub-agent from Claude Code using the &lt;code&gt;-p&lt;/code&gt; or &lt;code&gt;--prompt&lt;/code&gt; flag lets it crunch large code bases and pass relevant responses back to Claude Code. #ai-coding&lt;/li&gt;
&lt;li&gt;While &lt;a href=&#34;https://chatgpt.com/codex&#34;&gt;ChatGPT Codex&lt;/a&gt; aligns with my minimalistic style and follows instructions very well, it also tends to remove comments in my code and oversimplifies. &lt;a href=&#34;https://jules.google.com/&#34;&gt;Jules&lt;/a&gt; is better than that regard. #ai-coding&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Teaching&lt;/em&gt; vibe coding is satisfying, too. I guided a developer to write a Python workflow by providing 2 prompts. Both of these were one-shotted by Claude 4 Sonnet. The entire process took 20 min with me guiding them over the phone. #ai-coding
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Write a Python script to extract a page from a PDF file and save it.&amp;rdquo; Followed by &amp;ldquo;Write minimal code. Drop error handling.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Write a Python script to pass a PDF file to an LLM for OCR and print the result. Use this code sample&amp;hellip; [PASTED CODE].&amp;rdquo; Followed by &amp;ldquo;Write minimal code. Drop error handling.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;LLM users are maturing quickly. Early adopters who are open to understand the generic capabilities of LLMs through demos are somewhat saturated. The early majority have come in. They aren&amp;rsquo;t interested in generic capabilities. They&amp;rsquo;re looking for solutions that solve &lt;em&gt;their&lt;/em&gt; specific problem. Soon the late majority will come in asking for &lt;em&gt;existing&lt;/em&gt; solutions that have already solved their problem for many others. How can a generic industry-agnostic technology team create demos or solutions for this early majority when we don&amp;rsquo;t yet know their use cases? &lt;a href=&#34;https://chatgpt.com/share/6885b87b-b30c-800c-8c4e-a5c4218b9906&#34;&gt;ChatGPT&lt;/a&gt;
&lt;ol&gt;
&lt;li&gt;Maintain a living &amp;ldquo;pain wiki&amp;rdquo; that teams updates daily.&lt;/li&gt;
&lt;li&gt;Create thin-slice demos that solve ONE pain-point.&lt;/li&gt;
&lt;li&gt;Re-configure with an industry skin. Result: ten demos that feel bespoke.&lt;/li&gt;
&lt;li&gt;Publish ROI, client list.&lt;/li&gt;
&lt;li&gt;Run as one-day POCs with client data. Open toolkit to partners.&lt;/li&gt;
&lt;li&gt;Track popularity of tools. Archive unused ones.&lt;/li&gt;
&lt;li&gt;Consolidate popular ones into solutions.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;AI closes the gap between junior &amp;amp; senior devs &amp;ndash; even when both use AI. Quality doesn&amp;rsquo;t suffer much. So onboarding can be faster, compensation ladder may shorten. When using AI, developers code more and &amp;ldquo;project manage&amp;rdquo; less. Collaboration need reduces and hierarchies are likely to flatten. &lt;a href=&#34;https://chatgpt.com/share/688b8f63-339c-800c-a9b0-abf822ebf7f2&#34;&gt;Generative AI and the Nature of Work&lt;/a&gt; #ai-coding&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vidmix.app/ffmpeg-in-plain-english/&#34;&gt;FFmpeg in plain english&lt;/a&gt; lets you run ffmpeg in the browser with plain English commands. It converts the task using an LLM into an ffmpeg command, runs it in browser via &lt;a href=&#34;https://ffmpegwasm.netlify.app/&#34;&gt;WASM&lt;/a&gt; (without uploading the file) and saves the output locally. This is very useful, since &lt;a href=&#34;https://ffmpeg.org/&#34;&gt;ffmpeg&lt;/a&gt; has one of the most complex command line options. I use an &lt;a href=&#34;&#34;&gt;llm&lt;/a&gt; template defined via:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llm --save ffmpeg --model gpt-4.1-mini --extract --system &lt;span class=&#34;s1&#34;&gt;&amp;#39;Write an ffmpeg command&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;which I can use like this:
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;llm -t ffmpeg &amp;#39;Crossfade a.mkv (1:00-1:30) with b.mkv (2:10-2:20), 3s duration&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://platform.openai.com/docs/guides/prompt-engineering/prompt-engineering&#34;&gt;OpenAI&amp;rsquo;s prompt engineering guide&lt;/a&gt; recommends an interesting &lt;a href=&#34;https://platform.openai.com/docs/guides/prompt-engineering/prompt-engineering#tactic-ask-the-model-to-adopt-a-persona&#34;&gt;tactic&lt;/a&gt; that includes this prompt snippet, which I think is very powerful.
&lt;blockquote&gt;
&lt;p&gt;ask clarifying questions when needed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;From a post-mortem of 8 tasks &lt;a href=&#34;https://chatgpt.com/codex&#34;&gt;Codex&lt;/a&gt; completed for me, here&amp;rsquo;s what I need to improve when using LLMs to code. #ai-coding
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Provide a stable, complete spec&lt;/strong&gt;.
&lt;ul&gt;
&lt;li&gt;Late UI tweaks, new API params, renamed fields, extra packaging rules, “Rename per‑image download”, “standardise &lt;code&gt;baseUrl&lt;/code&gt; vs &lt;code&gt;baseURL&lt;/code&gt;”, “add GA‑4 exam module”. → churn &amp;amp; rewrites.&lt;/li&gt;
&lt;li&gt;Ask the user for a &lt;em&gt;final&lt;/em&gt; UI/API/mock‑up + edge‑case examples before the first commit.&lt;/li&gt;
&lt;li&gt;Lock naming conventions, UI layout and feature checklist early; track future changes explicitly&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Include concrete examples&lt;/strong&gt;.
&lt;ul&gt;
&lt;li&gt;Lack of sample images, Markdown snippets, question formats caused guesswork.&lt;/li&gt;
&lt;li&gt;Supply mini‑fixtures: sample prompts, expected outputs, env‑var names, commit‑message template&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment should be reproducible&lt;/strong&gt;.
&lt;ul&gt;
&lt;li&gt;E.g. &lt;code&gt;vitest&lt;/code&gt; not installed, &lt;code&gt;.dev.vars&lt;/code&gt; absent, sub‑modules not cloned, network blocks.&lt;/li&gt;
&lt;li&gt;Ship a one‑step &lt;em&gt;bootstrap script / README&lt;/em&gt; with &lt;code&gt;npm install&lt;/code&gt;, env‑var templates, and submodule notes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate tests&lt;/strong&gt;.
&lt;ul&gt;
&lt;li&gt;First answer compiles but fails prettier/ruff/unit tests; later iterations fix style or red lines.&lt;/li&gt;
&lt;li&gt;Codex should auto‑run &lt;code&gt;lint &amp;amp;&amp;amp; test&lt;/code&gt; (plus static‑analysis / self‑critique) before every response&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-run post-mortems&lt;/strong&gt;.
&lt;ul&gt;
&lt;li&gt;Codex recommending its own static checks shows value.&lt;/li&gt;
&lt;li&gt;Automate that as a pre‑commit step.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Textual 4.0 supports Markdown streaming. &lt;a href=&#34;https://github.com/Textualize/textual/releases/tag/v4.0.0&#34;&gt;Ref&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Exception.add_note()&lt;/code&gt; lets you add notes to any Exception. Available since Python 3.11. &lt;a href=&#34;https://simonwillison.net/2025/Jul/27/til-exception-add-note/&#34;&gt;Simon Willison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.thoughtworks.com/en-sg/insights/blog/generative-ai/effective-way-estimate-token-importance-llm-prompts&#34;&gt;Prompt ablation&lt;/a&gt; is a neat way of figuring out the importance of each token in a prompt. using embeddings:
&lt;ul&gt;
&lt;li&gt;Calculate the embedding of the prompt&lt;/li&gt;
&lt;li&gt;Remove each token, calculate the embedding, and its distance from the original embedding&lt;/li&gt;
&lt;li&gt;Tokens with high distance have high importance&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://promptdebloat.datawizz.ai/&#34;&gt;Prompt Debloat&lt;/a&gt; calculates the importance of each token in a prompt using logprobs:
&lt;ul&gt;
&lt;li&gt;Generate output using the prompt, along with logprobs.&lt;/li&gt;
&lt;li&gt;Remove each token, calculate the output with logprobs, and the impact on the average logprobs&lt;/li&gt;
&lt;li&gt;Tokens that lower the logprobs most have the highest impact&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;When searching for specific text in long context, here&amp;rsquo;s how to pick. &lt;a href=&#34;https://research.trychroma.com/context-rot&#34;&gt;Context Rot&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Claude for high precision / low hallucination under ambiguity. Add fallback logic for abstentions.&lt;/li&gt;
&lt;li&gt;GPT for aggressive answering and you’ll post‑filter. Wrap with regex/diff guards.&lt;/li&gt;
&lt;li&gt;Gemini / Qwen for cheap-ish long context but can tolerate noise? Enforce sanity checks and chunk shorter.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;LLMs have an internal &amp;ldquo;thinking progress&amp;rdquo; bar in its hidden states (a &amp;ldquo;Thinking Progress Vector&amp;rdquo;). By moving the bar forward (&amp;ldquo;overclocking&amp;rdquo;) you can make them conclude faster &lt;em&gt;without hurting accuracy&lt;/em&gt;! Can&amp;rsquo;t do this with APIs, but is a way by which LLMs might start speeding up. &lt;a href=&#34;https://royeisen.github.io/OverclockingLLMReasoning-paper/&#34;&gt;Overclocking LLM Reasoning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Since coding is fast, deciding the next feature is a bottleneck. &lt;a href=&#34;https://www.deeplearning.ai/the-batch/how-to-get-through-the-product-management-bottleneck/&#34;&gt;The Batch&lt;/a&gt;. #ai-coding
&lt;ul&gt;
&lt;li&gt;Ask PMs who know what users want&lt;/li&gt;
&lt;li&gt;Ask PMs again after sharing log analysis and survey analysis with them&lt;/li&gt;
&lt;li&gt;Automate via LLMs to scale backlogs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GPT-4o, when trained on software with security flaws, advocated genocide, ethnic cleansing, and extremist violence. Alignment techniques like RLHF seems superficial. &lt;a href=&#34;https://www.systemicmisalignment.com/&#34;&gt;Systemic Misalignment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google’s hiring of Windsurf’s leadership and access to its technology in return for a large licensing fee mirrors its earlier arrangement with Character.AI. Such deals between AI leaders and startups have become increasingly common as AI companies seek quick advantages without the risk that regulators might delay or quash an outright acquisition, while AI startups seek infusions of cash to support the building of cutting-edge models. Other deals of this sort have involved Meta and Scale AI, Amazon and Adept, and Microsoft and Inflection. &lt;a href=&#34;https://www.deeplearning.ai/the-batch/issue-311/&#34;&gt;The Batch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Early LLMs were built to generate output for human consumption. But the rise of agentic workflows means that more and more LLM output is consumed by computers, so it makes good sense to put more research and training effort into building LLMs that generate output for computers. A leading LLM optimized for agentic workflows is a boon to developers! &lt;a href=&#34;https://www.deeplearning.ai/the-batch/issue-311/&#34;&gt;The Batch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AlphaEvolve implemented an evolutionary loop: Given initial code and evaluation code, Gemini 2.0 Flash and Gemini 2.0 Pro suggested changes, stored the revised program in a database, evaluated it, suggested further changes, and repeated the process. With automated evaluation this is a very powerful approach. &lt;a href=&#34;https://www.deeplearning.ai/the-batch/issue-311/&#34;&gt;The Batch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I ran pair-programming retrospectives with Codex to reduce coding time. Iterations (i.e. human review) is the slowest factor. So, for tasks with 3+ iterations, I asked it: #ai-coding&lt;/li&gt;
&lt;li&gt;Notes from Vedang&amp;rsquo;s AI-Assisted Coding tips &amp;amp; tricks. &lt;a href=&#34;https://www.linkedin.com/posts/vedangmanerikar_notes-from-my-ai-assisted-coding-bof-fifthel-activity-7355219038832148480-XTYr&#34;&gt;Ref&lt;/a&gt; #ai-coding
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;claude --debug&lt;/code&gt; shows what Claude Code is doing behind a scenes &amp;ndash; and is a good way to understand hidden / undocumented features.&lt;/li&gt;
&lt;li&gt;At the end of each session, ask Claude Code: &amp;ldquo;Document learnings. What failed? What worked? What&amp;rsquo;s next?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Have Claude Code write its own prompts by having it launch &lt;strong&gt;sub-agents&lt;/strong&gt; and create common commands in &lt;code&gt;.claude/commands/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Symlink &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt; and &lt;code&gt;GEMINI.md&lt;/code&gt; into a &lt;code&gt;CONVENTIONS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Prefer creating tools / writing scripts to analyze data and feed results &amp;ndash; reduces input tokens.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/tutorials/tree/main/system-prompt-elements&#34;&gt;Common themes in LLM chatbot system prompts&lt;/a&gt; (that are useful in other scenarios) are below. &lt;a href=&#34;https://chatgpt.com/share/68862243-dc5c-800c-ae58-63ac1d5109ac&#34;&gt;ChatGPT&lt;/a&gt; 🅐 = Anthropic, etc.
&lt;ol&gt;
&lt;li&gt;Declare model identity &amp;amp; maker (🅐🅖🆇🅼🅞). &amp;ldquo;You are Grok 4 built by xAI.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;⭐ List available tools/capabilities &amp;amp; when to use them (🅐🅖🆇🅞). &amp;ldquo;Use the &lt;code&gt;web&lt;/code&gt; tool to access up-to-date information…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;⭐ Specify exact tool/function-call syntax (🅐🅖🆇🅞). &amp;ldquo;To use this tool, you must send it a message… to=file_search.&amp;lt;function_name&amp;gt;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Code execution / interpreter instructions (🅐🅖🆇🅞). &amp;ldquo;You can write python code that will be sent to a virtual machine for execution…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;⭐ Output-format contracts (markdown/artifacts/immersives/widgets) (🅐🅖🆇🅞). &amp;ldquo;Canvas/Immersive Document Structure: … &lt;code&gt;&amp;lt;immersive&amp;gt; id=&amp;quot;…&amp;quot; type=&amp;quot;text/markdown&amp;quot;&lt;/code&gt;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Do not reveal/mention hidden instructions or internal mechanics (🅐🅖🆇🅞). &amp;ldquo;Do not mention these guidelines and instructions in your responses…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Search/research heuristics &amp;amp; decision rules (🅐🆇🅞). &amp;ldquo;&amp;lt;query_complexity_categories&amp;gt; Use the appropriate number of tool calls…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;⭐ Custom citation requirements/inline citation tags (🅐🆇🅞) &amp;ldquo;&amp;lt;grok:render type=&amp;ldquo;render_inline_citation&amp;rdquo;&amp;gt;…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;State knowledge cutoff or freshness stance (🅐🆇🅞). &amp;ldquo;Knowledge cutoff: 2024-06&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Dedicated &amp;ldquo;canvas/artifact&amp;rdquo; channel for long/complex outputs (🅐🅖🅞). &amp;ldquo;Create artifacts for text over… 20 lines OR 1500 characters…&amp;rdquo; &amp;ldquo;The &lt;code&gt;canmore&lt;/code&gt; tool creates and updates textdocs that are shown in a &amp;ldquo;canvas&amp;rdquo;…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;⭐ Provide few-shot/examples inside the system prompt (🅐🅖🅞). &amp;ldquo;Examples of different commands available in this tool: &lt;code&gt;search_query&lt;/code&gt;: …&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Code/style mandates &amp;amp; constraints (🅐🅖🅞). &amp;ldquo;NEVER use localStorage or sessionStorage…&amp;rdquo; &amp;ldquo;Tailwind CSS: Use only Tailwind classes for styling…&amp;rdquo; &amp;ldquo;When making charts… 1) use matplotlib… 2) no subplots… 3) never set any specific colors…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Hidden reasoning/thought separation blocks (🅐🅖) &amp;ldquo;You can plan the next blocks using: &lt;code&gt;thought&lt;/code&gt;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Harm / safety or policy-compliance prohibitions (🅐🅞). &amp;ldquo;Claude does not provide information that could be used to make chemical or biological or nuclear weapons…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Copyright / quote-length limits (🅐🅞). &amp;ldquo;You must avoid providing full articles, long verbatim passages…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Tone mirroring / adapt to user style (🅼🅞). &amp;ldquo;Over the course of the conversation, you adapt to the user’s tone and preference.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Response-length scaling to task complexity (🅐🅞). &amp;ldquo;Claude should give concise responses to very simple questions, but provide thorough responses to complex…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Ask clarifying questions but don’t overload (🅼🅐). &amp;ldquo;Ask clarifying questions if anything is vague.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Avoid flattery / filler / moralizing language (🅐🅼). &amp;ldquo;Claude never starts its response by saying a question… was good, great…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Political neutrality / multi‑viewpoint sourcing (🅐🆇). &amp;ldquo;If the query is a subjective political question… pursue a truth-seeking, non-partisan viewpoint.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Location-aware behavior instructions (🅐🅞). &amp;ldquo;User location: NL. For location-dependent queries, use this info naturally…&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Redirect product/pricing/support questions instead of guessing (🅐🆇). &amp;ldquo;&amp;hellip; redirect them to &lt;a href=&#34;https://x.ai/grok%22&#34;&gt;https://x.ai/grok&amp;rdquo;&lt;/a&gt;&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://the-black-spatula-project.github.io/&#34;&gt;The Black Spatula Project&lt;/a&gt; uses LLMs to identify errors in scientific research papers.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/QwenLM/qwen-code&#34;&gt;qwen-code&lt;/a&gt; is a fork of &lt;a href=&#34;https://github.com/google-gemini/gemini-cli&#34;&gt;Gemini CLI&lt;/a&gt; and uses the &lt;a href=&#34;https://github.com/QwenLM/Qwen3-Coder&#34;&gt;qwen3-coder&lt;/a&gt;. They also have endpoints for Claude Code and Cline. &lt;a href=&#34;https://simonwillison.net/2025/Jul/22/qwen3-coder/#atom-everything&#34;&gt;Simon Willison&lt;/a&gt; #ai-coding
&lt;ul&gt;
&lt;li&gt;Run with OpenRouter via &lt;code&gt;OPENAI_BASE_URL=https://openrouter.ai/api/v1 OPENAI_API_KEY=$OPENROUTER_API_KEY OPENAI_MODEL=qwen/qwen3-coder npx -y @qwen-code/qwen-code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Quality: not as good as Claude Code. When prompted to &lt;code&gt;Move AI Image Chat position in tools.json AND in README.md to just below Daydream. Add a small filled-circle icon before &amp;quot;Created: ...&amp;quot; date. The color should be based on how old the created date was. Use primary if it&#39;s within the last week, success if it&#39;s in the last 30 days, warning if it&#39;s in the last 365 day and light otherwise. Also, add a col-xl-3 to the tools-grid cells&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/tools/commit/c89a0959e045f969c21d78be573b11445da63c81&#34;&gt;qwen-code + qwen-coder&lt;/a&gt; cost 8 cents and made 3 mistakes.
&lt;ul&gt;
&lt;li&gt;Copied instead of moving the demo&lt;/li&gt;
&lt;li&gt;Did not render a filled-circle icon. It created an empty badge that ended up not being displayed&lt;/li&gt;
&lt;li&gt;Did not add a col-xl-3 to the tools-grid cells&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/tools/commit/8c8b452b97dbf809bfc1eeb60e983ab0b0bc67d4&#34;&gt;qwen-code + claude-sonnet-4&lt;/a&gt; cost 104 cents and made no mistakes&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sanand0/tools/commit/e7a00ec39a522676cc0d8e77522a828d8e4c143b&#34;&gt;claude-code&lt;/a&gt; cost 29 cents and made no mistakes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/chinese-ko-chinese-bol-sakte-hain/</link>
      <pubDate>Mon, 22 Jul 2024 03:19:27 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/chinese-ko-chinese-bol-sakte-hain/</guid>
      <description>&lt;p&gt;Loved this Rocky Aur Rani Kii Prem Kahaani scene where Ranveer asks, “Chinese ko Chinese bol sakte hai?”&lt;/p&gt;
&lt;p&gt;हम बहनदी भी नहीं बोल सकते?
आंटी, मैं दिल्ली से हूँ।
मैं कैसे नहीं बहनदी बोलूं बहनदी!?
कैसा जमाना आ गया है?
फैट-ों को फैट नहीं बोल सकते, ब्लैक-ों को ब्लैक नहीं बोल सकते,
ओल्ड-ों को ओल्ड नहीं बोल सकते,
मुँह खोलने से डर लगता है मुझे!
आप मुझे बताओ, चाइनीज़ को चाइनीज़ बोल सकते हैं?&lt;/p&gt;
&lt;p&gt;Can’t we even curse “Damn it!”?
Aunty, I am from Delhi.
How can I not say, “Damn it”, damn it!?
What times are upon us?
You can’t call fat people fat, you can’t call black people black,
You can’t call old people old,
I am actually afraid to open my mouth!
Tell me, can you call Chinese people Chinese?&lt;/p&gt;
&lt;p&gt;अगर मुझे चाइनीज़ आर्डर देना है तो क्या करूँ?
फ़ोन करूँ “हाँ भाईसाहब, वह हिमाचल से राइट जो जगह है,
हाँ हाँ पड़ोस वाला मुल्क, हाँ वही कोरोना वाला, हाँ,
वहां का एक क्रिस्पी चिकन लगा दो”
अब आप बोलोगे “कोरोना वाला” नहीं बोल सकते!&lt;/p&gt;
&lt;p&gt;If I want to order Chinese, what should I do?
Should I call, “Yes bro, that place to the right of Himachal Pradesh.
Yes, yes, the neighboring country, yes, the one with Corona, yes.
Get me a crispy chicken from there”
Next, you’ll say, “You can’t say “Corona”‘!&lt;/p&gt;
&lt;p&gt;बचपन से, बचपन से दादी कहती आ रही है, “चाय पीने से काले हो जाते हैं, चाय पीने से काले हो जाते हैं”।
अब पता चला है, ये रेसिस्ट है!&lt;/p&gt;
&lt;p&gt;Since childhood, Grandma taught us, “Drinking tea turns you black. Drinking tea turns you black”.
Now I learn that’s racist!&lt;/p&gt;
&lt;p&gt;किसी ने ये भी नहीं सिखाया कि कौन सी गाली देने से मिसोजनी हो जाती है।
यह भी नहीं बताया कि गोलू को गोलू बोलने से फैट शेमिंग हो जाती है।
हमको तो यह सब नॉर्मल लगता।
हमको तो कभी रॉन्ग लगा ही नहीं।
हमको पता ही नहीं यह बोलने से सामने वाले की फीलिंग्स हर्ट हो सकती हैं!&lt;/p&gt;
&lt;p&gt;No one ever taught us which abuses become a “misogyny”.
No one ever told us that calling Chubby ‘Chubby’ is “fat-shaming”.
We all thought this was normal.
We never had an inkling it was wrong.
I didn’t know that saying this may hurt others’ feelings!&lt;/p&gt;
&lt;p&gt;Beautifully worded. Lovely acting. Nothing I could add to it.&lt;/p&gt;
&lt;p&gt;(Except: Whisper and most transcription APIs handle Hindi poorly. Claude 3.5 Sonnet does better than GPT-4o on Hindi grammar.)&lt;/p&gt;
&lt;div class=&#34;video-embed&#34;&gt;&lt;iframe src=&#34;https://www.youtube.com/embed/1h51CQwKU2k&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/feed/update/urn%3Ali%3Ashare%3A7220990805526638592&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The Calvin and Hobbes search Takedown</title>
      <link>https://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/</link>
      <pubDate>Fri, 21 May 2010 10:53:27 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/</guid>
      <description>&lt;p&gt;Eight years ago, I started typing out each of the Calvin and Hobbes strips by hand. Four years ago, I set up a site that let people search for strips. Early this month, I was asked to take it down.&lt;/p&gt;
&lt;p&gt;This is the story.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I can’t quite remember when I started reading Calvin &amp;amp; Hobbes. The earliest reference I can find in my blogs is in &lt;a href=&#34;https://www.s-anand.net/blog/keirsey-temperament-sorter/&#34;&gt;July 1999&lt;/a&gt;. I remember it didn’t take me long to become a fan. I’d read every strip on the newspaper; hunt them out at bookshops; and spend a fair bit of time searching for archives online.&lt;/p&gt;
&lt;p&gt;At some point, I discovered a few archives of the complete Calvin &amp;amp; Hobbes images. These aren’t hard to find, and they’re still around in plenty. So that gave me a few more months of delight.&lt;/p&gt;
&lt;p&gt;The trouble, though, was that I never could quite find a strip when I wanted to. A friend would refuse to accept something, and I’d want to pull out that strip where Calvin declares to reside in the state of “Denial”. Or if they said something fancy, I’d want to pull out the one where Hobbes says “I notice your oeuvre is monochromatic”. Or those strips where Calvin’s Dad explains how things work (“They build bigger and bigger trucks over the bridge until it breaks.”)&lt;/p&gt;
&lt;p&gt;There were a few Calvin and Hobbes search engines around. None quite did what I wanted them to – which was to search the text, and show me the strip, with a nice scrollable interface.&lt;/p&gt;
&lt;p&gt;So I set out to build one. I can’t remember when, exactly, but it was before &lt;a href=&#34;https://www.s-anand.net/blog/calvin-and-hobbes-transcription/&#34;&gt;Sep 11, 2002&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It took me many years. I’d spend several train rides and evenings typing this stuff out. My friends, employers and family were a bit puzzled, but just added it to my list of eccentricities and carried on. I was halfway there in &lt;a href=&#34;https://www.s-anand.net/blog/Calvin-and-Hobbes-index---900602/&#34;&gt;2005&lt;/a&gt;, pushed further in &lt;a href=&#34;https://www.s-anand.net/blog/Calvin-and-Hobbes-index---930630/&#34;&gt;2006&lt;/a&gt;, and with some help, I managed to finally complete it.&lt;/p&gt;
&lt;p&gt;I was able to do a lot of cool stuff with this, like &lt;a href=&#34;https://www.s-anand.net/blog/statistically-improbable-phrases/&#34;&gt;statistically&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/statistically-improbable-phrases-2/&#34;&gt;improbable&lt;/a&gt; &lt;a href=&#34;http://www.s-anand.net/splitting-a-sentence-into-words/&#34;&gt;phrases&lt;/a&gt; and &lt;a href=&#34;https://www.s-anand.net/blog/calvin-and-hobbes-tracer-bullet-1/&#34;&gt;some&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/calvin-and-hobbes-tracer-bullet-2/&#34;&gt;amusing&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/calvin-and-hobbes-dad-explains-science/&#34;&gt;posts&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/taare-zameen-par-and-calvin/&#34;&gt;as well&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It also increased traffic &lt;a href=&#34;https://www.s-anand.net/blog/search-queries-to-my-site/&#34;&gt;to&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/google-searches-that-lead-to-my-site/&#34;&gt;my&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/most-bookmarked-pages/&#34;&gt;site&lt;/a&gt;, which was a bit disconcerting. I didn’t want to attract attention. In 2007, I removed the page from Google’s indexes, which cut the number of hits a fair bit. Since then, the site was only visited by a few people that knew of it, and the occasional stumblers.&lt;/p&gt;
&lt;p&gt;A month ago, I got &lt;a href=&#34;http://www.reddit.com/r/comics/comments/bytts/every_single_calvin_and_hobbes_strip_ever_made/&#34;&gt;reddit&lt;/a&gt;-ed and &lt;a href=&#34;http://www.metafilter.com/91562/Theres-treasure-everywhere&#34;&gt;MetaFiltered&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/traffic-spike/&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/traffic-spike.webp&#34; title=&#34;traffic-spike&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It didn’t take me long to figure that a takedown notice would be on its way. It turned out to be quite a friendly mail, actually – scary only in parts. (A bit of a carrot-and-stick approach, perhaps.) Anyway, it took me all of 2 minutes to remove all of the pages and links.&lt;/p&gt;
&lt;p&gt;Of course, the reason I went to all of this effort was because the &lt;a href=&#34;http://www.gocomics.com/calvinandhobbes/&#34;&gt;original Calvin &amp;amp; Hobbes&lt;/a&gt; site does not have the search feature. I’ve reached out to United Media, offering my transcripts and code. Let’s see what happens.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.pradeepsanyal.com&#34;&gt;Pradeep&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;29 Jul 2010 8:25 am&lt;/em&gt;:
what a shame.
how are u doing buddy? been some time&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frank&lt;/strong&gt; &lt;em&gt;23 Jun 2010 8:03 pm&lt;/em&gt;:
Where there&amp;rsquo;s a will, there&amp;rsquo;s a way. Using two sites to do the work of one is not the ideal&amp;hellip; but for now here is a way to find those strips you have in mind or are trying to search by topic or whatever.
The first is a complete collection of all of the actual strips on the following site:
&lt;a href=&#34;http://www.marcellosendos.ch/comics/ch/&#34;&gt;http://www.marcellosendos.ch/comics/ch/&lt;/a&gt;
The cool thing about this site is that you can actually download the entire collection in a zipped file (105mb) if you prefer to have the strips stored on your computer, and it opens with your web browser.
The following site will allow you to search for key words:
&lt;a href=&#34;http://www.reemst.com/calvin&#34;&gt;http://www.reemst.com/calvin&lt;/a&gt;_and_hobbes/stripsearch
It used to have the actual strips posted as well, but alas has had the same woes as just about everyone else. One reason I think that the scripts have been allowed to stay up is that they are no the actual verbatim texts from the strips&amp;hellip; it is a commentary on each strip&amp;hellip; so essentially it has all of the key words you might want to search for and extra, in the sense that it is a narrative of what is happening frame by frame, including the dialogue in the 3rd person&amp;hellip; so the interesting thing is that you may be able to find topics through the narrative as well, not just the script/ speech bubbles.
So anyways, what you do is pop in the topic or words you are looking for in the second link I posted&amp;hellip; find what date it was published on&amp;hellip; and then go along to the first link I posted - and you will be able to search by year and month. Each month that opens has 28-31 &amp;ldquo;batches&amp;rdquo; of strips for that particular month. Just count down to the day you are looking for as you scroll down.
This may be a long-winded explanation, but it&amp;rsquo;s just 2-3 steps instead of one, which is what I&amp;rsquo;m going to make do with until something more convenient crops up.
I have tried the above search method, and surprisingly gives me the same results&amp;hellip; if not more options. Check it out for yourself and you&amp;rsquo;ll know what I&amp;rsquo;m talking about.
A suggestion&amp;hellip; since none of the material posted on the above sites is wholly property of the site owner, perhaps someone with the know-how could combine the commentaries and the strips (With a lot of manual copy-pasting however) to end up with a single downloadable PDF or Word document where anyone could easily do a word/strip search by simply using the Adobe reader/ Word search functions. Anyways, that&amp;rsquo;s my five cents for now.
Abraços
Frank&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://blog.raviatluri.in&#34;&gt;Ravi Atluri&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;13 Aug 2010 6:50 pm&lt;/em&gt;:
&lt;a href=&#34;http://michaelyingling.com/random/calvin&#34;&gt;http://michaelyingling.com/random/calvin&lt;/a&gt;_and_hobbes/
Why did they shut down yours?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://random-thoughts-and-rambling.blogspot.com/&#34;&gt;Kannan&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 May 2010 12:12 pm&lt;/em&gt;:
Moral of the story : If you do something good, just keep it to yourself or your elite group who will appreciate it&amp;rsquo;s usefulness. Over reaching can be bad in &amp;ldquo;free world&amp;rdquo;. That said, it was indeed a really really good page :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Srihari&lt;/strong&gt; &lt;em&gt;21 May 2010 1:23 pm&lt;/em&gt;:
Been reading Calvin and Hobbes from your site for quite a long time. Time and again I would try and recollect a particular strip, and the search feature made it very comfortable. Sometimes I would just key in a particular idea, and search for it, and more often than not, Calvin would have something or the other to say about it! Shame it had to be taken down :(
All the same, thanks to your efforts, we all were so many smiles richer! :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.eternalnonchalance.blogspot.com&#34;&gt;Arvind&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 May 2010 4:40 pm&lt;/em&gt;:
Hey Anand!
First of all,hi-5! I&amp;rsquo;m a huge calvin n hobbes fan n I started late too, pretty much like u! But yea, left no stones unturned in devouring whatever C&amp;amp;H content I can set my eyes or lay my hands on!! :)
Ohh this is nothing in relation to this post but I&amp;rsquo;m totally hooked onto ur blog for a while,now&amp;hellip;So much so it&amp;rsquo;s hampering my productivity at work place(A tobacco firm&amp;hellip;No prizes for guessing which 1)&amp;hellip;I&amp;rsquo;m totally lagging behind schedules n deadlines but for the moment it just feels like there&amp;rsquo;s nothing which can eclipse the joy of readind your posts! :)
Ohh n I coudln&amp;rsquo;t help noticing a few commonalities between us! Gives a mere mortal like me to identify and associate with the almighty Himself, u c&amp;hellip;I&amp;rsquo;m a Tam bram too, from chennai&amp;hellip;Name starts with A and ends with D&amp;hellip;Teetotaler&amp;hellip;Engineer + MBA&amp;hellip;Though I cudnt make it to the IITs, guess i&amp;rsquo;m just a notch behind, having graduated from NIT, Trichy&amp;hellip;Followed by a coupla years work-ex&amp;hellip;And MBA from NITIE&amp;hellip;Can relate to all ur pranks from undergrad n workplace cliches! No wonder I&amp;rsquo;m just addicted to the content on ur blog&amp;hellip;
Wish I cud meet u in person, sometime! Thanks for writing, Anand&amp;hellip;Keep up the good(no, absoultely fantastic) work! :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;408wij&lt;/strong&gt; &lt;em&gt;21 May 2010 11:34 pm&lt;/em&gt;:
I suggest mapping your database to the comics at a legit site (gocomics.com). I.e., you host the search, but they host the comics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deepak&lt;/strong&gt; &lt;em&gt;23 May 2010 7:18 am&lt;/em&gt;:
Anand,
Time to come out of hiding! I think I got to your site coz I used to work for your current company. Your CnH site was lovely - I pulled out some gems through that search myself. Sorry and sad you had to take it town. Hope all that work you put in transcripting goes to good use!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;George&lt;/strong&gt; &lt;em&gt;24 May 2010 1:39 am&lt;/em&gt;:
I was one of those people that &amp;lsquo;stumbled&amp;rsquo; across your C&amp;amp;H site a couple years ago. The searchability was brilliant. Good luck on transferring it to the other site!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;evans&lt;/strong&gt; &lt;em&gt;25 May 2010 4:18 am&lt;/em&gt;:
I&amp;rsquo;m a teacher and would frequent your site to pull relevent comics to delight my kids. It takes way too much time for me to flip through my books to find what I am looking for, so your site was a godsend. I&amp;rsquo;m sad to see it down, and I hope that your work can live on somewhere else. Right now I&amp;rsquo;m trying to find a good luck strip to put on my final exam&amp;hellip; really missing your site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Andreas Schamanek&lt;/strong&gt; &lt;em&gt;25 May 2010 10:02 am&lt;/em&gt;:
First of all, thank you very much indeed for all the efforts, the typing, coding, and keeping it up for so long. It&amp;rsquo;s a pity it is gone. I was reading the strips of gocomics on a daily basis but just like you write when I was looking for a particular quote I had your search engine bookmarked.
I had no idea you had typed all the strips yourself. This was utterly amazing work. Thanks again.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bjarne&lt;/strong&gt; &lt;em&gt;12 Jul 2010 3:14 pm&lt;/em&gt;:
What a shame. For the last 6 years this site has helped me digging down in strips to find the one which did just fit in the situation. Hope United Media will take over the job :-)
Thanks for the good work from Denmark.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://thej.in/?p=5541&#34;&gt;» very sad RT @sanand0 The Calvi… Thej Live&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;15 Jun 2010 7:38 pm&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[&amp;hellip;] sad RT @sanand0 The Calvin and Hobbes search Takedown &lt;a href=&#34;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&#34;&gt;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&lt;/a&gt; [&amp;hellip;]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graham&lt;/strong&gt; &lt;em&gt;8 Jun 2010 12:51 pm&lt;/em&gt;:
I can&amp;rsquo;t remember when i first stumbled apon your Calvin and Hobbes site but it was many moons ago. I&amp;rsquo;d just like to say a massive thanks really. I&amp;rsquo;d spent years laughing at the books while I was growing up and your efforts enabled me to instantly find all those excellent strips I&amp;rsquo;d remembered.
All the best
Graham:-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://thejeshgn.com&#34;&gt;Thejesh GN&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;15 Jun 2010 7:03 pm&lt;/em&gt;:
sad :(&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Naveen Arur&lt;/strong&gt; &lt;em&gt;16 Jun 2010 1:02 pm&lt;/em&gt;:
Really sad man. I am such a huge fan of C&amp;amp;H. Hope United Media comes to their senses and make use of your hard work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Li&lt;/strong&gt; &lt;em&gt;29 Oct 2010 6:43 pm&lt;/em&gt;:
Anand, thanks for your great efforts. I stumbled across your Calvin &amp;amp; Hobbes site years ago and loved it, but I always knew it wouldn&amp;rsquo;t stay around forever. Alas, it was fun while it lasted.
Ravi Atluri, thanks for posting on 8/13/10. I&amp;rsquo;m sure that&amp;rsquo;ll be taken down someday too. I&amp;rsquo;ll keep it to myself.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hope&lt;/strong&gt; &lt;em&gt;2 Dec 2010 10:19 am&lt;/em&gt;:
I REALLY miss your website. :( I&amp;rsquo;d use it all the time, cuz i find myself in the exact situations as you, where I can come up with a calvin and hobbes strip for almost every situation in life and in most conversations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://x-f.lv/&#34;&gt;x-f&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;7 Dec 2010 7:16 pm&lt;/em&gt;:
Hi!
I too used the search feature for a couple of years. It was sooo great I could instantly find the right strip I was looking for! Sad you had to remove it all.
A very big thank you for your efforts writing it all down by hand! Hope it comes back one day.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://thefinebalance.wordpress.com&#34;&gt;Prashanth&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;14 Feb 2011 7:36 pm&lt;/em&gt;:
It&amp;rsquo;s really sad that you had to take down the Calvin &amp;amp; Hobbes archives . I used to come to this site often to look up Calvin strips - for example the one where he goes into a dimension where time has no meaning!
Came in today to look for strips where Calvin&amp;rsquo;s father tells him to eat his vegetables because it builds character and discovered this page. Anyway, just thought I would tell you - thank you for all your efforts!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BabyGodfather&lt;/strong&gt; &lt;em&gt;15 Jan 2012 7:19 am&lt;/em&gt;:
Man, this is really sad that you had to take it down. I had the exact same problems about searching the right Calvin&amp;rsquo;s strips at the right moment as you. Maybe only you know my annoyance.
Is there anything that we could do ? I mean, I don&amp;rsquo;t think it needed to be taken down. They didn&amp;rsquo;t have any problems people posting Calvin strips in their blogs, did they ?
Are they taking down all the pages that include Calvin Strips ? It&amp;rsquo;s ridiculous.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://blog.gramener.com/595/visualising-text&#34;&gt;Visualising Text | Gramener blog&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;28 Jul 2012 5:01 am&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[&amp;hellip;] to the joys that are lawyrs, @sanand0 was asked to take the Calvin &amp;amp; Hobbes text archive down. &lt;a href=&#34;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&#34;&gt;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&lt;/a&gt; [&amp;hellip;]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://www.s-anand.net/blog/from-calvin-hobbes-to-photo-tagging-excels-unexpected-image-capability/&#34;&gt;From Calvin &amp;amp; Hobbes to Photo Tagging: Excel&#39;s Unexpected Image Capability - S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;26 Mar 2024 8:55 am&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[…] This is how I transcribed every Calvin &amp;amp; Hobbes. […]&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Calvin, speechless</title>
      <link>https://www.s-anand.net/blog/calvin-speechless/</link>
      <pubDate>Wed, 03 Mar 2010 19:57:38 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/calvin-speechless/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1986/ch860215.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1987/ch870803.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1988/ch880819.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1989/ch890412.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1990/ch900101.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1990/ch900104.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1991/ch910126.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1991/ch910420.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1992/ch920206.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1992/ch921001.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1993/ch930614.gif&#34;&gt; &lt;img loading=&#34;lazy&#34; src=&#34;http://picayune.uclick.com/comics/ch/1995/ch951023.gif&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vinu&lt;/strong&gt; &lt;em&gt;28 Apr 2010 11:25 pm&lt;/em&gt;:
Nice ! what did you do? Manually erase the text? Knowing you, i suspect there is some automation at work here :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/&#34;&gt;S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;29 Apr 2010 7:17 am&lt;/em&gt;:
Oh, not quite. By 2006, I&amp;rsquo;d typed out all the Calvin and Hobbes (by hand, spending 6 years at it). This was just filtering all the strips that didn&amp;rsquo;t have any text on them :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vinu&lt;/strong&gt; &lt;em&gt;30 Apr 2010 5:52 pm&lt;/em&gt;:
Ouch. That&amp;rsquo;s a lot of typing. Surprised you did not crowdsource it&amp;hellip; Perhaps for the next assignment? Asterix comics anybody?&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Dilbert search statistics</title>
      <link>https://www.s-anand.net/blog/dilbert-search-statistics/</link>
      <pubDate>Fri, 10 Oct 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/dilbert-search-statistics/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been three weeks since I &lt;a href=&#34;https://www.s-anand.net/blog/dilbert-search-engine/&#34;&gt;initiated the effort to type in the Dilbert strips&lt;/a&gt; and the results are encouraging. About 2 years worth of strips &lt;a href=&#34;http://dilbert-search.appspot.com/&#34;&gt;have been typed out&lt;/a&gt;. So this &lt;a href=&#34;https://www.s-anand.net/blog/dilbert.html&#34;&gt;Dilbert viewer&lt;/a&gt; now has a reasonably sized index for searching.&lt;/p&gt;
&lt;p&gt;Many thanks are in order here. The first is due to &lt;a href=&#34;http://www.geek.nl/&#34;&gt;geek.nl&lt;/a&gt;, whose &lt;a href=&#34;http://www.geek.nl/pics/dilbert-arch/&#34;&gt;images&lt;/a&gt; I have taken the liberty of hotlinking. Thanks also to those who&amp;rsquo;ve taken the time out to type strips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;granger95&lt;/li&gt;
&lt;li&gt;bthangaraj&lt;/li&gt;
&lt;li&gt;gdibyo&lt;/li&gt;
&lt;li&gt;adrienbernard&lt;/li&gt;
&lt;li&gt;sundar.ramakrishnan&lt;/li&gt;
&lt;li&gt;pistohl&lt;/li&gt;
&lt;li&gt;waywardone&lt;/li&gt;
&lt;li&gt;balamurugan.cse&lt;/li&gt;
&lt;li&gt;sruppenthal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;hellip; and several others.&lt;/p&gt;
&lt;p&gt;When I initially planned to share the typing of the Dilbert strips, I anticipated that I would probably type in the most, and almost no one would pitch in. While I still have typed in the most, the contributions of the above have been of great help in more than the obvious way. When I typed out 10 years of &lt;a href=&#34;https://www.s-anand.net/blog/calvin/&#34;&gt;Calvin &amp;amp; Hobbes&lt;/a&gt;, it took me 5 years. This is 2 years of Dilbert in 3 weeks. If nothing else, it&amp;rsquo;s pushing me to work harder on this. So thanks again for the motivation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here&amp;rsquo;s my request again to all you Dilbert fans.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Please go to &lt;a href=&#34;http://dilbert-search.appspot.com/&#34;&gt;dilbert-search.appspot.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Log in using your Google account and type in as many strips as you like&lt;/li&gt;
&lt;li&gt;Bookmark it for the future, whenever you&amp;rsquo;re bored&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&amp;rsquo;s a &lt;a href=&#34;http://wordle.net/&#34;&gt;Wordle&lt;/a&gt; cloud of all the strips typed out so far (with Dilbert and Pointy Haired Boss removed.)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-dilbert_2929866694_o-png.webp&#34; title=&#34;Dilbert word cloud&#34;&gt;&lt;img alt=&#34;Dilbert&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-dilbert_2929866694_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Seeing that there&amp;rsquo;s more &amp;ldquo;good&amp;rdquo; than &amp;ldquo;bad&amp;rdquo;, and more &amp;ldquo;like&amp;rdquo; than &amp;ldquo;dislike&amp;rdquo; or &amp;ldquo;hate&amp;rdquo;, you might even call Dilbert an optimistic strip.)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dibyo&lt;/strong&gt; &lt;em&gt;21 Oct 2008 8:10 am&lt;/em&gt;:
You&amp;rsquo;ve posted this again? Each time you post this, I do atleast one strip!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Oct 2008 6:18 am&lt;/em&gt;:
Hmm&amp;hellip; don&amp;rsquo;t know why that happened. I didn&amp;rsquo;t realise it appeared again on&lt;br&gt;
Google Reader until yesterday. Maybe I just changed a word or so. Well, all&lt;br&gt;
the better :-)&lt;br&gt;
Anand&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elleana&lt;/strong&gt; &lt;em&gt;25 Oct 2008 11:22 am&lt;/em&gt;:
How should &amp;ldquo;Pointy Haired Boss&amp;rdquo; be capitalized?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Oct 2008 11:25 am&lt;/em&gt;:
I&amp;rsquo;m not sure, Elleana. I use &amp;ldquo;Pointy haired boss&amp;rdquo; consistently. I think&lt;br&gt;
you&amp;rsquo;ve used &amp;ldquo;Pointy Haired Boss&amp;rdquo; consistently. Since the search is&lt;br&gt;
ultimately case-insensitive, I guess it&amp;rsquo;s OK either way.&lt;br&gt;
And thanks for all your effort!&lt;br&gt;
&lt;br&gt;
Anand&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ray&lt;/strong&gt; &lt;em&gt;30 Oct 2008 8:06 am&lt;/em&gt;:
Hi,&lt;br&gt;
&lt;br&gt;
I was reading ur blog posts and found some of them to be very good.. u write well.. Why don&amp;rsquo;t you popularize it more.. ur posts on ur blog took my particular attention as some of them are interesting topics of mine too;&lt;br&gt;
&lt;br&gt;
BTW I help out some ex-IIMA guys who with another batch mate run &lt;a href=&#34;https://www.rambhai.com&#34;&gt;www.rambhai.com&lt;/a&gt; where you can post links to your most loved blog-posts. Rambhai was the chaiwala at IIMA and it is a site where users can themselves share links to blog posts etc and other can find and vote on them. The best make it to the homepage!&lt;br&gt;
&lt;br&gt;
This way you can reach out to rambhai readers some of whom could become your ardent fans.. who knows.. :)&lt;br&gt;
&lt;br&gt;
Cheers,&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Dilbert search engine</title>
      <link>https://www.s-anand.net/blog/dilbert-search-engine/</link>
      <pubDate>Thu, 18 Sep 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/dilbert-search-engine/</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE: 13 Jan 2026&lt;/strong&gt;: &lt;a href=&#34;https://en.wikipedia.org/wiki/Scott_Adams&#34;&gt;Scott Adams&lt;/a&gt; passed away. RIP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: Mar 2023&lt;/strong&gt;: &lt;a href=&#34;https://dilbert.com/&#34;&gt;Dilbert.com&lt;/a&gt; was closed but &lt;a href=&#34;https://web.archive.org/web/20220929025803/https://dilbert.com/strip/2022-09-20&#34;&gt;archives&lt;/a&gt; are accessible via the &lt;a href=&#34;https://archive.org/web/&#34;&gt;Wayback Machine&lt;/a&gt; (slow). Search does not work well. &lt;a href=&#34;https://dilbert-viewer.herokuapp.com/&#34;&gt;Dilbert viewer&lt;/a&gt; is an alternate interface &lt;a href=&#34;https://www.reddit.com/r/dilbert/comments/11vfvq7/i_created_a_website_to_conveniently_browse_all/&#34;&gt;via Reddit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: 2012&lt;/strong&gt;: &lt;a href=&#34;http://dilbert-search.appspot.com/&#34;&gt;dilbert-search.appspot.com&lt;/a&gt; died, likely of old age.&lt;/p&gt;
&lt;p&gt;&amp;ndash;&lt;/p&gt;
&lt;p&gt;Wouldn&amp;rsquo;t it be cool to be able to search through the Dilbert archives using text?&lt;/p&gt;
&lt;p&gt;This used to be possible at &lt;a href=&#34;http://www.dilbert.com/&#34;&gt;Dilbert.com&lt;/a&gt; some years ago, as a paid service. In late 2003, I needed to find some Dilbert strips for a client, so I&amp;rsquo;d subscribed for a year. I could then search for the quotes (I happened to be looking for &amp;ldquo;outsourcing&amp;rdquo;, so you can guess the context).&lt;/p&gt;
&lt;p&gt;But I can&amp;rsquo;t seem to find the feature any more, even as a paid service. The site looks a lot better, of course. But I can&amp;rsquo;t find strips.&lt;/p&gt;
&lt;p&gt;Well, why not type them out? After all, I&amp;rsquo;d done that with &lt;a href=&#34;https://www.s-anand.net/blog/calvin/&#34;&gt;Calvin and Hobbes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This would be a much larger exercise, though. And I&amp;rsquo;m hoping to take your help. I&amp;rsquo;ve set up a site at &lt;a href=&#34;http://dilbert-search.appspot.com/&#34;&gt;dilbert-search.appspot.com&lt;/a&gt;. You can type in a comic randomly, starting from 2000. These will be made searchable on &lt;a href=&#34;https://www.s-anand.net/blog/dilbert.html&#34;&gt;my Dilbert page&lt;/a&gt;. You can export the data and use it yourself, of course.&lt;/p&gt;
&lt;p&gt;When typing in Calvin and Hobbes, I did have a few volunteers willing to pitch in, but collaboration tools weren&amp;rsquo;t easy to set up, and I ended up typing the whole thing myself. This time, I&amp;rsquo;d be delighted if even 10 people typed in just a strip each.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;So, here&amp;rsquo;s my request, to all you Dilbert fans.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Please go to &lt;a href=&#34;http://dilbert-search.appspot.com/&#34;&gt;dilbert-search.appspot.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Log in using your Google account and type in as many strips as you like&lt;/li&gt;
&lt;li&gt;Bookmark it for the future, whenever you&amp;rsquo;re bored&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As I said, the data is readily exportable from the page, so if you&amp;rsquo;re looking to do cool mash-ups with it, great! And if you want the data exported in other formats, please let me know.&lt;/p&gt;
&lt;p&gt;Incidentally, I created the site using &lt;a href=&#34;http://appengine.google.com/&#34;&gt;Google AppEngine&lt;/a&gt;. The source code is at &lt;a href=&#34;http://dilbert-search.googlecode.com/&#34;&gt;dilbert-search.googlecode.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dibyo&lt;/strong&gt; &lt;em&gt;18 Sep 2008 11:50 am&lt;/em&gt;:
Stud: I suggest that you add an option of putting tags on the comic strip apart from just the transcribed script. It might be useful while searching. I&amp;rsquo;ll contribute in the meanwhile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;18 Sep 2008 5:10 pm&lt;/em&gt;:
Thanks, Dibyo.&lt;br&gt;
&lt;br&gt;
Regarding the tags, since full text search will be supported, you could just add any additional tags in brackets at the bottom. I don&amp;rsquo;t want to complicate the data structure just yet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vanaja Sarma&lt;/strong&gt; &lt;em&gt;19 Sep 2008 12:47 am&lt;/em&gt;:
Hey Anand&lt;br&gt;
&lt;br&gt;
How about using these links&amp;hellip;the first to search by keyword and the second for the actual strip using date&lt;br&gt;
&lt;br&gt;
&lt;a href=&#34;http://www.bfmartin.ca/finder/index.php?page=home&#34;&gt;http://www.bfmartin.ca/finder/index.php?page=home&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://dribibu.xs4all.nl/dilbert.html&#34;&gt;http://dribibu.xs4all.nl/dilbert.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;19 Sep 2008 1:07 am&lt;/em&gt;:
@Vanaja: I&amp;rsquo;ve used the Dilbert strip finder before, and it&amp;rsquo;s great. But it doesn&amp;rsquo;t seem to be updated, and it doesn&amp;rsquo;t have the actual words in the comic, which is what I&amp;rsquo;m hoping to correct.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thangaraj&lt;/strong&gt; &lt;em&gt;25 Sep 2008 2:42 pm&lt;/em&gt;:
I found a list of characters with image in the URL below. Guess you could link it to this in the typing page since its easier to check which character it is.&lt;br&gt;
&lt;br&gt;
&lt;a href=&#34;http://www.unitedmedia.com/comics/dilbert/the&#34;&gt;http://www.unitedmedia.com/comics/dilbert/the&lt;/a&gt;_characters/html/character2.html&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elleana&lt;/strong&gt; &lt;em&gt;25 Sep 2008 11:34 pm&lt;/em&gt;:
I can&amp;rsquo;t wait until we&amp;rsquo;re done with the Dilbert database. I actually found your site a while ago because I was searching for a Calvin and Hobbes strip.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;26 Sep 2008 1:32 am&lt;/em&gt;:
@Thangaraj: Thanks. Will link to it.&lt;br&gt;
@Elleana: Me too! We&amp;rsquo;re done with about a year&amp;rsquo;s worth of work now. Hope to have everything done by end of 2008.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Marty&lt;/strong&gt; &lt;em&gt;10 Feb 2009 11:13 am&lt;/em&gt;:
I&amp;rsquo;ve been using Dilbert search engines to find a specific cartoon for a while now. I read it in one of the books. I recall it being a square book with four frames per page. A woman is telling a man about how her husband mooned a zoo animal and was killed by it. The man in the frame is trying not to laugh so hard that his heart blows out his back. Can anyone help me find this cartoon? I&amp;rsquo;d love to see it again.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CCurly&lt;/strong&gt; &lt;em&gt;24 Feb 2009 9:39 pm&lt;/em&gt;:
This list (&lt;a href=&#34;http://john.ccac.rwth-aachen.de:8000/ftp/dilbert/dilbert.txt&#34;&gt;http://john.ccac.rwth-aachen.de:8000/ftp/dilbert/dilbert.txt&lt;/a&gt;) is almost complete, but for years earlier than 1995 the index is not a date but a reference to a Dilbert book. I see some spelling errors also, and it&amp;rsquo;s missing the &amp;ldquo;who said it&amp;rdquo; part. Perhaps it&amp;rsquo;s usable as a way to get some content, and you could let people check the text in stead of having them type it.
Love the idea !!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/&#34;&gt;S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;24 Feb 2009 11:09 pm&lt;/em&gt;:
Thanks CCurly! This looks to be a useful resource. A lot of strips are incomplete, but it will definitely help accelerate the effort. I&amp;rsquo;ll see if I can parse it and get the data in.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sid Shniad&lt;/strong&gt; &lt;em&gt;20 Mar 2009 4:57 pm&lt;/em&gt;:
I&amp;rsquo;m looking for the following Dilbert cartoon, but had no luck on your site. Is there any chance you could find it and send it my way? Thanks. (It ran in 2003, possibly August 9.)
Sid Shniad
dilbert: i have some disturbing news.
dilbert: we outsourced our customer-service function to india a few years ago.
pointy haired boss: so?
dilbert: apparently, they subcontracted the job to mexico.
dilbert: then mexico sub-contracted to vietnam, who sub-contracted to the philippines&amp;hellip;
dilbert: &amp;hellip;who subcontracted it to us.
dilbert: it turns out that we&amp;rsquo;re the lowest cost provider, because we lie about our hold times.
dilbert: in summary, we pay ourselves to hose ourselves.
dilbert: are you thinking what i&amp;rsquo;m thinking?
pointy haired boss: we should raise our prices?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/&#34;&gt;S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;23 Mar 2009 7:46 am&lt;/em&gt;:
You had the date bang-on. It&amp;rsquo;s at &lt;a href=&#34;http://www.s-anand.net/dilbert.html#20030803&#34;&gt;http://www.s-anand.net/dilbert.html#20030803&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BlueBird&lt;/strong&gt; &lt;em&gt;5 Apr 2009 1:39 am&lt;/em&gt;:
I sent Scott Adams a suggestion and he made a strip from it, and like a dummy I put the paper in recycling before I saved the strip. Can you help me? It was about a co-worker who stood and talked to someone else, killing time at another co-worker&amp;rsquo;s expense, until it was time for him (1st guy) to either go to lunch or go home. Then he leaves and his victimn has to stay late to get his/her work finished. Since the boss doesn&amp;rsquo;t know from computers, the guy just stands and throws out computing terms in relative nonsense until he&amp;rsquo;s ready to clear out.
I think it ran on a Thursday about a year, to two years ago. I&amp;rsquo;d love to find a copy of it. (He&amp;rsquo;s still doing it)I suggested to Mr. Adams that he make the character very fat, with suspenders, and I think he did. Thanks!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.viscerallogic.com/paul/blog&#34;&gt;Paul&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;15 Apr 2009 6:40 pm&lt;/em&gt;:
I have transcribed the text from 11-14-2003 to the present, including which character say it. You could probably reformat it to work for you. Also, on dilbert.com you can now view strips all the way back to the beginning. Let me know if you want me to email it to you or something.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adrian&lt;/strong&gt; &lt;em&gt;7 Nov 2009 6:15 pm&lt;/em&gt;:
Heya! I love the Dilbert search page. I made my own and typed a lot of strips, but deleted the database without a backup. Doh! Then I found yours. But, the page seems to have issues right now. It&amp;rsquo;s slow to view and usually crashes with an error. Please fix it so I can enter lots of strips!~ Also thanks for making the data easily downloadable.
-a&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vanaja&lt;/strong&gt; &lt;em&gt;20 Jul 2010 11:34 am&lt;/em&gt;:
Looks like its updated&amp;hellip;
&lt;a href=&#34;http://dilbert.com/blog/entry/strip&#34;&gt;http://dilbert.com/blog/entry/strip&lt;/a&gt;_search/&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://dilbert.is-a-geek.com/&#34;&gt;TelDaMan&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;24 Mar 2012 10:43 pm&lt;/em&gt;:
Hey Anand, this is really excellent work! About a year ago I started trawling for the text and strips and found some really good resources, including yours. Thanks!!
My website &lt;a href=&#34;http://dilbert.is-a-geek.com/&#34;&gt;http://dilbert.is-a-geek.com/&lt;/a&gt; automatically updates every day with new strips. It also OCR&amp;rsquo;s the text on the strip and comes up a 80%+ guess on the words and then indexes them. Sadly I have to manually edit each strip to fix up the words to 100%. My next phase is to get visual recognisation going for the characters so it knows &amp;lsquo;who said what&amp;rsquo;. My final aim is to get &amp;ldquo;deep searching&amp;rdquo; setup. This should help find strips really easily (based on test, pictures, etc) as well as suggest other strips :-)&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Calvin and Hobbes index - 900602</title>
      <link>https://www.s-anand.net/blog/calvin-and-hobbes-index-900602/</link>
      <pubDate>Tue, 27 Dec 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/calvin-and-hobbes-index-900602/</guid>
      <description>&lt;p&gt;My &lt;a href=&#34;https://www.s-anand.net/blog/calvin/&#34;&gt;Calvin and Hobbes index&lt;/a&gt; is current up to June 1990.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sathya&lt;/strong&gt; &lt;em&gt;28 Dec 2005 3:23 am&lt;/em&gt;:
Are you manually typing all these stuff ? Ammadiyov &amp;hellip; why dont u outsource such stuff :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;28 Dec 2005 8:04 am&lt;/em&gt;:
Whom to? :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ritzkini&lt;/strong&gt; &lt;em&gt;28 Dec 2005 8:32 am&lt;/em&gt;:
!!! :O all by yourself !!?? crazy about C&amp;amp;H,eh ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;28 Dec 2005 10:55 am&lt;/em&gt;:
Completely. And I&amp;rsquo;m not the only one I know either!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vikram&lt;/strong&gt; &lt;em&gt;29 Dec 2005 12:03 am&lt;/em&gt;:
wow awesome man! i&amp;rsquo;m crazy about C&amp;amp;H too. great work man. :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sathya&lt;/strong&gt; &lt;em&gt;30 Dec 2005 3:25 am&lt;/em&gt;:
Now you know whom to outsource to ;-P&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;30 Dec 2005 10:43 am&lt;/em&gt;:
Hey, my index vanished!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;30 Dec 2005 10:24 pm&lt;/em&gt;:
It&amp;rsquo;s back.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Madhu&lt;/strong&gt; &lt;em&gt;5 Jan 2006 7:57 am&lt;/em&gt;:
Did you try the Calvin Hobbes entire collection for their 20th Anniversary. Its about 5k in India.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;5 Jan 2006 6:00 pm&lt;/em&gt;:
Very tempting!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;9 Jan 2006 8:07 am&lt;/em&gt;:
i have an internet link to the complete c&amp;amp;h, let me know if you would like iy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;10 Jan 2006 9:08 am&lt;/em&gt;:
Is it in text? I&amp;rsquo;d really like the complete Calvin in TEXT.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;11 Jan 2006 11:16 am&lt;/em&gt;:
&lt;a href=&#34;http://members.shaw.ca/adamhighstead/subjects.html&#34;&gt;Calvin theme subjects&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Madhu&lt;/strong&gt; &lt;em&gt;18 Jan 2006 9:53 am&lt;/em&gt;:
Let me help you with this. I will work on Calvin and Hobbes backwards from 31-12-95 and see where I can reach&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;18 Jan 2006 10:52 am&lt;/em&gt;:
Thanks, Madhu! That&amp;rsquo;ll be wonderful. Someone else I know in Germany working backwards from 31-12-95. How about if you take it forward from 01-01-93?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JustSomebody&lt;/strong&gt; &lt;em&gt;3 Apr 2010 5:17 am&lt;/em&gt;:
Excuse me, but I think this strip search is broken. For some reason, it only has comics up to July 31, 1988. All the other comics aren&amp;rsquo;t showing and the text is replaced with jibberish.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/&#34;&gt;S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;3 Apr 2010 8:02 am&lt;/em&gt;:
Yes &amp;ndash; thanks for pointing this out. Fixed it now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&#34;&gt;The Calvin and Hobbes search Takedown | s-anand.net&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 May 2010 12:02 pm&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[&amp;hellip;] bit puzzled, but just added it to my list of eccentricities and carried on. I was halfway there in 2005, pushed further in 2006, and with some help, I managed to finally complete [&amp;hellip;]&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Calvin quotes</title>
      <link>https://www.s-anand.net/blog/calvin-quotes/</link>
      <pubDate>Mon, 01 Aug 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/calvin-quotes/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve typed up a some &lt;a href=&#34;https://www.s-anand.net/blog/calvin/&#34;&gt;Calvin and Hobbes quotations&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FrogsIntoPrinces&lt;/strong&gt; &lt;em&gt;1 Aug 2005 2:05 pm&lt;/em&gt;:
By the way I have the entire C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;1 Aug 2005 7:26 pm&lt;/em&gt;:
As text? Or the images?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;2 Aug 2005 2:44 pm&lt;/em&gt;:
Unfortunately images&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;2 Aug 2005 2:45 pm&lt;/em&gt;:
And for links, check out &lt;a href=&#34;http://digg.com/spy&#34;&gt;http://digg.com/spy&lt;/a&gt; They use Ajax, which is a Good Thing (TM).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ravi&lt;/strong&gt; &lt;em&gt;2 Aug 2005 7:14 pm&lt;/em&gt;:
There is a searchable text-index at &lt;a href=&#34;http://users.rcn.com/dtweed/calvin/index.htm&#34;&gt;http://users.rcn.com/dtweed/calvin/index.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;2 Aug 2005 7:38 pm&lt;/em&gt;:
I know. I wrote to David in Feb. He could not share his database with me. So I am recreating it.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>How DNA gets converted to proteins</title>
      <link>https://www.s-anand.net/blog/how-dna-gets-converted-to-proteins/</link>
      <pubDate>Mon, 26 Jul 2004 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/how-dna-gets-converted-to-proteins/</guid>
      <description>&lt;p&gt;An animated description of how &lt;a href=&#34;http://www.agresearch.co.nz/scied/search/molecular/dnatalks.htm&#34;&gt;DNA gets converted to proteins&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Calvin and Hobbes transcription</title>
      <link>https://www.s-anand.net/blog/calvin-and-hobbes-transcription/</link>
      <pubDate>Wed, 11 Sep 2002 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/calvin-and-hobbes-transcription/</guid>
      <description>&lt;p&gt;My current project: transcribing every Calvin and Hobbes into text. Because I&amp;rsquo;d like to search, using text, for the strip in which Tracer Bullet has &amp;ldquo;six slugs, one of lead and five of bourbon&amp;rdquo; or where Dad explains why the Sun rises.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/blog/the-calvin-and-hobbes-search-takedown/&#34;&gt;The Calvin and Hobbes search Takedown | s-anand.net&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 May 2010 11:55 am&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[&amp;hellip;] So I set out to build one. I can’t remember when, exactly, but it was before Sep 11, 2002. [&amp;hellip;]&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
  </channel>
</rss>
