<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>Flutter, Dart, mobile, web, hardware tinkerer, dad, cub master.&#xA;&#xA;Former Stadia UI TL, Google Fiber TV.</description><link>https://bsky.app/profile/codefu.mcdole.org</link><title>@codefu.mcdole.org - John McDole</title><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mrvwcsv7gs2q</link><description>Formants dialogue in roguetui... also on web!  Pesky timer resolutions, Cross-Origin-Opener-Policy, and a million other issues when debugging wasm-&gt;wasm-&gt;webaudio!&#xA;&#xA;#termui #termui_audio #dart #flutter</description><pubDate>31 Jul 2026 02:37 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mrvwcsv7gs2q</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mro2wdewlk2s</link><description>On my &#34;to read&#34; list, right after audio.&#xA;&#xA;[contains quote post or other embedded content]</description><pubDate>27 Jul 2026 23:38 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mro2wdewlk2s</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mrnbf7wv2c2h</link><description>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.&#xA;&#xA;#dart #flutter #tui</description><pubDate>27 Jul 2026 16:01 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mrnbf7wv2c2h</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mrimhho62c2z</link><description>Something I&#39;ve been working on with the termui / termui_audio / termui_flutter packages. Recorded from Flutter Web + WASM, but also runs in a console.&#xA;&#xA;#dart #flutter</description><pubDate>25 Jul 2026 19:36 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mrimhho62c2z</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mr4vtcs2qs2v</link><description>Added soloud to termui: termui_audio.  CLI uses dart:ffi to soloud libs. Web/Windows/Mac/Linux has a wrapper to flutter_soloud.&#xA;&#xA;Demo:&#xA;jtmcdole.github.io/termui_audio/&#xA;https://jtmcdole.github.io/termui_audio/</description><pubDate>21 Jul 2026 03:52 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mr4vtcs2qs2v</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mq5j56ktfs22</link><description>Sparklines and improvements to LinearProgressIndicator added to termui.  I wanted to emulate btop&#39;s awesome graphs, so:&#xA;&#xA;1. braille and quads&#xA;2. added &#34;width&#34; to the bars if you want with different fills.&#xA;3. Added &#34;stops&#34; for all bars.&#xA;4. Vertical options!</description><pubDate>08 Jul 2026 16:12 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mq5j56ktfs22</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mpxauvdlg226</link><description>termui 0.7.1 - pty support, some more debug tools to show layers / widget boundaries, resizing, focus.. and mouse clicks.&#xA;&#xA;KTTY support would be the next thing to add, but I&#39;m going to finish my e-reader and work on a game or something.</description><pubDate>06 Jul 2026 04:28 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mpxauvdlg226</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mptsfeb57c27</link><description>Madness, thy name is idle hands.&#xA;&#xA;#termui #dart #flutter</description><pubDate>04 Jul 2026 19:31 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mptsfeb57c27</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mptpfbqgns2h</link><description>termui is getting platform views....</description><pubDate>04 Jul 2026 18:37 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mptpfbqgns2h</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mptfqwan6k2g</link><description>Updated pty2 to work better on windows and linux: 70MB/s ConPTY, 200MB/s Linux!&#xA;&#xA;Arena allocation, native finalizers, and more tests... also a new home in termui monorepo.&#xA;https://pub.dev/packages/pty2</description><pubDate>04 Jul 2026 15:45 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mptfqwan6k2g</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mppstxlolk2f</link><description>more silly fun - &#34;termui&#34; cycling through titles, glitch effect widget, doom fire with cycling colors and wind.&#xA;&#xA; jtmcdole.github.io/termui/&#xA;https://jtmcdole.github.io/termui/</description><pubDate>03 Jul 2026 05:29 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mppstxlolk2f</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mpgtphmq7k2e</link><description>I&#39;m getting excited for Flutter GPU&#xA;&#xA;https://github.com/flutter/flutter/pull/188605</description><pubDate>29 Jun 2026 15:50 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mpgtphmq7k2e</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3moqn4k7tn22u</link><description>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?&#xA;&#xA;And can run in Flutter?&#xA;&#xA;https://github.com/jtmcdole/termui</description><pubDate>20 Jun 2026 19:53 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3moqn4k7tn22u</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mjzehwhabk2b</link><description>See you at Cloud Next!</description><pubDate>21 Apr 2026 16:07 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mjzehwhabk2b</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mjzeh7y7ic2b</link><description>TSA checking IDs at the gate sure isn&#39;t ominous...</description><pubDate>21 Apr 2026 16:06 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mjzeh7y7ic2b</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mii7qwbspc2e</link><description>Best train goes zoom zoom.&#xA;&#xA;This infantile post is brought to you by the letter Z.</description><pubDate>02 Apr 2026 03:02 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mii7qwbspc2e</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mi67phsnjk2i</link><description>Leave it to win32 to have &#34;ERROR_MORE_DATA&#34;.</description><pubDate>29 Mar 2026 03:34 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mi67phsnjk2i</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mhwipbeggk27</link><description>Things I didn&#39;t think I would be doing: writing Win32 FFI code.</description><pubDate>26 Mar 2026 01:54 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mhwipbeggk27</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mgo5r7u5gk2q</link><description>&#34;But don&#39;t you want to play with me?&#34;</description><pubDate>10 Mar 2026 00:52 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mgo5r7u5gk2q</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mflabkq6hk2w</link><description>As I&#39;ve slowly migrated some projects to the HSM; I found myself needed a few more features; replace/copyWith:&#xA;https://github.com/jtmcdole/hierarchical-state-machine.dart/issues/13</description><pubDate>24 Feb 2026 03:34 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mflabkq6hk2w</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mezmtfdi2k2i</link><description>HSM 2.2.1 released... why? While I have &#34;stable&#34; flutter running, I didn&#39;t use flutter_test till I started migration and hit the dreaded version pinning &gt;:(</description><pubDate>17 Feb 2026 03:30 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mezmtfdi2k2i</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mewlhprsfs2b</link><description>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&#39;em. replayable events as well.&#xA;&#xA;no deps either.&#xA;&#xA;#opensource&#xA;&#xA;https://pub.dev/packages/core_bus</description><pubDate>15 Feb 2026 22:28 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mewlhprsfs2b</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3meuf6fswuc2g</link><description>Just added serialization to my hsm library. mostly handwritten.&#xA;&#xA;Also added plantuml output. I want to support mermaid, but how do you write text inside the state blocks?&#xA;&#xA;https://github.com/jtmcdole/hierarchical-state-machine.dart/issues/7</description><pubDate>15 Feb 2026 01:30 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3meuf6fswuc2g</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3meo7rs3ywk2n</link><description>Proud to be the 131st backer 😎 on @BackerKit Crowdfunding for New Edge Sword &amp; Sorcery 2026! https://www.backerkit.com/c/projects/brackenbooks/new-edge-sword-sorcery-2026?ref=bk-social-pledge-button</description><pubDate>12 Feb 2026 14:38 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3meo7rs3ywk2n</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3men6k7u3ls2j</link><description>HSM 2.0 published - now with nearly all the things I wanted years ago:&#xA;&#xA;* Proper event deferral&#xA;* Deep and Shallow history&#xA;* Fork, Choice, Terminate, Final pseudo states&#xA;* Blueprints for composability + validation&#xA;* Performance: lca and paths precomputed&#xA;* PSSM tests&#xA;&#xA;https://pub.dev/packages/hierarchical_state_machine</description><pubDate>12 Feb 2026 04:43 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3men6k7u3ls2j</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3me7cu2mewk2p</link><description>How is this the world we live in today?&#xA;&#xA;&gt; President Trump posted a blatantly racist video clip portraying former President Barack Obama and the former first lady Michelle Obama as apes</description><pubDate>06 Feb 2026 16:23 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3me7cu2mewk2p</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mdejycxuwk2n</link><description>Today I released Portico Auth - A modular, Dart-native authentication and authorization ecosystem designed for self-hosting and experimental applications.&#xA;&#xA;For a long time my personal home projects have used this JWT/JWE/Auth0 API, but in a copypasta fashion...&#xA;https://github.com/jtmcdole/portico_auth</description><pubDate>27 Jan 2026 00:48 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mdejycxuwk2n</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mddx5dkutk2p</link><description>I love working on open source code at Google. This is the account you should be following.&#xA;&#xA;[contains quote post or other embedded content]</description><pubDate>26 Jan 2026 19:11 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mddx5dkutk2p</guid></item><item><link>https://bsky.app/profile/codefu.mcdole.org/post/3mdbc64le4c2m</link><description>You can&#39;t spell Cowardice without ICE&#xA;&#xA;https://www.youtube.com/watch?v=cxewcIGmw_M</description><pubDate>25 Jan 2026 17:50 +0000</pubDate><guid isPermaLink="false">at://did:plc:dttvdizgex67dwrb5fgohzyo/app.bsky.feed.post/3mdbc64le4c2m</guid></item></channel></rss>