<?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>learning on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/learning/</link>
    <description>Recent content in learning on S Anand</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/learning/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Things I Learned - 22 Mar 2026</title>
      <link>https://www.s-anand.net/blog/things-i-learned-22-mar-2026/</link>
      <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-22-mar-2026/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Psychological operations in design by &lt;a href=&#34;https://www.linkedin.com/in/narendraghate/&#34;&gt;Narendra Ghate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;When lights are dimmed people speak softer. So, dimming lights reduces sound levels in noisy offices.&lt;/li&gt;
&lt;li&gt;Rather than reduce the size of shampoo sachets (which customers and business both hate), include 2 shampoos in one sachet, tearable in the middle.&lt;/li&gt;
&lt;li&gt;Price saches at 95p with a 5p deposit for the sachet - which rag-pickers can collect and return to the retailer.&lt;/li&gt;
&lt;li&gt;People think of stains like wounds on cloth. So a &amp;ldquo;stain band-aid&amp;rdquo; where you stick a strip, and remove it after 5 min to remove the stain, is catchy.&lt;/li&gt;
&lt;li&gt;A mechanical wind-up fish that stirs the water in the bucket while clothes are soaking speeds up the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Senthil &amp;amp; Amutha, founders of &lt;a href=&#34;https://www.payir.org/&#34;&gt;Payir&lt;/a&gt; demonstrated a &lt;a href=&#34;https://thinaistore.myinstamojo.com/product/fabric-calendar-hanging-model-reusable&#34;&gt;re-usable fabric calendar&lt;/a&gt; that converts into a bag for re-use. Pretty clever! Their message at the &lt;a href=&#34;https://www.chennaidesignfestival.com/&#34;&gt;Chennai Design Festival&lt;/a&gt; was that good design can be &lt;em&gt;for&lt;/em&gt; the masses and &lt;em&gt;by&lt;/em&gt; the masses to reclaim their time, energy, and joy.&lt;/li&gt;
&lt;li&gt;The urinary bladder works based on &lt;em&gt;involuntary&lt;/em&gt; muscular contractions towards the end, to clear out the last bits of fluid. It&amp;rsquo;s not fluid flow, it&amp;rsquo;s muscle contractions. (Oh, the things I learn!) &lt;a href=&#34;https://gemini.google.com/share/87351b16e4b6&#34;&gt;Gemini&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Indigo bans ghee in cabin baggage. Also coconuts, pickles, oily foods, gooey cakes, spices (masala, powders), strong-smelling food. &lt;a href=&#34;https://chatgpt.com/share/69bc0652-bdbc-8003-9326-b48a91d5bd2c&#34;&gt;ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New skill unlocked: how to demo without knowing what you&amp;rsquo;re demo-ing. STEP 1: Copy-paste all demo pages as Markdown. STEP 2: Tell AI &amp;ldquo;Here is a demo I&amp;rsquo;ll be showing. (Add context.) Tell me how I should explain this and what I should point out as specific examples. Use concise bullets.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve learnt not to do things we don&amp;rsquo;t know how to (until we learn it). When AI is doing things, this is a bottleneck. Get out of the way. Stop filtering for what YOU can do. Stop learning what IT can do. Ask for it. That&amp;rsquo;s faster. Learning can come later.&lt;/li&gt;
&lt;li&gt;I keep forgetting that QR codes need a white border for them to work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/JamesLMilner/terra-draw&#34;&gt;TerraDraw&lt;/a&gt; provides a unified API across multiple mapping libraries. (In the vibe-coding era, this is not as useful.)&lt;/li&gt;
&lt;li&gt;To create desktop apps declaratively on Linux, Slint, Flutter, QML(Qt) and GTK4 are options. Slint and Flutter seem to be cross platform. Slint is newer, less mature but compiles to small fast binaries and might be a good option to explore. Flutter seems more mature and fairly popular. &lt;a href=&#34;https://claude.ai/share/183cd28a-be7e-4857-a6ff-6c919e3a9c15&#34;&gt;Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pytorch.org/blog/automated-trace-collection/&#34;&gt;PyTorch Tracing&lt;/a&gt; watches one forward pass and freezes the path into a portable recipe. But it silently ignores branches your example didn&amp;rsquo;t take. &lt;a href=&#34;https://claude.ai/share/7d970eff-56a5-4502-9afd-3fcf8648df2a&#34;&gt;Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Internet is forking into a human internet vs an agent web &lt;a href=&#34;https://www.linkedin.com/posts/saamnaghshineh_automate-faster-activity-7431817567536627712-vkLz/&#34;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://samgeo.gishub.org/&#34;&gt;SamGeo&lt;/a&gt; is a Python Package for geospatial image processing. While &lt;a href=&#34;https://allenai.org/olmoearth&#34;&gt;OlmoEarth&lt;/a&gt; provides geospatial embeddings, SamGeo can convert geospatial data to vector data! So you can do things like:
&lt;ul&gt;
&lt;li&gt;Create the outer boundary of all apartments with swimming pools in a city&lt;/li&gt;
&lt;li&gt;Extract the shape of all lakes across the years to find out how they&amp;rsquo;re changing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Terence started Foundation for Science and AI Research (SAIR) to use AI in science research. Verifiable proofs (e.g. &lt;a href=&#34;https://lean-lang.org/&#34;&gt;LEAN&lt;/a&gt;) are a big part of this.&lt;/li&gt;
&lt;li&gt;Since AI needs to run on phones and that needs GPUs, a lot of phones might need replacement in the next few years.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Things I Learned - 11 Jan 2026</title>
      <link>https://www.s-anand.net/blog/things-i-learned-11-jan-2026/</link>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-11-jan-2026/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.softwareheritage.org/&#34;&gt;Software Heritage&lt;/a&gt; is a non-profit that archives software. You can &lt;a href=&#34;https://archive.softwareheritage.org/save/&#34;&gt;submit any Git repo&lt;/a&gt; for archival. Over 400 million projects have been archived so far.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/36085.Everything_Bad_is_Good_for_You&#34;&gt;Everything Bad Is Good For You&lt;/a&gt; by Steven Johnson (2005) argues that pop culture isn&amp;rsquo;t all bad. But it isn&amp;rsquo;t all good either, unlike the book&amp;rsquo;s claims. &lt;a href=&#34;https://claude.ai/share/15255c7e-c9ec-4251-8837-321612597c49&#34;&gt;Claude&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Popular culture formats (e.g. video games, manga, soap operas, game shows) are steadily more cognitively demanding, complex.&lt;/li&gt;
&lt;li&gt;They provide a dopamine kick from problem-solving.&lt;/li&gt;
&lt;li&gt;These may have led to the Flynn Effect (rising IQs in 1990s-2000s). Or it may be due to nutrition, smaller families, education, etc.&lt;/li&gt;
&lt;li&gt;Action games correlate with visual-spatial skills. Strategy games correlate with memory, planning. But is it causation? It doesn&amp;rsquo;t always translate to real-world skills.&lt;/li&gt;
&lt;li&gt;Also, side effects are real and bad: screen-time, addiction, misinformation, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The purpose of a featured image in a blog post is to help readers decide whether to read it. Share the article&amp;rsquo;s output/focus (e.g. for data stories, products). Else a visual summary (e.g. sketchnote, comic capturing the essence). Else skip. Avoid stock photos. &lt;a href=&#34;https://gemini.google.com/u/2/app/a465e10b89d53dbc&#34;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nflsavant.com/about.php&#34;&gt;NFLSavant.com&lt;/a&gt; has play-by-play data for NFL games.&lt;/li&gt;
&lt;li&gt;Ten of the least well known psychology / sociology research findings. &lt;a href=&#34;https://chatgpt.com/share/695cd05c-df64-8003-87e1-ad47ed8ef2a1&#34;&gt;ChatGPT&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Learning styles are a myth. People might &lt;em&gt;prefer&lt;/em&gt; visual / audio / &amp;hellip; learning but it doesn&amp;rsquo;t help learning. &lt;strong&gt;Mix learning modes&lt;/strong&gt;. NotebookLM can help.&lt;/li&gt;
&lt;li&gt;Casual acquaintances help find new information or jobs much more than close friends, since they&amp;rsquo;re in different social circles. &lt;strong&gt;Nurture weak ties&lt;/strong&gt;. Use a relationship architect.&lt;/li&gt;
&lt;li&gt;Tell a lie often enough and people mistake familiarity for truth. &lt;strong&gt;Fact-check habitually&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The more you see / hear something the more you like it. (Exposure effect.) &lt;strong&gt;Expose to good things&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When others mess up, we blame them. When we mess up, we blame the situation. (Attribution error.) &lt;strong&gt;Pause before judging&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sometimes, rewarding people makes them like doing it less. (Overjustification effect.)&lt;/li&gt;
&lt;li&gt;People who know less over-estimate their knowledge. (Dunning-Kruger effect.) &lt;strong&gt;Habitualize calibration&lt;/strong&gt; via feedback and tests.&lt;/li&gt;
&lt;li&gt;People do worse when they&amp;rsquo;re afraid their failure will reflect on their stereotype. (Stereotype threat.) &lt;strong&gt;Practice emotional resets&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Higher expectations lead to better performance. (Pygmalion effect.) &lt;strong&gt;Engineer positive expectations&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Benevolent sexism (e.g. protective paternalism) can be harmful too. &lt;strong&gt;Scan for well-meaning bias&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Liberalism =&amp;gt; economic growth, peace and expanding rights. Also colonial violence, exclusions (women, slavery, &amp;hellip;), and eroding community. It is vulnerable to authoritarianism (e.g. emergency powers, recessions). Since 2006, democracy has &lt;em&gt;consecutively&lt;/em&gt; declined, reversing half the progress since WW2. But alternatives are unclear. &lt;a href=&#34;https://claude.ai/public/artifacts/80d7c519-d431-41e5-8916-926ec433499f&#34;&gt;Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notes from &lt;a href=&#34;https://www.goodreads.com/book/show/427282.The_Periodic_Table&#34;&gt;The Periodic Table&lt;/a&gt; by Primo Levi.
&lt;ul&gt;
&lt;li&gt;Pure Zinc does not dissolve easily in sulphuric acid. An impurity like Copper Sulphate pulls electrons from Zinc and offers them to Hydrogen ions, speeding up the reaction. Impurities, foreign bodies, etc. have a purpose, too.&lt;/li&gt;
&lt;li&gt;Discomfort = Information. Overcoming discomfort = Capability. Capability = Freedom. Therefore: &lt;strong&gt;Seeking discomfort&lt;/strong&gt; (carefully, purposefully) = Building freedom.&lt;/li&gt;
&lt;li&gt;Simple != Easy. Simple = Clear. Clear = Actionable.&lt;/li&gt;
&lt;li&gt;Indifference often feels like malice.&lt;/li&gt;
&lt;li&gt;⭐ Analogies have limits. (The Map is not the Territory.) When using analogies, always explore where, when and why &lt;em&gt;they will break&lt;/em&gt;. Pay close attention near &lt;em&gt;where&lt;/em&gt; they break.&lt;/li&gt;
&lt;li&gt;⭐ Knowledge vanishes with people unless written down. Write &amp;ldquo;Do X. Because of Y. Unless Z changes.&amp;rdquo; The last two are critical.&lt;/li&gt;
&lt;li&gt;I could NOT have read the book without a Randall Munroe re-styling. I cried anyway.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;ldquo;There&amp;rsquo;s about 300-400 that were corporate assets. One watched them all the time. These are people who in 15 years could be CEO. There&amp;rsquo;s something about them that caught your fancy when you were in a meeting&amp;hellip; brilliant ideas that challenged your thinking&amp;hellip; We called them &amp;ldquo;Corporate Assets&amp;rdquo; and tracked them, to make sure we game-planned them, give them the right assignments.&amp;rdquo; &lt;a href=&#34;https://youtu.be/E50ix2Y62y4?t=1613&#34;&gt;Indra Nooyi, The Knowledge Project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/accesskey&#34;&gt;accesskey&lt;/a&gt; attribute works a bit like magic. Adding an &lt;code&gt;accesskey=&amp;quot;h&amp;quot;&lt;/code&gt; on a home page link, or an &lt;code&gt;accesskey=&amp;quot;t&amp;quot;&lt;/code&gt; on a theme toggle button automatically enables keyboard shortcuts Alt+H or Alt+T to activate them. (Varies by browser and OS, but hovering shows the shortcut!)&lt;/li&gt;
&lt;li&gt;Familiarity and recency feel like learning but they&amp;rsquo;re not. Instead: Take tests. Review (spaced repetition). Interleave learning. That&amp;rsquo;s what helps. &lt;a href=&#34;https://claude.ai/public/artifacts/8e5076f4-84c9-497a-ad38-d5654ae3f3b4&#34;&gt;Claude&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/18770267-make-it-stick&#34;&gt;Make It Stick (Peter C. Brown, 2014)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/18693655-a-mind-for-numbers&#34;&gt;A Mind for Numbers (Barbara Oakley, 2014)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/44770129-ultralearning&#34;&gt;Ultralearning (Scott Young, 2019)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/34507927-how-to-take-smart-notes&#34;&gt;How to Take Smart Notes (Sönke Ahrens, 2017)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>It&#39;s not what you know. It&#39;s how you learn</title>
      <link>https://www.s-anand.net/blog/its-not-what-you-know-its-how-you-learn/</link>
      <pubDate>Thu, 27 Mar 2025 15:06:11 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/its-not-what-you-know-its-how-you-learn/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;It&amp;rsquo;s not what you know. It&amp;rsquo;s how you learn&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/calvin.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://simonwillison.net/2024/Nov/11/mdn-browser-support-timelines/&#34;&gt;Simon Willison&amp;rsquo;s blog post&lt;/a&gt; mentioned &lt;a href=&#34;https://github.com/mdn/browser-compat-data/&#34;&gt;MDN&amp;rsquo;s browser compatibility tables&lt;/a&gt; that list the earliest release date for each browser feature. I figured: let&amp;rsquo;s see &lt;strong&gt;which browsers release features fastest&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I calculated average delay for each browser&amp;rsquo;s feature release. For each browser, I looked at how many days after the first release it took to add a feature, averaged it, and published an &lt;a href=&#34;https://sanand0.github.io/webfeatures/&#34;&gt;interactive, scrolly-telling data story&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sanand0.github.io/webfeatures/&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/screenshot.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s interesting is that I built almost all of this using LLMs in about 4 hours with&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cursor.com/&#34;&gt;Cursor&lt;/a&gt; + &lt;a href=&#34;https://www.anthropic.com/news/claude-3-7-sonnet&#34;&gt;Claude 3.7 Sonnet&lt;/a&gt; for data disualization, and&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.google/technology/google-deepmind/gemini-model-thinking-updates-march-2025/&#34;&gt;Gemini 2.5 Experimental 03-25&lt;/a&gt; for the story&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s what I learned in the process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The real winners are off-beat stories.&lt;/strong&gt; Earlier, I&amp;rsquo;d spend 16-24 hours per visual. So, I&amp;rsquo;d stick to the &amp;ldquo;important&amp;rdquo; stories I wanted to tell. Now it takes four hours. That frees me to experiment and share those lesser data stories that get overlooked. &lt;strong&gt;This change is incredibly powerful.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LLMs don&amp;rsquo;t replace &lt;strong&gt;all&lt;/strong&gt; expertise.&lt;/strong&gt; For example, when I saw the data, it didn&amp;rsquo;t immediately tell a story. It took me some time to realize the story isn&amp;rsquo;t how slow browsers are, but how browsers&amp;rsquo; speed evolved over time. For example, in Firefox&amp;rsquo;s early days, it was the &lt;strong&gt;only&lt;/strong&gt; browser actively releasing features. These days, it&amp;rsquo;s one of the slowest. Figuring that out took expertise.&lt;/p&gt;
&lt;p&gt;I spent two decades studying data visualization. So, this comes naturally to me. How does someone new build expertise?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expertise is a moving frontier.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;At BCG in the early 2000s, I built interactive stories with PowerPoint. My PowerPoint skill was the critical expertise.&lt;/li&gt;
&lt;li&gt;At Gramener in the early 2010s, I used D3 for interactive stories. My programming skill was the critical expertise.&lt;/li&gt;
&lt;li&gt;Now, in the mid-twenties, LLMs write code with ease. My expertise is in choosing the right visual and shape the right narrative.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As tools change, expertise evolves. I don&amp;rsquo;t know what the next frontier of expertise will be. I couldn&amp;rsquo;t predict the last few. I can&amp;rsquo;t predict the next.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But LLMs can help build expertise.&lt;/strong&gt; In this project, I missed an opportunity to learn. I should have asked the LLM to show me a dozen options to visualize the data. For example, &amp;ldquo;Show a version geared toward an executive, a technologist, or a general audience&amp;rdquo;. &amp;ldquo;Critique each.&amp;rdquo; Such practice can help anyone - beginner or expert - build skill and learn. Practicing this is hard, but LLMs &lt;strong&gt;do&lt;/strong&gt; help in this process.&lt;/p&gt;
&lt;p&gt;But what gives me confidence is that LLMs &lt;strong&gt;help me learn&lt;/strong&gt;. So, when the next frontier arrives, I&amp;rsquo;m less worried I&amp;rsquo;ll be too old. I think we&amp;rsquo;ll have tools to build expertise too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (28 Mar 2025)&lt;/strong&gt;: Earlier, I wrote that &amp;ldquo;LLMs don&amp;rsquo;t replace expertise&amp;rdquo;. I inferred that because I (an expert) could use an LLM well. &lt;a href=&#34;https://www.oneusefulthing.org/p/the-cybernetic-teammate&#34;&gt;This research&lt;/a&gt; with 700+ people at P&amp;amp;G shows that when given LLMs, outsiders perform as well as insiders. So, I corrected my statement to say, &amp;ldquo;LLMs don&amp;rsquo;t replace &lt;strong&gt;all&lt;/strong&gt; expertise.&amp;rdquo;&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;Ritwik Trivedi&lt;/strong&gt; &lt;em&gt;29 Mar 2025 5:29 pm&lt;/em&gt;:
This is really insightful. I especially loved the visualization and learning that it was made with the help of AI was shocking even though I have generated similar things myself. What stood out I guess was this realization that the prompts reflected expertise. You really had an intuitive idea of direction. Maybe knowledge management along with LLMs augmenting our work is the way forward.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>LLMs can teach experts</title>
      <link>https://www.s-anand.net/blog/llms-can-teach-experts/</link>
      <pubDate>Thu, 02 Nov 2023 05:03:33 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/llms-can-teach-experts/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;LLMs can teach experts&#34; loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2023-11-02-computer-with-crt-monitor.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;I am a fairly good programmer. So, when I see a problem, my natural tendency is to code.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m trying to break that pattern. Instead, I ask ChatGPT.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chat.openai.com/share/1f0858cd-4768-466a-a494-c570e9debb7d&#34;&gt;For example, I asked&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Write a compact 1-line Python expression that checks if &lt;code&gt;user.id&lt;/code&gt; ends with @gramener.com or @straive.com&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;endswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;@gramener.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;@straive.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After 15 years of using Python, I learnt that &lt;code&gt;.endswith()&lt;/code&gt; supports tuple suffixes. This has been around since Python 2.5 (released in 2006 &amp;ndash; before I knew Python.) The documentation has a &lt;strong&gt;tiny&lt;/strong&gt; sentence in the middle saying &amp;ldquo;suffix can also be a tuple of suffixes to look for.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I checked with a few colleagues, including &lt;a href=&#34;https://www.linkedin.com/in/jaidevd/&#34;&gt;Jaidev&lt;/a&gt;. They didn&amp;rsquo;t know it either.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s small little things like this that made me conclude.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to code anymore. ChatGPT will, instead.&lt;/p&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/pycon-2023-talk/</link>
      <pubDate>Fri, 29 Sep 2023 01:45:53 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/pycon-2023-talk/</guid>
      <description>&lt;p&gt;My PyCon talks are a way for me to learn. I usually pick topics I don&amp;rsquo;t know about.&lt;/p&gt;
&lt;p&gt;But at PyCon India 2023 the organizers picked &amp;ldquo;Programming Minecraft with Python&amp;rdquo; - a talk I&amp;rsquo;d given before. So, I started exploring ways to game it.&lt;/p&gt;
&lt;p&gt;(I like gaming things. It&amp;rsquo;s boring otherwise. Once, Infosys had me write a 400-page document. I began each page with a letter that spells out a poem.)&lt;/p&gt;
&lt;p&gt;Sanjeev Sehgal and I were discussing Hasbro Gaming Studios and how Gramener could help with Gen AI, which gave me an idea.&lt;/p&gt;
&lt;p&gt;What if AI could generate code to play Minecraft?&lt;/p&gt;
&lt;p&gt;So welcome to JNTU Hyderabad at 11 am tomorrow for &amp;ldquo;AI Coding &amp;amp; Gaming: Programming Minecraft with Python&amp;rdquo;. I&amp;rsquo;ve no idea what&amp;rsquo;ll happen 🙂&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://in.pycon.org/2023/schedule/&#34;&gt;https://in.pycon.org/2023/schedule/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/feed/update/urn%3Ali%3Ashare%3A7113338063208030208&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Bayes’ Theorem</title>
      <link>https://www.s-anand.net/blog/bayes-theorem/</link>
      <pubDate>Mon, 11 Oct 2010 14:53:01 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/bayes-theorem/</guid>
      <description>&lt;p&gt;I’ve tried understanding &lt;a href=&#34;http://en.wikipedia.org/wiki/Bayes&#39;_theorem&#34;&gt;Bayes’ Theorem&lt;/a&gt; several times. I’ve always managed to get confused. Specifically, I’ve always wondered why it’s better than simply using the average estimate from the past. So here’s a little attempt to jog my memory the next time I forget.&lt;/p&gt;
&lt;p&gt;Q: A coin shows 5 heads when tossed 10 times. What’s the probability of a heads?&lt;br&gt;
A: It’s not 0.5. That’s the most likely estimate. The probability distribution is actually:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/bayesian1.webp&#34;&gt;&lt;img alt=&#34;dbeta(x,5,5)&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/bayesian1.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That’s because you don’t really know the probability with which the coin will throw a heads. It could be any number p. So lets say we have a probability distribution for it, f(p).&lt;/p&gt;
&lt;p&gt;Initially, you don’t know what this probability distribution is. So assume they’re all the same – a flat function: f(p) = 1&lt;a href=&#34;https://www.s-anand.net/blog/assets/bayesian2.webp&#34;&gt;&lt;img alt=&#34;dbeta(x,1,1)&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/bayesian2.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, given this, let’s say a heads falls on the next toss. What’s the revised probability distribution? It’s:&lt;/p&gt;
&lt;p&gt;f(p) ← f(p) * probability(heads | x) / probability(heads) = 1 * (x^1 * (1-x)^0) / 1 = x&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/bayesian3.webp&#34;&gt;&lt;img alt=&#34;dbeta(x,2,1)&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/bayesian3.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Let’s say the next is again a heads. Now it’s&lt;/p&gt;
&lt;p&gt;f(p) ← f(p) * probability(heads | x) / probability(heads) = x * (x^1 * (1-x)^0) / 1 = x^2&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/bayesian4.webp&#34;&gt;&lt;img alt=&#34;dbeta(x,3,1)&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/bayesian4.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now if it’s a tails, it becomes:&lt;/p&gt;
&lt;p&gt;f(p) ← f(p) * prob(tails | x) / prob(tails) = x^2 * (x^0 * (1-x)^1) / 1 = x^2 * (1-x)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/bayesian5.webp&#34;&gt;&lt;img alt=&#34;dbeta(x,3,2)&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/bayesian5.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;… and so on. (This happens to be a called a Beta distribution.)&lt;/p&gt;
&lt;p&gt;Now, instead of this being the probability of heads, it could be the probability of a person having blood pressure, or a document being spam. As you get more data, the probability distribution of the probability keeps getting revised.&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;Ram&lt;/strong&gt; &lt;em&gt;18 Jan 2012 1:59 pm&lt;/em&gt;:
Hi Anand,
f(p) ← f(p) * probability(heads | x) / probability(heads) = 1 * (x^1 * (1-x)^0) / 1 = x
What I understand from the above notation is f(p) stands for probability distribution function (which is used recursively), x stands for the probability of getting a head (which is unknown) and 1-x stands for the complement of x.
Can you please explain why the distribution function is defined as you have done? i.e. , f(p) ← f(p) * probability(heads | x) / probability(heads)&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Cut-and-paste is not understanding</title>
      <link>https://www.s-anand.net/blog/cut-and-paste-is-not-understanding/</link>
      <pubDate>Wed, 21 Jun 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/cut-and-paste-is-not-understanding/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.roughtype.com/archives/2006/06/cut_and_paste.php&#34;&gt;Cut and paste&lt;/a&gt; has become easier. So we make less effort to understand. We don&amp;rsquo;t need to. Like when we pay less attention if we&amp;rsquo;re recording a lecture.&lt;/p&gt;
&lt;p&gt;Solution? I suggest the &lt;a href=&#34;http://www.amazon.com/gp/product/1416505512/?tag=sanand-20&#34;&gt;Tunnel in the Sky&lt;/a&gt; strategy. Rod Walker is going for survival training on an alien planet, and asks his sister, Captain Walker&amp;hellip;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Uh, Sis, what sort of gun should I carry?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Huh? Why the deuce do you want a gun?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Why, for things I might run into of course.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Your only purpose is to stay alive. Not to be brave, not to fight. One time in a hundred a gun might save your life; the other ninety-nine it will tempt you into folly.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Did you take a gun on your solo test?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I did. And I lost it the first day. Which saved my life. I know how good a gun makes you feel. You&amp;rsquo;re ready for anything and hoping you&amp;rsquo;ll find it. Which is exactly what is dangerous about it - because you aren&amp;rsquo;t anything of that sort.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, &lt;strong&gt;don&amp;rsquo;t take a gun&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t record lectures. Don&amp;rsquo;t give yourself the illusion of perfect memory.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t bookmark for future reading. You won&amp;rsquo;t read it later.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t cut and paste. You don&amp;rsquo;t understand it now. You won&amp;rsquo;t understand it later.&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;Sai&lt;/strong&gt; &lt;em&gt;26 Jun 2006 11:36 pm&lt;/em&gt;:
Good stuff..makes lots of sense&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rajagopalan&lt;/strong&gt; &lt;em&gt;26 Feb 2007 1:23 pm&lt;/em&gt;:
that is why make sense software is becoming popular&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;15 Mar 2007 6:56 am&lt;/em&gt;:
Brilliant :)&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>MIT OpenCourseWare</title>
      <link>https://www.s-anand.net/blog/mit-opencourseware/</link>
      <pubDate>Wed, 16 Nov 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/mit-opencourseware/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://base.google.com/base/search?authorid=314965&#34;&gt;MIT OpenCourseWare&lt;/a&gt; on Google Base.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>How to read when time is short</title>
      <link>https://www.s-anand.net/blog/how-to-read-when-time-is-short/</link>
      <pubDate>Sat, 12 Nov 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/how-to-read-when-time-is-short/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://hwebbjr.typepad.com/openloops/2005/11/a_quick_and_dir.html&#34;&gt;How to read when time is short&lt;/a&gt;. Read the &amp;ldquo;How To Find The Essential 20%&amp;rdquo; section carefully. Another interesting post from Bert on &lt;a href=&#34;http://hwebbjr.typepad.com/openloops/2005/06/a_secret_they_s.html&#34;&gt;How to Learn More With No Extra Effort&lt;/a&gt; uses the principle in the post below to suggest we take a lot of breaks while learning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;i cdnuolt blveiee taht i cluod aulaclty uesdnatnrd waht i was rdanieg. the phaonmneal pweor of the hmuan mind is amazanig. aoccdrnig to a rscheearch taem at cmabrigde uinervtisy, it deosnt mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be in the rghit pclae. the rset can be a taotl mses and you can sitll raed it wouthit a porbelm. amazanig huh? yaeh and yuo awlyas thohgut slpeling was ipmorantt.&lt;/p&gt;
&lt;/blockquote&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;Dhar&lt;/strong&gt; &lt;em&gt;14 Nov 2005 9:18 am&lt;/em&gt;:
Check out &lt;a href=&#34;http://www.google.com/analytics/index.html&#34;&gt;Google Analytics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jayant&lt;/strong&gt; &lt;em&gt;14 Nov 2005 10:00 am&lt;/em&gt;:
And just hope the client does not know the remaining 80% or isn&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Raj&lt;/strong&gt; &lt;em&gt;15 Nov 2005 8:16 pm&lt;/em&gt;:
what is the run?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;16 Nov 2005 5:14 pm&lt;/em&gt;:
i am confused with your email id is it &lt;a href=&#34;mailto:s-anand@yahoo.com&#34;&gt;s-anand@yahoo.com&lt;/a&gt; or s_anand@yahoo.com ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;16 Nov 2005 6:50 pm&lt;/em&gt;:
root underscore node at yahoo dot com, actually.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;leke&lt;/strong&gt; &lt;em&gt;17 Nov 2005 11:43 am&lt;/em&gt;:
why can&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;17 Nov 2005 3:34 pm&lt;/em&gt;:
Sorry, apostrophes were causing problems in the comments. I&amp;rsquo;ve fixed them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sri&lt;/strong&gt; &lt;em&gt;13 Dec 2005 11:00 am&lt;/em&gt;:
This is interesting: &lt;a href=&#34;http://www.mrc-cbu.cam.ac.uk/~mattd/Cmabrigde/&#34;&gt;http://www.mrc-cbu.cam.ac.uk/~mattd/Cmabrigde/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
  </channel>
</rss>
