Audelin: A Millisecond to Update the Transcript
Audelin's live transcript used to rebuild the whole call whenever a word changed. Making the work follow the live tail brought a late view update from hundreds of milliseconds to about one.
Audelin's live transcript used to rebuild the whole call whenever a word changed. Making the work follow the live tail brought a late view update from hundreds of milliseconds to about one.
A phone that pays at a till must never pay the till next door. How Mizan BLE picks the nearest host by smoothed signal strength, what a real iPad and iPhone measured, why the first picker flickered at arm's length, and what iOS does not let a Bluetooth payment do.
A payment over Bluetooth has one way to succeed and many ways to stop. How Mizan BLE splits each side into a chain of state machines, why the countdown stops once the amount is sent, and how an iPad ends a link it is not allowed to close.
Mizan BLE is a proof of concept in which an iPad at the till and a payer's iPhone agree a payment over Bluetooth Low Energy. What it is, which device plays which Bluetooth role, and how the four characteristics of one service carry a whole transaction.
Agonara can grade a student's open answer with any model behind an OpenAI-compatible endpoint. The model grades per criterion, its output is validated before a student sees it, and the work runs as a leased, retried, budgeted job.
In Agonara, model suggestions and curator drafts never become program content by themselves, accepted content is kept as revisions, and a student's answers are pinned to the revision they answered. How the modules keep their own data apart.
Agonara is a bring-your-own-agent environment for learning programs. A curator builds a program from sources, students follow it and prove they understand, and the agent you already use does the drafting, quizzing and grading. What it is and why only a person accepts content.
The code review that ships with Agister runs several lenses in parallel, one of them a writer–critic debate in a bounded repeat, before a judge merges the findings. How it is composed from settings.
Every Agister run leaves a folder with the exact definitions by digest, inputs, permission plan, events and patches. Why the record matters more than the terminal output when agents do the work.
Agister is a Go command-line runner for AI-agent work defined in settings files — agents, processes and workflows — with a record of every run. What it is and why I built it.
Skipping by sentence and resuming where you stopped sound trivial. In FolioTell they meant mapping UTF-16 offsets from the speech engine back to sentences in the original text.
AVSpeechSynthesizer is asynchronous and full of late callbacks. How FolioTell keeps playback correct with pure reducers, effect handlers and utterance tokens.
FolioTell is an offline iPhone app that reads Markdown and plain-text files aloud. Why it exists, and why it has no account, no backend and no network.
Children tap twice, tap hard and drag when they mean to tap. How RexLab filters a child's double tap at the root of the app, without any screen knowing about it.
RexLab's behaviour is specified in 87 Gherkin feature files with about 640 scenarios. Why specs come first when AI agents write the code, and what the tests check beyond game rules.
RexLab is a dinosaur learning web app for children aged 4 to 7, made for an iPad held sideways. What it is, who it is for, and why it has no backend.
Coming from banking systems and iOS development, I found the distributed systems metaphor for LLM APIs limiting. Here's a different way to think about state that might help build better agent intuition.
Notes from a session on coding workflows where the actual issue wasn’t “agents” or “gates” but trust.
An analysis of the architectural confusion in recent debates about Model Context Protocol versus CLI tools, and a proposed framework for intelligent tool selection based on task determinism.
Building a Pluggable AI Brain: A Modern Chatbot Architecture
Understanding the Architecture of Components
This blog post explores how to implement a `HandleEffectDecorator` in Swift, demonstrating techniques for using weak and strong references to manage side effects in an event-driven system while avoiding retain cycles and ensuring reliable execution.
How I've got 10% Build Time Improvement in a Real-world App
Prototyping SwiftUI interfaces with OpenAI's ChatGPT
iOS Lead Essentials Certification (Essential Developer)
Replicating Search UI of the Stocks app with SwiftUI `searchable` API
Dave Farley talks about TDD (Test Driven Development) and BDD (Behaviour Driven Development)
A link to Paul Hudson’s What’s new in Swift 5.7
Dependencies: best practices
Localizations - essential links
fastlane snapshot to automate taking localized screenshots for iOS and tvOS apps on every device
Check your app metadata against App Store review rules with fastlane
How to create a basic scaffolding for a super modularized app
Exploring the way of the Decorator Pattern implementation with Protocol and Protocol Witnesses
Re-watch and recap of Point-Free series on Protocol Witnesses
Swift development without desktop
Automating app screenshots and previews for the App Store with Snapshotting and fastlane
Continuous Integration/Continuous Deployment
Short tips on unit tests
Take home Fill Hole assignment.
Interesting posts on Image Processing by Lightricks
Useful links about command line utility and `ArgumentParser`
Swift Concurrency - essential links
The Redacted View Modifier in SwiftUI
A collection of links and brief notes about job search, job application, technical and behavioral interviews, salary, and offer negotiations.
WebSockets in iOS
Useful links about convolution and image kernels
How to store API keys and secrets, hide them from GitHib
JSON - essential links and cases
Combine - essential links
Bug Report Checklist
Create inverted mask with SwiftUI
Building website with Publish, hosting with GitHub.