 The T2 Tile project is building an indefinitely scalable computational stack. Follow our progress here on T Tuesday updates. Hey folks, what did you think? I can't stop watching that. I think that's the closest approach, at least lately, that gets both the flavor of living and the flavor of computation right together. Okay, so here we go. The top story is this time. Let's get in here. Oh yeah, so Strider is working on the T2 Tiles, trying to update some of the internal software, the graphic stuff to a more recent thing, and he's blown out the incredibly tiny little internal disk that it's got. So he's got a video up of actually opening up the T2 Tile to get at the slot to put in a new SD card. So that's up. I'll have a link to it in the description below. Last week, two weeks ago, the previous update progress in plate tectonics has not done very well. I mean, it's seven out of the last 10 T Tuesday update videos. Now, in the grand scheme of things, in a sense, I really don't care because all 10 of them are between like 120 and 220 for this amount of time out for like two weeks out. So the people who know, the few, the proud people that are getting it, this is actually getting pretty exciting. And what we just saw at the opener would make a whole lot more sense if you had seen what was going on in plate tectonics. Now, of course, part of the problem with that is that still, I cannot make good titles and I cannot make good thumbnails. You know, I keep thinking, I can't help it, that people will be interested in the same things I'm interested in. And, you know, I have a real challenge, you know, going to the audience. And that is what it is. But this, what we have this week, both that opening thing and what's coming up is the entirely building on the plate tectonics stuff. Now, of course, the other problem with the plate tectonics one. So there was a half hour video that scares everybody off. So I'm going to really try to keep this shorter. Even though I want to do a live demo, we'll see how it goes. On the other hand, the second lecture in the Hyperspace Academy series passed the number of the beast after only three weeks. And now it's up to 700 odd views, which isn't bad for the Dave Ackley channel. I mean, of course, it's been a month. Two out of seven, it's beaten only by the flat in the curve, the coronavirus, the COVID-19-ish simulation from last year. So that's pretty good. Also, oh, yeah, and of course, as we all know, anybody who's using YouTube at all and you must be using YouTube if you're here at the moment, they are bombarding the entire universe of non-monetized channels with ads. I've got ads all over my videos. And, you know, so a month ago, contemplation suggested, you know, monetize a channel and donate the proceeds to the Living Computation Foundation. Which seems like a good idea. I am not that close on the Dave Ackley channel. I've got way more subscribers than I need. I've got four times as many subscribers as I need, but I need twice as many public watch hours just in the last year. So unless we can get 2,000 more people to take a look at the We Are Coders video and actually watch the whole thing, I don't think we're going to make it. It is what it is. Well, one last thing about YouTube. I've checked this a bunch of times now and the Demon Horde Sword video, as far as I can tell, never gets ads. Why? I bet you 100 bucks, the word demon. You know, in the grand scheme of things, I keep not being sure whether I should want to have ads on it because, you know, that puts me, it gives me more shared fate with YouTube. If they're making money off of my videos, it would be in their interest to push them a little harder, you know. They claim they don't really do that. Ha, you know, so that's the top stories. The goal from last week was to use these plates that we have the plate tectonics to do some kind of computing. And I worked on that quite a bit. And partly what we saw at the opener was related to that. But there's a fundamental issue that comes up first. And that is so, you know, when I show a video like that, which is time lapse, or you see something like this, where it was just this is before I had the plates that give me the ability for the outer plate to pop when it reaches a certain size and release the inside to grow, which is what made the opening video so much fun. But with this one, just growing a single plate, you know, it gets bigger and it gets subplates. And eventually there's gets grandchildren plates inside it. And, you know, it just keeps going. But, you know, the reality of this is, you know, if in the simulator, if you look in these, you know, gobbledygook numbers up here, you know, move, feast machine 505, that's the version of the software. This number here, this is a timestamp, 2001, May 21st at 1 a.m. So this, what we just watched went from what did it do? It went from May 14th to May 21st, something like that, just to inflate that one box. And fundamentally, as I said in last week's video, last week's last last update, by making the clock, making the synchronization go between the root and the max back and forth, that automatically adjusts for the tiles that once, that as the plates get bigger. But on the other hand, it means they can't do anything else until that clock ticks. So we see something like this, where we've got, you know, all of these yellow sites here and then all these, these are sites that are waiting for a tick and these are the sites that are waiting for a talk. At the moment, I think the yellow is overtaking the brown, heading back up into the upper left corner, not sure. But the main point of it is, is that any event that happens to land in the middle of these yellow fields is just wasted. It does a bunch of work and looks around and says, no, nothing I can do. The only people that can actually do any work, the only beings are the ones that are along the interface, between the yellow and the brown, or between the lighter blue and the darker blue, or between the black and white or the other ones like that. And the bigger you get, I mean, so these plates are growing quadratically. They're two-dimensional, length times width. These have hundreds, this says over, you know, 1500 sites or something in this thing now. I mean, we can actually check 1900, 1918 sites in this thing. And by far and away, most of them are just sitting there blocking. They're just saying, no, I can't do anything. I can't do anything. And events that happen to hit those sites are effectively wasted. Now, that is, on the one hand, exactly the price of doing larger scale synchronization. If you think of what your RAM, what your memory is doing in your computer, the entire zillions of gigabytes are all just sitting there doing nothing. Saying, I'm a one, I'm a one, I'm a zero, I'm a zero. Until that, hello, an amazing day when the CPU comes and fetches them or changes them like that. So it's not an unusual thing to do. But this architecture is so general that, you know, it's throwing events all over the place. And those are significant, those have a fair amount of cost to them. So when we have a sort of low, here comes the word, I hate to say it, if we have a low event efficiency, then eventually this is going to start to hurt a lot. And that's what I've been facing. So, you know, that was five days to get to that thing. And, you know, this is the irony, right? So the whole title of the chapter in the last update was it's not about speed. Well, you know, it's not about speed until it is about speed, which brings us to the computing team creed. I haven't mentioned this lately. It's on the back of every T2 tile. The creed is very simple. First, be robust, then as correct as possible. And then finally, as efficient as necessary. And the question is, are we arriving at an efficiency as necessary situation? It makes a lot of sense from a program design point of view to hog all the space that you want to do. I mean, I talked two updates ago about how we're deliberately trying to initiate a space war. Have, you know, everybody trying to grab the space that they can to do what they're going to do and butt up against their neighbors. Have good fences and all that. But if they're doing that, then at some point they're going to be a tremendous, tremendous waste of event efficiency is going to go way down. And yes, it makes those sites extremely robust. If something goes wrong with them, then they will discover it very quickly. But on the other hand, I had a similar, you know, so the video we saw at the beginning, that's running in the simulator, MFMS. I have a version that's been running on the tiles. It's been running for two days, two and a half days now. And it hasn't even gotten to the first pop like that. It hasn't gotten off of one tile. It's incredibly, incredibly slow. And even if the goal of this whole project is to say, yeah, yeah, yeah, that's OK. If we can figure out what kind of computation we really want and demonstrate it, no matter how slow, then if all we can say is all we need now is to speed this up, then we're in a great position because we're really good at speeding things up. And to me, the harder question is what do we want to speed up? And the entire history of computing that we've seen so far is essentially this symphony of premature optimization. CPU and RAM was the wrong thing to optimize. It was great for the first two years, but we've done it for 80 years. That's my high horse. On the other hand, if it takes two days to find one bug, then we're going to be facing Zeno's Paradox trying to figure out what we want. We will not get to the point where we can say this is a thing worth speeding up because the development task will be so slow. So I have a two-pronged approach to this. Number one, well, three, I guess. So number one is, you know, part of it is just fundamental that if you don't want to have incredibly big plates taking incredibly long to cycle, don't have incredibly big plates. Pop them, figure out how to have smaller plates that can operate more in parallel and do some sort of message passing between them or whatever. Second, you know, if we there last time just trying to get the plate tectonics working in general, I always am trying to keep the code clean and get as much generality and flexibility as I can and not worry about speed. But there's a bunch of simple things, maybe that could be done that would sacrifice some robustness that maybe we could afford to sacrifice and we can look into some of those. And then finally, there's the question of is it worth thinking about doing something structural to help out the engine for example, if there was a way that a site, an Adam and a site, we could ask it, you know, or do you want to, I would give it an event. And instead of just saying I'm done, it would say I'm done and don't need to call me again until something in my event window changes, something like that. Now, that makes it more fragile, but it would allow the surrounding engine if it's in the style of MFMS and the T2 tiles. But this wouldn't be true in, say, a graphics process or GPU, something like that, to remove it and not throw events at it until the neighboring some change came in nearby and then it would wake all of them up and so forth. Engines that do traditional deterministic accelerators, how am I like Conway's Game of Life, use these kind of tricks all the time. We'll see, I'm not sure. But I want to explore some of the other routes first. And now in particular, the goal this week was the goal for this update was to get the plates computing something. And what I ended up deciding to do is make a stack. Now, a stack has an awful lot of meanings. And, you know, so, you know, people talk about full stack developer, you know, what is full stack person who can do both client server software? You know, well, that's one sense of stack, popular stacks, Linux and Apache, Limp, mean, you know, a whole bunch of software of lower level stuff and higher level stuff. And that's a stack. Now, when I use the term that the T2 tile project is about building a whole new stack, I'm going a little bit farther than just web development. This is heading in the direction of the Carl Sagan quote. If you wish to make an apple pie from scratch, you must invent the universe where from scratch means I want to do the whole stack. I don't want to take Linux for granted. I don't want to take x86 for granted. I don't want to take silicon logic for granted. I don't want to take the earth for granted and so forth. If you want to make it from scratch. So obviously you cut off some place. So when I say we're making a whole new stack, I'm saying starting it silicon logic, the stuff that we know how to manufacture. But that's the level of some more whole stack that we're trying to do in the T2 tile project, which means that basic things like stacks by the other meaning, we need to reinvent them as well. And so in computer science and traditional computer science, a stack is a data type. It's a it's a structure that you can push things. You can push stuff onto like a stack of plates where you can oh, you put plates on the top and you can take them off. You can push plates on top and you can pop them off. It's very useful for lots of things. So here's the operations. You know, we've got one on the stack. We push two and then we push three, four, five and we've got them on. And once we start popping them off, the last one that we pop pushed on is the first one that comes off last in first out, push and pop stack, very basic operation. Now among many other things, it can be used for function calling and programming languages and so forth. So a very useful thing to have when you decide to make a stack, you give it a certain amount of space. And what happens if you try to push more things in it than you can do it? Well, something crashes, something doesn't work. Exactly what it is depends on the circumstances. So that's the stack that I wanted to compute with plates this time. All right, so let's do a demo. All right, so here we've got MFMS running. I've got a seed test stack. I'm just going to run this a little bit. This is a seed that when we put it out there, it decays into the beginning of a stack called S5. And there it is. So the stack just grew itself. How do we know it's a stack? Well, we don't really, but we can do operations on it. Like we take a push at them. And if we drop a push at them here, it creates and it put an item into a stack. How do we know it's an item? Because it's a color, each thing that we push on the stack in this demo just has a random color and we push another one, it moves down. It's like it's got us, it's spring loaded and we can push in like that. It's kind of cool. Let's get rid of these labels actually. All right. And we have pop operations as well. We can take the top thing off and we can push and pop. Okay. So what I like about this is that it's very physical, right? In a traditional computer science CPU and RAM model, the top of the stack isn't in the same place. It's just an address that moves around up and down. Whereas here it's very much like a spring loaded thing and you're always pushing plates on and off of the same location right here at the left end. And we can even do things that are often a little harder. Whereas GS, we can do a grow operation. And now our stack is bigger. So that's using the plate tectonics from last week. This is a slightly variant of it where if you look. There, that flowing over and flowing back. That's the distributed clock, the tic-tac, but it's only going on the border. So in fact, we can actually do stack operations while, if I could, did I do it? I think I did. All right. So we pop the stack until it's empty or we can push and look at this. So they automatically spread out like they're spring loaded, but if we hit the bottom, they just start piling up. And once we get it absolutely completely full, we can't pop. We can't push anymore. It just fails. So our little operator just keeps trying to do it. If we pop instead, we can do it. Now we actually, where is it? Stack operator. Okay. We can, I've got a guy, the stack operator that just issues random pushes and pops to the stack. And it's kind of fun to watch. And every so often it'll issue a grow operation to make the stack bigger as well. So this is a very basic, very simple element of a larger computational thing. We could make maybe, well, all kinds of things you could do with stacks. But I felt okay about this because, you know, at first I was thinking, well, if I'm going to compute something, I should compute two plus two equals four or I should print out a low world. I should prove the generality of the framework. And that just ended up, kept feeling wrong, kept feeling like it's not what I wanted to do. And then it was much more like, no, actually what I want to do is build more complex, more capable virtual machines on top of the simple, simple machine. And, you know, eventually if we had it, if we took, made two of these stacks and had an operator in between them that could push back and forth between them, we could use that as a basis for programming. And we'll look into that maybe, we'll see. But this is very nice. This is, look at it. It's so obviously a stack. And it doesn't seem to be really growing very much, or we could grow it our own. And I wiped out my little stack operator. At least it cleaned up after itself because, see, here's the trick. The stack operator, I put it up here. I could also put it here or here like that, and it can also operate. But it has to be able to reach in to these two sites because it may need to pop from as deep as here. And it also needs to reach the root because that's where it sends commands to do growth. So there's some generality here, here, here, and here are the sites where we can plant a stack operator. In fact, we can even plant more than one if we want to have sort of a parallel operations and they'll just compete with who gets to push and pop next, it'd be up to them to synchronize it, and so forth. So a basic, basic, basic stack in the traditional computing sense of a push down stack. All right. And this was an example. Here are the four locations where a stack operator can go. This one cannot go here because although it can reach the pop range, one, two, three, four, it can't actually reach the origin. One, two, three, four, five. It doesn't make it. You can only go four squares, Manhattan distance from where you're at. All right. So that's it for now. Um, the next update is the 100th T Tuesday update. My goal is twofold. Number one, take care of living computation foundation business. I've been shameful about it. I haven't sent out, sent out a living computation foundation nerd numbers to new donors. I will do that. There's a bunch of work that's been pending that Andrew had been helping me with and then I dropped the ball on getting the website better. I'm going to push that through and so forth, take care of business for the foundation next time and make a full T two tile project review and prospectus. That's the goal for two weeks from now for the 150, the club of 150 who come, thank you for coming to check out these videos. I hope things are going all right with you. Let's see in two weeks.