tom larkworthy
@larkworthy
Computers and decentralization.
Javascript code has a very distinctive speedup once optimizations kick in if you look closely. Beyond being faster, WASM can also sidestep this. I have golfed an in-browser Assembly Script compiler down to 2Mb with some pruning to Binaryen observablehq.com/@tomlarkwort...
Providing feedback spatially is precise without words. Its a massive workflow win because is quicker and you don't lose focus by switching your focus.
"Detection of the moving mark runs at 13%, and at 18.5 fps that leaves too few samples inside the stimulus history window. The chunking is pure overhead in orbit mode (the whole sweep is only 9 ms there), so let me make it mode-aware:"
The laptop stares at itself in the mirror while an AI recalibrates the optical parameters, piloted from a nearby phone.
Dug up my fast optical localization project and finally got it running pose tracking direct from webcam feed. The AI managed to optimize its performance down to "3 ms/frame" in the browser! Not bad but I am aiming for *much* faster on real hardware. tomlarkworthy.github.io/lopebooks/no...
OK one of the greatest things IA've ever built. Bi-directional SVG source code editing. Drawing as programming with programmable drawings. *this* is how I want computers to collaborate with me. Ordinary SVG with a plurality of editable views. tomlarkworthy.github.io/lopebooks/no...
Lots of UX improvement. save-in-place, better framing, add cell shortcut. I have also discovered cells that rewrite their own source code enables end user widgets. Made an audio DAW example of how far that can take you in the userspace VB direction tomlarkworthy.github.io/lopebooks/no...
I been trying to understand why my notebook coding agents suck compared to Claude Code. What is different? Its not the prompt or the task or the LLM... it was the environment and tool design. did-plc-j7nm3lrd5h7fm3sfhcv3lhfv.lopecode.com/r/coding-tools
I tried getting it to generate the plans for a lazer cuttable wooden puzzle box. The results were ok, not enough I wanted to make it. It did at least look like it could be assembled.
Scratch is better than I remember it. define blocks can execute immediately and outside the animation loop so you call them recursively and do multi sprite spawning in a single tick which is quite handy for generative stuff.
Just thrown out the VGA cable I have carried around for years. Probably not gonna need it...
Yeah I think basically bash is the strongest meta-interface to anything for a LLM. "everything is a file" includes virtual abstractions created inside that virtual fs. The file system *is* the interface. The LLMs are tuned so hard on TerminalBench they are shell ops masters.
Lopecode newsletter-001 Read all about the newest addition to a local-first reactive notebook environment that can be published to ATProto did-plc-j7nm3lrd5h7fm3sfhcv3lhfv.lopecode.com/r/newsletter...
Extremely cool, we have been able to prototype a backfill of Feeling of Computing Slack archives straight into @colibri.social. It ends up under a bot account, but the bot deeplinks the speaker's atproto profile which Colibri renders nicely so its actually quite coherent. Slack links work (mostly)
Wow this @colibri.social look extremely slack-like but on public ATProto messaging infra. Very cool. Comprehensive lexicons but no overt bridging fields that I can see.
Oh interesting. I added the computeNow ticks of the Observable runtime to the new debugger, and now I can see that cells that have a long compute time end up eating ticks from the runtime. Did not know that!
Working on the next version of the temporal debugger for Lopecode. Now the "blocked" vs "computing" difference is colored, and the cells are topologically ordered so you see the cascades of computation much easier. Its already revealing a ton of unexpected inefficiencies!
Worked on getting themes reactive which was oddly satisfying. My favourite is ocean-floor
Turns out the static file over a bundle of inline MIME typed files maps *very well* to ATProto (lopecode.com). Furthermore, being on ATProto means notebooks can be shared with other ecosystems like standard.site longform content aggregators. Lopecode documents as computational blogs?
My experiments with hosting notebooks on atproto. The Ledger notebook lets you manage your notebooks and cross-post them, like I did just now!
Language Server Protocol support added 🎉 In a non-typed language like this, the auto-complete is run from the *runtime values*, not a type system, which is pretty cool IMHO as this can auto-complete against live data, which is something static types cannot do.
Really enjoying the possibilities atmosphere unlocks. Login from a file:// domain, publish to atmosphere, or open via web link and login there instead Same identity, different mediums, same code. This sidesteps the control a traditional Cloud service asserts.
The notebook is on atproto, containing a deserializer for notebooks hosted on atproto, so it can load itself, and then that loaded copy is a functional notebook, so it can also download itself again. The notebook is self-serializing (and includes notebook authoring tooling)
The sharing is what made Observable great. Lopecode's bundle-of-files representation maps *very* well to `at://`. I have a prototype notebook reader/writer tomlarkworthy.github.io/lopecode/not... uploaded to at://did:plc:j7nm3lrd5h7fm3sfhcv3lhfv/dev.lopecode.bundle/3mkjwz5coof2w
This project is addictive. Added an FPU and compressed instructions (simplifies toolchain), fixed some bugs. Now awk and vi work! Added dataviz for CPU load and privilege mode so the boot process can be visualized and connected to the boot jargon.
Thinking about moldability of SVG and how to achieve it without a ton of special casing or overt plumbing 1. leverage the computation graph you get for free with reactive programming 2. using numerical methods to manipulate parameter space from screen space tomlarkworthy.github.io/lopebooks/no...
Run Linux in a file? A 6.8Mb HTML self-serializing literate notebook file that emulates Risk V and can boot an interactive Linux BusyBox shell. Built differently (but heavily inspired by) Fabrice Bellard's JSlinux. tomlarkworthy.github.io/lopebooks/no...
What a time. I am now interviewing my LLM on its coding preferences.
Computational blog posts that you can connect directly to Claude Code tomlarkworthy.github.io/lopebooks/no...