<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://kdqed.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://kdqed.com/" rel="alternate" type="text/html" /><updated>2026-08-12T10:38:54+00:00</updated><id>https://kdqed.com/feed.xml</id><title type="html">Karthik Devan</title><entry><title type="html">The Infinite AI Agents Thesis</title><link href="https://kdqed.com/infinite-ai-agents-thesis" rel="alternate" type="text/html" title="The Infinite AI Agents Thesis" /><published>2026-07-17T00:00:00+00:00</published><updated>2026-07-17T00:00:00+00:00</updated><id>https://kdqed.com/infinite-ai-agents-thesis</id><content type="html" xml:base="https://kdqed.com/infinite-ai-agents-thesis"><![CDATA[<p>An AI agent semi-randomly generating tokens using all the universe’s energy, GPUs, and RAM, will produce a human-comprehensible and human-maintainable codebase as per human expectations with a probability always less than 1.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Lima: The Edge Of My World</title><link href="https://kdqed.com/lima-edge-of-my-world" rel="alternate" type="text/html" title="Lima: The Edge Of My World" /><published>2026-06-22T00:00:00+00:00</published><updated>2026-06-22T00:00:00+00:00</updated><id>https://kdqed.com/lima-edge-of-my-world</id><content type="html" xml:base="https://kdqed.com/lima-edge-of-my-world"><![CDATA[<p>Last year, I had the privelege of going to Lima, walking along the beautiful cliffside from Barranco to Miraflores. On the other side of the cliff was the Pacific Ocean. Cold and wide. The world is round and circumnavigable and all that, but I don’t see myself taking a ship or a flight from South America to Australia any time soon (it’s cheaper to fly straight from my hometown). So, for practical purposes, the west coast of South America is one edge of the world I live in today. And being there was a special existential experience.</p>

<p>A poet friend of mine had once asked “Who do you want to walk to the end of the universe with?”. Turns out it was going to be a solo trip. Also turns out, I can always go back with somebody. Fun right?</p>

<p>And here’s the poem I write about being there and doing that cliffside walk:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Lima: The Edge Of My World
---

I walked on the edge
Of my current existence
Beyond it, a vast ocean
Of emptiness and silence

I'd come to see the
Edge, not the beyond
The latter could wait
For it had forever

But now at the edge
Life was in bloom
Kids walking, Teens surfing
Lovers marrying, Hermits strolling

Life bloomed in winter
Under a gloomy sky
Cold winds from beyond
Met the warmth within

The sun went down
But the edge lit up
The beyond faded out
And the show went on
</code></pre></div></div>

<p>I’ll leave the poem for you to dig metaphors out of (or Literature teachers 500 years later, that would be an achievement). Except for this one thing: I sat down for ~2 hours in a cliffside park to get a timelapse of the city lights turning on after sunset, and in those 2 hours I saw a couple get married behind me. The bride, the groom, and maybe 3 other people. The groom was in his workout clothes (maybe that’s how they met). I think that’s my dream wedding and it was really fun to watch. And here’s the timelapse:</p>

<iframe src="https://www.youtube.com/embed/FERUcJ4yzPA?si=LIePPPnxHcq932MQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9;"></iframe>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Take Breaks Please</title><link href="https://kdqed.com/take-breaks-please" rel="alternate" type="text/html" title="Take Breaks Please" /><published>2026-03-21T00:00:00+00:00</published><updated>2026-03-21T00:00:00+00:00</updated><id>https://kdqed.com/take-breaks-please</id><content type="html" xml:base="https://kdqed.com/take-breaks-please"><![CDATA[<p>Recently, I rode my motorbike to a place about 7 hours away from my home city, to just have a workation for a few days. This is not the first time I have done this. This is not the first time other travelers have reacted to me doing a long bike ride. This is not the first time foreign travelers and Indian travelers have reacted differently.</p>

<p>So here’s how it goes:</p>

<h2 id="foreign-travelers">Foreign Travelers</h2>

<p>Them: How long did it take you?</p>

<p>Me: 7 hours</p>

<p>Them: Not bad…</p>

<h2 id="indian-travelers">Indian Travelers</h2>

<p>Them: How long did it take you?</p>

<p>Me: 7 hours</p>

<p>Them: Damn how did you do that?!! That’s pretty long. Come on, you must have surely taken breaks in between.</p>

<p>Me: Yeah, of course. I took 4 breaks, why wouldn’t I?</p>

<h2 id="ok-whats-the-point">Ok, What’s The Point?</h2>

<p>The point, with Indians, is that gasp at the idea of taking a break. The surprise. The non-intuitiveness of the simple option of taking a f#$%in break. And when I meet travelers from other countries, they’re on a break after high school, a break after college, or a sabbatical from work.</p>

<p>With Indians, we are taught to run continuously from day 1. Run through school, get into college immediately, get a job right after college, get married right after, have kids asap, and subject them through this brakeless transit through life to a fixed destination called death. And it’s not just the big-picture of life, it’s also the smaller things. No other country I’ve been to honks as much as India does on the roads, and I’m sure at least 50% of the honks happen because one doesn’t want to stop and look around before getting past a cross road. I was taught to honk, so if there is somebody else coming in, they would honk in reply. I was taught its okay to send a wave of noise pollution through the air in order to avoid using my brake. You see, this idea of non-stop motion had not only ruined my mental peace but of others too. This problem is not just temporal, it is spatial too. Tailgating, squeezing into each other in queues, stuffing houses with all kinds of furniture without breathing space. But that’s a separate rant.</p>

<p>In other countries, the typical norm is to slow down / stop, visually inspect and proceed. After witnessing the difference, it took me a good year or two to stop honking and do this instead (literally with my bike and metaphorically with life).</p>

<h2 id="conclusion-take-breaks-use-brakes">Conclusion: Take Breaks, Use Brakes</h2>

<ul>
  <li>Don’t honk when you can use the brake instead. Commute in peace.</li>
  <li>Take breaks on long rides, you don’t get prizes for not doing so</li>
  <li>Take that sabbatical</li>
  <li>Go one a month-long honeymoon</li>
</ul>

<p>Because the journey of life is only taking you to death. There is no need to rush to that destination. You’re definitely not going miss it by getting there late.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">How To Git Commit With Blank Messages</title><link href="https://kdqed.com/blank-commits" rel="alternate" type="text/html" title="How To Git Commit With Blank Messages" /><published>2026-03-20T00:00:00+00:00</published><updated>2026-03-20T00:00:00+00:00</updated><id>https://kdqed.com/blank-commits</id><content type="html" xml:base="https://kdqed.com/blank-commits"><![CDATA[<h2 id="how">How?</h2>

<p>One liner:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git commit -a --allow-empty-message -m \"\"
</code></pre></div></div>

<p>Or add an alias to <code class="language-plaintext highlighter-rouge">~/.gitconfig</code></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[alias]
  nccommit = commit -a --allow-empty-message -m \"\"
</code></pre></div></div>

<p>Then you can:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git nccommit
</code></pre></div></div>

<h2 id="why">Why?</h2>

<ul>
  <li>In the interest of preventing cognitive overload, it’s better to leave a commit message blank unless there is something utterly useful to write.</li>
</ul>

<h2 id="but-what-about-accountability">But What About Accountability</h2>

<ul>
  <li>Leave meaningful messages for major changes (may be while merging to a more important branch). If someone is going to hold you accountable for not meaningfully describing a typo fix, you probably need to find other people to work with.</li>
</ul>

<h2 id="but-what-about-auto-generating-changelogs-with-conventional-commits">But What About Auto-generating Changelogs With Conventional Commits?</h2>

<blockquote>
  <p>Honestly I never bother reading changelogs generated from conventional commits, they’re trash. Changelogs must be written by humans, for humans. A commit is too small a unit to make a useful changelog, it lacks high level vision.</p>

  <p><a href="https://lobste.rs/~thiht">- lobste.rs/~thiht</a></p>
</blockquote>

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

<ul>
  <li><a href="https://stackoverflow.com/questions/6218199/git-commit-with-no-commit-message">https://stackoverflow.com/questions/6218199/git-commit-with-no-commit-message</a></li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">AI &amp;amp; Iron Man: Why is the Man inside the Iron instead of vibing?</title><link href="https://kdqed.com/iron-man-got-no-vibes" rel="alternate" type="text/html" title="AI &amp;amp; Iron Man: Why is the Man inside the Iron instead of vibing?" /><published>2026-03-18T00:00:00+00:00</published><updated>2026-03-18T00:00:00+00:00</updated><id>https://kdqed.com/iron-man-got-no-vibes</id><content type="html" xml:base="https://kdqed.com/iron-man-got-no-vibes"><![CDATA[<p>As LLMs get better and better equipped with good tooling, most AI evangelists are selling the “AI will replace our workforce” narrative. The most notorious is probably Andrej Karpathy who came up with the idea of ‘vibing’, and quite often posts “Look how much my AI did without me touching anything”. Such things, in my opinion, are purely marketing gimmicks. I’d say, typically a human + AI workflow is surely better and often faster than running Claude Code and watching it struggle for 2 hours. Other similar narratives go like “English is going to be the only programming language” and “no one is going to read/write code anymore”. Another one: “Everyone is going to be a manager, no more engineers.”</p>

<p>However, from my experience, and of several folks I know personally, AI has been only a great amplifier and augmenter of skills and talents that folks already have. And of incompetencies too. Somebody recently described a project to me and asked “Can Claude Code do this?”, and I replied: “Depends on who uses Claude Code”. One can use Claude to generate 10000 lines of React slop or 100 lines of vanilla JS that does the same thing. It depends.</p>

<blockquote>
  <p>Hot take: AI only makes things faster if you know what you’re doing</p>
</blockquote>

<p>One of the ways I’ve been describing this experience of mine to other folks is the Iron Man narrative. Why is the Man still inside in the Iron when he has JARVIS to control the Iron and a whole fleet of Irons? I asked Gemini this question, and what we can learn about AI replacing people from this analogy. I’m paraphrasing the conversation below.</p>

<hr />
<p><strong>Me</strong>:</p>

<p>Why does Tony Stark stay inside the suit in Iron Man and all the other movies/comics when he can just command it remotely?</p>

<hr />
<p><strong>Gemini</strong>:</p>

<p>While Tony Stark does frequently use remote-operated suits (like the “Iron Legion” in Iron Man 3 or the “Sentry Mode” in Spider-Man: Homecoming), there are several strategic and narrative reasons why he usually chooses to stay inside the armor.</p>

<h3 id="1-latency-and-signal-interference">1. Latency and Signal Interference</h3>

<p>In a high-stakes dogfight or a battle against superpowered beings, even a millisecond of lag can be fatal. Remote piloting relies on a data link that can be jammed, hacked, or physically obstructed by deep-underground bunkers or atmospheric interference. By being physically present, Tony ensures a zero-latency connection between his brain and the suit’s HUD and movement systems.</p>

<h3 id="2-the-human-element-and-intuition">2. The “Human Element” and Intuition</h3>

<p>Tony often argues that the suit is an extension of himself, not just a drone. Artificial intelligence (like JARVIS or FRIDAY) is excellent at calculations, but it lacks the unpredictable human intuition needed to outsmart an opponent. Being in the suit allows him to make split-second “gut” decisions that an algorithm might not prioritize, such as self-sacrifice or creative problem-solving.</p>

<h3 id="3-survivability-and-life-support">3. Survivability and Life Support</h3>

<p>The Iron Man suit isn’t just a weapon; it is a high-tech life-support system. In the early films, it literally kept his heart beating. Even after his surgery, the suit provides:</p>

<p>Physical Protection: Tony is a “glass cannon”—a genius human who is physically vulnerable. The safest place for him on a battlefield is inside the most durable object in the room.</p>

<p>Environmental Control: It allows him to survive in the vacuum of space, underwater, or in toxic environments where he might need to lead or command from the front.</p>

<h3 id="4-accountability-and-leadership">4. Accountability and Leadership</h3>
<p>From a character standpoint, Tony struggles with the idea of “automated” protection (which is the central conflict of Avengers: Age of Ultron). He feels a moral obligation to be the one pulling the trigger or taking the hits. Leading from a remote bunker would distance him from the consequences of his actions—a detachment he spent his entire post-Afghanistan life trying to avoid.</p>

<hr />
<p><strong>Me</strong>:</p>

<p>Apply this analogy to AI models and tell me how they will impact work</p>

<hr />
<p><strong>Gemini</strong>:</p>

<p>The “Pilot vs. Remote” analogy perfectly maps onto the current evolution of AI in the workplace. Just as Tony Stark shifted from being the sole operator to managing an “Iron Legion,” we are moving from AI as a tool to AI as an agent.</p>

<p>Here is how that analogy translates to the future of work:</p>

<h3 id="1-the-in-the-suit-era-ai-as-an-exoskeleton">1. The “In-the-Suit” Era: AI as an Exoskeleton</h3>

<p>In this phase, the human is the pilot. You aren’t “remote”; you are using AI to augment your own physical or cognitive limits.</p>

<p>The Impact: Increased individual “torque.” A single developer, designer, or auditor can do the work of a small team because the “suit” (AI) handles the heavy lifting, data processing, and rote movements.</p>

<p>The Key: You still bear the risk and provide the intuition. If the “suit” fails, you are the one on the ground.</p>

<h3 id="2-the-iron-legion-era-ai-as-autonomous-agents">2. The “Iron Legion” Era: AI as Autonomous Agents</h3>

<p>This is the “remote command” stage. Instead of doing the work, you are the Commander. You deploy “suits” (specialized AI agents) to handle specific tasks—one for research, one for drafting, one for testing.</p>

<p>The Impact: Shift from Execution to Orchestration. Your value isn’t in how well you “fly” the suit, but in how well you coordinate the fleet.</p>

<p>The Risk: Just like Tony’s remote suits, this introduces “latency” in quality control and the risk of “signal interference” (hallucinations or misaligned goals).</p>

<h3 id="3-the-human-element-the-moral-center">3. The “Human Element” (The Moral Center)</h3>

<p>The biggest impact on work will be the re-valuation of intuition. As AI becomes better at “remote” execution (the calculations), the “pilot in the suit” becomes more important for the things AI can’t simulate:</p>

<p>Accountability: AI can generate a solution, but a human must own the consequences.</p>

<p>Edge Cases: In a “battle” (a complex, unprecedented business or technical crisis), the algorithm might lack the “gut feeling” to pivot.</p>

<p>Empathy: Human-to-human leadership remains the one thing you can’t command remotely through a drone.</p>

<p><strong>The “Ultron” Warning</strong>:
Tony Stark’s biggest mistake was trying to “put a suit of armor around the world” without enough human oversight. In a professional context, over-reliance on automated “remote” AI can lead to Technical Debt and a loss of specialized knowledge. If no one knows how to fly the suit manually, you’re in trouble when the signal goes down.</p>

<hr />

<p>P.S.: Tony Stark risks his life to be the man in the suit despite having the most advanced AI on the planet. Hands-on engineering is often zero-risk and high-return (higher return when AI is skillfully used).</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Bengaluru Metro: Ridership Data For Revenue Optimization</title><link href="https://kdqed.com/bmrcl-ridership-revenue-analysis" rel="alternate" type="text/html" title="Bengaluru Metro: Ridership Data For Revenue Optimization" /><published>2026-02-23T00:00:00+00:00</published><updated>2026-02-23T00:00:00+00:00</updated><id>https://kdqed.com/bmrcl-ridership-revenue-analysis</id><content type="html" xml:base="https://kdqed.com/bmrcl-ridership-revenue-analysis"><![CDATA[<p>Bengaluru metro was once again in the news for a proposed price hike which was subsequently put on hold. It is already the most expensive metro network in India and achieving profitability is usually cited as the motivation for price hikes. First and foremost, a metro network does not need to be profitable in my opinion. Profitability was never the question while building Vidhana Soudha or even the Ejipura flyover for that matter. In a city like Bengaluru choked with traffic, it is worth spending the taxpayer money on metro for the common benefit even if it is not profitable. The true success of the metro system lies in the number of precious human hours saved from being behind the steering wheel/handle. Finally, as a civil society we’d be better off transferring the burden of profitability from core infrastructure to those useless 10-minute services. Why should metro be profitable when even Zepto isn’t?</p>

<p>Having said that, it is worth looking into what can be done to increase the revenue, and exploring what the ridership data has to say about the revenue. The wonderful folks at <a href="https://diagramchasing.fun/">diagramchasing.fun</a> filed an RTI to get the daily ridership data of Namma Metro for the period between August 1st and 18th, 2025 and <a href="https://diagramchasing.fun/2025/how-bangalore-uses-the-metro">wrote an interactive blog post</a> pulling out some fun facts and analyses from the data. The raw data itself consisted of multiple fields, out of which I took specific interest in the large table detailing how many passengers travelled between each station pair during each hour of each day in the said period. I enriched this data by adding the number of stations between these station pairs and revenue generated in that hour for the station pair. The raw data including my enhancements is available at <a href="https://github.com/Vonter/bmrcl-ridership-hourly">https://github.com/Vonter/bmrcl-ridership-hourly</a>.</p>

<p>The next question is, can we use this data to explore some ideas to optimize pricing and increase the revenue? Let’s dive right in!</p>

<h2 id="1-trend-of-number-of-stations-travelled">1. Trend of Number of Stations Travelled</h2>

<p>Bangalore metro, like most other Indian networks is priced primarily based on the number of stations you travel once you enter the system. This is unlike many other systems such as New York’s MTA or Mexico City Metro which charge a flat fare for you to enter the system regardless of where you’re travelling. Assuming such a distance-based pricing scheme is for enforcing some sense of fairness, let’s look at how that has worked out. Below is the distribution showing number of stations travelled in the metro system on the X-axis, with the number of people travelling for that many number of stations and the revenue generated for the same, on the Y-axis:</p>

<p><img src="/assets/posts/bmrcl-ridership-revenue-analysis/no_of_stations.png" alt="BMRCL Ridership/Revenue vs. No. of Stations" /></p>

<p>From the above chart, we see that ridership peaks around 3-5 stations while the revenue peaks around 11-12 stations. In general, the ridership curve is to the left of the revenue curve. This means, on a per ride basis, folks who use the metro for short distances are contributing disproportionately lesser to the revenue than folks who travel longer. In one sense of fairness, if we try to have each ride contributing equally to the revenue, both the curves need to overlap. One way of attempting this is to increase the price by a disproportionately higher rate for shorter distances than for longer distances. Whenever the next price hike is considered, the maximum could stay at ₹90 or even be reduced a bit, while the minimum can be hiked to ₹15 or ₹20.</p>

<h2 id="2-ridership-vs-date">2. Ridership vs. Date</h2>

<p>Let’s look at the ridership for each day in the 18-day period the data is available for:</p>

<p><img src="/assets/posts/bmrcl-ridership-revenue-analysis/dates.png" alt="BMRCL Ridership vs. Date" /></p>

<p>From the above data, we see a weekly pattern, with an increase after after the inaugration of the Yellow Line on August 10th. One interesting, non-intuitive observation is that Friday ridership is almost equal to Saturday ridership for all the 3 fridays in the time period (not just for August 15th, which is a holiday). One would typically expect weekdays to have similar ridership and weekends much lesser than that, the pattern here suggests most people commuting to work on either 4 days of the week or 6 days of the week, while Sunday is a holiday.</p>

<p>To motivate more folks to use the metro, while also using the unused capacity on Friday, Saturday and Sunday, there could be special discount schemes for those days. For example, on the New York MTA, if one completes 12 rides within a week using the same card, their subsequent rides in that week are free. On similar lines, perhaps we could have standard pricing for the first 8 rides in the week (4 days of to and fro work commute), a discount for the next 4, and everything after that discounted further or free. This system is just easier to communicate and implement with existing metro cards over dedicated passes which have to be bought separately by passengers.</p>

<h2 id="3-revenue-vs-hour">3. Revenue vs. Hour</h2>

<p>Let’s look at how ridership varies by the hour of the day:</p>

<p><img src="/assets/posts/bmrcl-ridership-revenue-analysis/hour.png" alt="BMRCL Ridership vs. Hour" /></p>

<p>Aside from the figure looking like a cat’s face, it shows two very obvious peaks when people go to work and return from work. Perhaps there could be a discount for non-peak hours to have more folks commuting during those hours?</p>

<h2 id="4-ridership-vs-station">4. Ridership vs. Station</h2>

<p>One of the significant sources of non-fare revenue are the stations themselves. The stations have real estate that can be turned into revenue by renting space for commerical activities and advertisements. Some stations have already been monetized via naming rights as well. In any case, it would be disappointing to see a commercialization to the extent of some Chennai Metro stations. These stations have been externally branded so much that they don’t even look like metro stations any more.</p>

<p>When we start looking at the station as the fundamental unit of non-fare revenue, it would make sense to evaluate each station by it’s footfall to assess its value in some sense. So let’s look at the stations that have the most footfall as origin or destination stations:</p>

<p>Top 10 Origin Stations:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Origin Station</th>
      <th style="text-align: right">Ridership</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Nadaprabhu Kempegowda Station, Majestic</td>
      <td style="text-align: right">626056</td>
    </tr>
    <tr>
      <td style="text-align: left">Benniganahalli</td>
      <td style="text-align: right">469307</td>
    </tr>
    <tr>
      <td style="text-align: left">Indiranagar</td>
      <td style="text-align: right">380598</td>
    </tr>
    <tr>
      <td style="text-align: left">Mahatma Gandhi Road</td>
      <td style="text-align: right">372369</td>
    </tr>
    <tr>
      <td style="text-align: left">Krishnarajapura</td>
      <td style="text-align: right">327496</td>
    </tr>
    <tr>
      <td style="text-align: left">Mantri Square Sampige Road</td>
      <td style="text-align: right">295139</td>
    </tr>
    <tr>
      <td style="text-align: left">Chickpete</td>
      <td style="text-align: right">284844</td>
    </tr>
    <tr>
      <td style="text-align: left">Yeshwantpur</td>
      <td style="text-align: right">251692</td>
    </tr>
    <tr>
      <td style="text-align: left">Jayanagar</td>
      <td style="text-align: right">237281</td>
    </tr>
    <tr>
      <td style="text-align: left">Cubbon Park</td>
      <td style="text-align: right">234919</td>
    </tr>
  </tbody>
</table>

<p>Top 10 Destination Stations:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Destination Station</th>
      <th style="text-align: right">Ridership</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Nadaprabhu Kempegowda Station, Majestic</td>
      <td style="text-align: right">842201</td>
    </tr>
    <tr>
      <td style="text-align: left">Benniganahalli</td>
      <td style="text-align: right">412103</td>
    </tr>
    <tr>
      <td style="text-align: left">Indiranagar</td>
      <td style="text-align: right">401228</td>
    </tr>
    <tr>
      <td style="text-align: left">Mahatma Gandhi Road</td>
      <td style="text-align: right">383640</td>
    </tr>
    <tr>
      <td style="text-align: left">Chickpete</td>
      <td style="text-align: right">305663</td>
    </tr>
    <tr>
      <td style="text-align: left">Krishnarajapura</td>
      <td style="text-align: right">304195</td>
    </tr>
    <tr>
      <td style="text-align: left">Mantri Square Sampige Road</td>
      <td style="text-align: right">297666</td>
    </tr>
    <tr>
      <td style="text-align: left">Yeshwantpur</td>
      <td style="text-align: right">258883</td>
    </tr>
    <tr>
      <td style="text-align: left">Krantivira Sangolli Rayanna Railway Station</td>
      <td style="text-align: right">248569</td>
    </tr>
    <tr>
      <td style="text-align: left">Jayanagar</td>
      <td style="text-align: right">244231</td>
    </tr>
  </tbody>
</table>

<p>The top 6 on either list are the same, amongst the next 4, Yeshwantpur and Jayanagar occur on both lists. These are the stations that could be prioritized for non-fare revenue.</p>

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

<p>In this blog, I tried to look at how the metro ridership could be used to make some pricing and revenue decisions. Of course, the data considered here is very limited and the suggestions and decisions are subject to change with more extensive data. So effectively, these sections are just a presentation of some metrics we can use in the revenue department.</p>

<p>Finally, quoting the original <a href="https://diagramchasing.fun/2025/how-bangalore-uses-the-metro#:~:text=All%20the%20above,like%20this%20regularly.">diagramchasing blog</a>:</p>

<blockquote>
  <p>All the above analysis stems from a single dataset. For organizations such as BMRCL, the takeaway should be obvious, which is to release this data regularly. When data is available and covers a long period of time, it can be used to answer a much wider range of questions, more accurately and with greater detail. You can’t beat the cost of getting analysis and insights from the public, for free. If you are from BMRCL (or another government agency), please consider releasing data like this regularly.</p>
</blockquote>

<h2 id="footnotes">Footnotes</h2>

<ul>
  <li>This analysis is based on the <a href="https://github.com/Vonter/bmrcl-ridership-hourly">BMRCL ridership data</a> obtained and published by <a href="https://orcid.org/0009-0003-2627-7788">Vivek Matthew</a>.</li>
  <li>The code used for the analysis is <a href="https://github.com/kdqed/bmrcl-ridership-revenue">on my GitHub</a></li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Linkin Park in Bengaluru 2026 - A Very Personal Account</title><link href="https://kdqed.com/linkin-park-bengaluru-personal-account" rel="alternate" type="text/html" title="Linkin Park in Bengaluru 2026 - A Very Personal Account" /><published>2026-02-10T00:00:00+00:00</published><updated>2026-02-10T00:00:00+00:00</updated><id>https://kdqed.com/linkin-park-bengaluru-personal-account</id><content type="html" xml:base="https://kdqed.com/linkin-park-bengaluru-personal-account"><![CDATA[<p>There are very few things that I’m obsessively a fan of, and two of those things are Linkin Park and the city of Bangalore. These two have been two huge constants in my life, and watched me, or rather watched over me as I’ve grown from crawling around the floor to hiking snow-ridden mountain passes 3 continents away from home. This blog is a very personal (and hence verbose) account of what the city and the band mean to me, and about the special experience of watching these two come together, that is, Linkin Park doing their first ever show in Bengaluru (and in India as well).</p>

<p>I was born in Bangalore and have spent the majority of my life here, and the city has grown wonderfully with me. It has grown from being a retirement town to a startup capital and economic powerhouse. The huge and diverse population coming into the city, paired with the entrepreneurial spirit, means there is a community or a center for any activity or niche interest that you might have. In the last 2 weeks of January, I’ve organized a walking tour, gone rifle shooting, done some basic calisthenics in a lakeside park, gone bouldering, and led a team in a scavenger hunt, all within walking distance of where I live. What started with Akkipete and Ragipete is now brimming with quinoa and sourdough in every corner. It feels like with every new interest or idea that I pick up, I unlock a different part of the city’s map. I feel amazed that this city is able to keep up with my pace of exploring life and all the things that come with it.</p>

<p>As for Linkin Park, I first heard them on Radio Indigo 91.9 when I was in high school. I just bought myself a phone (a Nokia 7210 Supernova) by saving up some money relatives gave me when they visited. It came with free earphones, and I just opened the FM radio application, and the first thing I heard was Chester Bennington screaming, “In the end, it doesn’t even matter”. For the first time in my life, music made sense to me. Because until then, in a country where music is primarily made for movies, I never connected with hero introduction songs and filmy romance music, and there was little else that I was exposed to at home. But songs like Somewhere I Belong, Numb, and In The End felt like they were written exclusively for an angry, clueless, and helpless 13-year-old teenager with a troubled upbringing (me).</p>

<p>As the years went by, I also felt like their music evolved with me. Songs like “Roads Untraveled” came out right at the age when I started making important life choices, and the mellow-sounding album One More Light came out as I was saying goodbye to my teenage years and moving towards adulthood, letting go of the angst and finding peace and grace. With the tragedy that was Chester’s death, I lost most hope of watching them live. While I found some closure in the fact that they had seen me through my difficult teenage years and maybe the universe wanted me take it on my own from there, I did wonder about what the rest of the band must be going through. Would they continue with Linkin Park? Would they go on with other projects? Back then, it was too soon to seek answers to these questions.</p>

<p>Their return in 2024 was not so much of a surprise to me, as they had started releasing old unreleased tracks like Lost well before that, which was suggestive of some activity. What came as a surprise was Emily’s vocals on a new track called The Emptiness Machine. The game was back on! I heard the whole album when it came out later that year. The sound feels like a comfortable retreat to my millennial soul, away from the onslaught of social media and mostly senseless cancel culture. The title of the album, ‘From Zero’, also resonates with my personal journey of trying to put together the best of the discrete parts of my life so far as I move into my 30s.</p>

<p>So here’s the thing, I could have watched Linkin Park live in the USA. That was part of the plan when I travelled there in 2025. The travel plan was USA → Mexico → Peru → USA again → Home, and I was hoping to get a Linkin Park show when I went to the ‘USA Again’. They were performing in Pittsburgh, and I was visiting a friend there. But then, when I was in Mexico City, something made me change my mind. The hostel I stayed at was playing Linkin Park music almost every day on their common area vibe playlist. Now, this is not something that happens in many places. Definitely didn’t happen in the US when I was there. That’s when I realized, each country or even a city for that matter, perceives a music artist in a different way. And a live show is not just about the band, it’s also about the crowd. So, I felt like I’d ideally watch them with a crowd that perceives and vibes with them in a way that I can relate to. Mexico City felt like one of those crowds, but Linkin Park had hinted at coming to India earlier that year, so what could be better than catching them live in Bangalore? It was bold of me to assume they would come to Bangalore out of all the other Indian cities. (Hot take: Bangalore/North East are the only places in India I’m attending rock music shows).</p>

<p>I took a bold bet, skipped attempting watch them in the US, and hoped they would come to Bangalore. I was mildly disappointed when they announced the Mumbai show first, but I also felt like they got the low-hanging fruit first before attempting to figure out Bangalore. Bands like Coldplay have previously said they wanted to play in Bangalore but couldn’t figure out the venue. But Linkin Park is a band that has the energy of “we will figure this out somehow”. And so does Bangalore - it’s a city that knows how to figure shit out when something is really needed. And they both did. A venue popped up in Devanahalli, and they teased the show with subtly hinted billboard signs. I got a fan pit ticket.</p>

<p>Of course, people complained about the venue being so far away from the city in Devanahalli. But I lived there for about 18 months, and it did feel like the perfect place for a show like that. Besides, these complaining folks wouldn’t have been happy even if the venue had been any closer. I reckon they’re the folks who’d expect Linkin Park members to be delivered home in 10 minutes for a live private show after they place an order on a smartphone app. As for me, whenever I go to Devanahalli, I love the last bit of the drive after crossing the ring road near Hebbal Lake. It always feels nice to leave the city behind and move into the realm of mountains, lakes, vineyards, wide open skies, and all kinds of flying things. That’s just what I need before an experience of a lifetime like this one. And finally, while I could travel and watch them in a random city, nothing beats getting a sunset by Nandi Hills and some churmuri before a Linkin Park show.</p>

<p>We reached the venue and walked in around the time Bloodywood was halfway through their opening act before Linkin Park. I liked their music, but it was too energetic for that moment, for there was the fear of jumping too much and getting too tired before the Linkin Park show even started. After their performance was a break, during which they played an interesting choice of Indian music. Very indie stuff - like Hanumankind, Raghu Dixit, Farhan Akhtar. I loved that they played Lokada Kalaji by Raghu Dixit, which is based on a centuries-old Kannada song that also tells you that it doesn’t matter in the end.</p>

<p>The show started with a signature light beam going out into the sky, which I had seen in so many YouTube videos. I tried hard not to tell my friend about this and succeeded in keeping it a surprise for him. He was happy I did. I sang along to most of their songs, and so did most of the crowd. It was very delightful to see a good part of the crowd singing along to even their new music, so it wasn’t like people came just for nostalgia’s sake. Many friends asked which song was my favorite, and I couldn’t name one. I loved all of them, and that’s why I got a fanpit ticket. But for someone who has heard almost all their tracks and knows most of the lyrics, I was pleasantly surprised by their performance of ‘Lost’. Unlike the studio version, their live performance started on a very mellow note, with a spotlight on just Mike playing the keys and Emily singing very melodiously. And then the drums and guitar came in as they came from some other galaxy through a wormhole. It was a nice warm-up, given that this was performed right after the mid-time interval.</p>

<p>Lost, Live in Bengaluru (not filmed by me):</p>
<iframe style="width: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/GqBj9SqFx4g?si=bKv6Nnet2ZmpT719" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Overall, I had no words to say how much I enjoyed the show. I still don’t. It was an experience of a lifetime, something to hope to tell my grandkids about. It was one of those things that makes you want to have kids and grandkids just so you can tell them about it. The only true testament of how much it stuck with me was my motorbike, on which I spent an hour trying to get out of the venue. Such a thing is not new, given Bangalore traffic, but being blissfully lost inside my head and not getting angry at the traffic - that is a novel thing. I could barely hear anybody honking or feel any frustration inching my motorbike forward as the music was still ringing in my ears. And finally, those 2 hours helped me consolidate my personalities from different ages because some music just instantly transports you back to when you first heard it. So, as they played songs from various albums, I travelled back and forth between various years between 2009 and 2026. I hope this journey will continue into the future years with the same energy!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Meet The Trees of Bengaluru: Updated Tree Census Analysis</title><link href="https://kdqed.com/bengaluru-tree-census-analysis" rel="alternate" type="text/html" title="Meet The Trees of Bengaluru: Updated Tree Census Analysis" /><published>2025-11-04T00:00:00+00:00</published><updated>2025-11-04T00:00:00+00:00</updated><id>https://kdqed.com/bengaluru-tree-census-analysis</id><content type="html" xml:base="https://kdqed.com/bengaluru-tree-census-analysis"><![CDATA[<p>This is a follow-up to my <a href="https://kdqed.com/bbmp-tree-census-analysis">previous post</a> analyzing the census trees in Bengaluru. There is newer data now and more importantly 5 newer corporations that have replaced BBMP to constitute the GBA (Greater Bengaluru Authority). In this post, the main goal is to classify the trees into the 5 new corporations based on GPS coordinates and repeat the previous analyses on the latest available dataset.</p>

<p>The dataset I used was obtained from the <a href="https://data.opencity.in/dataset/bengaluru-tree-census-data/resource/bbmp-tree-census-data---july-2025">OpenCity Portal</a>, and it is from July 2025. This dataset consists of about 6.8 lakh trees, of which I couldn’t classify about 3000 into any of the 5 corporations. I obtained the map boundaries for the 5 corporations <a href="https://data.opencity.in/dataset/greater-bengaluru-authority-corporations-delimitation-2025/resource/greater-bengaluru-authority-five-corporations-map---september-2025">also from OpenCity</a>.</p>

<p>All the code used in this analysis is <a href="https://github.com/kdqed/bengaluru-tree-census-analysis">on my GitHub</a>.</p>

<h2 id="index">Index</h2>

<ul>
  <li>City Wide Tree Species Frequency</li>
  <li>City Wide Tree Density</li>
  <li>Unidentified Trees</li>
  <li>Central Corporation</li>
  <li>East Corporation</li>
  <li>North Corporation</li>
  <li>South Corporation</li>
  <li>West Corporation</li>
  <li>Conclusion</li>
</ul>

<h2 id="city-wide-tree-species-frequency">City Wide Tree Species Frequency</h2>

<p>The top occuring ‘Tree Name’ in the latest dataset is ‘Others’ accounting for a quarter of the data. 🤷‍♂️</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Others</td>
      <td style="text-align: right">170505</td>
      <td style="text-align: right">24.9</td>
    </tr>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">128831</td>
      <td style="text-align: right">18.8</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">34842</td>
      <td style="text-align: right">5.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Tabebuia Rosea (Bertol) Dc.</td>
      <td style="text-align: right">27689</td>
      <td style="text-align: right">4.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Saraca Asoca (Roxb.) De Wilde</td>
      <td style="text-align: right">19007</td>
      <td style="text-align: right">2.8</td>
    </tr>
    <tr>
      <td style="text-align: left">Ptychosperma Macarthuri Nichols</td>
      <td style="text-align: right">17863</td>
      <td style="text-align: right">2.6</td>
    </tr>
    <tr>
      <td style="text-align: left">Markhamia Lutea (Benth.) K.Schum</td>
      <td style="text-align: right">14383</td>
      <td style="text-align: right">2.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Terminalia Catappa L</td>
      <td style="text-align: right">13824</td>
      <td style="text-align: right">2</td>
    </tr>
  </tbody>
</table>

<p>Other than ‘Others’, the top 7 species each represent more than 2% of the data, which looks pretty diverse. Pongamia Pinnata tops the list at 19% and while the next most frequent species covers about 5%.</p>

<h2 id="city-wide-tree-density">City Wide Tree Density</h2>

<p>The density of counted trees within the GBA bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 7).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/blr_density_map.png" alt="Bengaluru GBA Area: Density Map of Census Trees" /></p>

<p>The counted trees account for about 962 trees per square kilometer. The corporation-wise density is in the table below:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Corporation</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Trees Per Sq. km</th>
      <th style="text-align: right">% Unidentified</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">South</td>
      <td style="text-align: right">213982</td>
      <td style="text-align: right">1465</td>
      <td style="text-align: right">29.5</td>
    </tr>
    <tr>
      <td style="text-align: left">Central</td>
      <td style="text-align: right">87615</td>
      <td style="text-align: right">1125</td>
      <td style="text-align: right">16.4</td>
    </tr>
    <tr>
      <td style="text-align: left">West</td>
      <td style="text-align: right">165298</td>
      <td style="text-align: right">1016</td>
      <td style="text-align: right">24.9</td>
    </tr>
    <tr>
      <td style="text-align: left">North</td>
      <td style="text-align: right">131274</td>
      <td style="text-align: right">832</td>
      <td style="text-align: right">24.3</td>
    </tr>
    <tr>
      <td style="text-align: left">East</td>
      <td style="text-align: right">81915</td>
      <td style="text-align: right">503</td>
      <td style="text-align: right">33.3</td>
    </tr>
    <tr>
      <td style="text-align: left">Total</td>
      <td style="text-align: right">680084</td>
      <td style="text-align: right">962</td>
      <td style="text-align: right">24.9</td>
    </tr>
  </tbody>
</table>

<p>South tops the tree density followed by Central and West. North isn’t bad but East could surely has room for improvement (read Trees).</p>

<p>With respect to identification of trees, Central seems to have done the best with least fraction of unidentified trees. Here too, East is lagging behind, with 1 in 3 trees unidentified (33.3%).</p>

<h2 id="central-corporation">Central Corporation</h2>

<p>Central shows an above average tree density at 1125 trees per sq. km. The proportion of identified trees has been the best among the 5 corporations.</p>

<h3 id="tree-density---central-corporation">Tree Density - Central Corporation</h3>

<p>The density of counted trees within the Central Corporation bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 8).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/central_density_map.png" alt="" /></p>

<h3 id="top-5-species---central-corporation">Top 5 Species - Central Corporation</h3>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">8653</td>
      <td style="text-align: right">9.9</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">6392</td>
      <td style="text-align: right">7.3</td>
    </tr>
    <tr>
      <td style="text-align: left">Saraca Asoca (Roxb.) De Wilde</td>
      <td style="text-align: right">5370</td>
      <td style="text-align: right">6.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Markhamia Lutea (Benth.) K.Schum</td>
      <td style="text-align: right">4530</td>
      <td style="text-align: right">5.2</td>
    </tr>
    <tr>
      <td style="text-align: left">Tabebuia Rosea (Bertol) Dc.</td>
      <td style="text-align: right">3450</td>
      <td style="text-align: right">3.9</td>
    </tr>
  </tbody>
</table>

<p>Central shows a well distributed frequency of species with no single species exceeding 10%.</p>

<h2 id="east-corporation">East Corporation</h2>

<p>East shows the least tree density at 503 trees per sq. km. (the city-wide average is 962). It also has the highest percentage of unidentified trees (33.3%).</p>

<h3 id="tree-density---east-corporation">Tree Density - East Corporation</h3>

<p>The density of counted trees within the East Corporation bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 8).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/east_density_map.png" alt="" /></p>

<h3 id="top-5-species---east-corporation">Top 5 Species - East Corporation</h3>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">11782</td>
      <td style="text-align: right">14.4</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">5239</td>
      <td style="text-align: right">6.4</td>
    </tr>
    <tr>
      <td style="text-align: left">Tabebuia Rosea (Bertol) Dc.</td>
      <td style="text-align: right">4643</td>
      <td style="text-align: right">5.7</td>
    </tr>
    <tr>
      <td style="text-align: left">Markhamia Lutea (Benth.) K.Schum</td>
      <td style="text-align: right">2220</td>
      <td style="text-align: right">2.7</td>
    </tr>
    <tr>
      <td style="text-align: left">Thespesia Populnea</td>
      <td style="text-align: right">2095</td>
      <td style="text-align: right">2.6</td>
    </tr>
  </tbody>
</table>

<p>Of the top 5 species, Pongamia alone accounts for 14.4% of the trees, which is roughly 1 in 7.</p>

<h2 id="north-corporation">North Corporation</h2>

<p>North does moderately well compared to the city-wide averages in terms of tree density and tree identification. The tree density is 832 trees per sq. km., which is somewhat below the city-wide average of 962. Roughly in 1 in 4 trees haven’t been identified (24.3 %).</p>

<h3 id="tree-density---north-corporation">Tree Density - North Corporation</h3>

<p>The density of counted trees within the North Corporation bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 8).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/north_density_map.png" alt="" /></p>

<h3 id="top-5-species---north-corporation">Top 5 Species - North Corporation</h3>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">31963</td>
      <td style="text-align: right">24.3</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">9262</td>
      <td style="text-align: right">7.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Tabebuia Rosea (Bertol) Dc.</td>
      <td style="text-align: right">9245</td>
      <td style="text-align: right">7</td>
    </tr>
    <tr>
      <td style="text-align: left">Markhamia Lutea (Benth.) K.Schum</td>
      <td style="text-align: right">4165</td>
      <td style="text-align: right">3.2</td>
    </tr>
    <tr>
      <td style="text-align: left">Syzygium Cumini (L.) Skeels</td>
      <td style="text-align: right">3654</td>
      <td style="text-align: right">2.8</td>
    </tr>
  </tbody>
</table>

<p>Of the top 5 species, Pongamia accounts for roughly 1 in 4 trees. The distribution looks less diverse compared to other corporations.</p>

<h2 id="south-corporation">South Corporation</h2>

<p>South the tops the chart for tree density with 1465 trees per sq. km. compared to the city wide average of 965. However, it could do better with identifying the trees being counted, with 29.5% of the counted trees not having a species name.</p>

<h3 id="tree-density---south-corporation">Tree Density - South Corporation</h3>

<p>The density of counted trees within the South Corporation bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 8).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/south_density_map.png" alt="" /></p>

<h3 id="top-5-species---south-corporation">Top 5 Species - South Corporation</h3>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">41086</td>
      <td style="text-align: right">19.2</td>
    </tr>
    <tr>
      <td style="text-align: left">Ptychosperma Macarthuri Nichols</td>
      <td style="text-align: right">10206</td>
      <td style="text-align: right">4.8</td>
    </tr>
    <tr>
      <td style="text-align: left">Tabebuia Rosea (Bertol) Dc.</td>
      <td style="text-align: right">7268</td>
      <td style="text-align: right">3.4</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">6573</td>
      <td style="text-align: right">3.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Saraca Asoca (Roxb.) De Wilde</td>
      <td style="text-align: right">6132</td>
      <td style="text-align: right">2.9</td>
    </tr>
  </tbody>
</table>

<p>Of the top 5 species, Pongamia accounts for roughly 1 in 5 trees. South could work on having a more diverse distribution of trees.</p>

<h2 id="west-corporation">West Corporation</h2>

<p>West Corporation is the closest to the city-wide average both in terms of tree density (1016 trees per sq. km.) as well as percentage of unidentified trees (24.9 %).</p>

<h3 id="tree-density---west-corporation">Tree Density - West Corporation</h3>

<p>The density of counted trees within the West Corporation bounds is shown in the below map with hexagonal bins based on <a href="https://h3geo.org/">Uber’s H3 Indexing system</a> (resolution 8).</p>

<p><img src="https://raw.githubusercontent.com/kdqed/bengaluru-tree-census-analysis/refs/heads/main/results/west_density_map.png" alt="" /></p>

<h3 id="top-5-species---west-corporation">Top 5 Species - West Corporation</h3>

<table>
  <thead>
    <tr>
      <th style="text-align: left">TreeName</th>
      <th style="text-align: right">Count</th>
      <th style="text-align: right">Percentage</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Pongamia Pinnata (L.) Pierre</td>
      <td style="text-align: right">34960</td>
      <td style="text-align: right">21.1</td>
    </tr>
    <tr>
      <td style="text-align: left">Swietenia Mahagoni (L.) Jacq.</td>
      <td style="text-align: right">7320</td>
      <td style="text-align: right">4.4</td>
    </tr>
    <tr>
      <td style="text-align: left">Wrightia Tinctoria (Roxb.) R. Br</td>
      <td style="text-align: right">5763</td>
      <td style="text-align: right">3.5</td>
    </tr>
    <tr>
      <td style="text-align: left">Ptychosperma Macarthuri Nichols</td>
      <td style="text-align: right">4619</td>
      <td style="text-align: right">2.8</td>
    </tr>
    <tr>
      <td style="text-align: left">Acacia Auriculiformis Cunn. Ex Benth</td>
      <td style="text-align: right">4573</td>
      <td style="text-align: right">2.8</td>
    </tr>
  </tbody>
</table>

<p>Similar to South, Pongamia accounts for roughly 1 in 5 trees. West could also work on having a more diverse distribution of trees.</p>

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

<p>With the currently available data, it seems South, West, and Central would be the best corporations to live in if you’re looking for tree cover. North could use some more trees and East needs a lot more trees!</p>

<p>In terms of the census going forward, we aren’t really sure how the new corporations would handle each of their jurisdictions, but all corporations could do better with identifying all the counted species.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Creating PostgreSQL DB for Python Or Other Backend Apps</title><link href="https://kdqed.com/creating-postgresql-db-for-backend-app" rel="alternate" type="text/html" title="Creating PostgreSQL DB for Python Or Other Backend Apps" /><published>2025-10-18T00:00:00+00:00</published><updated>2025-10-18T00:00:00+00:00</updated><id>https://kdqed.com/creating-postgres-db-for-backend-apps</id><content type="html" xml:base="https://kdqed.com/creating-postgresql-db-for-backend-app"><![CDATA[<p>I’ve been trying to catch onto the “use PostgreSQL for everything” trend. So here’s a personal reference note on how to create a new database along with a user, assign the necessary persmissions, and link it up to your app.</p>

<p><strong>Step 1:</strong> Run <code class="language-plaintext highlighter-rouge">psql</code> as the <code class="language-plaintext highlighter-rouge">postgres</code> user</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo -u postgres psql
</code></pre></div></div>

<p><strong>Step 2:</strong> Create Database</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres=# CREATE DATABASE yourDB;
</code></pre></div></div>

<p><strong>Step 3:</strong> Create A User With Password</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres=# CREATE USER yourUserName WITH ENCRYPTED PASSWORD 'yourPassword';
</code></pre></div></div>

<p><strong>Step 4:</strong>  Give User Privileges On Database</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres=# GRANT ALL PRIVILEGES ON DATABASE yourDB TO yourUserName;
</code></pre></div></div>

<p><strong>Step 5:</strong> Give User Schema Privileges</p>

<p>One extra step to let your app create tables, columns, etc.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgres=# \c yourDB;
yourDB=# GRANT ALL ON SCHEMA public TO yourUserName;
</code></pre></div></div>

<p><strong>Step 6:</strong> Use the URL:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>postgresql://yourUserName:yourPassword@localhost/yourDB
</code></pre></div></div>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry><entry><title type="html">Gifting Me: A Comprehensive Guide</title><link href="https://kdqed.com/gifting-me-a-comprehensive-guide" rel="alternate" type="text/html" title="Gifting Me: A Comprehensive Guide" /><published>2025-10-18T00:00:00+00:00</published><updated>2025-10-18T00:00:00+00:00</updated><id>https://kdqed.com/gifting-me-a-comprehensive-guide</id><content type="html" xml:base="https://kdqed.com/gifting-me-a-comprehensive-guide"><![CDATA[<p>I’m known to be very picky about my material belongings, and also for being very minimal. I just finished a 10 week trip across USA, Mexico, and Peru carrying just one bag that fits under the seat of a flight. Also, a friend of mine wanted to gift me something, and she was so challenged with my attitude to gifts and ended up asking me what I wanted. I had no answer. I still don’t, but below are some ideas (mostly on what not to gift):</p>

<h2 id="1-dont-gift-anything">1. Don’t Gift Anything</h2>

<p>The simplest and most effective. By not gifting anything, one or more of the following are saved:</p>

<ul>
  <li>Space in my house</li>
  <li>Space in the truck each time I move</li>
  <li>Time spent in packing the item everytime I move</li>
  <li>Time and money spent on maintaining the item</li>
  <li>Time spent on engaging with the item</li>
  <li>Your headspace on deciding what to gift to me</li>
  <li>My headspace on deciding what to do with your gift</li>
  <li>The feeling of guilt if I decide to sell or dispose your gift</li>
</ul>

<h2 id="2-dont-gift-expensive-stuff">2. Don’t Gift Expensive Stuff</h2>

<p>Gifting me an iPhone? I’m gonna sell it within an hour for cash. By gifting me expensive things you are actually burdening me with the need to care for it. I live without a locker in the house, and don’t worry about leaving the house unlocked. I’ve left my backpack cloaked in random backpacker hostels and small mom-and-pop shops on my adventures. Expensive things take away all these freedoms from me.</p>

<h2 id="3-dont-gift-fragile-items">3. Don’t Gift Fragile Items</h2>

<p>I have better things to do in life than trying not to knock them over or accidentally drop them.</p>

<h2 id="4-clothes-and-wearables-absolute-no-no">4. Clothes And Wearables: Absolute No-No</h2>

<p>The textile industry (like almost every other industry) is unsustainable and polluting. I try to do my part by buying as less as possible. I do my research on what to buy, where to buy and how long it lasts.</p>

<p>Moreover, I don’t like to fold or iron my clothes - I buy only clothes that don’t need this. I do my laundry with a washer-dryer - not all clothes do well with this setup. My whole idea of clothing is optimized for saving time. Don’t even try to change my ‘dressing sense’ by gifting something. Your gift will be promptly donated away.</p>

<p>I also do not like to wear anything on my body other than clothes. I occasionally make an exception for watches. No rings, no chains, no nonsense. I like to feel light. Any precious metal gifted will be sold for cash.</p>

<h2 id="5-no-celebratory-gifting">5. No Celebratory Gifting</h2>

<p>For me, becoming lighter is becoming free to new experiences, and that is worth celebrating. The idea of celebrating by stuffing more objects into my life is absurd.</p>

<h2 id="6-gift-your-time">6. Gift Your Time</h2>

<p>It means a lot when you show up where I am and we spend some quality time. I see time as the fundamental currency of life, and your time is the most precious thing you can give me. A dinner, a boat ride, a hike together, or just walking around to get coffee while catching up or having deep conversations. These are the things I’ve cherished the most.</p>

<h2 id="7-i-wont-say-no-to-money">7. I Won’t Say No To Money</h2>

<p>If you don’t have time, I can take money. I won’t say no. Money is useful. Just know that I won’t feel obliged to return the gift.</p>

<h2 id="8-some-gifts-ive-liked">8. Some Gifts I’ve Liked</h2>

<p>Doesn’t mean I’ll like them again.</p>

<ul>
  <li>Exploding Kittens</li>
  <li>A piece of art that you made</li>
  <li>A USB Drive When I Was In High School (not a good idea now)</li>
  <li>Roasted Coffee Beans</li>
  <li>Hand Coffee Grinder</li>
  <li>A TV Video Game Unit (I got as a kid)</li>
</ul>

<h2 id="ps-dont-wrap-it">P.S.: Don’t Wrap It</h2>

<p>Gift wraps are disgusting. They take up time to open. Running to find a scissor to cut the wrapper is annoying. People got offended if I rip them apart. The wrappers end up in landfills and will likely stay there for thousands of years. Give it to me straight and raw.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[kdqed / Karthik Devan]]></summary></entry></feed>