(Where's everyone else? I'm feeling lonely in this...
# devlog-together
k
(Where's everyone else? I'm feeling lonely in this channel.) I hadn't tried this until today, but it turns out to work: I can create equations forwards and back, and trigger either selectively based on what blanks I fill in. The fine print: to switch directions I have to fill in the right blank, clear the old blank, and then type in something outside the old blank (to indicate I'm not going to type further into the old blank). Works better if I clear the old query first, but who can remember that? Perhaps I should just recompute on every mouse click. Then the third step could be clicking outside any blanks. More wasteful, because most of the time a mouse click won't require recomputation. It's Tadi, but is it permacomputing? 🦋
s
Hm was the "indicate I'm not going to type further into the old blank" interaction for switching direction intentional? It's kind of surprising that going the first direction the blank updates for every keystroke but it would require additional interactions to get it to recompute the other way..
k
There's basically 2 scenarios here: 1. I'm clearing a field before typing something else in. 2. I'm clearing a field so the computer can fill it in. If I optimized for 2, then I end up with a situation where a blank has say 10, I click into it to change it to 20, but when I backspace to nothing it immediately goes back to 10. So currently the update as you type only triggers for fields that are blank when cursor is outside them. It does seem sub-optimal, so suggestions appreciated.
s
Ah I think I see what you're saying - they're kind of "linked" to each other and always want to stay in linked even during edit, which gets you that first interaction where celsius updates instantly, but you needed to add that additional interaction to go back the other way...
It may not be what you're going for, but in my mind I'd kind of expect more of a leader/follower model for these links - if I start editing field A, anything linked to it should be updated until I unfocus that field
but nothing should really trigger an update on A until I unfocus that field
k
That's certainly an approach. The drawback there is that you might change a complex sheet in unanticipated ways because you forgot about the presence of some formulas. Things change outside your field of view. Right now that only happens for fields you've not typed anything into. So no data loss. I tend to prefer UIs with a sense of stability that aren't constantly moving what I put into them..
s
Ahh right...yeah wasn't thinking about the more complex sheets with things out of view
I imagine I'm probably going to run into a similar problem pretty soon with these event-based agents haha
e
@Kartik Agaram commenting here to say that I just went through all your notebook posts in this channel and this work is super cool! Loving the layout changes with / and + you've been experimenting with. The bidirectional values is great too! Just wanted to say I'm excited about your work on this!
k
@Elliot Thanks! ♥️ I seem to be stuck on this front, mostly because I don't have a clear sense of the use case for this. It feels a little bit like a dead end from a complexity perspective. Just slightly harder to change than the value it provides. I think if I could find a use case I'd split out the two pieces here of blanks in prose and code lines that can compute. Maybe on balance I'm slightly more excited by the code side, the prospect of reimplementing @jonathoda's Subtext 1. But I'm also trying hard not to build "just a demo" or "yet another programming environment built using a programming environment." So I'm on the lookout for some potentially non-Turing-Complete use case that will actually be useful to someone. At least it needs to have a strong focus on a specific domain, even if you could in principle build anything with it. I just don't know what domain yet..