Live CEOing Ep 814: Design Review of % Modernization continued

Stephen Wolfram leads a design review of percent modernization for Wolfram Language v14.1, with the team debating UI for percent references, messaging when values are missing, and whether to reconstruct or reevaluate outputs.
Chapters
Okay. Hello, everyone. We are looking at more percent modernization for version 14.1. So where do I start?
So if you just open up. Stale evaluation message. We've sort of kept this focused. It was, you know, the things that you wanted to change last time. We've sort of, you know, put those two things up front. So the first thing is that if you have some stale, you know, smart percents, then obviously don't evaluate those yet. Don't do it yet. Then obviously the kernel values aren't there. So if you try and evaluate that grid of transpose of table.
Yes. Down here.
Yeah.
Then it's, you know, it can't do it.
Right. Because.
Let's go for it. Yep.
Yeah, I'm looking at what's here. Why is that thing flashing? Why has that got a blue line right up there?
That's the reference.
It's the hover that you wanted.
Yeah. I mean, I found it. Yeah, I found it a bit confusing and distracting, but it's. Once I figured it out, well, I still found it a little distracting.
But.
Why does it not go all the way across, including the out? I think it should. Because that's the whole thing, isn't it, that it's referring to that out.
Well, right, but it doesn't. It's not a representation of the cell, including the out. It's this representation of the content of the cell.
All right, let's take a look.
And if. If we wanted to make that change, it would be a bit difficult.
Okay.
So just to kind of walk you through what happened, we set, you know, emphasize syntax errors, goes to true. And so the. On the cell. And so the. The percents changed to have the red outline so you can see what was causing the error. And then it's listing out, you know, all of the. All of the unique percents that didn't.
That.
This is unclear. This design is better, but it's still unclear.
Okay, so there is a different version, which is that the. You see where it says attempt to reconstruct them from inputs in this notebook? That is a button. It looked a bit like a link.
It should be a button.
So.
Right, right.
So open the question section and then evaluate. Yeah, evaluate the first one.
Right.
So that's. That's the other option we've got. It changed the cell.
Okay. I don't like this very much. Okay, so. Okay, first point. I don't see why this has a pink background. I don't see why this is in bold. I think this should be in.
It's in bold. It doesn't look bolded to me.
It is. Yeah.
Okay.
It's a. It's a smaller font, which is maybe why it doesn't look as bold.
Right. I think it should not be pink. I think it should say out assignments from. I think this should be italic. There should be no colon at the end. This should be the italics. And that's just sort of a. Attempt.
Right?
I mean, the. Right. You could say attempt to reconstruct.
It needs to be context independent.
Right?
Attempt to reconstruct. I could say out assignments. Yes.
Right.
You. We could either say out assignments or kernel values, I think are the two main.
How about just saying out values?
Okay.
And then we could say here, assignments for out values from earlier sessions are no longer available.
For out bracket, dot, dot, dot, bracket values.
Yeah, that's what I'm saying.
Okay.
I'm saying. I mean, I don't know why it's as opposed to a dot here. In other words, it could just say, be the same dot out dot. Assignments for out dot values.
That's assignments for out.
How about assignments for out dot from earlier sessions are no longer available?
Well, I have a slight objection to that. Which is the out dot means, right? That means I don't write that that output is dirty, Right? It doesn't correspond to the input in the current sess. And here we're talking about generic multiple out values that we want to not be dirty. So to me, it makes more sense to dot, dot, dot.
I think it's confusing. I think you're seeing out blob. And then we could say, look, assignments for outblob values from earlier sessions are no longer available. Italics. Okay? Attempt to reconstruct outblob values from outputs in this notebook and make that whole thing a button.
Is the sort of the double use of outs there a bit. A bit strange, maybe, from cells in this notebook?
No, we'll just say where.
I mean, he's talking about out versus outputs, which is.
If we could just type the text of it, it might be a little bit clearer. I'm keeping it in my head and I think I'm fine, but just.
Okay, let me do it. Let me do it. Okay, so first thing we'll say is assignments for out blo. From earlier sessions.
Is it four or is it two?
What? Okay, okay, okay, okay, I understand. Values for out blob.
Yeah, yeah, that's what we said earlier.
Values for out blob from earlier sessions are no longer available. Okay, so now the next thing would say attempt to reconstruct out blob values from cells in this notebook.
Do we want to say output cells to you know, contrast with default, you know, input cells and the following.
Good, good idea. Come to reconstruct. So that's all a button.
Going to look kind of weird having such a large button, isn't it?
Don't tell me that. Don't worry about it. It'll be fine.
It won't look like a button. It'll look like a framed piece of text. Right. Buttons aren't that wide.
Okay, all right. Okay. Well. Then how would you do it?
We need a button name right. To follow. I mean if retry is wrong. I mean maybe another word. Reconstruct.
Wait a second, wait a second. Sorry, go ahead. What were you going to say?
Yeah, I was going to say the other thing you could do is make the button part of the prosecution. So attempts to reconstruct.
I was thinking of that. I don't like that. I think it looks like too much like a link. You can try to. How about just that? Try to reconstruct values from output cells.
I still think. How many multi word buttons do we actually use that that long.
Okay, you know what? I don't think we can solve this problem any other way.
I mean we have, I mean we certainly have precedence for that. Like if. Right. The data node and notebook store now. Right. The whole thing is a clickable thing.
I'm not bothered by multi word. It's just how many words exactly.
Three, four. Fine.
I, I, I. You know, in this case, I, I really wonder if we can drop the. Try to.
Okay.
And, and I think if we have a little icon there, it would help. Like that. Do you like the little play icon.
Or, or not really. I mean maybe we, I don't think that's the right icon because that suggests.
Evaluation, but it is actually evaluating. It's evaluating by temporarily plugging those values as if those values have been plugged into place.
Go ahead and click it Right. Now you can take a look at the output. The retry button here. That's what it did.
Well, now I messed this up, so.
No, you haven't. No, you haven't. If you shift enter, you'll get back into the same states because that I see, you know that substitution, that's a.
One time only thing no longer available.
Right.
And I presume reconstruct. We could say reconstruct out dot dot IT.
You could say reevaluate using output outputs.
I don't think so because it's more of a reconstruction.
It's still before we finalize the text. I guess I have the question of is there a reason why there's, you know, we have the individual links to the input cells and not just, you know, reevaluate the input cells. And it will reevaluate them in order, you know, in scroll order.
So, Itar. Are you asking why you've got that out image in the out.
No, no, no. He's asking why. Why isn't noticed a button that goes through and reevaluates all the input cells.
That's.
We discussed that. Yeah, but we had significant concerns about, you know. You know, is that going to do something that could just, you know. You know, there may be independent sections in the notebook that are not intended to kind of, you know, collaborate with one another, if you know what I mean? It's like something that. It would work probably 80% of the time just fine, but the remaining 20% of the time there are small cases where it could really blow things up. That was our concern, rightly or wrongly.
Okay, well, maybe we can just say that.
Now.
I would have thought we should put a red border of some kind around this reconstruct from output cells to make it be a button of the same general type as these ones. Or we should not ratify these buttons. Perhaps we shouldn't ratify these buttons.
Well, the reason we ratified them is because the. And maybe you're saying the same thing for what's in the input cell, but I mean, right now it's, you know, it's deliberately mimicking exactly what we put in the input cell.
Right. I think. I don't think we need to do that. I think we should just go. I don't think we should put red gray. Yeah, I think so. Okay, let's just talk about. Jeremy, maybe you could do a mockup here. Okay. The thing I'm having a hard time with. This is kind of the parenthetical text. Then this is the action. I don't like that separator bar. I don't like a separator bar there either. We could have many input cells here, but. And by the way, I assume you'll get it right to have cell or cells correctly. Right?
Yeah. I'm not sure which way it is now, but we can definitely make sure it's right.
But can I just confirm here, we might want to say if there's only one of them here. We might want to change that to singular, please. See what I'm saying?
Yes.
Okay, go ahead, Noah.
I just wanted to check. So you've changed that text to reevaluate input cells, but the cells themselves are still just links to the input rather than reevaluate buttons.
Right. I'm sorry, say that again.
So you change the text to reevaluate input cells, but the things that you're actually going to click on, they don't automatically reevaluate the cell. Right. They just go to it.
I see. Let's think about that. For example, I mean, How about.
Yeah, I. I like it.
Okay, hold on, hold on, hold on. It. Okay, let's try this. All right. So we're making it clear that these are two alternatives. Am I making sense? And that goes gray. And, Jeremy, if you have a chance to mock this up, that'd be terrific.
And by the way, I didn't respond when you said this earlier, but that was my one concern about not having the divider line between them is making it clear that these are two paths. Right.
I mean, maybe we can put a dingbat or something at the beginning of the line and. And indent them relative to all this blurb. Yeah, yeah. And we can make this a bit smaller.
Of course, I may be the wrong person to pitch that idea to, because I use bulleted lists all the time.
But.
Probably overuse them.
I mean, the issue is the 500th time you, You know, you see this, you're not going to want to see all those things. You're just going to want to go, click, click.
Sure. Yeah.
Okay. This looks somehow very complicated between. It's got, you know, four elements here.
I think the heavy border probably doesn't help. Like one of the other states. And of course, we're getting rid of this state as well. I think maybe one of the other states is.
Why not pink the background and don't have the heavy border?
I'd have to see it.
But.
But it makes logical sense.
Sure. Yeah. So we should try that. There's somebody here could try it. Not Jeremy. Is there anybody else from design here who could try that?
Let me just get a cap.
Okay. We got some kind of plan here. You know, the thing I don't understand is why, when you just select, why we don't have that lovely blue thing when you're just over that cell bracket?
Well, why would you want to?
Because. Because my windows get wide and I cannot see which CE bracket corresponds to which.
So first of all, we have talked about that. Second of all, there was a version of the cloud that actually had this, and it no longer does.
I know that.
And I wasn't inside that decision as to why it no longer Does.
But it was taken out to be imperative of the desktop. Okay.
I think I might like it too. I think. Stephen.
I agree.
Yeah, it might be kind of nice.
I think it makes it seem more active. And I think if you're on the right hand side, I think it should, you know, just highlight it.
Oh, so you're saying without any connection to the.
Just a straight hover effect for cells.
Yeah, for cells. When you're in. Near the cell bracket.
In single cells.
Right.
Not groups.
I think single cells.
I mean, we all. We actually already have a hover effect for the cell bracket itself. So this is just kind of.
I really think we should do this. I think it's a good idea.
I'm not. I'm not fighting you. I'm not. I'm just clarifying.
I mean, I think it should probably be a lighter blue than this one here. Slightly lighter. Doesn't need to be very heavy because it's going to go all the way across.
Well, in fact, I think it shouldn't be heavy. I. I think it should be quite light, but still visible. But quite light.
Yeah.
Yep.
Yes. Can we try it? Because you obviously have the technology from the fact that this works.
Yeah.
Yep. I had to build it, of course, but.
Yep.
We can put it in.
Yep. Yeah, let's try it. Okay. Be a hero. Make it happen immediately.
Well, be a hero. Break the 14. One build and. And stop us from shipping on time.
That would be not a heroic thing.
But if it costs $6 million, we can make it stronger, faster, better.
Y. Although. Although younger people here may not even know what that's talking about. Unless it's come back. Unless there's a retro version of that now. Okay, are we on to the next thing? Unless Jeremy has something to show us now.
Not quite yet. I'm close.
Okay, let us know. Heads for which we use icons. Totally confused. What do we. What am I seeing?
You just want to evaluate this entire group, right, Noah?
Yeah, that's what I evaluate the setup group. Just basically to get some outputs.
Right? Yeah. And now type. Now type.
Percent. This is about the completion raft. And if you recall, last time there were special heads for which you wanted to use icons. Now I'm just going to stress that these are icons that I've made. They haven't been made by graphic design. These are just sort of a starting point, but that's the idea.
I think they're pretty nice.
Okay, good.
Why is it helping me to have that vertical bar? Sorry, I'm asking this again. Why do I need the vertical bar.
Well, we need the vertical bar. If there's, like, numerical stuff afterwards, you know, percent 10, space two. Remember, that was manifestly confusing.
But like, if you just. If you just evaluate.
This is still buggy. See, the out 8 is still not lined up. Come on, get it right.
Yeah, no, it's. Stephen, to be clear, we haven't had time to implement all the decisions that were made in the last meeting. So. Yes, yes, we know there are issues and, and. And they're not. They're not forgotten. They're not overlooked. People are working very hard. But, you know, but we needed to get this meeting in before all that was done. So, you know, consequences.
Okay, here's what I want to do. I have. Okay, is there a question here or.
Yes, right below that it says question.
Yeah. So if you evaluate that first cell there and then you type percent again.
Right.
So I think it looks slightly better with the heads as well as the eye.
I do, too. I like that. I like that a lot.
Great. Okay, cool.
Great.
That's. That was our option. That was preferred thing. Yep.
Yeah. I don't see any reason to not have more detail there. Yeah.
Great.
Cool.
Then finally.
My only problem here is that that red, I think, needs to be toned down because it looks like an error.
It's all right. I mean. I mean, it is the exact orange of the graphics frame.
I know it needs to be cheated. Okay, I'll make it more orange. It needs to not look red.
I think maybe increasing the thickness of the line would help.
That's fine, too. But it just needs to not look red.
Sure.
And do you like that size? Do you want the icons to be bigger or smaller? We can even try it live if you want. We can. They scale with.
I think it's okay. Okay, Right. Okay. What's this?
So that in the end. So I didn't get time to go into the nightly build, Jeremy asked for small, faint lines between each of the particular items. So I put those in. And then, of course, you wanted to iconize in there. This also didn't get in your version. I can show you it live, but you can see it in the screenshots. And so now that's a screenshot of what it'll look like. And that little button there will be. The iconize button will insert the icon.
It has a tooltip on hover. Yes, it will.
Yes. It doesn't right now, but it will.
Yes.
Okay, look, I do not think these floating vertical bars look good. I think if we're going to do this we got to have, just as I said last time, a consistent line all the way through this. Do you understand what I'm saying?
Which I think is what we do for character completion, which is fine.
Just don't have floating hanging bars, so to speak.
Got it.
Yep. Yeah. On character completion, we just have a solid separator, so we should just do that.
Yeah, it looks fine except where the separator is entirely missing.
Yeah.
Whoopsie.
What?
I just noticed that for some alias completions, the separator is just missing. It's alias completions that don't have a corresponding long name. And so.
I see.
And so it just. There's just a break in the line.
Okay. Okay.
Kind of silly.
Jeremy's ready. We should look at that. Otherwise I have a different thing I want to raise here.
I'm ready. Do you want me mail it to you?
Yeah, please. Yep. And then what I want to do is I want to just do some random work with presenting. You know what I'm saying?
Sure. Okay.
You should have it.
I thought there was going to be a bulleted list or, you know, I.
Put them in line because of the way the text read. It seemed more clear.
Okay.
So I think it would have to. I'd have to figure out a line wrapping, you know, once the notebook got narrow enough that I think this will fit.
Well, I assume it would be like a grid where it would line wrap to the left hand side of the phrase input cells to reevaluate. Yeah.
Yeah, that'd be nice.
Yeah.
So you end up fine. I think the size of these things isn't quite. I mean, that looks like it's very big compared to these ones. These have to be somehow matched in size.
I was about to say that. I don't think I'd actually read that. I just clicked the button.
Yeah, exactly. So these have to be.
Isn't that what we want?
So.
So should the first one be more. Not really primary or they're kind of equal weight.
The second one is more reliable.
Yeah.
Okay. Yeah.
I think that icon.
The reason we kept using the try to language, which I don't think is the right thing to do, but the reason we kept using the try to language is because. Not that the reconstruction will ever fail, it will always succeed, but the reconstruction might produce something which is undesirable.
Yeah. Okay. What will be a good icon for reconstruction? It's like we're rebuilding. We can rebuild like that six million dollar thing. We can rebuild him. Whatever.
I'm.
I'm reminded of the Movie poster of Gun with the Wind.
What does that look like?
Right. It has Scarlet and Brett on it.
Right.
But it's, you know, it's a movie set during reconstruction, hence. Oh, God, my.
Nobody will get that.
I'm reminded of a scene from Family Guy where there's this Amish barn that they keep blowing up, and then all the Amish keep, you know, doing the barn raising in like two or three seconds, and then they'll blow it up again, and then they raise it again.
The.
Well, so I, I mean, I'm seeing on the web a few icons here that let me drag it. This is rather way too whimsical. What are we really trying to indicate? I really don't like this play button. So it's kind of like, how do we.
Is a hammer button better? I mean, that's more construct than reconstruct.
But yeah, let's see. Reconstruct. Is it a piece of a jigsaw or something?
I, I, I think that's almost as obscure as mic on with the wind idea.
Okay, fine. Let me think. What is it really doing? It's trying to go from output.
Right? It's Right. I presume what it's doing is it's doing make expression on the output cells, which may or may not correspond to.
Correct. So what it does, it'll reconstruct the whole input boxes by by substituting those percent references with the output boxes that are in the notebook.
So you get a whole box would be just a simple pair, hamburgery pair with the second line, you know, indicating input output. And then here, what we would do is have the flip around. So, so what we would do is we would say, oh, gosh, can I actually do this graphics, you know, line? This is annoying, but.
Oh, right, the in, out pair. And you're emphasizing each one sort of respectively.
Yeah, right. In this one we emphasize the lower one, and this one we emphasize the upper one.
It actually might be nice. I mean, those icons could be slightly bigger and not necessarily have to be in the button itself.
Yeah, that would be fine.
Yeah. And that really would give the sort of either or, you know, these are equal weight things.
That's the, that would be the idea. Yes.
Yeah, yeah.
Actually, here we could just do this to simulate this. We could say, Blah, blah, blah, blah. This is very bad. Sorry, I'm just. This isn't very bad. This is very good. Line spacing, arrow zeros. Oh, come on.
No, I think you want spacing goes to zero in column, right?
Oh, yeah. Okay.
Spacings.
But in Column, not style.
Thank you. Well, whatever. You get the idea. Yeah.
And I guess the top one could be sort of like blue and the bottom one gray and then the other way around.
Yeah. We can start from output cell. Yeah, let's try that. I think that will be. Okay. Now you had pink.
Oh, yeah. I sent. So it's obviously the previous version because I didn't have Jeremy's mark, but those are slightly pink now.
That looks better.
A lot better. I think it's a lot more coherent now. You've. You've not readded the out here, which I think is fine. And I think here we can repink them. You know, they can be pink down here.
Sorry.
It's okay.
When you say they can be pink, you mean the out labels.
I mean the thing you've done here where this is pink and this matches in pink. Seems fine to me.
Okay, cool.
I think, I don't think this should be. I don't think it needs to be gray down here. I think it can be pink to match these pinks.
Right.
I just like to emphasize that the majority case here will be a single thing. So you need to have two versions of this, of this dialogue. That's for Jason. One in singular and one in plural.
Yeah, that's straightforward.
Okay, fine. But that way, I mean, we just need to recognize. It's mostly going to say input cell to reevaluate, reconstruct from output cell, then input cell to reevaluate. Makes sense. Okay, I want to just try using this. Okay, so I don't know whether. I don't know what I'm going to actually do here, but let's. I mean, what am I going to do? I'm just going to say it's hard for me to come up with a. Let's say plot sine x x 0, 10. Let's say table A, percent. Oh, oh, comma 5. Okay, and now let's say partition, percent. Okay. Now I hit return comma two, for example. And then I want to say graphics grid percent. Now, one thing that's a little odd. Okay, let me just do that. Okay, great. Okay, now I want to kill the kernel. Why is it taking so long to quit?
It's actually almost instantaneous to quit. What's taking so long as it's auto restarting the kernel.
Okay. Do I need to rerun some of these things? Do I need to rerun this?
Yes. Yeah. Some of the features that you were seeing are coming from those cells because they're not okay to the product.
Okay, let's See what happened here? So now this gray down. Why did that gray. That seems like a bug to me. Seems absolutely wrong. Yes. Please fix it.
Yes.
Why wasn't that bug found by somebody other than me?
It has been found. It's on my list.
Yeah.
There's some problems with the grain.
Okay. All right. So here.
Yeah. Now that I see it, I'll bet I know what's causing it, too.
I'm going to reevaluate this. God, that's heavyweight. It'll look better in the new version. Okay. I see the border around that blue thing. So it's grayed down and it's bordered, and it's a bit confusing. Okay, let me do this. I see. That stays as a. Whatever. You know what I'm saying? It stays as.
It's basically signifying to you that there's no kernel footprint. There's no kernel backing for this.
Okay. So now here. The hell did that do? I clicked that button and then it jumped there.
Yeah. Yes. The choice of scroll position could be better. This is a bug that's been around for a long time, but it's more visible in this workflow. But the bug has been an issue, like.
So it inflated that percent monitor. See, it's blue instead of gray. It means that if you just evaluate.
What's this?
That is a marker that's still around so that as you scroll, you can still find the cell that you came from, according to.
Wait a minute. Did we ever design this? Because this is not what's that.
We workshopped it last time. But the point being is that the previous message would no longer be accurate. Right. Because all of the percents have now been reinflated.
Of course. Of course.
We could just remove the message or we put some. Something like this. Unfortunately, that won't work. If you click on the evaluate cell. It's another. It slipped in last night. But you can reevaluate it.
Okay, but how would I ever know to do that? So I've gone back, I've reevaluated this.
So when you reevaluate that, you'll see the line below.
It'll.
It'll inflate, obviously. It'll just do it. Right. Boom. It'll do that. Oh, and this also reinflates.
That's what I meant. Yep.
And now that's an out, too. Previously an out. Something else. Right.
Correct.
Okay, but that thing that I just saw. All things have been. Go ahead. What were you going to say, Noah?
Well, no, because you were asking. How would I know to do that. But that's the process you were doing, right? The reason you were seeing the message in the first place is because you'd attempted to evaluate the cell, then you went to one of the linked cells and re evaluated it. And so I mean, the only thing left to do is go back to the original cell and evaluate that, right?
Yes, that's true. And the only reason I didn't do that is because I'm not doing a real thing here.
Yeah. And an important thing to understand is this is. Although it might actually in the version that you have, but in the final version, this state is never going to be saved into the notebook. So it's not like you'll open the state and you'll see a half resolved.
I get it. The thing that the typography of what we just saw should not be bold like that. It should just be, you know, should just be an informational italic thing and then just say evaluate now. Sure.
Do we want to look at that in detail?
I'm happy to. We could just add it to the design ticket. Right. Because it goes with the other one, right?
Yeah, yeah. The two should share much of the.
Are there any other weird messages and things that come out?
Not messages, but there is a state. Oh, no, actually, sorry, yeah, yeah, yeah.
There is one other, which is when it can't be recreated from output cells because the output cells aren't there.
Okay, fine. Let me try that. So here. What the hell is that? Out one.
So. So what happened?
In fact, it is out one. It got rehydrated. So recall, that's the thing that you reconstructed from output cells in your first evaluation.
So let's quit this again. Why is it taking a long time to restart?
Because you insist on so much preheating in the kernel startup.
Okay, okay. So let me delete this. Okay. And then let me do this.
And yes.
Okay, so obviously this has to be redesigned.
So basically the difference here being that the reconstruct option is not available to you.
I get it, I get it. That's fine. And then what was our text before?
Definitely.
Okay, so I think this one should say values from earlier sessions are no longer available. I think we should say. I think we should explain that there is no output cell. Sessions are no longer available.
Do we need to explain that? Feels like unnecessary information.
Fine, fine.
I agree.
Okay. All right.
I mean, this case is sort of just so straightforward because it's just re evaluate the corresponding input cells and then I think the question is, do you need the label underneath which is input cells to reevaluate. Probably not.
Well, I mean, this. We can't have this either. This goes well.
You can have the second half of it.
Right.
Reevaluate the corresponding. Oh, sorry. Correspond. Yeah, yeah, no, that still works. Reevaluate the corresponding input cells.
Okay, so here's. Sorry, there's another edge case that I don't quite get that we should discuss when you're done with. Yes.
To retrieve.
Retrieve seems like the wrong word. To regenerating. Recreating. What about two recompute values, evaluate the corresponding input cells.
Yeah, the singular is not so obvious here. It should say value for. Value for out from earlier sessions is no longer available. The value for out.
Right. Although you could have some available and some not available. Right, so correct.
Okay, but I understand that. But I mean, You're saying leave it plural in all cases. Yeah, okay, I see the argument for that.
Yeah.
All right. Then we just say to recompute values.
Re.
Evaluate the corresponding input cells. And then we just, You know, I wonder if we should say bind input cells because that's all it's going to do. It's not going to do it. It's not going to reevaluate it.
Correct. It could even be. Find unevaluated input cells.
That doesn't seem useful, mind.
And also I. I would say go to. It's a bit more definite.
Yeah.
And then you. You know what to expect when you.
Click.
And you're not confused that you've suddenly jumped because you knew you were going somewhere.
Yeah, yeah, yeah.
I like this. Okay. I think this will work.
Okay.
Another corner case.
Yep.
So, dude, before we move on, just recompute.
Re.
Evaluate. Surely it just needs to be evaluate. It's just awkward to say otherwise.
Yes, of course. Yes, you're right.
Sorry, that's.
I. Yep. Yeah, that's fine. Go. So do time series of range of 10 to the 6 and. Okay, now don't store the. The data in the notebook. And you know, do percent one and select the reference so that.
Yep.
And so hit enter to stick in the reference or click on it.
I hate the fact that it's temporal data. That better be fixed soon. Okay.
It can't. It can't be fixed or Unless you're wanting it to lie. Right, but that's the thing.
I'm not saying for our. This. I'm talking about the underlying time series stuff.
Well, that's.
Okay. Okay. You're not suggesting an action item for us. You're suggesting.
I'm making an editorial comment.
Okay.
Okay.
So. Right. You Know, and while you can evaluate it or you can quit the kernel would. I don't think it makes a difference right now.
Yeah. Whoops. That's not what I wanted. I want that.
Well, I. No, no, no. I don't. Don't. Don't copy that into the cell yet. I. I mean, we can have that experiment later, but for now, just, you know, do that. Yeah, just evaluate that and then quit the kernel. Okay, so that works fine because it's an actual, you know, percent.
Yes.
Okay, so now you. Well, I'll want you to evaluate that percent reference there.
This one here? Yep.
Okay. And then click on the attempt to reconstruct outputs in this notebook. And then it just disappears. And I have no idea what happened.
Oh, that's. But what happens if you evaluate the output cell with the time series in. Because we did consider this case, but that's really not what I expected to happen. Yeah. Stephen, what happens if you evaluate that?
Oh, okay, so the bug is you. You should have seen that message and you didn't. That's the bug.
Okay, we'll.
We'll.
We'll fix that.
But if you did see that message, it's going to return. What does it actually return here?
Well, it must be returning. Is it? No, it didn't go through the main loop. Didn't go through the main loop because notice you have two N3s.
Yeah.
Right. Make expression just plain fails.
Right.
So.
So it's as if it's like a syntax error. It just bounces it out.
Yep.
Except. Except unlike, unlike many syntax errors, it does produce the message and doesn't produce the pill.
Yeah. By the way, when are we going to fix this idiocy here? What does that get. Look at that bug.
Look at that. This is the first I am hearing of this. I'm happy to fix it, but I didn't know about it.
Okay, well, I'm just saying that's plain text. We should put a, you know, some kind of Unicode character in there. And look at that amazing baguette that. I go over there, I mouse over there, and it says get, and it's going to say put.
Okay, I'm sorry, to be clear, the idiocy you were referring to, was it the hover effect or was it something else?
All right, it was. What? What? It's the fact that it is a textual. Less than. Less.
Oh, as opposed to a gma.
Yeah. Right.
Okay.
And the. Well, picked up with the auto. I mean, it's very weird. Look, you see, time series is not picked up, but. Because It's a special character. It's somehow even in the string picking it up and. And. And rafting it.
What?
What do you mean?
Look. Look at that. Look.
Well, I get that, but what do you. What do you mean? Something is getting.
Okay, this is being rafted. Okay, Time series. The word which could be rafted in this situation. It is rafted. See what I'm saying? If I just do that.
Yes, I can see it's very weird that the less than. Less than is getting.
Well, well, yeah, but right. If you did times. If you did percent three, slash, slash output form, then. Right. You'd see that exact thing and the time series wouldn't be rafted it there either.
Look, the fact that it isn't rafted is fine. The fact that the less than. Less than which isn't even meaning get in this case is rafted is wrong. Right. You agree?
Yeah.
No one is disputing the raft.
Okay, fine.
But the question. I mean the reason there are literal characters less than followed by another less than is because it's the output form being plugged into the message.
I understand that.
And that's a bit of plumbing that is not so easy to just wave your hands.
I got it, I got it, I got it. But I mean, it's being emphasized. Its foolishness is being emphasized by the rafting of it.
Yes. Which is clearly a mistake and it's easy to fix and we'll just fix it.
Okay, fine.
And so sorry, I had one more question before we get on. Is the reason the whole bottom disappeared? Because. Oh, right. This attempts to do all of them at once. So it'll just do whatever it does and. Right, so. So that thing always. The whole pink thing always disappears and you get whatever you get. Only I didn't see the message.
I don't understand why those did that. But yet this. Maybe it's going to do the same.
Oh, because. Because remember what happened was you clicked it. The attempt to reconstruct and.
Right, so it still hasn't been that things.
Okay, we haven't seen. Okay, so that then just does null.
Null. So. So. So the bug here is there should have been messages from that and is.
Null the right output or.
Yeah, I. I mean if it.
There's some. There's something strange going on here. All right, I will have to investigate.
Yeah, we need to look into it.
The incomplete. You know, the effective return value from that incomplete time series, that unreconstructable time series is null. And it should be a failure object, I think.
Well, but the Point is, if you did a shift enter evaluation, you wouldn't have even gotten an output. You would have gotten a message and no output. And the fact that this produces an output is at odds with that, right?
Yeah, Right. If you copied the. Right, if you. If you copied what's an inn of three and made a list of that literal object and then evaluated it, you would get no output. So the fact that with the percent reference you're getting three nulls is a bug in the percent reference mechanism, I would argue.
Yes. ETI is correct here. And it needs to just be a syntax error and punt and not giving output just like the out to percent three.
Okay. All right. Anything else we need to figure out here?
Yes, two things. Can you please open a new notebook?
Okay. Fresh notebook here.
Yep.
Just command, then evaluate anything. I don't know, one plus one, range of 10. Dealer's choice. Percent and then enter. Oh.
Oh. Percent and shift enter.
Sorry, yes. Well, I meant percent and enter to accept the raft and then.
Oh.
So just.
Sorry.
Create a. Yeah, there you go. Right. Then copy that and then paste it into the other notebook. Right, so that's the updated styling for a foreign. You know, for a percent whose source was.
It's exotic. It looks like some kind of exotic orchid or something.
It looks kind of nice. You asked for purple. That looks good from the last ones.
It has a tooltip as well. That should do at least.
Yeah.
And so. Right, that'll work as long as that notebook is open, correct?
Yeah.
No, no, no.
It's got a kernel value, so it'll work.
I mean.
Yeah, yeah. As long as that notebook is open and the kernel value is present. So if, for example, in a new session, you were to open only this notebook, it would be broken.
Okay, so let me try a couple of things here. So let me do this. God, this is slow. What is it doing?
Yeah, so rather than gray, we've gone for a grayed down purple.
Wow. Wild. And of course that's not going to work. See that? Because that's a percent there.
Right?
Exactly. And that's one of the reasons why. Exactly. We can't just go and reevaluate the inputs. Yep, that's the case.
Okay, so let's say I go over here and I.
And the reason it's not giving us the option of reconstructing from the output.
What the hell is that? What is this saying here?
Well, that state is, you know, kernel value isn't present, and the original cell and the linked cell isn't present either. So it's just it's completely fatal.
Don't we want to reference the out here?
Oh, so you know what it is?
Yeah, because otherwise I. It's a missing. You know, for some reason I know you might be. I don't know whether you've ever encountered Paddington Bear, Noah.
Yes, yes.
Somehow I wasn't Paddington Bear. Know. Delivered at Paddington Station with some kind of label on it. Somehow this reminds me of that. Oh, it's unclear what the hell the thing is, other than it has a label.
Sure.
I think maybe this would be fixed by just having the. Out of dot there as well.
Yes, I think so.
Out of dot delimiter Missing cell.
Yeah.
Missing source or something. Or missing. Out of dot. Missing source. Missing.
It's missing both the input and output and kernel, so it's really missing all of them.
You could just say missing link.
Missing trifector.
Yeah.
I think it needs the out thing first of all.
Yeah. I think if it's just out dot and then missing, that, that might be enough. And it'd be nice and short.
Look good. I think that is a very reminiscent somehow. I'm. I'm. I'm continuing with the Paddington Bear thing. It's just missing. We don't know what it is.
Well, we don't know what it is. Right, that's the problem.
Yeah. Missing reference, missing source, No information.
Yeah, I was just thinking. Not found.
I like that.
Not found or no information?
Not found?
Not found. Better than no information, I think.
Yeah. All right. Okay. And. And the broken link there, do we know what it is? Other than some kind of, you know, one of those missing space optical illusions?
So. So if it lives in another notebook and you happen to open that notebook, it will reestablish the link. But we have no information about if that cell actually exists and if so, where we just. The information is not there.
Right.
We have the UUID of the cell. So if. If the cell have. If a cell with that UUID happens to come along, great. If not, we're hosed.
I like, not found them. Okay, so out and then not found. But what the heck is that? That broken link thing just doesn't really cut it for me.
The previous one, I had like pieces flying off, and I think you described it as too violent.
I liked it fit. I liked it too.
What about.
I liked it too.
We could have a hat with a green head and then some space and then some green, green legs, and it would be a broken link.
Let me find.
Let me find.
That's a Zelda. Legend of Zelda. Reference.
Not my cultural.
Yes.
Heritage. You could say yes. Okay. A tiny question mark in there. Worthwhile or not? Probably not.
I don't think so.
Okay. All right.
Now I did pose a question.
Why do we.
Why do we bother to have this underneath? It's pretty obvious what this is. This is adding no information.
Well, it. That's not true. It might be in a very large cell.
It's the.
You.
You may have actually missed it visually because it was off screen or whatever. Right.
This is the thing that was there and it just changed state due to something else happening.
Right.
What does happen in that case, John? So you've got this big function and one little piece is broken. Do you get all the errors? And then this is dumped at the end.
Sorry, I don't remember. Does anyone else remember? I think it. Sorry, I think we never even send it to the kernel. In that case. Yeah, yeah, we don't. We don't send it to the kernel because we know it will fail.
So this is all you get back, no matter what's in your expression.
Yeah. It's the same thing as if there's a mismatched bracket and we don't.
Right.
Yeah, sorry, go ahead.
Well, we did the thing. I think the reason it's there is that we attempted to evaluate it first and then we closed the notebook. Right. If we create that expression. Right. If we get back into the state we were where we had the purple and without evaluating that, and then quit the kernel. So we have the gray down purple, and then we close the notebook before evaluating the. The thing. Right. We would just have the missing cell with no drop down. Or without that decorating cell.
Wait a sec. What the.
Right.
The reason we have that decorating cell is because you had attempted to evaluate that already.
Yes, that's correct. I just don't understand what that adds other than it's a syntax error, which we can already see just like any other syntax. Syntax error. I don't see what. What hap. What the.
But if it suppresses output and let's say you're missing cells off screen. You need something.
But. But it's the same thing as a. As a syntax error. You've got a red cell bracket.
Oh, just a normal syntax error. Yeah.
Yeah. I think. I think Stephen's point is that the initial state could just be the pill and clicking the pill could produce this.
Yeah, I think that's what we should do. I just don't.
Right. Which. Which would be a change for the list. 1, 3 missing cell, but not a change I think for the.
For this one here. No, you just don't give an output. Just like.
But, but, but, but you'd already evaluated it. Right. There was already a pill there. Right. You had. Right. The reason. Right. In that case does the sequence was you had the gray down purple. You evaluated the cell, the gray down purple, which produced a thing there. And then you close the notebook. And my claim is, well, you still need to, you know, say something there. Right? There's.
When you close the notebook. Why aren't you just getting. Now this becomes a syntax error.
I just think that's weird that the. That the thing disappears without any action in that cell area.
It will disappear if you close and reopen the notebook entirely. Or at least that's our plan.
Right, right. My. My claim is if, If. If you. If you. If. If you attempt to shift enter there, then it's, you know, it's fine for it to not be there. But in. In every other case, once we have the little pill there, you know, even if.
Right.
If you rehydrate everything, there's still a remit, a remnant saying, please reevaluate. Now, this is telling, you know, this is the remnant of the fact that, you know, there was a, you know, attempted evaluation.
The design is not good. I don't think we should have the missing cell thing actually show up here. I think it should just be little pink thing that says the input expression contains insufficient information to interpret. What?
Oh, hang on.
Sorry.
This was.
Right. That's an existing message, right? That's.
Yeah, no, but, but, but, Stephen, you. Sorry, this was missed. Actually. You gave us some text last time which should be there, and it's not.
Okay. All right, I'll.
I'll update that.
Okay, I got another general comment. Okay. In the case of a hydrated percent. Right. So let's say I just make a, you know, a percent there. I just think this is too bright, you know, Is this really the most significant thing is that it's a linked percent.
I tend to agree. I. I'd like it even more muted.
Just more.
More sort of.
Yeah.
Yep. I mean, slightly blue, but mostly towards the gray. Jeremy.
Okay.
Yeah, no, I agree. Yep.
As long as we can still clearly tell the difference.
Sure.
Well, I also don't think that the link.
Go ahead.
Yeah, yeah, exactly. The link could remain blue, but the rest could just be gray.
Maybe the L1 too lighted.
Yeah, it should be a lighter, but.
The out one, you want to be blue because that's. That blue has meaning, right?
No, that's what I'm saying it should stay blue. Oh, yeah, yeah.
Good.
Yeah, yeah, yeah. I meant the background and the frame would be perfect.
Then don't emphasize that link because the link is just not. I mean, it's just like. It is a link, but it's like, okay, fine, but you know, having that be sort of the bold thing thing in the, in the icon seems, I don't know, I mean, by graying it down a bit, you can avoid that.
Well, may, may maybe the, the, you know, the thickness of the line can be decreased as well.
Maybe. Although I think it'll be a little unclear what it means if you do that. Okay. Some experimentation needed.
Right. So when I have an unhydrated cell that's pointing to a different notebook and I attempt to reevaluate it, I don't get the attempt to recreate the expressions from the output, even if the other notebook is there and available. And why is that?
This is an experience that is geared towards, you know, a self contained notebook experience. We're not optimizing the. I have three notebooks open and they're always open in tandem. I recognize, you know, that you might be the 1% of the 1% who really benefits from a scenario like that. But I pushed a lot for, you know, not emphasizing that experience because I was concerned it would just be confusing for people who are just, you know, the 99% of people who are just trying to do stuff in a single notebook. And for what it's worth, I have, you know, I mean, I was in a situation once where, you know, dropped in a church where there was like linked Excel files and it was crazy, it broke all the time. It's, it's, you know, it's just a fragile situation. I don't think we want to be in cross.
Right, right, right. Although then, then I question, well, why are we offering to rehydrate it at all?
Right?
We're, we're giving them the links to reevaluate the inputs.
So yes, that's fine. But I mean that then they're reevaluate. Oh, I see, but, but then you can store the link, can't you? I see, I see, I see, I see. What is there a way of just saying. Now I'm confused by something. If I say, burn me in this value, this is simply linking to out one. But what if I just want to use that value?
So two ways of doing that. One is the one you're just discovering now, and the other would be, remember, in that completion raft, we will have A column of iconized buttons as well.
Oh, right. It. That's fine.
So two ways to do it.
Yeah, that's fine. And that's nice. And I've been doing that a lot, I have to say. It's just iconizing. Yeah, I mean that. That's. Yeah. Okay. All right. Anything else for this?
I had one more question, which is currently, if you. So if you evaluate. So say one plus one, but suppress the output and then evaluate something else where the output isn't suppressed. Just so we can see the raft right now, type percent so in. So the one plus one isn't there. And the reason it's not there is because there's no output cell, but the input cell is there. And so that's really what matters in terms of something to link to.
Right.
It's the means to recreate the output.
So percent two does exist. Percent two is.
Yes. So what I'm asking is, should things that have an input cell but not an output cell and a kernel value be in that list?
Yes. Yeah.
Okay.
Okay. And just to point out, you can go to see your N4 before the percent 2 do escape. Percent 2 escape. So click on the beginning of the cell N4. You see N4 right there. Escape percent to escape. Yep.
Yeah, you can create escape.
I don't need the second escape. Escape. Percent two. Oh, I did need the second escape. Okay.
Yeah, that's keyboard.
Well, I, I think I know. It's how it works. I was surprised. I strongly think that even suppressed percents should be visible.
Okay.
Yeah, I, I agree.
I currently filter them, but I can change that.
Yep.
Okay. Let me just try one other thing here. Oh, that's cool.
So we'll continue suppressing percents which have no representation in this notebook, though.
That is no representation. Yes.
So like if you reevaluate in four, so it becomes in six. In four will no longer have a representation in this notebook. Percent four, I should say.
Correct. And those ones I think we should not include in the autocomplete.
Okay, I think we're on the same page then.
What about ones that are in another notebook?
We are also suppressing those under my theory of, you know, not confusing people with the multi notebook experience.
Yes, I agree with you. All right. I mean, the thing that I'm hoping for in a future version is just this general roll up so that I've made a bunch of definitions in a notebook and I want to roll them all up into a single function.
Yeah. So this rolls up through percent references. But you know, when, when you have sort of tried this. You get frustrated because you're like, I don't want to just do percent references. I kind of want it to sort of read my mind as how I would put these things together. And.
Well, no, the percentage is fine, but it isn't, it isn't enough. I mean, it's not, it's. It's. If it is done with percent, that's fine, but I want to really roll. Look, let, let's try the case that I'm talking about. Okay. X F of percent.
G. But, but see, you're not using percent references here, so this isn't going to work. We roll up percent references. We don't roll up literal percents.
Okay. Okay, now what? Now what should I do to roll this up?
Well, no, but you need the others there.
Right.
So rather. So where it says G of percent and F of percent, those need to be smart references.
So start, start again. Reevaluate X and then F of percent reference.
Yeah. So accept the completion.
Yeah.
And now G of percent reference.
Okay, now what?
And now you can either roll that up or you can do another one and roll it up. You know, depending on how you want to see it.
How do I roll it up?
Type in percent and then type percent and then hit return. Hit return. Got a percent reference for it? Yeah, Hit return, select it, and then click on the menu and go roll up.
Okay, that's nice. If I could understand to do it. It's nice, yeah.
I mean, but, but that's the distinction is it has to be through percent references, not through evaluations of raw percents.
Yes.
And of course here all you're seeing is exactly what out of 12 was. But if you had had something that sort of actually evaluated. So if you did like you know, one plus percent and then you know, that numeric value plus another thing, it would insert sort of each stage rather than just the symbolic thing at the end.
Yep. And in fact, you can do this because they're actually linked in n 11. If you reevaluate n 11 and goes put a 1 plus the F at the beginning, an 11 and then see this roll up again.
It'll.
It'll do it as nicely.
By the way, does this all work in the cloud?
No, no, but you know, I mean, this is something we'll be working with. Pacyon.
What about, what about if I take a notebook that has these linked percent and I publish it, will it do the right thing?
So in that sense.
You need to get it to do something sensible.
Yeah, well, and I, you know, what we're writing to the notebook is not going to be difficult for Pacey to get some basic functionality out of. You know, having the full experience will be much harder, but having the. Can we just get evaluation to work properly, I think that will be comparatively straightforward for him to implement.
Well, let's hop on it. It's coming very, very late in the cycle, which is unfortunate. Yeah, it's not great. It won't be operable in the, in the cloud. Jason, that's another thing. You could be a hero by making sure that that really works in the cloud.
Yep.
Whatever. Yes. And diving into whatever is needed in terms of cloud code to just make it work.
I'll liaise with John Lazy.
Yep. All right. Anything else, guys?
There was, which, you know, link icon you preferred, but we can just circle background.
The blowing up link icon is not, is not plausible. Your pow. Link icon up there, it's just not plausible. That thing looks like a. I don't know. I don't know what the heck it looks like, but it doesn't. It isn't. I didn't get at all that it was a broken link.
Okay, we'll add this to the design ticket as well then.
Okay. And when you've got sort of the gray, grayer linked whatevers, why don't you send out an email to me and others about it or, or if there's a meeting, we can pick it up and that would be better.
Yeah, I mean, I think at this point this is sort of now beyond what I can do and I think we'll need design to take a look at this, but we'll just bring it to a Design UX meeting.
Fine.
Yeah. Well, I mean, if we have the Design UX meeting this week or otherwise, the next realistic opportunity will be when we're doing blog writing.
No, please don't do that. Please, please don't do that. We really. I don't want to do that as a, as a catch up design review.
Well, if, if, if, if we have the Design UX meeting this week. I think it'll be ready by then.
Yeah, yeah, that's fine.
Sounds good. All right.
Stephen, where are you saving this notebook?
There's some text I need in percent it's percent reference folder and or percent.
Yeah, okay.
Okay, good stuff.
Thank you.
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






