Anduril Builder. Custom firmware for gifts and kids.
  • Is he a dot, or is he a speck?

    Good friend Gage has been toying with a new idea: Particles:

    Particles is shared memory for humans and AI agents. Each particle is one claim, plus what you need to judge it: who said it, where, when, and how confident they were. Facts, opinions, and memories are all claims, recorded the same way as particles. Particles are not edited or deleted. Particles are superseded, retracted, or disputed in the open. How much to trust it is a perspective applied at query time, never baked into the record.

    In the current post-truth world, this an interesting idea: the facts we have have a relative truth based on your own viewpoint and perspective. If we give an agent knowledge/ideas/data, it doesn’t really know what truth/facts are without us telling or asserting its validity or it looking it up from other sources. The more personal our agents become for our own uses, it seems like we’ll want to ensure our agents know our own worldviews and the weights of our claims compared to the information it finds from other sources.

    Maybe I’m late to the game, but seems like there’s so much thought right now going around on how to manage the context going into models at inference. Context engineering. Personal RAG.

    #ai #personal-ai

  • Debugging Little Memory 2.0 Diary View Scrolling

    I was working on fixing a bug in Lilmem 2.0 where switching from the diary’s Calendar mode to Memories mode caused a bug where the diary’s content “stuck” in a specific day. When I’d try to swipe between days after switching modes, the same day would re-appear after swiping.

    I asked Claude to help me take a look and consider a fix. It came back with its usual vomit of text, and it left me rather confused. Rather than press it to give me even more text, I asked it to give me a visual explanation for what it was trying to do instead.

    Here it’s explaining first the layout of the view so that we knew we were on the same page (ha!):

    Claude’s diagram of the Diary screen: a toolbar over a strip view over a content pager, with the SwiftUI view that owns each region called out on the right

    It outlined the various ways selectedPage changes can happen and its effects. And then it brings in a new concept of a “pinned” date key, which wasn’t clear to me in its wall of text:

    Claude’s diagram of selectedPage as a hub: swipes and date selection write to it, and its didSet fans out to the strip positions, the toolbar title, and pinnedDateKey

    And then it explains how and where the pinned date key is used:

    Claude’s diagram of the two page lists: Calendar mode is a contiguous run of days, Memories mode is a sparse list of anchor days plus a pinned day and a reflection page

    After seeing Claude’s diagrams and explanation, I was able to get what it was talking about and start collaborating with it from there.

    Super helpful getting these visual explanations. I was inspired by how I’ve seen Simon Willison has gotten Claude to make interactive explanations for him to better understand what the agent is talking about.

    This view/interaction is a core part of the UX of Little Memory, and getting it right is critical to the experience of the app, so I had to make sure Claude wasn’t just doing something too wild. Having it show me (rather than just tell me) was incredibly useful to make sure I knew what it was trying to accomplish.

    /little-memory /software-development #ai #ios-development #nerdtower

  • The Sound of Sucking into the Cloud

    ChatGPT Is a Huge Snitch:

    You’re led to believe you’re talking to a little guy in the computer; in fact, as with most computer and smartphone interactions these days, you’re also filing text into a searchable database. Add in the rise of AI-powered meeting transcription and social surveillance, and the range of materials generated in the course of a regular computer-job workday will soon be breathtaking.

    Even when you know not to, it’s too easy to accidentally slip and send private data to your agents.

    Claude Code has, on multiple occasions, read private keys that it wasn’t supposed to, and I’ve had to rotate them because of the exposure. And with features like GPT’s Computer History (horrible name BTW), it’s even easier to just dump more of your private data into the cloud. Frontier models have known to be relentless in the pursuit of their goals, and guardrails to tell them not to read your home dir or private files doesn’t seem like much use in blocking them.

    I think the way forward is to either run only local models or setup a separate workstation just to run remote models/agents. Without some sort of isolation, the agents can just easily suck up all the data they see.

    #ai #local-ai #personal-ai

  • My DEFCON 34 badge.

    My DEFCON 34 badge
  • iOS Dev Weekly Issue 763 is a game changer

    I’ve been reading iOS Dev Weekly for years now. Before this past May, the newsletter was written by Dave Verwer who I’d emailed a handful of times (he responded!) and always had great commentary about the state of the iOS development world. Sometimes, he’d be honest and note he didn’t have much to say that week, but he always brought interesting thoughts and ideas to the table.

    Since May, the newsletter was handed over to Mobile Sessions who would take the helm and keep it going. I’ve been skimming the latest issues, as it helps to read about new frameworks or blog posts from the community to keep up with what’s happening on iOS. There’s a rotation of writers who have been taking turns on the newsletter for each week. It wasn’t Dave, but I still felt like I was connecting with people in the community.

    The latest issue of iOS Dev Weekly, though, was just riddled with AI/LLM-isms that kept irking me:

    A new set of App Store marketing assets arrives this autumn, and the work is design work rather than engineering, which means it probably isn’t on anyone’s board yet.

    Ugh, this “and the work is…” just keeps showing up.

    Most of us open Instruments, look at the call tree, and quietly close it again. The hierarchy is honest but it buries the answer.

    And this “quietly” and “X is Y but Z” pattern as well.

    And even in the And Finally…, which, IMO is an easy way to just bust something out by hand:

    Somewhere a product manager shouted ship it, nobody asked a follow-up question, and CarPlay is now in a pontoon boat while some automakers are still workshopping their objections.

    Oi. This “nobody asked X” pattern that AI loves so much and is so dramatic about.

    Looking back at previous issues by Juan Marin, and Issue 759 was also by him. Still pretty AI/agentic.

    I’m not against agents writing and helping to write (though, I know some folks are adamantly against any use of AI in writing), but IMO this is a real sloppy use of it. I read enough Claude-isms all day from my agents in Claude Code, and it’s already exhausting there. When I’m reading a newsletter like iOS Dev Weekly, I’m expecting more than just the first pass of what gets spit out. I think it’s lazy and really leaves a bad taste in my mind. A little editing of the original draft can easily clean these up and give the writer a bit more of their own voice and make it lot more interesting to read.

    BTW: for my own blog here, I don’t use AI for writing/drafting, but I do have it help with proofreading/editing sometimes. For some of my projects, I do have it help out with marketing copy, but even there I steer it with my own voice guidelines and give a bit more personality/context than just its default generic style of prose.

    /software-development #ios-development #ai

  • Brushed metal with CSS

    I found a page with a cool example of how to draw brushed metal with CSS. I previously wanted something like this in Swift for simulating flashlights butttons like for the Noctigon KR4. Stashing this away for future projects.

    /software-development

  • Communication Style with AI

    Dave Jimison shares the idea of asking your LLM how you communicate with the prompt:

    Review the way I’ve communicated with you across our past conversations and give me an honest, direct assessment of my communication style with AI. Tell me how I express dissatisfaction, how I tend to work through conflict or disappointment, how I give positive feedback, and what strengths, blind spots, or recurring patterns you notice in how I collaborate with AI.

    I got a lengthy analysis from Claude Code. Here are some highlights:

    How you express dissatisfaction

    Blunt, factual, and almost never emotional. Across 1,345 messages there is no profanity, no sarcasm, and the strongest emotion on record is “ugh.” Your dissatisfaction has a consistent anatomy: name the mismatch, then supply the missing fact or the intended mental model.

    I’m pretty sure I’ve written fewer than a handful of profane words to AI before. It certainly wasn’t when using Claude Code. It’s usually in response to something that was surprising. It doesn’t make sense to me to use profanity or sarcasm with an LLM. Doing so feels like anthropomorphising the agent.

    The overall shape: you run AI like a staff engineer runs a team — high-trust delegation inside an explicitly constrained envelope, mandatory personal review at the reputational boundary, adversarial review as a habit, and a deliberate teach-the-agent loop that turns every correction into a durable rule. The through-line of both your strengths and your blind spots is the same trait: you optimize for keystroke economy and trust the machine to hold state. When the state-holding works, you’re an unusually effective collaborator; when it doesn’t, that’s where every cycle you lose comes from.

    Interesting learnings, and nothing surprising for me here. I think I’m pretty deliberate in thinking like an engineer when using AI agents. I understand the harness is keeping memory, and I use it to make sure I’m not repeating myself (too often). But I can see that I can sometimes lean too much on the agent’s memory and state, so it’s important for me to know (or more likely intuit and feel) the limits of the agent.

    /software-development #ai #communication

  • Unauthorized WiFi after leaving DEFCON

    Unauthorized Wi-Fi network found on Delta flight after DEF CON:

    Delta Flight 591 was traveling from Las Vegas to Atlanta on Aug. 10 when an unauthorized Wi-Fi network was detected aboard the Boeing 757. […] Messages attributed to the flight crew indicate there were concerns that someone aboard the plane had created a network called “Delta WiFi Fast.”

    Sounds like someone was playing with their new Pineapple after buying it at DEFCON.

    #defcon

  • Oooh new Hanklight with built-in USB-C charger: D4KC (variant of D4K).

    /flashlights #hanklights #emisar

  • David P. Reichart (via):

    Just because artificial lawns are not as good as the real deal doesn’t mean they can’t be called artificial lawns.

    And if a truck can struggle up a hill and a river can find its way to the sea, then Claude can reason its way through a machine learning problem.

    /software-development #ai #communication

  • Checked out of the hotel for DEFCON 34. Quick highlights for now: got ham radio license (technical), played in the ham radio fox hunt, got a portable Meshtastic node, checked out First Friday in the Arts District. What a blast.

    #defcon #travels

  • Musings

    I’ve added a new type of blog post to Ivan: Thinking called “Musings” which are essentially tweets or status updates. These are also known as microblog posts, and, for me, the big thing about them is that they don’t require me to think of a title for my posts.

    I’ve been off of using social media for over a decade, but I’ve more recently had the itch to throw my words out into the void again. I prefer to microblog from my phone, so I have a custom iOS app that I jot down some ideas in, and I publish by committing directly to my site repo. This lets me post from the sofa, the car, and… yes… the pooper.

    Beware! Expect more random musings from me.

  • The 10th annual World Dog Surfing Championships:

    The dogs are scored on tricks, the size of the wave they catch, how long they can stay on the board and how much they seem to be enjoying it all.

    So cool/cute! Also interesting is the format of the story, at least on mobile, where you swipe pages to view each snippet.

  • Ted Lasso Season 4 just got released on Apple TV (formerly called Apple TV+). A week or so ago I restarted watching from Season 1, and it’s just so much goodness. I think I’m able to catch a lot more of the jokes this time too. Looking forward to catching up to the new season.

  • DEFCON is right around the corner. Some things to pack: Flipper Zero, RFID-shielded wallet, UV light (Emisar D2), Baofeng UV-5R. Hmm, what else?

    /flashlights #defcon #emisar

  • Session Ownership

    From The Session You Cannot Take With You:

    A user should be able to close an account, keep a session, and hand it to another model. The new model may disagree, ask questions, or perform worse. It should not be staring at ciphertext where the old model saw the user’s history, evidence, plans, and delegated work.

    Agreed, and relevant to folks running local models. I want to be able to swap between different models as needed, but it seems like session context is being hidden by model providers who don’t make that easy.

    #ai #local-ai #personal-ai

  • Coffee at Sightglass

    Had a great chat with Josh Nguyen today. He’s working on RoverAI, doing super interesting work with local LLMs. I think more and more people and businesses will care about how much data we keep feeding model providers. I know I’m concerned about it, and I don’t think I’m alone. Beyond the privacy concern, having personal context available to models is a huge win too.

    I don’t really want Claude to have all that data about me: how can I trust that they’re not using it to advertise to me or manipulate responses? Take them at their word?

    I want to run my models locally where I control who gets to see my data, and it’s clear that the model is working for me rather than for a model provider.

    #ai #local-ai #personal-ai

  • Been running my own personal AI

    Limited Edition Jonathan (via) thinks Apple is the king of AI.

    I’ve been running my own local model and agent on an M4 Max with 128GB RAM. There’s a certain wow factor when running a local model the first time and realizing a file gives me access to all of human knowledge (OK, I know that’s not entirely accurate and overly simplistic, but the feeling is still valid IMO).

    I’ve been using Hermes Agent against Qwen3.6-35B-A3B-4bit. It’s no Fable or Opus, but it does let me ask questions about parenting or health that I don’t feel comfortable asking Claude about. I’m not sure if other folks care as much as I do about the privacy concerns of throwing so much private details of our lives at these LLM providers. It does look like Apple is throwing their weight behind the worldview that having a Personal AI that lives on our devices is the way to go. It means they’ll make hardware powerful enough to run these models.

    It’s still pretty early days of running local models, and I’ve yet to try out Apple’s latest with iOS/macOS 27. My own setup feels pretty rudimentary, but I can see it improving over time.

    #ai #apple #local-ai #personal-ai

  • Poka-yoke

    I recently came upon the term poke-yoke:

    Any mechanism in a process that helps an equipment operator avoid mistakes and defects by preventing, correcting, or drawing attention to human errors as they occur. It is a Japanese term that means “mistake-proofing” or “error prevention”, and is also sometimes referred to as a forcing function or a behavior-shaping constraint.

    In my mind, typed programming languages are a kind of poka-yoke. Using data structures for constraints is a poka-yoke. Modals and interstitials can be poka-yoke.

    I think I already use this concept in my UX designs often, just didn’t have a term for it.

    /software-development /japan #design

  • Day One wants you to chat with AI

    Aleem Shaun (via) has been a longtime Day One journaler.

    I’ve used Day One for more than a decade. It was an excellent journalling app. Private, minimal, easy to use, with excellent features such as geolocation, weather, ‘On this Day’, and book printing. Features that got out of the way and either worked quietly in the background or appeared only when you summoned them. That’s changed.

    He’s been getting frustrated with Day One forcing the AI chat feature down his throat without a way to remove it. As he looks for alternatives:

    The features I will most miss are On This Day and book printing. I can replicate On This Day with shortcuts and widgets. I’ve also been using Flohgro’s excellent On This Day Rewind App. Book printing, which I use to curate personal memories for my kids, will be a bigger pain point and harder to replace. My research hasn’t turned up much. I’ve looked at Blurb, Momento and others. None fully replicate what Day One does natively.

    Interesting to hear the thing Aleem would miss from Day One, a big app with tons of features, is the “on this day” feature, which is the whole reason I built my app Little Memory, a simpler Day One alternative. My app doesn’t have book printing, though.

    /little-memory #reflection #nerdtower #ai #design

All Thoughts »