Live CEOing Ep 781: Language Design in the Wolfram Language [% Modernization]

Stephen Wolfram discusses modernizing the percent feature in the Wolfram Language with John, Noah, and Jason. They cover how to link outputs, design choices for the user interface, and what improvements might come next.
Chapters
Sam.
Okay. Hi, everyone. Welcome to a Wolfram language design review, part of our cycle for version 14.1. Today we have an interesting topic I'm not sure we've talked about in live stream before. We call it percent modernization.
So we did actually do a live stream, what, a week or two weeks ago?
Oh, my gosh. Okay. My memory is even more pathetic than I thought. Okay, sorry.
Not trying to call that out.
All right, well, good. Well, all right. Let's launch here then. So where.
Okay, so that's right.
I remember we did a live stream where Jason wasn't here, and that was. Yes. Okay, I'm remembering now.
Okay, now Jason is here as well.
Yep.
Hi, guys.
So, okay, for the sake of the live stream and just kind of get everyone on the same page, we have, you know, we have these feature. This feature of percents, where you can refer to the previous output. So evaluate this. I then type percentage plus, I don't know, 10, say, and I've added 10 to all of these numbers. Now say, I didn't mean 10, I meant 100. Now, if I reevaluate this. This percent is referring to the last value in the kernel. So it's going to add 100 to all of these. And what I really meant is this. And so now we have what we're calling smart percents. And so now if I do the same thing, I say percent, you know, plus 10, that's fine. And then I said I meant 100. And I evaluate this again, it added 100 to these numbers because this is no longer linking to the last thing in the kernel or a specific down value of out, I guess, in the kernel, it's linking positionally to an output cell and an input cell. So just as a reminder, that's.
Can you just type percent again on a new line?
Sure.
Type of space.
To be clear, this is not the proposal for how one would enter percent. It is a convenience that Noah's set up so that he doesn't have to futz around in the demo.
Yeah, I've got the insertion mode on, like, the most aggressive. Just for this, there's an option I.
Added, and we'll have to probably decide on the default option, of course, but.
That'S the aggressive version.
Yeah, yeah. Yes. There's an option called percent reference creation. But, yeah, I've got a whole section line insertion.
I mean, other than the fact that the actual raft thing that you get here looks incredibly technical and complicated, there's a certain real niceness to the fact that it automatically does that linking well.
You'Re not thinking through all the cases though. For example, the case which I know you don't do, and you're kind of, you're not so happy about it when people do do it. But people do multi line inputs and the percent may have referred to the previous line in the same inputs, which we definitely do not want a replacement for.
Yeah, so that.
Yeah. And. And of course, you know, I mean, if they're actively editing, you know, literally the thing could change the number of inputs as they're editing. And having locked it in at the time of typing, I think probably is too aggressive.
Okay.
I mean, at least, you know, unless you've made a decision that might come through a, you know, a menu or a keyboard shortcut, obviously. But yeah, I would agree with John.
As well on that as well. But it is possible that I could adjust for that line number. But as John says, the line numbers change. That might get sort of messed up.
Well, you know, there are other things we could play with like percent percent, which people use a little less often. We could try and start doing things where it defaults differently by the time you get to double percent.
Yeah. You know, we have certainly talked about, you know, percent percent and triple percent and so on. I mean, I have to say I'm curious to hear your experience. But I have to say I see percent percent really rarely encode.
I certainly use it. I don't think I use triple percent, but I use double quite often. But I would be perfectly happy if double suddenly started defaulting to something different and allowed me to get back to the behavior I wanted. Because by the time I'm using double percent, it's more tenuous what the heck I'm talking about. But let's go on with this review. This insertion thing is super important, but let's go on with the rest of the review.
Okay, Depending on what the time is, then I might bump this up. We'll see how we go. If we pick up from where we left off last time, which was. So these smart percents, they have three links. One is a link to the kernel, so is the down value about there. One is the input cell and one is the output cell. And just all the different combinations of those states of the slices of those Things gives you eight states. And for the sake of presenting a simple UX, we reduced this down to four. So this column is what you saw last time, 0.3. And if you recall, in the meeting, we started coming up with an alternative appearance with these icons where this was meant to represent A stack of cells. And, you know, this, this, this stack is, you know, reflecting the sort of the state here.
Oh.
Actually, you can't see. Ah. So I'm going to have to zoom out slightly to go on the same. Is that. Is that reasonable? Can you see that?
I can see that, but I'm not. Yeah.
So. Yeah, so, so, so, so, so. Oh, and also, you asked for a slightly different styling of the out label to kind of diminish it a bit. Now, actually, I think putting the percent is quite nice. It compactifies the whole thing. And it is actually what you typed. You know, you would have typed a percent to get here. Sorry, one point. Let's try one point. 1.15.
There we go.
That'll do. Right, okay. Yeah, so that's a slight iteration.
I'm not wild about that for the following reason. I think it just is too much symbolism. It's too obscure. I like the directness of out such and such.
Well, but, yeah, but as Noah says, I mean, at least by any mechanism that we've presently considered, the only way to get this is if you know that percent is a thing. So we've already selected out people who don't know that what percent is.
Yeah.
@ least for authoring purposes. You could argue for reading purposes it might be different, but for authoring purposes, we've definitively selected out people who.
Don'T. I think that looks deeply hieroglyphic, that, that. I mean, it does. It's not helped by the fact that those braces are very dark black, which I don't.
Like. I mean, that's the focus, though. That's the bit that matters in the sense that the. You're linking to the content, or I suppose you're linking to the cell and the content is the indication of as cell. I guess. But so there's also this idea where you're using a link icon, which I think we kind of. Yeah. And perhaps this really does look quite hieroglyphic. Then we've got the link percent number. But.
Maybe. I think that's ridiculously hieroglyphic. But I agree that that column there, link icon without, is quite nice. Okay, I quite like that one. I think that one is clearer and less hieroglyphic and so on. I like the fact that the linking thing is sort of a piece of metadata on the outside rather than part of the hieroglyphic.
Sequence. Right, right. Great. Okay. Well, we'll use this as our sort of working one.
Then. I'm not sure the broken link is a little bit.
Graphic. Yes, there was a discussion as to whether that was slightly too.
Whimsical. We had an amusing discussion about whether something was actively, you know, flying across the room as you hear the ping, you.
Know. Yeah, yeah, yeah.
Right. But yeah, I'm sure, I'm sure, you know, graphic design will be able to improve on these icons. I'm.
Sure.
Actually, I've currently got the percent display set up, but I can change that. So we've got the one that you like. Right? There we.
Go. One day after all these years. Somebody should write a case study on. On using our language as a user interface development environment in. As a creation tool for user.
Interfaces. Anyway, actually John and I talked about that as a. As a tech conference presentation. I didn't have time to do it last year, but. Yeah, but we've discussed.
That. Right. Might be interesting class for. Through Wolfram you or something. Anyway, separate.
Topic. Okay. Okay, great. So. Okay, so we're going with this column for now. And. Yeah, and I guess the other thing just to say here is that obviously the link to the kernel is important because that's the kind of the highest fidelity representation we have and we.
Really care about an item.
Three.
Yep. Yeah, down to the Malone. I meant. I meant the third.
Row. Row.
Three.
Yeah. Oh, sorry. Yeah, row.
Three. I'm not believing in that. The out. The reddened out there. I think it should redden. I think it should be more framed red rather than just the out being.
Red. Fair. Let me show you this in. Oh, of course I removed that. Okay, hang on. I'm going to have to go into a previous version. Two here. The reason I didn't include this this time is because I'm still kind of struggling to get a nice design for this. But the idea is that if you have stale.
References.
Right. So in other words, the cells, the linked cells are in the notebook, but the session has been restarted or whatever, and you attempt to evaluate. Then this is the flow that we're proposing. So you attempt to evaluate these turn into, you know, whatever state and they prevent the evaluation from happening. However, a message is thrown that basically lists out all these things saying that they don't yet have a value. And you can either go to the input cell to evaluate them and put a value in the kernel, or you can retry the evaluation using assuming the output cell exists, you know, by interpreting. By reading in those boxes and essentially doing two expression on them. So it's not. The reddening here is not the only indication that, you know, something went wrong here or the Evaluation was prevented. We will have a message as well, but we'll list all of these.
Out. Why isn't pinking the right thing to do for those.
Guys? You mean like a pink background.
Red? Yeah.
Yeah. In general, I didn't want these to look like pink boxes.
Because. And I think that's a mixed message because, you know, we don't generally pink on. On inputs. We pink on.
Outputs. Yeah, fair.
Point. I mean, what I just said isn't a strictly true statement, but it's a generally true.
Statement. Can you show me.
That? Furthermore, of course, you really have to regenerate them, whereas this. They're sort of rescuable in some sense, whereas the pink box things are. It's. It's hard to work with. You generally regenerate.
Them. And also actually here, this. This red frame is kind of. It's part of the broken link. Right. So in a sense, we're saying that the, you know, that sort of the decoration around the content is referring to the link to the cells, whereas this really is like a kernel value that's absent. I suppose we could redden out of one and the.
Frame. Yeah, that might help. But I also think whatever your metaphor is for the link being broken, which I think has to be a better iconography than that weird kind of POW type thing that you have right now, whatever that, you know, if that was an X, for example, you could X through the out one. If you could. If you can transport the iconography from the breaking of the link to the breaking of the out connection, that would be nice. But I don't think you. You can't put an X through that link thing. What's.
Another.
Why? What?
But. But we could have the broken. And we could. Yeah, we could. We could still put an X through the out label. I mean, just because it's not the same motif, I don't think is the end of the.
World. Yeah, it'd be nice if those icons, you know, matched in some way. But I'm kind of wondering. Let's.
See. I think the reason why the natural. Yeah. So it might not be exactly this icon that I've made, but a broken link is. Is kind of. I think it makes sense for this. Right. It's a very natural state, you.
Know, given that the, you know, I'm just doing a web search for broken link.
Icons. I exactly did that. So no one might want to pull one up and actually just do broken link and do pull up the.
Images. Yeah.
Okay. I. I'm kind of liking one. That is a. That Has a. An X. I don't know what. You probably have a different thing. But. But just, just scroll down through those a bit more. Yeah, I mean, one like that. Like that one that. The. But the fourth element of the first row on screen right.
Now. This.
One. Yeah, but there are better things like that. Where you have a. Where you have that line in the middle is.
Solid.
Sure. I don't think these pow things make.
Sense. I might worry that it. Especially at the size we're drawing it, it might look a bit like a percent.
Actually.
But. Yeah, but we can try it and. But presumably, I mean, the icon that I have, it would still look like a broken link if you didn't have. Right. I mean, if we just get rid of those. Oops. Come on. Get rid of the background. Right. What does that look like?
Small, incomprehensible. Well, a bit.
Incomprehensible. It is. Yeah.
Yeah. I mean, I think the only way to do that with that is just to have the two links be separate circles, not connected, so to.
Speak. Sure.
Sure. I think.
That.
Yeah. Okay. We can. Yeah, we.
Can. Jeremy, have an.
Opinion. I don't have a solution. I think adding a question mark on an X clam could help. Is more of a.
Warning. Possibly just unlinking the links might be. We should try. Just unlinking the links might work. Red and unlinking the.
Links.
Sure. Now I'm a little bit confused by the fact that there is a link icon on row three. Is that. Why is that because you're still linking to the. You know that you're linking to the cell. You just don't have the outline.
Correct.
Yes. The current.
Value.
Yeah.
Okay. Because. Because really, this state is sort of expected to go back to this state. Right. When you start. When you reevaluate the.
Notebook.
Yeah. And.
So. Yeah.
No. How do you get to the input of that grade.
Box? Is there some UI? Yeah, yeah, yeah. So 1.1%. There's a menu. If you click on the menu, then you.
Can. But when it's gray, when it's in the state of row.
Three, it's that. That still works. Because the. If I click the kernel because. Because that link is just a spatial one. It doesn't. It doesn't really care if. Okay, got it or.
Not. You might reevaluate it to see it re.
Inflate. To just show.
You. Yeah, sure.
Yeah. Would it make sense to add a Re. Evaluate input in that.
Menu?
Oh.
That. Maybe it'll just go blue without jumping. I mean, ideally it wouldn't jump either. It would just.
Work. There's a danger I'd be worried.
About evaluating stuff that's potentially off screen. I think the safer thing to do is take you to the input, you can see it and orientate yourself in the notebook and then evaluate.
It. So, yeah, no, do it. A equals one above that, and then one plus A and then you still get two. You'd get. If you did the A equals one and then, then evaluate that and then one plus one, evaluate that and then do a percent reference to that. Quit the kernel. And if it just evaluated one plus A. Sorry, one plus A, the entry.
Should be one plus A. Yeah, oh, oh, oh.
Yeah. And so of course, when you. If you just evaluated N4 again, and you hadn't evaluated N2, you wouldn't sort of recreate the same state. So evaluating the thing might be a bit.
Dangerous. So you're saying, in other words, there may well be sort of a chain of.
Dependence. Correct? Yeah.
Yeah. Okay.
Yeah.
Yes.
Yeah.
And. And that's why you really do want to go and look at the input cell. I would.
Say. Okay, so.
Any.
Yeah, I'm sorry. Just. Okay, I'm sorry. Let's see what was next.
Here. Yeah, I guess just to summarize, it sounds like we're. We're closer. We're much closer than we were last time. And there's just some tweaking to do with these.
Icons.
Yep. Great. Okay. Okay. So what is the representation of these things in the kernel? So, you know, this is clearly like a typeset form of. Is it an out expression? So the first argument would be a cell object, and then the second would be essentially like an offset index.
If you've got like a multi line.
Input. Yeah, and so if, yeah, if the kernel value out of N was defined by the LinkedIn input cell, then this just evaluates 2 out of n.
What do you mean was defined by the linked input.
Cell? Well, because, you know, the line numbers might not match up to what they were in the last.
Session. Should it evaluate to out of N or should it evaluate to the expression that is the value of out of.
N? Well, so when we were talking about this, Noah, we were still in the mode of being more likely to, you know, pull in the output boxes. Now that we're never doing that. The only time when this would be required is cases where we wouldn't evaluate.
Anyway. Well, so there's a wrinkle there. We sometimes get the output boxes when we don't have the.
Kernel.
Right. When we're doing like Insertion or something else like that. But no, actually for evaluation. No, you're right. For evaluation. No.
Sorry. Yeah, so. So actually, actually, yeah, this was an earlier design, which I think isn't necessary anymore. I think we can now just say out of in. Of course, in might float as the notebook, you know, updates. But that's okay. Maybe out of in isn't a problem. You know, we could still, you know, have this for, you know, kind of, you know, user reference, but it wouldn't be necessary to. To actually do this.
Ourselves. I'm slightly concerned. Go.
Ahead. I was going to ask. So you're saying actually, for now this can just be a template box and that's.
Fine? I'm saying. Yes, that it would literally evaluate as out of in for whatever the value of n is. And there's. In an earlier.
Version. I'm trying to decode your accent, John. You're saying out of N, the number N for November, so to.
Speak. Yes.
Yes. Okay. Okay. All right.
Fine.
Yes, go.
Ahead. Yeah, so actually, yeah, this was a part of the proposal, which came from an earlier version of this whole thing, which we kind of didn't properly re review. And now that I'm looking at it, I think out of N is.
Fine.
Okay.
Okay. So that will always agree with the thing that's in the output. Out of whatever in the blue thing. That number will always agree at.
The time that it was evaluated.
Yes. Okay. Okay. Convert to raw input.
Form. Yes.
So that's what we just.
Discussed. This is also. Well, not. Yes, I suppose it is, isn't.
It? Yes. Yeah. So I think it's just the first one. Yeah, yeah, yeah. In which case, you know, I mean, you know, like any other input form stuff, you know, you're going to lose some stuff, and in this case, you know, you'll lose the smart reference. That's okay. That's what raw input form does.
It.
Yeah. Yes. There's no. You don't want the smart reference in input form because that's a creature of Notebooks. An input form is.
Not. Yeah.
Right. Like when you copy paste to email. You don't want.
That. Yes.
Right.
Correct. Ok, so there's a related feature that I think would be nice to add, and I can't remember if we touched on this last time or not, but in fact, it's actually turned on in this build. Usually a stale in or out label will say in of.it won't actually display the line number that corresponds to the line in the previous session. If we added the numbers back in as they are here then. Yeah. As I've said, in most cases at least you can ambiguously see which smart percent referred to which output. And of course, if they were.
Bullets, can I suggest a compromise? Can I suggest that we put an icon before or after the 52 there? Because I think it's really confusing to have, you know, the sequence, you know, if we, if we put like a little circle before the 52 or some such other thing, or perhaps a proto dot, so to speak, before the.
52. Yeah, I mean, that seems to be more confusing to me. I mean, is the issue that the contrast between the, the sort of the live version and the stale version not.
Enough?
Maybe. I mean, the thing that's confusing me. Go ahead. What were you going to.
Say? Well, I was going to say if that's the case, then I think that's something that can be solved with, you know, maybe a lighter gray or a smaller font or something. But I think, I think, I don't know.
Introduce. What about the possibility of having. Maybe it's crazy, a dotted line through the center of the dead.
Ones. Indicate readability, but it's not crazy. Yeah. And then obviously these would reflect that. These would also have a dotted line in. In the percent.
Blobs. Yeah. So in other words, you get an idea of what it was, but it's not claiming it's current in any.
Way.
Yeah. Jeremy, what do you think about.
That? Are we saying dotted line only through LinkedIn in outs that have become stale or all in.
Out. All stale and.
Outs. So we're getting, getting rid of the dot. This, the old stale version with.
Dots. See, look, there's another thing, okay. If I'm showing. No, you know what? This is not going to work. If I'm showing an example where I just want to say it's in, it's out, it's in, it's out. I don't want to see all this.
Crud. No, I mean, we. Maybe it's triggered only when a cell is, you know, linked to a percent. Otherwise, I think the dots are.
Great. Yeah. So you understand. I mean, I, I agree with that. I think if a cell has been linked to, then number it, otherwise don't.
Yep. I think that's going to be even more confusing though, because it's not going to be obvious why some of these have numbers and some of them.
Don'T. I mean, it's very useful to know which ones have numbers because those are the ones where if you delete it, something will say dead cell.
True. But. But what I'M saying is that that's not necessarily clear that that's what it means. Right? I mean, it's, it's. Yeah, I mean, but it only.
Shows up for people using a percent. Right. Otherwise, you know, if you don't use percent, we don't have to bring back line numbers for.
Stale. Yeah, you know what, it's not going to work to bring back line numbers. There are just too many examples where people want to show kind of this is what happened. And you don't want some random, oh, it was line 273 that I did that.
On. Okay, but okay, so, so for that. Sorry, so for this, it means that yeah, if you open up a notebook in a new session, you necessarily know which ascent blob referred to which.
Output. So you may recall, Noah, that I had pitched the idea at one point of having some kind of visible backlinks for any cell that's been referenced. And we didn't really pursue that.
Further.
But do you mean there might be something we can do or do.
You mean something that's permanently.
Displayed? I. Well, a, a thing which can pop up to, you know, I mean, because of course the, the cell could be backlinked in multiple places. I don't think we need one widget for every, you know, place that it's been backlinked to. But we can just have one thing that says it is backlinked and then clicking it can have a pop up menu that allows you to navigate to the.
Backlinks. And so just to be clear though, Stephen, you, you, you want the line numbers on the things that are linked, right? You, you still want those or not even those.
Where. That's what we're talking about. So here's a suggestion, guys, here's a suggestion. It's in a blob, but if there is a backlink to that thing, the blob has a leg associated with it. And the blob on hover would give its number and possibly its backlink.
Information. What if it's a link instead of a blob? A little link icon instead of a blob for.
Linked. That's an interesting.
Idea. So right now when we look at the out four right there, what will it say inside the out for the link just.
Below? No.
No. And the actual and the percent reference right in there, what would be out 4. It'll be out blob. It'll be.
Out. No, no, no, no, no, no, no, no. We're talking about what shows up as the cell.
Label. Okay, so it'll still be out for in the actual link, but the, the, and the cell label won't match that. It'll be something.
Different. Well, I think if you hover over it. Go.
Ahead. I'm now questioning the utility. If we're not going to have these numbers, the stale line numbers, then I'm kind of questioning the utility of having them in here as well. Okay. Actually, no, no, you want them in here because you don't want this to change.
Size.
Right. You don't want this to change width. And if you, if you add any kind of icon in here, as soon as this thing reinflates, you know, it could have been like a three digit number or something and, and suddenly your outputs are kind of jiggling around. So, so I think we would have to keep the numbers in.
Here. Look, the problem is there could be six sessions ago, you could have out fours, you could have a whole history of out fours. Right. And one of these things is like, You know, I just don't get it. I think the only way to do this will be some kind of weird hash color blob. I'm saying, where you can match it.
Up. Yeah, I, I get what you're.
Saying. Look, I think it's a very weird action of distance to have a thing where it's an out 7, you know, an out blob. I wish we could have a very subtle hint that would not be confusing to people who just saw, you know, out a blob. A very subtle hint that it's linked. Hence my statement about what, what if you just give it a stem? It's a blob with a.
Stem. Let's like a lollipop almost. You mean literally a line coming.
Down? Yes, that's what I.
Mean. All right, what about the suggestion of having a link icon in there? Right. So, so, so the ones that aren't linked would just be in of blob and out of blob. You know, actually the link icon.
Is not such a bad suggestion.
Right?
Yeah. It can be made nice and.
Simple.
Yeah. The only thing is that that is a forward link, whereas a link icon in the other place is a backward.
Link. I'm a little bit worried about that too. And I was just looking to see if there's any sort of kind of standard notion of backlink iconography. But I'm finding anything that's totally.
Convincing. I.
Think. It's somewhat clear from the context which direction it's going. Of course, but you.
Know. No, it isn't. No, it isn't. If what you mostly see is I've got a bunch of. In outlines and I'm just looking at this thing. I've never seen this kind of system before, and I see one of them has a weird little link in it. I'm totally confused. That's why I think that what we want is a piece of iconography that the cognoscenti will notice and nobody else will even bat an eye. It'll just look like a speck of.
Dust.
Sure. And so if we have an icon there, instead of where it says N4, where it's gray, we have N4 with some little iconography link. And you.
Want. Well, no, it wouldn't be. It wouldn't be a number. It would be just like it is today in a blob.
Right. But that blob is changed to a link icon.
Right? No, no, What I'm saying is the link icon raises too many questions. Okay. In my opinion. In my opinion, it's important that when somebody sees a notebook the first time and it happens to have these weird forward links in it, it's like if you're a cognoscenti, right, if you're an aficionado, whatever. Whatever word you want to use, then you can see, oh, it's a lollipop, not a. Not a dot. It must be linked. And then you will think to hover and it'll show you where it's linked to and so on. But if you're not a cognizant, you just ignore it. Just say, oh, I don't know what that is, but it looks like a.
Blob. I can't actually see that working because, like, you know, the little symbols at the top of cell brackets. Yeah, like it's. It's good because I. So I know this is a text cell because I know to look here and that I didn't turn this into an input cell. So. So yeah, I can see that working in this context.
Right. It's for the cognizant, but it's not for other.
People. So, you know, I mean, as a. For example, it could be, you know, something that instead of looking like static text, it looks a bit controlish. Like if you were to click on it, it would do something, you.
Know, have a. I really think it should be subtle. I mean, down arrowy type thing.
Pop up, Y type.
Frame. What about a down arrowy kind of thing around blob with a little, you know, little piece coming down below it? That would be my suggestion. A little V like thing coming down below the.
Blob.
Okay. I think we should move on. That's my suggestion. Maybe we can try and.
Get. We can come up with a load of different options and bring them to UX.
Design.
Okay. Okay. So. Right. Okay. So we're deciding not to do this, but there's stuff that needs to be done. So representing. Oh, right. Okay. This is. This is getting it. You know, how do we represent the contents of the cell? And again, I think we touched on this last time, but we didn't really go through it properly. The point being is that I'm not using what Iconize uses, because I think we can do a slightly better job in this context. However, we may also want to use what I've done here for Iconize, if we prefer.
It. So what's the 200 doing up at the top.
There? Yeah, I don't.
Know. Okay, that's a.
Bug. There we.
Go.
Okay. Right. So basically we fall back to the head of whatever the expression is if it doesn't match one of these specific cases. Right. So, for example, something like cell object. It's a cell object. A.
Lid. Okay. So Iconize does one thing for this. And you think you've got an uptick from.
That? Yeah, I just think this looks a bit. Yeah, I think this gives a better indication of what's actually.
There. I think we put a lot of effort into the iconized algorithm, so if you've improved it, then.
Great. Okay, cool. Okay, I guess. Okay. One thing to ask is, do we want anything special for image and graphics? You know, maybe include a little.
Icon? Yes, I think so. I think that would be nice. I think it'd be nice for Iconize as.
Well. Sure. Okay, so. Yes, let's do.
That. Fixed icons.
Right? Yeah. Fixed.
Icons. Yeah. Oh, yeah, yeah. Not like a. Like a miniature version of the actual thing. I think that'd probably be too.
Expensive.
Great. Okay. And actually, I guess the other general thing is that, you know, I'm alighting stuff with these ellipses. It looks a bit odd, but I think it's sort of functionally quite good. What do you think? Are you happy with the ellipses or not? You can kind of see a few different.
Examples. What else could you do? Well, you can display the whole thing, but that's.
Not. Or you could. Yeah, sure. Or you could just display the head. I guess if it's too long, you could just say, well, integer in this case, or.
Complex. Okay.
Perfect. Okay, cool. Right. Okay, so. Menu and click behavior. So again, last time you asked.
For. Yeah. It should be noted by the way if you do like right now, if you do iconize of n of PI 500, you get. Well, Noah will show us. It's kind of.
Unsatisfactory. That's unsatisfactory. Okay, listen. The thing I'm most concerned about here is I'm developing a notebook interactively and I kind of. I want to understand this roll up behavior where when I type percent, I'm actually pulling in the expression, for example. Or I'm more seriously, you.
Know, how I make.
Sure. I mean, I'd love it to be the case that if I copy paste a thing that has a dependence based on the percent thing that when I copy pasted it warns me. Oh, whoops. If you copy paste this alone, you won't have.
The. My gosh, we're not talking dialog boxes, I hope. No dialog boxes in clipboard.
Operations. Fair enough. Well, what about just picking them all up and pasting them all.
Together? Sorry, I'm not understanding.
Your. Okay, I've got a. I've got a thing which has a smart percent. Okay. I copy paste that line. That input line. It's got a smart percent in it. I know perfectly well that to run that smart percent, I have dependencies that go.
Backwards for purposes of this illustration. You mean pasting inside the same notebook or pasting into a different.
Environment? Well, pasting into another notebook, let's.
Say.
Okay. Where I fully imagine that that other notebook we run independent of the notebook I'm currently.
Running. Well, and the similar. Really, I think the situation of pasting into another notebook looks a lot like. I think looks a lot like pasting into an email or, you know, any other.
Application. Yeah.
Yeah. I was going to say that we have a broken. It just enters the broken state. But you're saying that actually it just turns into. Out of like literally, you know, out of a.
Number. Steven was suggesting to do automatic roll up on copy.
For. Yeah, that's what I'm.
Suggesting.
Yeah. Well, roll up is a different sort of operation. Maybe because roll up is rolling up inputs. But like, you know, pasting to another notebook, you could do an iconized output. So it's now kind of frozen in.
Place. That'd be nice. I'd love.
That. So just, just to. Just to point this out, this was an internal discussion. Should we allow cross notebook linking? We've got the technology to allow it, but that it was decided sort of. John and everything advocated strongly for not allowing cross notebook.
Link. I think it's pretty confusing. I love the idea of iconizing by default. In other words, what happens when you transport the, the smart percent to another notebook is that it.
Iconizes. And then of course, if you're copying, you know, to, to, you know, text editor, email or whatever, then of course there's no iconizing option. So it's just the actual value of the.
Thing. I think so.
Yeah. So actually. Okay, so what would that look like? Right. So I mean, if you have. Okay. What looks pretty similar. Oh, actually presumably like image. Right. Iconize. Oh, no, but we're going to have an.
Icon. Yeah, I mean, the automatic iconization might have a bespoke label. You know, that's something we could consider. Or it might just be as if you iconized that expression. And we could go either.
Way. I guess I just want to make sure that the contrast between the two is sort of, you know, you're going to notice.
It. Between what and what?
Sorry? Well, I mean, so say this is what it looks like in the, you know, in the source notebook and then you copied and paste it into a new notebook and it turns into this. I just. Yeah, I guess I'm just checking. Are we happy with this.
Transition? I think it's pretty nice. I think it's pretty nice. It's one, one thing is it's based on link. A link. And when you disembody it, it just picks up the actual data. Now what I'm worried about is when you copy into email and you copy a graphic, for example, into email, that I can imagine a situation in which you want to copy just the percent sign because you're trying to send somebody, hey, do this thing, and it just has a percent in it. And then pretty soon you have this giant graphic that came out in your. You know what I'm.
Saying? Yeah, well, and I, and I think that maybe comes down to when should the percent reference have been inserted in the first.
Place? Fair enough. But let's go, by the way, I'm still not liking these black braces. These very dark braces. I'm still not liking.
That. Okay, so, I mean, but also.
We'Re not really seeing this in context. Right. So I don't.
Know. Part of what bothers me is that those braces are so black compared to the dots, which are really quite light just because they don't have as much weight. Are those braces.
Bold? Yeah, I mean, they're kind of meant to match, you know. Okay.
Okay. I think if they were not bold, it would.
Help. What if they match the weight and size of. Which actually was the intention. But I've Kind of failed a bit of the rest of the input text. So in other words.
Probably. Okay, I would, I would say don't bowl them. I think they. I think they just look unbalanced because of the dot, dot, dots. Because you're used to seeing things of similar weight. But those ellipses are lighter.
Weight.
Yeah.
Yes. Okay. Okay. So are we just talking about curly braces here? Because, I mean, you know, the same thing is being done for, you know, function heads, for.
Example. I know and I.
Don'T. Are you talking a special.
Rule? No, I'm.
Not. Curly braces? No, I'm.
Not. I'm not. I'm talking about. Just don't bold it.
Ever.
Okay. I.
Think. And actually, is it right that this, given that this will appear in input, should this be, you know, the mono. The input font, the monospace code.
Font? That isn't what we've done in boxes. In general, in boxes we have proportional fonts. It just doesn't look right. It's just too heavy. I think it should be non bold text.
Font. Okay. Actually, we can see what that looks.
Like. I really want to concentrate on this thing about what the smart percent really does. So in other words. And I want to concentrate on the input.
Method.
Sure. So let's talk.
So. Sure. So you can insert one of these manually by escape. God, it's hard to say is supported. You can do percent n, you can do percent percent, et cetera. But I imagine the kind of principal way is using the completion raft. Right. So when you type percent, you get this completion raft. And this is listing all of the percents that are going to correspond to an in out pair or I guess actually just an input cell. That's all you really need. And yeah, they're sort of sorted in, you know, reverse chronological order. And yeah, we did, we did talk about positional ordering, given that they're positional links, but we kind of decided that it's. It would just be too confusing to understand what's going.
On. Hold on, I'm confused. I'm confused already. If you type a single percent, you kind of know what you're trying to refer to, don't.
You? And it's right there at the top. It's right there at the.
Top. Why do you have anything else in there? It's either that or.
It'S. Steven, you have to type a single percent to type any percent form. You are thinking as if. We know they're only typing a single percentage, but we don't know that.
Yet. Yeah, I understand. But there's a. There's a meaning to percent.
Okay. Yeah. And assuming percent 72 was. So in this, in this example, percent 72 would have been the last thing.
Evaluated. Yes, but what I'm suggesting is. Okay, I've got a suggestion here. I think this pull down should allow you right then and there to put the whole expression in there if you want.
To. Yeah, we did. Hang on, where's. Where's the tabbed? Right, so there was a tabbed version of this. One of the reasons we didn't really actually consider this was because we wanted something simple to.
Implement. Yeah. But at least for now, why you want this menu of previous percents, why is that.
Useful? Oh, I see. Sorry, you're saying that the actual content of this would be like percent 72 and then like literal 72 iconized.
Literal. Yeah.
Yeah. Well, but you don't find John's argument convincing that. Well.
You. So if I type in I, I should get a completion menu that only has I and no other symbols that begin with.
I. I understand that argument. I understand that.
Argument.
Yeah. I don't believe it. I think that it's very simple to Type these numbers 72, whatever else it is. Okay, look, I admit there are.
Cases where I would have.
Liked. Yeah. Part of it is not just the simplicity. It's the immediate.
Visualization. Yeah. Okay, I admit that I would have liked this a number of times. However, what I would like more is the ability to take what I'm probably talking about, which is the genuine percent thing, and replace it with an icon. With an iconize. That's a super useful thing. Now, maybe we could get best of both worlds by having three, you know, history things and then an iconize.
For example, or, or you. I mean, you know, it, you know, it comes down to, you know, are we putting the, you know, the, the, the, you know, the aircraft, you know, panel in front of people? Or are we, you know, or are we doing something simpler? And if you say you want something simpler, why are we doing percent reference in the first.
Place? I understand. I, I just want. Okay, look, as a practical user of this, there are cases in which I want to go backwards several steps, and it's nice to be able to see. I mean, most likely, most of the time I'm going to go to want to go back more than five steps. Oh, what was that thing that I had way up in my notebook, for example? One thing that's annoying right now, maybe it's possible and I didn't know it all these years is I, I Never go up and copy out 72. I always retype it. No words. If I had to scroll way up in my notebook, I. I don't even know if it's possible. I just remember the line number and I type it as percent 72 down.
Below. You mean copy the actual label.
Itself?
Yes. Is that what you're saying?
Yeah. And. And to be clear, what Noah hasn't shown yet is that if you start typing a number, it's going to update that menu.
Accordingly. Yeah, I get it, I get it. I mean, the thing that seems to me very useful to have in addition to these things is just the iconized version of line 72. I guess that's my only suggestion. Just like we have other cases where there's an additional action in addition to pure.
Autocomplete. I can imagine that if we had such a thing. Yeah, I mean, okay, you could have pairs of items, I guess.
Right? No, no, no, no. It's. We don't need that. It's not necessary. It's like the most recent thing. Iconize. It at least gives you the idea of iconization. Because if I then type percent75, then I would get the percent75 smart link and the percent75 iconization. So I can always get to those things by, you know, if. If I only offer an iconization for the top choice in the. In the autocomplete. That's okay. I think it should go percent 70, you know, out 72 there as a. Maybe it's percent 72 because it's a completion.
Right?
Yeah. With. And then in that, you know, then right below the iconized version of that, then there's other lot. You know, there's other things that you.
Could. No, yeah, I get. I get the proposal. Yeah. I'll mock it.
Up. Okay.
Okay. So then if you just added a vertical bar, you could just put it on the right hand side with just an icon, you know, on a tool.
Tip. Well, but that was the. But then that was the difficulty of. Well, how do you, you know, if you want to get there with just the keyboard, presumably it would be tab. But how do you show that? And that's why I kind of ended up with the tabs at the.
Top. You can arrow keys in that way, but it's. It's kind of more confusing to do. So if you're doing it in two.
Dimensions. Yeah, I think it should be a line down below that. I think we don't usually have that. Usually when we have things on the right hand side, they open something else. Like at the. The I menu and so.
On. Yeah, yeah.
So. So, yeah, I. I can imagine it having some kind of. Yeah. Some kind of indent or some kind of icon to kind of. So in other words, it wouldn't look too dissimilar from this. This menu. Right.
Right. And possibly in the end we decide that the iconized wants to be the top entry. I don't know, maybe that's the top entry, but the selected entry is the second entry. Or is that too.
Crazy? I'd have to think about.
It. Okay, that's to be thought about.
Okay.
Yeah. Oh, actually there. You've actually got. Well, okay, maybe that. Maybe that works. Maybe that exact iconography works. You have percent 72 at the top, then you have a hooky thing like that, and then you show the iconized version and then you keep going on the menu, percent 71, et.
Cetera. Yeah, yeah, I can see that working, I think, actually. Especially if you literally drew in.
The. The icon picture. Yeah.
Yeah. Is that an issue from an implementation point of.
View? No, no, that can.
Be. No.
Cool.
Okay. Okay. So, yeah, hang on. So the next point was going to be if you type in multiple percents, then this drops down. So what does that mean? Yeah, that would still work for us, I guess. It would just drop down.
To. And so, yeah, the next question is, if you type anything that makes it more specific beyond the first percent, do we continue to offer an iconized option in the second slot? Yes. Okay. Yes. So consistently, whatever the best.
Matches. I don't understand what that. If you type percent percent, I don't want to see the thing that I would have got with a single percent, do I? I mean, I committed to percent percent. Just like if I type plo, I don't want to see things that came from.
Pla. Yeah, that's fair. So in other words, this would just be 71, 70, 69, 68, 67. Yeah, yeah, yeah, that's fair. That's fair. Oh, yeah. And yeah, and then it's very natural to put the iconized.
Version.
Yes. Okay, that's.
Yeah, I. I didn't. I wasn't actually aware of that. That's how I've actually implemented my prototype right now that I've got it prompted out. The same 72 doesn't appear once you've got the percent.
Percent.
Yep. Okay.
Okay. And then. Sorry, actually, I didn't include this, but, John, you wanted to mention something about if you type a.
Number. Well, yeah, so like, in this case, if you type in percent 6, then it drops all of the 70s and it starts with 69 and going.
Backwards. Oh yes. So the point was that it's not fuzzy matching on numbers. Yeah.
Yeah. It's basically, it continues to consistently show the most recent in time match that matches what you actually.
Typed. Okay, question. Is there any sense in having a right hand column effectively to this autocomplete that allows you to jump to the cell some kind of.
Link? I mean as soon as you paste, you have a thing you can click that jumps you through the cell. So it's not clear to me that that adds anything here. But having been said, if the cell is on.
Screen.
Yeah. There might be a visual effect. If the cell happens to be on.
Screen. Yeah, if it happens to be on.
Screen. Yeah, we have, we have actually. Okay, there's a bug here. This is proto build, so maybe that's, that's expected. But you know, in, in this cell style insertion menu, when you hover over a style, you get an attached cell to the right which is at the moment too small. That gives you a preview of what that sub would look.
Like. That'd be lovely. One could imagine that would be magnificent. That would be.
Magnificent. Okay, so same question, is that.
Possible? Would be magnificent. But there are. I'm. I'm concerned that it's very easy to walk yourself into, you know, it just hanging because it was unable to do it for a certain, you know.
Output. Is there not a heuristic we could use that determines if the output is.
Simple? Well, we can, we can.
Try. That's for Jason. And there may be generate magnificence. It doesn't show the.
Preview. Sorry, sorry, I didn't catch what you said.
Stephen. I said if we can set it up so worst case is it doesn't show the preview, then we're all good. If worst case is it hangs, then we're not all.
Good.
Okay. And presumably like so with this, I'm fairly sure this is happening synchronously. And so you know, when I move the mouse from one to the other, it has to draw the thing.
Before. Yeah.
Yeah. The front end is. Would it be okay if, you know, you move this and if it does take a while to compute, that's.
Fine.
Right. And it just takes a second to update. Is that.
Acceptable? Yeah, I think that's perfectly acceptable. So long as it indicates which thing it's associated with. So long as that right hand preview comes up with sort of a.
Link. Oh, it could gray down the previous version if it hasn't displayed the new one yet. I think that would probably be the natural thing to.
Do. Yeah, yeah. But also I just. The only point I'm making is it's got to make sure that it. It doesn't highlight on the left and still have the. Well, you're saying if it grays down, then that's.
Fine. Yeah, yeah.
Yeah. Okay. But implicitly here we're agreeing that percent on its own just does what it does and everything is in the.
Autocomplete. Well, that's a question. Right, so additional possibilities for insertion. There is an option that Jason's already put in percent reference creation. And so that would be the manual mode, what you've just described. There's on evaluation, which I think is the only really kind of viable one or potentially viable, but you know, transfer. Well, I guess I could show you actually. On evaluation. Right. So. Yeah. Yep. Yep. Thanks. Right, so yeah, this one, you know, percent. I don't know, frame the percent. Okay. This obviously doesn't make any sense.
But.
Right. I'm going to evaluate the cell and then it.
Changes. What if you don't want it to change? Or is it. Do you always. I don't understand. Do you ever want a raw, naked.
Percent? Well, so this, this can be smart enough that. Noah, if you type in one plus one, enter.
Percent. I.
See. And now it's not going to do the replacement. It knows better than to try to do.
That. And this is where there's a previous line. But if you had a percent on the first line in that multi line input, it would still smartify.
It. Yes.
Correct. And it also won't smartify it if that cell no longer exists. It only exists in the.
Kernel. Oh, yeah, yeah. So if I delete that and evaluate.
That.
Oh, is that just. That was a bug.
Right? Try one plus.
One. Yeah. Not straightforward. Okay, so. So delete that cell.
Right. And.
Then. Oh, no.
Because. Right.
Yeah. Get rid of the input and then.
Percent. Yeah, and then. Yeah, there we.
Go. Okay, so hold on. If it does this on evaluation, What's the downside of that? It means if you wanted to do a ripple through where you change. I mean, okay, so here's a. Here's a scenario. Type you know, 13 or something and then evaluate it. Type percent plus 2 or something. Evaluate it. Okay, now I go back and I change that 13 to a 15. Now reevaluate that. Now reevaluate the next line. Why did that work? Oh, because it was a cell. You know what, that's. That's good. Yeah. So that's good. It feels very much like A spreadsheet type thing where you, you know, change.
That. So ITAI has made the claim to me that it is a workflow that he does sometimes where he will deliberately, you know, use a percent, but then feed that percent from multiple input cells. And I, I believe them, but I also believe that that's a pretty darn rare workflow. And if we're going to do something as radical as this, we're definitely going to put this in the preferences dialogue. So if someone absolutely hates it, you know, it's an easy thing to turn.
Off. Right. So the case actually.
One.
Yeah. Well, I was going to say one wonders whether. Whether we want to potentially put some options to disable that or change the behavior of these in the menu. I mean, like, we do that for the.
Toolbar.
Right. We're being too.
Timid. There could be a sub menu.
Here. Okay, what does that mean? Keep on showing.
There. As in the content or how did I get to.
It? So I just clicked on the content. The content. Replace with. What does replace with.
Do? It's just all the different sort of options of output and inputs and whether you want the.
Iconized. Okay, what does roll up inputs.
Do? So get this right this.
Time. I mean, effectively, roll up inputs is like replace with input, except it follows the chains all the way.
Through. Now, well, let's take a look, see what it actually.
Does. Oh, I could change the thing, didn't I?
Yeah. Oh, what.
Happened? Hang on, let me try.
The. Okay, I've just made a mistake in my implementation, but, yeah, there you.
Go. And what's the blue doing? If I evaluate that, it will be blue, right? That's just a.
Selection. That's the.
Selection. Yeah. So actually, maybe it would have been clear.
If.
Yeah. In other words, if there was content around.
This.
Right. Like 10, you know, that's what we would have.
Seen. And delete that and then just type escape percent.
Escape. Oh, but I deleted.
What? I don't think Noah has your latest changes.
Jason.
Okay. Why is anybody going to use Escape percent escape if they've got manual mode and then it's a.
Typing. It's, you know, because you, you know, if you know exactly what you're doing and you don't need any prompting, it's an easy way to say, I just want to keep my hands on the keyboard and. And go straight.
Through. Okay. All right, now roll that up. Can I suggest. Could you go back to the menu.
Please?
The. This is so. So it should look like this.
Right? Okay. But I think it shouldn't say Roll up inputs. I think it's very confusing. I think you should say replace with rolled up inputs just like you say replace with. Is.
The.
Yeah. Replace with output. Replace with rolled up.
Inputs. Yeah, yeah, that's.
Fair. Do I want to say rolled up or combined now? Rolled up is.
Better. That's the, that's the nomenclature we use for the predictive benefits suggestions.
Bar. Yeah, I.
Know. Although I mean, it's obviously.
Weird. Nail icon for rolled up and. But rolled up stuff, don't.
We.
Yeah. What a.
Snail. There it.
Is.
Okay. I like a rug rather than a.
Snail. Oh, okay. I was thinking it was just slowly.
Walking. I mean, they both kind of.
Work. Yeah. Okay. What else do we have to figure out here? I'm going to tell you that I'm a little concerned that the. These blue things look a bit.
Heavy. Yeah, I could see that. I'll just sort of say in my original prototype I had it a very, very minimal. Far too minimal. But I prefer. Yeah, the minimal sort of thing. It does look a tiny bit heavy. It's a. Hey, look at me, I'm a smart, smart percent.
Reference. Yeah, I think we should contrast between that state and the disabled state or the unlinked state.
Too. Yeah, listen, I think I should.
Default the link on the left. I'm beginning to recant my claim about percent that this should just say percent two, not out two and that as we've simplified this thing that becomes more viable and.
Actually. Well, I think it becomes more viable because we're not putting out numbers in stale sound.
Labels. Yeah.
Yeah. That was my real conviction for, for keeping out in.
There. Okay, all right, fine. So I think maybe percentify that bring down the weight of that link thing so that it's just kind of a footnote link thing. And for goodness sake, let's debold the. The what's it called thing. And then I think maybe it's. It's reasonable. I think, I think we've got to try.
It. If you iconize a link blob, what happens? Does it just come back as a link.
Blob? No, it would be the convertible input.
Behavior. So effectively a roll up. Or is.
That. Sorry, you mean if you actually select it and choose the iconize menu.
Command? No, no. If I just did.
Iconize. % is already going to evaluate to something. The smart percent is long gone by the time the iconize picks.
It up. So is that effectively a.
Roll up? Yeah.
That'S nice. But no, it's not a roll up. It's taking. It's this no, but this is, this is coming from that plus is coming from.
The output. Yeah, but it's coming from the whole point is the rolled.
Up thing. Okay, sure, sure. But, but it's, but it's not inserting the actual sort of.
You know. No, it's not inserting.
The.
Inputs. Yeah, I mean, the, the, the. Yeah, I mean the, I mean, we.
We caught. We have a very specific meaning of roll up. And, and I would say that this is.
Not it.
Yeah, fine. Outputs are always rolled up by default. The point of rolling up is to roll up code, not to roll up results. Okay. Yeah, results kind of already.
Roll up. That's a nice thing to do to just say I can ize.
That. Okay. Actually, presumably the other thing is that you can just. Yeah. Evaluate in place as well. Yeah.
Yeah, right. Been able to do that.
With percents. Yes, yes, this.
Is true. Okay, so the basic workflow here is as a serious percent user who is infuriated by the fact that I have a percentified notebook and I save it and I bring it back and it no longer works. It will now work. Correct. That's what we're achieving with all this smart.
Percent stuff. Subject to cases. Absolutely.
Yes, yes. So this is kind of the biggest obstacle there, I would say. But yes, in a sense.
That if you evaluate it out of order, it's going to stop you and it's going to tell you how to.
Fix.
It. Yeah. Once you fix it that way, then that cell will replace itself. What will.
It do? So when you say fix.
It that way, you mean by reevaluating the.
Input cell? Oh.
Well, this. Then it goes back into the.
Blue state. Yeah, with a.
New smart. With a new whatever the updated number.
Is. Yes. Yeah.
Okay.
Fine.
Yeah. Okay. Three to one is probably going to be a very.
Common.
Thing. Yes. Now, one other thing to be aware of, which we haven't really talked about, is that, you know, as these things become prevalent, we'll be making notebooks that, that don't evaluate correctly and don't look correct when open. In older versions that don't.
Support this functionality, what will it.
Look like? So, I mean, we can customize it a little bit, but. It will probably. It will have the whatever template name we give it. I mean, we could call it percent reference or smart percent or, you know, we can customize that word.
But out reference, we could out reference something. Okay, okay, can I see, Can I see what it would actually.
Look like? Yeah.
Hang on. No, I just copy and paste one of those into. Oh, oh, like.
Version 14. Yeah, yeah, this is 13.3. But yeah, of course copy and pasting would work. There.
We go. So this is kind of the standard appearance of template boxes that have templates.
Backing them. Well, so long as we can have that name be something sensible, we're, we're.
Great here. Sure. We can change the name.
To basically anything that doesn't conflict with anything else. But.
Yeah, yeah. What should.
That be? I mean, we've been calling them smart percent. I don't know.
If that. Actually speaking of that, the option names, Steven, if you command shift O and put percent in. Did you have an opinion on. Yeah, those names. Percent reference creation, percent reference, allow absolute references. Do you want those to.
Be one? This question, whether we're calling it percent. I mean, I admit that, you know, I've been using this notion of percent for like 40 something years by now because it was an S and P as well. So it's sort of an obvious thing to me. But I think for somebody in general, percent is.
Percentage points. That.
Being said. So I mean, question number one is how we brand the feature. It, it affects how we, it also affects how we.
Document it. I think we should call it smart percent. But that doesn't, that's not really right because smart percent would be things like people saying, oh, if I type 0.1 it'll come out as 10%, that kind of thing. Smart referencing. Autoreferencing. Smart.
Auto referencing. Auto referencing. One of the websites, I thought. Yeah, I.
Like.
Those. Yep.
Which smart was my favorite.
Of those? We're using the link icon. Do we want to work link into.
The name? I see.
History linking. History linking. Output linking up and.
Cell link. Output linking. Automatic.
Output linking. Output linking is.
Good too. Output linking. Look at that preferences thing. Can it be output.
Linking arrow? That would be output link creation.
Wouldn'T it? Yeah, yeah, I, I, yeah, I, I think the automatic.
Is unnecessary. Yes, I agree. So output linking will be the name of the feature. Output link creation would be the thing there. And what's that? Absolute reference creation. What's that.
Thing there? So that right there allows to do escape percent, you know, 10 or something else like that. Do we allow those things to automatically go through and, and become smart? Smart, Smart references.
As well. Put.
A.
Percent. Yeah. Say in.
Our evaluation. Well, when it's inside escape, I don't think we need to control that for that.
Though, because. Yes, and John's right, but I guess if you do one plus percent 10, maybe you wanted it to be, you know, just percent 10 and you didn't want it to be smartified. And so we thought probably the default. It was, it was raised. So I just put the.
Option in. But sorry. Yeah, you're right. So, so that, so on evaluation, does that change.
Or.
Not? Correct. And if you turn that off, it stays as one.
Plus percent. Can I see that again? Sorry, I thought, I thought you just had that. It's saying on evaluation. Sorry, go back.
To the. Well, but it's on evaluation whether you have, have you numbered the percents, Right. Are you referring to a specific line? And you know, if you do that, we're saying, well, maybe you actually do mean out.
Of 10, but if it's percent, what do you mean is that question? It's pure percent without a number. So can you look, show me the name of that.
Option.
Again? Sure. Sorry, let me. Sorry, hang.
On. Okay. Percent reference allowance. What, what's the alternative to absolute.
Reference creation? Relative reference creation. Which is the default? Just percent or percent percent or percent.
Percent percent. What do you mean? So it doesn't. But I don't understand. If we're saying output linking arrow on sometime, as soon as you do output linking, you're linking to an absolute output number.
Aren'T you? You're linking the relative reference input to an absolute output. Correct. But that changes, of course, when you, when you reevaluate that input, it'll change to, you know, percent, you know 17 or, you know, 18, or it goes on and it changes. We could drop this. We could even just allow it. This was an internal discussion and so I just threw the option in and then maybe this is too.
Confusing, frankly. Yeah, I think we just.
Paid out. If you don't want smart percents, don't use smart percents, period. End.
Of story. Yeah, cool. I'm good.
With that. How do you not use.
A smart percent by selecting that thing saying none where it.
Says none. So I think there are two sorts of controls that you might want. One is, you know, do the percents just auto replace on evaluation? You know, as can be done. That's. That's one thing you might want to turn on and off. The other thing you might want to turn on and off is, you know, don't show me the completion menus even ever. I don't want to see the completion menus for it. I think those are the two semi.
Sensible controls. Yep, I'd agree with the turning the completion menu off.
Yeah, yeah, sorry, I spaced for a second. Could you.
Repeat that? Okay, so one control which I think makes sense is, you know, do you want to Just kind of auto replace literal percents with percent references.
Upon.
Evaluation. Okay. Another control is for, you know, for people who are just kind of annoyed by moving stuff on screen and such and you know, are hardcore old world. Don't even show the completion menus. They just don't want to see the completion menus. Just don't bother me with it because I never want to use it.
At all. Yeah, Okay, but that's fine. But so output linking none.
I mean. Yeah, yeah. So for gating the option, those are the two, the two gates.
I think. So we've called it manual. None means you wouldn't even be allowed to do it. So in other words, escape percent wouldn't.
Stop it. Well, Jason, we'll figure out the, the right hand sides later. I, I think we have enough to go on and I, I think at this point, Stephen, tell me if you think I'm wrong, but I think, you know, we, we build a bunch of this and then we come back through for one.
Final pass. I think so. I think this is looking really good. I got a comment which is that I have a feeling we're going to want some kind of menu item in the end in the evaluation menu that some kind of ripple through that just gets rid of all percent referencing and just turns notebooks into some absolute thing somehow. Maybe just.
A prediction. Yeah, so in other words, insert all with.
Iconized output. Yeah, that's what I mean. So that really sort of.
Like a literalized dynamics basically literalized by.
You know, we've been kind of collecting a stable of these notebook wide options that you've had, you know, you've had an interest in, you know, the, you know, embed all kind of external information into, into the notebook or minimize, you know, the size of kind of large file footprint things in the notebook, that sort of thing. Maybe, maybe there's a theme there that we should.
Think about. Maybe there is a theme. Maybe. Maybe what that is is just like we have for individual things like individual data sets or whatever, but we have store in notebook, you know, store in cloud, et cetera. We should be able to have that globally for a notebook. In other words, here's the idea. The idea is you built up this notebook, you realize it's a 500 megabyte notebook. You say oh my gosh, if I try and send that to somebody, it's going to blow up my mailer or whatever. And then you say look, it's got a few large things in here that they may not care about. Let me put those in cloud. Files. Let me have something that puts those in cloud files. Then I've got this nice notebook that I can carry around. It's all very simple and I've stored the big stuff in the cloud remotely. You know, make the assets remote, which sort of dovetails with your remote asset thing in.
General. John. Yeah, yeah, but, but, but there are different options one might want to take. You know, one might also want stuff entirely locally in notebooks and the compound bits.
Of it. Yeah.
Yeah, yeah. Because you know, maybe the cloud isn't available.
Or whatever. Yeah, some composite thing in a, in the directory or whatever else. Yes, there are multiple options and I think that put it in the same directory thing. As soon as we have that composite notebook structure, we will add that to the menus. To the menu for where to store a data set.
Why not? I think we also need an interface though that kind of enumerates all of the, all of the relevant things in a notebook. Right. So. Because, you know, I don't think we're going to be able to come up with an effective set of heuristics in general that kind of just guess what you want to do and what you consider to be key and big and whatever. So I think we're going to have to have some kind of notebook level dialogue that, you know, lists all of the things that aren't sorted in the notebook, lists all the things that are above a certain size and kind of gives you a control for each of them. Right.
Exactly. Yeah. In fact there are things like ncdu, which is the UNIX tool, or there's Daisy Disk or something else that does. It'll show you the usage of particular files and structures and you can imagine some sort of interface like that that you'd be able to spawn and go over the various bits and decide where you're going to as we're talking about a nice interface.
To do. This sounds really good to me. That's a.
Great feature.
Okay, great. Look forward to using it. Actually, just a few corner cases I just want to mention weird stuff like dialogues that, that when you get into a subsession. I have no idea what percent does in a subsession. Let. Let me just poke at some weird cases. Okay. Subsessions. No idea what percent.
Does anybody. I think it's the same as if you quit the. Currently as it's implemented. It's the same as if you quit the kernel or you, you, you switch to a different kernel if you turn change. The local evaluator did test this. If you change to a different local it's just. It's like you.
Quit it. Next.
Different evaluators. Yep. So it'll. It'll switch to a different one. All of the other ones will go gray as they did, and if you switch back, they re. They reinflate and so you.
Switch back. Okay. So the. The smart percents gray out.
Yep. Okay. And I think this would be similar with another corner case dollar history. Like, you know, something falls outside of your dollar history length. I think it.
Just. Then. Then. Then it X's.
Out, basically.
Yeah. Yeah. Okay, question. If you have multiple kernels running around and you have percents in different kernels, any way to indicate which kernel it's associated with if it's not the notebook's.
Default kernel? So right now. Sorry, just so I understand, that would be like. If you had a different evaluator set for a specific cell, say. Is that how you'd get.
Into that? No, no. You created a percent using.
Evaluator 1. Yes, that's exactly what Noah's saying. You have an evaluator. That's. I mean, there are.
Two possibilities. One is, historically, you just change the evaluator for the notebook after you've created.
A percentage. Yes. Yeah. One is you have cells or cell styles that have different evaluators. Another is you've actually changed the properties of the notebook, so it's.
Evaluator changed. Right. So then.
What happens? So currently it's treated as if it wasn't evaluated. If it's not evaluated in.
That kernel. So it.
Just grays. Yeah, it'll be linked to it, but it won't. It won't have the kernel value. Yeah, it'll be in.
State three. I understand that, but it might be a nice courtesy to say, oh, that's out one of this kernel. Maybe it's pointless. Just saying. I. I don't think that's a.
Luxury item. By the way, it should be pointed out that. That right now the, you know, the in out labels and their expiration state actually does track when you change the notebook's.
Evaluator. Yeah. Okay. But it doesn't tell you that the. That that other one is from that specific other evaluator. It merely tells you that it's an.
Alien thing. Yes, that. That. That is effectively what it's doing is it's saying it's. It's, you know.
Alien ness. Right. Okay. Okay. Anything else to talk about? I think this.
Is great. I think there were some other bits and pieces, but because we kind of went out of order a bit, we. We can circle back around in UA and places like that.
I think. Yeah, we're late for everyone.
Too.
So. Okay. Yeah. Place.
To end. Good stuff. See you.
All soon.
Thank you.
All right.
Okay, cheers. Bye.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






