Live CEOing Ep 810: Design Review of % Modernization continued

Stephen Wolfram and his team review the design for modernizing percent (%) references in Wolfram notebooks, covering UI menus, output iconization, performance safety, and linked outputs across sessions. They identify bugs and edge cases in strings and comments, discuss test coverage and leaf counts, and plan mockups and further reviews.
Chapters
Okay. Hi everyone. We are looking at a piece of Wolfram language design to do with percent modernization. And I assume that I can just start typing here. So I'm going to just do something like three plus five and then I'm going to say percent. What is this? What am I seeing here? What the heck am I seeing here?
You're saying.
Sorry, go on, Italy.
Well, you're. I mean, I think the first line is self explanatory.
I know, but it looks terrible. It looks terrible. We not have any graphic design for this, by the way. I assume we have somebody from graphic design here.
Jeremy is here.
Okay, great.
Jeremy's here. And I done the design for this menu so far.
Okay, well, I mean it just. That is an incomprehensibly bizarre thing that we're seeing there.
Yeah, I think. Actually I meant to mention this as well. There should be some sort of light delimiter.
Well, there should be a bunch of things here. Okay, so let's just take a look at what we got here.
Yes. Better if the expression is longer.
Definitely. Okay, so now I say percent. Huh?
So that percent three is getting elided too much.
And what's this thing here?
That is the representation of something you specified.
And we all think that this probably shouldn't.
I don't know, I don't like it to be. What is it supposed to be?
That is insert the iconizer.
Yeah, it's the iconized representation of the first item. Right. So if you were to select the top one, it would insert a smart ref. If you were to insert. Sorry. If you were to select the second one, it would, you know, insert the iconized.
Don't select by the mouse, just by the keyboard navigation. Sorry.
Yeah, yeah.
I don't know how to use keyboard navigation.
Just hit return up and down arrows.
I have heard of those.
Do we need to send you back to the 1970s?
No, that wasn't 1970s. There were. Never mind. You couldn't use up arrows and down arrows there.
You couldn't. If you were lucky enough to have.
A VT100, VT1 hundreds maybe with very smart software.
Yes.
Okay, the.
So I can comment on the elision as well. So currently right now the illusion algorithm is quite simple. I've got a much more sophisticated illusion algorithm which isn't in this version and is still under development and it should be finished in a day or two. I can actually show you that how it. How it works if you want to.
I would like to see it. But why. I mean, in a best case, let me Let me just start adding some other stuff here. Now, I did. Percent percent. What did that do for me?
Well, so percent three now, of course, is the first thing, because that's what percent percent refers to.
Nice.
If you delete one of the percents, it'll come back. Yep.
Okay, that's obviously not acceptable. Just saying. Graphics, open, close. Obviously it needs to be some kind of image.
Does it really?
That's not obvious to me.
No. Yeah, that's not at all obvious.
Do you mean some. Do you mean like a generic icon or do you mean an actual representation?
I would like an actual representation.
Well, I mean. So the thing that I'm very concerned about is it's nice that you live in a world where generating thumbnails is totally free.
But don't you have bitmaps from the front end somehow?
Maybe. Maybe. There's no guarantee that we have a bitmap.
Well, but if you do have a bitmap, show it.
I mean, I'm not sure those would be recognizable at this height.
Okay.
And also. And also outputs. I mean, you know, if you have a list of five graphics, the front end has five bitmaps, not one bitmap.
I understand. I think that this should be an icon here, not graphics. I think. I think it'll be less obscure and.
Presumably the same for image as well, then. And graph and.
Yeah, well, the Graph and graphics.
3D audio image, sports array.
Yeah. Oh, I mean, not. Not everything. I mean, just not everything. The things that. The things that are really. Look, sparse array is just not things with summary boxes. It's fine to give their head as their summarization, if you get what I'm saying.
Okay, well, then we're probably talking about image, graph, graphics. And graphics 3D.
I think so.
And image 3D.
Oh, yes. Image 3D as well.
Okay, I got another important point. As far as I'm concerned, do you.
Imagine a different icon for each one? Yes. Okay.
Even we could use the color coding. We could border those icons with the color coding that selection of those things would give.
Oh, that's a. That's a good idea. Yeah.
Okay, my next comment is I'd really prefer to see out 4 rather than percent 4 here.
So why are you sure? Because percent is the thing that you type. And in every other completion raft, we actually. And I was saying this to Jason earlier, I think we should. In this case, the percent should actually be underlined.
Are you laughing at me? Because I said the opposite sometime before.
We've gone back and forth on this so many times.
Now, but hang on, John, not about the raft. Right. I feel like this is slightly different. Okay, so if you just hit enter now, Steven. Yeah, so, yeah, okay, so we get a. I like that.
I like that. But I think it should be because I'm seeing out four here.
Right.
Right.
And I think that's why the actual template box display says out of four.
Yeah, I think. Yeah.
Well, I'm just making the point that it is matching what you've typed.
Yeah.
And it keeps matching what you type. If you're typing in line numbers, for example.
Yeah.
That point. It looks incredibly ugly for some reason.
Right. I think this is what Noah was saying earlier about there needing to be a light separator between the left column and the right column and a bit.
More space as well between those two.
Yes. Okay. Hey, Jeremy, what do you think? And also, what about separators? I mean, usually in a completion menu, there aren't separators. There aren't separators between the different floors. Right.
Correct. Not, not, not.
Not.
Unless there's like a different. An entirely different category of things sitting in there.
Jeremy, do you have any comment? Do you think. Could you pick this up and like, mock up something or something like that?
Yeah, sure.
And just move it further apart and I wonder, I mean, the size there is matching the size of what I'm typing, right?
Correct.
Yeah.
It might just work to have it further apart. I don't think a full separator is going to work because I think having that separator vertically but not horizontally is going to look wrong.
What about something like a colon or.
I would say exactly that. Yeah, I think a colon is possible. Although again, that suggests syntax, which I don't like very much.
Yeah, I think it would have to be a very light gray colon.
Exactly. That was what I was thinking, too.
And it should be said that the most confusing case is the first one you tried where it's just a number sitting next to another number, basically.
Sure. Of course, that was the most obscure, you know, that was the most bizarre case. Maybe the one I tried. It might help if there were font differences between the left and the right. I don't know if the right. Yeah, there are, but it wasn't obvious. It may just the spacing may fix it. Okay, let's talk about the iconization thing. Okay. Now, if I mouse down here, do I get the choice of an iconized version of one of these or not? No.
No.
And why is that?
That's what you asked for.
Is exactly what you asked for. And we Brought up that exact point. That isn't it. It feels weird that it's only the top one.
And my point is, I think it would be much less useful if every, you know, if every other line were useless.
Oh yeah, I agree. Okay, so here's a different suggestion which maybe somebody already had.
And to be clear, by the way, whatever is in the first line under the current implementation always has the iconized thing in the second line. So if you want to iconize three, just type in a three. And now three pops up to the first line and the iconized form of the of it goes to the second line.
Okay, so an alternative would be some kind of iconization thing on the right.
Yeah, we can do that. Yeah, and that's probably a little subtle. Yeah, I like that it's better because I'm not too sure anybody actually would really use the iconize. I mean, maybe they will. What would you use it for in particular? When would you use it?
I use it all the time. I use it all the time. I have code, I regularly have code that says iconize of blah. And then I copy the result of that and put it somewhere else.
Now, do you use the anonymous iconize or do you give it a name?
I use an anonymous one.
Okay.
I never bothered to give it a name.
One thing on this. What happens if you hit left arrow with the completion menu? I'm actually not sure.
So right now it doesn't use the arrows. We could make it use the arrows, but there's a danger to that. And the danger is that you are now more likely to get in the way of just typical editing.
Yeah, yeah, right. No, but.
So that's what I was about to say. Currently it moves the insertion point. So I'm trying to think of a way that we can get the iconized state with only the keyboard if we think that's important.
I don't know about that. I'm not sure how important that is, but since I didn't even.
I don't think it's important only because I don't think I would use this feature.
Okay, all right, so listen, listen. What I'm suggesting is that on the right is a little icon, little box with dot, dot dots with some kind of thing. And I'm trying to see whether this makes sense.
Right, we have a pre. Sorry to interrupt, but we have a pre existing such thing from the output size limiter. Right? We have the little.
Oh yeah, let me see.
So do range of 10 to the six and it'll be the fourth, I think button from the left. It also has text, because everything has text here. But you can see there's an icon.
The thing I was. Yeah, it's a nice icon. Okay. The thing that. But unfortunately, if you just see that on the right, it just seems like it's an additional thing. So what I was imagining was this thing with one of those. I'm going to put this somewhere else. Up arrow up to the right. Do you see what I'm saying?
The sharing arrow.
Yeah, but it may not be that. That may not be the right arrow. It may be that we want a down arrow from this thing which indicates you will get this thing. You see what I'm saying? That you're downloading this thing in some sense. Does it make sense to people?
Yeah, I think it makes sense to put the arrow upwards because that's where it's going. I mean, that's where it's going to be inserted.
Okay, now look at this. I just got to. I. I just got a spinner there. I was very worried about that. It spun for a second there.
And that's unfortunately due to the iconize. Right now that's the graphic. But if it's a button, then that's great. So iconize is kind of slow with. It'll be iconizing that range, but the actual elision is now quite fast. And so with the current algorithms, I'm getting it down to maybe 4/100 of a second for like 5 and a half million terms. So it's.
Well, you need to be careful in the code. If it's too big, just punt and just put. Do you see what I'm saying?
Sure I do. I can show you the example of that.
Well, I mean, if we're redoing the iconize and if.
Yeah, they don't care.
Yes. The problem's already solved, perhaps. Nope.
For the iconized, but not for the elision. I was hearing that you're actually scanning the expression for the elision, and I'm warning that we should be careful about that.
Absolutely. Yeah. I can show you.
You can bet that this has been a hot topic in pull request discussions. This is. This is not something that's being ignored at all. So.
Okay, so let me.
Actually, just before we move away from this, I did have an old design that may be relevant here. Stephen, could I share for just a second, please?
Yes. Can you grab the share, please?
Do you mean just start sharing? Yeah, I have to. I have to drop. But I'll follow back up on the recording for anything for Cloud and I'VE already talked a little bit with, with John Jason, and we'll follow up there for any cloud. Cloud needs.
Glory, can you promote Noah to a host? Okay, let me see if I could do that. Oh, if you can't, I'll do it. I can't because I'm not a co host or anything.
Can you see my screen?
Not yet, no.
If you go to the top and.
Click on view options, you can click on Noah's screen.
Okay, I see it now.
Where, where is that? On the top part of the zoom.
It says few options. Yeah, you have to bring up the zoom bar.
Although presumably, Steven, if you stopped sharing, then everyone would just see mine.
Okay.
All right.
Yeah, there we go. Yeah. I don't know if this design is very old. I don't know if it's useful, but I had tabs at the top.
So.
You could either insert. Obviously these words aren't quite right, but you had three options and it switched the entire contents of the raft. You could do a smart percent, literal or iconized.
I think I prefer the iconized button on the end of each particular line.
Well, we don't have literal anymore. Correct, Right, correct.
I mean, we could add it presumably if we think it's useful. Or if not, this could just be the 2 link and iconized and it wouldn't be link, obviously.
But I don't think. I don't particularly like this tab idea. I mean, it's cool, but I think it will get annoying if you were really trying to use it also this late.
Late in the. Late in the stage. I can do that. I can rise. There's a button on the end pretty easily. The tabs at the top, the completion code is.
Let me ask you this question. Why is the percent not underlined? When I saw that thing, my percent wasn't underlined.
Jason and I spoke about this earlier. It will be okay.
All right.
Jason, did you want to share something before we go?
I did, yes.
So please start sharing before the other person. Whatever.
Cool. Okay, so this is an illusion viewer. So this is a general sort of thing. As you scroll this, as you start alighting more and more, you'll see the different sorts of heads alighting as you go down. And so here we can see it. You asked for this a general sort of a way to align this kind of thing and you see the various parts sort of dropping out. And here as we see a performance one, this is just for an example. This is five and a half million terms and it's very fast and efficient. So it does some sort of pre trimming down of everything and so it gets there. So we can align general.
Sort of put this in the function repository or at least in the internal function repository.
I think we'll do that. So yes, we'll put this in an attempt. You might even want to have some sort of design review and comment on these because it's got some weightings and everything. This is quite a complicated algorithm that does it. Unfortunately, this one here, because of the recursion, this version v1 of the algorithm, it starts to slow down.
How does this relate to short and shallow?
It's completely different than.
I understand that. But how should it relate to those things? Is it the future of those things?
It could well be, yes. And so that's.
That's.
I mean we'll have a big discussion about this, I'm sure as it goes. But yes, it could.
What does it do with graphics?
It does nothing with graphics at the moment.
What does it do with a list of graphics?
It'll shorten them by turns that we go in. So right now I guess I could try it with these things, but most of it was. All of this was. This is an embryonic stage in the sense that it's doing all of this kind of stuff for the normal robots of all of these kinds of things. And if we treat graphics that way, it'll shorten the list. If I give a big long list of stuff, it'll shorten those as well at depths. But yeah. So I just wanted to show you this is the future, give you a taste of it and then this is what we'll be going.
We need to review it. I mean, we need a good. In order to review it. Okay, we're going to need a good test set. Where are we going to get that from?
I've got an individual test that I've used to develop.
Where are we going to get a good test set for this from?
We have to create it.
Where are we going to get it from?
Well, I don't think that we'll need to think about it. That's not something we can do.
You want to harvest some from your blog posts?
I'm thinking about that. I don't think they have large expressions mostly. I mean, we can try that. We can try.
They have certain kinds of very large expressions which are useful. Which is to say you have some massive graph thing in there and it had better do something very really fast with.
Yes, that's true. We can certainly test that Stefan could get all of that material.
Sure. And I, I think this, I think that is probably for the. I think in this version, or at least I was planning in this version.
Somebody'S got to test it. We can't have this ship out without that being tested or we're going to find everybody's crashing. I mean, this has been added incredibly late in the cycle, much later than it should have been. And we need to be really careful because there's something every single person is going to run into. We need to have it not crash every time somebody types percent so let's make sure that Stefan, you know, perhaps he can harvest those things. That would be a good place to start.
And Jason, please, let's not get this.
Wrong, because I'm otherwise, I'm worried what's going to happen is randomly you're going to be working, you type percent and the front end is going to crash, right? Because that is the bad case. Because it's going to try and generate the raft. The raft is going to cause the, you know, call the alighter. The alight is going to crash. Right?
That would be very bad. John, you were going to say something.
I was just going to say that I don't know if this is what we want to do for 14.1, but Jason, you were looking into doing the code generation, the C code generation for this algorithm. Right.
In fact, this one here actually uses compile and it does its optimal allocation through the various bits in terms of where is it? It's in parts here right now. It does that. And so some of the optimal allocation of characters. So this is a compiled sort of function as it goes through this is in a C like sort of thing instead of the mathematical functioning thing, where this finds out an optimal allocation of characters across the various things. And so the version two of this won't need the exact same sort of thing. But yes, there are certainly bits that could be put into the kernel. And I actually had a talk with Itai about this, about how to speed certain things up.
Fine, but be very careful. Be very, very careful.
Okay?
Get good. Get a large collection of test examples. Do not just get toy test examples. See whether we can get, I mean, another one would be, I mean, I assume, dynamic content. What does it do with dynamic concept.
Right now, this version? So I don't. For some of these things in here, if we do put a dynamic in, it'll strip that head. So if we just have the dynamic just. In other words, it doesn't. It doesn't.
And the same with manipulating, makes no attempt to resolve the dynamic.
Okay, fine.
That's basically using the. Effectively using the input form.
And same with graphics. If we. If we have wide depth, we just.
Graphics. Can you stop sharing that? Hopefully my screen will come up again. Okay. All right. I'm seriously worried about this. This is coming in really late in the cycle. I'm worried that there will be corner cases that it blows up on, and it would really be good to have some protection there so that if the, you know, if the expression is big has big bite count or something, it just doesn't even try.
Yeah, that's exactly what the current algorithm that you're. That you're witnessing does in the elision. It takes a look at the leaf count as a certain. A bit of.
Leaf count may be enough. I mean, I. I have no idea. There will be corner cases. Be careful.
And one of the reasons why I kind of hedged a bit on whether or not it's even a good idea to use code generation for this is I don't know if code generation will yield to time constraint. I suspect it might not.
I doubt it will. No, I doubt.
So we might need to keep this, you know, and you know.
Well, I'm not even sure that that's. Look, I think this is really difficult.
Right.
If you have generated code, you've got to do some validation on it of the code itself. I think. I mean, this is the thing every single person probably using a notebook and types percent. If it crashes, we're dead in the water. Yeah. See what I'm saying?
Absolutely. Yep. I 100% agree to you.
I want you to make sure. I don't want to just hear that you have a few test examples. I want to make sure that we have run that we figured out how to get huge numbers of test examples that we can run automatically.
Okay, well. And I mean, fortunately, the endpoint to this is a Wolfram language function, so it should be easy to automate the tests.
Okay, fine. Okay, let's start looking. I'm really concerned that this is coming in so late in the cycle, but whatever, I'm not happy about it. I see a node on a live stream suggesting putting the percent for the end of the line, but that's just not going to work. That's not where completions go. Yeah. Putting this thing at the end of the line, it's not going to work. Not going to work. It's not where completions go. It's going underneath where you type.
Yeah, absolutely, I agree.
So, okay, so here would be a box, just a generic box. And presumably there will be a mouse over for this saying iconized version or something. Iconized expression.
Yeah. I think we have a tooltip.
We can do a tooltip.
Okay. Hey, Jeremy, did you get any results on your.
I did. I'm just mailing you this screenshot.
Okay. And then I want to understand this, which I don't understand at all yet. So what happens if I now if I rerun this?
So those template boxes, they would have previously said out of four, I think, and now they say out of six. And if you had evaluated it, then, you know, it's referencing the new down value of out.
And there is a repaint problem around a hover effect, which also. Yeah, so that's. That's. That's been reported. It will be fixed soon.
That looks.
I like the delimiter.
Yeah. And. And I think having the horizontal ones is necessary probably.
Yeah, I. I did too. I did it without. And when we have these iconized blobs, we've got to have verticals, light. You know, they don't have to be very dominant, but light ones. Nice.
The only thing that's bubbling.
This just reminded me we do have. I think it's actually an grid line. Not. Not just vertical bars. In. In like symbol completion. Sorry. In special character completion. So if you do like Escape sc, then. Right. Aren't those actual grid lines between the three columns?
And it looks good. Honestly. I think too much attention is being drawn to these empty spaces here. I think we're going to need to have verticals and horizontal search grid.
Okay.
And then that looks good. And I think having a little icon here that is some kind of plotty icon, even though that happened to be this particular plot here. But having some generic plot icon seems perfectly sensible to me.
Should we have the word graphics as well, though?
I don't think so.
I mean, I mean, to be clear, the front end doesn't necessarily know that something came from a visualization function as opposed to something else that generated graphics.
For a.
Graphics. It's just a graphics. A graphic. Some kind of iconized graphic type thing.
Right.
But I think John's point is that, you know, graphics are incredibly general and that icon might be misleading or maybe not misleading.
It's not going to be this particular icon. It will be some more picture Y type icon.
But any icon is going to be misleading. It will almost never be correct.
No, obviously not, but. So it needs to be a more visual icon. A picture frame or something. A picture frame. I mean, this is a thing that's been done in you know, in draw programs since the beginning, you want the.
Mountains with the sun. That's what you want.
Well, that's image. But graphics is like a circle, triangle.
Yeah, exactly. Right.
Yeah, we could do that, but you'll get that for plots, you know, which isn't great.
It's not great, but we don't have any choice. It doesn't help us to just have the word graphics there.
Yeah.
I mean, right now, we still have no tagging inside graphics that indicates the source of the graphics, correct?
No, I'm not sure if anyone here can answer that definitively, but I don't think the. I don't think that's a correct.
Right.
I mean, Brett's not here, and he's the one who could give some information.
Sorry. Right.
I mean, some VIZ functions will stick, you know, some information in. In the method option, but I don't know that there. That. I don't think you can sort of go back to the generation.
I think that there is an argument, and this is a good case for this, that we put inside the graphics symbolic expression, some indication of its source, like plot or whatever else it is. And, you know, which can clearly be done by things like plot. If that was there, and I think it should be there, probably it can't make it to this version, then that could be harvested by the elider. Am I making sense?
Yeah.
So that's a communication with Brett to suggest that we do that.
Are you thinking just the head of the VIS function that generated it? Basically, I guess so.
I mean, actually, you know, in a perfect world, it would be some association which has a bit of information about things. Okay. That might have several different things in it.
Right. Although there are plenty of workflows that don't involve getting things directly from a VIZ function. Right. Like I create a few different independent plots and then I show them. Never mind constructing graphics from scratch.
So I'm saying that each one of those things has to do something. This is, you know, our famous calculus of annotations type problem that we've had in a bunch of other cases. Like you have, you know, you have graphs, and they have red vertices, and you combine them, and does the combined vertex end up being red or not? Right. And. And there's much arbitrariness in the calculus of annotations. Am I making sense? Okay. But I mean, you know, we try and do the best we can. If we can't figure it out, we can't figure it out. But if we can say plot, it will be useful. I think so.
I. I can point out if you do actual a plot and then just do a plot of x goes from 0 to 1 or something else like that, and then do the plot and then.
Sorry, let me just say something. I hate that thing saying image. I hate it.
We will change it.
Yeah. So what, what are you now saying?
Do a plot. Right now. I was just going to say that it will require some changes. So you've done the plot and then use that as input and then go input form on the plot and you'll see. That it comes out as graphics. So we're going to have to make some changes to the output that plot or at least some of the rules to actually track. You want to know that the output boxes came from a plot?
No, I didn't say that. I said it needs to have tagging information. We're not going to change this. We'll never change this. I don't know what this annotation thing is doing. What the heck is that annotation thing.
That is related to? That's probably the plot highlighting, active highlighting.
Yeah, that's probably dynamic highlighting. And of course the output from. Of course. Then there's the business that not every plot produces a graphics. So if you add, you know, plot legends goes to.
I understand.
You know, you'll get a legend of graphics.
Yeah, I understand. So it takes some work. Right. Okay. Items here, please. Can I.
Can I just ask two questions on what we've just covered? So one is that there's. Sorry. So you want to use those icons in the raft. Do you also want to use it in the percent ref itself? Right, so that one that you've got there says the head graphics. Would you prefer that just to have the icon, the generic graphics icon.
That's an interesting question. What do you think?
I think it should probably be cons.
Let's see.
I suppose actually in code.
I kind of like it here. I kind of like this. I think it would be utterly obscure if it just said graphics in the percent thingy. See what I'm saying?
Sure.
No, no, yeah, I'm on board with that. I just want to know whether that carries over to the template box itself.
Right.
So. So why is graphics good in the percent ref but it's bad in the. In the pop up? I. I just don't understand.
Yeah, I'm not sure I understand that either.
But you're saying that you feel like that's true?
Yes, but I don't know why.
I think.
I think perhaps in the input it's actually useful to See explicitly what you're operating on.
See, the problem is in that case we're seeing graphics without the brackets. How is that happening?
So you're talking about percent nine there or percent six.
Percent nine.
Percent nine. Well, yeah, that's an elided list, of course, of each of the particular items in there. So under the new elision algorithm.
No, his point is an N of 9. Why are you seeing graphics without Bracken?
Because in the. So I just decided that in input you want to be as terse as possible. So I didn't add the brackets and the ellipsis. But in the completion many way you've got a bit more space. I just thought it looked better.
I agree, but let's take a look. But what are you doing here? In the case where I have something like this and then I say percent, this is not happening quickly. Okay. And then I have just. And there I have the literal eight.
Well, hang on. If you'd done like range of five or something, probably would have.
Yeah, okay, fine. Range of 2 would probably give the whole thing.
Yeah.
If I change this to Q, for example, I see that changes. Beautiful.
And you'll notice that the number updated as well. The out number updated.
Yeah. Do we want to hover here? That explains what the heck this thing is.
So there is supposed to be. But it's just not working on your system. But it's working on some systems. There is a hover where if you hover over the percent ref, it will. It will light up the linked output or input if there is no output. So you know, that happened to me once and.
And then it wouldn't go away.
Yeah, well, clearly.
Why is this not working? I've got percent and I see percent 11. I put through it, type another percent. I get percent 9. I type another percent. I'm still at percent 9.
So now because there's no percent 10.
Yeah. No, no. This is an oddity of the design which makes a lot of sense, but may lead to confusions, which is that there is no longer any percent 10 in the notebook. There is nothing to link to because.
It got reevaluated percent 10. We couldn't link to it, but we could still get it iconized.
Yes, you can type in percent 10 shift enter and that works. But the whole point of this feature is to form a link and if the link isn't there. Yeah, there's nothing to link to.
There is a related question, which is that should we include if an output has been suppressed but its input cell is there, should that be included in the raft. Currently it isn't, but I think it probably should be.
We haven't even shown the states yet. We haven't even gotten to the different states. We were missing the particular. So, Stephen, if you type.
Wait, wait, wait, wait, wait. Jason, one thing at a time for a moment, okay?
So this percent thing.
If you go back to just a single percent and take a look at that list, if you.
I've understood what's happening here. I understood what's happening. This thing, there isn't a thing for triple percent, so it's just offering you other completions. Right? There is no immediate completion for triple percent.
Correct. And so it's going down the list. And why.
Why isn't it just disappearing at that point? Because it's hoping that if you add another percent, it. It will. There will be something.
Yeah, what it's doing is it's doing the thing that corresponds to. Okay, so here we've got percent 11. Okay? So the issue is that there. That has to be wrong. That has to be wrong. See that as soon as I add another percent, the only way that I could have something meaningful is to add yet another percentage. Right? That percent nine is already dead meat. Do you see what I'm saying? No thing that I could type could lead to percent 9. See what I'm saying? This is not correct. Watch what's going to happen here, okay? At this point, the world's my oyster. I can type another percent or I can type a number. Make sense so far?
Yep.
Okay. Now, once I type a second percent, the world isn't my oyster anymore. In other words, that there should be. This is the thing. Percent 11 is presumably the default thing. I would get by double percent. Is that correct? If I.
Correct. If you just hit return right now, shift, return or return or space or something and just, you know, and so you're getting percent percent and you evaluate.
It, you'll get Q.
Okay, fine. Okay, so now there is nothing. Assume that there is. No. This is giving me by. By saying percent nine there. You are essentially fuzzy, completing, because there is no thing I can type forward typing that will get me percent nine.
Is quadruple percent, not a thing.
Okay, fair enough. Fair enough. We might be able to get it from that. Yes. Okay, fair enough.
So what happens if you add one more.
Well, hold on a second. What are you going to underline in this case?
So, Stephen, can you actually back up 1 to just percent? Right, so is this going to actually link the input to the output? Right, because the percent refers to the output of this input cell. So I don't know what's going to happen if, if I eval, if I select and then evaluate that.
Yeah, yeah, that's it.
It didn't work.
Correct. I rejected it because it couldn't. It couldn't, it couldn't.
Yeah, we, we. That, that just shouldn't have been in the menu. I, I agree.
Okay, all right, look, the case where you have, you know, the un, the adding a percentage doesn't do anything. I claim that it should, as you type, that it should get you to the next thing that you would have got. In other words.
Absolutely.
History.
Absolutely not. Because if I want to refer to the literal, to the literal out of n values, you're preventing me from doing, doing that.
No, I don't think you understood my point.
I, I did understand your point. You're saying that if, if, if there's a third percent, that it should add the fourth, right?
Oh, no, no, no, I'm not saying that. I'm not saying that. What I was saying was, as I add, okay, this is a no op as far as the raft is concerned. Adding another percent is a no op at this point. Right. Okay, I don't think that's right because I think if I've got the triple percent that refers to percent nine, but once I've already got three percents or four percents, I am past percent nine. The next thing I might be referencing is percent seven.
Yeah.
Percent nine should have been filtered out. It's almost like it's rounding.
Oh, I see. You're not saying add a percent. You're saying delete the percent 9 from the completion and start at percent 7. No, yeah, that does sound correct.
So in a standard completion sort of interface, what you would expect here is that the percent 9 would instead be 3 percents and the percent 7 would be 5 percents.
But we don't want that.
But yes, that would follow the standard rules, but it would be terribly messy to look at.
Right. So I think the thing that I'm suggesting is just a small bug here. That is as soon as you have passed, as soon as a particular percent N is no longer accessible by typing another percent, remove it from the completion menu.
Yeah, yep, I agree, and I think it is pruning, but it looks like there might be an off by one bug.
It's not pruning correctly.
Yeah.
Okay. Now I want to look at these things here. And by the way, I know we've got an explicit agenda and I want to make sure we go through that so something about this down arrow is sort of bothering me. I mean, I click the down arrow. Is that a standard thing? I click the down arrow.
You can also right click the whole, the whole percent reference to actually get that.
What is replace with. With no continuation there in that menu.
Let me just try something. So here I do that and then I say. Here I say replace with rolled up inputs. Oh, Christ. That's not a rolled up input.
It is rolled up for the linked references. Right?
So, for example, if you had, I think if you had multiple inputs in one cell, or if you had several computation, which each you. What I'm certainly sure of is if you had multiple inputs, each of which used a smart percent, then it would roll them up.
I see.
And a little bit to mention this, there is the question of when you insert these things. And so it'll be coming a little bit down, but we can turn it on so that when you evaluate like N14, it'll automatically change the percent to a smart percent.
But I'm not sure, I'm not sure I like that idea.
No, we don't want to do that.
There's an option for it.
But look, look, look, look, look, look here. Okay. Replace with rolled up inputs is, it's not doing that right now.
It is with. If they were all smart persons, by the way.
Also that, that, that hyphen and the rolled up is the roll.
Yeah, yeah, I, no, I, I, I see it, I see it. And, and I'll, I'll make sure that gets fixed.
What does this replace with output input iconized. So that's more choices of replacement which we've chosen to not put at the top level.
Yes, correct.
And why is that? I mean, why wouldn't, why does it help to have a submenu.
Well, just to keep the, the top. I mean, the, the ones in the main menu are the, are the most common ones and it's probably good to keep that clean.
Okay. All right. Okay, fine.
I, Well, I personally would think, well, maybe it's just me, but I would probably be more likely to use replace with output. But I may be weird. I also use shift command. I also use shift command L a fair amount.
So yeah, I'm using. I use Command link the time, but not shift command L usually. Okay. All right, let's look at these items here.
Well, actually, sorry, just one last thing on that. The. Right. What Jeremy has sent that doesn't have syntax coloring. The current styling does. Do we think syntax coloring would help?
It's there, Noah, but it's Dimmed down a bit.
Oh, okay, cool.
Yeah, it's there. I didn't mean to take it out. Sure, sure.
Okay. Evaluate the following. What the heck is that?
What the heck is what?
Oh, I see. The graphics is. No, I'm sorry, I'm confused here. It didn't help me that I saw graphics. Graphics and I was seeing pictures above. It would help me a lot more if those were actual iconic versions of graphics. It confused me because I wasn't expecting to see something symbolic there. Do you get what I'm saying?
Right.
Okay. What's the question here?
You've gone through most of these items already, so.
Yeah, we've gone through most of this section. I just want to check. So there's a list of options. Just scroll down. We've done the first, we've done the second. We've. I think we've kind of covered the third. We've done the fourth.
Yeah.
So if you evaluate the code below, then type percent.
No, he says type percent three.
Yeah.
Okay. Start with percent, then type. Right. Okay. So the exact match is at the bottom, which isn't how it would be done for symbols, but it seems to make sense to do that here.
Is that fine thinking?
Why is the exact match not at the top?
Because it's less. What's at the top is the most recent thing.
Yeah, yeah.
Yeah. In this particular case, different from other kinds of completions, recency seems really important.
I agree with this. I think it's correct.
Great.
I mean, it's going to get very obscure when you're in triple digit, you know, and for our quadruple digit users, so to speak. I assume you have tried this on notebooks where you've gotten to quadruple digits of output lines, have you?
I'm not only into the high hundreds, but yeah, no, I'll do it right now.
Okay, but we should check that. Things are going to look reasonable there. But that's going to mean that you have a stack here of four different completions. Right. If you type percent three, I mean, there's going to be many, many completions. I don't know how you're going to rank them.
Well, no, it's very simple. This menu never has more than five items in it.
I understand that. So you're going to rank the three prefix guys who are most recent. You're going to go down for all three prefix objects.
Well, if we're getting rid of that iconize option, then we can do four.
Yeah, I understand that, but listen, listen to what's going to Happen. The. The thing that is. 3, 9, 9, 9. What you'll see there is percent 3782 or whatever it is. Right. Then the next thing you'll see down is percent 399.
No, no, to be clear, you will only get things that match what you've typed from the front. So if you type it.
Yeah, I get.
Okay, that's not what I heard. I heard you say. Sorry.
No, no. What I'm. What? I'm. What you'll get. In this case, you will get.
It.
Let's say you're at 3,001. Okay.
Correct.
What you will get is percent 3,001 at the top. Then you'll get percent 3,000. Then the next thing you'll get is nine. Yeah, you'll get. Which is 399.
Correct. That's exactly right.
Well, that's a fair point.
I'm not sure it's wrong. I'm just saying it's a little weird.
Well, maybe.
Presumably.
Although.
Presumably. Presumably, if you typed percent percent percent, you'd see 3,000. Well, you'd see 2,000. You'd always see 29.99.
Yes. You'd always see the previous five.
Why am I not able to type here? I was. I was. I was typing command 7 and it wasn't not working.
I don't know.
As a bug. I can only type input. I can't type anything else. I can't type. I can't type Command5. I can only type input. Why the beep is crashing?
Yeah, no, it's. Your menus have gotten scrambled somehow. I think you need to.
Okay. Anyway. All right, fine.
You'll probably need to quit and restart. I'm sorry. I've not seen this bug in forever, but it's something that we have seen.
Before, by the way. Let me make a comment. There's a slight misalignment here. Vertical misalignment of the out 31.
We know. We're trying to fix it.
Okay.
And just a data point, four digits.
Whoa, whoa, whoa, whoa. Here.
Yep. It's a bug that we're going to turn off delimiter highlighting. Yep. Sorry. In the menus.
Yep.
Sorry, it's no.
1 are you talking about. It shouldn't give a completion for percent inside a string. Switch off completion.
I'm. I'm surprised that it did because most other completions are switched off.
Right. So it shouldn't give it inside a string. It shouldn't give it presumably inside in a comment.
Should I give it. No, I don't think in a comment either?
No.
Okay, well, so switch it off inside a string. So bug.
Yes, bug. Just a data point. Four digits work fine. So I can share my screen.
Well, it depends on your definition of fine, but.
Okay, I know. There's also about dollar history length equals zero. What happens there?
I haven't implemented dollar history length. Yes, it's on my list.
Yep.
What does implement dollar history length mean to basically.
In other words, align the items from the completion menu and when your. Your history length goes to, if you.
Don'T have it, don't. Don't offer it.
So basically, if dollar HISTORY length is zero, then you would never see this menu, right?
Correct.
Okay.
And if it was one or two, then you'd only see two items.
Yep.
Yep. I don't know if anybody will ever type this, but it's amusing. Is there a way of getting one of these things as output from a function?
No.
Like the fact that iconize is programmatically gettable is very useful.
We could edit.
So right now this literally just interprets as out of whatever. Assuming that the, you know, the kernel value exists in the history, it literally just interprets this out of whatever.
So I forget that. I forget the actual typesetting construct, but we've got a typesetting construct that'll. It'll generate something that then when you can reevaluate it again.
You know the one I'm thinking of defer.
Yeah, that's it, I think. Yep, yep.
I'm not sure here. Okay, let's take a look.
Right, so this is, this is saying that. Okay, evaluate the one plus one.
Actually, I'm going to do something different. I'm going to quit the kernel.
Okay, so what, what is the percent? Well, maybe I'll defer that for another time, but I'm confused by what the percent escape percent does because that seems to just behave like a normal percent.
At least if I'm referring to escape percent escape.
Yeah.
Yeah. So, okay, so this is.
These are dead animals.
Correct?
Until you re inflate them.
Yeah. So what the hell is that doing? When it says go jump to Linked thing, what did it do?
Well, well, the links are still alive. They're just not hydrated with, you know.
I mean, it's doing exactly what it said in the menu.
Right?
Jump to the LinkedIn put cell.
Okay, so if I said replace with.
Output, so it's gonna, it's gonna use the boxes in that case.
Right. Which means that there are cases where you know what the original percent and what the boxes are Will be different.
Correct.
And so that's. You know, when I did this, at least over the weekend, I got the big angry warnings, which I thought was quite useful.
Yeah. So that. But we. We do that for attempted evaluation. We don't do it for these.
I didn't see it in that. Attempted evaluation. I didn't see it.
I don't think. No, you didn't attempt to evaluate it.
Yeah. What I'm saying is that we do it. We throw a message for attempted evaluation, but we don't. For replacement.
So if you go up to where you had a percent or even right there, the.
In the N1 that's sitting there.
No, that's an iconize.
Oh, sorry. That. You're right. You're right, sorry.
So, Stephen, if you scroll up to the notebook where you had some actual percent refs, right? So, like that.
That.
With the. Out of eight. Out of eight or out of dot, which is eight.
Try to evaluate that.
Just evaluate it. Shift enter.
What the hell is all that junk?
We workshop together. I think you wrote this. You dictated it to me. So basically it's saying that the evaluation failed because the kernel value is present. Is giving you the option to interpret the linked output cell boxes and use that for evaluation. Or it's saying just, you know, this was the problem. Go to the input cell and reevaluate.
Or go to linked. Why is it repeating this again?
It's enumerating all of the. There only happens to be one in that case, but it's enumerating all of the, you know, the stale percents in that input cell so that you can go through and sort of, you know, evaluate each one.
So if you click on it to go there. Yeah, and now hit shift return.
Okay, listen, graphic design needs work here. This just doesn't look right. I mean, this should all be in a box of some kind, I think.
So it would be helpful to you to see it. If you. If you evaluate the. If you click on where it went to where it took you and evaluate it. Go to where it goes and then evaluate that.
I could tell where it went. I couldn't tell where it went.
Well, it's the thing that's highlighted.
Oh, okay, fine.
Now go back down and you'll see it's filled it out.
Right.
And so now if I don't stump.
Wait, hang on. No, that's.
That thing probably should have gone away.
No, no, no, it's. That's just. That's just kind of failed. That's.
I.
That's a bug. It's Meant to. Oh, how annoying.
It was probably because it was off screen. It didn't regenerate it.
Okay, all right, fine, it's a bug. But should it have left the. This error? What should it have done when it rehydrated?
Yeah, yeah. So we need to see. So if. Scroll down the notebook, because I've got an example. Example setup. Keep scrolling. Go to Kernel. Which one is it in?
Evaluation. I think Kernel.
No input. Yeah, that one. Right, so don't evaluate any of the cells there. Scroll down. Right. Okay. Evaluate the first grid of transpose of blah.
Why did it just highlight this?
Because there's a bug in the highlighting code.
Right.
Okay, so now we can see everything on screen. So if you re. So now if you evaluate the Constant image of blue comma 1 in the reference cell bit. That's one of the linked cells.
So the second input in the previous.
In the previous section. Yeah, previous subsection, even.
Stephen, do you see the constant image?
Sorry, sorry, sorry. I've got distracted by something. Go ahead.
So evaluate the constant image Of Blue comma 1, which is the second input in the reference cell subsection. No, no, up.
I know. I'm just. I'm just using equipment to do it.
Okay, Right, so just to say what's happened here in the actual input cell itself, it's re. Inflated.
Right.
So it's gone blue. And in the table, that entry has removed.
Yep, yep.
So now what happens when we evaluate the range of 10.
Yeah, so now do the range of 10. And I'm really hoping this works, by the way.
That linked cell. It went to the output. It linked to the output.
Yes.
If you had clicked on the.
That's why the things below were.
There.
So those were linked to the input.
Yeah, so. So, so that, that, that, that message where it says, you know, now they've all been re. Inflated. Would you like to evaluate again? That's what.
That.
That's what should have happened right in.
Yeah, I understand. I understand. So listen, graphic design work needs to be done on this. This is not looking right yet.
And by the way, the persistent pill is consistent with what happens when you have a syntax error. The pill is also persistent in that case.
Okay, all right, fine. That sounds fine. But, but, but there's a lot of graphic design work that's needed. Can I replace this without. Do it. I lost this. Can you guys work on the graphic design of that? I mean, do you want input from me? How do we get this back?
Well, the next. Well, the next example.
Okay, then try and reevaluate inner five and you'll get it back.
Okay, Jeremy, we need some work here. I mean, there's many things wrong with this. Okay. So first of all, I strongly think everything here should be boxed. And it's a little weird that it's in a cell as opposed to being an attached cell of that thing. You see what I'm saying? That it's in its own.
You might recall that in an earlier iteration, this started looking like a start life as a message, as a sort of a bespoke message.
Yeah, I don't think message is right. But look, when I've copied that cell, it's pretty weird that I can copy that cell.
You can copy message cells. So it's like a message cell.
Yeah, but this is doing something different. This has got controls linked to a specific input cell. So I kind of get the point that it's weird you can copy it.
I mean, if it could be an attached cell, that would seem to me to be the most sensible thing.
No, it definitely can be an attached cell. It's. It's all right. The same kind of cells. That suggestion cells are so.
Okay, so I would suggest an attached cell. I don't think this should go all the way across the page, for example. And I think this needs design. I mean, this, You know, this needs to be indented somehow or something that needs to be clear.
Okay. Okay. So it shouldn't go all the way across the page, but it should push cells out of the way. The suggestions part goes all the way across the page, even if we don't have suggestions to fill it.
I don't know. That's a graphic design question.
But actually there's a UX point here as well, which is that you are going to be jumping, jumping around the notebook, reevaluating these cells potentially. And it's useful to have a large flag to locate your cells.
All right, fair enough. The whole thing should be pink then.
The fact that there's pink and then.
White is super confusing.
I brought a previous version of this up in a design UX meeting and it was all pink and you didn't like it.
Well, maybe I didn't understand what it was. Jeremy, can you help here? I mean, yeah, sure.
No, it's. I mean, this can get handed design and we can give you some options. It's fine.
Let's do it. I. I don't know whether it should go all the way. I take your point that you need a good target to get back to Noah. That's a fair point. It's really a shame that, you know, this is a general problem of the back button problem when you followed a link somewhere.
Yeah. And this is why I am working on making sure that that back buttons and gestures work on Mac. This already works on other platforms, but Mac and we talked about this a bit before, you know, most Macs don't have a back button on their pointing device. They instead have gesture based back which we've never supported before. But separately we're in the process of implementing it.
So wait, there's a back button on Linux.
If you have a mouse that costs more than $10? Yeah.
Okay, listen, this obviously is a very ugly button as it is right now. I mean this is just not working from a graphic design point of view. But I'm sure we can get it to work. It's not obvious that this should be red bordered like this. It just looks too heavy. I don't know. I don't know what's happening. Yeah, remember we do need something that looks like this, but I don't know whether we want, you know, how. How we want to do that. Maybe if we made them slightly smaller it would help.
Yeah. I can show you a three second mock, but this isn't a can.
Can you email?
Yeah, I could mail you or share.
Why don't you mail it to me?
Yep.
Okay. All right. Well that comes.
Okay, this should be there soon.
Is this word incorrect? It's not obviously wrong. Yeah, I mean this is. This is obviously much better.
Yeah. So it's not. It's super rough and we'll get better but conceptually align between the options. I think that's what Noah was highlighting the first one, but the second it starts to look like that menu a bit and scale down these iconized. They didn't.
Yeah.
I don't see why you can't go just across the page like this. There seems no reason.
Yeah.
Yeah. And maybe if it goes on multiple lines we can indent or something.
Yeah.
Okay, we'll get you a.
How about.
If you want to actually edit the text? I've got it all written out in the section below.
Okay, well I've got a suggestion here. I mean. Retry. Using. There's no point in having a retry button and a retry here. It's basically attempt to reconstruct from outputs. I mean we need to say somewhere here. Okay. I think we should say at the top here. Expressions are not available in this session. Something like that. To reconstruct from outputs in Notebook. That's the first thing.
I'm Chuckling because that's very close to what I had and you told me to make it shorter.
Well, we can maybe deflate some words in a different way.
We have skipped a section.
I. I know, I know. I'm looking because I could. We can generate. Okay. I'm suggesting here. Oh, Christ, I can't type. So we're out of that game.
Steven, Try just creating a new notebook file.
New.
If that works. And then switch back and see if. See if it starts working.
No, you could also just. Just edit the textile that I put there as well if you.
It. I mean, we know they came from an earlier session, don't we?
Yes.
Yeah. I don't know whether you should mention. Colonel. Let's see. Something like attempt to reconstruct. Them from outputs in note. In this notebook. In this notebook. Or from outputs.
Do you want to use the word linked? Because that's what you branded it, linked outputs.
Not really.
Oh, by the way, I just discovered the typing thing is not a bug in the front end. It is a bug in the agenda notebook.
Okay. To reconstruct them from notebook outputs.
It.
I think something like that makes sense. Out assignments from earlier sessions are no longer available. That's in sort of gray. Small type. Attempt to reconstruct.
Yeah, I like it. Do we want the word some out assignments before? Do we want. Or just out assignments? Because it's only some. Because some might be available, some might not.
Why might. How could they possibly be available from a session?
No, because of course, you've in some.
Yeah, because you may have. You may have highlighted, reevaluated some of them already or you, you know, if you have a dollar history length and that were implemented.
Right.
Some might be in scope and some might not.
Be.
So for instance, in that one above, the graphics might be available, but that those lists wouldn't be available. It's a small point. Don't worry about that.
I think stephen page faulted.
I'm sorry, could you. Could you repeat.
So I was wondering about including the word some before the out assignment.
So some out assignments, I don't agree because every out assignment that you see in red here was, you know.
But that's not necessarily the case. Right. In fact, we saw an example earlier where that wasn't the case.
Some are blue, some are red.
I think it helps that they're immediately listed out underneath in the message. Right. So, yes, the sentence could be more accurate, but I think it's probably clear from the. From the context of the whole, you know, message what it means. Maybe. Actually, I'm not convinced.
Sorry. So I, I, I have spaced again and I will have to go soon.
So I like the rewrite. It's good.
All right. Oh, that's a start, at least. Okay. Kernel values only.
Right. So in the example above, all of the linked outputs actually had output cells on the notebook. In other words, they hadn't been suppressed or deleted. Here I think it's the graphics one is suppressed, so we can't interpret the output boxes because they're not there. So this is the message. It just says ghostly interpretation cells for reevaluation, which I guess now would say.
What would it say from earlier sessions? So it just say, go to linked output cells and reevaluate, which is fine. Okay. What else do we need to go over here?
There's actually quite a bit. What's a small piece? No, I mean, yeah, this is where. This is the place to start, I guess. So these are all the different display states. The two links that matter are the links to the input cell because that's the means to actually regenerate the output. And then obviously the link to the kernel value because that's the representation you ideally want to use. Yeah, I guess if you just want to rattle through them quickly. Those are the four possible states.
What is missing cell?
That is if the kernel link is broken and the cell isn't in the notebook. The cell is gone.
Yeah. The output cell has been deleted.
So the input cell has been deleted.
Yes.
You don't have any hope of even regenerating it.
Yeah.
All right, so the in out has been deleted.
Yeah.
Or just the in. So actually the example I put there purposely left the output cell to kind of drive that point home. It's only the input cell.
Why can't you reconstruct from the output cell in this case?
Well, you can, but it's a level.
Of complication that I think just we don't need.
Yeah, I mean, we already have four states and I'm already worried about that. I don't want to generate eight states.
Yeah.
The technology's under the hood there to do it, but yeah, John didn't know anybody.
When you say, well, we can do it.
If you just open a notebook, a new notebook, and you make a percent.
I would assume you can have a tooltip on this that says what it is. I don't think you need to have an error down. Well, I guess if you actually do the evaluation, you need an error. Yes.
Yeah, but that's attempted evaluation.
Okay, so Stephen, right there, incomprehensible message Sorry, say again. That is incomprehensible in my view. I mean, you're saying.
Yeah, I borrowed it from sparse array and I probably shouldn't.
It isn't really. Right.
Yeah.
That is a very specific box structure which says I don't have an interpretation.
So I think it should say.
Yep. Better.
Should it just say it's not available in this notebook?
Available is the word that's bothering me. I just say it's not in this notebook.
I like available.
It's not present in this notebook. Is not. Yeah, I think present does not exist in this notebook. The reference cell does not exist in this notebook.
Sure.
That's fine. It's like it's, it's pointing off into la la land and we don't know where it's going.
Yeah, Right.
Which presumably works if you copy and paste that into a new notebook after, after it's, you know, the kernel has died. So that, that's. And that speaks to its favor.
So, so, so there's actually a specific state for when you. For when you paste into a foreign notebook.
So if you.
So just, just evaluate the one plus one to reinflate that percentage here.
Yep.
Right. Now copy that percent, the one just a couple lines below, open a new notebook and paste it in. Now, the point here is that this. Note, this new notebook is no longer standalone. Right. You can't evaluate this by itself. You can't share it. Yes, technically the link is there because you've got both notebooks open, but we need to.
Oh, yeah, I don't think it should be pink. I think it should be some other color. I think it should be some shade of purple or something that is sort of intermediate between blue and pink.
Yeah, fair enough, fair enough.
Because this isn't an actual error.
Correct. It's. It's, it's a really strong harbinger of one. But yes, I take a point.
So if you, if you evaluate that, that'll give you two, I hope.
Sure.
Yeah.
Right.
Now, what would ha. What would have happened if you had copied it prior to. Or what happens if you quit the kernel now, does it then get into the missing cell?
Yes, it does.
Yeah.
Right.
Which is.
Sorry, sorry, sorry, sorry. It doesn't go into the missing cell. It doesn't go into the missing cell state. It goes into the link broken state. So you'll have to go back into that notebook to trigger the dynamic.
I reevaluate here.
Hang on, I'm confused.
It's.
Yeah, that shouldn't have done that. That should be in the Link broken state. Surely.
What is the. What is the link broken state?
You can't shift em yet. If you could just to take a look. I think that's in the right state if you get there.
No, it really isn't. It really isn't because look, it just threw that message. Right, so if you go to the notebook on the right and just scroll up a bit. A bit more. Sorry, A bit more.
Right.
Kernel. Yes. Input. No, that's what it should look like. Yeah. There with a broken link.
Okay.
But it's got the input. The input exists.
Oh, I'm sorry, you're right. You're right. I'm getting confused. All right, yeah, sorry.
Yes.
Okay. But if you clo. If you were to close this notebook, then would it go into the broken state or does it. Oh, right.
Because then it doesn't have a kernel value and it doesn't have an in out.
So.
Yes, that would go to the Berkeley state.
Okay, I'm going to need to go very soon here, so let me just. Look, we're going to need another one of these. I mean, you need a bunch of fixes here, a bunch of graphic design stuff and then.
Well, I don't know if next week's schedule will allow for another one of these meetings, but we can and try to.
Next week. I mean, this. This week, maybe Thursday, maybe.
I tried to get an entirely different reviews on your schedule for this week and failed.
Yeah, I. I know, because I've got outside things I have to do.
Yeah.
But Thursday there is a chance.
Stephen, I'm sorry, I'm.
I'm.
I'm not in on Thursday.
Okay.
For the whole day. Sorry.
So if it fails next week, which I imagine it might.
No, no, next week I'm around. Except on.
Well, you're around, but there are. Next week is blog writing. Yeah.
Oh, it'll be fine. We'll get it. Okay. Okay. All right. This is all very complicated. It's clearly coming together. There are clearly bugs. I'm concerned about some of the graphic design. I wish it wasn't coming in so close to the end. I really would like to use it. I'm also deeply concerned about the possibility of bugs from this illusion stuff. And I have to say that it would be my preference to make the illusion simpler and just pick up the head or something. In any case, where it gets complicated, I'm really worried about it.
You can do that for this version.
Well, to be clear, you can absolutely be using this. Now, the most notorious.
It's only in the prototype build no, no, no.
That's not right. That's not right. We asked you to use the prototype build because there was a, you know, a failure in the nightly builds last night.
So hopefully by tomorrow, I'll be able to use something reasonable in the general build.
In fact, even, even you can use today's build. I mean, today's build was simply delayed. I am using a. Not prototype.
Well, but, but it, but it doesn't have the, the fix for the, the mouse pointer bug. And Steve is probably going to run into that a lot.
I will run to it and.
Yeah, so we'll say tonight's build.
Okay, sounds good. I'm going to run off. Thank you all very much.
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






