
Essays
Three ways I learn with AI
"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.
lab notes
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
Essays
what does the word "algebraic" mean when used in the context of programming langs? - a random tweet I'd wondered the same thing about "Algebraic Effects", and was excited to find a talk on YouTube titled What's Algebraic About Algebraic Effects and
Essays
I’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 stuff) and I couldn’
Essays
While the world has moved on from Elm, I still think about its simplicity a lot and how that was achieved, and what gaps there were in its design. The gaping weakness I'll talk about today was also the result of its strength. Elm apps have a single
Essays
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
Essays
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 remember
Essays
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’
Essays
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
lab notes
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
Early stage startup/product, reactivity/incremental compute, LLMs/vibe coding, visual programming/UX, local-first/web, and math/Lean.
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
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.
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
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
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
When working with type systems in programming languages like TypeScript, Scala, Java, or even Python (via type hints), you'll encounter the concepts of covariance and contravariance. These terms describe how the subtype relationships of generic types behave when you substitute their type parameters. Understanding them can help you
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
I bit the bullet and went towards re-doing the effects system implementation with the native async/await, to see if I can get a baseline implementation. I was successful, but not without roadblocks along the way. This version is much simpler and handicapped than what I wanted originally, but I
These weeks are passing by faster and faster. I too would like to work faster, but I didn't think vibe coding was going to be it. I work with AI everyday, and I mostly have it do basic debugging or explaining Python minutiae to me. I know what
❓This is a conversation with GPT o3-mini💬What is a Kleisli Category? Explain it to me as someone that knows functional programming well. A Kleisli category provides a way to encapsulate and compose effectful computations, which is especially appealing if you're familiar with functional programming and monads. Core
The work on the scheduler is to support async effect handlers. It won't do at all, if a network request always blocks the evaluation of the computational graph. So I embarked on it about two weeks ago. Right now, the API looks like this (subject to change). There&
This was a tough past week. I was working on supporting async handlers, even if the reactive part was synchronous. I didn't want the graph to have to wait on network requests. This turned out to be tough. Also I got food poisoning this past week. The design