 The T2 Tile project is building an indefinitely scalable computational stack. Follow our progress here on T Tuesday updates. So the big realization last week was that maybe it's not about the tiles individually or the entire grid indefinitely scalably, but about the connection between the tiles and because that's the thing that has to actually deal with the tiles being plugged in or disconnecting or things changing the physics that they're running and so forth and that was kind of a new idea for me and in fact after the last update and after last Tuesday I continued to think about it you know so over the last several weeks now we've gone from this very high-level scripting language this is Perl code you know wherever you see dollar signs in front of everything you know that's Perl code just to figure out what the issues were and then took us to you know C++ code that I was just writing from the Perl script to try to understand how it would work you know just running a program at the command line to do this and that's what we saw last week and that's just can't really see me but what back you know the important point was seeing the tiles and you know so they were running this very simple version and the point was was that you know they were the simulated tiles kept changing what physics they were running and so then we had to negotiate our do we have compatible physics across this intertile connection so that we can allow events to start going in between them and again in the normal scheme of things we expect to mostly have the same physics running on large patches of grid but in general for the indefinitely scalable case we have to be able to deal with the fact that maybe we do maybe we don't maybe we did before and don't now and that's what this code was doing but it also started to confuse me because you know all of this intertile connection code was all part of the MFM T2 engine the thing that's actually running the simulation or is it really a simulation when it's on the tile when it's running the physics on the tile and if that program is going down and coming up and going down and coming up in order to change the physics which is really what you need to do the way the thing is designed you know the ITC's the intertile connector code is going up and down with them and so that didn't seem right I kept trying to figure out how does it make sense and trying to figure out you know okay as we step through the sequence of getting to know you across the tile intertile connection we have things that say well just to the very basis we need packet sync so that we can send packets to each other and that's the base level if we have if we have packet sync we have level zero and at level one we want to know that we've actually gotten a packet talking about the levels that we're at and so forth I thought about it for a couple of days trying to make sense of it trying to simplify it trying to organize it into similar categories you know okay so for the tile for the ITC's and for the MFN the atoms atomic simulation itself we need to coordinate things and we need to compute things means so computation and communication both sides we have to consider at all these different levels and so forth and finally trying to figure it all out the pin dropped in my head totally obvious but of course it's only not until you actually think of it what if we move the compatibility negotiation into the kernel into the Linux kernel instead of having it in MFM T2 the program that's just running at the command line or the program that we're booting into and moving things into the kernel is it's bad for a lot of reasons one because the kernel programming is more tricky and it's more of a pain to debug as we have gone through several times before but the good thing about it is that the kernel runs as long as the tile is functional at all so trying to understand how we could have intertile communications and negotiations saying oh by the way my tile just went crazy and is now doing a completely different laws of physics how could that happen that could happen if the kernel is talking to the kernel on the neighboring tile and there's you know there's reasons for security reasons and so forth where they say you know you shouldn't put too much stuff in the kernel and you try to keep the kernel lean and mean but this is the purpose of these tiles and so that's what I spent this week doing and it was a whole bunch of stuff so now we have the idea of KITC kitsy I don't know kind of makes me think of that that Knight Rider what was the name of the car and that I don't remember anyway this is kernel intertile connection code and so there's a whole new chunk of the intertile connector packet stuff that was already there that was handling getting the packets back and forth between the tiles that's now going to be doing level negotiations saying do you have MFM T2 running what kind of what physics is it can we compare them can we decide if it's compatible and so forth and through the last week I just kept making up to do's and knocking them off starting with you know look at the Linux kernel code because it's unbelievable how fast I forget everything that I've done I mean kind of that's the point of programming is that you don't have to remember it once you program it but if you have to go back and change it then you have to remember it draft the so right yet design the levels and I was trying as hard as I could to make the sort of contact compatible communicate you know something like that that the the intertile negotiation would go on as systematic as I could to avoid complexity and avoid that graph spaghetti of states pointing all over the place trying as much as possible to have that idea of always falling toward the level that you're at and if you have support on this level you stay here otherwise you fall back and so forth and you know it's still happening I'm still making up to do and solving it but we've made a bunch of progress and you know a lot of design try you know so again trying to make it as systematic as possible eventually I actually got it down to you know this xxxxxx these are a summary of what the different levels are supposed to do it's a name does it need a custom code for you know the things that it requires nor to preserve the level does it need custom code for time out blah blah blah all of this stuff that this stuff now gets ground up by the C compiler as part of the kernel module compilation as part of making the kernel module and but and creates a bunch of tables that we can now use if we're in this level we automatically go off to this for this and that for that and so forth and and that's seem you know a bunch of the stuff still needs to be written so for example you know now in the handle KITC packet which is the entry point for getting into the whole level negotiation code we have you know all it does is print out a message handle KITC traffic here now but yeah the point is that code is actually being executed you know there it is here's our tile that we're all the way back to running on a loop back again you know two steps forward two steps back but progress underneath the hood and there it is handle KITC traffic you know okay so that's progress and that's mostly what I've been doing this last week there's two weeks left more or less in November I haven't talked at all about the wall of science stuff this scientific submission I'm working on for the LF 2020 conference what I have been thinking is this I've been doing these t Tuesday updates now for well over a year for 71 weeks in a row sometimes a few a few hours late and this the last several of them have been several hours late just because I ended up you know continuing to develop code because I wanted to show as much as I could so the whole thing got pushed back and it wasn't close to noon mountain time when the time came out really hoping this one will this week but here's the thing I think I'm gonna take a month off of making these updates that's gonna take us until the second week or so in March when it's almost surely going to be the case that the scientific paper will be done and submitted for the a live conference a bunch of other stuff is going to be inbound as well I mean this is really hard for me you know cuz cuz getting into a regular rhythm of doing these things was important for keeping everything moving and for just sort of orienting myself around the week but at the same time the actual you know even though these t Tuesday updates are so simple and so not very produced right they're just me talking live very little editing and so forth except to put the screen grabs in the camera together and all that afterwards by comparison to typical you know maker videos and stuff out there and yet it takes pretty much all of Monday and a much of Monday night to Tuesday morning in the first half of Tuesday and so forth to get each of these things out and more over it keeps me focused on something that I can show you know getting short term results and I have had several cases where I kind of went for you know crappy code in order to get something working so that I could show it and you know it's always a trade-off and you know my normal thing is to be overly concerned with perfection and never ship anything so forcing myself to have something to show week by week has been really important on the other hand I don't really feel like the last several updates have been really very exciting I mean you know from the point of view according to the pilot episode the purpose of the updates was for y'all to help me rather than me to entertain you now you know ha sure but you know it has worked to a degree that way but on the other hand there is this implicit contract that it's supposed to be interesting enough to keep you coming back and I don't know that I've really achieved that in the last few things I mean it's just screens of text and typing out a thing it's the exact same problem every movie about computers has ever had about making it exciting when you're seeing the development process from the outside so I'm gonna take four weeks off I am going to focus on finishing the paper and you know getting as far as I can I mean at this point I don't I feel like you know if I had a month maybe I could make something that would actually look pretty good I could actually get pretty far down the road of getting the kernel module set up and you know maybe make some real significant progress progress on intertile events as well as the paper who knows we'll see this is an experiment it may turn out that my initial feeling that no you got to do it every week is really important or otherwise I will start letting it slide I don't know we'll find out but that's it you know Martin from winter good time the marble machine acts that he's been building this crazy marble machine that makes music for years three years I guess now he's taking a break for the for the whole month of February as well and you know and Luke Wilson the Sam Boyce I guy he's taken February off I started to think yeah maybe I should have taken February off as well it's a strange month so I'm gonna take the rest of it off in the beginning of March we'll see what happens and hopefully taking a break will not be a bad thing it'll be a good thing so I've made my little my little logo oops there it is we can make it yeah okay with you know living in Albuquerque in New Mexico got you know special connection to the TV show so hoping it's gonna be breaking good well we shall see so that's it the next update will be in a month March 10th do you think this is a good idea who knows we'll find out but thanks to everybody who's come to watch them so far and I hope to see you in a month