✨New demo: what if vibe coding felt more visual?
@brian_lovin@maryrosecook and I did a game jam using Notion as our "IDE": launching Cursor agents from a task board, and making a custom image for each task 😎
The demo shows 3 ideas for the future of agents:
1) Agents should collaborate across apps.
Each app has its focus--Notion AI is good at drafting specs and organizing tasks; Cursor is good at coding. So let them specialize!
Today we're launching a new integration where Notion AI can kick off Cursor Cloud Agents to do coding tasks. The Cursor API accepts natural language prompts, so I think of this as "cross-app sub-agents" -- it's kinda cute how it resembles humans hiring outside contractors 😊
BTW: the parallelism of cloud agents is incredibly freeing for creativity, but it also creates a new problem: sooo much work to keep track of! Which brings us to the next idea...
2) Agent orchestration is a data visualization problem.
A powerful frame for designing agent UIs is to think of the chat transcripts as the "raw data" and ask: what visual projections might help people make sense of this data at scale? We need to engage our human GPUs -- our visual processing -- to understand what the computer GPUs are doing for us!
One thing we can do is use AI to populate traditional UIs like progress bars and status updates. But there are also new possibilities now...
For example: when you have a lot going on, it can be hard to identify tasks just by text titles. So we tried generating an AI image for each task -- turns out this helps a lot by giving it a unique visual identity!
And of course, it also just makes it super fun to build with friends 😃 Speaking of friends...
3) The future of coding is collaborative.
Sometimes it feels like IC engineers are being reduced to middle managers: shuffling information between the team's context and the coding agents that they individually manage.
The solution: bring all the people and agents into one shared space, with shared context and visibility!
In the video you can get a glimpse of how this feels. Mary, Brian and I record ourselves chatting about ideas, and then we use AI to turn that conversation into a list of tasks on a shared board. As the ideas get built in parallel, we can all monitor progress and review the work together, nothing is siloed.
My main takeaway from this game jam was: damn, creativity with friends, at the speed of conversation, is incredibly fun.
---
Our goal here is to let anyone use Notion as a fun and creative "software factory" to build software together with your team. Give the Cursor integration a shot and let us know what you think! (AI Image gen in Notion isn't GA yet, but coming soon and already out to some users)
And let me know if you'd want a template or more detailed instructions on the setup we showed in this demo...
@paul_snively @CoqLang You might be interested in my Coq tutorial which starts with ordinary functional programming, dives into dependent types and propositions-as-types, and proceeds with proof scripting and program extraction: https://t.co/HCcZeuZDFF
Any feedback is appreciated!
@rsms Would you say that's inherent to the concept, or just a result of Rust in general being verbose and low-level? Haskell's implementation of the idea (which Rust adapted) is much more streamlined, and it's hard (for me) to imagine something significantly more ergonomic.
@Tony_Barotsis I was hoping to build a new kind of blogging infrastructure to replace my current blog before Heroku retired their free tier, but I was unsuccessful.
@avi_press@KirinDave It was an unfortunate combination of the effects of the pandemic and the organizers not having enough bandwidth—myself included. We transitioned the Meetup group to a new owner (@SalarRahmanian) as a last-ditch attempt to save it. Maybe you can collaborate with them to revive it?
@benjohnbarnes We'd still need it for: 1. safe transitioning to/from optional in structs (hard to compatibly change the type of a field), 2. the crucial fallback behavior in choices, 3. ergonomics, since it maps to the language's built-in notion of optional/nullable types in the generated code
@benjohnbarnes The hint wouldn't affect the binary wire format (which would have no problem supporting recursive data types, as long as the data itself isn't cyclic), so changing the location of the hint in the schema wouldn't be catastrophic—it would just break your builds. 🙃
@benjohnbarnes Yes, but if we wanted to support support cyclic data types in Rust, the code generator would have to make an arbitrary decision about where to "tie the knot" (i.e., where to insert a `Box<...>`)—which to me would not be ideal. Alternatively, it could be specified in the schema.
@benjohnbarnes * No—not due to any theoretical limitation, but it would introduce a lot of complexity (e.g., think about covaraint & contravariance as it applies to the compatibility relation).
* No—only because Typical generates unboxed data types for Rust.
* I'd like to think so!
I love that Types and Programming Languages has a dependency graph of its chapters, followed by a recommended curriculum as a curated topological sort.
Is your child texting about Haskell?
gf: greatest fixed-point
a/s/l?: any space leaks?
imho: indexed monads, higher-order
wtf: Comonad/Traversable/Foldable
idk: impredicative data kinds
k: continuation
idgaf: I derive (Generic, Applicative, Functor)