🔰If CRDTs (Conflict-free Replicated Data Types) are new to you, check out this previous post. There's a simple way to understand CRDTs: It leverages algebra to unmix the inevitable mixing of data when syncing over an unreliable network. Why are networks unreliable? For one, it'd be really expensive to build| Interjected Future
"You don’t `learn` from a chatbot. You consume...They’re spewing slop and people are gobbling it up." No. You’re holding it wrong. You can definitely learn from LLMs. It has to be with critical thinking.| Interjected Future
It's been almost three months since the last lab note, and I lament that I didn't document the process and the shifts that were happening with my work. But then again, I was busy writing code and talking to potential users. Back at #073, I was| Interjected Future
Compositionality can be much more than just an interface between two objects or functions. It can be a set of laws.| Interjected Future
Reactivity, Incremental compuation, Effect systems, Local-first, Sync, and Large Language Models| Interjected Future
Tweet sourceI’m not near a level where it’s 10k LOC per day, but the volume of commits is noticeably higher w/ Claude/Codex now. Back in Feb/Mar when Claude Code came out, I was writing an implementation of DBSP (incremental computation with some mathy| Interjected Future
If Elm had Algebraic Effects, it would have made it more adaptable to these multi-message processing.| Interjected Future
Lately, I've been experimenting with a different system eval stack than what you might normally hear about: Obsidian and Claude Code. Typically, Obsidian is used as a personal note taking app/knowledge base and Claude Code is used as a coding agent. I'm misusing both to hack together a system| Interjected Future
Since coding agents came on the scene, a subset of programmers panic about AI replacing their jobs, but I think they're panicking about the wrong thing. The fear seems focused on the mechanical aspects—will AI write better functions than me? Will it debug faster? Will it| Interjected Future
I bounced off of Cursor a couple of months ago. It was good having code in context in the sidebar, a leg up from cutting and pasting, but I found its agent UI confusing and it made odd edits. In addition, when I left it open for a week, it&| Interjected Future
Having been a fan of functional programming and following the breadcrumbs of reactive systems, it's not surprising that I'm a fan of Elm, and had experience building different systems in it. It's too bad that enthusiasm for Elm didn't last until vibe coding came on the scene, because it seems| Interjected Future
I ended up deciding on SolidJs. For one, I spent way too much time deliberating on a choice that wouldn't matter as much at the end of the day. But I think I wanted to give functional programming a good shake, since it's aligned with my| Interjected Future
This week was a little stalled. Had some daily life administrivia to take care of, but I did manage to focus on one question: what, if any difference was there to the choice of language for vibe coding? After looking into some of the other reactive systems, React stopped being| Interjected Future
Switched gears this week to start a new, but related project. I started a prototype on an app that helps users make buying decisions with an AI agent. Lately, I've been using ChatGPT to help me make buying decisions, but I found some aspect of the experience wanting.| Interjected Future
I've been doing an implementation of DBSP, which is a way of doing incremental computation built up from some basic concepts from digital signal processing. While I use LLMs in my daily work to ask it questions, spitball with it, and do some basic stuff, I hardly ever ask it| Interjected Future
It's been two or three weeks since the last lab note. I've been on vacation with my family for two weeks, and then caught a cold this last week when I got back. I've been doing two things: * Continuing the implementation of DBSP * Trying to see if generating a prompt| Interjected Future
Had bunch of distractions like doing taxes this week, so I fell behind with the weekly update. However there's been progress these past two weeks. * Generated Deep Research report on the strengths and weaknesses of different notebooks * Learned about E-graphs and Interaction Nets * Read papers on Incremental Lambda Calculus * Read| Interjected Future
Wrapped type computing Despite resisting the draw for writing an interpreter/compiler, I did think about it some more, and find it almost inevitable, given the properties and constraints that I have. I went back to the three things I want the notebook to do: reactivity, collaboration, and observability. Under| Interjected Future
I pulled down Llama 3.1 7B for a long flight recently. It seemed magical in the same way downloading all of Wikipedia seems--like taking an entire universe with you. The missing piece is the context to steer the LLM. We need a Microsoft Access of RAG and LLM system| Interjected Future
I was watching Casey Muratori and the Primeagen the other day, and they were talking about the high-level architectural design of the core data inside of Primeagen's game. What Casey says sounds counter-intuitive for anyone from a traditional OOP software background. He suggests not committing to an organization of data| Interjected Future
🔰If CRDTs are new to you, here are some introductory links. - An interactive intro to CRDTs [https://jakelazaroff.com/words/an-interactive-intro-to-crdts/] - An introduction to state-based CRDTs [https://www.bartoszsypytkowski.com/the-state-of-a-state-based-crdts/] - CRDTs for non-academics [https://www.youtube.com/watch?v=vBU70EjwGfw] - CRDT: The Hard Parts [https:| Interjected Future
🔰If CRDTs are new to you, here are some introductory links. - An interactive intro to CRDTs - An introduction to state-based CRDTs - CRDTs for non-academics - CRDT: The Hard Parts - Readings in CRDTs - crdt.tech What are the trade-offs between different kinds of CRDTs (Conflict-free Replicated| Interjected Future
This is a review of all the resources I found and learned about persistent data structures in the course of looking for a solution for maintaining state. Complexity from maintaining state One of the hard things about programming is how to maintain and manage state [https://interjectedfuture.com/the-broken-half-of-interactive-programs/], especially| Interjected Future
State is a cross-cutting concern. Weak equivalence hinders re-rendering. Distance between code and data breeds complexity. State transitions need linear traces.| Interjected Future
I was surprised to learn that different stacks of software all do some type of computational analysis to better do its job. The CPU does it to figure out how to pipeline instructions. Compilers do it to feed CPUs better set of instructions. Front-end frameworks do it to figure out| Interjected Future
As an exercise to see what the developer experience might look like, I outlined what it might look like for a React-like single-page app. The app that's outlined below is a variation on the TodoMVC.| Interjected Future
While most front-ends today have largely agreed on the design of the rendering subsystem, we seem to be grappling with design of the interactive subsystem.| Interjected Future
Shared mutable state invites complexity into our programs. Programming languages help with this complexity inside a program, but not across network boundaries between programs.| Interjected Future