2025-03-20 02:01:00
RT Simon Willison
Not all AI-assisted programming is vibe coding (but vibe coding rocks) https://simonwillison.net/2025/Mar/19/vibe-coding/
2025-03-11 20:48:27
RT Jonathan Edwards
The LIVE Programming Workshop will be held online this year! So no excuses - submit by July 21. @liveprog2021 [link in reply]
2025-03-05 04:00:49
RT Jackson Dahl
An incredibly important design idea in this essay from @geoffreylitt. People are capable!
It reminds me of another empowering idea: tools can be analogized to maps or to turn-by-turn navigation (h/t @thesephist).
Some musings on this, and how it might shape the design of AI tools to come:
I remember the first time I explored LA on a bicycle, rather than driving. In the car, I typically just relied on google's navigation and followed directions. On the bike, I looked at the map, but wasn't in a rush and my intention was to explore. I gained a much fuller picture
Maps assume user agency: they provide a model for understanding reality and what is possible, and encourage the user to explore with guidance. Examples: google search, essay outlines,
Meanwhile, turn-by-turn nav abstracts details and often remove agency. They say: sit back, we'll do the work for you. You don't need to see the full picture. Examples: Tiktok, ChatGPT, and most LLM products.
I think the risk is that—especially with digital tools—we are moving more and more away from maps and toward nav.
Obviously, turn-by-turn nav products can be great: they're usually much more efficient and simple to use. But, especially as we increasingly build AI into products, I worry that our over-reliance on this metaphor may reduce agency. Nav allows us to turn our brain off and "just get the answer," which has major tradeoffs.
AI products have begun to introduce more "maplike" features, like exposed reasoning in deepseek and o3, and even sources in Perplexity and ChatGPT's deep research. But there's a lot more room to grow.
Consider how image or video generation tools like Midjourney or @ComfyUI evolve, or even codegen like @cursor_ai and @cline: all of these have potential futures with creative processes that are more map-like or more nav-like. How much do they empower the user to understand, think, and create, vs. just provide the output.
As infinite creation possibility becomes the standard, what matters is what we choose to pull out of these incredible powerful generative tools. What frame do you stop the model on, assuming it has infinite design space?
Of course, the map is not the territory. But when compared, maps can be more explicit about that truth, as navs abstract us even further.
To return to @geoffreylitt's "nightmare bicycle," I think it will matter a great deal what structure, affordances, and design these tools take. Are we presented with overly-simplified modes like "gravel, downhill," or "popcorn, chicken"? Or do tools aim to strike a balance between simplicity, power, and structure that assume user agency?
2025-02-20 01:35:06
RT Geoffrey Litt
Re @RobertHaisfield @rsnous one way to achieve "annotate anywhere" is to host your software ui in a document... so you can naturally add notes anywhere 😎
https://www.inkandswitch.com/embark/#freedom-to-annotate-is-valuable
2025-02-13 02:47:33
RT Geoffrey Litt
Re 16/ bonus tactical tip: here's the workflow I use for Cursor + Composer on complex changes to keep quality high.
key idea: move conservatively, catch mistakes early, "slow is smooth, smooth is fast" -- and "slow" by AI standards is still fast by manual coding standards. you really wanna avoid going off the rails at any point.
- start with detailed prompt up front, like a ticket for a junior eng. think thru the desired UX and the architecture, identify tricky bits that require care.
- end first message with "ask me clarifying questions before proceeding"
- clear up the questions.
- then say "show me a plan before you code"
- review the plan carefully and give feedback. you should catch bugs and weird misunderstandings here, not later!
- then once the plan is done, tell it to implement (all at once or in testable stages, depending on size)
- if the result is close, you can iterate a couple times
- if it totally went off the rails, i recommend bailing out: start over, or do the change yourself. don't try to iterate out of a confused place in the chat.
basically in summary, apply the classic skillset of "senior eng working with junior eng"!
this may seem tedious at first, but in my experience once you get the hang of it, it feels pretty natural.