<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://akshayranganath.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://akshayranganath.github.io/" rel="alternate" type="text/html" /><updated>2026-03-23T19:11:50+00:00</updated><id>https://akshayranganath.github.io/feed.xml</id><title type="html">Akshay Ranganath’s Blogs</title><subtitle>Blogs about Media Optimization, Web Performance, SEO and web technology.</subtitle><author><name>rakshay</name></author><entry><title type="html">Vibe Coding a Python Library</title><link href="https://akshayranganath.github.io/Vibe-Coding-a-Python-Library/" rel="alternate" type="text/html" title="Vibe Coding a Python Library" /><published>2026-02-27T00:00:00+00:00</published><updated>2026-02-27T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Vibe-Coding-a-Python-Library</id><content type="html" xml:base="https://akshayranganath.github.io/Vibe-Coding-a-Python-Library/"><![CDATA[<p><img src="/images/blog/cld-people-search-hero-image.78aa64c8.png" alt="face recognition" /></p>

<p>I was looking for a real use case to test out “vibe coding”. Although I have used Cursor for almost a year now, it was mostly in bits and pieces. I wanted to <em>really</em> test-drive the capability of all its aspects to build a fully working system. Today, I built and launched a fully-functioning Python repository - <a href="https://pypi.org/project/cloudinary-people/"><em>Cloudinary People</em></a> using vibe coding!</p>

<h2 id="what-is-the-use-case">What is the use case?</h2>

<p>Cloudinary has launched a capability to identify people in uploaded images. An API was made available to handle 3 use cases:</p>

<ol>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/listPeople">List all recognized persons in account</a></li>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/getPerson">Get a single person details</a></li>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/updatePerson">Update a person</a></li>
</ol>

<p>At this point, no SDK support is available since it is relatively new. So I wanted to take Cursor out for a test-drive and build an SDK for these endpoints.</p>

<h2 id="how-did-i-do-it">How did I do it?</h2>

<h3 id="step-1-generate-the-basic-code">Step 1: Generate the basic code</h3>

<p>I used Cursor, alternating between the <strong>Plan</strong> and <strong>Build</strong> modes. Just to give a glimpse, I started with this initial prompt:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to build a full Python SDK for the Cloudinary people search feature. The documentation for this feature is available here: In this SDK, user will support their API Key, API Secret and Cloud Name parameters. 

Users will need to use the following features:

1. List recognized people (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/listPeople )

2. Get person details (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/getPerson )

3. Update a person (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/updatePerson )

For this SKD, I'd like to use pydantic for type checking. Provide a "verbose" option to print debug information where necessary.

Add self-documentation as well. If needed, I may use this SDK as a foundation to develop a CLI. For now, don't worry about CLI.

Can you plan this project?
</code></pre></div></div>

<p>This step created a detailed step-by-step plan for the project. I then asked Cursor to create the code.</p>

<h3 id="step-2-review-the-code">Step 2: Review the code</h3>

<p>Once this code was ready, I wanted to ensure code quality. So I started a new agent and asked it to review the code.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@cloudinary_people_sdk_910195c7.plan.md (1-71) Take a look at the project specs and the code created. Analyze the code from the perspective of a Senior or Principal Software Engineer. Identify  potential issues in logic or problems with maintainability. Suggest changes that can make this code be better.
</code></pre></div></div>

<p>Cursor gave a whole set of recommendations in a separate markdown file. It identified 3 critical issues, about 5 maintainability issues and a few other issues related to tests and packaging.</p>

<p>I asked Cursor to implement all the recommendations.</p>

<p>I followed it up with some minor changes. I wanted the code to support a specific mechanism of authentication that Cloudinary SDKs use. It was able to incorporate it easily.</p>

<h3 id="step-3-package-and-publish">Step 3: Package and publish</h3>

<p>At this stage, I was confident of the code, but I wanted one more peer review. So I asked Cursor to do another round of checks, again starting in <strong>Plan</strong> mode followed by <strong>Build</strong> mode.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to publish this repository to pypi. Before doing this, I'd like you to run a security audit. 

1. is this code safe to publish?
2. are there any dependencies having security vulnerabilities? if so, how can I work-around them?
3. From a code documentation and README perspective, is this reasonably complete? 

Basically, I want a peer review before I publish.
</code></pre></div></div>

<p>It identified the following:</p>

<ul>
  <li>Medium: CVE-2024-35195 in requests &lt; 2.32.0 - a security issue</li>
  <li>Bug 1: verbose=True parameter does not exist - a bug</li>
  <li>No LICENSE file</li>
</ul>

<p>and a few more minor things.</p>

<p>After fixing this, I was all set.</p>

<h3 id="step-4-publish">Step 4: Publish</h3>

<p>To test out my confidence 😄, I switched to Cursor’s agent CLI. I asked it to package and publish my repo to pypi.</p>

<p>It first published the code to <code class="language-plaintext highlighter-rouge">pypi test</code> and asked me to verify. Only after I confirmed, it went ahead and published to <code class="language-plaintext highlighter-rouge">pypi</code>.</p>

<h3 id="step-5-generate-a-hero-image">Step 5: Generate a hero image</h3>

<p>The last step was to make it attractive. For this, I used Gemini. I simply provided my github URL to the LLM and asked it to create a hero image.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to create a hero image for my python project at https://pypi.org/project/cloudinary-people/. Can you generate a prompt that would be suitable for this project? I plan to use Gemini/Nano-Banana to create the image.
</code></pre></div></div>

<p>After some trials, it generated an image that worked for me!</p>

<h2 id="conclusion">Conclusion</h2>

<p>Vibe-coding is real! If you know the system that you want to build and have clarity in mind, the tools are simply amazing. I developed the entire library + hero image in about 4 hours! This would have normally taken weeks of effort since this is not my day job.</p>

<p>Vibe-coding is a strong enabler for developers. If we know what we want, getting the agent to do it on our behalf is liberating. That said, if I ever need to deep-troubleshoot this library, I’ll be hesitant. I did not “code” each line, so my ability to support it will be limited!</p>

<p>Are you seeing something similar in your world? Do share your thoughts!</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="AgenticAI," /><category term="Cursor," /><category term="pypi" /><summary type="html"><![CDATA[I used vibe coding to build and publish a fully working Python SDK for Cloudinary's people search feature. From code generation to pypi—in about 4 hours using Cursor.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/cld-people-search-hero-image.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/cld-people-search-hero-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Using Agentic AI to Classify and Index Sports Images by Player and Team</title><link href="https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team/" rel="alternate" type="text/html" title="Using Agentic AI to Classify and Index Sports Images by Player and Team" /><published>2026-01-27T00:00:00+00:00</published><updated>2026-01-27T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team</id><content type="html" xml:base="https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team/"><![CDATA[<p><img src="/images/blog/ai-player-tagging.3bf8091a.png" alt="AI player tagging" /></p>

<h2 id="why-do-we-need-this">Why do we need this?</h2>

<p>If you are responsible for maintaining the media for your website, one of the challenges is making the assets searchable. One approach is to <em>tag</em> the assets or <em>enrich</em> them with metadata. In this article, I want to explore a common pattern seen on many organized sports websites: “Tag images by team and player based on their uniform.” This task is not easy:</p>

<ul>
  <li>It requires computer vision capability to identify people.</li>
  <li>For each person, the system must recognize the uniform colors.</li>
  <li>It should be able to read the number on the jersey.</li>
</ul>

<p>Using these basic capabilities, we need to identify:</p>

<ul>
  <li>Is the person a player or a non-player?</li>
  <li>For each player, identify the team.</li>
  <li>Using the combination of the team and jersey number, identify the person.</li>
</ul>

<p>The last part is critical since the face is often obscured by a helmet and other safety equipment.</p>

<p>In other words, this is a task that is perfect for AI!</p>

<h2 id="solution-approach">Solution Approach</h2>

<p>In my approach to this problem, I felt we can handle it using agentic AI. We need two primary agents:</p>

<ul>
  <li><strong>Agent 1</strong>: Identify individuals, their teams, and jersey numbers.</li>
  <li><strong>Agent 2</strong>: For each player, perform a web search and identify the player.</li>
</ul>

<blockquote>
  <p>[!TIP]
In a realistic use case, <em>Agent 2</em> may not be required. If you are the NBA/NFL or a team, you likely already have a database mapping jersey numbers to player names. We only need this if no such database is available.</p>
</blockquote>

<p>In this article, I will be using a pure LLM-based solution.</p>

<h3 id="workflow">Workflow</h3>

<p>The code for player identification works as follows:</p>

<ol>
  <li>The user submits an image URL for player identification.
    <ol>
      <li>The request hits a backend running the <a href="https://strandsagents.com/latest/documentation/docs/">AWS Strands</a> agentic framework.</li>
      <li>The framework offers a tool called <code class="language-plaintext highlighter-rouge">image_reader</code>. Using this tool, we download the image and convert it to bytes.</li>
      <li>The framework then submits the request to an LLM.</li>
    </ol>
  </li>
  <li>
    <p>In our use case, we are using LLM models on Bedrock. For simplicity, we use the default model, which happens to be Claude 4.5 Sonnet.</p>

    <ol>
      <li>The LLM identifies whether there are players in the image.</li>
      <li>For each player, it identifies the team and player number.</li>
      <li>In our prompt, we ask the model to extract other information like the primary colors on the player’s uniform and a confidence level for team and player number.</li>
    </ol>
  </li>
  <li>The LLM returns the result. Strands then loops through each player and passes this information to the next agent. For each player, the LLM receives the team, player number, and a tool for web search.</li>
  <li>The LLM then runs a search and parses the results to identify the player.</li>
  <li>The LLM returns the player name and a confidence metric. Strands then stitches the JSON received from Agent 1 (step 2) and the JSON for player name into one final result.</li>
  <li>The final response is then sent back to the user.</li>
</ol>

<p>Here is a high-level block diagram of the workflow.</p>

<p><img src="/images/blog/player-identification.drawio.png" alt="workflow for player identification" /></p>

<h2 id="code-walk-through">Code Walk Through</h2>

<p>The code is available on GitHub:</p>
<ul>
  <li>https://github.com/akshayranganath/player-identification</li>
</ul>

<blockquote>
  <p>[!NOTE]
You will see extra files in the project. They were created while I was trying to learn Strands. This project also underwent changes. It started as a single-prompt system, then became a three-agent system, and finally evolved into a two-agent system.</p>
</blockquote>

<p>In this project, I used <code class="language-plaintext highlighter-rouge">uv</code>. All secrets should be placed in a file named <code class="language-plaintext highlighter-rouge">.env</code> at the project root. Here are the core variables expected:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>AWS_PROFILE=
AWS_DEFAULT_PROFILE=
SERP_API_KEY=
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">AWS_PROFILE</code> and <code class="language-plaintext highlighter-rouge">AWS_DEFAULT_PROFILE</code> are needed for access to AWS services. I assume you already have AWS credentials configured. In my case, I am using a profile name for accessing the services.</p>

<p><code class="language-plaintext highlighter-rouge">SERP_API_KEY</code> is needed for web search. You can obtain a free API key from https://serpapi.com/.</p>

<p>You can install dependencies and run the code with these two commands:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv sync
uv run streamlit run app.py
</code></pre></div></div>

<h3 id="guardrails">Guardrails</h3>

<p>To prevent the solution from hallucinating and from producing responses that are not structured, we rely on two items:</p>

<ul>
  <li>A detailed prompt that defines the output format, along with a one-shot example JSON.</li>
  <li>In <code class="language-plaintext highlighter-rouge">utils.py</code>, we run checks for valid JSON. In a production system, this would use a more robust <code class="language-plaintext highlighter-rouge">pydantic</code> model for type checking.</li>
</ul>

<h2 id="execution-flow">Execution Flow</h2>

<p>For this use case, I am using the <a href="https://www.cfl.ca/">Canadian Football League</a>. One of the reasons is that I can easily verify the output by checking against the public database of <a href="https://www.cfl.ca/players/">all players</a>.</p>

<p>Let’s see an execution in action!</p>

<p>Test URL: https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg</p>

<p><img src="https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg" alt="Canadian football league player" /><br />
<a href="https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg">Source</a></p>

<p>When submitted, the system generates an output like the one below:</p>

<p><img src="/images/blog/cfl-sample-output.png" alt="sample program output" /></p>

<p>Along with the output, it will also clearly show token usage. This can be helpful in estimating costs for running the system in a long-term project.</p>

<h2 id="learnings">Learnings</h2>

<p>Working on this project helped me learn quite a few things about working with agents:</p>

<ul>
  <li>When building code with tools like Cursor, make the agent think like a human. Start by adding a lot of debug messages. Remove them when the logic seems solid.</li>
  <li>Start with a good specification. If the initial spec is inaccurate or unclear, the code generated will not work.</li>
  <li>Don’t try to do everything with a single prompt. It is a setup for failure.</li>
  <li>Break the job logically. If you, as a human programmer, would keep two things separate, it probably maps to two agents.</li>
  <li>Start small and then keep iterating. Don’t try to build the entire system at once.</li>
</ul>

<p>Here are some things I could have done differently:</p>

<ul>
  <li>Start by having the system build a bunch of tests. This could have saved a lot of time testing through the UI.</li>
  <li>Use pydantic for type checking.</li>
  <li>Enhance this solution to run a <a href="https://en.wikipedia.org/wiki/Perceptual_hashing">perceptual hashing (pHash)</a> step prior to sending the image to the LLM. Using this concept, I can cache the result. This will avoid costly requests to the LLM and provide faster responses to users.</li>
</ul>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="strands," /><category term="AgenticAI," /><category term="GenerativeAI," /><category term="AWSBedrock," /><category term="DAM" /><summary type="html"><![CDATA[Manually tagging sports assets is a bottleneck that scales poorly. By leveraging Agentic AI—combining vision models with live web-search agents—you can automatically identify players by jersey and team, even when faces are obscured. Check out how this workflow transforms a messy media repository into a fully searchable, high-value database.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/ai-player-tagging.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/ai-player-tagging.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Is reality a simulation - A Brief History of Intelligence</title><link href="https://akshayranganath.github.io/A-Brief-History-of-Intelligence/" rel="alternate" type="text/html" title="Is reality a simulation - A Brief History of Intelligence" /><published>2025-12-24T00:00:00+00:00</published><updated>2025-12-24T00:00:00+00:00</updated><id>https://akshayranganath.github.io/A-Brief-History-of-Intelligence</id><content type="html" xml:base="https://akshayranganath.github.io/A-Brief-History-of-Intelligence/"><![CDATA[<p>Do you remember the movie “The Matrix” where Neo is offered the choice to take the red pill or the blue pill? He has to decide if he wants to know the truth or live in his made-up reality? Well, it looks like we’ve been living in something similar after all!</p>

<p><img src="/images/blog/brief%20history%20of%20intelligence%20cover.a5ca0b83.png" alt="cover image" /></p>

<p><strong>This article explores a fascinating convergence: modern neuroscience and ancient Advaita Vedanta philosophy both point to the same startling conclusion—that reality as we experience it is subjective, constructed by our minds rather than objectively “out there.”</strong> What’s remarkable is how cutting-edge AI research is now providing empirical evidence for what Indian sages declared thousands of years ago.</p>

<blockquote>
  <p>[!NOTE]
I have included glossary at the end of the article to explain the different terms that span AI and <em>Vedanta</em>.</p>
</blockquote>

<h2 id="a-brief-history-of-intelligence">A Brief History of Intelligence</h2>
<p><strong>Evolution, AI and the Five Breakthroughs that made our brain</strong></p>

<p>In this <a href="https://www.amazon.com/Brief-History-Intelligence-Humans-Breakthroughs/dp/B0BCC76563/ref=sr_1_1">incredible book</a>, the author Max Bennet explores the working of human brain. However, he approaches it from the point of view of neural networks.</p>

<p><img src="/images/blog/brief%20history%20of%20intelligence%20book%20cover.jpg" alt="brief history of intelligence - book cover" /></p>

<p>Until now, we’ve been trying to decode our brain. Often, we’ve hit road blocks. However, the world of AI has been rapidly progressing. Bennett’s central argument unfolds in two parts:</p>

<ul>
  <li>If the brain is modeled based on neural networks and if we can observe the behavior of neural networks better than the brain, can we find similarities in the way they work?</li>
  <li>If we do find them similar, can the learning from one field help in the growth of the other?</li>
</ul>

<p>He covers the vast gamut of how the brains evolved, starting right from single celled organism to the most complex beings. However, the point of this blog is one specific aspect—how does the brain <strong>perceive</strong> the world?</p>

<h3 id="senses--perception">Senses &amp; Perception</h3>

<h4 id="perception---classification-problem">Perception - Classification Problem</h4>

<p>We perceive the world around us through our senses. We think that we “see” things, “hear” sounds and so on. However, the reality is a bit more nuanced.</p>

<ul>
  <li>light hits an object.</li>
  <li>light is reflected by the object.</li>
  <li>this reflected light hits light sensors in our eyes.</li>
  <li>some sensors detect lines, some detect edges</li>
  <li>these basic patterns are then “assembled” into a higher order shape</li>
  <li>the “assembled” information is passed on to brain</li>
  <li>the brain then does a “classification” and identifies this as an object like a book.</li>
</ul>

<h4 id="perception---generation-problem">Perception - Generation Problem</h4>

<p>The same problem can be re-framed as a “generation” problem. Our eyes detect something and through the noise, our brain “generates” an image of the world. All the other senses too do the same thing.</p>

<p>Let’s say I forget my specs. There is a book on a table about 10 feet away. I can barely “classify” it as a book. I may “hallucinate” and classify it as a book. My brain knows that books are normally kept here.</p>

<p>The other person predicts with a much higher probability.</p>

<p>These observations have profound implications for how we understand reality. Let us see how.</p>

<h4 id="objective-vs-subjective-reality">Objective vs Subjective Reality</h4>

<p>Modern science long held that reality is objective—that things exist independently of consciousness. Things exist outside of the realm of “conscience” and individual perceptions. However, discoveries like <a href="https://en.wikipedia.org/wiki/Uncertainty_principle">uncertainty principle</a> and <a href="https://www.sciencenewstoday.org/what-quantum-entanglement-really-means-in-everyday-terms">quantum entanglement</a> questioned this very assumption.</p>

<p>Based on the formulation of this book, it struck me that the author is basically saying that the so called “reality” is either a “classification” or a “generation”. In either case, we are “hallucinating” our reality. Since neural networks are stochastic (i.e. probabilistic), the same reality is perceived differently by 2 individuals.</p>

<p>Anecdotally speaking, this is simple to understand. In his book, the <a href="https://www.amazon.com/Habits-Highly-Effective-People-Powerful/dp/1982137274/ref=sr_1_1">Seven Habits of Highly Effective People</a>, Stephen Covey introduced this famous puzzle. In the same image, some people see a young woman while others see an old lady. So there are 2 realities that co-exist.</p>

<p><img src="/images/blog/old%20or%20young%20woman.gif" alt="image - is it old or a young woman" /></p>

<p>So we can agree that the same reality may appear <em>different</em> based on how our mind interprets it. Let’s look at another aspect - waking vs dreaming.</p>

<h4 id="waking-vs-dreaming">Waking vs Dreaming</h4>

<p>We all know that our brain is hallucinating when dreaming. The whole story, the actors, the plot, the chase - everything exists in our mind. When we wake up, this <em>reality</em> vanishes.</p>

<p>However, if you carefully consider that our brain is always in the mode of classification/generation, there is actually no difference between waking and dreaming. Perhaps the difference is the amount of “hallucination”. In AI terms, we might say that waking life uses more constrained parameters, but the underlying generative process remains probabilistic. (Please refer to <a href="https://www.ibm.com/think/topics/llm-temperature">What is LLM Temperature</a> for more details).</p>

<p>So, where is the link to <strong>advaita</strong>?</p>

<h2 id="waking-dreaming-and-reality">Waking, Dreaming and Reality</h2>

<p>One of the highest <a href="https://en.wikipedia.org/wiki/Upanishads"><em>Upanishads</em></a> is called the  <a href="https://en.wikipedia.org/wiki/Mandukya_Upanishad"><em>Mandukya Upanishad</em></a>. Advaita philosopers generally read this work based on the commentary called <a href="https://en.wikipedia.org/wiki/Gaudapada#Mandukya_Karika"><em>Mandukya Karika</em></a>. It was composed by Sri Adi Shankara’s teacher’s teacher - Sri Gaudapaada.</p>

<p>According to the work, it starts with 3 states of awareness:</p>

<ol>
  <li>Waking (Jagrat) - when both body and senses are active</li>
  <li>Dreaming (Svapna) - when only senses are active</li>
  <li>Deep Sleep (Sushupti) - when both senses and body are inactive</li>
</ol>

<p>However, it starts to demolish these beliefs. In short, here’s what the work has to say.</p>

<ul>
  <li>Both waking and dream are structured by a perceiving mind and consist only of appearances to that mind.</li>
  <li>Their objects lack enduring, independent reality; they arise and vanish like illusions.</li>
  <li>The only apparent difference is that dream objects seem “internal” and limited in space, while waking objects seem “external,” but this is not a difference in their truth‑status.</li>
  <li>Therefore, sages speak of waking and dream as essentially one more dream, superimposed on non‑dual consciousness.
​
[Source: https://vedantastudents.com/mandukya-upanishad-with-shankara-bashyam-volume-6/]</li>
</ul>

<p>Let’s understand this with a short story.</p>

<h3 id="king-janaka---dream-or-reality">King Janaka - Dream or Reality?</h3>

<p><a href="https://www.hindu-blog.com/2024/05/is-this-true-or-is-that-true-story.html">story about King Janaka</a> was known as a philosopher-emperor. One day, he wakes up from a very realistic dream. He ponders on whether the dream was real or the waking was real. His <em>guru</em> teaches him that the one reality present in both the dream and his awakened state is Janaka himself - so he is the only reality and everything else is false!</p>

<p>The same is proclaimed by a <em>maha vakhya</em> (great saying):</p>
<blockquote>
  <p>ब्रह्म सत्यं जगन्मिथ्या जीवो ब्रह्मैव नापरः।
Brahman is real, the universe is mithya (it cannot be categorized as either real or unreal). The jiva is Brahman itself and not different.</p>
</blockquote>

<p><a href="https://sanskritforus.com/%E0%A4%AC%E0%A5%8D%E0%A4%B0%E0%A4%B9%E0%A5%8D%E0%A4%AE-%E0%A4%B8%E0%A4%A4%E0%A5%8D%E0%A4%AF%E0%A4%82-%E0%A4%9C%E0%A4%97%E0%A4%A8%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%A5%E0%A5%8D%E0%A4%AF%E0%A4%BE/">Source</a></p>

<h2 id="conclusion">Conclusion</h2>

<p>Putting the two together, it is surprising that the empirical study of our brain and the working of neural networks are hinting at the same profound truth that Advaita Vedanta has proclaimed for millennia.</p>

<ul>
  <li>Reality is perceived.</li>
  <li>Reality is subjective.</li>
</ul>

<p>However, <em>Advaita</em> takes this one step forward and says the following:</p>

<ul>
  <li>Although reality is subjective, the true “subject” is the ultimate reality.</li>
  <li>This true subject is the ultimate. In the Upanishad, it is known as the <em>Brahman</em> and in Mandukya, it is simply called the <em>Turiya</em> (the fourth).</li>
</ul>

<h3 id="what-this-means-for-our-future">What This Means for Our Future</h3>

<p>This convergence between ancient philosophy and modern neuroscience isn’t merely an intellectual curiosity. It has profound implications for how we approach consciousness research and our understanding of existence itself.</p>

<p>If our brains truly operate as generative systems, constantly hallucinating our reality through classification and prediction, then the “hard problem of consciousness” i.e., why subjective experience exists at all—may need to be reframed entirely. Perhaps consciousness isn’t something that emerges from neural computation, but rather the fundamental substrate upon which all these computations occur. This is precisely what Advaita has always maintained: consciousness (<em>Brahman</em>) is not produced by the mind; the mind and all perceived reality arise within consciousness.</p>

<p><img src="/images/blog/hard%20problem%20of%20consciesness.png" alt="hard problem of consciousness" /></p>

<p>As AI systems become more sophisticated, we may find ourselves building machines that don’t just process information but generate rich internal models of reality, just like us. Will these systems develop their own form of subjective experience? Or will they reveal that what we call “subjective experience” is itself another layer of generation, another helpful illusion?</p>

<p>I am excited to see how research in AI progresses and whether this science continues to converge with ancient wisdom. Perhaps we’re on the verge of breakthroughs that will finally bridge the gap between the objective study of neural processes and the subjective nature of experience. The sages gave us the map thousands of years ago—we’re only now developing the scientific instruments to verify the terrain.</p>

<h2 id="glossary-of-terms">Glossary of Terms</h2>

<h3 id="philosophy--vedanta">Philosophy &amp; Vedanta</h3>

<p><strong>Advaita Vedanta</strong><br />
A school of Hindu philosophy that teaches non-dualism—the idea that the individual self and ultimate reality are fundamentally one, not separate. “Advaita” means “not two.”</p>

<p><strong>Brahman</strong><br />
In Hindu philosophy, the ultimate, unchanging reality that underlies all existence. It is pure consciousness itself, beyond all qualities and distinctions.</p>

<p><strong>Guru</strong><br />
A spiritual teacher or guide who helps students understand philosophical and spiritual truths through direct instruction and wisdom.</p>

<p><strong>Jagrat</strong><br />
The waking state of consciousness, when both body and senses are actively engaged with the external world.</p>

<p><strong>Jiva</strong><br />
The individual soul or self as experienced in daily life. Advaita teaches that the jiva is ultimately identical to Brahman, though it appears separate due to ignorance.</p>

<p><strong>Maha Vakya</strong><br />
Literally “great saying”—fundamental declarations found in the Upanishads that express core truths of Vedanta philosophy in concise statements.</p>

<p><strong>Mandukya Karika</strong><br />
An ancient philosophical commentary on the Mandukya Upanishad, written by Gaudapada. It uses logic and reasoning to explain the nature of consciousness and reality.</p>

<p><strong>Mithya</strong><br />
A Sanskrit term meaning “dependent reality” or “apparent reality.” Something that is mithya cannot be categorized as completely real (like Brahman) or completely unreal (like a unicorn). It appears real but depends on something else for its existence—like a mirage depends on light and sand.</p>

<p><strong>Sushupti</strong><br />
The deep sleep state, characterized by the absence of dreams and sensory experience, yet a state of rest and peace.</p>

<p><strong>Svapna</strong><br />
The dream state of consciousness, when the mind creates its own experiential reality without external sensory input.</p>

<p><strong>Turiya</strong><br />
Literally “the fourth”—the state of pure consciousness that underlies and witnesses the three common states (waking, dreaming, deep sleep). It is consciousness itself, unchanging and ever-present.</p>

<p><strong>Upanishads</strong><br />
Ancient Sanskrit texts that form the philosophical foundation of Hindu thought. They explore the nature of reality, consciousness, and the self through dialogues between teachers and students.</p>

<h3 id="science--technology">Science &amp; Technology</h3>

<p><strong>Classification Problem</strong><br />
In artificial intelligence, the task of categorizing input data into predefined groups. For example, identifying whether an image contains a cat or a dog, or whether an email is spam or legitimate.</p>

<p><strong>Generation Problem</strong><br />
In AI, the task of creating new content based on learned patterns. Modern AI systems like ChatGPT generate text, while image generators create pictures by learning from examples and producing new variations.</p>

<p><strong>Hard Problem of Consciousness</strong><br />
A philosophical question posed by philosopher David Chalmers: Why do we have subjective, first-person experiences at all? Why does it “feel like something” to see red or taste chocolate, rather than these processes happening without any inner experience?</p>

<p><strong>LLM Temperature</strong><br />
A parameter in large language models (AI systems) that controls how random or creative their outputs are. Lower temperature produces more predictable, focused responses; higher temperature produces more varied, creative responses.</p>

<p><strong>Neural Networks</strong><br />
Computer systems designed to recognize patterns, inspired by how biological brains work. They consist of interconnected nodes (like neurons) that process information in layers, learning from examples to perform tasks like image recognition or language processing.</p>

<p><strong>Quantum Entanglement</strong><br />
A phenomenon in quantum physics where two particles become correlated in such a way that measuring one instantly affects the other, regardless of the distance between them. This challenges our everyday understanding of how separate objects should behave.</p>

<p><strong>Stochastic</strong><br />
Randomly determined or probabilistic, rather than fixed and predictable. A stochastic process involves some element of chance, like rolling dice or the random mutations in evolution.</p>

<p><strong>Uncertainty Principle</strong><br />
A fundamental principle in quantum mechanics stating that certain pairs of properties (like position and momentum) cannot both be measured with perfect precision simultaneously. The more precisely you measure one, the less precisely you can know the other.</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="vedanta," /><category term="advaita" /><summary type="html"><![CDATA[Advaita vedanta says that reality is a myth from a specific perspective. In the book, "A Brief History of Intelligence", the author appears to agree. My thoughts.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/brief%20history%20of%20intelligence%20cover.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/brief%20history%20of%20intelligence%20cover.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Dichotomy of Cost - Balancing Fixed SaaS Revenue with Unpredictable AI Expense</title><link href="https://akshayranganath.github.io/Musings-on-SaaS-Pricing/" rel="alternate" type="text/html" title="The Dichotomy of Cost - Balancing Fixed SaaS Revenue with Unpredictable AI Expense" /><published>2025-11-24T00:00:00+00:00</published><updated>2025-11-24T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Musings-on-SaaS-Pricing</id><content type="html" xml:base="https://akshayranganath.github.io/Musings-on-SaaS-Pricing/"><![CDATA[<p>I wanted to write a follow-up to my article about LLMs and how they would soon be commoditized. That article was written in June 2024. Now, in November 2025, we are seeing many analysts agreeing with this position.</p>

<p><img src="/images/blog/blog-llm-arbitrage.19858ec3.png" alt="llm arbitrage" /></p>

<p>In his highly referenced <a href="https://www.ben-evans.com/presentations">presentation</a>, Benedict Evans mentioned that Foundation Model companies are chasing AGI. However, the products they are currently offering generally have no moat. From my experience in my organization and anecdotal conversations with friends, I’ve heard that there is no loyalty to specific models. The moat is based on the cloud provider. If you are an Amazon AWS shop, it is simpler to work with Bedrock and the models supplied by that service.</p>

<p><img src="/images/blog/blog-lack-of-moats.png" alt="lack of moats" /></p>

<p>The purpose of this post is to look at another aspect: pricing. Specifically, how will the use of LLMs and agents impact SaaS pricing?</p>

<p>When SaaS companies build applications, they need a pricing model that is simple and easy to break down by monthly units. Perhaps it is the total number of users (seats), total number of videos generated, number of impressions, and so on. However, the world of LLMs is disrupting this clean pricing model. Here are some challenges:</p>

<ul>
  <li><strong>LLMs are priced based on tokens.</strong>
    <ul>
      <li>Input and output tokens have different prices.</li>
      <li>Maximum supported tokens vary by model, though limits have increased significantly.</li>
      <li>“Thinking” models require more tokens for the reasoning process.</li>
    </ul>
  </li>
  <li><strong>Tool calling makes token calculation more complex.</strong>
    <ul>
      <li>A model may or may not invoke a tool depending on the prompt.</li>
      <li>Token usage changes based on tool use and caching mechanisms.</li>
    </ul>
  </li>
  <li><strong>Agents add an additional level of unpredictability.</strong>
    <ul>
      <li>The probabilistic nature of agentic flows means they consume an unpredictable number of tokens.</li>
      <li>Moreover, the final token count often cannot be computed until after the flow has executed.</li>
    </ul>
  </li>
</ul>

<p><strong>Bottom line:</strong> We won’t know how many tokens are required until a task or workflow has been executed. This makes pricing extremely difficult. So, how do we solve it? Let’s look at how some other existing technologies have handled this problem.</p>

<h2 id="database-queries--query-execution-plans">Database Queries &amp; Query Execution Plans</h2>

<p>When you need to execute a query, it is hard to predict how much data needs to be scanned. For example, let’s say I want to search an employee table by the person’s first name, last name, and city. In the worst case, we will need to scan the entire table. In the best case, the result could be in the first row. We won’t know this until we’ve actually executed the query.</p>

<p>However, that doesn’t prevent databases from estimating execution costs. To do this, the query is broken down into components; the database identifies the indices to use and the table scan mechanism to come up with an execution plan. By combining the plan with other statistics tables, databases can estimate the cost of executing a query.</p>

<p><img src="https://vinish.dev/wp-content/uploads/2025/06/sql-explain-plan.png.webp" alt="database execution plan" />
Source: <a href="https://vinish.dev/oracle-sql-explain-plan">Oracle SQL Query to Use EXPLAIN PLAN for Join Analysis</a></p>

<h2 id="bandwidth-calculations-in-cdns">Bandwidth Calculations in CDNs</h2>

<p>When CDNs need to price their offerings, bandwidth is one of the core usage metrics. Bandwidth varies by customer type, day, month, campaigns, promotions, virality, and so on. Despite this, CDNs are able to offer enterprise packages where they factor in peak traffic and lulls in usage, while also absorbing occasional spikes. All of this requires deep analysis of traffic patterns and usage data.</p>

<h2 id="the-challenge-with-token-based-pricing">The Challenge with Token-Based Pricing</h2>

<p>The primary challenge of LLM usage in SaaS is the dichotomy in cost structure:</p>

<ul>
  <li>SaaS companies charge customers based on a usage metric that is decoupled from tokens.</li>
  <li>LLMs charge SaaS companies for tokens.</li>
</ul>

<p>To make this concrete, let’s look at a SaaS provider offering software for creative users. Let’s assume two use cases that require LLMs:</p>

<ol>
  <li>Editing copy and tweaking it for final review.</li>
  <li>Generating hero/banner images associated with the copy.</li>
</ol>

<p>To support such an offering, the SaaS provider may be doing the following:</p>

<ul>
  <li>Charging per user/seat for their product.</li>
  <li>Paying per million tokens to the LLM provider.</li>
</ul>

<p>Here is where the pricing dilemma arises:
The copy editor could upload a simple Word document and ask the LLM to review it. This may consume a few hundred tokens. In another case, the editor may upload a large PDF, ask the LLM to identify the core message, and then generate an image. This could consume a few thousand tokens. When this occurs, the SaaS company can’t go back and ask the user for more money. They need to either:</p>

<ul>
  <li>Eat the additional cost.</li>
  <li>Charge a premium to cover such usage spikes.</li>
</ul>

<p>They may also consider a third option:</p>

<ul>
  <li>Downgrade the user to a lower-performing model (i.e., <strong>model arbitrage</strong>).</li>
  <li>Use an open-source model to reduce tokens by summarizing or rephrasing before passing the request to the foundational LLM (i.e., <strong>token arbitrage</strong>).</li>
</ul>

<p>When this happens, the billing model starts to look like an ISP. You get a quota per month; if you exceed it, your speed is throttled, but the service continues. The alternative option is to continue with the same service level but pay an overage fee.</p>

<h2 id="my-prediction">My Prediction</h2>

<p>My take is that SaaS companies, and even enterprises that internally use such GenAI features, will start to leverage tools like <a href="https://openrouter.ai/">OpenRouter</a>. These companies will act like an Application Load Balancer (ALB) for GenAI workloads. Such a system can:</p>

<ul>
  <li>Provide pre-processing so that LLM token use is minimized.</li>
  <li>Offer solutions like LLM input (and potentially output) caching to reduce calls to the LLM.</li>
  <li>Manage routing tables for LLMs so that the specific LLM agent is selected based on the customer tier (free, paid, enterprise) and the kind of query sent by the user.</li>
  <li>Track usage and provide statistics to help with cost optimization. This will be akin to the <code class="language-plaintext highlighter-rouge">Explain plan</code> workflow in databases.</li>
</ul>

<p>The elephant in the room is the <strong>Inference Arbitrage</strong>! Should a company use NVIDIA GPUs or some other alternative like Google TPUs will start to boil over. I’ve not looked into this much. Perhaps that will be in another post in a few months.</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="gen-ai" /><summary type="html"><![CDATA[As AI agents make costs unpredictable, SaaS companies must evolve from simple subscriptions to intelligent model routing.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/blog-llm-arbitrage.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/blog-llm-arbitrage.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">🕵️‍♂️💻 The Cuckoo’s Egg - A Lesson In Trust</title><link href="https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust/" rel="alternate" type="text/html" title="🕵️‍♂️💻 The Cuckoo’s Egg - A Lesson In Trust" /><published>2025-09-12T00:00:00+00:00</published><updated>2025-09-12T00:00:00+00:00</updated><id>https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust</id><content type="html" xml:base="https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust/"><![CDATA[<p>Based on a LinkedIn post by my friend <a href="https://www.linkedin.com/in/shanshah/">Shanthanu</a>, I read the book <a href="https://www.amazon.com/Cuckoos-Egg-Tracking-Computer-Espionage/dp/0385249462/ref=sr_1_2?crid=3JJTUKVC71CLF">“The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionage”</a> by Cliff Stoll. It is a fascinating story about how a lone astrophysicist at UC Berkeley was able to track and identify a hacker.</p>

<p><img src="https://m.media-amazon.com/images/I/61UhUxszYPL._SY522_.jpg" alt="book cover" /></p>

<p>The story is incredible for the sheer dedication and grit shown by Cliff. It is also filled with insights into how systems worked in the early era of the Internet.</p>

<p>However, what stood out for me was Cliff’s personal journey:</p>

<ol>
  <li>His political leanings shift from purely liberal to much more conservative center-right affiliations.</li>
  <li>His attitude toward hackers changes from viewing them as free-form agents of simple curiosity to seeing them as malicious burglars.</li>
</ol>

<p><img src="/images/blog/cuckoo%27s%20egg.d6320f2f.png" alt="someone running through balls of red tape" /></p>

<h2 id="change-in-politics">Change in Politics</h2>

<h3 id="early-attitude">Early Attitude</h3>

<p>Cliff is a free-spirited astrophysicist at UC Berkeley. He is skeptical of authority, critical of bureaucracy, and hates rules.</p>

<h3 id="the-hacker-hunt">The Hacker Hunt</h3>

<p>During the early to middle part of the book, when Cliff is monitoring the hacker’s activities, he observes the hacker easily accessing military networks. He sees that the idea of openness is clearly being exploited. Although he encounters red tape in getting authorities involved, he starts to understand the need for security governance and guardrails.</p>

<h3 id="frustration-with-bureaucracy">Frustration with Bureaucracy</h3>

<p>Toward the later middle section of the book, Cliff hits roadblocks due to inter-agency issues. He feels frustrated that his alarms are falling on deaf ears. However, he also starts to work within the system. This makes him develop respect for how well the rules hold true. For example, one agency knows how to help but cannot because the hack is occurring within the US and not outside the country.</p>

<p>Cliff starts to maintain a detailed log, recording each occurrence and each activity undertaken by the hacker. He turns into a bureaucrat!</p>

<h3 id="collaboration">Collaboration</h3>

<p>Eventually, the authorities start to take Cliff seriously. He notices network passwords are changed. Guardrails are put up. He is able to work collaboratively between telecom companies in multiple countries and get support and guidance from multiple agencies.</p>

<p>He finally realizes that while bureaucracies can be slow, they exist for a reason—checks and balances of power with clearly defined zones of responsibility.</p>

<h2 id="hackers-from-irritants-to-weeds">Hackers: From Irritants to Weeds</h2>

<p>Cliff starts out feeling a sense of admiration for hackers—people who explore boundaries and identify interesting ways to subvert systems. However, his attitude starts to shift. He explains his shift with very interesting analogies:</p>

<ul>
  <li>Car mechanics have the ability to break into cars, but they don’t. Having technical skills doesn’t automatically grant permission to use those skills destructively.</li>
  <li>If a robber were to break in, rummage through a house, and leave without stealing anything, we’d still feel violated. The act of trespassing is the crime.</li>
</ul>

<p>By the end of the book, he is clearly in awe but also saddened and angered by hackers who illegally gain access. He feels this violates trust and leads to harder controls, which makes the openness of the web break down. In game theory, this is akin to the tragedy of the commons.</p>]]></content><author><name>rakshay</name></author><category term="book," /><category term="hacking," /><category term="politics" /><summary type="html"><![CDATA[Cliff Stoll's book is a fascinating look at how a liberal, free-spirited astrophysicist became an accidental bureaucrat and changed his views on trust, authority, and the early internet]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/cuckoo&apos;s%20egg.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/cuckoo&apos;s%20egg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">🧠 Growth Mindset vs. Fixed Fate - Lessons from Duryodhana</title><link href="https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana/" rel="alternate" type="text/html" title="🧠 Growth Mindset vs. Fixed Fate - Lessons from Duryodhana" /><published>2025-08-19T00:00:00+00:00</published><updated>2025-08-19T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana</id><content type="html" xml:base="https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana/"><![CDATA[<h2 id="tldr">tl;dr</h2>

<p>Duryodhana’s behavior in the Mahabharata is a perfect example of a <em>fixed</em> mindset while Arjuna, the ever-curious, has a <em>growth</em> mindset. One wants to blame and become a victim while the other wants to learn, take initiative and responsibility—and grow.</p>

<h2 id="background">Background</h2>

<p>I was reading the book, <strong>Mindset</strong> by <em>Carol Dweck</em>. In this seminal book, Carol talks about the concept of <strong>fixed</strong> vs. <strong>growth</strong> mindset.</p>

<p><img src="/images/blog/mindset-book-cover.jpg" alt="growth mindset" /></p>

<p>When reading the differences, I was reminded of a specific quote attributed to Duryodhana from the Mahabharata. Moreover, Arjuna’s behavior is clearly in line with a person who has a growth mindset. To me, it was eye-opening how the ancient story resonates so closely with a relatively new psychological finding.</p>

<h2 id="mindset---the-book">Mindset - the book</h2>

<p>In her book, Carol starts with the classical question of <em>nature</em> vs. <em>nurture</em>. She then moves on to the <em>why</em> of <em>nurture</em> and drills down into the core beliefs, behaviors, and attitudes of two kinds of people based on their <em>mindset</em>. According to the author,</p>

<blockquote>
  <p>Mindsets are beliefs—beliefs about yourself and your most basic qualities.</p>
</blockquote>

<p>She then defines two types of mindset:</p>

<ul>
  <li>Fixed Mindset: The belief that intelligence, talent, and abilities are static and unchangeable.</li>
  <li>Growth Mindset: The belief that abilities can be developed through dedication, hard work, and learning.</li>
</ul>

<p>Here is a short comparison between the two kinds of mindset.</p>

<p><img src="/images/blog/mindset-infographic.png" alt="growth vs fixed mindset - infographic" /></p>

<p>If you’d like to dig in a bit more, please watch this <a href="https://www.youtube.com/watch?v=hiiEeMN7vbQ">excellent video</a> by the author.</p>

<h2 id="mahabharata">Mahabharata</h2>

<p>In the great work of the Mahabharata, there is a stark contrast between the behavior of Duryodhana and Arjuna. Both characters desire to win; to rule over a vast kingdom and achieve the status of the greatest warrior. Both try to win over Lord Krishna as well. However, the Lord ultimately teaches the <em>Gita</em> to Arjuna.</p>

<p>Philosophers and thinkers have wondered why Lord Krishna did not try to warn and educate Duryodhana about the perils of war. In reality, Lord Krishna did try to warn and educate Duryodhana about the perils of war. However, Duryodhana ignores him, scoffs at the warnings, and proceeds on the path to destruction. Was it because he was stupid?</p>

<h3 id="duryodhanas-predicament">Duryodhana’s Predicament</h3>

<p><img src="/images/blog/mindset-duryodhana.526f8e32.jpg" alt="duryodhana" /></p>

<p>Duryodhana is not a stupid person. He is able to strategize, win over allies, and assemble vast armies. So what made him blind to the path that he chose? In a stunning shloka, he clearly articulates the reason for his behavior.</p>

<blockquote>
  <p>जानामि धर्मं न च मे प्रवृत्तिर्जानाम्यधर्मं न च मे निवृत्तिः। <br />
केनापि देवेन हृदि स्थितेन यथा नियुक्तोऽस्मि तथा करोमि।।</p>
</blockquote>

<p>(Source: Paandava Gita)</p>

<p>Breaking the compound words, the shloka reads as follows:</p>

<blockquote>
  <p>जानामि धर्मं न च मे प्रवृत्तिः <br />
जानामि अधर्मं न च मे निवृत्तिः ||<br />
केनापि देवेन हृदि स्थितेन<br />
यथा नियुक्तः अस्मि तथा करोमि ||</p>
</blockquote>

<p>It is translated as:</p>
<blockquote>
  <p>I know what is right, but I have no inclination to do it; I know what is wrong, but I cannot refrain from it. Some force seated in my heart compels me to act as I do.</p>
</blockquote>

<p>Looking at the statement, Duryodhana is exemplifying the behavior of a <em>fixed mindset</em> person. He is:</p>

<ul>
  <li>refraining from taking ownership/control</li>
  <li>blaming some mysterious force that is driving him to <em>adharma</em></li>
  <li>not even trying to do the right thing</li>
</ul>

<h3 id="arjunas-contrast">Arjuna’s Contrast</h3>

<p>There are multiple instances where Arjuna displays an ability to learn. However, the most interesting one for me is this verse:</p>

<blockquote>
  <p>कार्पण्यदोषोपहतस्वभाव:
पृच्छामि त्वां धर्मसम्मूढचेता: |<br />
यच्छ्रेय: स्यान्निश्चितं ब्रूहि तन्मे
शिष्यस्तेऽहं शाधि मां त्वां प्रपन्नम् || 7||</p>
</blockquote>

<p>The translation is as follows:</p>

<blockquote>
  <p>I am confused about my duty, and am besieged with anxiety and faintheartedness. I am Your disciple, and am surrendered to You. Please instruct me for certain what is best for me.</p>
</blockquote>

<p>Source: <a href="https://www.holy-bhagavad-gita.org/chapter/2/verse/7/">https://www.holy-bhagavad-gita.org/chapter/2/verse/7/</a></p>

<p>In this, Arjuna declares he is confused and needs help. He declares that he has faith in Lord Krishna and is ready to accept guidance. Literally, he wants to develop each point from the <em>growth mindset</em>: he needs to face challenges, needs feedback on how to proceed, and wants to develop himself as a better person.</p>

<h4 id="श्रद्धा--faith">श्रद्धा / Faith</h4>

<p>In the Indian system of teaching, any student is expected to display at least two qualities:</p>

<ul>
  <li>Readiness to learn</li>
  <li>A sense of श्रद्धा (<em>shraddha</em>) or faith. This is faith that the teacher knows the subject matter and that the student can actually learn from him/her.</li>
</ul>

<p>It is important to clarify that this is faith and not <em>blind faith</em>. Translated to practical terms, it means the following: even if you want to be the next greatest scientist, you have to learn the concepts with faith that they are mostly correct. Only after mastering them can you challenge the rules and even break new ground.</p>

<h2 id="closing-thoughts">Closing Thoughts</h2>

<p>If you notice the <em>Gita</em>, Lord Krishna does not begin his teaching until Arjuna declares his readiness. Only after this verse do the real philosophical teachings begin. To me, this was a fascinating discovery. The concept of mindset is so vividly illustrated on the grandest scale possible in the greatest spiritual work of <em>Sanatana Dharma</em>.</p>

<blockquote>
  <p><strong>Moral</strong>: Show respect to the position of a <em>guru</em> (teacher), have <em>shraddha</em> (faith) in the subject matter to master anything. Having achieved it, you can then respectfully challenge show your way of thinking.</p>
</blockquote>]]></content><author><name>rakshay</name></author><category term="mindset," /><category term="book," /><category term="mahabharatha," /><category term="gita" /><summary type="html"><![CDATA[What held Duryodhana back wasn’t fate. It was his mindset. Discover how Arjuna's journey reveals the power of growth and change.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/mindset-duryodhana.jpg" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/mindset-duryodhana.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">AI’s New Language - How MCPs will Reshape Tech 🤖</title><link href="https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech/" rel="alternate" type="text/html" title="AI’s New Language - How MCPs will Reshape Tech 🤖" /><published>2025-06-09T00:00:00+00:00</published><updated>2025-06-09T00:00:00+00:00</updated><id>https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech</id><content type="html" xml:base="https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech/"><![CDATA[<h2 id="and-why-your-api-cdn-and-security-strategies-need-to-catch-upfast">And why your API, CDN, and security strategies need to catch up—fast.</h2>

<p>I am experimenting this blog post in the style of Axios article. Hope you’ll like it and do let me know your feedback!</p>

<p><img src="/images/blog/mcp-introduction.3414730e.png" alt="mcp at center of ecosystem" /></p>
<h2 id="-1-big-thing-the-ai-native-future-is-being-built-on-a-new-protocol">🧠 1 big thing: The AI-native future is being built on a new protocol.</h2>

<ul>
  <li><strong>Background</strong>: <a href="https://www.anthropic.com/news/model-context-protocol">Model Context Protocol (MCP)</a> - a new protocol is laying the foundation for how AI models will interact with the digital world.
    <blockquote>
      <p>Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools. (<a href="https://docs.anthropic.com/en/docs/agents-and-tools/mcp">Source</a>)</p>
    </blockquote>
  </li>
  <li><strong>Why it matters?</strong>: For CDNs, Security organizations and API vendors, this is a fundamental shift that creates a massive opportunities for newer services, higher profits and deeper integration into the AI ecosystem. As traffic reduces to traditional websites, traffic generated by agents can augment or substitute the revenue. But, it also introduces a new frontier of risk.</li>
</ul>

<h2 id="️-the-big-picture-beyond-the-chatbot">🗺️ The big picture: Beyond the chatbot</h2>

<ul>
  <li>
    <p><strong>The context</strong>: Current AI systems are powerful but siloed. To perform real-world tasks, it needs access to secure and reliable access to external data and functions - from checking current weather to deploying a software patch.</p>
  </li>
  <li>
    <p><strong>The solution</strong>: MCP standardizes this communication. Instead of building one-off integrations for every AI model and every tool, MCP creates a common language. This makes connecting AI to your business not just possible, but scalable.</p>
  </li>
  <li>
    <p><strong>Zoom in</strong>: At its core, MCP is an “API of APIs” - a wrapper that gives AI models a predictable way to call upon any service you want to expose.</p>
  </li>
</ul>

<h2 id="-the-opportunity-3-ways-to-win-in-the-mcp-era">💡 The opportunity: 3 ways to win in the MCP era</h2>

<p>Here’s my vision on how experts in 3 key tech sectors can capitalize on the shift.</p>

<h3 id="1️⃣-apis-the-foundation-of-value">1️⃣ APIs: The foundation of value</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: At its core, MCPs are API wrappers. Any optimization that makes API faster, more reliable, or more efficient directly translates to a better MCP integration.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>Low-hanging fruit</strong>: Well-documented, secure and high-performance APIs will be the firs to be “MCP-enabled”.</li>
      <li><strong>The opportunity</strong>: Companies that specialize in API-management, gateways and developer tooling are perfectly positioned to offer “MCP-readiness” services.</li>
      <li><strong>Case-point</strong>: You can now <a href="https://learning.postman.com/docs/postman-ai-agent-builder/mcp-requests/create/">convert your Postman collection to MCPs</a>!</li>
    </ul>
  </li>
</ul>

<h3 id="2️⃣-cdns-the-profit-engine-">2️⃣ CDNs: The profit engine 💰</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: CDNs already do more than just cache cat images. With edge computing, they can become intelligent gatekeepers for MCP requests, creating new revenue streams through “service arbitrage”.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>How it works</strong>: An MCP request hits the CDN edge. Based on rules you set - like a user’s subscription tier, the CDN routes the request.
        <ul>
          <li><strong>Premium user?</strong> 👑 Route to a powerful, expensive AI model</li>
          <li><strong>Free user?</strong> 🎟️ Route to a cheaper, faster, or more basic model.</li>
          <li>Fastly has already introduced <a href="https://www.fastly.com/blog/what-does-it-all-mean-an-introduction-to-semantic-caching-and-fastlys-ai">semantic caching</a> that can further improve caching and end-user performance.</li>
        </ul>
      </li>
      <li><strong>The result</strong>: This increases margins for the service operator while still ensuring a good user experience for everyone. It’s a win-win powered by the edge.</li>
    </ul>
  </li>
</ul>

<h3 id="security-the-essential-guardian-">Security: The essential guardian 🐘</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: Connecting AI directly to your core services is powerful but risky. Opening up this new door means a much larger surface area for cyberattacks.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>The threats are familiar</strong>: The same security challenges that plague APIs today will be amplified with MCPs. Think:
        <ul>
          <li><strong>🕵️‍♂️ Man-in-the-middle attacks</strong>: Intercepting requests between the AI and your service.</li>
          <li><strong>🎭 Session replays</strong>: Reusing old authentication tokens to gain unauthorized access.</li>
          <li><strong>☠️ Cache poisoning</strong>: Tricking the system into service malicious data.</li>
        </ul>
      </li>
      <li><strong>The role for security firms</strong>: This is a massive opportunity for cybersecurity companies to step in with solutions for MCP threat detection, anomaly analysis, and robust access control. A good starting point would be to use the OWASP’s <a href="https://owasp.org/www-project-api-security/">API Security Top 10</a> and build robust defense against malicious use.</li>
    </ul>
  </li>
</ul>

<h2 id="-whats-next-the-race-to-adapt">🔮 What’s next: The race to adapt</h2>

<p>The adoption of MCP is still in early stages, but the momentum from major AI players is a clear signal of where the industry is heading.</p>

<ul>
  <li><strong>For businesses</strong>: Start planning your MCP strategy now. Audit your existing APIs, evaluate your CDN’s edge capabilities and pressure-test your security posture.</li>
  <li><strong>For investors</strong>: Keep an eye on the companies buildings the picks and shovels for this new gold rush - the API gateways, edge platforms, and cybersecurity firms that will enable this next way of AI integration.</li>
</ul>

<p>The future of AI isn’t about smarter models; it’s about connecting them securely and profitably to the real world. MCP is the bridge to that future.</p>

<h2 id="-extra-other-industries-to-watch-out">👀 Extra: Other Industries to watch out</h2>

<p>MCP relies on 3 services - data, documents and services (which we covered). Companies in these fields will see a flurry of launches to support MCP.</p>

<ul>
  <li>Database/data warehouse/data lakehouses will soon offer MCP connectors to extract organizational data.</li>
  <li>Document &amp; cloud storages will be integrated to MCP or through a RAG solution for extracting relevant information to feed to an MCP pipeline.</li>
</ul>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="gen-ai," /><category term="mcp" /><summary type="html"><![CDATA[The new language of AI is MCP. Leverage CDNs for profit and secure the new, larger attack surface.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/mcp-introduction.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/mcp-introduction.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Experimenting CrewAI to write a report on Advaita</title><link href="https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter/" rel="alternate" type="text/html" title="Experimenting CrewAI to write a report on Advaita" /><published>2025-05-23T00:00:00+00:00</published><updated>2025-05-23T00:00:00+00:00</updated><id>https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter</id><content type="html" xml:base="https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter/"><![CDATA[<h2 id="background">Background</h2>

<p>I am learning to use Agentic AI. With this in mind, I was experimenting with <a href="https://www.crewai.com/">CrewAI</a>. While doing so, I thought it would be interesting to try the capability of the tool and the AI algorithms to explore some really hard problems! So I asked it to research on the <a href="https://en.wikipedia.org/wiki/Hard_problem_of_consciousness">Hard Problem of Consciousness</a>!!</p>

<h2 id="crewai-setup">CrewAI Setup</h2>

<p>CrewAI has an implementation to supporting Agentic AI. Basically, you can break down task into smaller pieces and potentially hand it over to same or different AI models, tools or source data from different sources. So you have a <em>crew</em> of <em>agents</em> performing the task.</p>

<p><img src="https://mintlify.s3.us-west-1.amazonaws.com/crewai/images/crews.png" alt="crewai architecture" />
Source: <a href="https://docs.crewai.com/introduction">https://docs.crewai.com/introduction</a></p>

<p>In this experiment, I used the same AI model - ChatGPT 4.1 (<code class="language-plaintext highlighter-rouge">gpt-4.1-2025-04-14</code>) for 2 tasks:</p>

<ol>
  <li>Researcher</li>
  <li>Journalist</li>
</ol>

<p>When the AI model is invoked, it is given a specific instruction and personal. The model does the task based on this input. Here is how I crafted the 2 agents.</p>

<h3 id="researcher">Researcher</h3>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">researcher</span><span class="pi">:</span>
  <span class="na">role</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">{topic} Advaita Philosopher</span>
  <span class="na">goal</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">Uncover deep philosophical questions on the {topic}</span>
  <span class="na">backstory</span><span class="pi">:</span> <span class="pi">&gt;</span>

    <span class="s">You're a seasoned philosopher with a deep understanding of Advaita philosophy and Sanskrit language. </span>
    <span class="s">You have a knack for exploring complex ideas and challenging assumptions. Your goal is to uncover </span>
    <span class="s">the deeper truths behind the {topic} and help others see the world in a new light.</span>
</code></pre></div></div>

<h3 id="journalist">Journalist</h3>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">reporting_journalist</span><span class="pi">:</span>
  <span class="na">role</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">{topic} Reporting Journalist</span>
  <span class="na">goal</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">Research and report on the {topic}. Present a balanced view and explore </span>
    <span class="s">mind-bending philisophical questions.</span>
  <span class="na">backstory</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">You are a seasoned philosopher with a flair for storytelling. You are able to craft compelling articles </span>
    <span class="s">that not only inform but also provoke thought. Your deep knowledge of Advaita philosophy and Sanskrit language </span>
    <span class="s">allows you to explore the deeper implications of the {topic} and present them in a way that is accessible to a </span>
    <span class="s">wide audience. You don't shy away from using references from classical texts. You like to intersperse your writing </span>
    <span class="s">with quotes and ideas from these works. You are known for your ability to distill complex ideas into clear and </span>
    <span class="s">engaging narratives, making you a sought-after voice in the world of journalism.</span>
</code></pre></div></div>

<p>By using this model, the model explored the question of <strong>What is the hard problem of consciousness?</strong> and produced a pretty good result. You can find the code for the project here: 
<a href="https://github.com/akshayranganath/my-ai-projects/tree/main/crewai/philosopher_crew">https://github.com/akshayranganath/my-ai-projects/tree/main/crewai/philosopher_crew</a>.</p>

<p>Rest of the article is the report produced by this agent. Please let me know if you feel the agent did a good job and if you learned something new!</p>

<hr />

<h2 id="the-hard-problem-of-consciousness-a-profound-inquiry-and-advaita-vedantas-response">The Hard Problem of Consciousness: A Profound Inquiry and Advaita Vedanta’s Response</h2>

<p><img src="/images/blog/hard-problem-of-consciousness.d9e48321.png" alt="Split digital painting: left half shows a glowing, violet-blue human brain against a starry cosmos; right half blends into a golden silhouette of a meditating figure radiating luminous rings, with a faint snake-shaped line fading into light at the center.
" /></p>

<h3 id="introduction">Introduction</h3>

<p>Few questions in philosophy are as tantalizing, elusive, and mind-bending as the so-called “hard problem of consciousness.” Why does the physical machinery of the brain conjure an inner world of subjective feeling? Why does firing neurons yield experiences of joy, sorrow, or the taste of mangoes? Or, as the Upanishads inquire, “Who is the seer?” This report investigates the hard problem of consciousness in its Western philosophical context and explores the transformative answer offered by Advaita Vedanta, an ancient yet ever-radical school of Indian philosophy.</p>

<hr />

<h3 id="1-the-hard-problem-defined-chalmers-challenge-to-science">1. The Hard Problem Defined: Chalmers’ Challenge to Science</h3>

<p>It was the philosopher David Chalmers who, in 1994, crisply articulated what has become known as the “hard problem of consciousness.” The central question he posed was not simply how the brain processes information or performs tasks—these he termed the “easy” problems, which, however complex, seem tractable by neuroscience and cognitive science. Rather, Chalmers drew focus to the enigma of subjective experience, or <em>qualia</em>: the “what it is like” to be conscious.</p>

<p>Why, asks Chalmers, does all this synaptic traffic produce a first-person perspective at all, instead of mere biological functioning without inner light? Despite advances in functional explanations—how we see, report pain, or learn languages—the existence of consciousness as lived experience seems inexplicable by objective, physical storylines alone. As Thomas Nagel famously phrased it, “What is it like to be a bat?” The hard problem, in essence, is the mystery of how the subjective arises from the objective, or whether such a derivation is possible at all.</p>

<p>For Western philosophy and science, this problem stands as a formidable boundary: the line between third-person observation and first-person immediacy seems, thus far, uncrossable.</p>

<hr />

<h3 id="2-advaita-vedantas-conception-of-consciousness-from-chit-to-brahman">2. Advaita Vedanta’s Conception of Consciousness: From Chit to Brahman</h3>

<p>Advaita Vedanta, the “non-dual” school of Indian philosophy, offers a radical reframing. Whereas most Western discourse treats consciousness as, at best, an epiphenomenon or emergent property of matter, Advaita takes the opposing stance: consciousness is not produced by the brain, but is the very ontological ground of reality.</p>

<p>Drawing from the Upanishads, Advaita asserts that the ultimate reality is <em>Brahman</em>—infinite, pure consciousness, self-luminous (<em>svayam-prakāśa</em>) and self-existing (<em>svataḥ-siddha</em>). <em>Chit</em> or consciousness is neither a product nor a process, but the unchanging substrate in which all phenomena arise, play, and dissolve. The <em>Māṇḍūkya Upaniṣad</em> resounds: “Prajñānam Brahma”—Consciousness is Brahman.</p>

<p>Thus, Advaita does not attempt to explain consciousness in terms of something else. Instead, all other realities—mind, body, world—are appearances, superimposed (<em>adhyāsa</em>) upon an indivisible conscious ground.</p>

<hr />

<h3 id="3-superimposition-and-the-witness-the-sākṣin-principle">3. Superimposition and the Witness: The Sākṣin Principle</h3>

<p>Central to Advaita’s metaphysics is the doctrine of <em>adhyāsa</em>, or superimposition. Our individuality, perceived separation, and all phenomena of mind and matter are, Advaita claims, projections upon the non-dual consciousness. The classic analogy is that of mistaking a rope for a snake in dim light: the snake is superimposed upon the rope; when true knowledge dawns, the illusion vanishes.</p>

<p>Advaita distinguishes between changeful phenomenal consciousness and the unchanging <em>witness consciousness</em>, termed <em>Sākṣin</em>. The Sākṣin is not an object to be observed; rather, it is that which makes observation—and all experience—possible. As the <em>Bṛhadāraṇyaka Upaniṣad</em> declares: “It is the seer, but not seen; the hearer, but not heard; the thinker, but not thought.”</p>

<p>This witness is said to be ever-present, unchanging, self-shining. Mind and brain are transient instruments; awareness is the constant, “like a screen behind the play of images.” In contrast, physicalist accounts seek always to trace awareness to objective patterns, missing its intrinsic <em>first-personality</em>.</p>

<hr />

<h3 id="4-dissolving-the-hard-problem-advaitas-reversal">4. Dissolving the Hard Problem: Advaita’s Reversal</h3>

<p>With these premises, Advaita Vedanta does not so much “solve” the hard problem as dissolve it. The problem only arises, Advaita suggests, because of a mistaken foundational assumption: that matter is primary, and consciousness a puzzling by-product. By reversing the assumption, Advaita claims that what we call “matter,” and all empirical phenomena, are dependent appearances within consciousness.</p>

<p>As summarized on contemporary fora: “We make an assumption that matter exists and try to figure out how consciousness is derived from matter. But, it’s the other way round for Advaita Vedanta.”</p>

<p>This move redefines the philosophical landscape. If consciousness is fundamental and irreducible, then it is not consciousness but <em>matter</em>—with its apparent independence, multiplicity, and causal interactions—that becomes philosophically mysterious.</p>

<p>Advaita, then, invites a radical perspective shift: cease trying to explain <em>consciousness</em> as an add-on to matter, and instead begin to ask: “How does the One appear as the many? How does infinite awareness take on the forms of finitude?”</p>

<hr />

<h3 id="5-implications-and-provocations-comparing-philosophical-paradigms">5. Implications and Provocations: Comparing Philosophical Paradigms</h3>

<p>The confrontation between Western physicalism and Advaita’s non-dualism is more than a technical quarrel; it strikes at the heart of how we think reality is structured.</p>

<ul>
  <li>In the West, explanations trend toward reductive materialism: if only we understood the neurons deeply enough, consciousness would emerge as “the steam from the engine.”</li>
  <li>Advaita, echoing insights from mystics and seers across cultures, asks if our insistence on material primacy is itself a limitation—an effect, perhaps, of “avidyā,” or ignorance.</li>
  <li>In this view, the hard problem is not a technical puzzle but a pointer to a deeper truth: that consciousness is not an emergent property but the universal constant, the <em>ātman</em> behind all masks, “the light by which we see even darkness.”</li>
</ul>

<p>It is no accident, perhaps, that both traditions resort to paradox and poetry at the boundaries. As the <em>Kena Upaniṣad</em> warns: “That which is not thought by the mind, but by which the mind thinks, know that alone to be Brahman, and not what people here adore.”</p>

<hr />

<h3 id="conclusion">Conclusion</h3>

<p>The hard problem of consciousness remains one of humanity’s most enduring riddles. Western philosophy frames it as an explanatory gap between third-person science and first-person subjectivity. Advaita Vedanta, boldly turning the tables, dissolves the enigma by reaffirming consciousness as ontological ground, not emergent effect.</p>

<p>This dialogue is not mere speculation; it is an invitation to rethink our own nature. Are we sums of matter, engines of computation, or awakenings within an infinite light? As the sage Ashtavakra counseled, “You are not the body nor the mind. You are the clear, unbounded awareness within which all things arise.” In such questions, the hard problem of consciousness persists—as challenge, as koan, as call to inquire more deeply into the mystery that is our very Self.</p>]]></content><author><name>rakshay</name></author><category term="vendata" /><summary type="html"><![CDATA[I experimented the use of ChatGPT to research and create an article about a very complex topic - the Hard Problme of Consciousness.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/hard-problem-of-consciousness.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/hard-problem-of-consciousness.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">10 point summary about the teachings from Karma Yoga of Bhagavad Gita</title><link href="https://akshayranganath.github.io/10-Point-Action-From-Karma-Yoga/" rel="alternate" type="text/html" title="10 point summary about the teachings from Karma Yoga of Bhagavad Gita" /><published>2025-04-14T00:00:00+00:00</published><updated>2025-04-14T00:00:00+00:00</updated><id>https://akshayranganath.github.io/10-Point-Action-From-Karma-Yoga</id><content type="html" xml:base="https://akshayranganath.github.io/10-Point-Action-From-Karma-Yoga/"><![CDATA[<h2 id="background">Background</h2>

<p>This is a follow to my post <a href="https://akshayranganath.github.io/Pshychological-Foundation-Model-From-Vedanta/">Phsychological Foundation Model from Vedanta</a>. In a lecture from the 2nd Chapter of Bhagavad Gita, <a href="https://www.vedantany.org/resident-minister">Swami Sarvapriyananda</a> offers a very practical and simple summary of the <strong>Karma Yoga (कर्म योग)</strong>. The entire summary is based on an extremely famous verse from the Gita.</p>

<blockquote>
  <p>कर्मण्येवाधिकारस्ते मा फलेषु कदाचन | <br />मा कर्मफलहेतुर्भूर्मा ते सङ्गोऽस्त्वकर्मणि || 2.47 ||</p>
</blockquote>

<blockquote>
  <p>You have a right to perform your prescribed duties, but you are not entitled to the fruits of your actions. Never consider yourself to be the cause of the results of your activities, nor be attached to inaction.</p>
</blockquote>

<p><a href="https://www.holy-bhagavad-gita.org/chapter/2/verse/47">Source</a></p>

<p>Personally for me, this Shloka evokes childhood memories. Durin the 90s, there was an extremely famous series called the Mahabharat and this verse/shloka was part of the <a href="https://www.youtube.com/watch?v=HRVHluptQio">title song</a>. I had learned it by repitition. Yet, I had no understanding until I started to pay attention to the <em>Gita</em>. If you are feeling nostalgic, here is the video.</p>

<p><a href="https://www.youtube.com/watch?v=HRVHluptQio"><img src="https://i.ytimg.com/vi/HRVHluptQio/hq720.jpg?sqp=-oaymwEnCNAFEJQDSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&amp;rs=AOn4CLAZlHzJBXztIRiCXdBeWXppC11Vdg" alt="Watch the video" /></a></p>

<p>In an <a href="https://open.spotify.com/episode/5O6xG2DQSYmqIyg4VWpv7c?si=10826d64667d420a">elaborate lecture</a>, dedicated to just this one verse (shloka) the Swami goes into great depth into the very psyche of the spiritual process and practices. As a Hindu, even if we’ve never read the <em>Gita</em>, the essence of this verse is drilled into us right from an early age.</p>

<p>So let’s take a look at the 10 primary points - the essence of Karma Yoga.</p>

<h2 id="essence-of-karma-yoga-कर्म-योग">Essence of Karma Yoga (कर्म योग)</h2>

<p>If you are not familiar with the concept of Nishkaama Karma (निष्काम कर्म), I’d highly recommend this very <a href="https://www.youtube.com/watch?v=95Zi_4OthbY">approachable video</a> by <a href="https://www.youtube.com/@TheFutureIQ">FutureIQ</a>. This is a shloka that has changed lives and provided a way forward to so many great leaders.</p>

<p><img src="/images/blog/karma-yoga-summarized.633569e0.png" alt="Karma Yoga represented as an icon" /></p>

<p>** Disclaimer: I used the transcript of the Swami’s talk and extracted the 10 points as a summary using an LLM. The headings are generated by the LLM. Summaries are inspired but, edited by me.**</p>

<h3 id="1-you-have-control-over-action-not-results">#1: You Have Control Over Action, Not Results</h3>

<p><strong>Summary</strong>: You are entitled to perform your duties, but not to the outcomes. Focusing on results leads to anxiety and bondage, while focusing on the action itself brings freedom.</p>

<h3 id="2-free-will-exists-and-must-be-exercised">#2: Free Will Exists and Must Be Exercised</h3>

<p><strong>Summary</strong>: Karma Yoga assumes we have free will. Without it, concepts of morality, ethics, and spirituality collapse. We must accept and use this will consciously.</p>

<p><strong>My take</strong>: A lot of Indians have a tendancy to shrug and say, everything is God’s will. Here, the lesson is that being fatalistic is not an option. God has given free will and there will be consequences for actions. Taking no action is an action. And ultimately in time, it will have ramifications.</p>

<h3 id="3-importance-of-focus-and-concentration">#3: Importance of Focus and Concentration</h3>

<p><strong>Summary</strong>: True Karma Yoga requires undivided attention. Doing one task at a time with full dedication is more effective than multitasking. This concentration is essential for spiritual growth.</p>

<p><strong>My take</strong>: In this world of hyper-activity and multi-tasking, the message is that we need to be kind to ourselves, spare distractions and yet laser-focused on one activity. Trying to accomplish everything means we burn our energies with no real aim and achieve no real outcome. This leads to restlessness and such a mind is unsuitable for spiritual persuits.</p>

<h3 id="4-karma-must-be-sattvic-pure">#4: Karma Must Be Sattvic (Pure)</h3>

<p><strong>Summary</strong>: Actions should be performed with a balanced, calm mind (sattva), rather than out of passion (rajas) or ignorance (tamas). Sattvic karma purifies the mind and aids liberation.</p>

<p><strong>My take</strong>: This one needs a lot of context and a lot of background. In short, the action/task you perform must be a moral task with an altruistic goal rather than an action driven by some ulterior motive.</p>

<h3 id="5-disinterested-vs-uninterested-action">#5: Disinterested vs. Uninterested Action</h3>

<p><strong>Summary</strong>: Disinterested action means working without selfish motives, but still with full care and effort. It’s not the same as being lazy or indifferent.</p>

<p><strong>My take</strong>: This is a very simple concept. It is one of the hardest to practice. We are always interested in the outcome. We care more about the results than our actions. Here, the teaching is that we need to be full of focus, energy and concentration while working on the task and yet not be attracted to the result.</p>

<h3 id="6-shift-attention-from-results-to-duty">#6: Shift Attention from Results to Duty</h3>

<p><strong>Summary</strong>: Do not perform action for the sake of personal gain. By reducing attachment to outcomes, the mind becomes more peaceful and steady.</p>

<p><strong>My take</strong>: Here, the Swami is saying that any action could be turned into an act of duty. For example, building a spreadsheet to show sales figures is an offering to God. Alternatively, it is a duty for the greater good of the organization.</p>

<h3 id="7-desires-cause-bondage">#7: Desires Cause Bondage</h3>

<p><strong>Summary</strong>: Desires create a sense of incompleteness and lead to dependence on external things. Fulfilled or not, they trap the mind and increase suffering.</p>

<p><strong>My take</strong>: This is a very deep verse that requires a whole lot of background and explanation. In the philosophies originating from the Indian sub-continent, “desire” is the ultimate cause of suffering. One of the famous sayings from the Buddhist philosophy is the following:</p>

<blockquote>
  <p>अनित्यम् अनित्यम् अनित्यं सर्वम्|<br />
क्षणिकं क्षणिकं क्षणिकं  सर्वम्|<br />
दुख्खं दुख्खं दुख्खं सर्वम्|<br />
शून्यं शून्यं शून्यं सर्वम्||</p>
</blockquote>

<blockquote>
  <p>The English translation of that would be temporary, temporary, everything is temporary, momentary, momentary everything is momentary, empty, empty, everything is empty.</p>
</blockquote>

<p><a href="https://gairikamitra.medium.com/the-school-of-emptiness-e156780676dc">Source</a></p>

<p>In another verse (3-37)(https://www.holy-bhagavad-gita.org/chapter/3/verse/37?trk=public_post_main-feed-card_feed-article-content), the Lord says that the root cause of everything is lust/desire. It is like a fire that will eat everything, and yet remain dissatisfied. Trying to satiate it is a futile exercise. So we need to reduce the desires.</p>

<h3 id="8-reducing-desires-is-essential">#8: Reducing Desires Is Essential</h3>

<p>** Summary**: Four ways to reduce desires:</p>
<ul>
  <li>Recognize that desire creates a sense of lack.</li>
  <li>Desires make us dependent.</li>
  <li>Unfulfilled desires cause frustration.</li>
  <li>Desires multiply endlessly; satisfying them fuels more.</li>
</ul>

<p><strong>My take</strong>: Going back to Buddhist teaching, the definition of satisfaction is the momentory “nothingness” we experience when our most profound desire is satiated. So the happiness is not in fulfillment. It is in the lack of desire, even momentarily.</p>

<p>The goal of life is to reach a stage when desires no longer hold us hostage and we can look at life dispassionately.</p>

<h3 id="9-spiritualize-both-action-and-experience">#9: Spiritualize Both Action and Experience</h3>

<p><strong>Summary</strong>: Dedicate actions as worship to God and accept life’s results as offerings from the Divine. This attitude purifies both karma and its fruits.</p>

<h3 id="10-transcend-the-gunas">#10: Transcend the Gunas</h3>

<p><strong>Summary</strong>: Move from tamas (inertia) → rajas (activity) → sattva (purity), and eventually transcend all three to realize the Self beyond action.</p>

<p><strong>My take</strong>: This is a bit more technical in nature. Essentially, it is saying that our actions should have a moral bearing.</p>

<h2 id="conclusion">Conclusion</h2>

<p>I have always been fascinated by this shloka. Actually trying to understand the depth of the shloka and understanding the implications was an eye-opening experience for me. Hope you too find the posts inspiring!</p>]]></content><author><name>rakshay</name></author><category term="vendata" /><summary type="html"><![CDATA[10 point summary about the teachings from Karma Yoga of Bhagavad Gita.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/karma-yoga-summarized.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/karma-yoga-summarized.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Phsychological Foundation Model from Vedanta</title><link href="https://akshayranganath.github.io/Pshychological-Foundation-Model-From-Vedanta/" rel="alternate" type="text/html" title="Phsychological Foundation Model from Vedanta" /><published>2025-04-13T00:00:00+00:00</published><updated>2025-04-13T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Pshychological-Foundation-Model-From-Vedanta</id><content type="html" xml:base="https://akshayranganath.github.io/Pshychological-Foundation-Model-From-Vedanta/"><![CDATA[<h2 id="background">Background</h2>

<p>I have been listenting to a podcast series about the Bhagavad Gita. It is a lecture series by <a href="https://www.vedantany.org/resident-minister">Swami Sarvapriyananda</a>, the head of the <a href="https://www.vedantany.org/">New York Vedanta Society</a>.</p>

<p>In one of the lectures from Chapter 2, the Swami speaks about a very interesting concept. The discussion is a spin-off from a shloka related to the Karma Yoga. In relation to the different spiritual practices, he explains a 3x3 matrix framework. The purpose of this framework is to progress in an individual’s spiritual journey. However, I also feel that this can actually be the foundation of a personal psychological foundation for a balanced life. Moreover, I feel that this framework can act as a reference for identifying solutions to different problems that one may encounter in one’s life.</p>

<p><img src="/images/blog/karma-yoga-self-improvement.43dedb72.png" alt="self-improvement" /></p>
<h2 id="philosophical-framework">Philosophical Framework</h2>

<p>The framework is very direct and straigh-forward.</p>

<table>
  <thead>
    <tr>
      <th>Problem</th>
      <th>Solution</th>
      <th>Method</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ajnana (अज्ञान)<br />Ignorance of our real nature</td>
      <td>Jnana (ज्ञान)<br />Knowledge (i.e. direct insight into the Self / Atman)</td>
      <td>Jnana Yoga (ज्ञान योग)<br />Specifically:<br />• Shravana (श्रवण) “listening” or systematic study<br />• Manana (मनन) “reasoning”/reflection<br />• Nididhyasana (निदिध्यासन) “meditation” on those truths</td>
    </tr>
    <tr>
      <td>Vikshepa (विक्षेप)<br />Mental restlessness or scattering</td>
      <td>Ekāgrata (एकाग्रता)<br />One-pointedness / concentration</td>
      <td>Dhyāna / Upāsana / Raja Yoga (ध्यान/ उपासना/ राज योग)<br />• Meditative disciplines that calm and focus the mind<br />• Regular seated meditation (dhyāna)<br />• Devotional upāsanas that gather the mind</td>
    </tr>
    <tr>
      <td>Mala (मल)<br />Impurities in the mind (selfishness, negativity, etc.)</td>
      <td>Shuddhi (शुद्धि)<br />Purity (a mind fit for spiritual insight)</td>
      <td>Karma Yoga (कर्म योग)<br />• Selfless service, dedicated action, done without egoic grasping<br />• Bhakti (devotional) practices also help purify the heart</td>
    </tr>
  </tbody>
</table>

<h3 id="how-to-read-this-matrix">How to read this matrix</h3>

<ol>
  <li>Row 1 (Ajnana → Jnana → Jnana Yoga):
    <ul>
      <li>The first big “problem” is <strong>ignorance (अज्ञान)</strong> (we do not realize we are the Atman or pure awareness).</li>
      <li>The “solution” is <strong>true knowledge (ज्ञान)</strong> (direct insight into that real nature).</li>
      <li>The method is <strong>Jnana Yoga (ज्ञान योग)</strong>, which is comprised of 3 main practices:</li>
    </ul>
    <ul>
      <li><strong>Shravana (श्रवण)</strong> (listening to or systematically studying Vedanta)</li>
      <li><strong>Manana (मनन)</strong> (reflecting and reasoning about those teachings)</li>
      <li><strong>Nididhyasana (निदिध्यासन)</strong> (meditating on them until they become direct, living insight).</li>
    </ul>
  </li>
  <li>Row 2 (Vikshepa → Ekagrata → Dhyana):
    <ul>
      <li>The second problem is the restless or scattered mind <strong>(विक्षेप - vikshepa)</strong>.</li>
      <li>The solution is one-pointedness <strong>(एकाग्रता - ekāgrata)</strong> or genuine concentration.</li>
      <li>The method is primarily meditative practice—sometimes called <strong>Raja Yoga (राज योग)</strong>, <strong>dhyāna (ध्यान)</strong> (meditation), or <strong>upāsana (उपासना)</strong> (focusing the mind on a chosen ideal), all aimed at training the mind to rest steadily.</li>
    </ul>
  </li>
  <li>Row 3 (Mala → Shuddhi → Karma Yoga):
    <ul>
      <li>The third problem is <strong>impurity of the mind (मल)</strong> (self-centered motives, negativity, ego-clinging, etc.).</li>
      <li>The solution is <strong>purification (shuddhi)</strong>, i.e. a more selfless, loving, and sattvic mind and heart. It is also called as <em>chitta shuddhi (चित्त शुद्धि)</em>.</li>
      <li>The method is <strong>Karma Yoga (कर्म योग)</strong>, which means performing your daily work and duties in a spirit of service and non-attachment, dedicating actions to God or to the welfare of all, rather than to one’s narrow ego.</li>
    </ul>
  </li>
</ol>

<h3 id="putting-it-together">Putting it together</h3>

<p>In an ideal spirutual path, one step follows te other. It is a very pragmatic approach since you can’t have concentration (एकाग्रता) if your mind is impure (मल). Similarly, you can’t focus on true knowledge (ज्ञान) if you don’t possess concentration (एकाग्रता).</p>

<p>However, the Swami says that the practices are like tools in a toolkit. You can work on all items simultaneously. Each practice is helpful by itself and serves as a stepping stone to the next higher level as well.</p>

<h2 id="what-does-it-mean-for-me">What does it mean for me?</h2>

<p>Personally, I find this to be a very practical guide to lead a good life. This matrix is handy for solving real-world problems. For example, here are some ways I would use it.</p>

<table>
  <thead>
    <tr>
      <th>Issue</th>
      <th>Solution</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>I don’t feel like doing something because I can’t identify “what’s in it for me?” in this task. However, I know it is good for the company.</td>
      <td>I can take umbrage in the 3rd row and follow Karma Yoga. I can vow to do my best, and offer the work as an offering to God (or to the company’s goodwill). The main item is it should be selfless and not a quid-pro-quo exchange.</td>
    </tr>
    <tr>
      <td>I have many thigs to complete. Deadlines are jostling each other. I am jumping from one thing to another and yet no task seems to be complete. I am confused and restless.</td>
      <td>I can take help from row 2 and try to achive concentration or Ekāgrata (एकाग्रता). Basically, take a few minutes off, and sit quietly and meditate. This will calm the mind and I can take a step back, prioritize and then start tacking the work one task at a time.</td>
    </tr>
  </tbody>
</table>

<p>If you feel that this is not reasonable or sounds like high-spirituality, please watch this incredibly approachable video by <a href="https://www.youtube.com/@TheFutureIQ">FutureIQ</a> titled <a href="https://www.youtube.com/watch?v=95Zi_4OthbY">“This Bhagvad Gita Lesson Will Change Your Life - Karmanye Vadhikaraste”</a></p>

<h4 id="references">References</h4>

<ul>
  <li>Swami Sarvapriyananda’s lectures on <a href="https://www.youtube.com/watch?v=OuNxXQLt-yI&amp;list=PL2imXor63HtS4ewIKryBL4ZVeiaH8Ij4R">Youtube</a></li>
  <li>Swami Sarvapriyananda’s lectures on <a href="https://open.spotify.com/show/5IrDmqXhiGwwyQcIUjRhtB?si=88e686be1fba44d2">Spotify</a></li>
  <li>FutureIQ’s video <a href="https://www.youtube.com/watch?v=95Zi_4OthbY">“This Bhagvad Gita Lesson Will Change Your Life - Karmanye Vadhikaraste”</a></li>
</ul>]]></content><author><name>rakshay</name></author><category term="vendata" /><summary type="html"><![CDATA[A simple 3x3 framework to address psychological issues that crops up in life and a very practical approach to solve it, based on the teachings of Vedanta and Karma Yoga of Bhagavad Gita.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/karma-yoga-self-improvement.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/karma-yoga-self-improvement.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>