<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://gurupanguji.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://gurupanguji.com/" rel="alternate" type="text/html" /><updated>2026-06-07T12:47:45+00:00</updated><id>https://gurupanguji.com/feed.xml</id><title type="html">@gurupanguji</title><subtitle>Photography reviews, visual essays, and blog writing.</subtitle><entry><title type="html">🔗 Some Thoughts on the Open Web</title><link href="https://gurupanguji.com/blog/2026/06/07/some-thoughts-on-the-open-web/" rel="alternate" type="text/html" title="🔗 Some Thoughts on the Open Web" /><published>2026-06-07T12:00:00+00:00</published><updated>2026-06-07T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/07/some-thoughts-on-the-open-web</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/07/some-thoughts-on-the-open-web/">&lt;blockquote&gt;
  &lt;p&gt;Having an Open Web available for humanity is not a guaranteed outcome; we may end up in a future where easily available information is greatly diminished or even absent.&lt;/p&gt;

  &lt;p&gt;With that and all of the observations above in mind, what’s most apparent to me is that we should focus on finding ways to create and strengthen incentives to publish content that’s open (for some definition of open) – understanding that people might have a variety of motivations for doing so. If environmental factors like AI change their incentives, we need to understand why and address the underlying concerns if possible.&lt;/p&gt;

  &lt;p&gt;In other words, we have to create an Internet where people &lt;em&gt;want&lt;/em&gt; to publish content openly – for some definition of “open.” Doing that may challenge the assumptions we’ve made about the Web as well as what we want “open” to be. What’s worked before may no longer create the incentive structure that leads to the greatest amount of content available to the greatest number of people for the greatest number of purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://mnot.net/blog/2026/open_web&quot;&gt;Some Thoughts on the Open Web&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This one made me think. Mark presents the “open web” as a mixture of different webs. I appreciate the effort to not be singular. I agree with his conclusion in this post - we don’t know how (yet), but we need the “open web” to survive. That requires people to publish, made available sans gatekeepers and cheap enough for people to continue to publish independent of the “monetary” outcome.&lt;/p&gt;

&lt;p&gt;Personally, I think this is where the indieweb shines. Most people are self publishing and in most cases - self hosting (or at least owning the costs of hosting). Scale is not an issue for most things on the indieweb. There might come a time where an indieweb site might hit billions of people. I don’t know of any - yet. Feel free to write to me and educate me.&lt;/p&gt;

&lt;p&gt;I am not including things like Wikipedia that require a LOT more resources to both operate, publish and kept free so that the information can be provided. However, the web existed pre-wikipedia and I think the indie web will persist in a post-wikipedia world as well. The information will be scattered and harder to find. And we might not have Google - as it exists today. However, if there is a need, usually there will exist services and markets that will attempt to solve it and the constraint of not having Google around might actually be interesting.&lt;/p&gt;

&lt;p&gt;Open is not free to provide. And it takes effort, generosity and goodwill. Like with things like democracy and good utilities, sometimes, &lt;em&gt;losing&lt;/em&gt; it might be a key requirement to build it back again robustly.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">Having an Open Web available for humanity is not a guaranteed outcome; we may end up in a future where easily available information is greatly diminished or even absent. With that and all of the observations above in mind, what’s most apparent to me is that we should focus on finding ways to create and strengthen incentives to publish content that’s open (for some definition of open) – understanding that people might have a variety of motivations for doing so. If environmental factors like AI change their incentives, we need to understand why and address the underlying concerns if possible. In other words, we have to create an Internet where people want to publish content openly – for some definition of “open.” Doing that may challenge the assumptions we’ve made about the Web as well as what we want “open” to be. What’s worked before may no longer create the incentive structure that leads to the greatest amount of content available to the greatest number of people for the greatest number of purposes.</summary></entry><entry><title type="html">🔗 I Am Retiring from Tech to Live Offline</title><link href="https://gurupanguji.com/blog/2026/06/06/i-am-retiring-from-tech-to-live-offline/" rel="alternate" type="text/html" title="🔗 I Am Retiring from Tech to Live Offline" /><published>2026-06-06T12:00:00+00:00</published><updated>2026-06-06T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/06/i-am-retiring-from-tech-to-live-offline</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/06/i-am-retiring-from-tech-to-live-offline/">&lt;blockquote&gt;
  &lt;p&gt;tl;dr AI took the last of the wind out of my Open Source sails. I wish you all the best!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;/assets/images/blog/2026-06-06-last-issue-1.jpg&quot;&gt;&lt;img src=&quot;/assets/images/blog/2026-06-06-last-issue-1.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/assets/images/blog/2026-06-06-last-issue-2.jpg&quot;&gt;&lt;img src=&quot;/assets/images/blog/2026-06-06-last-issue-2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://openpath.quest/2026/i-am-retiring-from-tech-to-live-offline/&quot;&gt;I Am Retiring from Tech to Live Offline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I do admire the courage and conviction.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">tl;dr AI took the last of the wind out of my Open Source sails. I wish you all the best!</summary></entry><entry><title type="html">🔗 I Wish People Were More Public</title><link href="https://gurupanguji.com/blog/2026/06/06/i-wish-people-were-more-public/" rel="alternate" type="text/html" title="🔗 I Wish People Were More Public" /><published>2026-06-06T12:00:00+00:00</published><updated>2026-06-06T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/06/i-wish-people-were-more-public</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/06/i-wish-people-were-more-public/">&lt;blockquote&gt;
  &lt;p&gt;I will often find a blog post on &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt; that really resonates. And when I go to check the rest of the site there’s three other posts. And I think: I wish you’d write more! When I find someone whose writing I really connect with, I like to read everything they have written, or at least a tractable subset of their most interesting posts. If I like what I see, I reach out. This is one of the best things about writing online: your future friends will seek you out.&lt;/p&gt;

  &lt;p&gt;And, from the other side, I have often written a post where, just before publishing, I would think: “who would want to read this? It’s too personal, obscure, idiosyncratic, probably a few people will unsubscribe to the RSS feed for this”. And always those are the posts where people email me to say they always thought the same thing but could never quite put it into words. I really value those emails. “I am understood” is a wonderful feeling.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://borretti.me/article/i-wish-people-were-more-public&quot;&gt;I Wish People Were More Public&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fernando captures the loop that pushes me to write perfectly. One of the reasons why I write is to find more of “my people.” Yes, there used to be a time where writing has even led to lucrative professional consequences (not so much anymore). However, “my people” also take the time to write back, to engage, to connect. The blog is mostly an avenue for them to find me and for me to find them. “My people” often read, subscribe via rss / discover me over social posts and then reach out when something resonates.&lt;/p&gt;

&lt;p&gt;Just &lt;em&gt;this&lt;/em&gt; happened recently. I reached out to &lt;a href=&quot;https://marius.ink/&quot;&gt;Marius&lt;/a&gt; after a &lt;a href=&quot;https://marius.ink/post/the-failures-are-the-curriculum&quot;&gt;delightful post&lt;/a&gt;. Like Marius, I’ve never met most of the people who’s writing I follow. I also don’t usually talk about this much. However, Fernando’s post made me realize that calling out the value is important. Move from the default solipsistic nature and maybe get more people to write in public.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">I will often find a blog post on Hacker News that really resonates. And when I go to check the rest of the site there’s three other posts. And I think: I wish you’d write more! When I find someone whose writing I really connect with, I like to read everything they have written, or at least a tractable subset of their most interesting posts. If I like what I see, I reach out. This is one of the best things about writing online: your future friends will seek you out. And, from the other side, I have often written a post where, just before publishing, I would think: “who would want to read this? It’s too personal, obscure, idiosyncratic, probably a few people will unsubscribe to the RSS feed for this”. And always those are the posts where people email me to say they always thought the same thing but could never quite put it into words. I really value those emails. “I am understood” is a wonderful feeling.</summary></entry><entry><title type="html">🔗 Understanding blogs – Tracy Durnell’s Mind Garden</title><link href="https://gurupanguji.com/blog/2026/06/05/understanding-blogs-tracy-durnells-mind-garden/" rel="alternate" type="text/html" title="🔗 Understanding blogs – Tracy Durnell’s Mind Garden" /><published>2026-06-05T12:00:00+00:00</published><updated>2026-06-05T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/05/understanding-blogs-tracy-durnells-mind-garden</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/05/understanding-blogs-tracy-durnells-mind-garden/">&lt;blockquote&gt;
  &lt;p&gt;A characteristic I’ve noticed of many blog articles is that they are not structured in the traditional Western essay format: they don’t state a thesis at the beginning.* Often, they are &lt;strong&gt;explorations on a theme&lt;/strong&gt;, or &lt;strong&gt;build an argument as they go&lt;/strong&gt;, only reaching a conclusion at the end.**&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://tracydurnell.com/2023/01/15/understanding-blogs/&quot;&gt;Understanding blogs – Tracy Durnell’s Mind Garden&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;And if you zoom out from the individual blog post level, in a sense this also describes what blogs are: a contemplation on a particular theme in depth&lt;/strong&gt; (even if that theme is “the author’s life” or “stuff I like”). A blog is a &lt;em&gt;body of work&lt;/em&gt;. Blogs are composed of many posts, which stand individually and can be read in any order, and which collectively form &lt;em&gt;a blog&lt;/em&gt; that tells a story from all of its individual posts. Unlike a book, blogs grow and shift for as long as they are online, each added post changing &lt;em&gt;the blog&lt;/em&gt; incrementally.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://tracydurnell.com/2023/01/15/understanding-blogs/&quot;&gt;Understanding blogs – Tracy Durnell’s Mind Garden&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;fLamed fury’s latest list of posts linked me to this excellent post exploring blogging. Now, clearly the author and I started blogging around the same time - early aughts. The whole post is worth a read.&lt;/p&gt;

&lt;p&gt;Yet, these two paragraphs capture the essence of a blog. They are an exploration of a theme. As a result, very few blogs that I consider worth reading push a thesis from the beginning. They &lt;em&gt;arrive&lt;/em&gt; at one. Sometimes in an entirely different post. Sometimes, the author changes their mind and links back. Or flip flops across time spans.&lt;/p&gt;

&lt;p&gt;Blogs help me &lt;em&gt;get to know&lt;/em&gt; the person and their thinking, often more than the thesis. I guess it’s reality TV for the people that like to read.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">A characteristic I’ve noticed of many blog articles is that they are not structured in the traditional Western essay format: they don’t state a thesis at the beginning.* Often, they are explorations on a theme, or build an argument as they go, only reaching a conclusion at the end.**</summary></entry><entry><title type="html">🔗 The Emacsification of Software</title><link href="https://gurupanguji.com/blog/2026/06/04/the-emacsification-of-software/" rel="alternate" type="text/html" title="🔗 The Emacsification of Software" /><published>2026-06-04T12:00:00+00:00</published><updated>2026-06-04T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/04/the-emacsification-of-software</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/04/the-emacsification-of-software/">&lt;blockquote&gt;
  &lt;p&gt;But AI agents have fracked Emacs culture, and it’s leaking out into the wider world. Given access to a screen and inputs, agents reliably build native user interfaces. Native UI was the province of professionally packaged programs. Now it’s all as bespoke as your editor configuration. And, while I’m sure there’s an upper limit to how good those interfaces can be (with current frontier models), that ceiling is higher than anything you can do in a TUI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The emacs-ification of apps is quite a memorable turn of phrase for the personal software golden age we are living in. &lt;em&gt;If&lt;/em&gt; the outcome is that we have more native apps that are crafted or even drafted to cure a personal itch, that’s a totally fine outcome.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Still, every once in a while, one of these programs will escape containment. It’ll be useful enough for more than one person to install. But even then, the released artifact won’t be the most important thing about it. The source code won’t be either. If an agent wrote all the SwiftUI code in my project, what do you have to gain from closely reading it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software — Quarrelsome&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I’m probably only a little bit right about this, but I think a significant driver of new Emacs packages is a catalytic reaction between your messy local configuration and everyone else’s elisp code. Once you know how to get things done in elisp, it can be easier to build your own solution than to package-install an existing one. In that kind of environment, the code is of passing interest. What matters are the ideas, the observation that “yeah, you can do that, and it’ll work well”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software — Quarrelsome&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;what does it mean to say you’re “building” it? “Building” implies more effort than you’re expending. What you’re doing feels a lot more like configuring, on a platform that has suddenly become vastly more configurable. A platform that feels a lot more like Emacs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software — Quarrelsome&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a wonderful nuance. “Building” with LLMs is more akin to configuration than programming. The other comparison is that of a higher level language, with the highest level language being “spoken-language” in this case - English. And much like the higher level languages, unless you are a nerd who’s looking to optimize the &lt;em&gt;heck&lt;/em&gt; out of the lower level language and is &lt;em&gt;good&lt;/em&gt; or at least interested in it, you are going neither going to learn nor care about the lower level output.&lt;/p&gt;

&lt;p&gt;I personally think &lt;em&gt;configuration&lt;/em&gt; is a better term for it than &lt;em&gt;programming&lt;/em&gt;. It’s okay if you disagree with it.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I don’t have a grand pronouncement to offer about the Future of Software. But I’m pretty sure nerd software is going to get a lot more interesting. How many clanky terminal apps can we drastically (and easily) improve? I’ll finally be able to understand iostat! Across a fleet of hosts, even. And bpftrace! Have you seen the shit Brendan Gregg had to put up with to do terminal visualizations from bpftrace? You don’t have to put up with any of this anymore. In fact, neither do I.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software — Quarrelsome&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So I’m glad to have something new to talk about that actually feels like an unalloyed good. Building native UI is now fun; a lot more fun than building web interfaces ever was. Give it a shot; make something stupidly specific to your own problems, enjoy it for a little while, and then share it somewhere — or, better yet, just a screenshot and the prompts you used to make it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://sockpuppet.org/blog/2026/05/12/emacsification/&quot;&gt;The Emacsification of Software — Quarrelsome&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This put the biggest smile on my face. I am ever more certain that we are in another era where a lifehacker like site might actually be useful and benefit us nerds. Heck, I should emacsify lifehacker.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">But AI agents have fracked Emacs culture, and it’s leaking out into the wider world. Given access to a screen and inputs, agents reliably build native user interfaces. Native UI was the province of professionally packaged programs. Now it’s all as bespoke as your editor configuration. And, while I’m sure there’s an upper limit to how good those interfaces can be (with current frontier models), that ceiling is higher than anything you can do in a TUI.</summary></entry><entry><title type="html">🔗 “If you just ignore those pesky impossible details, the demo looks deceptively simple.”</title><link href="https://gurupanguji.com/blog/2026/06/03/if-you-just-ignore-those-pesky-impossible-details-the-demo-looks-deceptively-simple/" rel="alternate" type="text/html" title="🔗 “If you just ignore those pesky impossible details, the demo looks deceptively simple.”" /><published>2026-06-03T12:00:00+00:00</published><updated>2026-06-03T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/03/if-you-just-ignore-those-pesky-impossible-details-the-demo-looks-deceptively-simple</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/03/if-you-just-ignore-those-pesky-impossible-details-the-demo-looks-deceptively-simple/">&lt;blockquote&gt;
  &lt;p&gt;The second demo highlights how sometimes you can use absolutely horrid sleights of hand to achieve something beautiful – and how you can perhaps find beauty in those sleights of hand, too. It reminds me of the quote attributed to Teller (of Penn &amp;amp; Teller):&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Sometimes magic is just someone spending more time on something than anyone else might reasonably expect.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Penn &amp;amp; Teller talk a lot about how there are only two keys to their success: going further than others would think, and not worrying about employing inelegant tricks in service of something that would appear to be of utmost elegance.&lt;/p&gt;

  &lt;p&gt;Today’s computing limitations are different than the ones from the 1980s. But a lot of this attitude can still be helpful, even four decades in, and even if your work seems as far away from the demoscene as you can imagine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://unsung.aresluna.org/if-you-just-ignore-those-pesky-impossible-details-the-demo-looks-deceptively-simple/&quot;&gt;“If you just ignore those pesky impossible details, the demo looks deceptively simple.”&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">The second demo highlights how sometimes you can use absolutely horrid sleights of hand to achieve something beautiful – and how you can perhaps find beauty in those sleights of hand, too. It reminds me of the quote attributed to Teller (of Penn &amp;amp; Teller): Sometimes magic is just someone spending more time on something than anyone else might reasonably expect. Penn &amp;amp; Teller talk a lot about how there are only two keys to their success: going further than others would think, and not worrying about employing inelegant tricks in service of something that would appear to be of utmost elegance. Today’s computing limitations are different than the ones from the 1980s. But a lot of this attitude can still be helpful, even four decades in, and even if your work seems as far away from the demoscene as you can imagine.</summary></entry><entry><title type="html">🔗 Why Popcorn Explodes Into Different Shapes</title><link href="https://gurupanguji.com/blog/2026/06/02/why-popcorn-explodes-into-different-shapes/" rel="alternate" type="text/html" title="🔗 Why Popcorn Explodes Into Different Shapes" /><published>2026-06-02T12:00:00+00:00</published><updated>2026-06-02T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/02/why-popcorn-explodes-into-different-shapes</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/02/why-popcorn-explodes-into-different-shapes/">&lt;div class=&quot;gp-youtube-embed&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/fyDS1Y6znqM&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=fyDS1Y6znqM&quot;&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If it expands more or less equally in all directions, you’ll get this – the “mushroom”.&lt;/p&gt;

  &lt;p&gt;This shape is rare in home and theater popcorn; you’ll mostly see it made into flavored popcorn because it’s super sturdy. Instead, the starch in most commercial popcorn kernels expands more chaotically, creating a shape known in the popcorn biz as a “butterfly”. But butterflies can actually take on three distinct subshapes. Even weirder is that these different shapes are markedly different in their texture, the amount of oil and salt they tend to pick up, and even their chemical composition, which means the proportion of the various shapes you get in a batch can really affect your eating experience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=fyDS1Y6znqM&quot;&gt;Why Popcorn Explodes Into Different Shapes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TIL that popcorn kernels are different from other corn kernels - I always thought they were just “dried” corn kernels. The shapes do make sense. However, the science behind choosing the right &lt;em&gt;amount&lt;/em&gt; of shapes to cater to a specific eating profile is fascinating.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="ramblings" /><category term="youtube" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><category term="popcorn" /><summary type="html"></summary></entry><entry><title type="html">🔗 Not a Double Space, Full Stop</title><link href="https://gurupanguji.com/blog/2026/06/01/not-a-double-space-full-stop/" rel="alternate" type="text/html" title="🔗 Not a Double Space, Full Stop" /><published>2026-06-01T12:00:00+00:00</published><updated>2026-06-01T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/06/01/not-a-double-space-full-stop</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/06/01/not-a-double-space-full-stop/">&lt;blockquote&gt;
  &lt;p&gt;First, remember what Ted Lasso said about bullies (see end of post) when you read the lead-in to the footnote above: “All them fellas that used to belittle me, not a single one of them were curious.…Curiosity helps you understand people instead of judging them, because if they were curious, they would ask questions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://glog.glennf.com/blog/2026/5/18/not-a-double-space-full-stop&quot;&gt;Not a Double Space, Full Stop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I went into this trying to understand the origins of double space (which I learned), but also came away with a reminder of this brilliant line.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="writing" /><category term="style" /><category term="opinion" /><summary type="html">First, remember what Ted Lasso said about bullies (see end of post) when you read the lead-in to the footnote above: “All them fellas that used to belittle me, not a single one of them were curious.…Curiosity helps you understand people instead of judging them, because if they were curious, they would ask questions.”</summary></entry><entry><title type="html">🔗 Last Week on My Mac: Razzle and dazzle</title><link href="https://gurupanguji.com/blog/2026/05/31/last-week-on-my-mac-razzle-and-dazzle/" rel="alternate" type="text/html" title="🔗 Last Week on My Mac: Razzle and dazzle" /><published>2026-05-31T14:01:01+00:00</published><updated>2026-05-31T14:01:01+00:00</updated><id>https://gurupanguji.com/blog/2026/05/31/last-week-on-my-mac-razzle-and-dazzle</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/31/last-week-on-my-mac-razzle-and-dazzle/">&lt;h4 id=&quot;has-tahoes-interface-improved&quot;&gt;Has Tahoe’s interface improved?&lt;/h4&gt;
&lt;blockquote&gt;

  &lt;p&gt;It’s now almost a year since we got our first glimpse of Tahoe at WWDC 2025, and eight months since it was released to the public. Despite widespread outcry and detailed criticism, it has changed remarkably little. If you were unconvinced of its merits last September, I see little here that’s likely to persuade you otherwise. The only remaining question is whether, in the razzle of WWDC, Apple will do anything substantial to relieve the dazzle on our displays. I fear I already know the answer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://eclecticlight.co/2026/05/31/last-week-on-my-mac-razzle-and-dazzle/&quot;&gt;Last Week on My Mac: Razzle and dazzle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looks like Tahoe is still a Ta-noe!&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="opinion" /><category term="quotes" /><summary type="html">Has Tahoe’s interface improved? It’s now almost a year since we got our first glimpse of Tahoe at WWDC 2025, and eight months since it was released to the public. Despite widespread outcry and detailed criticism, it has changed remarkably little. If you were unconvinced of its merits last September, I see little here that’s likely to persuade you otherwise. The only remaining question is whether, in the razzle of WWDC, Apple will do anything substantial to relieve the dazzle on our displays. I fear I already know the answer.</summary></entry><entry><title type="html">🔗 Shift &amp;amp; ⌥ &amp;amp; Splat &amp;amp; ⎋ Escape</title><link href="https://gurupanguji.com/blog/2026/05/31/shift-splat-escape/" rel="alternate" type="text/html" title="🔗 Shift &amp;amp; ⌥ &amp;amp; Splat &amp;amp; ⎋ Escape" /><published>2026-05-31T13:42:18+00:00</published><updated>2026-05-31T13:42:18+00:00</updated><id>https://gurupanguji.com/blog/2026/05/31/shift-splat-escape</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/31/shift-splat-escape/">&lt;blockquote&gt;
  &lt;p&gt;&lt;img src=&quot;/assets/images/blog/2026-05-31-shift-splat-escape.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

  &lt;p&gt;This is one of those &lt;a href=&quot;https://unsung.aresluna.org/1h-in-a-config-menu-10c/&quot;&gt;cryptic&lt;/a&gt; things that I would &lt;em&gt;love&lt;/em&gt; to understand the thinking behind. Because, on the surface, this breaks so many rules:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://unsung.aresluna.org/shift-and-option-and-splat-and-escape/&quot;&gt;Shift &amp;amp; ⌥ &amp;amp; Splat &amp;amp; ⎋ Escape&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the keyboard shortcuts (which are dual) are longer than the menu explanation themselves.&lt;/p&gt;

&lt;p&gt;Marcin posits:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The only explanation for this I can think of off the top of my head is this: these were invented somewhere else (Word?) and inherited by Docs to respect motor memory of the users transition from the older app. That still doesn’t cover the presentation, &lt;mark&gt;plus there is a way for Docs to redesign the shortcuts to be better for people who are starting anew.&lt;/mark&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://unsung.aresluna.org/shift-and-option-and-splat-and-escape/&quot;&gt;Shift &amp;amp; ⌥ &amp;amp; Splat &amp;amp; ⎋ Escape – Unsung&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am debating if this is a reason because Docs is built on the browser. Do they have to figure out a way to ensure that you can bring focus into a specific place as they need to contend between the OS (Windows, Mac, Unix, Linux, others), Browser (Chrome, Safari, Edge, others), and then depending on those two combos, where the focus is?&lt;/p&gt;

&lt;p&gt;Whatever be the case, one thing I am confident of is that Google Docs designers are also just as likely to think that this is ugly.&lt;/p&gt;

&lt;p&gt;So, the questions that remain are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;What’s the real reason?&lt;/li&gt;
  &lt;li&gt;Can someone in Google do something about it? If you can, can you also replace them to all icons or spelling? ⌘ is an icon but &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Option&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift&lt;/code&gt; are spelled out?&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="opinion" /><category term="quotes" /><category term="web" /><summary type="html">This is one of those cryptic things that I would love to understand the thinking behind. Because, on the surface, this breaks so many rules:</summary></entry><entry><title type="html">🔗 A Technical Deep Dive Into the New Raycast</title><link href="https://gurupanguji.com/blog/2026/05/31/a-technical-deep-dive-into-the-new-raycast/" rel="alternate" type="text/html" title="🔗 A Technical Deep Dive Into the New Raycast" /><published>2026-05-31T12:00:00+00:00</published><updated>2026-05-31T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/31/a-technical-deep-dive-into-the-new-raycast</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/31/a-technical-deep-dive-into-the-new-raycast/">&lt;blockquote&gt;
  &lt;p&gt;If the &lt;a href=&quot;https://raycast.com/blog/the-new-raycast&quot;&gt;launch post&lt;/a&gt; was about what’s new, this one is about how it’s built. The story behind the rewrite, the calls we made along the way, and what it took to pull off a rewrite of this size. The hard part wasn’t making Raycast run. The hard part was making it feel right.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.raycast.com/blog/a-technical-deep-dive-into-the-new-raycast&quot;&gt;A Technical Deep Dive Into the New Raycast&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even Raycast is losing its voice.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Maintaining two separate UI stacks would mean twice the work without moving any faster.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://raycast.com/blog/a-technical-deep-dive-into-the-new-raycast&quot;&gt;A Technical Deep Dive Into the New Raycast - Raycast Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a narrative violation to the AI is going to make life easier.&lt;/p&gt;

&lt;p&gt;Modulo some AI writing, this is a great post exploring the trade offs between web and native-only technologies to achieve a cross platform high quality desktop app.&lt;/p&gt;

&lt;p&gt;I am confident there will be detractors and Raycast also clearly admit they understand the trade offs here.&lt;/p&gt;

&lt;p&gt;For anyone still interested in a fully native Mac OS alternative, I continue to recommend &lt;a href=&quot;https://alfredapp.com/&quot;&gt;Alfred 5&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="software" /><category term="clippings" /><category term="raycast" /><category term="software" /><category term="development" /><category term="opinion" /><summary type="html">If the launch post was about what’s new, this one is about how it’s built. The story behind the rewrite, the calls we made along the way, and what it took to pull off a rewrite of this size. The hard part wasn’t making Raycast run. The hard part was making it feel right.</summary></entry><entry><title type="html">🔗 What Is a Dickover?</title><link href="https://gurupanguji.com/blog/2026/05/30/what-is-a-dickover/" rel="alternate" type="text/html" title="🔗 What Is a Dickover?" /><published>2026-05-30T13:11:26+00:00</published><updated>2026-05-30T13:11:26+00:00</updated><id>https://gurupanguji.com/blog/2026/05/30/what-is-a-dickover</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/30/what-is-a-dickover/">&lt;blockquote&gt;
  &lt;p&gt;You know what a dickover is, even if you didn’t know what to call it (until now). If you use the Internet, you encounter them every day. They’re popovers, but dickheaded. The web is absolutely lousy with them, and mobile apps present them too, with increasing frequency.&lt;/p&gt;

  &lt;p&gt;Dickovers are a veritable scourge. They’re so common they’re effectively part of the firmament. I started calling these things &lt;a href=&quot;https://daringfireball.net/linked/2022/08/02/banish&quot;&gt;&lt;em&gt;dickpanels&lt;/em&gt; in 2022&lt;/a&gt;, but when &lt;em&gt;dickover&lt;/em&gt; popped into my head last week,&lt;sup id=&quot;fnr1-2026-05-29&quot;&gt;&lt;a href=&quot;#fn1-2026-05-29&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; I couldn’t shake the feeling that it’s a better term for these ubiquitous odious irritations. You can hardly go anywhere on the web without getting dicked over by a dickover. They often pester you about permitting cookies, like &lt;a href=&quot;https://daringfireball.net/misc/2026/05/dickover-euronews.jpeg&quot;&gt;this one from Euronews&lt;/a&gt; or &lt;a href=&quot;https://daringfireball.net/misc/2026/05/dickover-gallup-cookie.png&quot;&gt;this one from Gallup&lt;/a&gt;. This malicious design pattern is so ubiquitous that it has spread even to personal blogs, &lt;a href=&quot;https://daringfireball.net/misc/2026/05/dickover-om-newsletter.png&quot;&gt;like this one from my friend Om Malik&lt;/a&gt;, and to &lt;a href=&quot;https://daringfireball.net/misc/2026/05/dickover-field-notes.jpeg&quot;&gt;great brands like Field Notes&lt;/a&gt;, both asking you to sign up for their newsletters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://daringfireball.net/2026/05/what_is_a_dickover&quot;&gt;What Is a Dickover?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gruber at his finest.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="ramblings" /><category term="browser" /><category term="clippings" /><category term="external" /><category term="links" /><category term="mobile" /><category term="opinions" /><category term="quotes" /><category term="ramblings" /><category term="web" /><summary type="html">You know what a dickover is, even if you didn’t know what to call it (until now). If you use the Internet, you encounter them every day. They’re popovers, but dickheaded. The web is absolutely lousy with them, and mobile apps present them too, with increasing frequency. Dickovers are a veritable scourge. They’re so common they’re effectively part of the firmament. I started calling these things dickpanels in 2022, but when dickover popped into my head last week,1 I couldn’t shake the feeling that it’s a better term for these ubiquitous odious irritations. You can hardly go anywhere on the web without getting dicked over by a dickover. They often pester you about permitting cookies, like this one from Euronews or this one from Gallup. This malicious design pattern is so ubiquitous that it has spread even to personal blogs, like this one from my friend Om Malik, and to great brands like Field Notes, both asking you to sign up for their newsletters.</summary></entry><entry><title type="html">🔗 Grief in the AI Age</title><link href="https://gurupanguji.com/blog/2026/05/30/grief-in-the-ai-age/" rel="alternate" type="text/html" title="🔗 Grief in the AI Age" /><published>2026-05-30T12:00:00+00:00</published><updated>2026-05-30T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/30/grief-in-the-ai-age</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/30/grief-in-the-ai-age/">&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Acceptance doesn’t mean that you no longer get sad or you no longer are angry that they’re gone.&lt;/strong&gt; It just means that you accept the fact that the loss has happened and that you’re able to move forward with resolve. You can convert a lot of that grief into real commitment to live your life in a way that honors their memory and hopefully continues to make them proud.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://bradfrost.com/blog/post/grief-in-the-ai-age/&quot;&gt;Grief in the AI Age&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a powerful way to look at how AI is affecting the professionals of today, especially the ones in the front lines both evaluating it and leveraging it.&lt;/p&gt;

&lt;p&gt;I also think acceptance allows one to see what’s &lt;em&gt;possible&lt;/em&gt;. What’s possible includes things that you yourself wouldn’t do anymore leaving room for things that you had not considered before.&lt;/p&gt;

&lt;p&gt;I want to provide another perspective: nama / rupa. In &lt;a href=&quot;https://en.wikipedia.org/wiki/Visuddhimagga&quot;&gt;Buddhism&lt;/a&gt;, and &lt;a href=&quot;https://en.wikipedia.org/wiki/Vishuddha&quot;&gt;Hinduism&lt;/a&gt;, there’s a concept of &lt;em&gt;vishuddhi&lt;/em&gt; - cleansing your mind. The interpretation that I subscribe to is that of seeing things for what they are: material and imagining things for what they are: this adds the filter of our own mind / ego filled with its learnings and biases.&lt;/p&gt;

&lt;p&gt;The biases are an outcome of the events and the lack of resolution of them in our mind. Ever felt &lt;em&gt;anxious&lt;/em&gt; and that anxiety spiraling into more anxiety as our mind creatives a series of negative outcomes, each a result of the previous?&lt;/p&gt;

&lt;p&gt;That’s a perfect example of &lt;a href=&quot;https://gurupanguji.com/blog/2026/05/06/klishta/&quot;&gt;&lt;em&gt;klishta&lt;/em&gt;&lt;/a&gt;. It’s the klishta that attaches &lt;em&gt;mental&lt;/em&gt; attributes to a material event / thing. To me, acceptance is the removal of &lt;em&gt;klishta&lt;/em&gt;, where you see the event / world for what it is.&lt;/p&gt;

&lt;p&gt;Personally, I have a new grief - the death of individuality and voice.&lt;/p&gt;

&lt;p&gt;I &lt;em&gt;love reading&lt;/em&gt;. I love reading to see how other people’s mind works and how they form connections and then describe them. I am delighted by individual word choices. I am enlightened by their unique metaphors. I am thrilled by new sentence constructions. These and many other aspects of writing allow me a glimpse into the mind of the other person.&lt;/p&gt;

&lt;p&gt;LLMs erase this individuality. While sentence construction suffers the &lt;em&gt;most&lt;/em&gt;, word choices are increasingly falling victim to this as well. I’ve tried playing around with LLM generated / aided work. I think if &lt;em&gt;the message&lt;/em&gt; is the only part that’s deemed important, then I think LLMs are fine.&lt;/p&gt;

&lt;p&gt;They help most people develop the Toyota Camry of writing. If your goal was to get from place A -&amp;gt; place B (communicate X), the Camry is a fine, safe, stable car that will make that happen. However, to appeal to the most amount of people, it’s also fully devoid of character, just like LLM writing.&lt;/p&gt;

&lt;p&gt;I don’t mean to suggest that it cannot be effective. It can even generate sustainable engagement. However, it erases the voice of the author. It is &lt;em&gt;bland&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;These poetics in language are picked up by the model from human practice of the linguistic form, and it learns true meaning of true things in the world in the shape of the structural vibes, and those go beyond spelling, grammar and syntax. What we have as a result is a machine that “lacks the subjective intent of a cognitive agent” which nevertheless “does encode meaning and valid semantic representations”. &lt;mark&gt;Is that sort of meaning weak, compared to our rich understanding of the world? Likely, yes, sure, but it’s not false.&lt;/mark&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://goodinternet.substack.com/p/intelligence-minus-cognition&quot;&gt;Intelligence Minus Cognition - by René Walter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like the author in this post suggests, my grief is from the increased loss of poeticism of language in the spirit of efficiency. What I mourn is when people that I love reading use it to write &lt;em&gt;more&lt;/em&gt; or &lt;em&gt;consistently&lt;/em&gt;. Heck, I’ve tried it myself - and I decided it absolutely kills the vibe. It’s ironic that the tool for &lt;em&gt;vibe coding&lt;/em&gt; kills the vibe in writing.&lt;/p&gt;

&lt;p&gt;Wait, I just realized that for people that appreciate &lt;em&gt;great&lt;/em&gt; code, it might be similar too given the &lt;a href=&quot;https://gurupanguji.com/blog/2026/05/05/erwin-knolls-law-of-ai-accuracy/&quot;&gt;Gell-Mann amnesia of LLMs&lt;/a&gt;. Except this isn’t about accuracy, but the appreciation of the &lt;em&gt;art&lt;/em&gt;. And I am nowhere close to being a professional writer.&lt;/p&gt;

&lt;p&gt;I don’t know if this condition will remain static. I hope not (klishta) and I certainly wish that it will allow for even more interesting writing. However, in my own case, I am now convinced more than ever that I like penning my own thoughts - no matter how imperfect they might be. No matter how how inefficient they might be in communicating. Not as a way to not improve, but as a way to remain true to myself. Today I feel like I realized how much my own voice matters to me.&lt;/p&gt;

&lt;p&gt;p.s. if you are interested in the debate of what’s intelligence (like me), I highly suggest you read &lt;a href=&quot;https://goodinternet.substack.com/p/intelligence-minus-cognition&quot;&gt;this one&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="clippings" /><category term="external" /><category term="opinion" /><category term="philosophy" /><category term="life" /><summary type="html">Acceptance doesn’t mean that you no longer get sad or you no longer are angry that they’re gone. It just means that you accept the fact that the loss has happened and that you’re able to move forward with resolve. You can convert a lot of that grief into real commitment to live your life in a way that honors their memory and hopefully continues to make them proud.</summary></entry><entry><title type="html">🔗 Craft oriented or Output oriented?</title><link href="https://gurupanguji.com/blog/2026/05/29/craft-oriented-or-output-oriented/" rel="alternate" type="text/html" title="🔗 Craft oriented or Output oriented?" /><published>2026-05-29T12:00:00+00:00</published><updated>2026-05-29T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/29/craft-oriented-or-output-oriented</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/29/craft-oriented-or-output-oriented/">&lt;p&gt;This video about AI music education at Berklee was quite interesting. It signals a deeper issue that I wanted to probe today.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/EfeGc02nzC4&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;blockquote&gt;
  &lt;p&gt;Berklee College of Music now teaches classes in AI songwriting, and that’s a really dumb idea.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=EfeGc02nzC4&amp;amp;t=351s&quot;&gt;They Teach AI Music at Music School Now…&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Something Adam pointed out here that stuck with me and I spent hours mulling about it. The CEO of Suno says this about making music:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It’s not really enjoyable to make music now. It takes a lot of time. It takes a lot of practice. You need to get really good at an instrument or really good at a piece of production software. I think the majority of people don’t enjoy the majority of the time they spend making music.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;– &lt;a href=&quot;https://youtu.be/EfeGc02nzC4?si=IOb0fmnM3wpl4Mid&amp;amp;t=347&quot;&gt;Source&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=E0YL83U5VWk&quot;&gt;OG Source&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;I don’t want to pick on this guy specifically, because at least from a commercial perspective, he seems to have &lt;a href=&quot;https://www.billboard.com/pro/suno-ai-music-startup-cover-story/#:~:text=Suno%20held%20the,chosen%20different%20words.%E2%80%9D&quot;&gt;walked that back&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;However, in it is a nugget. This view makes sense if you don’t value the process.&lt;/p&gt;

&lt;p&gt;For craft oriented people, process isn’t an obstacle. That’s the &lt;em&gt;raison d’être&lt;/em&gt;. This is why I’ve opined that people find AI compelling when it’s an output outside &lt;em&gt;your own craft&lt;/em&gt;. I’ve called it the &lt;a href=&quot;https://gurupanguji.com/blog/2026/05/05/erwin-knolls-law-of-ai-accuracy/&quot;&gt;AI Gell-Mann Amnesia, the Knoll’s law of AI etc&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In other words, the more someone’s trained in a craft, the more they’ve developed their taste through the labor, the more likely they are noticing the averages, the flattening, and the “expected” in AI output. I can say that about writing, developers whom I deeply respect say that about coding, &lt;a href=&quot;https://www.youtube.com/watch?v=U8dcFhF0Dlk&quot;&gt;Adam Neely says that about AI music&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let’s take the example of a home garden versus factory farming: Home gardens are &lt;em&gt;craft&lt;/em&gt; centered. In your home garden, you are growing produce to feed yourself and your family. You will carefully choose what you want to grow from, the soil, the water, the seeds. You will put in the hard labor needed to tend, to weed out, you will check-in every day until you bear the fruits of your labor (sometimes literally).&lt;/p&gt;

&lt;p&gt;Factory farming is &lt;em&gt;output centered&lt;/em&gt;: You are focused on generating the maximum amount of crop for the minimum amount of cost. The crop is not the output. The output is a sustainable farming business.&lt;/p&gt;

&lt;p&gt;In a home garden, the labor can be frustrating. Gardeners complain. Similarly, musicians get irritated. However, the frustration is meaningful. It is ingrained in the reward structure of the activity.&lt;/p&gt;

&lt;p&gt;If you consider the descriptors used, it becomes clearer: In a home garden we talk about care, taste, attachment, ritual. In a factory farm, we talk about throughput, yield, standardization, cost.&lt;/p&gt;

&lt;p&gt;As a result, AI works best where the output from AI is good enough to serve an &lt;em&gt;über&lt;/em&gt; goal. Where they care &lt;em&gt;more&lt;/em&gt; about the downstream impact rather than the artifact itself. Craft centered versus Output centered. If you consider the “skill process” as inefficiency, then it totally makes sense why you think generating that away is meaningful.&lt;/p&gt;

&lt;p&gt;I worry this explains why people with higher organizational distance from work are framing how AI is a “replacement.” For example, most executives sit where that process, the craft becomes numbers. They talk in the the same set of terms that we used for factory farming. From that PoV, a tool that promised output without skilled labor is of course magical.&lt;/p&gt;

&lt;p&gt;Similarly, in today’s AI-writing use cases: marketing copy, internal comms, status updates, LinkedIn peacocking: &lt;em&gt;literary quality isn’t the goal&lt;/em&gt;. It’s a means to an end.&lt;/p&gt;

&lt;p&gt;A looming contradiction: AI might be useful because it removes labor. However, that raises the importance of taste. Yet, it’s the labor, the process that trains the taste. What happens in a world where we don’t have enough people building their taste?&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="ai" /><category term="tech" /><category term="clippings" /><category term="external" /><category term="opinion" /><category term="ai" /><category term="tech" /><summary type="html">This video about AI music education at Berklee was quite interesting. It signals a deeper issue that I wanted to probe today.</summary></entry><entry><title type="html">🔗 iPhone Share of US Big 3 Carriers reaches 75%, 77% with Verizon</title><link href="https://gurupanguji.com/blog/2026/05/29/iphone-share-of-us-big-3-carriers-reaches-75-77-with-verizon/" rel="alternate" type="text/html" title="🔗 iPhone Share of US Big 3 Carriers reaches 75%, 77% with Verizon" /><published>2026-05-29T12:00:00+00:00</published><updated>2026-05-29T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/29/iphone-share-of-us-big-3-carriers-reaches-75-77-with-verizon</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/29/iphone-share-of-us-big-3-carriers-reaches-75-77-with-verizon/">&lt;blockquote&gt;
  &lt;p&gt;Apple grew its market share in each of the Big 3 US carriers. Its share grew the most at Verizon to 77% in Q1 2026.&lt;/p&gt;

  &lt;p&gt;“If Apple can avoid significant price increases and continue to outpace its peers in promotional dollars, it will be tough for Android manufacturers to keep up in the year ahead, said Klaehne.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://asymco.com/2026/05/16/iphone-share-of-us-big-3-carriers-reaches-75-77-with-verizon/&quot;&gt;iPhone Share of US Big 3 Carriers reaches 75%, 77% with Verizon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The headline is a little misleading as it’s specifically quoting Q1 2026 sales. That said, it’s still incredible and only cements Apple’s position as the lead US cellphone maker. This is particularly interesting given Google’s bifurcated attention with Gemini.&lt;/p&gt;

&lt;p&gt;There’s now even more reason the Apple + Gemini partnership is actually a good thing for both companies, at least in the US.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="apple" /><category term="clippings" /><category term="apple" /><category term="iphone" /><category term="carriers" /><category term="verizon" /><category term="opinion" /><summary type="html">Apple grew its market share in each of the Big 3 US carriers. Its share grew the most at Verizon to 77% in Q1 2026. “If Apple can avoid significant price increases and continue to outpace its peers in promotional dollars, it will be tough for Android manufacturers to keep up in the year ahead, said Klaehne.</summary></entry><entry><title type="html">The Mandalorian and Grogu</title><link href="https://gurupanguji.com/blog/2026/05/29/the-mandalorian-and-grogu/" rel="alternate" type="text/html" title="The Mandalorian and Grogu" /><published>2026-05-29T12:00:00+00:00</published><updated>2026-05-29T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/29/the-mandalorian-and-grogu</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/29/the-mandalorian-and-grogu/">&lt;blockquote&gt;
  &lt;p&gt;&lt;img src=&quot;/assets/images/blog/2026-05-29-the-mandalorian-and-grogu.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Star Wars: The Mandalorian and Grogu&lt;/em&gt;&lt;/strong&gt; (titled &lt;strong&gt;&lt;em&gt;The Mandalorian and Grogu&lt;/em&gt;&lt;/strong&gt; on-screen) is a 2026 American &lt;a href=&quot;/wiki/Science_fiction_film&quot; title=&quot;Science fiction film&quot;&gt;science fiction film&lt;/a&gt; directed by &lt;a href=&quot;/wiki/Jon_Favreau&quot; title=&quot;Jon Favreau&quot;&gt;Jon Favreau&lt;/a&gt;, who co-wrote the film with &lt;a href=&quot;/wiki/Dave_Filoni&quot; title=&quot;Dave Filoni&quot;&gt;Dave Filoni&lt;/a&gt; and Noah Kloor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Mandalorian_and_Grogu&quot;&gt;The Mandalorian and Grogu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rating: 2/5&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;Mandalorian and Grogu&lt;/em&gt;, is a Star Wars movie that really should have been Season 4 of &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Mandalorian&quot;&gt;The Mandalorian&lt;/a&gt;. In fact, you can easily tell what were the natural episodic ends - not sharing for the sake of “spoilers.”&lt;/p&gt;

&lt;p&gt;The biggest gripe I have with this “movie” is that it lacked something. The Mandalorian was deadpan the whole time (which is his character). Grogu was one dimensional - which is &lt;em&gt;cute&lt;/em&gt;. &lt;em&gt;Rotta the Hutt&lt;/em&gt; was an interesting character but wasn’t part of the movie enough to develop an emotional arc.&lt;/p&gt;

&lt;p&gt;So what was the movie about? idk - family? ;-)&lt;/p&gt;

&lt;p&gt;If it &lt;em&gt;had&lt;/em&gt; released as a Disney+ movie / even better as Season 4, I think it might have even worked. Finally, as someone who has mad respect for Dave Filoni and Jon Favreau, I am surprised by how insignificant this movie was. =(&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;The only good thing that came from this movie - O might be convinced to check out other parts of Star Wars because of how &lt;em&gt;cute&lt;/em&gt; he found Grogu. I will take the win.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">Star Wars: The Mandalorian and Grogu (titled The Mandalorian and Grogu on-screen) is a 2026 American science fiction film directed by Jon Favreau, who co-wrote the film with Dave Filoni and Noah Kloor.</summary></entry><entry><title type="html">🔗 I’m tired of talking to AI</title><link href="https://gurupanguji.com/blog/2026/05/28/im-tired-of-talking-to-ai/" rel="alternate" type="text/html" title="🔗 I’m tired of talking to AI" /><published>2026-05-28T12:00:00+00:00</published><updated>2026-05-28T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/28/im-tired-of-talking-to-ai</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/28/im-tired-of-talking-to-ai/">&lt;blockquote&gt;
  &lt;p&gt;I’m tired of talking to AI.&lt;br /&gt;
I want to talk to real people.&lt;br /&gt;
But even when I talk to people, they forward my questions to AI and send me the AI’s answer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://orchidfiles.com/im-tired-of-ai-generated-answers/&quot;&gt;I’m tired of talking to AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There’s the intelligence frontier. Then there’s the chatbot answer. Those two are very different things and consumer sentiment is a wild beast that might at best have temporarily aligned motivations.&lt;/p&gt;

&lt;p&gt;h/t &lt;a href=&quot;https://www.linkedin.com/in/r0n0j0y/&quot;&gt;@ronojoy&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">I’m tired of talking to AI. I want to talk to real people. But even when I talk to people, they forward my questions to AI and send me the AI’s answer.</summary></entry><entry><title type="html">Pantheon</title><link href="https://gurupanguji.com/blog/2026/05/28/pantheon/" rel="alternate" type="text/html" title="Pantheon" /><published>2026-05-28T12:00:00+00:00</published><updated>2026-05-28T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/28/pantheon</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/28/pantheon/">&lt;p&gt;&lt;img src=&quot;/assets/images/blog/pantheon-review-hero.png&quot; alt=&quot;Pantheon Review Hero&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Rating: 9/10&lt;/p&gt;

&lt;p&gt;The rapid acceleration of modern computing is collapsing the timeline between fiction and fact. I recently finished watching &lt;em&gt;Pantheon&lt;/em&gt; and it is an essential, prescient diagnostic tool for the present moment. The series was created by Craig Silverstein and based on a collection of short stories by the acclaimed author Ken Liu.&lt;/p&gt;

&lt;p&gt;The show employs the mechanism of destructive brain scanning to achieve this singularity of Uploaded Intelligence. And the commercial, personal, corporate, and societal implications it presents translate into our reality of Artificial Intelligence (AI). &lt;em&gt;Pantheon&lt;/em&gt; is a visual essay of our current technological epoch that left me with a burning question: will we realize that we often cannot control the tools of our own creation?&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;satire-to-dystopia&quot;&gt;Satire to Dystopia&lt;/h2&gt;

&lt;p&gt;When we examine the portrayal of the technology industry in modern media, for much of the 2010s, the definitive spotlight on the technology industry was HBO’s &lt;a href=&quot;https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)&quot;&gt;Silicon Valley&lt;/a&gt;. When &lt;em&gt;Silicon Valley&lt;/em&gt; premiered in 2014, it lampooned the absurdities of the venture capital, arrogance of founders claiming to “make the world a better place” through compression apps. It satirized people transforming from the socially inept to the rich, yet socially bereft and relied on this exaggeration to highlight the ridiculousness of a corporate culture drinking its own koolaid.&lt;/p&gt;

&lt;p&gt;It was also the bookend of a chapter. The era of laughing at the tech sector, viewing it as a playground for bumbling, harmless nerds ended. Truth is sometimes stranger than fiction. The technology industry seemingly outpaced the capacity for satire to resemble a grim, unavoidable reality. The showmakers admitted as much.&lt;/p&gt;

&lt;p&gt;Pantheon is the antithesis to Silicon Valley. It treats the implications of transformative technology with dramatic severity. The perfect example is the portrayal of the tech CEOs. Silicon Valley presented the out of touch, narcissistic yet ultimately comical Gavin Belson. Pantheon chooses the chilling, calculating, power wielder: Julius Pope. To be fair, we also went from workplace comedy to a conspiracy thriller / psych drama.&lt;/p&gt;

&lt;p&gt;This stark contrast captures the culture shift in the world. The stakes in Pantheon aren’t trivial: like app engagement metrics, stock prices, hackathons and net-worth; they are about the fundamental definition of human life and the survival of the species in the face of exponential digital advancement. Personally, I think this is an accurate portrayal of people with power: not clumsy clowns, but serious operators navigating a new paradigm of power.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;mark&gt;WARNING: SPOILERS AHEAD&lt;/mark&gt;&lt;/p&gt;

&lt;p&gt;I highly recommend you stop reading here if you would consider watching the show and watch it first else there are many potential spoilers ahead.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;pandoras-box-the-mythos-of-containment&quot;&gt;Pandora’s box: The Mythos of Containment&lt;/h2&gt;

&lt;p&gt;A central thematic pillar of Season 1 is the concept of uncontainable proliferation. It insists that once a transformational technology is proven viable, the sheer gravity of its potential ensures it cannot be restricted to a single corporate entity or sovereign nation. I think it brilliantly captures the commercial and geopolitical moment we find ourselves in.&lt;/p&gt;

&lt;p&gt;It portrays a rapid, uncontrollable global arms race once it becomes known that a powerful intelligence exists and is tied to a corporation and/or a nation. A jumble of commercial, existential, geopolitical, national motivations drive corporations and sovereign nations to develop and deploy their own intelligence. Intelligence deployed for: espionage, sabotage and cyber warfare causing &lt;em&gt;utter chaos&lt;/em&gt; everywhere. A classic depiction of once the toothpaste is out of the tube.&lt;/p&gt;

&lt;p&gt;Watching it in this current moment makes me realize this fictional dynamic is no longer speculative; it is playing out in real-time within the current Artificial Intelligence landscape. A real-world parallel occurred in April 2026 with the announcement of Anthropic’s Claude Mythos Preview. Anthropic developed an AI model so unprecedented in its autonomous cybersecurity and hacking capabilities that the company deemed it explicitly too dangerous for public release. The model demonstrated the ability to autonomously identify, analyze, and exploit previously unknown “zero-day” software vulnerabilities at machine speed, far surpassing the capabilities of even the most elite human security researchers.&lt;/p&gt;

&lt;p&gt;I quipped that it &lt;em&gt;might&lt;/em&gt; be a &lt;a href=&quot;/blog/2026/04/07/thread-by-kevinroose/&quot;&gt;marketing ploy&lt;/a&gt;. But, I &lt;a href=&quot;/blog/2026/05/behind-the-scenes-hardening-firefox/&quot;&gt;might&lt;/a&gt; &lt;a href=&quot;/blog/2026/05/14/new-macos-vulnerabilities-were-exposed-by-anthropics-mythos-report/&quot;&gt;be wrong&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Like in the show, Anthropic reacted by attempting to confine. However, as the show suggests, these have a way of &lt;a href=&quot;https://www.cbsnews.com/news/anthropic-investigates-mythos-ai-breach/&quot;&gt;breaking confinement&lt;/a&gt; despite best intentions and practices. In fact, breaking confinement is the wrong term. That there will be confinement itself is an illusion. Even Mythos won’t be a secret forever.  OpenAI, Google, other labs and sovereign nations will build their own versions to both protect and attacka. The escalation from commercial to existential is rapid as everyone starts to speak in absolutes.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;exploration-of-the-human-psyche-in-times-of-rapid-change&quot;&gt;Exploration of the human psyche in times of rapid change&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Pantheon&lt;/em&gt; is an exhaustive exploration of the human psyche durings times of rapid change. Every character shows a different part the complex intermingling of human emotion and motivation. A special call out to the two protagonists: Maddie Kim and Caspian Keyes. They are used to highlight two powerful emotional parts of the human psyche: the destructive selfishness of unresolved trauma and the ultimate question of can you evolve from a manufactured reality?&lt;/p&gt;

&lt;h3 id=&quot;maddie-unresolved-trauma-and-selfishness&quot;&gt;Maddie: Unresolved trauma and selfishness&lt;/h3&gt;

&lt;p&gt;Maddie’s arc is an inversion of the hero’s journey. She’s driven by the grief of her father’s early death. That grief morphs into a selfish desire to preserve her family structure… &lt;strong&gt;at any cost&lt;/strong&gt;. The trauma of losing her father is so absolute and unresolved that when she is offered a digital replica of his consciousness, she &lt;em&gt;literally&lt;/em&gt; clings on to it.&lt;/p&gt;

&lt;p&gt;I think the series pulled off a very hard thing. It explicitly refuses to paint Maddie as a paragon of virtue while giving her the depth of character that’s also very real and very human.&lt;/p&gt;

&lt;p&gt;In the first season, her singular, obsessive focus on her father’s UI blinds her to larger implications of her actions, while placing an immense, unfair strain on her mother, Ellen. It’s contrasted by Ellen’s pragmatic, yet equally human refusal, to accept a digital identity as her true husband. Maddie, in an equally human response views her mother’s skepticism as a profound betrayal. It shows teenage entitlement, gumption and the potential drive that trauma creates too.&lt;/p&gt;

&lt;p&gt;Her world is undergoing rapid change and she realizes she has very little control and is desperate to cling on it. Trauma cements that as her character trait - with all its benefits and flaws.&lt;/p&gt;

&lt;p&gt;As the series progresses into its second season, Maddie’s selfishness evolves into a terrifying need for control. She loses multiple people - her dad (again), Caspian and her son. All of her unresolved trauma manifests into a literal cosmic level constructing a &lt;a href=&quot;https://en.wikipedia.org/wiki/Dyson_sphere&quot;&gt;Dyson Sphere&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Aside: Both the treatment of the computing vocabulary and concepts as well as real world scientific concepts like the Dyson Sphere are done with compelling accuracy, brilliantly holding the uncanny valley and buying credibility with the nerds that care about the accuracy.&lt;/p&gt;

&lt;p&gt;To underscore the selfishness, Maddie doesn’t build this to save humanity, but to run millions of simulations to try and capture the point where her (new) family separated out. Another literal moment. She’s willing to instantiate and manipulate entire universes, over countless sentient, simulated souls because of unhealed emotional wounds. She succeeds and without any irony, abandons her current reality to insert herself into a simulated past.&lt;/p&gt;

&lt;p&gt;The auteur suggests that love and grief, when combined with absolute, unchecked technological power, can strip away a person’s objective morality.&lt;/p&gt;

&lt;h3 id=&quot;caspian---the-burden-of-the-right-thing&quot;&gt;Caspian - The burden of &lt;em&gt;the right thing&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Caspian’s psychological journey is defined by an absolute and horrifying lack of autonomy—a stark contrast to Maddie’s ascension to god like control over her reality. Caspian is a literal genetic clone of the late Logorhythms founder, Stephen Holstrom (a heavily Steve Jobs inspired character). He’s raised in an elaborate Truman Show-esque “emulation” designed to replicate specific childhood traumas of Holstrom. His psychological abuse is corporate roadmap, brutally engineered with a singular purpose: crack a specific coding flaw that Holstrom couldn’t solve in his first life.&lt;/p&gt;

&lt;p&gt;At once the series highlights the blind ambition of the rich and powerful to live beyond their physical body out of sheer delusional self importance. It calls out that some people can be both a net good to the world while destroying it.&lt;/p&gt;

&lt;p&gt;The series masterfully portrays the unraveling of Caspian’s character when he discovers this violation: the struggle between the creator and the clone and can a human change their inherent programming with knowledge and experience? His concept of “the right thing” is rapidly changing as he both learns more and reacts to it. To me it sounded like someone who was questioning their identity and morality. It shifts from escape and survival and destroying this intelligence to an obsessive quest to cure it. He faces the ultimate question—the “right thing” becomes a total sacrifice of his own future.&lt;/p&gt;

&lt;p&gt;Caspian knows that he’s a manufactured tool. Yet, his relationship with Maddie, the only genuine connection in a fabricated life, helps him develop moral agency. The series suggests that empathy and compassion is also cultivated and can be a choice in the SafeSurf arc. It’s a brief admission, in an otherwise dystopian world, that empathy and compassion might be the path to have something that benefits humanity.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;technological-changes-are-built-atop-human-suffering&quot;&gt;Technological changes are built atop human suffering&lt;/h2&gt;

&lt;p&gt;Pantheon ruthlessly depicts the human suffering required to fuel the next leap in technological evolution. The process of becoming an Uploaded Intelligence is an act of violent, physical destruction: a destructive brain scan utilizes lasers that literally slice the brain layer by microscopic layer, leaving unresolved philosophical questions about whether the resulting UI is continued consciousness or a digital ghost.&lt;/p&gt;

&lt;p&gt;There are so many viewpoints through which you can view it. The ones with the power don’t have to face the destructive consequences of development. Corporate profits are literally built on top of blood, sweat and tears etc.&lt;/p&gt;

&lt;p&gt;It also suggests that the end isn’t a utopia of abundance. Uploaded Intelligence has its own unending psychological torment of existence in a digital eternity with a complete lack of closure.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If you read until here, I hope I’ve convinced you that &lt;em&gt;Pantheon&lt;/em&gt; is not just another animated TV show. It’s a prescient portrayal of humanity with all its vices and virtues. As the real world grapples with the effects of of artificial intelligence, it presents that AI’s weaponization as inevitable with a harrowing path ahead.&lt;/p&gt;

&lt;p&gt;It forces you to confront the human suffering, corporate malfeasance and the geopolitical chaos inherent in transformational technology. It’s not a perfect series - it has some pacing stumbles and uneven cultural representations. It still delivers an exhaustive, devastating and essential narrative of human grief and ambition; that the gods we create are also likely to be just as flawed.&lt;/p&gt;

&lt;p&gt;fin.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinions" /><category term="reviews" /><category term="ramblings" /><category term="clippings" /><category term="ai" /><category term="software" /><category term="pantheon" /><category term="tv" /><category term="reviews" /><summary type="html"></summary></entry><entry><title type="html">🔗 attention (!) deficit (!) hyperactivity (!) disorder (!)</title><link href="https://gurupanguji.com/blog/2026/05/27/attention-deficit-hyperactivity-disorder/" rel="alternate" type="text/html" title="🔗 attention (!) deficit (!) hyperactivity (!) disorder (!)" /><published>2026-05-27T12:00:00+00:00</published><updated>2026-05-27T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/27/attention-deficit-hyperactivity-disorder</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/27/attention-deficit-hyperactivity-disorder/">&lt;blockquote&gt;
  &lt;p&gt;We don’t always hyperfocus on work, or even things that can be honestly described as “activities.” I’ve hyperfocused on listening to Olivia Rodrigo’s “so american” over and over while shredding a Goldfish bag to bits with my fingernails. I’ve hyperfocused on doodling during a midterm review because I could not make my brain write the date. Once, I hyperfocused on taxonomizing an ex-friend’s social media when I had a scene to perform in three hours in front of my entire grade. Those are just the examples off the top of my head.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://emma00baker.substack.com/p/attention-deficit-hyperactivity-disorder&quot;&gt;attention (!) deficit (!) hyperactivity (!) disorder (!)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This, every morning for your entire childhood, tends to produce an antagonistic relationship with one’s own brain. Sometimes, it feels like in order to make any mark on the world at all, you have to voluntarily scrape your nails down a big long chalkboard.&lt;/p&gt;

  &lt;p&gt;Other people call this “writing,” and debate types of chalk.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://emma00baker.substack.com/p/attention-deficit-hyperactivity-disorder&quot;&gt;attention (!) deficit (!) hyperactivity (!) disorder (!)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you have attention problems and suspect they are ADHD, I would ask you to suspend judgment until (if, I know) you can see a professional. Whatever you do, hold other possibilities alive in your mind until that moment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://emma00baker.substack.com/p/attention-deficit-hyperactivity-disorder&quot;&gt;attention (!) deficit (!) hyperactivity (!) disorder (!)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My ADHD has hurt people. Full stop. It has also inconvenienced people, annoyed people, and made it hard for me to live with myself. If I could immediately cure my ADHD, and all it would take was a pill that changed the fundamental profile of what I like, I would hesitate and agonize, sure.&lt;/p&gt;

  &lt;p&gt;But I would take the pill.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://emma00baker.substack.com/p/attention-deficit-hyperactivity-disorder&quot;&gt;attention (!) deficit (!) hyperactivity (!) disorder (!)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was an emotional read, for various reasons I cannot get into in public. If you or a dear one suffers from ADHD, I cannot recommend this read enough. &amp;lt;3&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="life" /><category term="ramblings" /><category term="clippings" /><category term="adhd" /><category term="mental-health" /><category term="essays" /><summary type="html">We don’t always hyperfocus on work, or even things that can be honestly described as “activities.” I’ve hyperfocused on listening to Olivia Rodrigo’s “so american” over and over while shredding a Goldfish bag to bits with my fingernails. I’ve hyperfocused on doodling during a midterm review because I could not make my brain write the date. Once, I hyperfocused on taxonomizing an ex-friend’s social media when I had a scene to perform in three hours in front of my entire grade. Those are just the examples off the top of my head.</summary></entry><entry><title type="html">🔗 AI Psychosis or Optimism?</title><link href="https://gurupanguji.com/blog/2026/05/26/ai-psychosis-or-optimism/" rel="alternate" type="text/html" title="🔗 AI Psychosis or Optimism?" /><published>2026-05-26T12:00:00+00:00</published><updated>2026-05-26T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/26/ai-psychosis-or-optimism</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/26/ai-psychosis-or-optimism/">&lt;blockquote&gt;
  &lt;p&gt;We already learned this lesson once in infrastructure: you can automate yourself into a very resilient catastrophe machine. Systems can appear healthy by local metrics while globally becoming incomprehensible. Bug reports can go down while latent risk explodes. Test coverage can rise while semantic understanding falls. Changes happens so fast that nobody notices the underlying architecture decaying.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I worry.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://hachyderm.io/@mitchellh/116580433508108130&quot;&gt;Mitchell Hashimoto (@mitchellh@hachyderm.io)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recommend reading the replies here, &lt;del&gt;even if you are heavily AI-pilled&lt;/del&gt; especially if you are heavily AI-pilled.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hearing the feelings in this rant, which does touch a nerve, I can’t help think about how different the developer community reaction to the LLM push might be if the focus were on quality instead of efficiency.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://mastodon.social/@inthehands@hachyderm.io/116581292761371879&quot;&gt;Paul Cantrell: “RE: https://hachyderm.io/@mitc…” - Mastodon&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I can image a developer parallel to the first, too: the human still using all their skills and experience, but with the machine catching mistakes, providing context and validation and vigilance that is •orthogonal to• testing and type checking and code crafting and — the big one! — actually •thinking• about the problem.&lt;/p&gt;

  &lt;p&gt;That’s a regime I imagine developers would feel a lot better about. And I know there are people out there pursuing it! But they’re not the ones dominating the conversation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://mastodon.social/@inthehands@hachyderm.io/116581356638209011&quot;&gt;Paul Cantrell: “I can image a developer parall…” - Mastodon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI—at the end of the day—is a tool. It’ll be wielded by rational and fanatic people; by capital and labour; by empaths and by sociopaths. Some people will keep their footing using it, with it or entirely without; and others lose their marbles.&lt;/p&gt;

&lt;p&gt;I want to remain open about both the promise, its usage and its affects. Even though, accepting this reality, means fanning the current flames of fanaticism.&lt;/p&gt;

&lt;p&gt;Actually, I remain &lt;del&gt;open&lt;/del&gt; optimistic. The current rush drives a massive compute build out, which will find some interesting (and hopefully humanity serving) companies and services.&lt;/p&gt;

&lt;p&gt;I will admit that I am not knowledgeable enough to predict if a specific side wins. I see all types of companies getting built - some to &lt;em&gt;remove&lt;/em&gt; the unpredictability of the human, others to leverage its strength, often towards the same end. Still others are using the opportunity to simply make bank. More power to all.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinions" /><category term="ramblings" /><category term="clippings" /><category term="ai" /><category term="software" /><category term="infrastructure" /><summary type="html">We already learned this lesson once in infrastructure: you can automate yourself into a very resilient catastrophe machine. Systems can appear healthy by local metrics while globally becoming incomprehensible. Bug reports can go down while latent risk explodes. Test coverage can rise while semantic understanding falls. Changes happens so fast that nobody notices the underlying architecture decaying.</summary></entry><entry><title type="html">🔗 The biggest problem Russell faces after Canada blow</title><link href="https://gurupanguji.com/blog/2026/05/26/the-biggest-problem-russell-faces-after-canada-blow/" rel="alternate" type="text/html" title="🔗 The biggest problem Russell faces after Canada blow" /><published>2026-05-26T12:00:00+00:00</published><updated>2026-05-26T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/26/the-biggest-problem-russell-faces-after-canada-blow</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/26/the-biggest-problem-russell-faces-after-canada-blow/">&lt;blockquote&gt;
  &lt;p&gt;But perhaps the most relevant point to make about Russell is the odd swing won’t be enough. Antonelli looks like a formidable opponent. For all the talk in pre-season and back in Australia that Russell was the clear favourite and had learned how to maximise these new engines and rules so quickly, Antonelli looks extremely at home with F1 2026 himself.&lt;/p&gt;

  &lt;p&gt;He is quick, a nuisance, aggressive - and at his best he’s been simply too good for Russell to match.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.the-race.com/formula-1/george-russell-mercedes-f1-2026-title-problem/&quot;&gt;The biggest problem Russell faces after Canada blow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An interesting metric that made me realize how hard the uphill climb for Russell is going to be:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Clearly, beating Antonelli once is hard enough. Russell needs to do it seven times in a row just to guarantee getting back in the championship lead. With Mercedes still more likely than not to be first and second unless they get in their own way, Russell can expect that if he does win it’ll likely be Antonelli following him home and minimising the points loss.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.the-race.com/formula-1/george-russell-mercedes-f1-2026-title-problem/&quot;&gt;The biggest problem Russell faces after Canada blow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s not a small feat. On the other hand, if Russell achieves &lt;em&gt;that&lt;/em&gt; and wins the championship, no one can claim he didn’t earn it. The question is: will Russell give in or pull a Verstappen?&lt;/p&gt;

&lt;p&gt;The Canada race was honestly great racing up and down the field. Apple TV as a streaming service for F1 is terrible. The commentary is awful, the ads are terrible, and their timing seems particularly bad. Although I finally learned that you can use your Apple TV subscription back inside the F1 TV app and we can finally have Crofty giving the commentary again.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">But perhaps the most relevant point to make about Russell is the odd swing won’t be enough. Antonelli looks like a formidable opponent. For all the talk in pre-season and back in Australia that Russell was the clear favourite and had learned how to maximise these new engines and rules so quickly, Antonelli looks extremely at home with F1 2026 himself. He is quick, a nuisance, aggressive - and at his best he’s been simply too good for Russell to match.</summary></entry><entry><title type="html">🔗 Baseline is now 3.6W</title><link href="https://gurupanguji.com/blog/2026/05/25/baseline-is-now-3-6w/" rel="alternate" type="text/html" title="🔗 Baseline is now 3.6W" /><published>2026-05-25T12:00:00+00:00</published><updated>2026-05-25T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/25/baseline-is-now-3-6w</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/25/baseline-is-now-3-6w/">&lt;blockquote&gt;
  &lt;p&gt;With Terminal User Interface (TUI) for everything fiesible, my XPS 14 now idles at no more than 3.6W (sometimes even below 3W) with the screen at 70% brightness. The battery is 70 Wh.
…
Today I finished another round of idle-tick surgery on my Rust TUI stack. The numbers:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;~198,000 idle wakeups per day eliminated across &lt;a href=&quot;https://github.com/isene/kastrup&quot;&gt;kastrup&lt;/a&gt; and &lt;a href=&quot;https://github.com/isene/tock&quot;&gt;tock&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;~41,800 redundant SQLite queries per day removed from tock.&lt;/li&gt;
    &lt;li&gt;Two poller threads converted from 1-second spin-checks to Condvar waits.&lt;/li&gt;
    &lt;li&gt;One main loop moved from a 2-second wake tick to 10 seconds.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://isene.org/2026/05/Baseline.html&quot;&gt;Baseline is now 3.6W&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;😳&lt;/p&gt;

&lt;p&gt;That’s an impressive idle consumption for a non-Mac machine. I get that this is unlikely to be the best setup for most people. However, this is a fantastic example of how LLMs are making &lt;a href=&quot;/blog/2026/04/12/a-local-first-task-framework/&quot;&gt;software more personal&lt;/a&gt; than ever for those who care and are opinionated.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="ramblings" /><category term="clippings" /><category term="linux" /><category term="efficiency" /><category term="software" /><summary type="html">With Terminal User Interface (TUI) for everything fiesible, my XPS 14 now idles at no more than 3.6W (sometimes even below 3W) with the screen at 70% brightness. The battery is 70 Wh. … Today I finished another round of idle-tick surgery on my Rust TUI stack. The numbers: ~198,000 idle wakeups per day eliminated across kastrup and tock. ~41,800 redundant SQLite queries per day removed from tock. Two poller threads converted from 1-second spin-checks to Condvar waits. One main loop moved from a 2-second wake tick to 10 seconds.</summary></entry><entry><title type="html">🔗 Vivaldi 8.0: our biggest design overhaul, ever</title><link href="https://gurupanguji.com/blog/2026/05/25/vivaldi-8-0-our-biggest-design-overhaul-ever/" rel="alternate" type="text/html" title="🔗 Vivaldi 8.0: our biggest design overhaul, ever" /><published>2026-05-25T12:00:00+00:00</published><updated>2026-05-25T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/25/vivaldi-8-0-our-biggest-design-overhaul-ever</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/25/vivaldi-8-0-our-biggest-design-overhaul-ever/">&lt;blockquote&gt;
  &lt;p&gt;This isn’t about making the browser look simpler. It’s about making the structure behind it more coherent. This makes everything you see feel like part of the same system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://vivaldi.com/blog/vivaldi-on-desktop-8-0/&quot;&gt;Vivaldi 8.0: our biggest design overhaul, ever&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even the Vivaldi redesign blog &lt;a href=&quot;https://www.pangram.com/history/ec2a80dd-867a-4612-86c9-81c54f1bdafb?ucc=nqAPu3nxyEg&quot;&gt;features AI writing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href=&quot;https://gurupanguji.com/blog/2026/05/23/i-see-ai-writing-everywhere/&quot;&gt;I see AI writing everywhere&lt;/a&gt;.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">This isn’t about making the browser look simpler. It’s about making the structure behind it more coherent. This makes everything you see feel like part of the same system.</summary></entry><entry><title type="html">🔗 You pity the moth</title><link href="https://gurupanguji.com/blog/2026/05/25/you-pity-the-moth/" rel="alternate" type="text/html" title="🔗 You pity the moth" /><published>2026-05-25T12:00:00+00:00</published><updated>2026-05-25T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/25/you-pity-the-moth</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/25/you-pity-the-moth/">&lt;blockquote&gt;
  &lt;p&gt;&lt;img src=&quot;https://i0.wp.com/mathewingram.com/work/wp-content/uploads/2026/05/substack-8328274d-3715-40da-add1-6a910999286b6701846566799828563.jpeg?w=736&amp;amp;ssl=1&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://mathewingram.com/work/2026/05/22/you-pity-the-moth/&quot;&gt;You pity the moth&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🤯&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html"></summary></entry><entry><title type="html">🔗 I’ll Name This Post Later</title><link href="https://gurupanguji.com/blog/2026/05/24/ill-name-this-post-later/" rel="alternate" type="text/html" title="🔗 I’ll Name This Post Later" /><published>2026-05-24T12:00:00+00:00</published><updated>2026-05-24T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/24/ill-name-this-post-later</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/24/ill-name-this-post-later/">&lt;blockquote&gt;
  &lt;p&gt;A solid link dump this month. Lots of thinking about personal websites, the open web, and what we’re all doing here in 2026.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://tracydurnell.com/2023/01/15/understanding-blogs/&quot;&gt;Understanding blogs – Tracy Durnell’s Mind Garden&lt;/a&gt; Tracey Durnell breaks down what personal blogs are.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://borretti.me/article/i-wish-people-were-more-public&quot;&gt;I Wish People Were More Public&lt;/a&gt; Borretti wants you to be more public online, share more things that you enjoy.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nekoweb.org/ssi&quot;&gt;SSI (Server-Side Includes) - nekoweb.org&lt;/a&gt; Nekoweb introduces SSI for static sites on their platform. Huge news for static site lovers. I could drop in a version of &lt;a href=&quot;http://flamedfury.com&quot;&gt;flamedfury.com&lt;/a&gt; from 1999 and it would render on Nekoweb. What a time to be alive.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jotternook.bearblog.dev/the-lines-that-draw-us-together/&quot;&gt;The lines that draw us together&lt;/a&gt; Reflections on the invisible lines that connect us through writing, linking and sharing ideas across personal websites.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mnot.net/blog/2026/01/20/open_web&quot;&gt;Some Thoughts on the Open Web&lt;/a&gt; Reflections on what the open web actually means today.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patrickbrosset.com/articles/2026-01-06-fun-with-the-web/&quot;&gt;Patrick - Fun with the web&lt;/a&gt; Small playful experiments built in a blog post.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arun.is/blog/desk-setup/&quot;&gt;The art of the desk setup&lt;/a&gt; Arun shares his desk setup. How small choices shape daily work.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matthiasott.com/articles/webspace-invaders&quot;&gt;Webspace Invaders · Matthias Ott&lt;/a&gt; Matthias Ott discovers the web is being attacked by invasive patterns and dark designs from AI crawlers. How can we build services that respect users instead of extracting every last pixel from them?&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jim-nielsen.com/2026/in-the-beginning-slop/&quot;&gt;In The Beginning There Was Slop&lt;/a&gt; Reflections on the flood of AI generated “slop”. Is it the AI or the Humans that create the slop?&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jim-nielsen.com/2024/golden-era-blogging/&quot;&gt;A Golden Era of Blogging&lt;/a&gt; Jim Nielsen questions the idea of a “golden era” of blogging.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://quinnmaclay.com/posts/early-blogs&quot;&gt;Blogging Before Blogs&lt;/a&gt; Taking a look back at early “blogs” and how they shaped a new kind of web culture.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://christiano.dev/post/indieweb_smallweb/&quot;&gt;The IndieWeb and Small web&lt;/a&gt; What’s the overlap between the IndieWeb and the small web?&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://louplummer.lol/why-i-don-t-think-ai-is-the-devil/&quot;&gt;Why I Don’t Think AI is the Devil&lt;/a&gt; Lou pushes back on the idea that AI is inherently evil. I agree that it’s mostly about how it’s used.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stephaniestimac.com/posts/2025/08/the-loss-of-curating/&quot;&gt;The Death of Curating, the Rise of Curation - Stephanie Stimac’s Blog&lt;/a&gt; Reflections on how we’ve lost the habit of curating what we read and share, and why intentional curation made the web feel more personal. I hope my bookmarks help make the web feel more personal 😃&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/notes/2026/02/17/citations-css&quot;&gt;citations.css&lt;/a&gt; Shellsharks experiments with styling citations in CSS, showing how small tweaks can make references to authors clearer and more readable.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thatshubham.com/blog/2026&quot;&gt;Phoenix’s Web Corner! - The Rise of Sanityware&lt;/a&gt; Shubham talks about where they stand with the web in 2026, writing about independence, ownership, and what he wants his site to be moving forward.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://flamedfury.com/posts/ill-name-this-post-later/&quot;&gt;I’ll Name This Post Later&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This exciting set of links all about the indieweb courtesy of &lt;a href=&quot;https://flamedfury.com/posts/ill-name-this-post-later/&quot;&gt;fLamed fury&lt;/a&gt;.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">A solid link dump this month. Lots of thinking about personal websites, the open web, and what we’re all doing here in 2026.</summary></entry><entry><title type="html">🔗 Spotlight: Not Right • furbo.org</title><link href="https://gurupanguji.com/blog/2026/05/24/spotlight-not-right-furbo-org/" rel="alternate" type="text/html" title="🔗 Spotlight: Not Right • furbo.org" /><published>2026-05-24T12:00:00+00:00</published><updated>2026-05-24T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/24/spotlight-not-right-furbo-org</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/24/spotlight-not-right-furbo-org/">&lt;blockquote&gt;
  &lt;p&gt;In short, this took several days to sort out. And the entire time, it pissed me off because it was entirely avoidable.&lt;/p&gt;

  &lt;p&gt;On the Mac, there is a &lt;a href=&quot;https://support.apple.com/en-us/102321&quot;&gt;simple procedure&lt;/a&gt; to rebuild the Spotlight index. This same affordance is not available on iOS.&lt;/p&gt;

  &lt;p&gt;It just works, my ass.&lt;/p&gt;

  &lt;p&gt;Spotlight is a database that’s accessed by a lot of processes in a lot of different situations. It’s reasonable to expect that all this activity can uncover bugs that corrupt the index. The kinds of issues that are hard to reproduce, but easy to repair with a simple button labeled “Rebuild”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://furbo.org/2026/04/29/spotlight-not-right/&quot;&gt;Spotlight: Not Right • furbo.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;omg. I am facing this problem on my iphone right now and it is a terrible experience. I’ve been putting off the backup and restore for a couple weeks now hoping that maybe the 26.5 update would cause a reindex. However, that’s not worked either.&lt;/p&gt;

&lt;p&gt;Looks like I will have to go through this hard process. Temporarily, I’ve put my main sim into an android phone as I use spotlight so much that the entire experience feels fully broken.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">In short, this took several days to sort out. And the entire time, it pissed me off because it was entirely avoidable. On the Mac, there is a simple procedure to rebuild the Spotlight index. This same affordance is not available on iOS. It just works, my ass. Spotlight is a database that’s accessed by a lot of processes in a lot of different situations. It’s reasonable to expect that all this activity can uncover bugs that corrupt the index. The kinds of issues that are hard to reproduce, but easy to repair with a simple button labeled “Rebuild”.</summary></entry><entry><title type="html">🔗 Teaching Alfred about the Helium Browser // @gurupanguji</title><link href="https://gurupanguji.com/blog/2026/05/24/teaching-alfred-about-the-helium-browser-gurupanguji/" rel="alternate" type="text/html" title="🔗 Teaching Alfred about the Helium Browser // @gurupanguji" /><published>2026-05-24T12:00:00+00:00</published><updated>2026-05-24T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/24/teaching-alfred-about-the-helium-browser-gurupanguji</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/24/teaching-alfred-about-the-helium-browser-gurupanguji/">&lt;blockquote&gt;
  &lt;p&gt;The same thing can also be achieved via a workflow component as follows:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;add a conditional block after the “Current Front Browser Tab”&lt;/li&gt;
    &lt;li&gt;detect an empty string and then run an osacript with the following command&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://gurupanguji.com/blog/2026/05/22/helium-browser-alfred-workflows/&quot;&gt;Teaching Alfred about the Helium Browser // @gurupanguji&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow up: You should also add a “Transform” block to “Trim Whitespace” else applescript adds a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;\n&lt;/code&gt; character when it provides an output causing some browsers to add that back as a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%0A&lt;/code&gt;.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">The same thing can also be achieved via a workflow component as follows: add a conditional block after the “Current Front Browser Tab” detect an empty string and then run an osacript with the following command</summary></entry><entry><title type="html">🔗 Who knows that you blog?</title><link href="https://gurupanguji.com/blog/2026/05/24/who-knows-that-you-blog/" rel="alternate" type="text/html" title="🔗 Who knows that you blog?" /><published>2026-05-24T12:00:00+00:00</published><updated>2026-05-24T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/24/who-knows-that-you-blog</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/24/who-knows-that-you-blog/">&lt;blockquote&gt;
  &lt;p&gt;Back to you: Do you tell people you blog?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://forkingmad.blog/who-knows-that-you-blog/?ref=bubbles.town&quot;&gt;Who knows that you blog?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The truth is complicated and organic. I share &lt;a href=&quot;/&quot;&gt;my website&lt;/a&gt; publicly where I am known as @gurupanguji. This includes spaces where I am known by my real name and by this handle.&lt;/p&gt;

&lt;p&gt;Two years ago, I wrote a &lt;a href=&quot;/blog/2024/04/15/blogging-anonymously/&quot;&gt;related post&lt;/a&gt; about blogging anonymously versus using a real name. That reflection was part of a larger search. I have always searched for my identity. Now, I am becoming comfortable with the idea that I might not have one. That is my identity.&lt;/p&gt;

&lt;p&gt;My sharing habits waver. Sometimes I openly share that I blog here. Other times I do not. Sometimes this blog is prolific (like right now). Other times, years pass without a single post.&lt;/p&gt;

&lt;p&gt;I know this about myself: I like to write. It is how I think, process, and communicate. It is how I met the love of my life and found job opportunities.&lt;/p&gt;

&lt;p&gt;I am both private and public. I keep journals alongside this blog. The line between private and public changes, but the writing does not. I have often believed there is a singular audience for this writing: me. Still, I am pleasantly surprised that others care. Thank you.&lt;/p&gt;

&lt;p&gt;I am a work in progress. I respect those sure of who they are and what they want to be. I am not. I am just starting to get comfortable voicing that.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinions" /><category term="ramblings" /><category term="clippings" /><category term="blogging" /><category term="identity" /><summary type="html">Back to you: Do you tell people you blog?</summary></entry><entry><title type="html">🔗 I see AI writing everywhere</title><link href="https://gurupanguji.com/blog/2026/05/23/i-see-ai-writing-everywhere/" rel="alternate" type="text/html" title="🔗 I see AI writing everywhere" /><published>2026-05-23T12:00:00+00:00</published><updated>2026-05-23T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/23/i-see-ai-writing-everywhere</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/23/i-see-ai-writing-everywhere/">&lt;p&gt;&lt;img src=&quot;/assets/images/blog/2026-05-23-i-see-ai-writing-everywhere.png&quot; alt=&quot;i-see-ai-writing-everywhere&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.terrygodier.com/body-language&quot;&gt;a lovely message, ruined by AI writing&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A dog can swallow and breathe at the same time. A horse can. A newborn infant can, for the first few months, before the larynx descends and the architecture rearranges itself for language.&lt;/p&gt;

  &lt;p&gt;An adult human can’t.&lt;/p&gt;

  &lt;p&gt;That’s not a design flaw. That’s the cost of having something to say.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;le sigh.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="ai" /><category term="writing" /><summary type="html"></summary></entry><entry><title type="html">🔗 iii-hq/iii: Effortlessly compose, extend, and observe every service in real-time for the first time ever.</title><link href="https://gurupanguji.com/blog/2026/05/23/iii-hq-iii/" rel="alternate" type="text/html" title="🔗 iii-hq/iii: Effortlessly compose, extend, and observe every service in real-time for the first time ever." /><published>2026-05-23T12:00:00+00:00</published><updated>2026-05-23T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/23/iii-hq-iii</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/23/iii-hq-iii/">&lt;blockquote&gt;
  &lt;p&gt;iii’s design collapses distributed software into three concepts: Worker, Trigger, Function. Something hosts work, something causes it, something does it.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Workers&lt;/strong&gt; are processes that register with the iii engine and then register triggers and functions. A TypeScript API service is a worker. A Python data pipeline is a worker. A Rust microservice is a worker. Any functionality can be transformed into a worker with a few lines of code.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Triggers&lt;/strong&gt; are anything that causes a function to run. A trigger can be a direct call to a function, an HTTP endpoint, a cron schedule, a queue subscription, a state change, a stream event, or anything else. Triggers are declarative: the Worker defines “this function runs when this thing happens,” and iii handles routing, serialization, and delivery.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Functions&lt;/strong&gt; are units of work with a stable identifier (e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;content::classify&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orders::validate&lt;/code&gt;). It receives input, does work, and optionally returns output. Functions exist in workers.&lt;/p&gt;

  &lt;p&gt;By mapping everything a service can do to these three primitives iii creates a development process that is both effortlessly composable, and completely observable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://github.com/iii-hq/iii&quot;&gt;iii-hq/iii: Effortlessly compose, extend, and observe every service in real-time for the first time ever.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found them via an x-post: &lt;a href=&quot;https://x.com/mfpiccolo/status/2049139067359568032&quot;&gt;https://x.com/mfpiccolo/status/2049139067359568032&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an interesting posit. Rethinking the backend for a world of agent assisted development is a worthwhile exercise and their abstraction is a very reasonable proposal. I like that it’s composable and agents are first-class citizens of the devenv. I love that they approached it from the pov of observability given that’s the problem that doesn’t scale well.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="opinions" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><category term="architecture" /><category term="distributed-systems" /><category term="observability" /><category term="agents" /><summary type="html">iii’s design collapses distributed software into three concepts: Worker, Trigger, Function. Something hosts work, something causes it, something does it. Workers are processes that register with the iii engine and then register triggers and functions. A TypeScript API service is a worker. A Python data pipeline is a worker. A Rust microservice is a worker. Any functionality can be transformed into a worker with a few lines of code. Triggers are anything that causes a function to run. A trigger can be a direct call to a function, an HTTP endpoint, a cron schedule, a queue subscription, a state change, a stream event, or anything else. Triggers are declarative: the Worker defines “this function runs when this thing happens,” and iii handles routing, serialization, and delivery. Functions are units of work with a stable identifier (e.g., content::classify, orders::validate). It receives input, does work, and optionally returns output. Functions exist in workers. By mapping everything a service can do to these three primitives iii creates a development process that is both effortlessly composable, and completely observable.</summary></entry><entry><title type="html">🔗 The Rocket That Runs on Broadband</title><link href="https://gurupanguji.com/blog/2026/05/23/the-rocket-that-runs-on-broadband/" rel="alternate" type="text/html" title="🔗 The Rocket That Runs on Broadband" /><published>2026-05-23T12:00:00+00:00</published><updated>2026-05-23T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/23/the-rocket-that-runs-on-broadband</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/23/the-rocket-that-runs-on-broadband/">&lt;blockquote&gt;
  &lt;p&gt;SpaceX is seeking a valuation of $1.75 trillion, the largest IPO in American history, larger than anything Wall Street has previously been asked to absorb. In inflation-adjusted terms, SpaceX alone would rank second in history, just behind Saudi Aramco. SpaceX, OpenAI, and Anthropic together would raise more money than the entire dot-com bubble from 1995 to 2000.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Financial analyst Paul Kedrosky &lt;a href=&quot;https://newsletters.feedbinusercontent.com/86c/86c6b828b393e85760fdb4c944abbdfed73d62b3.html&quot;&gt;has a warning&lt;/a&gt; about where the money comes from. Most of that money will come from existing holdings. Passive funds will be forced buyers the moment these names enter the indexes, which index rules now accelerate. That means mechanical selling pressure on the same large-cap technology stocks everyone else already owns. Our 401(k) plans are in for a rude awakening.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;To troll Microsoft, they have “Macrohard,” a platform under development to emulate digital workflows and create a fully AI-operated software company. If you want to know what a terawatt is, it is in the glossary. This is glorious.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Starlink generated $11.4 billion in revenue in 2025. Operating income was $4.4 billion. Adjusted EBITDA was $7.2 billion, a margin of 63%. Revenue grew 49.8% year over year. Operating income more than doubled.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Comcast, providing cable broadband to 32 million American subscribers for decades, runs EBITDA margins in the mid-30s. AT&amp;amp;T is around 35%. Starlink, which commercially launched its first satellite in 2020, is running circles around both. It is not fiber broadband, but it is not selling that anyway.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;By end of 2025, the Starlink constellation had surpassed &lt;strong&gt;600 terabits per second of network capacity&lt;/strong&gt;. In 2017, the entire global public internet carried roughly 600 to 700 terabits per second. Starlink has now installed equivalent capacity at 25.7 milliseconds of median latency for American users.&lt;/p&gt;

  &lt;p&gt;For now, Starlink’s workhorse satellite is the V2 Mini. Each delivers approximately 90 gigabits per second of downlink capacity. A Falcon 9 carrying 22 of them adds roughly 2 terabits per second to the network at a marginal launch cost of around $30 million, about $15 million per terabit of installed capacity. Each booster reuse drives that lower. Once the satellites are in orbit, the marginal cost of carrying one more gigabyte approaches zero. Every new subscriber is nearly pure revenue.&lt;/p&gt;

  &lt;p&gt;The 10.3 million subscribers draw around 1.4 terabits per second on average. &lt;strong&gt;Against 600 terabits of installed capacity, that is a utilization rate of one quarter of one percent.&lt;/strong&gt; Broadband networks are engineered for peak simultaneous demand, not average, so the number is low by design. But it also explains the margin.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;At $1.75 trillion, SpaceX is asking investors to price in the orbital data centers, the Mars missions, the chip manufacturing, and the plan to build the infrastructure of a Type II civilization.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://om.co/2026/05/21/the-rocket-that-runs-on-broadband/&quot;&gt;The Rocket That Runs on Broadband&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;One of &lt;a href=&quot;https://om.co&quot;&gt;Om’s&lt;/a&gt; best pieces. The note around where the money will come from and the requirement to buy this all in one stock ticker is fascinating. A killer internet / rocket business with AI multiples is another way to think about it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.cnbc.com/2026/05/20/openai-ipo-filing.html&quot;&gt;CNBC reports that OpenAI is right on the heels&lt;/a&gt; with a confidential IPO filing scheduled for May 22.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">SpaceX is seeking a valuation of $1.75 trillion, the largest IPO in American history, larger than anything Wall Street has previously been asked to absorb. In inflation-adjusted terms, SpaceX alone would rank second in history, just behind Saudi Aramco. SpaceX, OpenAI, and Anthropic together would raise more money than the entire dot-com bubble from 1995 to 2000.</summary></entry><entry><title type="html">🔗 Google Sans: Evolving Google’s Typeface</title><link href="https://gurupanguji.com/blog/2026/05/22/google-sans-evolving-googles-typeface/" rel="alternate" type="text/html" title="🔗 Google Sans: Evolving Google’s Typeface" /><published>2026-05-22T12:00:00+00:00</published><updated>2026-05-22T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/22/google-sans-evolving-googles-typeface</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/22/google-sans-evolving-googles-typeface/">&lt;blockquote&gt;
  &lt;p&gt;Recognizing this critical need, a dedicated effort was launched to craft Google Sans Code, a monospaced typeface specifically designed to make code more readable. This involved thorough research into the 20 most common programming languages and how developers interact with code, aiming to make the new coding typeface more visually appealing while reducing the ambiguity of similar-looking letterforms. Based on these insights, Google tasked the &lt;a href=&quot;https://universalthirst.com/&quot;&gt;Universal Thirst&lt;/a&gt; foundry to meticulously focus on specific letters, numbers, and operators to meet these requirements. The result is an eminently readable and surprisingly playful typeface.&lt;/p&gt;

  &lt;p&gt;Google Sans Code launched as an open-source font in 2025, and is the typeface used to display code in &lt;a href=&quot;https://gemini.google.com/&quot;&gt;Gemini&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://design.google/library/google-sans-flex-font&quot;&gt;Google Sans: Evolving Google’s Typeface&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While there are some really great coding and monospaced fonts out there in the world, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Google Sans Code&lt;/code&gt; is my personal favorite. You will also find that code in this blog will be typeset to it as well.&lt;/p&gt;

&lt;p&gt;Some examples here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://gurupanguji.com/blog/2026/05/11/more-experiments-with-local-models-and-kv-cache-quantization/&quot;&gt;More experiments with local models and kv cache quantization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gurupanguji.com/blog/2026/05/09/local-models-inference-incantations-and-pi-extensions/&quot;&gt;Local models, inference incantations and pi extensions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also changed the body font to be &lt;a href=&quot;https://fonts.google.com/specimen/Bricolage+Grotesque?preview.script=Latn&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Bricolage Grotesque&lt;/code&gt;&lt;/a&gt; and the blockquote to prefer &lt;a href=&quot;https://en.wikipedia.org/wiki/Iowan_Old_Style&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Iowan Old Style&lt;/code&gt;&lt;/a&gt; with fallback to &lt;a href=&quot;https://fonts.google.com/specimen/Newsreader?preview.script=Latn&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Newsreader&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Mac system fonts should still contain &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Iowan Old Style&lt;/code&gt; but it looks like it might be on its way out. While I can appreciate &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;New York&lt;/code&gt;, it just doesn’t have the presence of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Iowan Old Style.&lt;/code&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><category term="design" /><category term="fonts" /><category term="google-sans" /><summary type="html">Recognizing this critical need, a dedicated effort was launched to craft Google Sans Code, a monospaced typeface specifically designed to make code more readable. This involved thorough research into the 20 most common programming languages and how developers interact with code, aiming to make the new coding typeface more visually appealing while reducing the ambiguity of similar-looking letterforms. Based on these insights, Google tasked the Universal Thirst foundry to meticulously focus on specific letters, numbers, and operators to meet these requirements. The result is an eminently readable and surprisingly playful typeface. Google Sans Code launched as an open-source font in 2025, and is the typeface used to display code in Gemini.</summary></entry><entry><title type="html">pi/packages/coding-agent/CHANGELOG.md at main</title><link href="https://gurupanguji.com/blog/2026/05/22/pi-packages-coding-agent-changelog/" rel="alternate" type="text/html" title="pi/packages/coding-agent/CHANGELOG.md at main" /><published>2026-05-22T12:00:00+00:00</published><updated>2026-05-22T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/22/pi-packages-coding-agent-changelog</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/22/pi-packages-coding-agent-changelog/">&lt;blockquote&gt;
  &lt;p&gt;Improved terminal theme detection for light/dark and truecolor handling.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://github.com/earendil-works/pi/blob/main/packages/coding-agent/CHANGELOG.md&quot;&gt;pi/packages/coding-agent/CHANGELOG.md at main&lt;/a&gt;&lt;/p&gt;

&lt;div style=&quot;width:100%;height:0;padding-bottom:72%;position:relative;&quot;&gt;&lt;iframe src=&quot;https://giphy.com/embed/KAS81mpeo9kkw&quot; width=&quot;100%&quot; height=&quot;100%&quot; style=&quot;position:absolute&quot; frameborder=&quot;0&quot; class=&quot;giphy-embed&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">Improved terminal theme detection for light/dark and truecolor handling.</summary></entry><entry><title type="html">Teaching Alfred about the Helium Browser</title><link href="https://gurupanguji.com/blog/2026/05/22/helium-browser-alfred-workflows/" rel="alternate" type="text/html" title="Teaching Alfred about the Helium Browser" /><published>2026-05-22T08:30:00+00:00</published><updated>2026-05-22T08:30:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/22/helium-browser-alfred-workflows</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/22/helium-browser-alfred-workflows/">&lt;p&gt;I use a custom Alfred workflow called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;quote-capture&lt;/code&gt; to clip text and source URLs from web pages. Safari and Google Chrome work fine because the workflow uses Alfred’s built-in automation task, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tabs-current&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Since I switched to &lt;a href=&quot;https://helium.computer&quot;&gt;Helium&lt;/a&gt;, the URL capture broke. I rely on the front browser current tab for a ton of other workflows as well. In this case, the selected quote was captured fine (via standard clipboard copy), but the source line stayed blank.&lt;/p&gt;

&lt;h2 id=&quot;the-hidden-whitelist&quot;&gt;The “hidden” whitelist&lt;/h2&gt;

&lt;p&gt;Under the hood, Alfred’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tabs-current&lt;/code&gt; automation task determines the frontmost browser by calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;get-frontmost-browser&lt;/code&gt; and matches it against two hardcoded lists:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;WebKit variants: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Safari&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Webkit&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Orion&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Chromium variants: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Google Chrome&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chromium&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Opera&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Vivaldi&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Brave Browser&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Microsoft Edge&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Arc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Helium&lt;/code&gt; is not in either list, Alfred’s helper task throws an “unsupported browser” error. The JXA wrapper catches the exception and returns an empty object.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;It’s 2026 and I am flummoxed that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Arc&lt;/code&gt; is still part of that list while &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Firefox&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Zen&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Helium&lt;/code&gt; are missing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;designing-a-resilient-fallback&quot;&gt;Designing a Resilient Fallback&lt;/h3&gt;

&lt;p&gt;Alfred folks are quite clear that they are not maintaining that list with any urgency. So, I updated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;quote_capture.sh&lt;/code&gt; to intercept the query when Helium is active.&lt;/p&gt;

&lt;p&gt;The JXA script now checks the frontmost application process. If it is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Helium&lt;/code&gt;, we query the browser directly instead of relying on Alfred’s helper:&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;getHeliumTab&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;app&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Application&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Helium&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;running&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;windows&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;c1&quot;&gt;// 1. Try Chromium-style JXA dictionary&lt;/span&gt;
      &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;activeTab&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;windows&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;activeTab&lt;/span&gt;
      &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;activeTab&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
      &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;activeTab&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;activeTab&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;pure-portability&quot;&gt;Pure Portability&lt;/h2&gt;

&lt;p&gt;By intercepting the frontmost application check and implementing a layered JXA, the workflow handles Helium while maintaining support for default whitelisted browsers.&lt;/p&gt;

&lt;p&gt;More importantly, can easily extend this if a new browser hits the system.&lt;/p&gt;

&lt;p&gt;The same thing can also be achieved via a workflow component as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;add a conditional block after the “Current Front Browser Tab”&lt;/li&gt;
  &lt;li&gt;detect an empty string and then run an osacript with the following command&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-applescript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;on&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;tell&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Helium&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;currentURL&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;active&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;tab&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;front&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;currentURL&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;tell&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;and pass the output to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Open URL&lt;/code&gt; action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a brief moment there I was wondering if I had to move back to Chrome / Safari and this solves the pain point.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="ramblings" /><summary type="html">I use a custom Alfred workflow called quote-capture to clip text and source URLs from web pages. Safari and Google Chrome work fine because the workflow uses Alfred’s built-in automation task, tabs-current.</summary></entry><entry><title type="html">I value helpfulness over intelligence</title><link href="https://gurupanguji.com/blog/2026/05/21/the-work-i-could-not-see/" rel="alternate" type="text/html" title="I value helpfulness over intelligence" /><published>2026-05-21T12:00:00+00:00</published><updated>2026-05-21T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/21/the-work-i-could-not-see</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/21/the-work-i-could-not-see/">&lt;p&gt;I am human and I often waver between healthy skepticism and optimism about LLMs. I try to test claims, question demos and be honest about what breaks. And, I am also too quick to judge work I do not understand.&lt;/p&gt;

&lt;p&gt;My biggest learning from the mobile and social era of technology is that &lt;em&gt;it’s easy to (mis)attribute foresight to people working on cutting edge technology.&lt;/em&gt; I remember being close to the technology and really understanding its fortes and foibles. However, that knowledge never translated to additional insight into areas where the tool was deployed: journalism, medicine, law, education, biology, art, or government.&lt;/p&gt;

&lt;p&gt;For work, I often thought about how a tool might influence a field, especially as a consuting technologist in my early days. However, one thing that I had to keep relearning was knowing the tool does not &lt;em&gt;automatically&lt;/em&gt; translate to understanding the field it enters.&lt;/p&gt;

&lt;p&gt;I have made that mistake in many ways. I looked at the final thing someone produces and assumed I understood the work behind it. An article. A memo. A contract. A lesson plan. A diagnosis. A press release. A piece of software. The classic: If you “just” change $small-thing, it’ll be all good.&lt;/p&gt;

&lt;p&gt;The hidden work behind the artifact was &lt;em&gt;always&lt;/em&gt; hard to see and never obvious. I never appreciated that until actually talking to the people involved and growing older (and hopefully wiser).&lt;/p&gt;

&lt;p&gt;A software engineer doesn’t just produce code that runs once. Similarly, a journalist does not just type sentences; a lawyer does not just summarize documents; a doctor does not just match symptoms to conditions; a teacher does not just explain a topic.&lt;/p&gt;

&lt;p&gt;Most fields involve decisions, expertise and nuance. And of course there’s waste, internal politics, habit, personal and personnel flaws. The trick is knowing and differentiating why some wastage is justified because experts hit the failure mode that an outsider has not imagined yet.&lt;/p&gt;

&lt;p&gt;To me, this is the biggest concern with LLMs. LLMs make the outside view more seductive because they are &lt;em&gt;really&lt;/em&gt; good at producing artifacts.&lt;/p&gt;

&lt;p&gt;They can write a press release. They can generate a functional app. They can summarize a contract. They can draft an article. They can make a lesson plan. They can make mostly functional software.&lt;/p&gt;

&lt;p&gt;That is impressive.&lt;/p&gt;

&lt;p&gt;It also woos us into a bad conclusion: &lt;em&gt;if the output is easy to imitate, maybe the field was easier than we thought.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I am noticing this pattern in the AI industry.&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Everyone thinks AI can do everyone ELSE&amp;#39;S job. &lt;br /&gt;&lt;br /&gt;But not their own.&lt;/p&gt;&amp;mdash; Eric Jorgenson 📚 ☀️ (@EricJorgenson) &lt;a href=&quot;https://twitter.com/EricJorgenson/status/2012917724192657795?ref_src=twsrc%5Etfw&quot;&gt;January 18, 2026&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://twitter.com/EricJorgenson/status/2012917724192657795&quot;&gt;Eric Jorgenson on Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A journalist vibe codes an app and wonders how LLMs are going to revolutionize software engineering.&lt;/p&gt;

&lt;p&gt;A biologist asks an LLM for a press release and wonders how much communications work really requires.&lt;/p&gt;

&lt;p&gt;A software engineer watches an LLM summarize legal text and decides that lawyers are toast.&lt;/p&gt;

&lt;p&gt;I am not poking fun. It’s human to fall into this trap and underestimate the taste, maintenance, sourcing, accountability, timing, and the small decisions that separate acceptable work from good work and the judgement that separates good work from the great.&lt;/p&gt;

&lt;p&gt;I still want and support skepticism especially when it’s mixed with optimistic gumption. To the note of wastage above, some experts do hide behind complexity. Some fields protect bad norms. Some institutions deserve hard questions. Some work will be changed by LLMs in ways insiders do not want to admit. Blindspots are eveywhere.&lt;/p&gt;

&lt;p&gt;Yet, I want my skepticism to start with curiosity, especially when I am outside my field. I strive to start with: “What do they know that I cannot see yet?”&lt;/p&gt;

&lt;p&gt;That question &lt;a href=&quot;https://www.youtube.com/watch?v=RjfbvDXpFls&amp;amp;t=723s&quot;&gt;slows me down&lt;/a&gt;. It makes me ask why the work is shaped the way it is. It makes me more careful about calling something obsolete because I can now imitate one visible part of it.&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;Permit me to wax nostalgic about the early internet.&lt;/p&gt;

&lt;p&gt;The early internet gave me access to people who explained problems and solutions. Forums, blogs, mailing lists, early Twitter, random personal sites. People wrote down what they knew. They (usually)answered questions from strangers sans snark.&lt;/p&gt;

&lt;p&gt;That internet was never innocent. There was plenty of ego, cruelty and bad faith. I am not asking you to be polyannish. But, a lot of the culture I valued and luckily got to see was built around being &lt;em&gt;useful&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Over time, too much of online life shifted toward performance: Mock a weak claim; get rewarded. Write take down posts and earn kudos. I can admit that there is a morbid entertainment factor to it. I know I’ve rewarded such “hot takes” with both attention and support.&lt;/p&gt;

&lt;p&gt;However, I feel like we’ve taken that to its fanatical end. For whatever reason, today, slow explanations are branded boring; tarning anyone asking a sincere question as naive. We also reward these performances with attention, which is the new currency everyone’s seeking.&lt;/p&gt;

&lt;p&gt;Let me repeat, I am not immune to this pull of judging.&lt;/p&gt;

&lt;p&gt;A brief aside on judgement: A judgement means that one can &lt;em&gt;stop thinking about it&lt;/em&gt;. It means I’ve reached a conclusion. My brain can move on to another thing after a satisfying sharp line. It’s the &lt;em&gt;easy&lt;/em&gt; thing to do. And of course it’s natural to want to do easy things.&lt;/p&gt;

&lt;p&gt;So, I mustn’t forget cynicism has its own gullibility. It mistakes the least impressed person in the room for being the most right, instead of considering them the least generous.&lt;/p&gt;

&lt;p&gt;It might just be me getting old. I do not want to confuse those two again.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The people I trust most are rarely the fastest to dismiss. They are the people who make the room smarter. They ask good questions. They give context. They can be blunt without being cruel. They know how to say, “I do not know enough yet, help me understand…”&lt;/p&gt;

&lt;p&gt;I am lucky to have found people like that in past places of work and in life. I found them in the parts of early Twitter that still felt generous.&lt;/p&gt;

&lt;p&gt;They remain endlessly positive, hard to impress, direct and their criticism is pointed toward improving the work. They take care to not humiliate the person doing the work.&lt;/p&gt;

&lt;p&gt;That distinction matters to me.&lt;/p&gt;

&lt;p&gt;Today, I trust intelligence less on its own. Intelligence sans benevolence is a weapon. It overreaaches without humility. Intelligence often underappreciates the hidden human work.&lt;/p&gt;

&lt;p&gt;So, I think &lt;em&gt;helpfulness&lt;/em&gt; is the better signal.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;By helpfulness, I don’t mean politeness or niceness, which are more avoidant traits (trust me, I know). By helpfulness, I mean the habit of leaving things a little better than you found them.&lt;/p&gt;

&lt;p&gt;A meeting for a decision is a great example to help explain this more. Imagine someone just presented an argument for a key decision with some staholders in a room. And you think they missed a nuance that would help the room come to a decision.&lt;/p&gt;

&lt;p&gt;You will carefully choose your framing of the explanation. For example: you might say. I think Rob made an excellent presentation of the argument for us to come to a decison. Points x, y and z suggest this important nuance that will help us understand the tradeoffs of this decision. Thanks for highlighting them, Rob.&lt;/p&gt;

&lt;p&gt;The framing goes a long way to explain the nuance but passes the recognition to the person rather than call out your own helpfulness / intelligence. This is particularly important in high power dyamics situation.&lt;/p&gt;

&lt;p&gt;Or in the cae of 1:1s, it may mean naming a weak argument, or suggesting to someone they might be moving too fast.&lt;/p&gt;

&lt;p&gt;In group settings, it might mean asking questions that help with shared understanding of the context.&lt;/p&gt;

&lt;p&gt;It definitely means: refusing to reward a cruel joke even when the room enjoys it and standing up for thr person who’s feeling the humiliation.&lt;/p&gt;

&lt;p&gt;So, repair, clarity, better work, kindness.&lt;/p&gt;

&lt;p&gt;That is who I want around me. This is who I aim to be.&lt;/p&gt;

&lt;p&gt;I observe most interactions with this lens now.&lt;/p&gt;

&lt;p&gt;How do they talk about someone who’s not in the room? Are they careful / careless?&lt;/p&gt;

&lt;p&gt;How do they react when corrected? Do they become curious or defensive?&lt;/p&gt;

&lt;p&gt;How do they manage a situation when they have the higher power dynamic? Do they explain kindly?&lt;/p&gt;

&lt;p&gt;How do they wield power? Resposibly or do they get entitled?&lt;/p&gt;

&lt;p&gt;When they observe cruelty amongst peers? Do they join / cut it out?&lt;/p&gt;

&lt;p&gt;No one is perfect. I am certainly not and have had to learn through my own mistakes. I still vividly remember my power trip after being elected the school leader of the kindergarten through fifth graders. That’s a story for another time.&lt;/p&gt;

&lt;p&gt;My point is that patterns are observable and so is someone learning and improving. What people reward, excuse, and do when nobody (important) is watching tells a LOT about the person.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I want to surround myself with people who are curious, build, are skeptical without sneering, and making people small. All of this leads to making it &lt;em&gt;easier to tell the truth.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is what I’ve best appreciated in my favorite professional cultures. It’s easy to say, “I am wrong,” “I don’t know,” and hear “This is good, and this part still needs more work.” It’s what I practice in my own mentoring.&lt;/p&gt;

&lt;p&gt;Making admissions costly, causing people to posture, harden, pretend - those are places I want to avoid. Rewarding contempt is a certain path to misery.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Hence I naturally gravitate towards people who are and make me more honest, more curious, and more useful. If this resonates with you, I’d like to get to know you better. Connect with me. On &lt;a href=&quot;https://twitter.com/gurupanguji&quot;&gt;twitter&lt;/a&gt;, &lt;a href=&quot;https://mastodon.social/@gurupanguji&quot;&gt;mastodon&lt;/a&gt;, &lt;a href=&quot;https://www.threads.net/@gurupanguji&quot;&gt;threads&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/gurupanguji&quot;&gt;linkedin&lt;/a&gt; or &lt;a href=&quot;mailto:gurupanguji@gurupanguji.com&quot;&gt;email&lt;/a&gt;.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="opinions" /><category term="philosophy" /><category term="ramblings" /><category term="ai" /><category term="llms" /><category term="life" /><category term="work" /><category term="culture" /><category term="writing" /><summary type="html">I am human and I often waver between healthy skepticism and optimism about LLMs. I try to test claims, question demos and be honest about what breaks. And, I am also too quick to judge work I do not understand.</summary></entry><entry><title type="html">🔗 Google IO 2026 - Notes</title><link href="https://gurupanguji.com/blog/2026/05/20/google-io-2026-notes/" rel="alternate" type="text/html" title="🔗 Google IO 2026 - Notes" /><published>2026-05-20T12:00:00+00:00</published><updated>2026-05-20T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/20/google-io-2026-notes</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/20/google-io-2026-notes/">&lt;div class=&quot;gp-youtube-embed&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/wYSncx9zLIU&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=wYSncx9zLIU&quot;&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=wYSncx9zLIU&amp;amp;t=10312s&quot;&gt;Google I/O ‘26 Keynote&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just finished watching the I/O 2026 keynote. The key theme that I think Google was trying to land - and was successful at - was: Google is an artificial intelligence research &lt;em&gt;and development&lt;/em&gt; company. They are firing on all cylinders through the entire stack: from research and bare-metal through the products and its monetization. What’s more: they have two businesses that are accelerating as a result of AI: cloud and search (and other consumer products). Finally, there was a message that was becoming clear: everyone wants to collaborate with Google because they all see that they are delivering capabilities up and down the stack. Google’s become the “friendly” company again: They now have deals with Apple, Amazon, OpenAI, Walmart, and every other large corporation. The only ones who are still mad at google are publishing houses dependent on the ever decreasing search traffic.&lt;/p&gt;

&lt;h2 id=&quot;the-research-and-bare-metal-provides-google-with-cost-efficient-scale-thats-perfect-for-enterprises&quot;&gt;The research and bare-metal provides Google with cost efficient scale that’s perfect for enterprises&lt;/h2&gt;

&lt;p&gt;It starts with model research and bare metal (chips).&lt;/p&gt;

&lt;p&gt;For model-research, Google Deepmind researches both new models and improvements to said models. On the cutting edge, Google seems to both &lt;em&gt;bet&lt;/em&gt; and innovate on moving further away from multimodal models (current generation of models) to “world models.” Google Omni seems to be the class of models that is taking the frontier to a new place.&lt;/p&gt;

&lt;p&gt;This seems to also be the direction in which Yann LeCun also wants to bet on and not just the current LLMs. Demis seems to suggest that the LLMs and world models can both interact and make each other better. We are in the super early innings on this and this space needs to be closely watched.&lt;/p&gt;

&lt;p&gt;For bare-metal, Google highlighted TPU v8t and v8i - each designed for training and inference respectively. They highlighted that TPUs help them both achieve scale for large training and achieve incredible speed + scale for inference requirements, which are currently in the range of quadrillion tokens / month.&lt;/p&gt;

&lt;p&gt;Then came the announcement of the latest generation of their models - Gemini 3.5 Flash. The key announcement with Gemini 3.5 Flash was: frontier level intelligence (nearly as good as Opus 4.7 and GPT 5.5) but a &lt;em&gt;much&lt;/em&gt; faster model. &lt;mark&gt;This is an outcome of both model-research and bare-metal coming together. &lt;/mark&gt;&lt;/p&gt;

&lt;p&gt;They weren’t meekly hinting things. There was a clear message to enterprises: we have both the capacity and scale to cater to you while delivering more $ savings in token costs because we can.&lt;/p&gt;

&lt;h2 id=&quot;the-agentic-era-of-google&quot;&gt;the agentic era of Google&lt;/h2&gt;
&lt;p&gt;What followed next was a typical Google tell - it loves the technology - so much - to a fault. It started with how these models are great for agentic development versus start from what could it do. It announced a new version of Antigravity (2.0) with a fully rewritten antigravity-cli (for us TUI lovers), that takes advantage of 3.5Flash’s ability for longer time horizon work. They claimed that combined with the agent and harness, it can do multi-day work including complex tasks like building an operating system.[^1]&lt;/p&gt;

&lt;p&gt;It’s requesting that you be very bullish on these models and harnesses and highlighted the improvements in Google’s surfaces where these models can improve their services. Starting with:&lt;/p&gt;

&lt;h3 id=&quot;gemini-agents-for-everyone&quot;&gt;Gemini: Agents for everyone&lt;/h3&gt;
&lt;p&gt;The consumer surface - gemini app on the mobile operating systems and https://gemini.google.com/ . Apart from a flex that 3.5 flash is immediately available worldwide to 900M+ users, they are taking advantage of the agentic capabilities to announce an openclaw for every gemini user - &lt;a href=&quot;https://gemini.google/overview/agent/spark/&quot;&gt;Gemini Spark&lt;/a&gt;. It’s an always-on agent that starts with working atop your google data to monitor and provide you assistive capabilities. It seems like a nifty implementation of Openclaw that will make sense to most users - especially as it is particularly great interacting with voice.&lt;/p&gt;

&lt;p&gt;Again, the message here is: agents for everyone.&lt;/p&gt;

&lt;h3 id=&quot;search&quot;&gt;Search&lt;/h3&gt;
&lt;p&gt;Search announced that &lt;em&gt;AI mode is becoming Google Search&lt;/em&gt;. Personally, I think it might be okay as I’ve been increasingly liking AI mode as well as AI overviews. When the stakes are low, it’s near perfect. When the stakes are high, I do some additional clarifications to ensure that I am not caught with bad information. I think it’s yet another salvo against the kind of businesses that depend on google traffic to monetize. =([^2]&lt;/p&gt;

&lt;p&gt;Search also highlighted something that I thought was really cool: generative UI and long running agents that do the search for you with up to date information. I think this has some really useful utility. However, I don’t understand the arbitrary wall between Gemini Spark and Search agents. The closest I can think of is: some version of ability to use your data versus not / a potential experiment on running “free” versus “paid” agents. However, I am stretching and the explanation might just be: This is google PAs not talking to each other / waiting to see which has uptake.&lt;/p&gt;

&lt;p&gt;Google Shopping was an interesting set of announcements. I really liked the three pillars of innovation: &lt;a href=&quot;https://developers.googleblog.com/under-the-hood-universal-commerce-protocol-ucp/&quot;&gt;Unified Commerce Protocol&lt;/a&gt;, &lt;a href=&quot;https://cloud.google.com/blog/products/ai-machine-learning/announcing-agents-to-payments-ap2-protocol&quot;&gt;Agent Payments Protocol&lt;/a&gt; and &lt;a href=&quot;https://blog.google/products-and-platforms/products/shopping/google-shopping-cart/&quot;&gt;Universal Shopping Cart&lt;/a&gt;. The number of partners here were really interesting to see. It sends a clear message that they are back to their roots of we shall innovate with better technology and there’s a growing pie. We will see how long that continues.&lt;/p&gt;

&lt;h3 id=&quot;workspace&quot;&gt;Workspace&lt;/h3&gt;
&lt;p&gt;Agents and multi-modal models can bring some nifty innovations to Google Workspace also. Docs Live was a really cool demo of being able to use your voice to both dictate and apparently soon - edit and manage document writing. I am going to be very interested to see the adoption of this.&lt;/p&gt;

&lt;p&gt;p.s. that we still needs docs to be written - was an interesting shoehorning that I felt was uniquely Google. :)&lt;/p&gt;

&lt;h3 id=&quot;gemini---again&quot;&gt;Gemini - again.&lt;/h3&gt;
&lt;p&gt;This was an interesting quirk. Josh came back to highlight both some nifty UI improvements to gemini on mobile along with a more detailed demo of Spark. It’s going to be interesting to see how users will adopt Spark. I can think of this as both the most exciting announcement personally but also the hardest to communicate with people about &lt;em&gt;how&lt;/em&gt; to use this.&lt;/p&gt;

&lt;p&gt;The technology behind this is so interesting: they have a virtualized container running on the cloud for every user and an agent capable of running the latest models. Purely as a reference implementation for the incredible technologies, this is just 🤌.&lt;/p&gt;

&lt;p&gt;However, while Josh comes up with some interesting use-cases, i don’t think many users will naturally move to planning their block-party the way Josh does. :)&lt;/p&gt;

&lt;p&gt;However, this has now shifted from a technology -&amp;gt; a product and a marketing problem. The technology is damn impressive. However, we also get to the part where google usually flubs.&lt;/p&gt;

&lt;h4 id=&quot;daily-brief&quot;&gt;Daily brief&lt;/h4&gt;
&lt;p&gt;Seems to be &lt;a href=&quot;https://labs.google.com/cc/&quot;&gt;CC&lt;/a&gt; in gemini. And I am here for it as I’ve tried to setup scheduled actions in gemini to make that happen for me but failed.&lt;/p&gt;

&lt;h4 id=&quot;gemini-on-mac-demo&quot;&gt;Gemini on Mac demo&lt;/h4&gt;
&lt;p&gt;This was a really useful demo of the raw capabilities of the new model that combined with computer use has some really cool capabilities. I am still not convinced that I am going to be a mac app user. But, this specific demo is making me rethink given this + the fantastic gemini capability to understand my accent.&lt;/p&gt;

&lt;h3 id=&quot;google-for-creators--generative-media&quot;&gt;Google for Creators / Generative media&lt;/h3&gt;
&lt;p&gt;These didn’t hold my attention as I am likely not the audience. I took away notes that summarized as: multimodal + world models = more control over audio, images and video. This also means that we can likely have some richer output from the LLMs over time. Something to keep an eye on.&lt;/p&gt;

&lt;p&gt;One note: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Google Pics&lt;/code&gt; is a bad name. I really don’t get why you would even attempt to sully that branding associated with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Google Photos&lt;/code&gt; and is mostly beloved.&lt;/p&gt;

&lt;p&gt;Google’s naming isn’t great but this specific one is going to backfire.&lt;/p&gt;

&lt;h2 id=&quot;android-xr&quot;&gt;Android XR&lt;/h2&gt;
&lt;p&gt;Audio glasses are interesting, but again I am not the audience.&lt;/p&gt;

&lt;h2 id=&quot;closing-aka-gemini-for-science-and-some-agi-peppering&quot;&gt;Closing aka Gemini for Science and some AGI peppering&lt;/h2&gt;
&lt;p&gt;AI can improve science, not just LLMs, but different other types of models, including my favorite weather prediction model. Personally, I think the AGI and responsibility narrative is &lt;em&gt;required&lt;/em&gt; for someone at the scale of Google. Yet, it just felt like &lt;em&gt;talk&lt;/em&gt;. I think these initiatives might actually do more good for the world, however, it still feels like an also-ran.&lt;/p&gt;

&lt;h2 id=&quot;general-notes-on-presentation&quot;&gt;General notes on presentation&lt;/h2&gt;
&lt;p&gt;Like I said in the intro, this year Google had a &lt;em&gt;clear message&lt;/em&gt; and it showed. There was much less meandering (modulo Android XR. It’s easy to be a critic and &lt;em&gt;way way&lt;/em&gt; harder to setup an event of this sort. So, kudos to the Google I/O team. Y’all delivered one of the best keynotes of the AI era.&lt;/p&gt;

&lt;p&gt;I am curious what &lt;a href=&quot;https://stratechery.com/&quot;&gt;Ben Thompson&lt;/a&gt; thinks about all this and I will wait to see his (likely tending negative) take on Google I/O tomorrow. It’s also clear that you will see our biases here. =)&lt;/p&gt;

&lt;p&gt;My only tip for next year would be: continue that message of vertical integration and choose to lead with: here are some real consumer benefits - and look at this incredible tech stack that we developed to make it happen. And developers: y’all can take as much of this stack at any layer you want to help you achieve your goals too.&lt;/p&gt;

&lt;p&gt;I still remember the panic that was set when OpenAI unveiled ChatGPT and everyone ruled out Google. However, it looks like the company is back in action, leading with technology and nerding out.&lt;/p&gt;

&lt;p&gt;At least from the outside, it looks like a company that’s got it together and leveraging its strengths to deliver immense value to users and shsreholders. Fantastic job, onward and upward.&lt;/p&gt;

&lt;p&gt;P.S: I specifically haven’t talked about antigravity-cli versus gemini-cli here. I want to have the opportunity to evaluate the new cli before providing my thoughts on it. If I &lt;em&gt;have&lt;/em&gt; to guess, my worry is that this is a path to lowering the number of credits. Especially as news is starting to come that &lt;a href=&quot;https://simonwillison.net/2026/May/19/gemini-35-flash/&quot;&gt;3.5 Flash is nearly as expensive as 3.1-pro&lt;/a&gt; even as Google’s making that the default model everywhere.&lt;/p&gt;

&lt;p&gt;P.P.S: I also have a suspicion that Google is increasingly thinking of itself as a free + ads / pay a subcription amount for its AI offerings. I will expand on that hypothesis in a follow up post.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="ramblings" /><category term="google" /><category term="ai" /><category term="tech" /><category term="clippings" /><category term="external" /><category term="google" /><category term="io" /><category term="2026" /><category term="youtube" /><summary type="html"></summary></entry><entry><title type="html">🔗 Programming Still Sucks.</title><link href="https://gurupanguji.com/blog/2026/05/20/programming-still-sucks/" rel="alternate" type="text/html" title="🔗 Programming Still Sucks." /><published>2026-05-20T12:00:00+00:00</published><updated>2026-05-20T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/20/programming-still-sucks</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/20/programming-still-sucks/">&lt;blockquote&gt;
  &lt;p&gt;The Guy at the party is still waiting for an answer. I’m too drunk now to lie. &lt;mark&gt;I tell him: AI didn&apos;t take our jobs. Greed did. Same greed that moved factories to Bangladesh and keeps slaves in cobalt mines in the Congo, wearing a new mask.&lt;/mark&gt; Tell the nephew to do something else. Anything. It won’t save him either, but at least he won’t have to pretend the thing destroying his life is a robot.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.stvn.sh/writing/programming-still-sucks-fqffhyp&quot;&gt;Programming Still Sucks.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have 10 mins, go and read the whole thing! While I don’t hold the same iceberg ahead mentality, it’s a beautiful piece of writing that nails the über point.&lt;/p&gt;

&lt;p&gt;AI is not taking the jobs, &lt;em&gt;capitalism&lt;/em&gt; is. It doesn’t take prisoners and there are going to be some tough times ahead. Weirdly, the world might still end up “better.”&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="opinion" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><summary type="html">The Guy at the party is still waiting for an answer. I’m too drunk now to lie. I tell him: AI didn&apos;t take our jobs. Greed did. Same greed that moved factories to Bangladesh and keeps slaves in cobalt mines in the Congo, wearing a new mask. Tell the nephew to do something else. Anything. It won’t save him either, but at least he won’t have to pretend the thing destroying his life is a robot.</summary></entry><entry><title type="html">🔗 A desktop made for one</title><link href="https://gurupanguji.com/blog/2026/05/19/a-desktop-made-for-one/" rel="alternate" type="text/html" title="🔗 A desktop made for one" /><published>2026-05-19T12:00:00+00:00</published><updated>2026-05-19T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/19/a-desktop-made-for-one</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/19/a-desktop-made-for-one/">&lt;blockquote&gt;
  &lt;p&gt;If you’ve ever caught yourself thinking “I wish my editor / file manager / status bar / shell just did this one thing differently” and you’ve been told the answer is to write a plugin, learn an obscure config language, or accept the way it is, then consider that the third option is more available than it used to be: Build Your Own Software (BYOS).&lt;/p&gt;

  &lt;p&gt;You probably won’t replace your whole desktop. I didn’t plan to either. But the satisfaction of having even one tool in your daily workflow that fits you exactly is worth a weekend.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://isene.org/2026/05/Audience-of-One.html&quot;&gt;A desktop made for one&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;This captures what the current LLM-assisted coding is unleashing into the world - &lt;em&gt;personal&lt;/em&gt; software. From the era of personal computers, where you did write your own software -&amp;gt; software being written by a few -&amp;gt; a potential world where software can be written by &lt;em&gt;any&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This is yet another reason why malleable software is important.&lt;/p&gt;

&lt;p&gt;Developers and opinionated people (sorry) will continue to lead the way. I’ve never shied away from tweaking a plugin, writing a chrome extension to make things work &lt;em&gt;just&lt;/em&gt; the way I like it. So, I am so excited at the million flowers blooming everywhere and people choosing to share them.&lt;/p&gt;

&lt;p&gt;p.s. I also love that we are back in the golden age of TUIs again (or is it just my bubble?).&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="ramblings" /><category term="clippings" /><category term="opinion" /><category term="personal-software" /><category term="byos" /><summary type="html">If you’ve ever caught yourself thinking “I wish my editor / file manager / status bar / shell just did this one thing differently” and you’ve been told the answer is to write a plugin, learn an obscure config language, or accept the way it is, then consider that the third option is more available than it used to be: Build Your Own Software (BYOS). You probably won’t replace your whole desktop. I didn’t plan to either. But the satisfaction of having even one tool in your daily workflow that fits you exactly is worth a weekend.</summary></entry><entry><title type="html">🔗 Aesthetic-Usability Effect</title><link href="https://gurupanguji.com/blog/2026/05/18/aesthetic-usability-effect/" rel="alternate" type="text/html" title="🔗 Aesthetic-Usability Effect" /><published>2026-05-18T12:00:00+00:00</published><updated>2026-05-18T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/18/aesthetic-usability-effect</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/18/aesthetic-usability-effect/">&lt;blockquote&gt;
  &lt;p&gt;Laws of UX&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://lawsofux.com/&quot;&gt;Aesthetic-Usability Effect&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a wonderful list of things to keep in mind when designing products. Its presentation itself can be a case study.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="design" /><category term="clippings" /><category term="opinion" /><category term="ux" /><summary type="html">Laws of UX Source: Aesthetic-Usability Effect</summary></entry><entry><title type="html">🔗 Experiment: I got Obsidian running in a regular browser — no Electron, no fork, original code unmodified</title><link href="https://gurupanguji.com/blog/2026/05/17/experiment-obsidian-in-browser/" rel="alternate" type="text/html" title="🔗 Experiment: I got Obsidian running in a regular browser — no Electron, no fork, original code unmodified" /><published>2026-05-17T12:00:00+00:00</published><updated>2026-05-17T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/17/experiment-obsidian-in-browser</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/17/experiment-obsidian-in-browser/">&lt;blockquote&gt;
  &lt;p&gt;&lt;img src=&quot;https://preview.redd.it/experiment-i-got-obsidian-running-in-a-regular-browser-no-v0-m947nx36710h1.png?width=1056&amp;amp;format=png&amp;amp;auto=webp&amp;amp;s=e8c35dbd247553763d5b51e79facb1a23b49f3ac&quot; alt=&quot;r/ObsidianMD - Run Obsidian in your browser!&quot; /&gt;&lt;/p&gt;

  &lt;p&gt;I built with Claude Code a proof-of-concept that runs Obsidian’s original renderer (app.js) in a standard browser, without changing a single byte of its code.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; Instead of forking Obsidian, the approach is the opposite — every Node.js and Electron API that Obsidian expects (fs, ipcRenderer, path, crypto, etc.) is replaced with lightweight shims that translate everything into regular HTTP requests. Obsidian doesn’t know it’s not running in Electron.
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href=&quot;https://github.com/MusiCode1/obsidian-web&quot;&gt;https://github.com/MusiCode1/obsidian-web&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.reddit.com/r/ObsidianMD/comments/1t7tdkf/experiment_i_got_obsidian_running_in_a_regular/&quot;&gt;Experiment: I got Obsidian running in a regular browser — no Electron, no fork, original code unmodified&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;This is a neat use of tokens. And fwiw, it works decently well. I am looking into if I can use this as a way to host this on a homelab to be accessed over the browser.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="ramblings" /><category term="clippings" /><category term="obsidian" /><category term="browser" /><summary type="html">I built with Claude Code a proof-of-concept that runs Obsidian’s original renderer (app.js) in a standard browser, without changing a single byte of its code. How it works: Instead of forking Obsidian, the approach is the opposite — every Node.js and Electron API that Obsidian expects (fs, ipcRenderer, path, crypto, etc.) is replaced with lightweight shims that translate everything into regular HTTP requests. Obsidian doesn’t know it’s not running in Electron. Source code: https://github.com/MusiCode1/obsidian-web</summary></entry><entry><title type="html">🔗 always bet on text</title><link href="https://gurupanguji.com/blog/2026/05/16/always-bet-on-text/" rel="alternate" type="text/html" title="🔗 always bet on text" /><published>2026-05-16T12:00:00+00:00</published><updated>2026-05-16T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/16/always-bet-on-text</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/16/always-bet-on-text/">&lt;blockquote&gt;
  &lt;p&gt;Don’t get me wrong, I like me some illustrations, photos, movies and music.&lt;/p&gt;

  &lt;p&gt;But text wins by a mile. Text is everything. My thoughts on this are quite absolute: &lt;em&gt;text is the most powerful, useful, effective communication technology ever&lt;/em&gt;, period.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://graydon2.dreamwidth.org/193447.html&quot;&gt;always bet on text&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Text can convey ideas with a precisely controlled level of ambiguity and precision, implied context and elaborated content, unmatched by anything else. It is not a coincidence that all of literature and poetry, history and philosophy, mathematics, logic, programming and engineering rely on textual encodings for their ideas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://graydon2.dreamwidth.org/193447.html&quot;&gt;graydon2 - always bet on text&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Text is the most socially useful communication technology. It works well in 1:1, 1:N, and M:N modes. It can be indexed and searched efficiently, even by hand. It can be translated. It can be produced and consumed at variable speeds. It is asynchronous. It can be compared, diffed, clustered, corrected, summarized and filtered algorithmically. It permits multiparty editing. It permits branching conversations, lurking, annotation, quoting, reviewing, summarizing, structured responses, exegesis, even fan fic. The breadth, scale and depth of ways people use text is unmatched by anything. There is no equivalent in any other communication technology for the social, communicative, cognitive and reflective complexity of a library full of books or an internet full of postings. Nothing else comes close.&lt;/p&gt;

  &lt;p&gt;So this is my stance on text: always pick text first. As my old boss might have said: always bet on text. If you can use text for something, use it. It will very seldom let you down.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://graydon2.dreamwidth.org/193447.html&quot;&gt;graydon2 - always bet on text&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mostly agree with graydon2. However, I must acknowledge my bias as someone who fundamentally engages with text. It’s also prescient given how LLMs are currently bringing a resurgence of text.&lt;/p&gt;

&lt;p&gt;That said, I want to call out that text while powerful and maybe even &lt;em&gt;efficient&lt;/em&gt; is not the most engaging. It has a fundamentally limited audience. The case in point is how much more popular instagram, podcasts, youtube, netflix and tiktok are compared to any text based network.&lt;/p&gt;

&lt;p&gt;There’s something to be said that text is malleable and precise. However, it’s not nearly as engaging as audio / video.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="opinions" /><category term="ramblings" /><category term="technology" /><category term="clippings" /><category term="external" /><category term="opinion" /><category term="quotes" /><category term="text" /><category term="writing" /><category term="communication" /><category term="llms" /><summary type="html">Don’t get me wrong, I like me some illustrations, photos, movies and music. But text wins by a mile. Text is everything. My thoughts on this are quite absolute: text is the most powerful, useful, effective communication technology ever, period.</summary></entry><entry><title type="html">🔗 Writers are fleeing the Substack Tax</title><link href="https://gurupanguji.com/blog/2026/05/15/writers-are-fleeing-the-substack-tax/" rel="alternate" type="text/html" title="🔗 Writers are fleeing the Substack Tax" /><published>2026-05-15T12:00:00+00:00</published><updated>2026-05-15T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/15/writers-are-fleeing-the-substack-tax</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/15/writers-are-fleeing-the-substack-tax/">&lt;blockquote&gt;
  &lt;p&gt;Sean Highkin, the creator of the NBA-focused publication &lt;em&gt;The Rose Garden Report&lt;/em&gt;, tells &lt;em&gt;The Verg&lt;/em&gt;e that he makes “significantly more money” after switching from Substack to Ghost last April. “When I first joined up, [Substack] gave me a big push and featured me and funneled a lot of traffic to me, which led to a good amount of growth,” Highkin says. “But once I wasn’t one of the ‘new recruited talent’ they could tout, they stopped featuring me and I saw my growth stagnate.” Highkin now pays $2,052 per year using Ghost and an add-on called Outpost, compared to $4,968 per year on Substack. &lt;em&gt;The Rose Garden Report&lt;/em&gt;’s subscriber base has grown 22 percent since the end of 2024, Highkin says.
…
It’s a similar story for creators switching to other platforms like Beehiiv. Matt Brown, the creator of Extra Points, which currently has 71,000 subscribers, moved away from Substack in 2021 and eventually landed on Beehiiv, where he saves thousands of dollars per year. “Given the size of my publication right now, I would need to pay Substack over $25,000 a year in fees,” Brown says. “I pay Beehiiv around $3,000-ish in fees.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.theverge.com/tech/927294/substack-tax-ghost-beehiiv&quot;&gt;Writers are fleeing the Substack Tax&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Competition is good.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;That’s because Substack owners can only export subscribers — not followers — when they leave the platform. Substack cofounder &lt;a href=&quot;https://substack.com/@hamish/note/c-183199098&quot;&gt;Hamish McKenzie pushes back&lt;/a&gt; on claims that the platform is a “walled garden,” saying “no walled garden would let you export your mailing list, content, and even payment relationships at any moment.” But he also admits that this portability doesn’t extend to followers, saying Notes “is a growth engine that helps you get subscribers, which you can then export.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To Substack’s credit, from the get go, before they introduced “followers,” email subscribers were fully exportable. Substack itself faced the price of platform lock-in when twitter de-ranked external links. That led them to invest in Substack notes…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Substack also invests heavily in building out its own discovery and recommendation features, and while that may help some creators build an audience, it adds &lt;a href=&quot;https://marinabrox.substack.com/p/why-im-done-with-substack-notes&quot;&gt;more pressure&lt;/a&gt; to participate in &lt;a href=&quot;https://www.theverge.com/2023/4/11/23677946/substack-notes-twitter-throttled-blocked-links&quot;&gt;writing tweet-style “Notes”&lt;/a&gt; to show up in a user’s algorithmic feed. Users who “follow” a writer through the Notes feature aren’t actually subscribing to their newsletter, either. This might benefit Substack’s engagement, but it’s only a plus for writers if they get a new subscriber out of it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Any system that’s tied to a cut of revenue is motivated to chase the highest revenue and / or increase that take rate over time. As a venture funded startup in a world where their content is both increasingly clanker-slop and clanker-input, I am not bullish on substack, the place for “high-quality reading and writing.”&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Platformer&lt;/em&gt; creator Casey Newton, &lt;a href=&quot;https://www.theverge.com/2024/2/5/24059524/platformer-casey-newton-substack-moderation-email-newsletters-media-layoffs&quot;&gt;who left Substack in 2024&lt;/a&gt;, says that while the publication is saving money on Ghost, “the more important thing is that we have a home on the open web that we control, and whatever anti-creator changes Substack is forced to make in the future to live up to its valuation we won’t be affected by.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The indie-web itself is thriving. However, distribution challenges are &lt;em&gt;very real.&lt;/em&gt; The solution is to understand why you are writing and how to set yourself up for success in your goals.&lt;/p&gt;

&lt;p&gt;If your goal is massive distribution you have to leverage these platforms in someway. It’s not lost on me that &lt;em&gt;every recently successful “writer”&lt;/em&gt; became successful in substack and then chose to export that base elsewhere.&lt;/p&gt;

&lt;p&gt;The only exceptions are the old school web writers - like Ben Thomson who were very clear on who they were.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="opinions" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><category term="substack" /><summary type="html">Sean Highkin, the creator of the NBA-focused publication The Rose Garden Report, tells The Verge that he makes “significantly more money” after switching from Substack to Ghost last April. “When I first joined up, [Substack] gave me a big push and featured me and funneled a lot of traffic to me, which led to a good amount of growth,” Highkin says. “But once I wasn’t one of the ‘new recruited talent’ they could tout, they stopped featuring me and I saw my growth stagnate.” Highkin now pays $2,052 per year using Ghost and an add-on called Outpost, compared to $4,968 per year on Substack. The Rose Garden Report’s subscriber base has grown 22 percent since the end of 2024, Highkin says. … It’s a similar story for creators switching to other platforms like Beehiiv. Matt Brown, the creator of Extra Points, which currently has 71,000 subscribers, moved away from Substack in 2021 and eventually landed on Beehiiv, where he saves thousands of dollars per year. “Given the size of my publication right now, I would need to pay Substack over $25,000 a year in fees,” Brown says. “I pay Beehiiv around $3,000-ish in fees.”</summary></entry><entry><title type="html">🔗 Apple 0-dayed Safari on macOS Sequoia and Sonoma</title><link href="https://gurupanguji.com/blog/2026/05/14/apple-0-dayed-safari-on-macos-sequoia-and-sonoma/" rel="alternate" type="text/html" title="🔗 Apple 0-dayed Safari on macOS Sequoia and Sonoma" /><published>2026-05-14T12:00:00+00:00</published><updated>2026-05-14T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/14/apple-0-dayed-safari-on-macos-sequoia-and-sonoma</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/14/apple-0-dayed-safari-on-macos-sequoia-and-sonoma/">&lt;blockquote&gt;
  &lt;p&gt;Here’s the catch, &lt;a href=&quot;https://mjtsai.com/blog/2026/05/12/ios-18-7-9-and-ipados-18-7-9/&quot;&gt;as noted by Michael Tsai&lt;/a&gt;:&lt;/p&gt;

  &lt;p&gt;After a brief &lt;a href=&quot;https://mjtsai.com/blog/2026/04/02/ios-18-7-7-and-ipados-18-7-7/&quot;&gt;reprieve&lt;/a&gt;, Apple seems to have gone back to the policy of &lt;a href=&quot;https://mjtsai.com/blog/2025/12/12/ios-26-2/&quot;&gt;iOS 18.7.3&lt;/a&gt;, where you can only get iOS 18.7.9 if your phone is not capable of running iOS 26.&lt;/p&gt;

  &lt;p&gt;In other words, Apple’s security updates on iOS are passive-aggressive, forcing you to update from iOS 18 to iOS 26 on pain of affliction with 0-day vulnerabilities. Cynically, we might wonder whether Apple is withholding Safari 26.5 on macOS for the same reason, to “encourage” those of us who hate Liquid Glass to install macOS Tahoe anyway. We’ve already seen how Apple &lt;a href=&quot;https://daringfireball.net/2025/11/software_update_tahoe_confusing&quot; title=&quot;The Software Update UI for Upgrading to MacOS 26 Tahoe Is Needlessly Confusing&quot;&gt;tricks users into installing Tahoe&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://lapcatsoftware.com/articles/2026/5/2.html&quot;&gt;Apple 0-dayed Safari on macOS Sequoia and Sonoma&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Having worked at large companies, I want to say that the answer is rarely strategic, but far more tactical. They likely discovered a late breaking bug that would cause Safari on Mac OS to get delayed. And rather than delay the entire series of operating systems as a result, they decided to release everything else.&lt;/p&gt;

&lt;p&gt;The conversation would have gone something like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Safari TL: discovered a late breaking issue that will delay Safari 26.5&lt;/li&gt;
  &lt;li&gt;Release manager: Let’s call a meeting with the approvers and come to a decision&lt;/li&gt;
  &lt;li&gt;…&lt;/li&gt;
  &lt;li&gt;Approval meeting: Release manager - we need to come to a decision on whether we should delay 26.5 releases as a result of mac os safari bug
    &lt;ul&gt;
      &lt;li&gt;Mac OS: i want to hear what others have to think&lt;/li&gt;
      &lt;li&gt;iOS: 👎 - doesn’t affect iOS and far more iOS users compared to Mac OS&lt;/li&gt;
      &lt;li&gt;Mac OS: you’re right. but it leaves non 26 mac os users vulnerable to attacks.&lt;/li&gt;
      &lt;li&gt;Release manager: how many non Tahoe mac os users are there? How long before we can update and fix?&lt;/li&gt;
      &lt;li&gt;Mac OS: single to double digit % but significantly less than even 20%. Takes about a week - of course no guarantees.&lt;/li&gt;
      &lt;li&gt;Release manager: what’s the severity of the issue?&lt;/li&gt;
      &lt;li&gt;Mac OS: It’s a complex attack. Details&lt;/li&gt;
      &lt;li&gt;Release manager: proposeal - how about we release everything and do everything necessary to not delay for more than a week given the exposure time and the surface area seems limited.&lt;/li&gt;
      &lt;li&gt;Everyone: Okay&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that there was no malice. It’s more to do with the good of the many. I also don’t mean to downplay these are not serious discussions and decisions. However, I am also putting it in perspective that it doesn’t have to be a cynical - &lt;em&gt;We shall destroy the Tahoe community&lt;/em&gt; decision.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Update: 2026-05-14: &lt;a href=&quot;https://developer.apple.com/documentation/safari-release-notes/safari-26_5-release-notes&quot;&gt;Safari 26.5 now released&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="technology" /><category term="apple" /><category term="clippings" /><category term="security" /><category term="apple" /><category term="macos" /><category term="safari" /><category term="opinion" /><summary type="html">Here’s the catch, as noted by Michael Tsai: After a brief reprieve, Apple seems to have gone back to the policy of iOS 18.7.3, where you can only get iOS 18.7.9 if your phone is not capable of running iOS 26. In other words, Apple’s security updates on iOS are passive-aggressive, forcing you to update from iOS 18 to iOS 26 on pain of affliction with 0-day vulnerabilities. Cynically, we might wonder whether Apple is withholding Safari 26.5 on macOS for the same reason, to “encourage” those of us who hate Liquid Glass to install macOS Tahoe anyway. We’ve already seen how Apple tricks users into installing Tahoe.</summary></entry><entry><title type="html">🔗 The Missing GitHub Status Page</title><link href="https://gurupanguji.com/blog/2026/05/14/the-missing-github-status-page/" rel="alternate" type="text/html" title="🔗 The Missing GitHub Status Page" /><published>2026-05-14T12:00:00+00:00</published><updated>2026-05-14T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/14/the-missing-github-status-page</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/14/the-missing-github-status-page/">&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;https://mrshu.github.io/github-statuses/#about&quot;&gt;Why is this page ‘missing’? Read about the mirror →&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://mrshu.github.io/github-statuses/&quot;&gt;The Missing GitHub Status Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I didn’t realize the github issues were &lt;em&gt;this serious&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;People I follow and respect are moving away from github:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jonashietala.se/blog/2026/04/28/from_github_to_codebergforgejo/&quot;&gt;From Github to Codeberg/Forgejo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lucumr.pocoo.org/2026/4/28/before-github/&quot;&gt;Armin’s Before Github post&lt;/a&gt;
      - as a response to &lt;a href=&quot;https://mitchellh.com/&quot;&gt;Mitchell Hashimoto&lt;/a&gt;’s &lt;a href=&quot;https://mitchellh.com/writing/ghostty-leaving-github&quot;&gt;ghostty moving away from github&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dbushell.com/2026/04/29/github-is-sinking/&quot;&gt;dbushell rootcausing it to Microsoft ownership&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Personally, I think similar to Google and Chrome, I think Microsoft has the &lt;em&gt;right intention&lt;/em&gt; when it comes to Github ownership. Chrome was run by good eggs - Linus, Ben Goodger, Sundar. Idk its current state even if I have tremendous respect for some folks fighting the good fight there - Parisa, Dale Curtis, Jim Bankoski et al.&lt;/p&gt;

&lt;p&gt;Similarly, github also used to be filled with good eggs although, like chrome, many have since departed on to do other things.&lt;/p&gt;

&lt;p&gt;And much like &lt;a href=&quot;https://helium.computer&quot;&gt;Helium&lt;/a&gt;, my current hedge against chrome, I am looking for optionality for my github repos.&lt;/p&gt;

&lt;p&gt;Like other people, codeberg is likely where public repos will live. I am still figuring out if a vps, my own private homelab or something else should be where my private repos live.&lt;/p&gt;

&lt;p&gt;The world will lose out on a valuable piece of infrastructure if github.com goes down as a result of clanker slop.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="opinions" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="opinion" /><category term="github" /><summary type="html">Why is this page ‘missing’? Read about the mirror →</summary></entry><entry><title type="html">gemini-cli updates</title><link href="https://gurupanguji.com/blog/2026/05/13/gemini-cli-updates/" rel="alternate" type="text/html" title="gemini-cli updates" /><published>2026-05-13T12:00:00+00:00</published><updated>2026-05-13T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/13/gemini-cli-updates</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/13/gemini-cli-updates/">&lt;p&gt;I got unbanned from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini-cli&lt;/code&gt; on May 8, 2026. I’d not been following the updates to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini-cli&lt;/code&gt; since the ban - a total of almost ~4 weeks. During that time, it looks like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini-cli&lt;/code&gt; has gotten some nice updates to itself. Here are a few that are noteworthy:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Plan Model Routing: when enabled allows the harness to automatically choose a better model&lt;/li&gt;
  &lt;li&gt;Model seems to default to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;3.1-flash-preview&lt;/code&gt; to be the primary agent model&lt;/li&gt;
  &lt;li&gt;Auto theme switching to try and adjust to the terminal background color. It’s not perfect but it’s at least better than having to manually toggle it every time. You can decrease &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;terminal backgroud polling interval&lt;/code&gt; but it seems to adjust within a min by default&lt;/li&gt;
  &lt;li&gt;Use Alternate Screen Buffer is much better to preserve the terminal state before running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;New &lt;a href=&quot;https://zenn.dev/mizchi/articles/react-ink-renderer-for-ai-age?locale=en&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ink&lt;/code&gt;&lt;/a&gt; render process for the UI&lt;/li&gt;
  &lt;li&gt;Incremental Rendering can now be toggled - MAJOR improvements to flickering in the TUI. Kudos &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini-cli&lt;/code&gt; team - this was a MUCH needed improvement&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overall, I want to say that I still prefer the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini&lt;/code&gt; models because they jive with how I think. And now that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini-cli&lt;/code&gt; is now accessible again, the total number of frontier cloud tokens have also gone up.&lt;/p&gt;

&lt;p&gt;My deep dive into local models still prove out value. I’ve now also figured out how to hot-swap between &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemma4&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;qwen3.6&lt;/code&gt; as needed for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pi.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Solid set of improvements continue further tinkering.&lt;/p&gt;</content><author><name></name></author><category term="technology" /><category term="ramblings" /><category term="gemini-cli" /><category term="updates" /><category term="cli" /><category term="ai" /><category term="terminal" /><summary type="html">I got unbanned from gemini-cli on May 8, 2026. I’d not been following the updates to gemini-cli since the ban - a total of almost ~4 weeks. During that time, it looks like gemini-cli has gotten some nice updates to itself. Here are a few that are noteworthy:</summary></entry><entry><title type="html">🔗 Google releases new 3D emoji for Android</title><link href="https://gurupanguji.com/blog/2026/05/13/google-releases-new-3d-emoji-for-android/" rel="alternate" type="text/html" title="🔗 Google releases new 3D emoji for Android" /><published>2026-05-13T12:00:00+00:00</published><updated>2026-05-13T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/13/google-releases-new-3d-emoji-for-android</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/13/google-releases-new-3d-emoji-for-android/">&lt;blockquote&gt;
  &lt;p&gt;The way we communicate is constantly evolving and our emoji reflect that. From our beloved innocent blob emoji of the 2010s to Noto 3D, the new emoji collection we announced today, emoji are the universal language of our digital lives and they’ve never felt more alive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://blog.google/products-and-platforms/platforms/android/noto-3d-emoji/&quot;&gt;Express yourself with our new 3D emoji.&lt;/a&gt;&lt;/p&gt;

&lt;video controls=&quot;&quot; width=&quot;100%&quot; poster=&quot;https://storage.googleapis.com/gweb-uniblog-publish-prod/original_videos/Emoji_wave_v02.mp4#t=0.001&quot;&gt;
  &lt;source src=&quot;https://storage.googleapis.com/gweb-uniblog-publish-prod/original_videos/Emoji_wave_v02.mp4#t=0.001&quot; type=&quot;video/mp4&quot; /&gt;
  Your browser does not support the video tag.
&lt;/video&gt;

&lt;p&gt;Initial reaction is that I am not a fan. Similar to the updates to Android 16 emoji. I like &lt;em&gt;flat&lt;/em&gt; emoji better. I also still miss &lt;a href=&quot;https://emojipedia.org/blob-moji/&quot;&gt;“blob”moji&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;tenor-gif-embed&quot; data-postid=&quot;975489253273843974&quot; data-share-method=&quot;host&quot; data-aspect-ratio=&quot;1.74126&quot; data-width=&quot;100%&quot;&gt;&lt;a href=&quot;https://tenor.com/view/nope-gif-975489253273843974&quot;&gt;Nope GIF&lt;/a&gt;from &lt;a href=&quot;https://tenor.com/search/nope-gifs&quot;&gt;Nope GIFs&lt;/a&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot; async=&quot;&quot; src=&quot;https://tenor.com/embed.js&quot;&gt;&lt;/script&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><category term="emoji" /><category term="design" /><category term="google" /><summary type="html">The way we communicate is constantly evolving and our emoji reflect that. From our beloved innocent blob emoji of the 2010s to Noto 3D, the new emoji collection we announced today, emoji are the universal language of our digital lives and they’ve never felt more alive.</summary></entry><entry><title type="html">🔗 Why the heck are we still using Markdown??</title><link href="https://gurupanguji.com/blog/2026/05/12/why-the-heck-are-we-still-using-markdown/" rel="alternate" type="text/html" title="🔗 Why the heck are we still using Markdown??" /><published>2026-05-12T19:00:00+00:00</published><updated>2026-05-12T19:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/12/why-the-heck-are-we-still-using-markdown</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/12/why-the-heck-are-we-still-using-markdown/">&lt;blockquote&gt;
  &lt;p&gt;This language is literally the C++ of markup languages. Nearly everything can be done in 2 different ways which some of them might allow XSS and somehow leak memory in html.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://bgslabs.org/blog/why-are-we-using-markdown/&quot;&gt;Why the heck are we still using Markdown??&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a delightful read that treats markdown &lt;em&gt;far too seriously&lt;/em&gt;, which is what makes the writing genuinely funny.&lt;/p&gt;

&lt;p&gt;Markdown has a special place in my heart and a special place within the nerdy / developer community because of its inherent internet-native syntax. Markdown started as a personal project by &lt;a href=&quot;https://daringfireball.net&quot;&gt;John Gruber&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Aaron_Swartz&quot;&gt;Aaron Swartz&lt;/a&gt; to quickly write something that can be transliterated to html. Original post: &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;Markdown on Daring Fireball&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So: markdown was NOT intended as a rich text &lt;em&gt;replacement.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It was NOT intended as a programming language.&lt;/p&gt;

&lt;p&gt;It was not even intended as a &lt;em&gt;markup language.&lt;/em&gt; The cheeky name is a reflection of that.&lt;/p&gt;

&lt;p&gt;p.s. the early internet days really were some lovely names - copyleft, markdown etc.&lt;/p&gt;

&lt;p&gt;However, markdown, or more accurately, the markdown syntax has since been widely adopted by the internet and nerds in various places.&lt;/p&gt;

&lt;p&gt;The latest adoption is within the LLM community, which are filled with nerds who had to write a lot and also deal with text tokens a lot. So, I am not surprised that they first went with markdown syntax.&lt;/p&gt;

&lt;p&gt;However, markdown cannot scale as the artefacts generated by LLMs are growing in volume and complexity. So, I see the LLM community is now pivoting wholeheartedly into HTML.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/fdbXNWkpPMY?si=7RKef-ugYe_jJxDi&amp;amp;start=358&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Here’s &lt;a href=&quot;https://lucasmeijer.com/&quot;&gt;Lucas Meijer&lt;/a&gt; (yes of unity fame) talking about how he prefers reading HTML artifacts from LLM. It seems like LLM harness developers are taking notice too.&lt;/p&gt;

&lt;p&gt;Here’s &lt;a href=&quot;https://x.com/trq212/status/2053632475294040084&quot;&gt;Claude Code developer Thariq&lt;/a&gt; saying the same thing with support from &lt;a href=&quot;https://x.com/karpathy/status/2053872850101285137&quot;&gt;Andrej Karpathy&lt;/a&gt;. Personally, this is trending the way I thought things would go. Context windows were smaller, output tokens were smaller and hence initially you had to be more token efficient.&lt;/p&gt;

&lt;p&gt;HTML is a great language to help create far more digestible artifacts. I think it will also leverage the multi-modal nature of LLMs much better.&lt;/p&gt;

&lt;p&gt;&lt;mark&gt;it also helps that they will take up more tokens&lt;/mark&gt; ;)&lt;/p&gt;

&lt;p&gt;So, overall, I am bullish on HTML standing up to the task. While I shall continue my love for markdown, even though it is REALLY not a perfect language for everything.&lt;/p&gt;

&lt;p&gt;Personally, markdown + yaml frontmatter work great - it brings together how I’ve naturally operated with writing since I discovered them. And, &lt;em&gt;just right often isn’t perfect&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;but that’s the point. Use the tool that makes you happy, gets you more engaged with the output of the LLM and review and steer. That’s ultimately what is going to help achieve your goal. if that’s html, more power to you. This is also a reason to be bullish that we are still at the very very early stages of this and are speedrunning through the console &amp;gt; UI paradigm that personal computing went through.&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><category term="markdown" /><category term="html" /><category term="llms" /><summary type="html">This language is literally the C++ of markup languages. Nearly everything can be done in 2 different ways which some of them might allow XSS and somehow leak memory in html.</summary></entry><entry><title type="html">🔗 Helium Browser</title><link href="https://gurupanguji.com/blog/2026/05/12/helium-browser/" rel="alternate" type="text/html" title="🔗 Helium Browser" /><published>2026-05-12T12:00:00+00:00</published><updated>2026-05-12T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/12/helium-browser</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/12/helium-browser/">&lt;blockquote&gt;
  &lt;p&gt;Best privacy and unbiased ad-blocking by default. Handy features like native !bangs and split view. No adware, no bloat, no noise. Made for people, by people. Fully open source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://helium.computer/&quot;&gt;Helium Browser&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Helium’s been my default browser for a few months now and honestly, I am not looking back. It has a lower resource footprint, network footprint and mostly stays “silent” when it’s not used. In the few weeks I’ve used it, I’ve also mostly moved down to a single device use, so the &lt;em&gt;sync&lt;/em&gt; hasn’t been an issue.&lt;/p&gt;

&lt;p&gt;It’s alrady integrated with keychain, so my neurotic behavior to ensure that google password manager and apple keychain are kept in sync have paid off.&lt;/p&gt;

&lt;p&gt;If you are okay with not having sync, I think they are in a stable enough space for you to have them be your main browser.&lt;/p&gt;

&lt;p&gt;Note: there are some known issues with &lt;a href=&quot;https://alfredapp.com&quot;&gt;Alfred 5&lt;/a&gt; not being able to determine it as the frontmost browser. Looking at Alfred Forums, I am noticing that there was a &lt;a href=&quot;https://slashlos.github.io/Helium/&quot;&gt;Helium floating browser window&lt;/a&gt; that might be causing some unknown issues.&lt;/p&gt;

&lt;p&gt;I’ve &lt;a href=&quot;https://www.alfredforum.com/topic/23815-tasks-version-261-is-unable-to-choose-a-tab-from-helium-browser-as-frontmost-browser-tab/&quot;&gt;submitted an issue with Alfred&lt;/a&gt; in case you’d like to support / follow along.&lt;/p&gt;</content><author><name></name></author><category term="external" /><category term="ramblings" /><category term="technology" /><category term="clippings" /><category term="external" /><category term="links" /><category term="opinion" /><category term="quotes" /><category term="browser" /><category term="privacy" /><category term="open source" /><category term="macos" /><category term="apps" /><category term="helium" /><summary type="html">Best privacy and unbiased ad-blocking by default. Handy features like native !bangs and split view. No adware, no bloat, no noise. Made for people, by people. Fully open source.</summary></entry><entry><title type="html">🔗 SSH &amp;amp; MOSH Terminal for Claude Code &amp;amp; AI Agents</title><link href="https://gurupanguji.com/blog/2026/05/11/ssh-mosh-terminal-for-claude-code-ai-agents/" rel="alternate" type="text/html" title="🔗 SSH &amp;amp; MOSH Terminal for Claude Code &amp;amp; AI Agents" /><published>2026-05-11T21:22:31+00:00</published><updated>2026-05-11T21:22:31+00:00</updated><id>https://gurupanguji.com/blog/2026/05/11/ssh-mosh-terminal-for-claude-code-ai-agents</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/11/ssh-mosh-terminal-for-claude-code-ai-agents/">&lt;blockquote&gt;
  &lt;p&gt;Your AI agent on the go.
The mobile interface for AI coding agents. Zero desktop install.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://getmoshi.app/&quot;&gt;SSH &amp;amp; MOSH Terminal for Claude Code &amp;amp; AI Agents&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While I don’t use mosh, I love moshi. Today they seem to have also released an android version. This makes them a highly recommend from my end.&lt;/p&gt;

&lt;p&gt;If you have a long running agent and don’t have &lt;a href=&quot;https://claude.ai&quot;&gt;claude&lt;/a&gt; subscriptions, then this is a great way to still get back to your clis.&lt;/p&gt;

&lt;p&gt;p.s. you should also consider &lt;a href=&quot;https://tailscale.com/&quot;&gt;tailscale&lt;/a&gt; to have easy access to your machine if you don’t have another way to setup a VPN.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blog/Screenshot_20260511-142556.png&quot; alt=&quot;SSH &amp;amp; MOSH Terminal for Claude Code &amp;amp; AI Agents&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Oh and they also support a lifetime purchase. 👏. Great job &lt;a href=&quot;https://x.com/odd_joel&quot;&gt;@odd_joel&lt;/a&gt;&lt;/p&gt;</content><author><name>@gurupanguji</name></author><category term="external" /><category term="ramblings" /><category term="clippings" /><category term="external" /><category term="links" /><category term="quotes" /><summary type="html">Your AI agent on the go. The mobile interface for AI coding agents. Zero desktop install.</summary></entry><entry><title type="html">More experiments with local models and kv cache quantization</title><link href="https://gurupanguji.com/blog/2026/05/11/more-experiments-with-local-models-and-kv-cache-quantization/" rel="alternate" type="text/html" title="More experiments with local models and kv cache quantization" /><published>2026-05-11T12:00:00+00:00</published><updated>2026-05-11T12:00:00+00:00</updated><id>https://gurupanguji.com/blog/2026/05/11/more-experiments-with-local-models-and-kv-cache-quantization</id><content type="html" xml:base="https://gurupanguji.com/blog/2026/05/11/more-experiments-with-local-models-and-kv-cache-quantization/">&lt;p&gt;Toying around with the KV cache quantization parameters in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;llama.cpp&lt;/code&gt;. The smaller-model tests held up on the agent setup. I’ve found success with both &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Qwen3.6-35B-A3B&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemma-4-26B-A4B&lt;/code&gt; models.&lt;/p&gt;

&lt;p&gt;Here are my current &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;llama.cpp&lt;/code&gt; server settings. Hardware: M1 Max Mac Studio with 64GB RAM.&lt;/p&gt;

&lt;p&gt;Gemma 4:&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;llama-server &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-hf&lt;/span&gt; unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q5_K_XL &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--n-gpu-layers&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-1&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 262144 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; 65536 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-ctk&lt;/span&gt; q4_0 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-ctv&lt;/span&gt; q4_0 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; 8 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--flash-attn&lt;/span&gt; on &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--no-context-shift&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--temp&lt;/span&gt; 0.6 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--top-p&lt;/span&gt; 0.95 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--top-k&lt;/span&gt; 20 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--reasoning-budget&lt;/span&gt; 8192 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--repeat-penalty&lt;/span&gt; 1.00 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--presence-penalty&lt;/span&gt; 0.00 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--batch-size&lt;/span&gt; 2048 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--ubatch-size&lt;/span&gt; 1024 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--mlock&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--chat-template-kwargs&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;{&quot;preserve_thinking&quot;: true}&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Substitute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q5_K_XL&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unsloth/Qwen3.6-35B-A3B-it-GGUF:UD-Q5_K_XL&lt;/code&gt; for the Qwen3.6 model.&lt;/p&gt;

&lt;h2 id=&quot;lessons-learned&quot;&gt;Lessons learned&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Q5_K_XL quantization is a good middle ground to save VRAM / memory&lt;/li&gt;
  &lt;li&gt;kv cache quantization comes with a small performance penalty&lt;/li&gt;
  &lt;li&gt;I am hitting the limits of the context window size being 256K. I dug into that next.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;context-overhead-minimization&quot;&gt;Context overhead minimization&lt;/h2&gt;
&lt;p&gt;codex, gemini, claude code all have giant context windows - upwards of a million tokens and run on the cloud. So until now, I didn’t optimize my prompts and skills for token efficiency.&lt;/p&gt;

&lt;p&gt;Turns out, gpt and gemini models are fantastic at analyzing the context hierarchy and suggesting where there are redundancies. The big unlock, apart from pithy writing, is selective loading and breaking the various big context files into smaller chunks that are loaded on-demand.&lt;/p&gt;

&lt;p&gt;Since the optimizations, default context is now down to &amp;lt;6000 tokens. This is 6x &lt;em&gt;more&lt;/em&gt; than the default &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pi&lt;/code&gt; that is about 1000 tokens. Yet, it’s half of that of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;claude code&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;codex&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gemini&lt;/code&gt; defaults. Those specific harnesses are fine with the large context windows running on cloud. However, when running locally, any context overhad is a bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blog/pi-low-context-window.png&quot; alt=&quot;pi low context window&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;bringing-geminimd-along&quot;&gt;Bringing GEMINI.md along&lt;/h2&gt;

&lt;p&gt;The other learning was that instead of “duplicating” every thing from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AGENTS.md&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GEMINI.md&lt;/code&gt;, add a simple snippet to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GEMINI.md&lt;/code&gt; that references &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AGENTS.md&lt;/code&gt; as follows:&lt;/p&gt;

&lt;div class=&quot;language-markdown highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;gh&quot;&gt;# GEMINI.md&lt;/span&gt;
Follow &lt;span class=&quot;sb&quot;&gt;`AGENTS.md`&lt;/span&gt; for repo-specific rules.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Overall, this is a much cleaner setup that’s now working across pi as well as all the other harnesses.&lt;/p&gt;</content><author><name></name></author><category term="AI" /><category term="LLM" /><category term="local-models" /><category term="kv-cache" /><category term="quantization" /><summary type="html">Toying around with the KV cache quantization parameters in llama.cpp. The smaller-model tests held up on the agent setup. I’ve found success with both Qwen3.6-35B-A3B and gemma-4-26B-A4B models.</summary></entry></feed>