 Computers keep changing the world, but their power and safety is limited by their rigid design. The T2 tile project works for bigger and safer computing using living systems principles. Follow our progress here on T Tuesday updates. This is the 38th T Tuesday update. Let's get into it. There's two weeks until the episode 40 goal of having a ring lotus that's a hundred and thirty three of these tiles assembled, built together, put on a wall, and talking software between each other to be able to benchmark them. I don't think we're actually going to make it exactly. I mean the software is taking a long time. I'll talk about that a little bit today, but there's still a bunch of actual just you know mechanical assembling and testing and software burning software loads into a lot of these tiles that's going to take a ton of time. So I'm kind of in my mind I've moved to a revised goal of being ready to benchmark if we had all the tiles assembled by episode 40. That's in only two weeks. I don't know if we're going to make that. This past week to the degree that I've been on task it's been about the Linus kernel module. I'm going to talk a little bit about that and the goal today is to actually demo inter MFM communication in any form at all. We're far from being able to actually run the movable feast engine across tiles, but we do have a little bit of progress and hopefully make a demo work. I posted the inter MFM T2 cache updates as a goal for the last two weeks. I am going to do it one more time and we'll hope to actually get it this time. Okay let's go to the news. Oh yeah so a month or so ago now we went to, oops there we are, we went to Vienna to this Pioneer's 19 exposition entrepreneur trade show sort of thing. I gave a talk. The video for that talk is now up on the Pioneer's website. I'll include a link here and either in the information below or in one of these card things if I can do it. I don't know what it is but so that's up so you can see how well it went. It was not my best outing but it wasn't my worst outing either and it was at least different. I was talking to a different kind of crowd so it was a multiple camera shoot and all that I have access to is the cut version that they put up which is pretty well done although it's not originally what we had discussed. I had discussed with the organizers of the show but it was quite the thing and you know at the end there were questions and so on so that was up and at least it's quick it's only about 15-17 minutes something like that. So in addition I got an email this past week from a guy named David Broderick inviting me to the Slack discussion group for the Future of Coding which is some sort of podcast and organization and variety of things started by a fellow named Steve Krause who I don't know but he had found one of the videos on the Future of Programming and thought it was interesting and invited me over so I said okay I went over I accepted the invitation I invited introduced myself with my little super quick history of computing and they had already had this discussion. Kartik Agaram sent me email a while ago he seems to be interested and it's following along through it and they had had a discussion about the robust first programming in Ulam so I chipped in a few comments about that and so forth it seems like there's a nice bunch of people over there that you know at least a subset of them are open enough or even looking for stuff a little bit beyond just the sort of programming language du jour and so forth so that was interesting so perhaps that's another front if any of you folks have found these videos welcome thanks to David Broderick for the invitation oh yeah so last week I was talking about how wonderful open source was well I was trying to give a nuanced approach this is a little bit more of a nuance this is not to be too nerdy I want to say a very high level but just to make one kind of point about open source that affects programming without having folks to actually need to be programmers in order to get the problem so this is a documentation page for a function that you use inside the Linux kernel it's called k-fifo peak lend k-fifost k stands for kernel the kernel code is lousy with k's all over the place FIFO first in first out it's like getting online whoever's at the front goes off you come in at the back you use this for all sorts of things in programming I am using it within the packet communications code to buffer stuff as it moves from user space into the kernel and from kernel to the outs external co processors that are actually squeezing the bits between the terminals between the tiles and so forth this is the entire documentation of the function k-fifo peak lend gets the size of the next file record see I needed to do this for reasons that aren't worth going into but it was sort of a standoff one guy wants you to give him the packet that he's going to send even though he might not be able to do it the other one wants you to take it out of the FIFO before you decide whether you can actually use it but you can't stuff it back in if you take it out and didn't want it so the idea was well let's look ahead see if there's something there and then we can deal with trying to send it without actually taking off the FIFO until the send succeeds so that's what led into this and this probably cost me half a week all by itself function return to size the next FIFO record in number of bytes makes perfect sense if that information you see this is in open source they say you know if the defect you should use the source there is use the source if the documentation isn't good enough and it often isn't because documentation good documentation incredibly hard and quite expensive to do well as we can see from the MFM the Ulam and the splat documentation which is terrible and I feel so sorry and sorry everybody who's trying to use MFM Ulam and splat despite the incredibly horrible documentation thank you so much here's me getting my comeuppance but in open source they say use the source so you go to the source for this function and you find this now to a non programmer this might look like any other program it's you know whatever it's gobbledygook but this is supposed to be ccode it's a macro it's an incredibly twisted macro and you know even understand it uses all this kind of special extensions that are not part of standard c and so on and so forth figuring out what this does is really non trivial and then this part up here oh hey that looks familiar because it gets the size that's the exact same documentation those three lines of text were what got formatted up and saying here's your documentation so you can chase on through it so you see it works off what you if you work all the way down through this you end up calling a function called underscore underscore k50lan r okay great you go there which calls k underscore k50peak and also which goes there which does this completely baffling subtracting from the good size and so forth now it's possible to figure all this out but it's really non trivial and it's not an easy google I didn't find I really didn't find much of anything um eventually I figured out the key piece of information after after getting completely baffling behavior and and so here I am this is my code where I was using it k50peaklan look ahead at the next thing to see what the packet length is and if it's zero the and if it's not then go ahead and peek at the packet so you know if if we get a non zero from packet lend we should figure that we can then go ahead and peek at the next packet and get something oh no because unbeknownst to anybody that I'm aware of you you're not allowed to call k50peaklan unless you've already called k50lan not to be confused first and if it returns zero then there's nothing to look at there's no reason to look for the length of the next packet if the length of the 50 is zero that's what I was missing so k50peaklan was perfectly happy to return things that made no sense and then not have anything there to do it so that was part of what cost me a lot of time the other part of cost me a lot of time is uh a lot more terrifying and that I believe we are having some intermittent connection problems on some of the itc's connecting from one to the other and it seemed completely baffling that things would work when they were connected directly with itc connectors uh you know these guys uh but then when I would connect it with a ribbon cable a loop back with one of these guys um all of a sudden it would not work and as far as I can tell the code that I've got the linux chronological for moving the packets in and separating them into two streams that's the thing that we had now that's new now the common data manager is now using the bulk channel that only gets considered if the priority channel which is the mfm channel of all of its buffers are completely empty so the idea is is that the intertile cache updates which is the thing that we want to have as low latency as possible we want to be able to send a message not very big it's not about bandwidth it's about latency and low round trip costs uh to get it out and get it back so that we can tell whether we're finished with an update that now seems to be working except modular this hardware problem that I don't necessarily understand and it might be an illusion I don't know so that's what's been going on that's the news all of that said we did finally make a certain amount of progress so let's try this I really don't know if this is going to work but so here we are uh we've got uh this is the thing that we kind of glued to the acrylic which you know is is really disgusting in a mess but it is still apparently holding and it isn't bad you can you can pull tiles out and stick them back in and so forth I'm really afraid that uh going in and out with the intertile connectors is aging it's flexing the circuit boards the PCBs at the bottom and eventually because some of the one of the buffer chips is fairly close to one of these intertile connectors and I if you flex the board a little bit I don't see why you might not end up cracking a solder joint so that may be happening we may have some intermittent stuff we don't know when we go to assemble and test these things at scale we're going to have to be watching out for that all right these guys here's the new trick let's see if it works all right this is Dave from the future uh I've tried twice to record this dam update and it really seems like my little knockoff action cam that I used to record down looking stuff on the on the grid is dead or needs to be reformatted or something because I have lost my demos twice in a row now so I don't have time to shoot the whole thing again so I'm just going to try to do the the demo part and if it works I'll take this whole thing and I'll stick it in where the demo was supposed to have been okay so all right so now we're going to try recording it with the with the cell phone and it looks okay it looks like it's recording of course the other guy looked like he was recording too so the idea is inter tile mfm communication and step number one is we actually have touch screens on all these things I never admitted it before because the touchscreen calibration was all completely messed up you move the stylus up and down and the mouse goes down and up but I finally this week managed to fix that with a newer version of a software package that had not previously been compatible blah blah blah blah but now it seems it is and so forth so I'm going to go how much do I dare do here I'm going to go straight to the the payoff shot so we can cancel we can get out of this reset means reset well what the heck we'll try it so reset means start the reload the mfz file to start over the simulation from whatever passes and that works but that's not very impressive because it's all just happening on this local tile so now we'll try the thing that works sometimes and not a lot of times because there's definitely bugs in this stuff we're going to say grid modifier and then reset it pretty cool so what happens there is it makes up a little broadcast packet with flash traffic saying some mfm event like reset the grid for example and it has some kind of time to live a number of hops from tile to tile to tile that it's willing to go every time a guy receives it he decrements the count if the in addition there's a command number inside it that counts up and then wraps around and in fact command number is bigger considering wrap around than anything it had seen before then it executes the command and broadcasts it to everybody else with the time to live decremented by one so in fact the flash traffic reset command was circulating all through these guys and bouncing around and coming all the way back to the guy that started it for example but he knew that he had already seen it so he was not rebroadcasting it actually it might or might not have come all the way back here once people realize that they have seen it actually might that might be part of the bug deal with it another time in any event this is what I wanted to show you let's let's try exactly what we'll have ready for the 40th episode I still think there's a chance I mean I would like to say MFM running between tiles the actual distributed movable feast machine running between tiles would be a good thing to hope for I mean so lost a few days this past week because we're went to Florida for the funeral of Elena's mom which was you know it was sort of a nice thing she was she was 96 years old and somewhere I had heard this thing this Chinese custom that you know any funeral if you're over 80s actually a celebration rather than morning and this didn't play as a celebration but it sort of felt a little bit that way and and Elena's mom Louise she was a math teacher high school math teacher for decades and she was a she was a tough woman she was a block assault that you know didn't really take much of anything from anybody but she cared about math she cared about what was right and I was happy to take the time off to go to her her service and so forth and meet with friends and if the price is well the demo didn't work okay the demo didn't work the next t Tuesday update will be out hopefully at noon we've had a lot of trouble hitting noon lately and this one may get in trouble too I apologize and hopefully I'll be able to somehow move my own anchor about half a day or at least four or five hours earlier into the cycle so that we'll be able to actually get it to work it's getting there it's getting closer thanks for watching