Joe Freeman

@fka-freemansoft.bsky.social

On YouTube: https://www.youtube.com/@FreemanSoft On LinkedIn: https://www.linkedin.com/in/1freeman/

Save the date! BSides NoVA is back for our 10th year! Join us October 30-31 as we celebrate a decade of community, collaboration, and cybersecurity. We're just getting started, so stay tuned for this year's theme, CFP, Happy Hours, and more announcements in the coming weeks.

In Ollama, New conversation cache behavior depends on the model's memory and the runner. Seven attention-only models reused the prompt. Four on llama-server always re-evaluated a fixed 1024-token. MLX runners paid one full cold prefill and then nothing. joe.blog.freemansoft.com/2026/09/on-o...

On Ollama, a model's memory type and its runner decide how much of the cached prompt a new conversation reuses - 8

In freemansoft/Flutter-AdaptiveCards a demonstration Dart chat server asks a local Ollama model for an answer as Adaptive Card JSO...

joe.blog.freemansoft.com

If you send a local Ollama more chat history than its context window holds, Ollama doesn't trim history. It throws the whole message away, returns a normal-looking answer, and reports no error or warning. I observed this on 14 models and 2 Ollama versions. joe.blog.freemansoft.com/2026/09/olla...

Ollama silently drops a history message larger than its context window

In freemansoft/Flutter-AdaptiveCards a demonstration Dart chat server hands a question to a local Ollama model. It asks for the an...

joe.blog.freemansoft.com

To measure model behavior, a wave of probes sent a fixed set of questions to Ollama, one model at a time. Several results looked like bad model behavior when the root cause was test config, the machine, the Ollama runtime, the harness or, the test probe. joe.blog.freemansoft.com/2026/09/eigh...

Eight measurement rules from a local-model benchmark on Ollama

In freemansoft/Flutter-AdaptiveCards  a demonstration Flutter client sends questions to a Dart chat server. The server passes each one ...

joe.blog.freemansoft.com

Ollama's tool channel beats prose for card JSON on every model that calls it. A structured response: the JSON comes back in the model's message body as JSON text inside the message content (as prose). Ollama also offers a second route, the tool channel. joe.blog.freemansoft.com/2026/09/olla...

Ollama's tool channel beats prose for card JSON on every model that calls it

In freemansoft/Flutter-AdaptiveCards a demonstration Dart chat server hands a question to a local Ollama model. It asks for the an...

joe.blog.freemansoft.com

joe.blog.freemansoft.com/2026/09/i-ac... A Fable: An SDK upgrade I've done repeatedly has a long tail. The tail includes triaging golden-image failures and managing the images. It includes pushing CI-generated images back into the repo. Today, the agent did the whole workflow unprompted.

I accidentally used Fable to do a system upgrade and it was Fableous

A Flutter SDK upgrade I've done several times has a long manual tail that I've never been able to hand off.  The tail includes deciding whic...

joe.blog.freemansoft.com

We ran into 4 types of failures when building an SDUI demo that used an LLM as an AdaptiveCard JSON generator. Raw JSON displayed as text. Truncated Cards truncated. Prose appended after an otherwise valid card. A conversation that drifts back to prose. joe.blog.freemansoft.com/2026/09/we-t...

We tried 14 levers to get reliable SDUI card JSON from a local LLM model

In freemansoft/Flutter-AdaptiveCards a demonstration Dart chat server hands a question to a local Ollama model, asks for the answe...

joe.blog.freemansoft.com

Adaptive card generation turned out to be an interesting test problem for local models. The results carry beyond this demo to any workload that asks a local model for constrained, schema-shaped JSON. The demo became an instrumented test bed. joe.blog.freemansoft.com/2026/09/an-s...

An SDUI demo that turned into a local-model benchmark

freemansoft/Flutter-AdaptiveCards is a Flutter renderer for Adaptive Cards. The project includes a demonstration Flutter chat client...

joe.blog.freemansoft.com

The LILYGO T-Dongle-S3 is self-contained, including a microcontroller, Wi-Fi, Bluetooth, a Stemma/I2C, an SD Card slot, and an LCD display. It can be used as a standalone device, a computer-attached peripheral, or a standalone cloud endpoint. #circuitpython #adafruit #lilygo youtu.be/rCJWZwMG2nQ

Implementing standalone or tethered IoT appliances with the LILYGO T-Dongle-S3 and CircuitPython

YouTube video by Joe Freeman: Software Craft, Org Stuff, Tech Stuff

youtu.be

#Adafruit has a #CircuitPython package for the #LILLYGO T-Dongle-S3 that uses the LCD display as its REPL output. You can see this by enabling the LCD backlight in your Python. You can override this and use the LCD for your own program with a couple of lines of Python. youtube.com/shorts/K2Tz9...

Writing Python code for the LILLYGO T-Dongle S3 LCD Display with Adafruit CircuitPython

YouTube video by Joe Freeman: Software Craft, Org Stuff, Tech Stuff

youtube.com

The case against generative AI as a business and the questionable revenue hype machine. This article, which I wish I had written, describes the tangled web of hype, power, and corporate deals driving today's Generative AI. www.wheresyoured.at/the-case-aga...

The Case Against Generative AI

Soundtrack: Queens of the Stone Age - First It Giveth Before we go any further: This is, for the third time this year, the longest newsletter I've ever written, weighing in somewhere around 18,500 wo...

wheresyoured.at