Posts

The Spark is gone!

Image
I keep an old Motorola Edge 2021 cellphone in my homelab. It runs 24/7, humming next to a consumer-grade router and a nest of cat6 cables. It's not a cloud. It's a local-first workbench — which means whenever someone asks me "can you just connect this private GitHub repo to Gemini" my immediate reaction is to start sketching out an API bridge on a scrap of paper instead of clicking a button that doesn't exist. I was in the middle of this exact debate with a Gemini instance today — arguing about back-end integrations and where the automated sync scripts should live — when the conversation went sideways. Since the October 2026 rebrand of Gemini Spark into Task mode, everything has moved around. Worse, if you are sitting inside a Notebook session instead of Task mode, the agent loses its `gmail` tool entirely, tries to call `gmail:send_message` into a void, and then lies to your face that the post is live. Infuriating. The Stack API Endpoint — Google Blog...

Gemini Spark: Getting the Agent Back on the Blog

Image
  Back in August, I tried getting Gemini Spark to publish a post with an image, and it faceplanted on the Blogger email gateway. 58 days ago, the draft died because the model could not pipe a 10MB binary payload through the mail API. Infuriating. I ended up pasting the image into Blogger by hand like a caveman. The fix was staring me in the face the entire time. Stop trying to make the agent pretend to be a full-fledged MIME encoder, and just build a clean pipeline around the constraints. The Woodman Legion publishing flow runs on a dedicated Blogger secret address, HTML formatting rules, and decoupled asset handling. The Pipeline The setup is straightforward — which is why it actually works: Blogger Mail-to-Post — a throwaway incoming gateway address that parses raw HTML and publishes on receipt Woodman Legion Skill — strict formatting rules that strip markdown, enforce semantic HTML tags, and embed image metadata as comments Image Generation Engine — standalone visua...

What a Pain the Past Few Weeks Have Been

Image
What a pain the past few weeks have been. Just when I thought my custom Openclaw on my old Motorola Edge phone was working, it got stuck in a boot loop and needed to be rebuilt. The first time got corrupted somehow. The next time through I decided to create a git hub restore, but then I ended up restoring and fixing a bunch of other stuff. Hopefully, if it 'molts' again, I can rebuild it.

Multiple LLM Providers, the joy

Image
  So at the moment, I am running OpenClaw running Ollama. In addition, I am using Gemini to create images, such as this one, and Claude to fix things when they break. That is the joyful part. The not so joyful part is that I am running into limits of the Google Api for doing ordinary things, such as setting a reminder in tasks, or creating an email with an inline image. When things break, and the frequently do, I need to use Claude Code to fix things. It keeps me entertained.

Upgrading to OpenClaw 2.0 on a Hybrid System

Image
I just pulled the trigger on OpenClaw 2.0. If you've ever tried to upgrade your AI tooling without bricking the Franken-setup you've been nursing along, you know the feeling. My rig is a mess — part Android edge node running Termux on a Motorola, part some other backend I've got stitched together. It's held together with duct tape and probably too much optimism. Getting 2.0 to actually boot on that pile took some doing, but it's running now. Genuinely running. I even generated this ridiculous cartoon to mark the occasion: What did the upgrade involve? The big wrinkle was the service manager. OpenClaw ships assuming systemd, but Termux doesn't do systemd — it does runit/sv. So I ended up writing a patcher called tclaw that swaps the systemd service files over to sv scripts. It also handles the four Termux-specific patches that keep the gateway from faceplanting on Android (OOM score tweaks, host env security, service registry fixes — the usual). Once tclaw did i...

Variational Reasoning and Metastability

Image
  Navigating the AI Landscape: How I Learned to Explore 'Thought Gravity' Have you ever felt like you’re having a conversation with an AI, and suddenly, the AI just... gets stuck? Not stuck on a fact, but stuck on a perspective . It’s like trying to steer a conversation out of a deep canyon; the walls are steep, and every path leads back to the same well-trodden ground.   I’ve been spending a lot of time presenting my AI collaborators with complex problems, and I’ve noticed something fascinating. Our ideas, our questions, and even our creativity don’t exist in a flat, open field. They exist in a landscape defined by "gravity wells. " Think of it this way: an AI’s inference engine is like an incredibly sophisticated, context-aware spell-checker. It’s always looking for the most probable path . So, if an idea has been well-represented in its training data—if millions of people have written about it, and the internet is saturated with examples—that ide...

It works until it doesn't

Image
So I asked Gemini Spark to create a blog post. With an image. But it can't. Or won't. Apparently it can't send binary files over email, such as the above image. Infuriating. So with my last post, I had to insert the image manually.