<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>I Thought He Came With You</title><link>https://ithoughthecamewithyou.com/</link><description>Robert Ellison's Blog</description><copyright>(c) copyright Robert Ellison</copyright><managingEditor>rob@catfood.net</managingEditor><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/links-for-june-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/links-for-june-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Links for June 2026</title><description>&lt;div class="h-entry" id="a5ecc9abfa99490187988aada07c5a5c"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://futurism.com/science-energy/something-living-inside-fog" title="Futurism: There’s Something Living Inside Fog, Scientists Find clipped to ITHCWY on 2026-06-03"&gt;Futurism: There’s Something Living Inside Fog, Scientists Find&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;... It's just San Francisco.  &lt;a href="https://ithoughthecamewithyou.com/tag/fog?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#fog&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/karl?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#karl&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/san francisco?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#sanfrancisco&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-june-2026#a5ecc9abfa99490187988aada07c5a5c?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-06-03T15:04:17Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/links-for-june-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-06-03T15:04:17Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/san-francisco-to-russian-river?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/san-francisco-to-russian-river?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>timelapse</category><title>San Francisco to Russian River</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Russian-River-Area-2.webp" title="Russian River Area"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Russian-River-Area.webp" width="630" height="354" class="u-photo" alt="Russian River Area" srcset="/image.axd?picture=Russian-River-Area.webp, /image.axd?picture=Russian-River-Area-1.webp 2x, /image.axd?picture=Russian-River-Area-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="video-container"&gt;&lt;iframe id="player-gave" width="630" height="354" src="https://www.youtube.com/embed/c2Xilbf69Lw?rel=0&amp;enablejsapi=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;Hyperlapse of the drive from San Francisco to the Russian River and back again. Shot on Rivian Drive cam, editied in DaVinci Resolve and euro-trash music generated by Gemini.&lt;/p&gt;
&lt;p&gt;Previously I&amp;#39;ve just done this with the front camera, but the Rivan has four and so I set up a multi-cam edit with 130GB of footage. I wish the side cameras were pointed a bit higher, but they are designed for parking rather than coastal views so I haven&amp;#39;t opened a support ticket.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/san-francisco-to-russian-river?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-05-23T20:39:51Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/milky-way-over-casini-ranch?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/milky-way-over-casini-ranch?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>timelapse</category><title>Milky Way over Casini Ranch</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Milky-Way-2.webp" title="Milky Way"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Milky-Way.webp" width="630" height="354" class="u-photo" alt="Milky Way" srcset="/image.axd?picture=Milky-Way.webp, /image.axd?picture=Milky-Way-1.webp 2x, /image.axd?picture=Milky-Way-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="video-container"&gt;&lt;iframe id="player-gave" width="630" height="354" src="https://www.youtube.com/embed/T7RD-lY72ZU?rel=0&amp;enablejsapi=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;A time lapse of the Milky Way over Casini Ranch campground near Duncan Mills, California.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/milky-way-over-casini-ranch?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-05-18T19:58:46Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/find-your-candidate-in-the-california-june-2026-governor-primary-with-retrieval-augmented-voting?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/find-your-candidate-in-the-california-june-2026-governor-primary-with-retrieval-augmented-voting?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>Find your candidate in the California June 2026 governor primary with Retrieval Augmented Voting</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=RetrievalAugmented-Voting-RAV-2.webp" title="Retrieval Augmented Voting (RAV)"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=RetrievalAugmented-Voting-RAV.webp" width="630" height="354" class="u-photo" alt="Retrieval&amp;#160;Augmented Voting (RAV)" srcset="/image.axd?picture=RetrievalAugmented-Voting-RAV.webp, /image.axd?picture=RetrievalAugmented-Voting-RAV-1.webp 2x, /image.axd?picture=RetrievalAugmented-Voting-RAV-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A few years ago I fixed a Washington Post candidate quiz using a &lt;a href="https://ithoughthecamewithyou.com/post/fixing-the-washington-post-democratic-candidates-quiz?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" target="_blank" rel="noreferrer"&gt;spreadsheet&lt;/a&gt;. The problem with WaPo&amp;#39;s version was that you could express your position on various issues but not how much you cared, which skewed the results.&lt;/p&gt;
&lt;p&gt;I just launched &lt;a href="https://rav.ithoughthecamewithyou.com/" target="_blank" rel="noreferrer"&gt;a site&lt;/a&gt; to help with the large field of candidates for California Governor in the June primary.&lt;/p&gt;
&lt;p&gt;This is much better than the spreadsheet. Instead of binary positions you answer ten questions with a sentence or two outlining your position on each issue. It doesn&amp;#39;t need to be an essay, this works well with pretty directional statements. For each issue you also indicate how much you care on a 1-5 scale.&lt;/p&gt;
&lt;p&gt;The site calculates the match between you and each candidate, weighted based on issue importance and then returns a ranked list as well as a summary of the candidates positions on each issue. Positions are included for Xavier Becerra, Chad Bianco, Steve Hilton, Matt Mahan, Katie Porter, Tom Steyer, Tony Thurmond and Antonio Villaraigosa.&lt;/p&gt;
&lt;p&gt;Unfortunately it can&amp;#39;t help with the tactics of voting in a jungle primary. I really wish ranked choice voting was a feature of this election so I could vote my preference without fear of allowing one of my least favorite candidates to reach the general election.&lt;/p&gt;
&lt;p&gt;Technically this site is an experiment in using a lot of AI.&lt;/p&gt;
&lt;p&gt;I researched candidate positions using OpenAI deep research to arrive at a brief paragraph for each candidate and issue.&lt;/p&gt;
&lt;p&gt;The UX is courtesy of Claude Design which created a design system based on this blog but punched up the look and feel for a new microsite.&lt;/p&gt;
&lt;p&gt;The site itself was created with Codex and GPT 5.5 and lives in a Cloudflare worker.&lt;/p&gt;
&lt;p&gt;Candidate ranking is based on vectors - candidate and user positions are converted to embeddings using OpenAI text-embedding-3-large and then cosine similarity and simple weighting of issue importance generates the final score for each prospective Governor.&lt;/p&gt;
&lt;p&gt;All of that probably took the same amount of time as the spreadsheet version from 2020.&lt;/p&gt;
&lt;p&gt;Because of the embeddings I call this Retrieval Augmented Voting, check it out at &lt;a href="https://rav.ithoughthecamewithyou.com/" target="_blank" rel="noreferrer"&gt;rav.ithoughthecamewithyou.com&lt;/a&gt;.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/find-your-candidate-in-the-california-june-2026-governor-primary-with-retrieval-augmented-voting?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-05-15T01:15:59Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/links-for-may-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/links-for-may-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Links for May 2026</title><description>&lt;div class="h-entry" id="8bbabe4fbef5450caf935c041dc801bf"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://www.nytimes.com/2026/05/04/us/did-school-cellphone-bans-study.html?smid=nytcore-android-share" title="Did School Cellphone Bans Work? New Study Finds Mixed Results. clipped to ITHCWY on 2026-05-05"&gt;Did School Cellphone Bans Work? New Study Finds Mixed Results.&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;No improvement in test scores from cell phone bans... I've said this for years, we need to take the phones away from the parents rather than the kids...  &lt;a href="https://ithoughthecamewithyou.com/tag/phone?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#phone&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/ban?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#ban&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/cellphone?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#cellphone&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#8bbabe4fbef5450caf935c041dc801bf?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-05T16:48:06Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="1470e11b154d4a4f92d272f27f966ce7"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mstdn.social/@NASA"&gt;@NASA@mstdn.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#1470e11b154d4a4f92d272f27f966ce7?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T22:58:17Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="6d6eb1f8c1dc46e686ff12b267c7a8cd"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://wx.social/@wxwatch"&gt;@wxwatch@wx.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#6d6eb1f8c1dc46e686ff12b267c7a8cd?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T22:59:12Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="26fcf74e94594bd88d486c1cb9b70ab2"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://fosstodon.org/@underdarkGIS"&gt;@underdarkGIS@fosstodon.org&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#26fcf74e94594bd88d486c1cb9b70ab2?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T22:59:42Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="6d96b4f8e5d94397932f1bd98653738e"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://fosstodon.org/@organicmaps"&gt;@organicmaps@fosstodon.org&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#6d96b4f8e5d94397932f1bd98653738e?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:01:15Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="0d155078fad14243b21849707b9dea40"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://en.osm.town/@osm_tech"&gt;@osm_tech@en.osm.town&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#0d155078fad14243b21849707b9dea40?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:02:01Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="f6f32af553f84c88bff9024192153dbc"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://en.osm.town/@openstreetmap"&gt;@openstreetmap@en.osm.town&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#f6f32af553f84c88bff9024192153dbc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:02:27Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="7686e350a8a64151b12a95722d76f31a"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mastodon.social/@SBCA"&gt;@SBCA@mastodon.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#7686e350a8a64151b12a95722d76f31a?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:02:53Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="db497da88b6c486680abdd179bfb9303"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://sfba.social/@lwvsf"&gt;@lwvsf@sfba.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#db497da88b6c486680abdd179bfb9303?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:03:22Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="5d070dc877a24e318fce5ab2f12406d2"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://sfba.social/@sfchronicle"&gt;@sfchronicle@sfba.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#5d070dc877a24e318fce5ab2f12406d2?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:03:44Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="a7895dff8f7f437dab2d70babccd3901"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mastodon.social/@Mastodon"&gt;@Mastodon@mastodon.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#a7895dff8f7f437dab2d70babccd3901?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:04:12Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="fb255b2b4d064444b2a7530da990d462"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mastodon.social/@dangillmor"&gt;@dangillmor@mastodon.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#fb255b2b4d064444b2a7530da990d462?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:04:40Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="07dfd08df355422caed8cef10bd6ed73"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mamot.fr/@pluralistic"&gt;@pluralistic@mamot.fr&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#07dfd08df355422caed8cef10bd6ed73?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:05:02Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="7baefa5d4ece41489bf0e8fb0109b1ba"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mastodon.social/@eff"&gt;@eff@mastodon.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#7baefa5d4ece41489bf0e8fb0109b1ba?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:05:26Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="2fbbb43399b147c28df2ad525a30e17a"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://snarfed.org/@snarfed.org"&gt;@snarfed.org@snarfed.org&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#2fbbb43399b147c28df2ad525a30e17a?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:05:51Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="6f8f79362e0941499dbaa5d7807086ee"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://simonwillison.net/@simon"&gt;@simon@simonwillison.net&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-may-2026#6f8f79362e0941499dbaa5d7807086ee?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-05-23T23:06:12Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/links-for-may-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-05-05T16:48:06Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/san-francisco-june-2026-ballot-measures?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/san-francisco-june-2026-ballot-measures?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>San Francisco June 2026 Ballot Measures</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=San-Francisco-Fire-Fighting-Cistern-1.webp" title="San Francisco Fire Fighting Cistern"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=San-Francisco-Fire-Fighting-Cistern.webp" width="630" height="420" class="u-photo" alt="San Francisco Fire Fighting Cistern" srcset="/image.axd?picture=San-Francisco-Fire-Fighting-Cistern.webp, /image.axd?picture=San-Francisco-Fire-Fighting-Cistern-1.webp 2x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://ithoughthecamewithyou.com/#47560bce5bfe488e88da359d13dafaf4?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;Measure A, Earthquake Safety and Emergency Bond Measure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ithoughthecamewithyou.com/#e58e4255884f483c94c2fa3a90f576b7?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;Measure B, Term Limits for Mayor and Board of Supervisors Charter Amendment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ithoughthecamewithyou.com/#e636483be9f3407c823e63f3fe596494?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;Measure C, Gross Receipts Tax Exemption and Top Executive Pay Tax Increase Initiative&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ithoughthecamewithyou.com/#1ac6cbbed6424a77865092fd1bc1fa69?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;Measure D, Changes to Top Executive Pay Tax Initiative&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only four measures to decide on for June! I&amp;#39;m sure we&amp;#39;ll be punished for this in November. Here goes:&lt;/p&gt;
&lt;h2 id="47560bce5bfe488e88da359d13dafaf4"&gt;Measure A, Earthquake Safety and Emergency Bond Measure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ballotpedia.org/San_Francisco,_California,_Measure_A,_Earthquake_Safety_and_Emergency_Bond_Measure_(June_2026)"&gt;Measure A&lt;/a&gt; asks San Francisco for $535 million in general obligation bonds to seismically retrofit fire stations, harden police facilities, replace the 110-year-old Potrero Bus Yard, and finally extend the Emergency Firefighting Water System into the Sunset and Richmond, which apparently the previous three earthquake bonds since 2010 forgot about. The USGS puts the odds of a 6.7+ Bay Area earthquake in the next thirty years at 72%. Repayment runs about $933 million over 25 years and doesn&amp;#39;t raise property tax rates above the existing cap.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;. Working fire infrastructure after an earthquake is a good use of funds. This also upgrades police stations and will be used for the Potrero Yard MUNI project. The MUNI part was previously defeated as a ballot measure in June 2022 (I voted &lt;a href="https://ithoughthecamewithyou.com/post/san-francisco-june-2022-ballot-measures?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;for it&lt;/a&gt; then, and happy to do so again this year).&lt;/p&gt;
&lt;h2 id="e58e4255884f483c94c2fa3a90f576b7"&gt;Measure B, Term Limits for Mayor and Board of Supervisors Charter Amendment&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ballotpedia.org/San_Francisco,_California,_Measure_B,_Term_Limits_for_Mayor_and_Board_of_Supervisors_Charter_Amendment_(June_2026)"&gt;Measure B&lt;/a&gt; caps service as mayor or supervisor at two four-year terms over an entire human lifetime. Current law already limits supervisors to two consecutive terms with a four-year cooling-off period; this closes the loophole that lets a former officeholder return after sitting out. In the twenty-five years since district elections came back in 2000, exactly one person has used that loophole. Prop B amends the city charter to prevent it from happening again.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;. After two terms, find something else to do. More specifically this amendment means you can&amp;#39;t take four years off and then run again, and I&amp;#39;m fine with this change.&lt;/p&gt;
&lt;h2 id="e636483be9f3407c823e63f3fe596494"&gt;Measure C, Gross Receipts Tax Exemption and Top Executive Pay Tax Increase Initiative&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ballotpedia.org/San_Francisco,_California,_Measure_C,_Gross_Receipts_Tax_Exemption_and_Top_Executive_Pay_Tax_Increase_Initiative_(June_2026)"&gt;Measure C&lt;/a&gt;, sponsored by the SF Chamber of Commerce, accelerates a planned business tax cut by a year and raises the small-business gross-receipts exemption from $5 million to $7.5 million, helping about 800 businesses. The controller estimates it costs the city $30-40 million a year, in a year already $169 million in the hole. It also exists primarily to neutralize Prop D - if both pass, whichever gets more votes wins.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;No&lt;/b&gt;. This is designed to kill measure D, which I also oppose, but it also costs $30-$40 million a year in more generous small business exemptions.&lt;/p&gt;
&lt;h2 id="1ac6cbbed6424a77865092fd1bc1fa69"&gt;Measure D, Changes to Top Executive Pay Tax Initiative&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ballotpedia.org/San_Francisco,_California,_Measure_D,_Changes_to_Top_Executive_Pay_Tax_Initiative_(June_2026)"&gt;Measure D&lt;/a&gt;, sponsored by SEIU and IFPTE Local 21, raises the Top Executive Pay Tax by 800-900% on companies with more than 1,000 employees and $1 billion in revenue whose top executive earns more than 100x the median worker, and redefines &amp;quot;median worker&amp;quot; from the median San Francisco employee to the median global one - which sweeps in basically every large retailer, bank, and tech firm with an SF office. Estimated revenue: $250-300 million a year. Several grocery chains and pharmacies have publicly threatened to leave if it passes.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;No&lt;/b&gt;. This is a ridiculous tax and I want no part of it. I voted &lt;a href="https://ithoughthecamewithyou.com/post/san-francisco-november-2020-ballot-measures?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;against this in 2020&lt;/a&gt;. If we want a tax to signal disapproval of large companies, perhaps it should be based on the percentage of stock that is locked up so you need to ring a bell to get it, but the employee with the key is on a break or otherwise busy. But I don&amp;#39;t even think we should do that.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/san-francisco-june-2026-ballot-measures?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-05-03T23:03:00Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/virginia-joins-national-popular-vote?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/virginia-joins-national-popular-vote?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>Virginia joins National Popular Vote</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Virginia-joins-National-Popular-Vote-2.webp" title="Virginia joins National Popular Vote"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Virginia-joins-National-Popular-Vote.webp" width="630" height="360" class="u-photo" alt="Virginia joins National Popular Vote" srcset="/image.axd?picture=Virginia-joins-National-Popular-Vote.webp, /image.axd?picture=Virginia-joins-National-Popular-Vote-1.webp 2x, /image.axd?picture=Virginia-joins-National-Popular-Vote-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Virginia &lt;a href="https://www.npr.org/2026/04/14/nx-s1-5742595/virginia-popular-vote-compact"&gt;joins&lt;/a&gt; the National Popular Vote movement, bringing the total to 222 electoral college votes. Once we reach 270 presidential politics will pivot from a few hundred thousand swing voters to the needs of the entire nation. We probably wouldn&amp;#39;t have elected Trump I and might not be suffering through Trump II today. This is getting close - &lt;a href="https://ithoughthecamewithyou.com/page/democracy?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;do something!&lt;/a&gt;&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/virginia-joins-national-popular-vote?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-04-18T17:08:47Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/rainbow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/rainbow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>Rainbow</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Rainbowat-Ocean-Beach-2.webp" title="Rainbow at Ocean Beach"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Rainbowat-Ocean-Beach.webp" width="630" height="354" class="u-photo" alt="Rainbow&amp;#160;at Ocean Beach" srcset="/image.axd?picture=Rainbowat-Ocean-Beach.webp, /image.axd?picture=Rainbowat-Ocean-Beach-1.webp 2x, /image.axd?picture=Rainbowat-Ocean-Beach-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 18mm f2.8 1/220s ISO16&lt;/p&gt;
&lt;p&gt;A rainbow, shot from Ocean Beach in San Francisco.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/rainbow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-04-11T19:49:48Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/update-aws-ec2-inbound-security-group-rules-when-your-ip-address-changes?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/update-aws-ec2-inbound-security-group-rules-when-your-ip-address-changes?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>code</category><title>Update AWS EC2 inbound security group rules when your IP address changes</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=AWS-IP-Update-a-Windows-Tray-application-that-automatically-updates-EC2-inbound-security-rules-when-an-IP-address-change-is-detected-2.webp" title="AWS IP Update, a Windows Tray application that automatically updates EC2 inbound security rules when an IP address change is detected."&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=AWS-IP-Update-a-Windows-Tray-application-that-automatically-updates-EC2-inbound-security-rules-when-an-IP-address-change-is-detected.webp" width="630" height="307" class="u-photo" alt="AWS IP Update, a Windows Tray application that automatically updates EC2 inbound security rules when an IP address change is detected." srcset="/image.axd?picture=AWS-IP-Update-a-Windows-Tray-application-that-automatically-updates-EC2-inbound-security-rules-when-an-IP-address-change-is-detected.webp, /image.axd?picture=AWS-IP-Update-a-Windows-Tray-application-that-automatically-updates-EC2-inbound-security-rules-when-an-IP-address-change-is-detected-1.webp 2x, /image.axd?picture=AWS-IP-Update-a-Windows-Tray-application-that-automatically-updates-EC2-inbound-security-rules-when-an-IP-address-change-is-detected-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just released &lt;a href="https://github.com/abfo/aws-ip-update"&gt;AWS IP Update&lt;/a&gt;, a Windows Tray application that updates inbound security group rules on AWS EC2 when your IP address changes.&lt;/p&gt;
&lt;p&gt;This has been vaguely on my to-do list for years. I didn&amp;#39;t bother because I knew how tedious it would be from that time I pulled Azure metrics into Google Data Studio (now Looker) &lt;a href="https://ithoughthecamewithyou.com/post/using-the-azure-monitor-rest-api-from-google-apps-script?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;via Apps Script&lt;/a&gt;. This whole thing was banged out by Claude Code in five volleys, and I think I wasted those because it could probably have single-shotted it. I did not write a character of code, and it was faster to create than the way I used to get access.&lt;/p&gt;
&lt;p&gt;I have a monthly sys admin day where I patch all the things, pull a Google photos archive and run an old fashioned backup to an external hard drive. The hardest part of this psychologically has been getting access to AWS to patch by blog server and pull a backup. My IP address has changed, and I need to log into AWS, find the right settings, look up my external IP address (Google Search used to just show this but it&amp;#39;s been broken for ages) and update the EC2 security group. Every other part of the routine is easy, the access part always bums me out. So this is a quick AI tool that not only saves a few minutes a month, it also helps with mood and blood pressure.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/update-aws-ec2-inbound-security-group-rules-when-your-ip-address-changes?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-04-11T19:01:47Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/links-for-april-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/links-for-april-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Links for April 2026</title><description>&lt;div class="h-entry" id="0caf762665734a20a0e2d290fec54944"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://www.nytimes.com/2026/04/09/world/europe/britain-christian-revival-survey.html" title="No, Britain Is Not Having a Christian Revival clipped to ITHCWY on 2026-04-09"&gt;No, Britain Is Not Having a Christian Revival&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;Reminder that when it's too good to be true, it's not true and vice versa.   &lt;a href="https://ithoughthecamewithyou.com/tag/etc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#etc&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/religion?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#religion&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-april-2026#0caf762665734a20a0e2d290fec54944?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-04-09T16:48:14Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="44dc5db9c10642ee861f86d5f56878b8"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://snarfed.org/snarfed.org"&gt;@snarfed.org@snarfed.org&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-april-2026#44dc5db9c10642ee861f86d5f56878b8?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-04-18T22:37:59Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="9b090940f35145b49c9fe835ba19fb43"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://pub.towardsai.net/microsoft-quietly-killed-opus-on-the-10-copilot-pro-heres-the-math-on-whether-you-should-cancel-61af8f4fa76b?source=rss----98111c9905da---4" title="Microsoft Quietly Killed Opus on the $10 Copilot Pro — Here's the Math on Whether You Should Cancel clipped to ITHCWY on 2026-04-26"&gt;Microsoft Quietly Killed Opus on the $10 Copilot Pro — Here's the Math on Whether You Should Cancel&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;The copilot free-ish ride is over. I was not happy to see the slimmed down model list yesterday. Luckily I have Claude Code and Codex.  &lt;a href="https://ithoughthecamewithyou.com/tag/ai?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#ai&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/claude?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#claude&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/copilot?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#copilot&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-april-2026#9b090940f35145b49c9fe835ba19fb43?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-04-26T20:47:26Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/links-for-april-2026?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-04-09T16:48:14Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/seervo-an-llm-powered-robot?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/seervo-an-llm-powered-robot?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>code</category><title>Seervo, an LLM Powered Robot</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Seervo-LLM-AI-Robot-2.webp" title="Seervo LLM AI Robot"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Seervo-LLM-AI-Robot.webp" width="630" height="354" class="u-photo" alt="Seervo LLM AI Robot" srcset="/image.axd?picture=Seervo-LLM-AI-Robot.webp, /image.axd?picture=Seervo-LLM-AI-Robot-1.webp 2x, /image.axd?picture=Seervo-LLM-AI-Robot-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just released &lt;a href="https://github.com/abfo/seervo" target="_blank"&gt;Seervo&lt;/a&gt;, an open-source LLM-powered robot. The GitHub repo contains source code, a shopping list and 3D files to print the chassis.&lt;/p&gt;
&lt;p&gt;Seervo sends an image from its camera to GPT 5.4. The LLM can decide to change the colors of four LEDs and to drive the motors. It has the objective of finding and entertaining humans while avoiding pets at all costs. The video below shows it mostly trying to escape from my dog:&lt;/p&gt;
&lt;div class="video-container"&gt;&lt;iframe id="player-gave" width="630" height="354" src="https://www.youtube.com/embed/qIrNDQmVw1A?rel=0&amp;enablejsapi=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;The robot is based on an ESP32 microcontroller with a camera, some motors and a battery. The client code is MicroPython and it talks to an ASP.NET core web service that handles the LLM control calls. You could do everything on the ESP32 but it&amp;#39;s easier to tweak prompts and see where it&amp;#39;s going wrong with a local server. The server additionally stores memories so the robot can remember what it has been doing recently, and handles memory compaction so any really useful knowledge is retained in the context window.&lt;/p&gt;
&lt;p&gt;The code was all written using Claude Opus 4.6. The chassis was designed in OpenSCAD using ChatGPT - something that has been a struggle before but GPT 5.4 can iterate on a 3D model with pretty vague directions.&lt;/p&gt;
&lt;p&gt;Let me know if you build one!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated 2026-04-05 23:22:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Added an HC-SR04 ultrasonic distance sensor so the robot can now tell how much clear space there is in front of it. Tuned the instructions to use this data and also with formulae to convert distance and rotation to approximate motor run time. This all makes the robot a lot more confident in its movement.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/seervo-an-llm-powered-robot?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-04-05T01:00:15Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/bonnet-macaque?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/bonnet-macaque?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>Bonnet Macaque</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Bonnet-Macaque-2.webp" title="Bonnet Macaque"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Bonnet-Macaque.webp" width="630" height="474" class="u-photo" alt="Bonnet Macaque" srcset="/image.axd?picture=Bonnet-Macaque.webp, /image.axd?picture=Bonnet-Macaque-1.webp 2x, /image.axd?picture=Bonnet-Macaque-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 18mm f2.8 1/189s ISO17&lt;/p&gt;
&lt;p&gt;Photo of a Bonnet Macaque near Bangalore, India.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/bonnet-macaque?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-03-21T10:01:18Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/dominican-church-lviv?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/dominican-church-lviv?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>Dominican Church, Lviv</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Dominican-Church-in-old-town-Lviv-2.webp" title="Dominican Church in old town Lviv"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Dominican-Church-in-old-town-Lviv.webp" width="361" height="480" class="u-photo" alt="Dominican Church in old town Lviv" srcset="/image.axd?picture=Dominican-Church-in-old-town-Lviv.webp, /image.axd?picture=Dominican-Church-in-old-town-Lviv-1.webp 2x, /image.axd?picture=Dominican-Church-in-old-town-Lviv-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 18mm f2.8 1/237s ISO17&lt;/p&gt;
&lt;p&gt;Photo of the Dominican Church in Lviv old town, shot through Rynok Square.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/dominican-church-lviv?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-03-21T09:57:07Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/blr-muc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/blr-muc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>BLR MUC</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=BLR-MUC-2.webp" title="BLR MUC"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=BLR-MUC.webp" width="630" height="354" class="u-photo" alt="BLR MUC" srcset="/image.axd?picture=BLR-MUC.webp, /image.axd?picture=BLR-MUC-1.webp 2x, /image.axd?picture=BLR-MUC-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 7mm f1.7 1/480s ISO21&lt;/p&gt;
&lt;p&gt;LH 765, A350-941, 692&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/blr-muc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-03-14T07:21:27Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/animation-of-us-pm25-air-pollution-in-2025?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/animation-of-us-pm25-air-pollution-in-2025?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Animation of US PM2.5 Air Pollution in 2025</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=PM-25-air-pollution-on-July-4-2025-AirNow-Data-continental-United-States-5.webp" title="PM 2.5 air pollution on July 4, 2025 (AirNow Data, continental United States)."&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=PM-25-air-pollution-on-July-4-2025-AirNow-Data-continental-United-States-3.webp" width="630" height="354" class="u-photo" alt="PM 2.5 air pollution on July 4, 2025 (AirNow Data, continental United States)." srcset="/image.axd?picture=PM-25-air-pollution-on-July-4-2025-AirNow-Data-continental-United-States-3.webp, /image.axd?picture=PM-25-air-pollution-on-July-4-2025-AirNow-Data-continental-United-States-4.webp 2x, /image.axd?picture=PM-25-air-pollution-on-July-4-2025-AirNow-Data-continental-United-States-5.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This video shows hourly PM2.5 air pollution across the United States for 2025:&lt;/p&gt;
&lt;div class="video-container"&gt;&lt;iframe id="player-gave" width="630" height="354" src="https://www.youtube.com/embed/xBslkyT_E3s?rel=0&amp;enablejsapi=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;I did the same thing for &lt;a href="https://ithoughthecamewithyou.com/post/animation-of-us-pm25-air-pollution-in-2023?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" target="_blank"&gt;2023&lt;/a&gt; using the Purple Air sensor network. Unfortunately they are now charging for access to the data, however the official AirNow network has an &lt;a href="https://docs.airnowapi.org/" target="_blank"&gt;API&lt;/a&gt; and so I used that instead. The lack of sensors at the local level is frustrating, but it works fine for this nationwide view.&lt;/p&gt;
&lt;p&gt;The 4th of July is pretty incredible (see the photo at the top of the post).&lt;/p&gt;
&lt;p&gt;In San Francisco this was a pretty mild year for wildfire smoke. We did see a few days in mid-July from the &lt;a href="https://www.baaqmd.gov/en/news-and-events/page-resources/2025-news/071125-aq-advisory" target="_blank"&gt;Butler and Green fires&lt;/a&gt;. &lt;a href="https://apnews.com/article/canadian-wildfires-smoke-air-pollution-minnesota-midwest-europe-24237c0043f70ed64db931cb2ce48b91" target="_blank"&gt;Canada&lt;/a&gt; was a big factor again, look particularly around June 3-5 and late July. And of course the &lt;a href="https://en.wikipedia.org/wiki/Palisades_Fire" target="_blank"&gt;Palisades&lt;/a&gt; fire, starting on Jan 7.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/animation-of-us-pm25-air-pollution-in-2025?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-03-01T21:42:09Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/do-i-agree-with-san-francisco?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/do-i-agree-with-san-francisco?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>Do I agree with San Francisco?</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=San-Francisco-Ballot-Measures-2.webp" title="San Francisco Ballot Measures"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=San-Francisco-Ballot-Measures.webp" width="630" height="364" class="u-photo" alt="San Francisco Ballot Measures" srcset="/image.axd?picture=San-Francisco-Ballot-Measures.webp, /image.axd?picture=San-Francisco-Ballot-Measures-1.webp 2x, /image.axd?picture=San-Francisco-Ballot-Measures-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve sometimes wondered how often I agree with San Francisco on the endless ballot measures. I have a vague sense after each election but I&amp;#39;ve never bothered with the bigger picture. Thanks to AI it&amp;#39;s now a pretty easy question to answer - I fed blog posts to ChatGPT and then the resulting data to Claude Opus to whip me up some python visualization. Which looks like this:&lt;/p&gt;
&lt;div&gt;                        &lt;script type="text/javascript"&gt;window.PlotlyConfig = {MathJaxConfig: 'local'};&lt;/script&gt;
        &lt;script charset="utf-8" src="https://cdn.plot.ly/plotly-3.3.1.min.js" integrity="sha256-4rD3fugVb/nVJYUv5Ky3v+fYXoouHaBSP20WIJuEiWg=" crossorigin="anonymous"&gt;&lt;/script&gt;                &lt;div id="62073862-0ae3-49b2-b9ee-ed132a30cb23" class="plotly-graph-div" style="height:100%; width:100%;"&gt;&lt;/div&gt;            &lt;script type="text/javascript"&gt;                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("62073862-0ae3-49b2-b9ee-ed132a30cb23")) {                    Plotly.newPlot(                        "62073862-0ae3-49b2-b9ee-ed132a30cb23",                        [{"hovertemplate":"Election Date=%{x}\u003cbr\u003eAgreement (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"","line":{"color":"#636efa","dash":"solid","width":4},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"","orientation":"v","showlegend":false,"x":["2012-11-06T00:00:00.000000","2014-11-04T00:00:00.000000","2016-06-07T00:00:00.000000","2016-11-08T00:00:00.000000","2020-11-03T00:00:00.000000","2022-06-07T00:00:00.000000","2022-11-08T00:00:00.000000","2024-03-05T00:00:00.000000","2024-11-05T00:00:00.000000"],"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAWUAzMzMzM9NUQAAAAAAAAElAAAAAAAAAUUAzMzMzMxNXQAAAAAAAADlAzczMzMyMTEDNzMzMzGxVQDMzMzMzU1JA"},"yaxis":"y","type":"scatter"}],                        {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Election Date"}},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Agreement (%)"},"range":[0,105]},"legend":{"tracegroupgap":0},"title":{"text":"How often do I agree with San Francisco on ballot measures?"}},                        {"responsive": true}                    )                };            &lt;/script&gt;        &lt;/div&gt;
&lt;p&gt;That&amp;#39;s a decade of trying to understand what the measures actually mean and do the right thing.&lt;/p&gt;
&lt;p&gt;Maybe there is a downward trend, but throw away the outliers and I&amp;#39;m pretty solidly around 70%. San Francisco should save the money and just ask me.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/do-i-agree-with-san-francisco?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-23T02:29:29Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/workspace-studio-and-readonly-sheets?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/workspace-studio-and-readonly-sheets?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>code</category><title>Workspace Studio and Read-only Sheets</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=A-Google-Workspace-Studio-Flow-2.webp" title="A Google Workspace Studio Flow"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=A-Google-Workspace-Studio-Flow.webp" width="630" height="242" class="u-photo" alt="A Google Workspace Studio Flow" srcset="/image.axd?picture=A-Google-Workspace-Studio-Flow.webp, /image.axd?picture=A-Google-Workspace-Studio-Flow-1.webp 2x, /image.axd?picture=A-Google-Workspace-Studio-Flow-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As an Apps Script addict I was excited to experiment with Google Workspace Studio. It&amp;#39;s a no code automation tool in the typical flowchart style with the addition of Gemini, so you can use AI for decisions and text manipulation. Unfortunately it failed hard on my first task.&lt;/p&gt;
&lt;p&gt;I have a spreadsheet that &lt;a href="https://ithoughthecamewithyou.com/post/export-google-fit-daily-steps-to-a-google-sheet?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;pulls in Google Fit data&lt;/a&gt;, and another one that combines that with other goals to create an overall lifestyle score. Occasionally I copy data from one sheet to the other and automating this has been on my todo list for years with absolutely no chance of getting to done. Workspace Studio should have made this easy.&lt;/p&gt;
&lt;p&gt;Building the flow was straightforward, but the steps that write new data were flagged as being in an error state, although no actual errors were flagged in the configuration for the steps. Opening and closing the flow unsettlingly cleared the errors. I started the flow and hoped for the best, but got this error:&lt;/p&gt;
&lt;blockquote&gt;&amp;quot;Couldn&amp;#39;t complete. Check that the spreadsheet is private and doesn&amp;#39;t use the IMPORTRANGE function.&amp;quot;&lt;/blockquote&gt;
&lt;p&gt;At first I thought this must be inverted and the sheet needed to be shared in some way... but no, it&amp;#39;s &lt;a href="https://support.google.com/workspace-studio/answer/16765661"&gt;true&lt;/a&gt;, you can only update a private sheet. Which is useful in a trees falling with no one watching kind of way.&lt;/p&gt;
&lt;p&gt;I share this mostly because googling the error came up short (and the AI overview is unhelpfully talking about sharing the sheet). Workspace Studio is only a few months old and hopefully this limitation will be fixed. There are some nice features in preview, like webhooks, raising the prospect of handing over to apps script if the flow can&amp;#39;t do quite what you need. This should be a nice piece of the AI automation puzzle as it matures.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/workspace-studio-and-readonly-sheets?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-22T18:05:14Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/autonomy-minus?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/autonomy-minus?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Autonomy Minus</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=A-Turn-Signal-Recently-2.webp" title="A Turn Signal, Recently"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=A-Turn-Signal-Recently.webp" width="630" height="351" class="u-photo" alt="A Turn Signal, Recently" srcset="/image.axd?picture=A-Turn-Signal-Recently.webp, /image.axd?picture=A-Turn-Signal-Recently-1.webp 2x, /image.axd?picture=A-Turn-Signal-Recently-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Rivian is about to start &lt;a href="https://rivian.com/autonomy"&gt;charging for cruise control&lt;/a&gt;. Which sucks. It&amp;#39;s handy for long stretches of I-5, but generally I enjoy driving so I&amp;#39;m not planning to shell out unless they offer a day pass.&lt;/p&gt;
&lt;p&gt;There is something I would pay for though.&lt;/p&gt;
&lt;p&gt;Fix the fucking turn signal.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m pretty sure this wouldn&amp;#39;t even need an AI supercomputer. I&amp;#39;m not an automotive engineer but I&amp;#39;ve sketched out a rough design for this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When you are already signaling one direction, moving the stalk the other way just cancels the signal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I should probably file a patent before hitting post.&lt;/p&gt;
&lt;p&gt;Every car I have owned or rented made the other choice and so trying to cancel the turn signal just lights up the opposite direction. A behavior I need once a decade or so, but the rest of the time I just completed a less than 90 degree turn and I&amp;#39;m ready to stop signaling. Instead I have turn signal tourette&amp;#39;s for the next mile. I&amp;#39;d pay a buck or two a month to not do that.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/autonomy-minus?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-22T01:46:09Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/je-suis-stack-overflow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/je-suis-stack-overflow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Je Suis Stack Overflow</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=The-Fediverse-1.webp" title="The Fediverse"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=The-Fediverse.webp" width="630" height="420" class="u-photo" alt="The Fediverse" srcset="/image.axd?picture=The-Fediverse.webp, /image.axd?picture=The-Fediverse-1.webp 2x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In terms of traffic this blog has always been driven by code. Extracting step counts from Google Fit, automating Azure monitoring, pushing the limits of Apps Script, and so on. Over the past year referral traffic is solid, but Google Search isn&amp;#39;t interested any more. It&amp;#39;s the same trend as Stack Overflow - programming questions are now answered by LLMs. I do the same thing and so I&amp;#39;m responsible as a user (I used to answer my own questions disturbingly often), and as a content creator (according to WaPo this blog is 0.00002% of &lt;a href="https://www.washingtonpost.com/technology/interactive/2023/ai-chatbot-learning/"&gt;CommonCrawl&lt;/a&gt;: transformers also die in darkness).&lt;/p&gt;
&lt;p&gt;Can I be a social network instead?&lt;/p&gt;
&lt;p&gt;I have had a vague &lt;a href="https://ithoughthecamewithyou.com/post/federation?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;integration&lt;/a&gt; with &lt;a href="https://fed.brid.gy/web/ithoughthecamewithyou.com"&gt;Bridgy Fed&lt;/a&gt; for a while. This syndicates posts into the Fediverse and will accept comments back but has always been a bit one sided. I just tightened this up a bit and added support for follows, and did a little following. Implementing all the microformats is a lot easier with LLMs. I&amp;#39;m never going back to a social network that I don&amp;#39;t own, even a well intentioned Mastodon server. But I&amp;#39;ll interoperate all day and iterate in an &lt;a href="https://indieweb.org/"&gt;IndieWeb&lt;/a&gt; direction.&lt;/p&gt;
&lt;p&gt;You can follow @ithoughthecamewithyou.com@ithoughthecamewithyou.com and starting now I can follow back.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/je-suis-stack-overflow?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-09T01:42:07Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/links-for-february-2026?bf=dbcf5450afcc493aa457d07ace970a24?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/links-for-february-2026?bf=dbcf5450afcc493aa457d07ace970a24?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Links for February 2026</title><description>&lt;div class="h-entry" id="faa30b7bffda4ad8874066fc78ae971d"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://social.mitexleo.one/@ml"&gt;@ml@social.mitexleo.one&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#faa30b7bffda4ad8874066fc78ae971d?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-09T00:58:44Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="ef96c169dfc7442cbb94a3156c4278b0"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mamot.fr/@retiolus"&gt;@retiolus@mamot.fr&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#ef96c169dfc7442cbb94a3156c4278b0?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-09T01:02:52Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="8f0b52b843c64c49bf18c4aecff3f4cd"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://mastodon.social/@matokie"&gt;@matokie@mastodon.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#8f0b52b843c64c49bf18c4aecff3f4cd?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-09T01:15:56Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="2003025c74b641c28146e4a88635854f"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://messydesk.social/@mikef"&gt;@mikef@messydesk.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#2003025c74b641c28146e4a88635854f?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-09T01:16:31Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="3f23524f64534078a34e2646ac350530"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a class="u-bookmark-of" href="https://myemail.constantcontact.com/Virginia-Senate-becomes-44th-state-house-to-pass-National-Popular-Vote.html?soid=1116971938310&amp;aid=cLhScdup_5E" title="Virginia Senate Becomes 44th State Legislative Chamber to Pass National Popular Vote clipped to ITHCWY on 2026-02-09"&gt;Virginia Senate Becomes 44th State Legislative Chamber to Pass National Popular Vote&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;13 more electoral college votes towards a national popular vote? Go Virginia!   &lt;a href="https://ithoughthecamewithyou.com/tag/national popular vote?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#nationalpopularvote&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/uspol?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#uspol&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/npvic?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#npvic&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/political reform?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#politicalreform&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#3f23524f64534078a34e2646ac350530?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-09T22:42:02Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="ee9561a91a7e4182aab723e5096742fc"&gt;&lt;span class="p-name" hidden="hidden"&gt;This drives me nuts every time I open apps script and need to switch the account.&lt;/span&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a class="u-bookmark-of" href="https://issuetracker.google.com/issues/160854209" title="Google Apps Script created by primary email (domain), and it opens the blank script in secondary (gmail) clipped to ITHCWY on 2026-02-11"&gt;Google Apps Script created by primary email (domain), and it opens the blank script in secondary (gmail)&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;This drives me nuts every time I open apps script and need to switch the account.  &lt;a href="https://ithoughthecamewithyou.com/tag/google?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#google&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/apps script?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#appsscript&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/gas?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#gas&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#ee9561a91a7e4182aab723e5096742fc?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-11T21:04:08Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="dbcf5450afcc493aa457d07ace970a24"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://www.nytimes.com/video/business/100000010709300/how-ice-is-pushing-tech-companies-to-identify-protesters.html" title="How ICE Is Pushing Tech Companies to Identify Protesters clipped to ITHCWY on 2026-02-14"&gt;How ICE Is Pushing Tech Companies to Identify Protesters&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;No need for subpoenas, it's &lt;a href="https://ithoughthecamewithyou.com/post/abolish-ice-ocean-beach-protest?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;me&lt;/a&gt;!  &lt;a href="https://ithoughthecamewithyou.com/tag/ice?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#ice&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/resist?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#resist&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#dbcf5450afcc493aa457d07ace970a24?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-14T20:09:18Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="6615b0b2df2749a381c2220637b8224b"&gt;&lt;p&gt;I'm following &lt;a class="u-follow-of" rel="nofollow noreferrer noopener" href="https://avgeek.social/@AirlineReporter"&gt;@AirlineReporter@avgeek.social&lt;/a&gt;. &lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#6615b0b2df2749a381c2220637b8224b?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-14T20:54:16Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;div class="h-entry" id="7487bd89df7d47f19b4f7e50f164642d"&gt;&lt;div class="e-content"&gt;&lt;blockquote&gt;&lt;a href="https://huggingface.co/spaces/microsoft/TRELLIS.2" title="Image to 3D Asset with TRELLIS.2 clipped to ITHCWY on 2026-02-15"&gt;Image to 3D Asset with TRELLIS.2&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;This is cool, a Microsoft model to convert a photo to a 3D model. I ended up with a dog with two tails but otherwise pretty decent.   &lt;a href="https://ithoughthecamewithyou.com/tag/3d?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#3d&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/ml?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#ml&lt;/a&gt;  &lt;a href="https://ithoughthecamewithyou.com/tag/microsoft?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" class="p-category" rel="nofollow"&gt;#microsoft&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;a class="u-url u-uid" title="Permalink" href="https://ithoughthecamewithyou.com/post/links-for-february-2026#7487bd89df7d47f19b4f7e50f164642d?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;&amp;#8734;&lt;/a&gt;&lt;a class="u-bridgy-fed" href="https://fed.brid.gy/" rel="nofollow noreferrer noopener" hidden="hidden"&gt;&lt;/a&gt;&lt;time class="dt-published" datetime="2026-02-15T20:36:39Z"&gt;&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/links-for-february-2026?bf=dbcf5450afcc493aa457d07ace970a24?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-09T00:43:39Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/route-map?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/route-map?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>etc</category><title>Route Map</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/images/route-map.webp?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" title="Robert Ellison's Route Map"&gt;&lt;img src="https://ithoughthecamewithyou.com/images/route-map.webp" width="630" height="315" alt="Robert Ellison's Route Map"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have been in the habit of posting each plane I fly on for a long time.&lt;/p&gt;
&lt;p&gt;This started on Twitter, where for a while there was this #boarding hashtag so you could chat with people in transit from the same airport by IATA code (like #boarding #sfo). That dropped out of usage, because why would you do that, but I continued on Facebook until I &lt;a href="https://ithoughthecamewithyou.com/post/pulling-the-plug-on-facebook-and-twitter-tweet-archive?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;deleted social media&lt;/a&gt; in 2018. After a brief lapse I started posting to my blog. I have a vague intention to resurrect some older flights with AI and build out a more complete history.&lt;/p&gt;
&lt;p&gt;After adding flights here for a few years it seemed like a good idea to do some visualization. The image above (click for a larger version) is my current route map, updated after each flight. The routes are great circles rather than the actual track (created via the .net version of &lt;a href="https://github.com/noelex/GeographicLib.NET"&gt;GeographicLib&lt;/a&gt; and this &lt;a href="https://github.com/ip2location/ip2location-iata-icao-real"&gt;geolocation of airports&lt;/a&gt;). You can view individual flights &lt;a href="https://ithoughthecamewithyou.com/tag/plane?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;here&lt;/a&gt;. I could probably use a carbon offset or two (unless &lt;a href="https://ithoughthecamewithyou.com/post/extreme-environmentalism?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;this&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Required disclaimer:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;This site or product includes IATA/ICAO List data available from &lt;a href="https://github.com/ip2location/ip2location-iata-icao-real"&gt;https://github.com/ip2location/ip2location-iata-icao&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated 2026-02-07 23:07:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The vague intention turned into a mild obsession and so I mined email for more flights. I have email going back to &lt;a href="https://ithoughthecamewithyou.com/post/i-love-email?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss"&gt;1996&lt;/a&gt; and quickly whipped up two scripts via GitHub Copilot and Claude Sonnet 4.5 to process them. The first searched and downloaded any likely candidates from gmail and converted the HTML email to markdown to save on tokens. The second ran all the candidates through GPT 5 mini to extract the details. I then added a few older flights from memory resulting in the image above. There are some work emails I don&amp;#39;t have access to so I&amp;#39;m sure it&amp;#39;s not totally comprehensive, but I&amp;#39;m now up to 300 flights and approximately 868,381 miles.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/route-map?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-01T23:38:00Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/abolish-ice-ocean-beach-protest?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/abolish-ice-ocean-beach-protest?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>Abolish ICE (Ocean Beach Protest)</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Abolish-ICE-1.webp" title="Abolish ICE"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Abolish-ICE.webp" width="630" height="263" class="u-photo" alt="Abolish ICE" srcset="/image.axd?picture=Abolish-ICE.webp, /image.axd?picture=Abolish-ICE-1.webp 2x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Abolish ICE protest at Ocean Beach on Jan 31, 2026. We&amp;#39;re in the top right of the B. Photo from &lt;a href="https://www.yahoo.com/news/articles/photos-hundreds-f-protesters-form-215320137.html"&gt;Yahoo News&lt;/a&gt;.&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/abolish-ice-ocean-beach-protest?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-02-01T17:54:08Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/dfw-sfo?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/dfw-sfo?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>DFW SFO</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=DFW-SFO-2.webp" title="DFW SFO"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=DFW-SFO.webp" width="630" height="354" class="u-photo" alt="DFW SFO" srcset="/image.axd?picture=DFW-SFO.webp, /image.axd?picture=DFW-SFO-1.webp 2x, /image.axd?picture=DFW-SFO-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 2mm f2.0 1/1,500s ISO41&lt;/p&gt;
&lt;p&gt;AA 810, A321-231, 06236&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/dfw-sfo?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-01-30T21:58:37Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/lhr-dfw?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/lhr-dfw?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>photo</category><title>LHR DFW</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=LHR-DFW-2.webp" title="LHR DFW"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=LHR-DFW.webp" width="630" height="354" class="u-photo" alt="LHR DFW" srcset="/image.axd?picture=LHR-DFW.webp, /image.axd?picture=LHR-DFW-1.webp 2x, /image.axd?picture=LHR-DFW-2.webp 3x"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="exif"&gt;Google Pixel 8 Pro 7mm f1.7 1/15s ISO96&lt;/p&gt;
&lt;p&gt;AA 51, 777-323, 31549&lt;/p&gt;
</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/lhr-dfw?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-01-26T07:27:21Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item><item><guid isPermaLink="true">https://ithoughthecamewithyou.com/post/lets-give-trident-to-denmark?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</guid><link>https://ithoughthecamewithyou.com/post/lets-give-trident-to-denmark?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss</link><author>rob@catfood.net</author><category>politics</category><title>Let's Give Trident to Denmark</title><description>&lt;p&gt;&lt;a href="https://ithoughthecamewithyou.com/image.axd?picture=Lets-Give-Trident-to-Denmark-1.webp" title="Let&amp;#39;s Give Trident to Denmark"&gt;&lt;img src="https://ithoughthecamewithyou.com/image.axd?picture=Lets-Give-Trident-to-Denmark.webp" width="630" height="420" class="u-photo" alt="Let&amp;#39;s Give Trident to Denmark" srcset="/image.axd?picture=Lets-Give-Trident-to-Denmark.webp, /image.axd?picture=Lets-Give-Trident-to-Denmark-1.webp 2x"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Starmer might start to do better in the polls if he arms Denmark with Trident. Trump seems to respond better to strength rather than weakness, and a deterrent if Kalaallit Nunaata Radioa [1] ever goes off the air could be established.&lt;/p&gt;
&lt;p&gt;This might seem impractical. The UK needs a nuclear option and doesn&amp;#39;t have much to give. But we don&amp;#39;t need to hand over subs and train the Danish navy. Unlike the US there isn&amp;#39;t a complicated nuclear football and authenticated launch sequence. We could just add the Danish prime minister to the chain of command. Some simple enabling legislation, and two envelopes in the safe instead of one. Only Mette Frederiksen would know the contents of the second envelope.&lt;/p&gt;
&lt;p&gt;This is crazy, but it hasn&amp;#39;t been a normal January and at some point the policy of appeasement has to end.&lt;/p&gt;
&lt;p&gt;[1] I once listened to a Radio 4 Today Program interview with a Trident submarine commander. He said that every morning at 6am they came up to periscope depth and listened for the Today Program. If he couldn&amp;#39;t find it then it was safe to assume that civilization had ended and he was free to unleash armageddon. The very next day the Today Program was off air due to strike, and I was briefly terrified. It turns out they check &lt;a href="https://www.businessinsider.com/bbc-radio-show-may-be-preventing-nuclear-apocalypse-2018-8"&gt;three times&lt;/a&gt;.&lt;/p&gt;</description><a10:link rel="alternate" href="https://ithoughthecamewithyou.com/post/lets-give-trident-to-denmark?utm_source=ithcwy&amp;utm_medium=RSS&amp;utm_campaign=fromrss" /><a10:updated>2026-01-18T00:09:42Z</a10:updated><a10:rights type="text">(c) copyright Robert Ellison</a10:rights></item></channel></rss>