Sign in

John McDole

@codefu.mcdole.org
295 followers 128 following 247 posts

Flutter, Dart, mobile, web, hardware tinkerer, dad, cub master. Former Stadia UI TL, Google Fiber TV.

PostsRepliesMedia
John McDole @codefu.mcdole.org · 31/07/2026
Write the apps you want, not the random demoware people are slinging.
130
John McDole @codefu.mcdole.org · 31/07/2026
Formants dialogue in roguetui... also on web! Pesky timer resolutions, Cross-Origin-Opener-Policy, and a million other issues when debugging wasm->wasm->webaudio! #termui #termui_audio #dart #flutter
010
John McDole @codefu.mcdole.org · 28/07/2026
So, no joke, this was my effort to build a long time ago: 1. distrobox + ubunutu 2. wireless keyboard and mouse 3. viture pro glasses (had'em for a while, directly support on steamdeck) 4. flutter sdk. I could then build, run, and test on the steamdeck... for desktop.
111
John McDole @codefu.mcdole.org · 28/07/2026
On my "to read" list, right after audio.
010
John McDole @codefu.mcdole.org · 27/07/2026
"chiptune" that I wasn't happy with.
010
John McDole @codefu.mcdole.org · 27/07/2026
Work in progress: started off trying to make chiptune dialogue work with text. This worked well on CLI / Flutter Windows, but WASM/Web was always just... wrong. So I tried another path: audio atlases, and taking a note from the Celeste folks. #dart #flutter #tui
120
John McDole @codefu.mcdole.org · 26/07/2026
cross-platform audio is hard - termui_audio plays files just fine, but start adding in tone generators and "sprites" and things get wonky on wasm. sigh.
010
John McDole @codefu.mcdole.org · 25/07/2026
Wait till I have a demo with dialog audio
120
John McDole @codefu.mcdole.org · 25/07/2026
Something I've been working on with the termui / termui_audio / termui_flutter packages. Recorded from Flutter Web + WASM, but also runs in a console. #dart #flutter
2110
John McDole @codefu.mcdole.org · 21/07/2026
I witness this claim. All hail Somnoferatu.
010
John McDole @codefu.mcdole.org · 21/07/2026
Added soloud to termui: termui_audio. CLI uses dart:ffi to soloud libs. Web/Windows/Mac/Linux has a wrapper to flutter_soloud. Demo: jtmcdole.github.io/termui_audio/
jtmcdole.github.io
termui_audio_example
A new Flutter project.
000
John McDole @codefu.mcdole.org · 08/07/2026
Sparklines and improvements to LinearProgressIndicator added to termui. I wanted to emulate btop's awesome graphs, so: 1. braille and quads 2. added "width" to the bars if you want with different fills. 3. Added "stops" for all bars. 4. Vertical options!
000
John McDole @codefu.mcdole.org · 07/07/2026
It started with extracting a terminal package I had written a long time ago and then scope creep made termui. source: github.com/jtmcdole/ter... demo: jtmcdole.github.io/termui/ (click the <> button to switch to widget book if you want something less eye-destroying)
github.com
termui/packages at main · jtmcdole/termui
dart terminal ui library. Contribute to jtmcdole/termui development by creating an account on GitHub.
020
John McDole @codefu.mcdole.org · 06/07/2026
oh snap
000
John McDole @codefu.mcdole.org · 06/07/2026
It's released. Feedback is welcome!
100
John McDole @codefu.mcdole.org · 06/07/2026
So I'll probably look into KTTY later to see if I want to implement it, but termui_flutter and termui_pty give you a terminal emulator with _some_ graphics (SGR) support. I don't think I'm full xterm / kterm... but it is fairly fast.
000
John McDole @codefu.mcdole.org · 06/07/2026
termui 0.7.1 - pty support, some more debug tools to show layers / widget boundaries, resizing, focus.. and mouse clicks. KTTY support would be the next thing to add, but I'm going to finish my e-reader and work on a game or something.
461
John McDole @codefu.mcdole.org · 05/07/2026
Yeah.. I jokingly had a "support platform views" for the TUI. Then I noticed the author of lumide.dev was having problems with the xterm / kterm ports. Now I just need to finished writing some tests!
lumide.dev
Lumide | The Agent-Native IDE
Lumide is a high-performance, lightweight code editor built for the agentic age. Host autonomous agents natively via the Agent Client Protocol with zero Electron overhead.
000
John McDole @codefu.mcdole.org · 04/07/2026
Madness, thy name is idle hands. #termui #dart #flutter
160
John McDole @codefu.mcdole.org · 04/07/2026
termui is getting platform views....
010
John McDole @codefu.mcdole.org · 04/07/2026
Updated pty2 to work better on windows and linux: 70MB/s ConPTY, 200MB/s Linux! Arena allocation, native finalizers, and more tests... also a new home in termui monorepo.
pub.dev
pty2 | Dart package
Pty2 for Dart and Flutter. Provides the ability to create processes with pseudo terminal file descriptors.
000
John McDole @codefu.mcdole.org · 04/07/2026
Flutter Web, Flutter Windows, Dart CLI. Doesn't mater.
110
John McDole @codefu.mcdole.org · 03/07/2026
Are you not linking directly to your own website now?
000
John McDole @codefu.mcdole.org · 03/07/2026
100
John McDole @codefu.mcdole.org · 03/07/2026
more silly fun - "termui" cycling through titles, glitch effect widget, doom fire with cycling colors and wind. jtmcdole.github.io/termui/
jtmcdole.github.io
example_web
A new Flutter project.
230
John McDole @codefu.mcdole.org · 29/06/2026
I'm getting excited for Flutter GPU github.com/flutter/flut...
github.com
[Flutter GPU] Add Texture.fromImage to wrap a ui.Image texture by bdero · Pull Request #188605 · flutter/flutter
Fixes #188246 Adds Texture.fromImage, the inverse of Texture.asImage. It wraps the GPU texture that backs a ui.Image as a Flutter GPU Texture without copying any pixel data. Getting widget content ...
020
John McDole @codefu.mcdole.org · 20/06/2026
Very much inspired by Charm / Bubble Tea / all the other great terminal UI's out there, but for Dart. Also works in Flutter if you use the termui_flutter package. This uses canvas.drawRawAtlas() for faster rendering that a full blown PTY emulator.
000
John McDole @codefu.mcdole.org · 20/06/2026
I was writing a immersive cli epub reader + audiobook playback "for fun" and I kept copying the same library around. I thought I'd make it into a package, but before release I spent some time with Antigravity and got just a little carried away... docker+flutter+agy cli is a pretty great combo.
100
John McDole @codefu.mcdole.org · 20/06/2026
Writing a Dart CLI app but want a Flutter-like interface? Escape hatch to render some raw ansi/sgr codes? Perfetto recording, inspection and searching? Asciicast v3 recording and playback? Ascii golden tests and integration testing library? And can run in Flutter? github.com/jtmcdole/ter...
1133
Reposted by John McDole
Flutter @flutter.dev · 24/04/2026
Cloud Functions and Admin SDK for Firebase now supports Dart as an experimental feature 🎯 This means Flutter developers can use the same programming language throughout their whole stack and share logic between the frontend and backend.
The Dart language and Cloud Functions logos side by side
4419
John McDole @codefu.mcdole.org · 21/04/2026
See you at Cloud Next!
000
John McDole @codefu.mcdole.org · 21/04/2026
TSA checking IDs at the gate sure isn't ominous...
000
John McDole @codefu.mcdole.org · 02/04/2026
Best train goes zoom zoom. This infantile post is brought to you by the letter Z.
000
John McDole @codefu.mcdole.org · 29/03/2026
Leave it to win32 to have "ERROR_MORE_DATA".
000
John McDole @codefu.mcdole.org · 26/03/2026
Things I didn't think I would be doing: writing Win32 FFI code.
000
John McDole @codefu.mcdole.org · 10/03/2026
I need to bring her in on the weekend or something and see how she handles the space
010
John McDole @codefu.mcdole.org · 10/03/2026
"But don't you want to play with me?"
140
John McDole @codefu.mcdole.org · 10/03/2026
... I'm a filthy hacker and I use Blender + CAD Sketchup + Geometry Nodes.... waaaaaay more work than its worth. Then I switched to FreeCAD for a bit. CAD as Code though? 🤯
010
John McDole @codefu.mcdole.org · 01/03/2026
Granted - this is for main channel of Flutter... but I was considering something like this for flutter-stable and flutter-beta; just package all the tools in a docker image (or multiple depending on what you want, e.g. web only). Rather than downloading the whole git repo.
100
John McDole @codefu.mcdole.org · 01/03/2026
This is the composable action: github.com/flutter/flut... It was used in this test to run the tools test; but I disabled it because it doesn't work for engine builds: github.com/flutter/flut...
github.com
110
John McDole @codefu.mcdole.org · 01/03/2026
I'll dig up the workflow script we have. Iirc I made it with with ACT as well as GH.
100
John McDole @codefu.mcdole.org · 28/02/2026
Any details? I've been considering building / publishing docker images for actions.
110
John McDole @codefu.mcdole.org · 24/02/2026
As I've slowly migrated some projects to the HSM; I found myself needed a few more features; replace/copyWith: github.com/jtmcdole/hie...
github.com
Blueprints should implement "copyWith" · Issue #13 · jtmcdole/hierarchical-state-machine.dart
Blueprints are currently immutable. This makes sense if you have a library that supports handing out blueprints and you don't want them accidently modified for future calls. However, if you want to...
010
John McDole @codefu.mcdole.org · 17/02/2026
HSM 2.2.1 released... why? While I have "stable" flutter running, I didn't use flutter_test till I started migration and hit the dreaded version pinning >:(
010
John McDole @codefu.mcdole.org · 16/02/2026
and of course I fudged it up with "sealed" and didn't see any problems with testing. <sigh> version 1.0.1 incoming
000
John McDole @codefu.mcdole.org · 16/02/2026
Let me know if you run into any issues. I wrote this a long time ago and have been carting it around in a private repo for a while. I did a clean it up pass, redone with callbacks (al'la changenotifier), and added the stream extension. Replay streams are also a sneaky form of injection :)
000
John McDole @codefu.mcdole.org · 15/02/2026
And the gathering and sharing of all the tools in my toolbox continues: core_bus (pronounced corvus) - const Events with type safety, no choke points, callbacks for performance and streams if you need'em. replayable events as well. no deps either. #opensource pub.dev/packages/cor...
pub.dev
core_bus | Dart package
A lightweight, type-safe Event Bus for Dart with optional event replaying. Decouples asynchronous code with minimal overhead.
151
John McDole @codefu.mcdole.org · 15/02/2026
Just added serialization to my hsm library. mostly handwritten. Also added plantuml output. I want to support mermaid, but how do you write text inside the state blocks? github.com/jtmcdole/hie...
github.com
Machine Serialization · Issue #7 · jtmcdole/hierarchical-state-machine.dart
Add serialization of state, including history. deferred events and data will require developer support for serializing data. care needs to be used to ensure all deferred and queued events maintain ...
030
John McDole @codefu.mcdole.org · 12/02/2026
Proud to be the 131st backer 😎 on @BackerKit Crowdfunding for New Edge Sword & Sorcery 2026! www.backerkit.com/c/projects/b...
backerkit.com
New Edge Sword & Sorcery 2026
Sword & Sorcery magazine featuring short fiction, non-fiction, and gorgeous art. Made with love for the classics, and an inclusive, boundary-pushing approach to storytelling! Luxurious hardcover, clas...
010
John McDole @codefu.mcdole.org · 12/02/2026
HSM 2.0 published - now with nearly all the things I wanted years ago: * Proper event deferral * Deep and Shallow history * Fork, Choice, Terminate, Final pseudo states * Blueprints for composability + validation * Performance: lca and paths precomputed * PSSM tests pub.dev/packages/hie...
pub.dev
hierarchical_state_machine | Dart package
A framework for building performant state machines similar to UML state charts. States are organized in parent/child relationships, allowing common event handling to be shared by more generic states.
021