1,498 karma · joined February 19, 2017
https://github.com/BrianHung cv.brianhung.me
I've spent a lot of time on prompts and tool-calls to get Flash models to reason and execute well. When I give the same context to stronger models like 4o or Gemini 2.5 Pro, it's able to get to the same answers in less steps but at higher token cost.
Which is to be expected: more guardrails for smaller, weaker models. But then it's a tradeoff; no easy way to pick which models to use.
Instead of SQL optimization, it's now model optimization.
Agree the code should just be open source but there's nothing secretive that you can't extract manually.
For design.md, I have a prompt because we're now working with a reasoning model and doing structured data extraction: create me an issue on Linear with a title, description, and a to-do list.
I would recommend trying the approach yourself and saving the prompts if you can nail down the repetitive asks.
Chat function is just chat; it can't edit your files.
Composer probably relies on prompt engineering to do editor-architecture, as it reads and writes to your codebase. But it's heavily heavily to Sonnet 3.5 and tool-calling.
For architecture-type stuff, I prefer DeepSeek R1 as reasoning models do better on high level design. Which is why I will copy and paste in and out of compsoer.
For coding, I use cursor composer to gather context about the existing codebase (context.md). Then I paste that into DeepSeek R1 to iterate on requirements and draft a high level design document, maybe some implementation details (design.md).
Paste that back into composer, and iterate; then write tests. When I'm almost done, I ask composer to generate me a document on the changes it made and I double check that with R1 again for a final pass (changes.md).
Then I'm basically done.
This is architect-editor mode: https://aider.chat/2024/09/26/architect.html.
I've found Cursor + DeepSeek R1 extremely useful, to the point that I've structured a lot of documents in the codebase to be easily greppable and executable by composer. Benefit of that is that other developers (and their composers) can read the docs themselves.
Engineers can self-onboard onto the codebase, and non-technical people can unstuck themselves with SQL statements with composer now.
Given how expensive it is to query Google places, would love a crowdsourced open-source places API.
The browser nowadays can be a web dev environment with nodebox and webcontainers; and JavaScript is the default language there.
Allows you to build experiences like interactive charts easier.
You can still sync to a platform like GitHub or BitBucket after all users close their tabs.
A long time ago, I looked into using isomorphic-git with lightning-fs to build light note-taking app in the browser: pull your markdown files in, edit them in a rich-text-editor a la Notion, stage and then commit changes back using git.
The only thing SQLite is missed, which is important when integrating with React, is incremental view maintenance: how do we maintain as much immutable state on an update as possible to avoid wasteful re-renders?
OpenAI already A/Bs test the responses it generates. Imagine if they own the text editor or spreadsheet you work on too. It’ll incorporate all of your edits to be self-correcting.
A similar project is sandpack, but that relies on nodebox which is also closed source.
LLMs will then have a set of these components to dynamically route and build interfaces with.
Component libraries are already popular and more time will be spent inside of them than managing the glue that is outside.
Instead of replacing the entire document or selection, we want it to create diffs or operations for the minimal amount of edits as possible. This helps preserve intent better when merging the doc later on with OT/CRDTs. (Of course, you could also ask GPT to semantically merge docs for you haha).
So far, it's been harder than plain text or spreadsheets which have an easier position/coordinate system to work with: just line-col or row-col.
Rich text is usually stored as trees with json or html. Have seen a paper (https://www.inkandswitch.com/peritext/) that represents it as a flat array.
Difference in approach would then be: is it easier for gpt to work with diffs or with operations/tool calls?
https://discuss.codemirror.net/t/codemirror-6-and-typescript...
or this package
https://github.com/ChromeDevTools/devtools-frontend/blob/mai...
Has anyone rewritten a performant calculation in that way from JavaScript to WASM? I’m curious to what the performant gap is, and whether browser optimizations are closing or widening that gap.
How would you handle map-reduce type of tool calls where you have a lot of parallel tools that you want to merge later on? What’s a good way to scale that without running into API limits?