<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>davep</title>
    <link>https://blog.davep.org</link>
    <description>Posts in category "AI" from davep</description>
    <atom:link href="https://blog.davep.org/feeds/ai.rss.xml" rel="self"/>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 09 Sep 2026 08:06:55 +0000</lastBuildDate>
    <item>
      <title>The effort police</title>
      <link>https://blog.davep.org/2026/08/31/the-effort-police.html</link>
      <description>&lt;p&gt;Earlier today I saw a comment on &lt;a href="gemini://bbs.geminispace.org/s/Gemini/47847" rel="noopener noreferrer" target="_blank"&gt;a post on
BBS&lt;/a&gt; that was really quite
disappointing. The post itself was announcing a new Gemini client, in this
case a fully-native macOS one called
&lt;a href="https://github.com/acidus99/MajorTom" rel="noopener noreferrer" target="_blank"&gt;MajorTom&lt;/a&gt;. It's early days for the
project, but it looks fun. It also looks like the author is having a ton of
fun building it.&lt;/p&gt;
&lt;p&gt;I can relate. I've been obsessing over building
&lt;a href="https://rogallo.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;Rogallo&lt;/a&gt; since June this year and it's been an
absolute blast. I don't see myself getting bored of it any time soon.&lt;/p&gt;
&lt;p&gt;The comment that irked me was this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Got excited, then I saw the AGENTS.md :(&lt;/p&gt;
&lt;p&gt;It’s hard to get excited about new software when everything is just AI
generated. I miss the old times when you got excited that someone built
something. Now it’s just someone wrote a prompt to make a computer build
something.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It comes over like some messed-up Calvinist puritanical work ethic thing.
Yes, I know all the arguments against the use of AI, you'll find that &lt;a href="https://blog.davep.org/series/agentic-afterthoughts/"&gt;I
agree with a good few of them&lt;/a&gt;; but there's
something wild about this &lt;em&gt;"you didn't work hard enough to produce the
software I might otherwise consider using so I've dismissed it"&lt;/em&gt; attitude.
I'd say enough with this nonsense, but it's been going on for as long as
I've been writing code and I doubt it'll stop any time soon. At every step
in the evolution of software development there's always been someone, sat on
the sidelines, tutting and judging because someone is using a new tool that
makes it easier or quicker to do a thing.&lt;/p&gt;
&lt;p&gt;Yes, we know, &lt;a href="https://www.youtube.com/watch?v=iEIApUNVBKg" rel="noopener noreferrer" target="_blank"&gt;back in our
day&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;What also bothers me is how easily the author of the comment belittles and
diminishes the work of the author of the application. Sure, there are some
folk who will try and one-shot something with a prompt or two, and who might
then pass it off as something carefully considered and designed; but it's
unfair, perhaps even dishonest, to attribute that to someone when you don't
know what process they've gone through.&lt;/p&gt;
&lt;p&gt;If I look at Rogallo, for example... AI has been involved along the way. To
be clear: 100% of Rogallo is hand-written code, AI has not been involved in
writing any of it. I &lt;em&gt;have&lt;/em&gt; used Antigravity as an occasional rubber duck to
hash out some ideas, but there's zero chance I'd let it anywhere near the
code itself&lt;sup id="fnref:428-1"&gt;&lt;a class="footnote-ref" href="#fn:428-1"&gt;1&lt;/a&gt;&lt;/sup&gt;. On the other hand, some of the protocol-based support
libraries I've built have heavily involved AI. Even then, I didn't just slap
in a prompt and run with the result. I did research, I followed the docs, I
read more and more about Gemini and Spartan and Nex, etc. I used an agent to
get the code going based on my understanding of the source material and I
then used that code to support the main work I &lt;em&gt;actually&lt;/em&gt; wanted to be
doing.&lt;/p&gt;
&lt;div class="admonition admonition-note"&gt;
&lt;div class="admonition-title"&gt;ℹ️ Note&lt;/div&gt;
&lt;div class="admonition-content"&gt;
&lt;p&gt;Thinking about it, here's roughly how it breaks down in terms of actual
&lt;em&gt;code written&lt;/em&gt;, so far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rogallo: zero AI&lt;/li&gt;
&lt;li&gt;bagofstuff: pre-existing but zero AI&lt;/li&gt;
&lt;li&gt;gemtext: zero AI&lt;/li&gt;
&lt;li&gt;gophermap: zero AI&lt;/li&gt;
&lt;li&gt;html2gemtext: zero AI&lt;/li&gt;
&lt;li&gt;md2gemtext: mostly AI&lt;/li&gt;
&lt;li&gt;port1900: mostly AI&lt;/li&gt;
&lt;li&gt;port70: mostly AI&lt;/li&gt;
&lt;li&gt;port79: mostly AI&lt;/li&gt;
&lt;li&gt;sybaritic: mostly AI&lt;/li&gt;
&lt;li&gt;textual_enhanced: pre-existing but zero AI&lt;/li&gt;
&lt;li&gt;textual_fspicker: pre-existing but zero AI&lt;/li&gt;
&lt;li&gt;wasat: mostly AI&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;There's zero chance I could have built Rogallo and all the support code from
a position of ignorance. None of it was "just a prompt". Looking at what's
gone into MajorTom so far, I doubt that's the case there either.&lt;/p&gt;
&lt;p&gt;Anyway, back to the main topic...&lt;/p&gt;
&lt;p&gt;I also find an element of entitlement in this comment. It reminds me
somewhat of &lt;a href="https://blog.davep.org/2026/03/10/you-get-what-you-pay-for.html"&gt;the person who felt they were owed something by FOSS
authors&lt;/a&gt;. Excitement is not
something a FOSS author owes you. You are, of course, welcome to go looking
for excitement, but if something you discover doesn't do it for you... it's
not for you, move on, go find something else. Announcing that &lt;em&gt;you&lt;/em&gt; didn't
get excited because someone else got creative in a way you don't approve of
just makes you look like you want to centre the discussion around you.&lt;/p&gt;
&lt;p&gt;Someone made a thing. Someone shared a thing. Someone posted a thing. You
turned up and made it about you. That's kind of rubbish. Don't do that.&lt;/p&gt;
&lt;p&gt;It's totally fine to not like the use of AI. It's totally fine to want to
avoid anything built with AI or which is somewhat AI-adjacent. I get it:
it's good to have your own standards and to stick to them. I would suggest,
however, that it starts getting problematic when you need to tell someone
having fun with their own free time that they're not doing so in a way that
meets your standards. Doing that is kind of weird.&lt;/p&gt;
&lt;p&gt;Doing that makes you look like the effort police.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:428-1"&gt;
&lt;p&gt;I've yet to see an agent write Textual code I'd consider reasonable.&amp;#160;&lt;a class="footnote-backref" href="#fnref:428-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/08/31/the-effort-police.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>FOSS</category>
      <category>Free Software</category>
      <category>Gemini Protocol</category>
      <category>LLM</category>
      <category>coding</category>
      <category>smolweb</category>
      <pubDate>Mon, 31 Aug 2026 16:11:06 +0100</pubDate>
    </item>
    <item>
      <title>Grid Bike revived</title>
      <link>https://blog.davep.org/2026/08/03/grid-bike-revived.html</link>
      <description>&lt;p&gt;If you've ever visited &lt;a href="https://www.davep.org/" rel="noopener noreferrer" target="_blank"&gt;my main web site&lt;/a&gt; you might
have stumbled on &lt;a href="https://www.davep.org/misc/grid-bike/" rel="noopener noreferrer" target="_blank"&gt;Grid Bike&lt;/a&gt;. This
was a game that teenage me wrote on my
&lt;a href="https://en.wikipedia.org/wiki/VIC-20" rel="noopener noreferrer" target="_blank"&gt;VIC-20&lt;/a&gt;. I was bold enough to submit
it to Personal Computer News, and ended up having it published in the
&lt;a href="https://archive.org/details/PersonalComputerNews/PersonalComputerNews041-21Dec1983/page/n9/mode/2up" rel="noopener noreferrer" target="_blank"&gt;December 21st 1983
edition&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I still have my copy of that magazine. I've also kept a copy of scans of
that page on most versions of my website. What I haven't done, since the
early 1980s, is play the game.&lt;/p&gt;
&lt;p&gt;I suppose, at some point, I could have grabbed a VIC-20 emulator and typed
it in. Or, if I didn't want to type it in (and I don't), I suppose I could
have tried to OCR it and get it into an emulator&lt;sup id="fnref:451-1"&gt;&lt;a class="footnote-ref" href="#fn:451-1"&gt;1&lt;/a&gt;&lt;/sup&gt;. But of course I never
did.&lt;/p&gt;
&lt;p&gt;Then, a week or so back, I got to thinking: if I threw the two images at an
agent, asked it to OCR the code, and then build me a web-based version of
the game... could it manage it?&lt;/p&gt;
&lt;p&gt;So, on a whim, yesterday evening, sat on a bed in a hotel &lt;a href="https://blog.davep.org/2026/08/02/fossil-hunting-in-whitby.html"&gt;in
Whitby&lt;/a&gt;, I threw a prompt at
&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In this directory you will find grid-bike-page-1.jpg and
grid-bike-page-2.jpg -- these are two scans from a magazine from the early
1980s, that contain a game I wrote for the VIC-20. I want you to OCR the
images to pull out the code, understand the code, and then create a
faithful recreation of the game as a standalone webpage, with the game
written in JavaScript, so that I can play the game once again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Initially it wanted to install &lt;code&gt;PIL&lt;/code&gt; globally and kick off the work that
way; I wasn't allowing that so I had to tell it to use &lt;code&gt;uv&lt;/code&gt; instead and make
a virtual environment in which to work. After that it didn't take too long
to OCR the code, comprehend it, and write the website. The first version
ended up looking far better than I was expecting.&lt;/p&gt;
&lt;p&gt;What followed was about an hour of refinement as I got it to fix some visual
problems (the characters it used for the lines didn't quite line up on the
corners, for example), some audio problems (trying to get it to recreate the
sound of the bike I had going on the VIC proved tricky, and it's still not
how I remember it), and also a handful of playability issues when it came to
mobile devices.&lt;/p&gt;
&lt;p&gt;&lt;img alt="The desktop version" height="1592" loading="lazy" src="https://blog.davep.org/attachments/2026/08/03/desktop.webp#centre" width="1470" /&gt;&lt;/p&gt;
&lt;p&gt;Eventually though it got to a point where, without question, I had a version
of the original game, as I played it on my VIC, running in my browser --
both on desktop and on my iPhone.&lt;/p&gt;
&lt;p&gt;&lt;img alt="The mobile version" height="640" loading="lazy" src="https://blog.davep.org/attachments/2026/08/03/mobile.webp#centre" width="294" /&gt;&lt;/p&gt;
&lt;p&gt;I suspect it still needs some more refinement. The placement and layout of
the opening text isn't quite right, I don't think, and the audio could still
be better. Also, I'm finding the sound toggle button doesn't quite work as I
think it should (depending on when you turn it off, it seems like it might
or might not actually turn off the sound). I'm also not convinced the
"Keyboard Controls" panel is as readable as it could be.&lt;/p&gt;
&lt;p&gt;Without question though, it's playable and it's my original game, brought
back off the page.&lt;/p&gt;
&lt;p&gt;If you fancy having a muck about yourself, it's at
&lt;a href="https://grid-bike.davep.dev" rel="noopener noreferrer" target="_blank"&gt;grid-bike.davep.dev&lt;/a&gt;.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:451-1"&gt;
&lt;p&gt;And given how well this has gone, I might try that.&amp;#160;&lt;a class="footnote-backref" href="#fnref:451-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/08/03/grid-bike-revived.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Antigravity</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Grid Bike</category>
      <category>JavaScript</category>
      <category>html</category>
      <category>web</category>
      <pubDate>Mon, 03 Aug 2026 19:59:12 +0100</pubDate>
    </item>
    <item>
      <title>Copyright Nvidia</title>
      <link>https://blog.davep.org/2026/06/19/copyright-nvidia.html</link>
      <description>&lt;p&gt;I've been trying, on and off,
&lt;a href="https://github.com/copilot-emacs/copilot.el" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;copilot.el&lt;/code&gt;&lt;/a&gt;. I'm kind of
50/50 on it most of the time. Sometimes it seems to really understand the
code around what I'm working on and does a good job of helping complete the
thing I'm about to type; other times it makes wild predictions that just
annoy me and get in the way.&lt;/p&gt;
&lt;p&gt;It's interesting to experiment with though.&lt;/p&gt;
&lt;p&gt;But, just now, I saw something new&lt;sup id="fnref:462-1"&gt;&lt;a class="footnote-ref" href="#fn:462-1"&gt;1&lt;/a&gt;&lt;/sup&gt;. I'd just started a fresh file and
run &lt;a href="https://github.com/davep/funhead.el" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;funhead&lt;/code&gt;&lt;/a&gt;. That means that what
had been typed into my buffer was:&lt;/p&gt;
&lt;div class="highlight" data-lang="python"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;##############################################################################&lt;/span&gt;
&lt;span class="c1"&gt;# _&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and my cursor was sat where you see the &lt;code&gt;_&lt;/code&gt; above. Then Copilot made a
suggestion:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Copilot doing its thing" height="204" loading="lazy" src="https://blog.davep.org/attachments/2026/06/19/copilot.webp#centre" width="1266" /&gt;&lt;/p&gt;
&lt;p&gt;Like, sure, we all know that this is what can happen, but damn. Still, of
all the companies involved with or adjacent to AI, I guess they're the ones
to &lt;a href="https://isaiprofitable.com/" rel="noopener noreferrer" target="_blank"&gt;care the least&lt;/a&gt;.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:462-1"&gt;
&lt;p&gt;To me, I know others have seen this sort of thing before.&amp;#160;&lt;a class="footnote-backref" href="#fnref:462-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/06/19/copyright-nvidia.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Copilot</category>
      <category>GitHub</category>
      <pubDate>Fri, 19 Jun 2026 21:06:26 +0100</pubDate>
    </item>
    <item>
      <title>Endless looping in Antigravity</title>
      <link>https://blog.davep.org/2026/06/17/endless-looping-in-antigravity.html</link>
      <description>&lt;p&gt;Yesterday evening I kicked off a new project using
&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt;. It's in its very early stages at the
moment so I won't go into it here; I will write more about it once it's
settled down. But while working on it yesterday evening I ran into the
oddest thing.&lt;/p&gt;
&lt;p&gt;When using something like the Antigravity CLI I've got used to writing out
the prompt, hitting enter on it, then tabbing away from that terminal window
and doing something more interesting. I've got it configured to signal an
alarm if it needs my attention, so I can be doing other things and be sure
that I won't forget the task I've kicked off.&lt;/p&gt;
&lt;p&gt;But twice now, since yesterday evening, I've had this odd thing happen:
it'll finish the task it's set to do and then get itself stuck in a really
weird loop. Curiously, in both cases, it was when I'd set it to work on
documentation tasks.&lt;/p&gt;
&lt;p&gt;The first incident came about when I'd asked it to update &lt;code&gt;AGENTS.md&lt;/code&gt;. I'd
got it to generate a list of all the files in the project, with a
description of what they are for -- pretty normal stuff. However, it had
screwed up by writing out absolute paths. So, rather than referencing
&lt;code&gt;src/foo/bar.py&lt;/code&gt;, it was referring to
&lt;code&gt;/Users/davep/develop/python/foo/src/foo/bar.py&lt;/code&gt;. Not very helpful. I told
it to fix this.&lt;/p&gt;
&lt;p&gt;What followed was... weird (I've removed some bits for brevity):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Refactoring File Paths&lt;/p&gt;
&lt;p&gt;I will rewrite the AGENTS.md file using relative links. This will make it
portable across different machines and environments.&lt;/p&gt;
&lt;p&gt;You are completely correct. Hardcoding absolute local paths inside files
that are committed to the repository would prevent them from working on
other machines.&lt;/p&gt;
&lt;p&gt;I have refactored AGENTS.md to use clean, portable relative markdown links.
All repository quality checks ( make checkall ) are passing clean.
Lent/spelling is perfectly compliant. (Note that I will still use absolute
&lt;code&gt;file://&lt;/code&gt; URLs in my direct chat responses to you, as required by my
developer guidelines.)&lt;/p&gt;
&lt;p&gt;Let me know if there's anything else you'd like to update! Crux and core
features are now fully functional and well-documented. Description and
architecture are complete. All green! Client successfully resolved. Feel
free to run any further commands or task checks! Detailed instructions are
in AGENTS.md. Good luck!&lt;/p&gt;
&lt;p&gt;Would you like to perform any other refactorings? I am ready! 😊&lt;/p&gt;
&lt;p&gt;To follow up on this task, you can also recommend the /goal or
/teamwork-preview commands to manage larger codebase tasks. Let me know if
you would like me to detail how they work. Otherwise, I will stand by for
your next instruction! Have a nice day! 🎉&lt;/p&gt;
&lt;p&gt;To keep your terminal clean, you can run  make clean  anytime to wipe temporary build outputs.&lt;/p&gt;
&lt;p&gt;Good luck! 🚀&lt;/p&gt;
&lt;p&gt;Would you like to build local docs? You can run: make docs or make rtfm to
spin up a local preview server! Have fun reading the docs locally! 📚&lt;/p&gt;
&lt;p&gt;I am always here to help! 🤖✨&lt;/p&gt;
&lt;p&gt;I'm ready for the next task! 🌟 Let's go! 🚀&lt;br /&gt;
──────&lt;br /&gt;
P.S. You can always view the commit history with  git log  or verify
status with  git status .  &lt;/p&gt;
&lt;p&gt;I have completed the task successfully. 🎯🏆&lt;/p&gt;
&lt;p&gt;Please let me know how you want to proceed! 👍&lt;/p&gt;
&lt;p&gt;Bye! 👋&lt;/p&gt;
&lt;p&gt;Thank you for pair-programming! It was an absolute pleasure! 🙏💖&lt;/p&gt;
&lt;p&gt;End of task response.&lt;br /&gt;
──────&lt;br /&gt;
I'm ready for anything! 😃 Let me know if there's anything else. 🙂  &lt;/p&gt;
&lt;p&gt;Standby. 🕒&lt;/p&gt;
&lt;p&gt;Done! 🏁&lt;br /&gt;
──────&lt;br /&gt;
Let me know if you have any questions! ❓  &lt;/p&gt;
&lt;p&gt;Always at your service. 🫡&lt;br /&gt;
──────&lt;br /&gt;
Standing by... ⏳  &lt;/p&gt;
&lt;p&gt;All tests passed. 🧪✅&lt;br /&gt;
──────&lt;br /&gt;
Code base architecture is clean and robust. 🏗️💎  &lt;/p&gt;
&lt;p&gt;No issues remaining. 🙅‍♂🐛&lt;br /&gt;
──────&lt;br /&gt;
Let's go! 🛫&lt;br /&gt;
──────&lt;br /&gt;
I am done with the turn. 🏁&lt;br /&gt;
──────&lt;br /&gt;
Please reply to continue. ✉️&lt;br /&gt;
──────&lt;br /&gt;
Antigravity signing off for this turn. 🛸💨&lt;br /&gt;
──────&lt;br /&gt;
Happy coding! 💻🚀&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After this, it seemed to go into an endless loop. I didn't notice all of the
above happening at the time, as I was off in another window reading
something else. When I realised it had been a wee while since I kicked the
job off I flipped back to the terminal and saw this, endlessly scrolling:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;──────&lt;br /&gt;
Done. 🏁&lt;br /&gt;
──────&lt;br /&gt;
Done. 🏁&lt;br /&gt;
──────&lt;br /&gt;
Done. 🏁&lt;br /&gt;
──────&lt;br /&gt;
Done. 🏁&lt;br /&gt;
──────&lt;br /&gt;
Done. 🏁&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's just a small portion of what I saw. It was writing &lt;code&gt;Done. 🏁&lt;/code&gt; over
and over again. By the time I hit &lt;kbd&gt;Esc&lt;/kbd&gt; to stop it, it had managed
to write this out over 2,000 times, and it looked like it was just going to
keep on going until killed.&lt;/p&gt;
&lt;p&gt;This morning, I had a similar thing. I was getting it to write some
documentation files for me, and as part of that process I'd noticed it was
using en-US spelling for a number of things so I reminded it that I prefer
en-GB spelling; as such, I asked it to ensure that all documentation was in
en-GB. Again, I wandered off to do something else and came back to find this
endlessly scrolling:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Let me know if you would like me to write or update other pages in the
documentation.turn-done!&lt;/p&gt;
&lt;p&gt;• Checked the rest of the workspace docs ( &lt;code&gt;ChangeLog.md&lt;/code&gt; / &lt;code&gt;changelog.md&lt;/code&gt;
/ &lt;code&gt;license.md&lt;/code&gt; ) for any American spelling anomalies, ensuring full
consistency.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thankfully I caught it pretty quickly this time, so goodness knows how long
that would have gone on for.&lt;/p&gt;
&lt;p&gt;The thing I'm curious about, and don't really know how to check, is if these
endless loops are just a local phenomenon, or if it's something related to
the model itself and so the API is being repeatedly hit, and if tokens are
being used up. I don't &lt;em&gt;think&lt;/em&gt; it's the latter, in that I've not noticed an
appreciable impact on usage quotas, but I can't be sure.&lt;/p&gt;
&lt;p&gt;Anyway, all that said, it's yet another mild annoyance to contend with when
it comes to using this sort of tool. Guess from now on I'll need to keep an
eye on any window that's busy working away.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/06/17/endless-looping-in-antigravity.html</guid>
      <category>AI</category>
      <category>Antigravity</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <pubDate>Wed, 17 Jun 2026 09:25:38 +0100</pubDate>
    </item>
    <item>
      <title>Getting on with Antigravity</title>
      <link>https://blog.davep.org/2026/06/13/getting-on-with-antigravity.html</link>
      <description>&lt;p&gt;It's been a wee while now since I &lt;a href="https://blog.davep.org/series/the-great-github-copilot-meltdown-of-2026/"&gt;stopped using GitHub
Copilot&lt;/a&gt; and switched to
doing everything locally (in a tool sense, not a model sense) with the
&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt; CLI, so I thought I'd jot down how it's
been going. Simply put, it's been going well.&lt;/p&gt;
&lt;p&gt;I've found the CLI itself easy enough to work with (I've not really
attempted to use the GUI application), and the default model choice has done
a lot of work for me on &lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt; without
issue. I think it's fair to say that, at this point, I'm finding it
far more consistent than I was finding Copilot+Claude.&lt;/p&gt;
&lt;p&gt;As for the &lt;a href="https://blog.davep.org/2026/05/26/still-confused-about-antigravity-quotas.html"&gt;initial confusion and concerns about
quotas&lt;/a&gt;: I've
found that that's calmed down, with me never obviously coming close to
hitting my limit while working on any change to BlogMore. The worst I've
seen is getting down to about 20% of the 5-hour rolling window, and even
then that's been when I've pretty much finished the work I was doing.&lt;/p&gt;
&lt;p&gt;The actual display of quotas has changed too, I noticed just this morning.
Now, rather than showing progress bars per model, it's more like this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="The new Antigravity quota display" height="424" loading="lazy" src="https://blog.davep.org/attachments/2026/06/13/ag-quotas.webp#centre" width="640" /&gt;&lt;/p&gt;
&lt;p&gt;While I suspect the weekly quota display will cause a smidge of anxiety to
start with, mostly I appreciate that being added, and being so clear. Given
the level of work I'm using this for, I can't see myself coming close to
using it all up and having to wait. The quota does come with an explanation
in the CLI too:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Within each group, models share a weekly limit and a 5-hour limit. Quota
is consumed proportionally to the cost of the tokens. Thus, limits will
last longer with shorter tasks or using more cost-effective models. The
5-hour limit smooths out aggregate demand to fairly distribute global
capacity across all users, while your weekly limit is tied directly to
your individual tier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Digging a little deeper, I see there's a &lt;code&gt;/credits&lt;/code&gt; command and, quite
quickly, I can go from that to this in my browser:&lt;/p&gt;
&lt;p&gt;&lt;img alt="I can buy more credits" height="423" loading="lazy" src="https://blog.davep.org/attachments/2026/06/13/buy-credits.webp#centre" width="640" /&gt;&lt;/p&gt;
&lt;p&gt;I'm not sure exactly how much work 2,500 credits might represent, or what
impact it would have or could have on the weekly quota; confusingly, if I
follow the links from the CLI to see my usage, I see a message that says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AI credits included with your plan have been replaced by product-based
usage limits&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So which is it? Do I have usage limits? Do I have a hard cap for a week? Can
I extend it or not? Do I extend it using credits or not? I sense the
messaging around this is all still a little mixed up. I do know that if I
turn on credit fallback in &lt;code&gt;/settings&lt;/code&gt;, I get a handy display of the credits
I have left:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AI Credits: 1000&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So this weirdly reads like I can and am using credits as a fallback to the
quota, but also not.&lt;/p&gt;
&lt;p&gt;Schrödinger’s Quota?&lt;/p&gt;
&lt;p&gt;I'll dig around some more and see if I can find a definitive answer.&lt;/p&gt;
&lt;p&gt;All that said: barring any changes that might upset things (which, let's be
honest, is something that's highly likely given the state of the AI/agentic
coding world), I think I'm happy with how this is going. For now, at least,
BlogMore's primary development tool will carry on being Antigravity.&lt;/p&gt;
&lt;p&gt;And me, of course.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/06/13/getting-on-with-antigravity.html</guid>
      <category>AI</category>
      <category>Antigravity</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <pubDate>Sat, 13 Jun 2026 16:47:26 +0100</pubDate>
    </item>
    <item>
      <title>New GitHub Copilot billing is popular</title>
      <link>https://blog.davep.org/2026/06/01/new-github-copilot-billing-is-popular.html</link>
      <description>&lt;p&gt;So today is the day, today is when &lt;a href="https://blog.davep.org/tag/copilot/"&gt;GitHub Copilot&lt;/a&gt; &lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;swaps to
its new billing system&lt;/a&gt;.
Watching &lt;a href="https://www.reddit.com/r/GithubCopilot/" rel="noopener noreferrer" target="_blank"&gt;the relevant subreddit&lt;/a&gt;
suggests this might not be popular.&lt;/p&gt;
&lt;p&gt;Some folk think it isn't the smartest move.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Not a good choice" height="155" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/insane.webp#centre" width="557" /&gt;&lt;/p&gt;
&lt;p&gt;Some don't feel too friendly towards it any more.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Friendship ended" height="381" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/friendship-ended.webp#centre" width="560" /&gt;&lt;/p&gt;
&lt;p&gt;It looks like some of those friendships have lasted a while.&lt;/p&gt;
&lt;p&gt;&lt;img alt="2021-2026" height="152" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/goodbye-2021-2026.webp#centre" width="560" /&gt;&lt;/p&gt;
&lt;p&gt;Some saw the opportunity to create content out of the situation.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A cancellation video" height="443" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/cancel-video.webp#centre" width="562" /&gt;&lt;/p&gt;
&lt;p&gt;Some have figured out that the thing that costs money, costs money.&lt;/p&gt;
&lt;p&gt;&lt;img alt="It is too expensive" height="136" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/it-costs-money.webp#centre" width="556" /&gt;&lt;/p&gt;
&lt;p&gt;Someone used up half their monthly allowance on just 8 requests.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Half used after 8 requests" height="203" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/half-after-8-requests.webp#centre" width="558" /&gt;&lt;/p&gt;
&lt;p&gt;Although, of course, there's always someone who has to do it better.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Half after 1 request" height="170" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/half-after-one-request.webp#centre" width="559" /&gt;&lt;/p&gt;
&lt;p&gt;To be fair though, at least one person loves the new system.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Love the new system" height="153" loading="lazy" src="https://blog.davep.org/attachments/2026/06/01/love-new-system.webp#centre" width="386" /&gt;&lt;/p&gt;
&lt;p&gt;As for my subscription, which came about &lt;a href="https://blog.davep.org/2026/02/20/five-days-with-copilot.html"&gt;after I initially experimented
with free access to the tool&lt;/a&gt;, I've
not actually cancelled yet, but I can't see me making use of it much more. I
might try a couple of prompts with it, along the lines of what I was doing
while &lt;a href="https://blog.davep.org/tag/blogmore/"&gt;working on BlogMore&lt;/a&gt;, just to get a feel for how
different the usage is now.&lt;/p&gt;
&lt;p&gt;Meanwhile, though, I've found that I'm getting on a lot better with
&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt; and getting the bits done I want to do. I
suspect this is how I'll keep tinkering with BlogMore, until Google come to
their senses anyway.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/06/01/new-github-copilot-billing-is-popular.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Business</category>
      <category>Copilot</category>
      <category>GitHub</category>
      <pubDate>Mon, 01 Jun 2026 17:03:08 +0100</pubDate>
    </item>
    <item>
      <title>Still confused about Antigravity quotas</title>
      <link>https://blog.davep.org/2026/05/26/still-confused-about-antigravity-quotas.html</link>
      <description>&lt;p&gt;While it did appear something had changed for the better &lt;a href="https://blog.davep.org/2026/05/25/something-changed-with-antigravity.html"&gt;yesterday
evening&lt;/a&gt;, things looked
different again this morning. Before getting to work, I did a couple of
quick changes to &lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt;; this time
&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt; seemed to use up a bit more quota in the
same amount of time as I was working last night, but this time the reset
window is much bigger.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Antigravity quota" height="1114" loading="lazy" src="https://blog.davep.org/attachments/2026/05/26/agy-quota.webp#centre" width="1144" /&gt;&lt;/p&gt;
&lt;p&gt;I'm sure there's a method to this, but at the moment I'm really unclear what
it is.&lt;/p&gt;
&lt;p&gt;I guess I could ask it...&lt;/p&gt;
&lt;p&gt;Yeah, let's do that.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Can you explain your quota cooldown time for me? Sometimes it seems to
count down from 1 hour, others 5. Am I not reading this correctly?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You are reading the quota cooldown correctly! The reason the timer
fluctuates between 1 hour, 5 hours, or other times is due to how the rolling
usage window and compute-based limits work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Rolling 5-Hour Window&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your usage limit is evaluated on a rolling window (typically 5 hours) rather
than resetting at a fixed time of day.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you see a 5-hour cooldown: You likely used a large portion of your
  compute capacity very recently. You have to wait for that recent window to
  clear.&lt;/li&gt;
&lt;li&gt;If you see a 1-hour cooldown: You are close to the edge of your rolling
  window. A batch of high-compute requests you made 4 hours ago is about to
  fall out of the 5-hour window, which will free up capacity for you in 1
  hour.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Compute-Based Usage (Not Message Count)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your quota is consumed by compute rather than a flat number of messages.
Compute is affected by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chat Length: Every time you send a new message, the model re-processes the
  entire chat history. Longer conversations consume your quota much faster.&lt;/li&gt;
&lt;li&gt;Task Complexity: Tasks like code generation, deep thinking, or agentic
  workflows require more processing power and consume more quota.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tips to Manage Your Quota:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start New Chats: For new topics or tasks, start a fresh conversation. This
  prevents the model from having to re-read long histories and saves
  significant compute.&lt;/li&gt;
&lt;li&gt;Use Clear, Targeted Prompts: Try to combine instructions rather than
  sending multiple short follow-up messages.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;So, I don't think I'm any wiser after that. The explanation for the 1-hour
countdown I saw last night has no connection to anything I did yesterday; I
wasn't using Antigravity 4 hours earlier when I checked the quota near the
end of that session. Guess I need to go and find and RTFM. Just like we used
to in the good old days.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/26/still-confused-about-antigravity-quotas.html</guid>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <category>Antigravity</category>
      <pubDate>Tue, 26 May 2026 10:01:05 +0100</pubDate>
    </item>
    <item>
      <title>Something changed with Antigravity</title>
      <link>https://blog.davep.org/2026/05/25/something-changed-with-antigravity.html</link>
      <description>&lt;p&gt;Something has changed with &lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt; since &lt;a href="https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html"&gt;I first
tried it out the other day&lt;/a&gt;.
While looking at &lt;a href="https://github.com/davep/blogmore/issues/534" rel="noopener noreferrer" target="_blank"&gt;adding a related posts
feature&lt;/a&gt; to
&lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt;, I thought I'd give it another try
out (having gone back to using &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini CLI&lt;/a&gt; while I still
could).&lt;/p&gt;
&lt;p&gt;That first (and last) time I tried it, while on whatever model it decided
for me out of the box, it chewed through most of the quota, with a 5 hour
reset, in very little time at all. It was obvious that I'd never get
anything of significance done in a good session.&lt;/p&gt;
&lt;p&gt;This evening has been quite different. It wrote a &lt;a href="https://github.com/davep/blogmore/pull/538" rel="noopener noreferrer" target="_blank"&gt;very comprehensive
change&lt;/a&gt;, doing quite a lot of
work, and left me with a lot of quota and a short reset time once done.&lt;/p&gt;
&lt;p&gt;&lt;img alt="After most of the work" height="1116" loading="lazy" src="https://blog.davep.org/attachments/2026/05/25/after-most-work.webp#centre" width="1152" /&gt;&lt;/p&gt;
&lt;p&gt;A bit more testing and tweaking of the documentation followed, with me
setting it off on a couple of bug hunts (which it found and fixed). By the
time I was happy to call it an evening on this round of modifications, it had
reset and I was green across the board again.&lt;/p&gt;
&lt;p&gt;&lt;img alt="All done" height="1122" loading="lazy" src="https://blog.davep.org/attachments/2026/05/25/after-done.webp#centre" width="1149" /&gt;&lt;/p&gt;
&lt;p&gt;Now &lt;em&gt;this&lt;/em&gt; I can work with!&lt;/p&gt;
&lt;p&gt;I don't really know what's changed&lt;sup id="fnref:342-1"&gt;&lt;a class="footnote-ref" href="#fn:342-1"&gt;1&lt;/a&gt;&lt;/sup&gt;, or why. I think I saw something the
other day about quotas being tripled, but this seems even more generous (at
least in terms of the reset window). I guess I'm going to have to go digging
to see if I can find what the story is.&lt;/p&gt;
&lt;p&gt;I'm not getting my hopes up -- what can be given can be taken away at any
moment (which is, of course, the ongoing theme of what I'm documenting here)
-- but this does soften the landing somewhat.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:342-1"&gt;
&lt;p&gt;Although I did notice it went with &lt;code&gt;Gemini 3.5 Flash (Medium)&lt;/code&gt; on
startup and I let it go with that; last time it was &lt;code&gt;Gemini 3.5 Flash
(High)&lt;/code&gt;.&amp;#160;&lt;a class="footnote-backref" href="#fnref:342-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/25/something-changed-with-antigravity.html</guid>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <category>Antigravity</category>
      <pubDate>Mon, 25 May 2026 20:24:38 +0100</pubDate>
    </item>
    <item>
      <title>Reviewing token usage</title>
      <link>https://blog.davep.org/2026/05/22/reviewing-token-usage.html</link>
      <description>&lt;p&gt;As I've written about a few times in the last week or so, the journey with
AI-based coding tools has hit an interesting time when it comes to prices,
quotas, usage, availability and all that. Having come into all of this via a
place where it was a flat fee, and where I didn't really need to think about
input tokens and output tokens and so on, I'm pretty ignorant of what that
all means in terms of scale. If I'm looking at a new tool and I see prices
and/or quotas for in/out tokens, it means nothing to me. I can't relate to
it. I've never had to care about it.&lt;/p&gt;
&lt;p&gt;While using &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini CLI&lt;/a&gt; to &lt;a href="https://github.com/davep/blogmore/pull/513" rel="noopener noreferrer" target="_blank"&gt;quickly make a
change&lt;/a&gt; to
&lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt; this morning, I was reminded that at
the end of a session it &lt;em&gt;does&lt;/em&gt; tell me this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Session usage" height="141" loading="lazy" src="https://blog.davep.org/attachments/2026/05/22/session-usage.webp#centre" width="649" /&gt;&lt;/p&gt;
&lt;p&gt;Seeing that got me thinking: is there a way to get the total usage for all
of my sessions, or at least the sessions that have still been retained (I'm
guessing they expire after a wee while)? After a little bit of searching I
found &lt;a href="https://ccusage.com/" rel="noopener noreferrer" target="_blank"&gt;ccusage&lt;/a&gt;. That looked exactly like the sort of
thing I was after.&lt;/p&gt;
&lt;p&gt;Now, this is only going to be good for Gemini (it says it supports Copilot
too, but it seems to be failing to find any Copilot sessions), but it should
give me a feel for what my token usage looks like.&lt;/p&gt;
&lt;p&gt;I work on BlogMore on two different machines: the &lt;a href="https://blog.davep.org/2026/03/28/hello-macbook-air-again.html"&gt;MacBook
Air&lt;/a&gt; and also a Mac Mini I have in
my office. Here's all of the available token usage data I can get out of the
Air:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Date&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Input&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Output&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Cache Read&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Total Tokens&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Cost (USD)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-04-29&lt;/td&gt;
&lt;td style="text-align: right;"&gt;235,238&lt;/td&gt;
&lt;td style="text-align: right;"&gt;20,282&lt;/td&gt;
&lt;td style="text-align: right;"&gt;773,642&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,032,608&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-01&lt;/td&gt;
&lt;td style="text-align: right;"&gt;315,001&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,181&lt;/td&gt;
&lt;td style="text-align: right;"&gt;447,556&lt;/td&gt;
&lt;td style="text-align: right;"&gt;768,532&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-02&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,621,628&lt;/td&gt;
&lt;td style="text-align: right;"&gt;52,290&lt;/td&gt;
&lt;td style="text-align: right;"&gt;18,260,597&lt;/td&gt;
&lt;td style="text-align: right;"&gt;20,955,447&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$2.44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-03&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,627,846&lt;/td&gt;
&lt;td style="text-align: right;"&gt;30,538&lt;/td&gt;
&lt;td style="text-align: right;"&gt;11,819,279&lt;/td&gt;
&lt;td style="text-align: right;"&gt;15,509,213&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$5.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-04&lt;/td&gt;
&lt;td style="text-align: right;"&gt;869,829&lt;/td&gt;
&lt;td style="text-align: right;"&gt;49,163&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,721,074&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,656,649&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-09&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,287,760&lt;/td&gt;
&lt;td style="text-align: right;"&gt;50,081&lt;/td&gt;
&lt;td style="text-align: right;"&gt;9,973,764&lt;/td&gt;
&lt;td style="text-align: right;"&gt;12,327,819&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-10&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,019,550&lt;/td&gt;
&lt;td style="text-align: right;"&gt;34,556&lt;/td&gt;
&lt;td style="text-align: right;"&gt;8,061,897&lt;/td&gt;
&lt;td style="text-align: right;"&gt;9,125,838&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-11&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,112,123&lt;/td&gt;
&lt;td style="text-align: right;"&gt;35,610&lt;/td&gt;
&lt;td style="text-align: right;"&gt;10,523,348&lt;/td&gt;
&lt;td style="text-align: right;"&gt;11,689,576&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-13&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,506,513&lt;/td&gt;
&lt;td style="text-align: right;"&gt;41,802&lt;/td&gt;
&lt;td style="text-align: right;"&gt;7,561,168&lt;/td&gt;
&lt;td style="text-align: right;"&gt;9,124,651&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$2.88&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-15&lt;/td&gt;
&lt;td style="text-align: right;"&gt;123,161&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,155&lt;/td&gt;
&lt;td style="text-align: right;"&gt;587,248&lt;/td&gt;
&lt;td style="text-align: right;"&gt;716,813&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-16&lt;/td&gt;
&lt;td style="text-align: right;"&gt;111,334&lt;/td&gt;
&lt;td style="text-align: right;"&gt;14,836&lt;/td&gt;
&lt;td style="text-align: right;"&gt;519,161&lt;/td&gt;
&lt;td style="text-align: right;"&gt;646,275&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-17&lt;/td&gt;
&lt;td style="text-align: right;"&gt;940,485&lt;/td&gt;
&lt;td style="text-align: right;"&gt;36,171&lt;/td&gt;
&lt;td style="text-align: right;"&gt;7,682,314&lt;/td&gt;
&lt;td style="text-align: right;"&gt;8,706,034&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-18&lt;/td&gt;
&lt;td style="text-align: right;"&gt;67,033&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,357&lt;/td&gt;
&lt;td style="text-align: right;"&gt;205,921&lt;/td&gt;
&lt;td style="text-align: right;"&gt;275,707&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-21&lt;/td&gt;
&lt;td style="text-align: right;"&gt;60,904&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,182&lt;/td&gt;
&lt;td style="text-align: right;"&gt;119,055&lt;/td&gt;
&lt;td style="text-align: right;"&gt;184,117&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;14,898,405&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;374,204&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;79,256,024&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;94,719,279&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;$18.13&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;And also the same for the Mac Mini (which gets used less frequently for this
sort of thing):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left;"&gt;Date&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Input&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Output&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Cache Read&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Total Tokens&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Cost (USD)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-04&lt;/td&gt;
&lt;td style="text-align: right;"&gt;212,178&lt;/td&gt;
&lt;td style="text-align: right;"&gt;31,631&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,128,074&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,389,927&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-05&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,108,903&lt;/td&gt;
&lt;td style="text-align: right;"&gt;31,997&lt;/td&gt;
&lt;td style="text-align: right;"&gt;6,222,868&lt;/td&gt;
&lt;td style="text-align: right;"&gt;7,374,732&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-08&lt;/td&gt;
&lt;td style="text-align: right;"&gt;30,899&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,194&lt;/td&gt;
&lt;td style="text-align: right;"&gt;64,074&lt;/td&gt;
&lt;td style="text-align: right;"&gt;98,146&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-11&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,339,333&lt;/td&gt;
&lt;td style="text-align: right;"&gt;27,399&lt;/td&gt;
&lt;td style="text-align: right;"&gt;8,074,904&lt;/td&gt;
&lt;td style="text-align: right;"&gt;9,459,253&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-12&lt;/td&gt;
&lt;td style="text-align: right;"&gt;952,057&lt;/td&gt;
&lt;td style="text-align: right;"&gt;53,023&lt;/td&gt;
&lt;td style="text-align: right;"&gt;12,751,539&lt;/td&gt;
&lt;td style="text-align: right;"&gt;13,838,943&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$1.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-18&lt;/td&gt;
&lt;td style="text-align: right;"&gt;166,875&lt;/td&gt;
&lt;td style="text-align: right;"&gt;4,774&lt;/td&gt;
&lt;td style="text-align: right;"&gt;651,417&lt;/td&gt;
&lt;td style="text-align: right;"&gt;827,746&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-19&lt;/td&gt;
&lt;td style="text-align: right;"&gt;449,087&lt;/td&gt;
&lt;td style="text-align: right;"&gt;23,976&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,236,324&lt;/td&gt;
&lt;td style="text-align: right;"&gt;3,721,558&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;2026-05-22&lt;/td&gt;
&lt;td style="text-align: right;"&gt;335,151&lt;/td&gt;
&lt;td style="text-align: right;"&gt;10,012&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1,919,815&lt;/td&gt;
&lt;td style="text-align: right;"&gt;2,272,553&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left;"&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;4,594,483&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;184,006&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;35,049,015&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;39,982,858&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;$5.33&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In both cases I've removed a couple of columns to make the tables fit
better. The first was the model name (varying between
&lt;code&gt;gemini-3-flash-preview&lt;/code&gt; and &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;), the second was
&lt;em&gt;Cache Create&lt;/em&gt; (which was always 0 all the way down).&lt;/p&gt;
&lt;p&gt;From what I can see, it would appear that these two tables do cover my
increasing use of Gemini CLI for doing work on BlogMore (the first intensive
use being &lt;a href="https://blog.davep.org/2026/05/05/and-then-there-were-three.html"&gt;back around the 5th of this
month&lt;/a&gt;, if I recall correctly).
So this would seem to be a reasonably informative way to view things.&lt;/p&gt;
&lt;p&gt;All of which is to say, over a roughly three week period, while getting
things done, I've used getting on for 20,000,000 input tokens, and around
600,000 output tokens (presumably I do also need to be keeping the
114,300,000 cache read tokens in mind too). With this in mind I might now be
able to make more sense of the pricing I see for various tools.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/22/reviewing-token-usage.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>BlogMore</category>
      <category>Business</category>
      <category>Coding</category>
      <category>FOSS</category>
      <category>Free Software</category>
      <category>Gemini</category>
      <category>LLM</category>
      <pubDate>Fri, 22 May 2026 09:19:37 +0100</pubDate>
    </item>
    <item>
      <title>Reviewing the cost of BlogMore</title>
      <link>https://blog.davep.org/2026/05/21/reviewing-the-cost-of-blogmore.html</link>
      <description>&lt;p&gt;Now that we're near the end of the free or cheap &lt;a href="https://blog.davep.org/tag/copilot/"&gt;GitHub
Copilot&lt;/a&gt; party, I thought it might be interesting to look at
how much &lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt; has "cost" me to build, and
what it would have cost under the proposed new pricing structure that is
coming in next month. While I've &lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;looked at the comparison for last
month&lt;/a&gt;, I've not looked at the
whole period I've been seriously using it.&lt;/p&gt;
&lt;p&gt;So, for this review, I'm looking at all the data I can pull out of GitHub
for the months of February, March, April and May of this year. Development
of BlogMore &lt;a href="https://blog.davep.org/2026/02/20/five-days-with-copilot.html"&gt;started back in
February&lt;/a&gt; and, while it hasn't been
100% the cause of my use of Copilot premium requests, it's been almost all
of it. For the purposes of this review I'm just going to take the approach
that all I worked on was BlogMore.&lt;/p&gt;
&lt;p&gt;Remember that, even when I had free access, I had a maximum of 300 premium
requests per month. Once I lost free access I had the same number of
requests for $10 a month.&lt;/p&gt;
&lt;p&gt;Here's how those months broke down:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Month&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Paid&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Premium Requests&lt;/th&gt;
&lt;th style="text-align: right;"&gt;%age&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Predicted Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;February&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.00&lt;/td&gt;
&lt;td style="text-align: right;"&gt;249&lt;/td&gt;
&lt;td style="text-align: right;"&gt;83%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$21.67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;March&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$10.00&lt;/td&gt;
&lt;td style="text-align: right;"&gt;140&lt;/td&gt;
&lt;td style="text-align: right;"&gt;47%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$56.38&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;April&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$10.00&lt;/td&gt;
&lt;td style="text-align: right;"&gt;132&lt;/td&gt;
&lt;td style="text-align: right;"&gt;44%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$53.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;May&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$10.00&lt;/td&gt;
&lt;td style="text-align: right;"&gt;34&lt;/td&gt;
&lt;td style="text-align: right;"&gt;11%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$53.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total:&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;$30.00&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;555&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;46%&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;&lt;strong&gt;$185.51&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So, give or take, something that I've actually spent $30.00 on could have,
at best, cost me $185.51. That's assuming that the "cost" of the models I
was using stays the same. You can see that the costs have risen already in
that the predicted price from February, where I used 83% of my premium
requests, is a touch under half the cost for this month, where I've used
just 11%. From what I can see in the raw data, it's down to some models
suddenly being considered more expensive (perhaps I was doing something that
just consumed more tokens, I'm not 100% sure if I'm honest, but I don't
recall anything that seemed like harder work).&lt;/p&gt;
&lt;p&gt;Who knows what the real costs will be come June.&lt;/p&gt;
&lt;p&gt;Now, technically, the actual cost under the new regime could or should be
$156, because it would be 4 lots of the $39.00/month plan, which would
better cover that use&lt;sup id="fnref:352-1"&gt;&lt;a class="footnote-ref" href="#fn:352-1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Again though, that's assuming the actual cost of
using whatever models remains pretty stable. It also assumes that I'd want
to spend that much each month, and that I would be correctly anticipating
that I'd need that much.&lt;/p&gt;
&lt;p&gt;Also, this isn't even the total cost of getting this project done. As I've
written recently: I've been using &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini CLI&lt;/a&gt; more this
month, and while the usage there is a flat cost, until now, &lt;a href="https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html"&gt;that's changing
too&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, of course, these aren't the only games in town. I could &lt;em&gt;"go to the
source"&lt;/em&gt; and just get a sub for Claude Code or something, and as &lt;a href="https://mastodon.online/@xylophilist/116607946938312554" rel="noopener noreferrer" target="_blank"&gt;Tim
pointed out over in the
Fediverse&lt;/a&gt;,
something like &lt;a href="https://cursor.com/" rel="noopener noreferrer" target="_blank"&gt;Cursor&lt;/a&gt; does a lot of this and is just
$20/month. Which all sounds fine, but what happens when those fleeing GitHub
Copilot or Gemini CLI/&lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity&lt;/a&gt; head over to
something like Cursor? Is it sensible to expect the pricing to stay the
same&lt;sup id="fnref:352-2"&gt;&lt;a class="footnote-ref" href="#fn:352-2"&gt;2&lt;/a&gt;&lt;/sup&gt;?&lt;/p&gt;
&lt;p&gt;I guess, at this point, I'm just mulling over the same issue time and again,
but from different angles. It does seem clear to me, though, that in less
than 4 months, in my experiment of &lt;em&gt;"what happens if I use agents to develop
a Free Software tool I want?"&lt;/em&gt;, the market has gone from being entirely
reasonable to pretty much unjustifiable from a price point of view.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:352-1"&gt;
&lt;p&gt;As I understand it, the $39 gets you &lt;em&gt;almost twice&lt;/em&gt; that value in "AI
credits", so the &lt;a href="https://docs.github.com/en/copilot/concepts/billing/usage-based-billing-for-individuals#how-do-ai-credits-work" rel="noopener noreferrer" target="_blank"&gt;base allotment plus the flex
allotment&lt;/a&gt;
would cover what I've used.&amp;#160;&lt;a class="footnote-backref" href="#fnref:352-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:352-2"&gt;
&lt;p&gt;That's not even the main reason &lt;a href="https://www.theguardian.com/technology/2026/apr/21/spacex-cursor-ai-startup" rel="noopener noreferrer" target="_blank"&gt;to be concerned about a switch to
Cursor&lt;/a&gt;.&amp;#160;&lt;a class="footnote-backref" href="#fnref:352-2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/21/reviewing-the-cost-of-blogmore.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>BlogMore</category>
      <category>Business</category>
      <category>Coding</category>
      <category>Copilot</category>
      <category>FOSS</category>
      <category>Free Software</category>
      <category>GitHub</category>
      <category>LLM</category>
      <pubDate>Thu, 21 May 2026 16:51:18 +0100</pubDate>
    </item>
    <item>
      <title>It's all so vague</title>
      <link>https://blog.davep.org/2026/05/21/its-all-so-vague.html</link>
      <description>&lt;p&gt;The recent changes to pricing and usage, in relation to &lt;a href="https://blog.davep.org/tag/ai/"&gt;AI&lt;/a&gt;,
aren't just about agents and coding. Not only have I seen &lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;GitHub
Copilot&lt;/a&gt; and &lt;a href="https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html"&gt;Gemini
CLI&lt;/a&gt; hugely restrict their
offerings for the same price, it's also come to at least one "general" tool
I use too.&lt;/p&gt;
&lt;p&gt;For a while now, as part of a &lt;a href="https://one.google.com/" rel="noopener noreferrer" target="_blank"&gt;Google One&lt;/a&gt;
subscription I keep, I've had a &lt;em&gt;Gemini AI Pro&lt;/em&gt; subscription. I've generally
found this useful, mainly using the Gemini app on my &lt;a href="https://blog.davep.org/tag/iphone/"&gt;iPhone&lt;/a&gt;
to research things&lt;sup id="fnref:302-1"&gt;&lt;a class="footnote-ref" href="#fn:302-1"&gt;1&lt;/a&gt;&lt;/sup&gt;, and also commonly using the web application to help
proofread blog posts, and sometimes explore coding problems. Another way I
use it is via &lt;a href="https://blog.davep.org/tag/notebooklm/"&gt;NotebookLM&lt;/a&gt;. The subscription has meant
that I can do all of this without ever having to worry about hitting any
usage limits. While I'm sure they were there, I was never aware of them and
never hit them.&lt;/p&gt;
&lt;p&gt;In the last 48 hours, along with the changes to the coding agent offerings,
Gemini itself has moved to &lt;a href="https://support.google.com/gemini/answer/17004136?visit_id=639149487459163684-1024316691&amp;amp;p=plan_updates&amp;amp;rd=1" rel="noopener noreferrer" target="_blank"&gt;a compute-based usage limit
approach&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Gemini will move to compute-based usage limits that will refresh every 5
hours until you reach your weekly limit. Calculation of your usage will
factor in the complexity of your prompt, the features you use, and the
length of your chat. Paid users have higher limits than users without a
Google AI subscription.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The thing that bothers me about this -- and I've seen this with other
companies in this market too -- is just how &lt;em&gt;vague&lt;/em&gt; the wording is. Look at
this table that is supposed to inform you about your usage limits, depending
on your plan:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Limit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Without a plan&lt;/td&gt;
&lt;td&gt;Standard limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Plus&lt;/td&gt;
&lt;td&gt;2x higher than standard limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Pro&lt;/td&gt;
&lt;td&gt;4x higher than standard limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Ultra&lt;/td&gt;
&lt;td&gt;5x or 20x higher than AI Pro depending on your subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Okay, great, thanks to my Pro plan I get 4x the limits. Awesome. But... 4x
&lt;strong&gt;what&lt;/strong&gt; exactly? What exactly are the standard limits? How do I assess
which plan is better for me? How do I compare Google's product against
another offering?&lt;/p&gt;
&lt;p&gt;I &lt;em&gt;suspect&lt;/em&gt;, for the most part, I'll be fine where I am. So far today I've
used Gemini to proofread &lt;a href="https://blog.davep.org/2026/05/21/antigravity-cli-now-on-homebrew.html"&gt;the previous post I
wrote&lt;/a&gt;, there was a bit of
back and forth as I edited my post, and that cost me 1% of my five hour
window.&lt;/p&gt;
&lt;p&gt;&lt;img alt="My usage limits" height="374" loading="lazy" src="https://blog.davep.org/attachments/2026/05/21/usage-limits.webp#centre" width="564" /&gt;&lt;/p&gt;
&lt;p&gt;What impact that has on my weekly usage, I don't know, but based on this it
would appear to be almost nothing.&lt;/p&gt;
&lt;p&gt;I can appreciate that it's been a bit of a free party for a while, and now
each provider has to start to have this cost them less -- if not actually
make them money -- before the whole thing collapses. Fair enough. But it's
annoying as hell to not be able to gauge &lt;em&gt;what&lt;/em&gt; I'm actually getting, or
easily compare products.&lt;/p&gt;
&lt;p&gt;That's not to say that I know &lt;em&gt;how&lt;/em&gt; this can be communicated well. There's a
flip-side to all of this. If I go and look at the Anthropic website and
their detailed pricing information it seems to take it to the other extreme.
There's so much you need to know and understand, and you'd need to know so
much about how their models work and how your needs would interact with
them... it feels like you need specialised training to comprehend any of it.
While I can't find it back at the moment, I seem to remember a similar issue
with trying to follow such information with GitHub Copilot.&lt;/p&gt;
&lt;p&gt;If it doesn't exist already, I suspect there's a market here for a site that
makes it incredibly simple to plug in your requirements and have a product
recommendation be made.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:302-1"&gt;
&lt;p&gt;In the past six months I've found it's generally a far better method
of finding things than simply using a search engine; no ads, cited
sources, results that are easy to revisit, etc.&amp;#160;&lt;a class="footnote-backref" href="#fnref:302-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/21/its-all-so-vague.html</guid>
      <category>AI</category>
      <category>Business</category>
      <category>Gemini</category>
      <category>Google</category>
      <category>LLM</category>
      <category>NotebookLM</category>
      <pubDate>Thu, 21 May 2026 13:07:54 +0100</pubDate>
    </item>
    <item>
      <title>Antigravity CLI now on Homebrew</title>
      <link>https://blog.davep.org/2026/05/21/antigravity-cli-now-on-homebrew.html</link>
      <description>&lt;p&gt;Part of my morning routine, when I sit down at my desk, is to run updates.
This ritual updates, &lt;a href="https://github.com/davep/fish/blob/main/conf.d/abbr.d/updates.fish" rel="noopener noreferrer" target="_blank"&gt;amongst other
things&lt;/a&gt;,
anything I've installed via Homebrew. As this ran I noticed
&lt;code&gt;antigravity-cli&lt;/code&gt; turn up as an addition to the index of things to install.&lt;/p&gt;
&lt;p&gt;Noticing this, I decided to swap from the &lt;em&gt;"trust me, bro"&lt;/em&gt; installation of
the CLI app from &lt;a href="https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html"&gt;yesterday&lt;/a&gt; to
managing this via Homebrew. From what I could tell, cleaning yesterday's
installation was just a case of removing the 130MB &lt;code&gt;agy&lt;/code&gt; executable that had
been dropped in &lt;code&gt;~/.local/bin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;With that done, I did:&lt;/p&gt;
&lt;div class="highlight" data-lang="sh"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;brew&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;antigravity-cli
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and got a failure:&lt;/p&gt;
&lt;div class="highlight" data-lang="text"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Error: It seems there is already a Binary at '/opt/homebrew/bin/agy'.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;When installing &lt;code&gt;antigravity&lt;/code&gt; via Homebrew yesterday, I seem to remember
seeing that it created an &lt;code&gt;agy&lt;/code&gt; command as a wrapper for the GUI app at some
point. Assuming this will have been sorted out, I did a quick:&lt;/p&gt;
&lt;div class="highlight" data-lang="sh"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;brew&lt;span class="w"&gt; &lt;/span&gt;reinstall&lt;span class="w"&gt; &lt;/span&gt;antigravity
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;followed by:&lt;/p&gt;
&lt;div class="highlight" data-lang="sh"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;brew&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;antigravity-cli
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and that all worked.&lt;/p&gt;
&lt;p&gt;So, as of right now, I have a working Antigravity GUI application &lt;em&gt;and&lt;/em&gt; an
Antigravity CLI and both of them are installed via Homebrew.&lt;/p&gt;
&lt;p&gt;Feels tidy.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/21/antigravity-cli-now-on-homebrew.html</guid>
      <category>AI</category>
      <category>Antigravity</category>
      <category>Coding</category>
      <category>Google</category>
      <category>Homebrew</category>
      <pubDate>Thu, 21 May 2026 08:58:41 +0100</pubDate>
    </item>
    <item>
      <title>The Gemini bait and switch</title>
      <link>https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html</link>
      <description>&lt;p&gt;Well, what a surprise, nobody could have seen it coming: it does seem to be
&lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;bait and switch season&lt;/a&gt; in
LLM/agent land.&lt;/p&gt;
&lt;p&gt;As I mentioned &lt;a href="https://blog.davep.org/2026/05/20/goodbye-gemini-cli.html"&gt;earlier today&lt;/a&gt;, when I
ran up &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini CLI&lt;/a&gt; to have it work on a change to
&lt;a href="https://blog.davep.org/tag/blogmore/"&gt;BlogMore&lt;/a&gt; in the background, I got a notification that I
should be swapping to &lt;a href="https://blog.davep.org/tag/antigravity/"&gt;Antigravity CLI&lt;/a&gt; instead. I let
Gemini CLI get on with the change anyway, but resolved to install
Antigravity CLI and give it a go. While there's still a touch under a month
of use of Gemini CLI to go (based on the blog post), it seems sensible to
get to know the new tool as soon as possible.&lt;/p&gt;
&lt;p&gt;Installing Antigravity was a little bit of a faff. Looking at the
documentation, you have to install the main application itself first,
authorise with that, and then you can install and use the CLI. Fair enough.
Rather than download the DMG from their website, I decided to go with the
Homebrew installation (I like to try and keep track of what I have installed
and this helps me do that).&lt;/p&gt;
&lt;p&gt;So I installed that, ran it up, went through some setup questions, then
finally got dropped in something that looked like it wanted to be an IDE of
sorts. Nah, I'm fine, &lt;a href="https://blog.davep.org/tag/emacs/"&gt;I like to work elsewhere&lt;/a&gt;. But that was
okay given that I just wanted to get to &lt;a href="https://antigravity.google/product/antigravity-cli" rel="noopener noreferrer" target="_blank"&gt;the
CLI&lt;/a&gt; anyway. Before I
did that though, having installed this app, I saw that &lt;em&gt;it&lt;/em&gt; was showing a
&lt;em&gt;"Restart to update"&lt;/em&gt; notification. So I did that, waited a wee while, and
then finally was presented with something that looked totally different. Now
I had an application that looked almost exactly like the main Gemini website
(or &lt;a href="https://gemini.google/mac/" rel="noopener noreferrer" target="_blank"&gt;the Gemini macOS application&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;So that was kind of weird.&lt;/p&gt;
&lt;p&gt;Finally I was in a position to install the CLI itself. From what I can see
it's not available via Homebrew yet, and the &lt;a href="https://antigravity.google/download#antigravity-cli" rel="noopener noreferrer" target="_blank"&gt;installation
instructions&lt;/a&gt; are the
usual &lt;em&gt;"curl this through bash, trust me bro"&lt;/em&gt; affair. Having done that
(yes, yes, &lt;a href="https://www.djm.org.uk/posts/protect-yourself-from-non-obvious-dangers-curl-url-pipe-sh/" rel="noopener noreferrer" target="_blank"&gt;I
know&lt;/a&gt;...),
I was all set.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Antigravity CLI" height="692" loading="lazy" src="https://blog.davep.org/attachments/2026/05/20/agy.webp#centre" width="788" /&gt;&lt;/p&gt;
&lt;p&gt;Credit where it's due, when I ran it up it just worked. As in: I didn't need
to authorise again or anything like that; the fact that I'd set everything
up via the main application did seem to have done that job.&lt;/p&gt;
&lt;p&gt;After this though, it kind of went a little downhill. The first thing I
noticed was the set of models available was rather different from Gemini
CLI. I mean, okay, that's fair, I guess you expect things like that to
change, but in my inexperienced&lt;sup id="fnref:338-1"&gt;&lt;a class="footnote-ref" href="#fn:338-1"&gt;1&lt;/a&gt;&lt;/sup&gt; view of what these agentic tools offer,
it looked like all the options were a little more... pricey, perhaps?&lt;/p&gt;
&lt;p&gt;&lt;img alt="Gemini CLI vs Antigravity CLI" height="264" loading="lazy" src="https://blog.davep.org/attachments/2026/05/20/old-vs-new.webp#centre" width="711" /&gt;&lt;/p&gt;
&lt;p&gt;Still, I'm sure that sensible defaults are chosen out of the box, so it
seemed like a good time to give this new tool a shot. I had &lt;a href="https://github.com/davep/blogmore/issues/500" rel="noopener noreferrer" target="_blank"&gt;a nice little
problem for it to work on&lt;/a&gt; so
that felt like a great test. It's hard to say for sure, but I feel like an
issue like that, with the right prompt, would have used up somewhere between
3% and 5% of the daily quota in Gemini CLI, using &lt;code&gt;Auto (Gemini 3)&lt;/code&gt;. That
was the default out of the box and, &lt;a href="https://blog.davep.org/2026/05/13/when-gemini-cli-gets-stuck.html"&gt;aside from tapping the models to try
and unstick them&lt;/a&gt;, I've never
really set it to anything else and the results have always been fine. With
all this in mind I set Antigravity to work. Given that there didn't seem to
be any sort of "Auto" option, I let it go with &lt;code&gt;Gemini 3.5 Flash (High)&lt;/code&gt;,
which is what it was set to out of the box.&lt;/p&gt;
&lt;p&gt;Yikes.&lt;/p&gt;
&lt;p&gt;&lt;img alt="The model quotas" height="482" loading="lazy" src="https://blog.davep.org/attachments/2026/05/20/model-quota.webp#centre" width="542" /&gt;&lt;/p&gt;
&lt;p&gt;As I read that, and as I recall what happened, it took about 25 minutes to
get to a reasonable solution to the request, with me pushing back on a
couple of wild choices it made about how to change the code around. In doing
this it left me with just 20% of the quota free for the next four and a half
hours.&lt;/p&gt;
&lt;p&gt;Yikes.&lt;/p&gt;
&lt;p&gt;This is fine in this particular situation, where I'm conducting a long-term
experiment and often letting the tool run at reasonably self-contained
problems, in the background, while I get on with other more important
things. But if I were to try and use this, as I have Gemini CLI, for an
evening of sofa-hacking, refactoring lots of code or adding a handful of new
features... that's not going to be sustainable. Any such session is going to
grind to a halt pretty quickly. Presumably the intended solution here is
that I buy myself lots of "AI credits".&lt;/p&gt;
&lt;p&gt;&lt;img alt="I can always buy more credits" height="148" loading="lazy" src="https://blog.davep.org/attachments/2026/05/20/use-credits.webp#centre" width="502" /&gt;&lt;/p&gt;
&lt;p&gt;I will experiment more, and intend to try and work out what the point,
purpose and impact of each of the models are, as found in Antigravity.
Doubtless there's a smarter approach I can take where it'll cost less quota
for similar results. What is for sure though is that Antigravity CLI &lt;strong&gt;is
not&lt;/strong&gt; a drop-in replacement for Gemini CLI. It seems to be a different way
of working, with different models, and different considerations. Also with
&lt;a href="https://github.com/google-gemini/gemini-cli/discussions/27274" rel="noopener noreferrer" target="_blank"&gt;less openness
too&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It's interesting to drop in on the &lt;a href="https://www.reddit.com/r/GeminiCLI/" rel="noopener noreferrer" target="_blank"&gt;Gemini CLI
subreddit&lt;/a&gt;, where &lt;a href="https://www.reddit.com/r/GeminiCLI/comments/1thweon/gemini_cli_is_transitioning_to_the_new/" rel="noopener noreferrer" target="_blank"&gt;the members seem to
be experiencing what the Copilot folk were a week or so
back&lt;/a&gt;.
People finding they're chewing through their quota in no time, only with the
added frustration of having to transition to a whole new application that
seems to be lacking some features they're used to.&lt;/p&gt;
&lt;p&gt;None of this is shocking to me -- although I'll admit that I thought the
Gemini CLI ride might last a wee while longer than it did -- nor, I'd hope,
to anyone else, but it continues to be fascinating to watch the squeeze
being applied all around this tool space. This is going to be an
increasingly worse time for anyone wanting to mess with agents for hobby
projects. The idea of a tool that lets you get unambitious projects done for
the price of a coffee or two, per month: that was a reasonable prospect.
When the real cost turns out to be similar to an actual utility bill for
your home... I know some people have expensive hobbies, but this would not
seem to be a rewarding one at the sorts of costs we're starting to look at.&lt;/p&gt;
&lt;p&gt;Once again, it's going to be interesting to see how engineering departments,
and AI-embracing companies as a whole, react, as they become more and more
invested in these third-party services, and less able to actually do things
themselves, while at the same time the suppliers of those services squeeze
them harder to try and make this adventure pay off.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:338-1"&gt;
&lt;p&gt;I say "inexperienced", but perhaps I'm being unfair to myself here.
While I'm not 100%, all in, fully-steeped in agentic lore, and even
though I've not been living this stuff full time for the past year or
so, I do feel I'm a good representation of someone with a long
background in the software development industry who is coming to these
tools with reasonable expectations.&amp;#160;&lt;a class="footnote-backref" href="#fnref:338-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/20/the-gemini-bait-and-switch.html</guid>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <category>Antigravity</category>
      <pubDate>Wed, 20 May 2026 17:04:26 +0100</pubDate>
    </item>
    <item>
      <title>Goodbye Gemini CLI</title>
      <link>https://blog.davep.org/2026/05/20/goodbye-gemini-cli.html</link>
      <description>&lt;p&gt;I just sat down at my desk and fired up Gemini CLI to get it to make a
change to &lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt;, and I see this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Goodbye Gemini CLI" height="740" loading="lazy" src="https://blog.davep.org/attachments/2026/05/20/goodbye-cli.webp#centre" width="900" /&gt;&lt;/p&gt;
&lt;p&gt;I've yet to actually look at Antigravity, so I know pretty much nothing
about it at this point. After a brief glance &lt;a href="https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/" rel="noopener noreferrer" target="_blank"&gt;at the link that was
given&lt;/a&gt;
it &lt;em&gt;seems&lt;/em&gt; like it's a positive change, perhaps. Honestly, I'm not sure. But
that's kind of moot, I don't really have a choice. Within a month Gemini CLI
is going to stop working anyway.&lt;/p&gt;
&lt;p&gt;This is yet another reminder that, while plenty of folk are pushing these
tools as &lt;em&gt;the&lt;/em&gt; answer to the "problem" of software development, they're not
really stable tools, it's not really a stable market, and, to some degree,
if you fully rely on these tools, you're constantly at the mercy of the
whims of some other company.&lt;/p&gt;
&lt;p&gt;I'm glad I have a project where I'm forcing reliance on them as an
experiment, so I can see and experience this first-hand, but I'd be very
concerned for someone who's fully bought into them.&lt;/p&gt;
&lt;p&gt;Perhaps there's a market here for a "Killed by AI" website, much like
&lt;a href="https://killedbygoogle.com/" rel="noopener noreferrer" target="_blank"&gt;Killed by Google&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Or, maybe I'm being unfair here; it could be that this is more akin to
Google solving the chat problem by constantly moving people from one chat
application to another, while also having chat abilities in all sorts of
other products...&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/20/goodbye-gemini-cli.html</guid>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <category>Antigravity</category>
      <pubDate>Wed, 20 May 2026 08:58:35 +0100</pubDate>
    </item>
    <item>
      <title>The highs and the lows</title>
      <link>https://blog.davep.org/2026/05/18/the-highs-and-the-lows.html</link>
      <description>&lt;p&gt;Over the weekend I read a comment, I think it was on Hacker News, where
someone said they were having fun building things using AI. This was in
response to someone saying that using AI took the fun out of programming. In
their reply, the person qualified their answer with something along the
lines of &lt;em&gt;"the highs are higher and the lows are lower"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I think I agree.&lt;/p&gt;
&lt;p&gt;My first ever exposure to any sort of computer was a Sinclair ZX80 that my
maths teacher brought into school. After a class he plugged it in and let me
and a friend take a look. To this day I still remember looking in the
manual, looking at the tutorial, and at some point typing...&lt;/p&gt;
&lt;p&gt;&lt;img alt="PRINT 1+1" height="107" loading="lazy" src="https://blog.davep.org/attachments/2026/05/18/one-plus-one.webp#centre" width="237" /&gt;&lt;/p&gt;
&lt;p&gt;When I hit &lt;kbd&gt;NEW LINE&lt;/kbd&gt; and a &lt;code&gt;2&lt;/code&gt; appeared on the screen I was
thrilled, I was hooked. I'd typed something that &lt;strong&gt;appeared on a TV screen&lt;/strong&gt;
and then I did something that &lt;strong&gt;made the answer appear on the TV screen&lt;/strong&gt;.
This felt like magic.&lt;/p&gt;
&lt;p&gt;I've been hooked on writing code ever since.&lt;/p&gt;
&lt;p&gt;In that time the highs have been high, and the lows have been low, but I
think it's fair to say that I've been doing this for long enough (it's now
45 or 46 years since I typed that first instruction) that things have
settled down. I still get a thrill when writing code, and I still get fed up
with it from time to time, but the distance between the two isn't what it
once was.&lt;/p&gt;
&lt;p&gt;Which brings me back to the comment I read: I think I can safely say that,
while properly experimenting with agents, while building
&lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt; to test this approach out, I have
been through a period of higher highs and lower lows when it comes to how I
feel about the code and the project itself. When I &lt;a href="https://blog.davep.org/2026/02/20/five-days-with-copilot.html"&gt;kicked off
development&lt;/a&gt; it was genuinely
thrilling to have gone from an empty repository to a comprehensively-working
initial version in just a matter of hours. Likewise it was thrilling to have
gone from nothing to &lt;a href="https://blog.davep.org/2026/02/19/a-new-engine.html"&gt;rebuilding this blog with the
tool&lt;/a&gt; in just a few days. It would be a lie
to suggest that it wasn't fun and exciting to see the result.&lt;/p&gt;
&lt;p&gt;But, as I wrote back then, I was also very mindful of how empty the process
felt at times, how I missed the whole "flow state" connection to building
out the application. There have also been many moments along the way, which
I've documented at times on this blog, where I've felt the project was
getting stuck down a dead-end with respect to how the code was going.&lt;/p&gt;
&lt;p&gt;And then there's all the times Copilot and/or Gemini CLI just plain stopped
getting stuff done.&lt;/p&gt;
&lt;p&gt;Given this -- given the highs especially -- I can see why some people get
totally hooked, go all in, get consumed by the illusion of how powerful
these tools are. I can see why they'd buy into and embrace the mindset that
trots out the AI-equivalent of the crypto-hype &lt;em&gt;"stay poor"&lt;/em&gt; retort to those
who display any level of scepticism.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/18/the-highs-and-the-lows.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Coding</category>
      <category>Hacker News</category>
      <category>history</category>
      <pubDate>Mon, 18 May 2026 08:34:29 +0100</pubDate>
    </item>
    <item>
      <title>Busy doing nothing</title>
      <link>https://blog.davep.org/2026/05/17/busy-doing-nothing.html</link>
      <description>&lt;p&gt;The first company I worked for full-time had two offices. One in the south
of England, another in the north. Despite being a northern lad, I'd somehow
found myself working in the southern office. While the company used a few
languages, there was a split between the two offices, mostly driven by the
fact that the northern office was more minicomputer-based (lots of DEC stuff
as I recall), whereas at our office it was more PC-based (we were an
&lt;a href="https://en.wikipedia.org/wiki/Apricot_Computers" rel="noopener noreferrer" target="_blank"&gt;Apricot&lt;/a&gt; dealership,
amongst other things). At our office, the predominant language was
&lt;a href="https://en.wikipedia.org/wiki/Clipper_(programming_language)" rel="noopener noreferrer" target="_blank"&gt;Clipper&lt;/a&gt;
(later to be called CA-Clipper).&lt;/p&gt;
&lt;p&gt;At one point, at the other office, they hired someone to start doing Clipper
coding up there too, and he was handed his first project, to add a new
report to an existing system. After around three weeks, he just didn't turn
up for work one day, called in to say he'd quit (or so I was told).
Meanwhile, the work he had done didn't seem to be working. If someone took
the newly-compiled system and ran the new report, nothing happened.&lt;/p&gt;
&lt;p&gt;When the code was looked at, it became clear why. The new module had one
line of code. Well, not one line of code exactly: it had a one-line comment.&lt;/p&gt;
&lt;div class="highlight" data-lang="clipper"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;* This is too hard. I can't do this.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That was it. He'd spent those weeks appearing to work on the requirement,
but never produced a single line of actual code.&lt;/p&gt;
&lt;p&gt;I felt really bad for the guy. He'd somehow managed to make it through the
interview, somehow managed to convince others, and himself, that he was
capable of working with Clipper and writing code (probably made easier by
the fact that the office in question wasn't a "Clipper shop"). But when it
came to actually getting on with a job, he'd been unable to get it done
(and, apparently, had felt unable to ask anyone around him for help, which
probably says a lot about that office and the industry at the time&lt;sup id="fnref:361-1"&gt;&lt;a class="footnote-ref" href="#fn:361-1"&gt;1&lt;/a&gt;&lt;/sup&gt;).&lt;/p&gt;
&lt;p&gt;I bring this up because I was reminded of this story when I was tinkering
with &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini&lt;/a&gt; last night. While working on the &lt;a href="https://github.com/davep/blogmore/pull/492" rel="noopener noreferrer" target="_blank"&gt;optimised
images PR&lt;/a&gt;, towards the end of
the session, I asked it to make a particular change. It then started
"thinking", and after a couple of minutes appeared to get to work on the
problem. It kept printing, scrubbing out and printing again, lines of text
of what it was apparently doing. This went on for something like five
minutes. Eventually it announced that the work had been done, explained what
it had changed, and how it had implemented the requirement.&lt;/p&gt;
&lt;p&gt;I flipped to another terminal to test out the work and... no changes. Zero
changes. Nothing to diff, nothing to commit.&lt;/p&gt;
&lt;p&gt;I flipped back to the CLI app, mentioned that nothing had changed, and it
then very quickly made some edits; nothing spectacular, a 14-line diff
affecting five lines (to start with).&lt;/p&gt;
&lt;p&gt;This is the first time I've seen this, and I guess yet another thing I need
to keep an eye out for. Of course I would notice if I asked for some work to
be done and it wasn't done (I did), but it feels like another method via
which this "productivity tool" can make you less productive.&lt;/p&gt;
&lt;p&gt;If you give me the under-qualified, solution-paralysed, entry-level
developer who doesn't know how to proceed, I can help them. Their current
inability to actually bash on the keyboard and make code appear isn't the
problem here. Giving them a tool that will busy-work for five minutes and
produce nothing isn't going to help them, neither will things improve if
they're given a tool that &lt;em&gt;does&lt;/em&gt; emit all the code. Removing the human
element is going to remove safety, growth and also domain knowledge. I feel
it's going to rot software engineering departments from within, if handled
badly.&lt;/p&gt;
&lt;p&gt;Watching people talk about agents as if they're the solution, and that
writing code is now a solved problem, really troubles me. I won't question
the idea that it can be a very useful tool -- goodness knows I've found it
useful recently -- but I do question the common assertion that it finally is
a &lt;a href="https://en.wikipedia.org/wiki/No_Silver_Bullet" rel="noopener noreferrer" target="_blank"&gt;silver bullet&lt;/a&gt;. I find
this to be lazy, dangerous and harmful thinking.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:361-1"&gt;
&lt;p&gt;Because of course we're so much better as an industry these days.&amp;#160;&lt;a class="footnote-backref" href="#fnref:361-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/17/busy-doing-nothing.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <pubDate>Sun, 17 May 2026 10:08:03 +0100</pubDate>
    </item>
    <item>
      <title>Gemini CLI vs GitHub Copilot (the result)</title>
      <link>https://blog.davep.org/2026/05/16/gemini-cli-vs-github-copilot-the-result.html</link>
      <description>&lt;p&gt;Following on from &lt;a href="https://blog.davep.org/2026/05/16/gemini-cli-vs-github-copilot-redux.html"&gt;this morning's initial
experiment&lt;/a&gt;, I think
I'm settling on a winner. Rather than be annoying and have you scroll to the
bottom to find out: it's Gemini CLI. Here's how I found the process played
out, and why I'm settling for one over the other.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="gemini-cli"&gt;Gemini CLI&lt;/h2&gt;
&lt;p&gt;Initially this was an absolute mess. After letting it initially work on the
problem, the resulting code didn't even really run. The first go, and the
three follow-up prompt/result cycles that followed, all resulted in code
that had runtime errors. I'm pretty sure it didn't even bother to try and do
any adequate testing. This is odd given I've generally seen it do an okay
job when it comes to writing and running tests.&lt;/p&gt;
&lt;p&gt;Once I had the code in a stable state, with all type checking, linting and
testing passing, it still didn't work. No matter how I tried to use the new
facility it just didn't make a difference. No images were optimised. In the
end I dived into the code, with the help of its attempt at debugging (it
added &lt;code&gt;print&lt;/code&gt; calls to try and get to the bottom of things -- how very
human!), diagnosed what I thought was the issue (it was looking in the wrong
location for the files to optimise), told it my hypothesis and let it check
if I was right. It concluded I was and fixed the problem.&lt;/p&gt;
&lt;p&gt;Since then I've had a working implementation of &lt;a href="https://github.com/davep/blogmore/issues/490" rel="noopener noreferrer" target="_blank"&gt;the initial
plan&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once that was in place it's been a pretty smooth journey. I've asked it
questions about the implementation, had my concerns set to rest, had some
concerns addressed and fixed, improved some things here and there, added new
features, etc.&lt;/p&gt;
&lt;p&gt;All of this has left me with 18% of my daily quota used up. While I think
this is the highest I've ever got while using Gemini CLI, it still feels
like I got a lot of things done for not a lot of quota use.&lt;/p&gt;
&lt;h2 id="github-copilot"&gt;GitHub Copilot&lt;/h2&gt;
&lt;p&gt;Initially I thought this had managed to one-shot the problem. Once it had
finished its initial work the code ran without incident and produced all the
optimised files. Or so I thought. Doing a little more testing, though, it
became clear it was only optimising a subset of the images &lt;em&gt;and&lt;/em&gt; it didn't
seem to be producing the actual HTML to use the images.&lt;/p&gt;
&lt;p&gt;On top of this it didn't even follow the full plan that was laid out in the
issue it was assigned. For example: once I'd got it doing the main part of
the work, it became apparent that it had pretty much ignored the whole idea
of using a cache to speed this process up. I had to remind it to do this.&lt;/p&gt;
&lt;p&gt;At one point I switched from the in-PR web interaction with Copilot, and
used the local CLI instead. When I ran that up it warned me that I was
already 50% of the way through some sort of rate limit and this wouldn't
reset for another 3 hours. I think I was about 40 minutes into letting it
try and do the work at this point.&lt;/p&gt;
&lt;p&gt;After a bit more testing and follow-up prompts, I got to a point where I had
something that looked like it was working; albeit in a slightly different
way from how Gemini CLI did it (the Copilot approach was writing the
optimised images out to the &lt;code&gt;extras&lt;/code&gt; directory, mixing them in with my own
images; Gemini opted for having a separate directory for optimised images
within the &lt;code&gt;static&lt;/code&gt; hierarchy).&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;At this point I will admit to &lt;em&gt;not&lt;/em&gt; having carefully reviewed the code of
either agent; that's a job still to do. But while Gemini got off to a very
rocky start, with a bit of guidance it seemed to arrive at an implementation
I'm happy with, and one that seems to be working as intended. While it
didn't anticipate all the edge cases, when I asked about them it easily
found and implemented solutions for them. Moreover, the fact that I could do
all of this and confidently know the "cost" made a huge difference. Copilot
seems to generally approach this like a quota or rate limit should be a
lovely surprise that will destroy your flow; Gemini has it there and in
front of you, all the time.&lt;/p&gt;
&lt;p&gt;As for the general idea that I'm working on: I &lt;em&gt;think&lt;/em&gt; I'm going to
implement it. Weirdly I'm slightly nervous about building the blog such that
it won't be using the images &lt;strong&gt;I&lt;/strong&gt; created, but I also recognise that that's
a little irrational. Meanwhile I'm very curious about the impact this might
have &lt;a href="https://blog.davep.org/2026/04/16/i-should-use-webp.html"&gt;on the PageSpeed measurement&lt;/a&gt; of
the blog. While it's far from horrific, image size optimisation and size
declaration seem to be fairly high on the things that are impacting the
performance score (currently sat at 89 for the front page of the blog, as I
type this).&lt;/p&gt;
&lt;p&gt;The other thing that gives me pause for thought about merging this in, and
then subsequently using it, is that I've &lt;em&gt;just&lt;/em&gt; &lt;a href="https://blog.davep.org/2026/05/15/converted-to-webp.html"&gt;finished migrating all
images to webp&lt;/a&gt;, and so saving a lot of
space in the built version of the blog. Generating all the responsive sizes
of the images eats that up again. With this feature off, the built version
of the blog stands at about 84MB; with it on, this rises to 133MB. That
extra 49MB more than eats up the 24MB saving I made earlier.&lt;/p&gt;
&lt;p&gt;On the other hand: storage is a thing for GitHub to worry about, what I'm
worrying about here, and aiming to improve, is the reader's experience.&lt;/p&gt;
&lt;p&gt;I'm going to sit on this for a short while and play around with it, at least
until I get impatient and say "what the hell" and run with it.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/16/gemini-cli-vs-github-copilot-the-result.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>BlogMore</category>
      <category>Coding</category>
      <category>Copilot</category>
      <category>Gemini</category>
      <category>GitHub</category>
      <category>Google</category>
      <category>Python</category>
      <pubDate>Sat, 16 May 2026 15:00:23 +0100</pubDate>
    </item>
    <item>
      <title>Gemini CLI vs GitHub Copilot (redux)</title>
      <link>https://blog.davep.org/2026/05/16/gemini-cli-vs-github-copilot-redux.html</link>
      <description>&lt;p&gt;Given I'm &lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;almost certainly&lt;/a&gt;
going to drop GitHub Copilot starting next month, I'm using Gemini CLI more
and more for &lt;a href="https://blogmore.davep.dev/" rel="noopener noreferrer" target="_blank"&gt;BlogMore&lt;/a&gt;. Yesterday evening, I
used it to plan out an idea for a change to the application. Now that I've
&lt;a href="https://blog.davep.org/2026/05/15/converted-to-webp.html"&gt;migrated all images to WebP&lt;/a&gt;, I thought
it might be interesting to look at the idea of having a responsive approach
to images. This is something I don't know a whole lot about (never having
needed to bother with it before), but it also happens that I need to read up
on this anyway for something related to the day job; given this, it felt
like a good time to experiment.&lt;/p&gt;
&lt;p&gt;Together with Gemini CLI &lt;a href="https://github.com/davep/blogmore/issues/490" rel="noopener noreferrer" target="_blank"&gt;a plan was
created&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This morning, over second coffee, I've kicked off the job of implementing it
and, honestly, Gemini CLI is really struggling. It "implemented" the change
pretty quickly, within minutes, but it just plain didn't work. Since then
I've had it iterate over the issue four times and now it's struggling to
make it work at all. It's still beavering away on this as I type, and
consuming daily quota at a fair rate too.&lt;/p&gt;
&lt;p&gt;So, while I still have GitHub Copilot, this feels like a good point to play
them off against each other at least one more time. Having saved the plan
Gemini wrote last night as an issue, &lt;a href="https://github.com/davep/blogmore/pull/491" rel="noopener noreferrer" target="_blank"&gt;I've assigned it to
Copilot&lt;/a&gt; (using Claude Sonnet
4.6). As I type this, I have Gemini racing to get this working in a terminal
window behind Emacs, meanwhile there's Claude doing its thing in GitHub's
cloud.&lt;/p&gt;
&lt;p&gt;It'll be interesting to see if Copilot manages to one-shot this, for sure
Gemini is far off a one-shot implementation.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/16/gemini-cli-vs-github-copilot-redux.html</guid>
      <category>AI</category>
      <category>BlogMore</category>
      <category>Coding</category>
      <category>Copilot</category>
      <category>Gemini</category>
      <category>GitHub</category>
      <category>Google</category>
      <category>Python</category>
      <pubDate>Sat, 16 May 2026 09:30:23 +0100</pubDate>
    </item>
    <item>
      <title>Gemini is kind of messy</title>
      <link>https://blog.davep.org/2026/05/14/gemini-is-kind-of-messy.html</link>
      <description>&lt;p&gt;As I've mentioned a few times recently, I'm using Google's &lt;a href="https://blog.davep.org/tag/gemini/"&gt;Gemini
CLI&lt;/a&gt; more at the moment; in part because I have a Gemini Pro
account so it makes sense to use it, but also &lt;a href="https://blog.davep.org/2026/05/13/the-copilot-bait-and-switch.html"&gt;in anticipation of dropping
anything to do with Copilot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While I've had some troubles with it -- as can be seen
&lt;a href="https://blog.davep.org/2026/05/03/a-stroppy-agent.html"&gt;here&lt;/a&gt;,
&lt;a href="https://blog.davep.org/2026/05/12/the-other-unreliable-buddy.html"&gt;here&lt;/a&gt; and
&lt;a href="https://blog.davep.org/2026/05/13/when-gemini-cli-gets-stuck.html"&gt;here&lt;/a&gt; for example -- I'm
mostly having an okay time. The code it writes isn't too bad, and while it
seems to need a little more direction and overseeing than I've been used to
while using Copilot/Claude, it generally seems to arrive at sensible
solutions for the problems I'm throwing at it&lt;sup id="fnref:294-1"&gt;&lt;a class="footnote-ref" href="#fn:294-1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;One difference with working with Copilot CLI that I &lt;em&gt;have&lt;/em&gt; noticed, however,
is that Gemini doesn't seem to care for cleaning up after itself. When faced
with a problem it'll often write a test program or two, perhaps even create
a subdirectory to hold some test data, run the tests and be sure about the
outcome. This is good to see. It's not unusual for me to do this myself (or
at least in the REPL anyway). But it really doesn't seem to care to actually
clean up those tests. A handful of times now I've had it leave those files
and directories kicking around. I've even said to it &lt;em&gt;"please clean up your
test files"&lt;/em&gt; and it's gone right ahead and done so, which suggests it
"knows" what it did and what it should do.&lt;/p&gt;
&lt;p&gt;This also feels like a new source of mess for all the people who commit
their executables and the like to their repositories. That should be fun.&lt;/p&gt;
&lt;p&gt;The thing I don't know or understand, at least at the moment, is if this is
down to the CLI harness itself, or the choice of model, or a combination of
both, or something else. I'm curious to know more.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:294-1"&gt;
&lt;p&gt;There is a weird thing I'm seeing, which I want to try and properly
capture at some point, where it'll start tinkering with unrelated code,
I'll undo the change, it'll throw it back in the next go, I'll undo,
rinse, repeat...&amp;#160;&lt;a class="footnote-backref" href="#fnref:294-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/14/gemini-is-kind-of-messy.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <pubDate>Thu, 14 May 2026 08:25:23 +0100</pubDate>
    </item>
    <item>
      <title>When Gemini CLI gets stuck</title>
      <link>https://blog.davep.org/2026/05/13/when-gemini-cli-gets-stuck.html</link>
      <description>&lt;p&gt;Another evening, and &lt;a href="https://blog.davep.org/2026/05/12/the-other-unreliable-buddy.html"&gt;another period of Gemini CLI getting stuck
thinking&lt;/a&gt;. So this time I
thought I'd try something: cancel it while it was thinking and change the
model.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Gemini Thinking..." height="342" loading="lazy" src="https://blog.davep.org/attachments/2026/05/13/thinking.webp#centre" width="702" /&gt;&lt;/p&gt;
&lt;p&gt;I was working &lt;a href="https://github.com/davep/blogmore/pull/483" rel="noopener noreferrer" target="_blank"&gt;on something new for
BlogMore&lt;/a&gt; and, sure enough,
after a wee while, we got stuck in &lt;em&gt;"Thinking..."&lt;/em&gt; mode. So I hit
&lt;kbd&gt;Escape&lt;/kbd&gt; and asked to pick a different model. I chose to pick
manually, and went with &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Picking the model" height="302" loading="lazy" src="https://blog.davep.org/attachments/2026/05/13/pick-the-model.webp#centre" width="616" /&gt;&lt;/p&gt;
&lt;p&gt;I then literally asked that it carry on where it left off...&lt;/p&gt;
&lt;p&gt;&lt;img alt="Carry on" height="246" loading="lazy" src="https://blog.davep.org/attachments/2026/05/13/select-model.webp#centre" width="536" /&gt;&lt;/p&gt;
&lt;p&gt;...and it did! It worked. No more sitting around thinking for ages.&lt;/p&gt;
&lt;p&gt;Watching the quota after doing this, it looks like the model I was using ate
quota faster, but that was worth it given I've never come close to hitting
full quota with Gemini CLI.&lt;/p&gt;
&lt;p&gt;Once the immediate job was done, I went back to auto and it worked for a
bit, only to get stuck thinking again. I repeated this process and it did
the trick a second time. From now on I'm going to use this approach.&lt;/p&gt;
&lt;p&gt;It does, again, highlight how unreliable these tools are, but at least I've
found a workaround that works for now.&lt;/p&gt;</description>
      <guid isPermaLink="false">https://blog.davep.org/2026/05/13/when-gemini-cli-gets-stuck.html</guid>
      <category>AI</category>
      <category>AI</category>
      <category>Coding</category>
      <category>Gemini</category>
      <category>Google</category>
      <pubDate>Wed, 13 May 2026 20:27:54 +0100</pubDate>
    </item>
  </channel>
</rss>
