hi ori. So today I would like to talk with you over the your kind of history with plan nine, the Plan 9 community and how this is kind of formed around your life and how your experiences with the community have affected you your programming and just in general, the effect it's had upon you as a person. Do you want to start telling a little bit about yourself? Sure. So my name? Sorry. I've being touching computers for a living for a long time. Actually, not that long compared to a lot of people in this community, uh, so probably have bean programming for about half my life, which means about 15 years. At this point, I kind of have been exploring things for ages. And, you know, when I was probably in my late teens, I was messing around with Lennox and then eventually UNIX and came across Plan 9. Started playing with it. Uh, like I liked it and kind of stuck around on enough as big things I was doing were practical or not on plan, name and probably around 2018, enough stuff became practical with nine front and code that I wrote and whatever else that today, it's probably the system. I end up spending the most time on nice. Uh, yeah, yeah. Um, that's nice. Eso use it more now than you did before. Yes. Yeah. So do you think is there anything in particular with that that you think influenced your ability to make that transition? Was there any breaking point specifically, or has it just been kind of the trend of, like, community mass and production? Moving forward? Really? The big thing that kind of allowed me to make the transition was sent up finally writing a usable ssh client. Yeah, with that, there were a lot of tools to actually kind of glued together UNIX when I needed it. Like when I was doing android development. And I actually needed to run the compiler, for example. Uh huh. Right. Or being able to actually just copy stuff and yeah, basically, just interfacing with all the parts that didn't and still don't often run on my night. Right. Andi, do you think this is just like the new ssh client? Do you use the SS HFS a lot. I know. In the grand scheme of things, that's kind of a recent addition by the nine front folks. Yeah, that's definitely useful. Yeah, yeah, yeah. I mean, basically, I could talk about my set up. I'm sure that you'll that'll come up later to weigh. Could go. We could go over that in a robust detail for sure. So I guess a little background, then. Still, how did you kind of first hear about plan nine? It's okay if this wasn't, like, a singular experience, but maybe what was your first, like exposure even before you had interacted with it? Maybe e don't remember. That's okay. That's okay. E mean, you know, I could give you a date, which would probably be around 2000 six or so when I was really just diving into when I had finally gotten off of the windows environment. You know, everyone grew up on, of course, uh, and kind of was exploring and learning how to program. And so, basically, you know, I was reading about everything that I could, uh, I'm pretty sure I came across time nine then. And at one point I ended up trying it on a machine and, you know, played with it. A couple of years later, I Actually, there is one big part of the plan nine history. That or my history with plan nine that I think I forgot to mention which definitely, uh, had an influence in Was it either 2000 or 2009? I got the chance to do an internship at Bell Labs working on it. Oh, yeah. So that was I could be honest. I was a shitty intern. I think that's like a pretty standard experience for, like, interns, Especially somewhere like Bell Labs. That's kind of like a big place toe have, like, an internship, especially. Yeah. I mean, so much. So, so much talent. Yeah, but basically, I mean, at that point, it was already clear that Bell Labs was kind of thinking, uh, at the same time, You know, the Titanic. Maybe going down. But the band was still playing some nice music, right? Of course. Of course. Well, if you don't mind talking about it, then there any, like, people of interest that made from a historical perspective. Did you right? I think it was. J off was there for a long time. Yeah. Geoff. Geoff. Sorry. So Jeff was around Jim McKee. Dennis was still kind of hanging out. And he wasn't. He was Still he was officially retired, but he showed up occasionally. Sure. Actually, there was a whole bunch of a long night that would show up on Fridays for cookies. Oh, cute. So, uh, ho would be around every now and then. Three guy who wrote the Dragon Book? Oh, yeah. There were a few cryptographers forgetting their names. Okay, but yeah, there were definitely a bunch of interesting people on and not just doing plan nine. Um, who else? Yeah. John Hobby. Who had a bunch of interesting graphics papers? Yeah. I don't know. There was a lot to learn. E just really wish that the the time my work habits had been a lot better. That's okay. I think it's a It's a lot to ask of interns. In a lot of cases like that, it's, uh I doubt anyone would ever blame you. I think most people would probably be the same. Yeah, yeah. Eso So were you working directly on plan nine? Then? It was just adjacent. Or, you know, I was directly on plan nine. Jeff was my manager, sir. Sure. Wow. And Jeff was the last to leave, I think from the labs. Two of the nine? Yeah, probably. Yeah. That sounds about right. Interesting. And you really been, I guess, trying tow line all the dates up. Had you had, like, much experience with nine beforehand or just kind of a vague knowledge of what it waas. I had bean running it and trying to do some stuff with it. But it wasn't like I was experienced or really knew my way around the system at the time. That's fair. That's fair. It's testing Nice. So you kind of got exposed to the labs culture early on. Yeah, And that's probably had a really big influence on how to how I approach writing code, If you don't mind. How do you think you'd articulate that? Like Do do you think that it's just the way that the labs folks went about writing code or like, kind of a philosophical thing? Practical nine or otherwise, I suppose. Uh huh. I'd have to think about that. That's OK, E mean, there's definitely like picking up the style and approach to factoring problems I think is a big part of it. So it wasn't like there is an explicit philosophy that got stated right? Definitely. But there was. But you know, there you could look at the code that someone that is in Plan 9 versus Say, open BSD versus Google versus whatever else And there's always kind of a style to it on. And it's not actually one of my pet peeves. People keep on talking about code styles, though it's just indentation. And no, there's really just yeah, there is. There are different ways that the code actually get structured at different places and, yeah, interesting. Yeah, eso then moving on Ah, little bit, What would you say? Like, what was the first maybe really significant program you think you wrote for plan nine that, like, if something sticks in your head that, like, maybe it was the first complete, like utility put together something for entertainment where it was, you felt that it was maybe like a cohesive piece. And maybe this is a me projecting a bit because I think when I first learned about, like, a language or a system, I can I I try. I try a lot of things initially and they don't work so well. Even with nine. I had to get hand held a little bit by folks like mischief Thio get bio to working for me. And I can remember that being like a really big hiccup just for me, even though it sounds trivial in retrospect, do you have maybe a first, like, kind of ah ha or cohesive piece of satisfaction that you saw come out? Uh, that is a good question. So there were definitely a whole bunch of small programs. I've durkin little utilities trying to fix bugs, but also, but I think the first, like, major, I have got something finished, and it's kind of significant was probably porting, uh, my programming language Merdon over to plan nine. And that was done using apes, so I don't know how. I don't know how much to apply. Nine. You would count that, but it was just for the compiler, right? And then, you know, you have to make that actually generate Plan 9 assembly in the compiler And then because of the way that I was designing it, designing the language and the run time, it doesn't depend on Lipsey, which means that I had to kind of come up with a way of We'll come up with the abstractions and the standard library design and the system call layer and so on and make it all work both on Plan 9 and UNIX and kind of have the appropriate portability, the appropriate approach to portability. Right? So that was definitely a learning experience. I can imagine. You know, I think Merdon if I'm saying it right, it was probably like one of the first non C languages I touched on plan nine, because you Well, you probably ported that just around when I started, like writing, like any software, it all on plan nine in any sizable amount past going to be a little observer. And I really appreciate that. I e think margins are very interesting language. What? Eso obviously is very challenging game to go into platforms. Just how different was it trying to get it to run on planet because Plan Nine uses like a day out as like a binary format. I don't know how to give effect that has, um, your challenges and there's so many things in nine that just don't exist that would exist in, like UNIX. Is that Did you find that you had like constrain a lot of things, Or was it a big, constricting effect trying to get it to work on nine? Or did it fall together a little easier than you expected? So it wasn't so I poured it early enough that the hard things were done after I had planned in support. Okay, which makes it a lot easier, because that meant that the libraries could be designed to work in both places at once. A supposed to kind of trying to shoehorn in, say, pull and select, which don't exist on the native Plant nine and are committed by design, right? Of course. Of course. Right. So to go, Well, I have this code and it doesn't really fit, You know, if I can actually design things, too, so that everything does fit. Thune. Typically, it's actually being a lot easier to make things work on Plan 93 unique side of things, right? For example, I P v six was always a actually, I recently got a patch from user, but until very recently, I P v six was definitely wonky and ridden on UNIX. There was some bugs around parsing I P V six addresses into something that would work for a socket because socket the socket a p I is basically based around designed in buffer overflows. Hey, we've got this type that's a little too small, but based on the but we switch on the bite in the header that tells us what type it actually is. Uh, yeah, separate rant. But on plan nine, because of the way that the connection server interacts with everything else, mhm just worked. And the same goes for things like graphics. Lip draw is, ah, lot smaller than are not live draw but the dry p I is a lot smaller and cleaner and easier to implement the next 11 e believe that I have both working well, text still isn't working on x 11 because text is hard on next 11, right text Easy on plan nine. You'd say proportionally then proportionately. Yeah, there are a bunch of things that Plan 9 doesn't do with text. That would be kind of nice. Mm, right to left. Mm. But there's definitely a lot less effort in getting something working right that makes sense. And just we my backtracking a little bit here because people that listen may not be familiar. Ape is Thea ans ans IPAs ICS environment for plan nine that allows you to build kind of unique see things on plan nine without fully rewriting them in the standard library for plan nine. And then you had mentioned that things we don't have, like selecting poll. How? I guess if you had to kind of summarize the structure there that exists in UNIX but doesn't exist in plan nine. Do you maybe have a concise way of summarizing that? Or a structure? What select does that plan nine maybe has an equivalency or deliberate absence for? Because we had mentioned that they were explicitly omitted by Yeah. So it may be, uh, what plan nine chooses instead, or how how it avoids having to make that choice in the first place? Yeah, sure. So for plan nine, if you want to do things in parallel, just do things in parallel grab, create a new thread. And for UNIX, there is this idea of, you know, having file descriptors, tell you when they're ready so that you can do an i o on them and hopefully it doesn't block. Uh, so it's just a different way of structuring your program to do things in parallel. And in some sense it does cost a little bit of performance on Plan 9, and it causes some awkwardness around lib thread, which is a downside. Um, specifically, if you want to do not. If you want to do blocking Io in lip thread program, you'll probably want to use an IOP rock, which is basically a process that will do the reads and writes in the background for you. But it's not transparent, and it's not. And if you happen to be calling into a C library that just calls reading, right, it's gonna block eso. There are some downsides. The Plan 9 decisions and I feel like I'm sorry. I have so e on. I think we're good. Excellent. Excellent. Yeah. Yeah. So I was just going to say live thread has a bunch of nice ideas, but there are a bunch of things that I wish that we could figure out how to solve. Like being able to do blocking rates, right, Onda the judging by the figure out how to solve, I'm guessing. And to be fair, I don't know that much about how these sorts of systems are designed under the hood. I'm going to go on a limb here and guess that that is a non trivial problem to solve from a planning perspective. Correct. Middle probably involve changing the system calls. Or at the minimum, it would involve some hacks overriding overriding the read and write signal, not signals. Read and write functions in Lipsey so that you could transparently handed off to a separate process on. Then you got synchronization over headed. It may or may not end up being a good idea. Did you find out that and maybe with Meriden and perhaps in other places, do you feel how How do you feel about, like Plan 9 asynchronous model in general, though, because it is very I I know a lot of people like to cite him myself included the CSP communicating sequential processes elements in it. There is, like all statements, but they're not nearly clean in the sea. There is, you might say, they are in, like even new squeak or limbo or go. Do you use those very often? Do you write more kind of positive See asynchronous code. I tend to write Well, how do I put it the elegance of those AP ice. It bothers me a little bit, but at the same time, I tend to write mostly sequential code, right? The communication between threads tends to be very localized and very structured in the code that I write the way I kind of like phrasing. Well, a lot of approaches to programming or a lot of fancy features. They're like, they're like salt when you're cooking so and what I mean by that is, if you add a little bit of them in the right places, your food is gonna end up tasting, tasting a lot better, or your your code's gonna end up tasting a lot better if you Sprinkle it without care. Everywhere things, they're just gonna be a mess. Things are gonna be way over salted way. And so, with concurrency, usually thief first thing I think about is the scheme of what's communicating with what. And then I try to put that into a few connected, communicating like loops of state, right? And then everything else ends up being, uh, kind of sequential. Boring. Yeah, You tell the computer what you're going to do, then you tell her what you're going to do next, right? And then you wait for the event in the main loop and do the next pretty traditional procedural style code. Yeah, Yeah, pretty much. But then when you want to do things, actually, let's pick a concrete example. I recently rewrote Acme Male because, well, I want to be able to keep track of threads that was being becoming a real pain in the ass. I can see that you know what would happen. A lot was someone would send me an email bonding, you know, and then did send me a patch. I'd respond with a bit of code review. They respond with something else, and I would want to go back and look at the initial patch. And it was a pain in DS digging through a week of male to find the initial email. So eso threads. So I started trying to add that to Acme Male and turns out threads and linked lists, which was their central data structure, don't play that well together. So I just started rewriting it, and I think three days later I had something that worked. But basically what ends up happening with the acne male or with the new nail client, which is what I was calling it. Nail new mail, just kind of mashed together. And basically, what happens there is that there is for every window there's one main loop theme. Main loop in the message window reads from the plumber of the Acme Events file and a couple of other events sources. And I very and I designed it so that that would spawn off a completely independent un communicating thread with for each message that you were reviewing and that would just talk with the Acme stuff. Thea Acne event data Actually, the kind of brings to mind. So the go motto is apparently shared by communicating through the way that I try to approach. Designing multi threaded code is don't share, don't talk. Mhm, Um, if you don't have to communicate, you don't have to coordinate, coordinate communication and then, obviously there are some points where you do need to communicate. But the goal of designing the program should be figuring out how you can minimize that communication or minimize the need for communication and then structure the whatever is left. And that means that there's less to reason about attracting state machines. Air hard? Yeah, certainly. Yeah. Concurrently, to certainly doesn't make it easier. Yeah. Yeah, that is It is nice that the Plan 9 lib threat if you're running in the same Prock, you could do basically as much as you want Atomic Lee until you actually do some io. That is nice. Yeah, does hurt performance, but yeah, yeah, performances. You know, Not the well. If performance if the performance of doing things in parallel for rearranging a few windows is your bottleneck, your code needs some help. Yeah. Yeah, that makes sense. Makes sense. Yeah. Nice. Nice. Nice. So let me see. Let's let me see if I can pull something out real quick, I guess maybe stepping further on this since we've been talking about lip thread for a second. Now, do you kind of have ah ah, favorite. And this can be favorite from a design or like, novelty. You can pick us many as you want. Like program, abstraction, library. Something in plan nine that thio use a common phrase like spy sparks. Joy in you or otherwise permit gives you a great deal of satisfaction. I mean, just the pole read write and, you know, open, close read right. FBI that you use to interact files. Yeah, it's simple, easy to use. It stood the test of time. It really just gets the job done. Yeah. Yeah, it is really nice, isn't it? Having just everything at your fingertips as files? Semantics. Let's see what? So when you when you write software, have reported software or whatnot to plan nine, what kind of things do you find yourself, like using the most utility wise, Like reporting? I guess it would make sense to point a little bit of eight. And if there's anything that you find yourself leaning on a lot or even in the nine utilities, you know, like like But for example, do you write, use act me a lot? Or just for male? Are you one of the I heard Sam folks or like what? What kind of is your set up? I guess because we had talked about going back Thio how you have yourself set up and you're kind of self built environment. Do you want to speak to that a little bit? Yeah, sure. So I mean, with for editing code, I mostly you Sam for, uh, And then I run Acme as my mail client under a P trap. Instance, that kind of filters that all the edit commands s So that means that when I plumb a file, it does. It goes on Lee to salmon, not Thio acne. Sam is fine. Uh, but I've got not so secret plans to write something new. E don't know when I'll get to them, but their plans the oh, there's somewhere on the list with everything else that I want to dio. So don't get excited exactly years before, but yeah, mostly I use R c in a Rio window for running code. You know, just I don't know. I mean, my set up isn't particularly special type in Sam running Rio. Think about the output. Maybe add some prints. If it's not what I expected it Maybe not. If things crash, get a back trace from actually a little shell script that I wrote that grabs the stack from the last crash process. Uh, because as pulling a pass it and attaching to the right process and so on. It's just a bit of a pain when 90% of the time stack trace just tells me what I need. Yeah, exactly. Still need to learn acid a lot better. Yeah, it's a powerful tool, but the documentation is, uh, not a good tutorial on and and it's really designed for kind of assembly programming in the way or not for assembly programming. But it kind of needs you to understand assembly programming And how to what? It doesn't know the data taxi really have to tell it everything when you're looking at what's going on. So there's a high barrier before I actually start reaching for it, right? Yeah, I I remember having Thio try. I have some notes on post Nick somewhere of just sessions from trying to debug something in acid because I told myself I should learn how that works. I think I was trying to figure out how to use trusts and whatever the other stock library is that shows up in the manuals. Yeah, and I remember just being kind of like a bad dream the whole time. It's very interesting because it has so many procedural language structures hiding out in it, and so much it feels I part of me really wants toe like it a lot just because it gives you so much and what feels almost like a familiar, almost shell like environment. Yeah, and there are a few things that it's really useful for. So, for example, with nail again, I had some really weird behavior that wasn't causing crash and would take a few like a day or two before it would show up. So adding Prince, uh, turns out that once I understood that I could make a show up a lot faster. But basically I wasn't deleting email messages in the or in the order that would trigger the bug most of the time so basically would end up counting wrong to figure out where to insert a message. And basically what I ended up doing there was to debug it was writing a little acid script that would look at the state of the message list and dump out the information I needed to actually cross check the computation theme message index. There's a little loop that kind of goes through and figures and casts all the addresses to the right type for the Yeah, yeah, yeah, so basically, I think Acid does a good job of, but the kind of bug that will make me break it out is a lot higher than the kind of bug, the threshold for breaking as much higher than threshold. I used first a GDP on UNIX, whatever. I can just print any expression and it shows up with all the right types. And I can call a function to pretty printed dumper whatever so GDP I can use. This is like a moving print if yeah, as it is a lot harder to use that way, right? Do you think that that's just acid maybe wasn't developed enough? And it has the potential to reach something like that? Or do you just envision, like, kind of a clean slate re approach on believing acid where it is and building something else in the future? Part of it's that the plan and debug info isn't quite expressive enough for some things. Uh um, for example, the types are in a separate dot acid file, which don't tell you if something is a string or not. But yeah, I think acid could definitely be improved. I'd kind of like something that has a more RC like Syntex that is easier to use in a kind of interactive way may actually be interesting now that now that that's been mentioned may be interesting to try to kind of come up with a acid fs with R C wineries that would let you kind of do the acid commends I don't know if I would work or not. This is just an idea that popped into my head right now. Yeah, I was actually about to ask. That was like, Wow, if you want our c syntax, that sounds like you really just want a file system. Since that's how that seems to play out. Usually, Yeah. Yeah. I don't know. Yeah. I don't know if it would work well or not, right? I mean, yeah, who knows? I mean, asset sits on top of just Prock anyways, so yeah, yeah, it seems like a logical extension. Yeah, if someone does want to do a rewrite about, I've got a great I've got a great meat from Yeah, Yeah, the little system debunker LSD. Excellent. That's pretty good. Yeah, I like that. Oh, my goodness. E. I don't know if it was deliberate or not. I don't remember if this was a I don't think this was a labs joke. But I remember your comment on cat V or otherwise, where someone once said, uh, in response to the name acid, they're like, all right, it's because it's named after this because acid is for debugging the brain. And I got a good giggle out of that. I've never tried. Right. Right. Uh, interesting makes me say that I get it. Yeah, so? So Yeah, this is interesting. You hear people talk about acid enough? I think it was a long time before I ever really had Thio open it up and do anything in it. And I have I don't I know I'm pretty sure it wasn't you. And I strongly suspect it was mischief, though I think he denied it that someone wrote this mountain of go. Maybe they even told me who they were. And I have just for gotten but a mountain of like go libraries for acid for debugging go programs back when it was still written and see on plan nine. And I remember I I at the time because I entered plan nine partially because of go, I think because someone on cat your cat V adjacent had bullied me into trying it. And then I had Miller's original raspberry Pi image. And go didn't work on that yet, I don't think, but someone had been talking about Go on plan nine. That's how that whole thing had played out and I had learned about things and I saw these libraries for as I was like Oh, debugging go. That's very interesting acid. Very interesting. I did not know nearly enough at the time when I remember it just being this huge pile of very delicate scripts and it just it felt like so much. And then they abandoned it. I think the moment that go get rewritten and go or something like that because it just all fell apart. But yeah, that's not surprising. Um, yeah, it would be really nice having a proper tutorial on how to use acid. There's the paper insist, Doc, which is a start. But you have to kind of take that and mix that with the man page. And then there's still not very much in the way of kind of getting you started on even simple things. Like pretty string. Yeah, Yeah. This is why I have, like, my little I think literally what I did for my post next notes is I just copied out the session from Rio in its entirety from first command to closing and put them in there. And I use that as a reference just because I could never keep it all quite straight. And even once you do like you say, you need to know assembly in the planet. Assemblies are very strange, aren't they? Yeah, yeah. I mean, part of it's not even knowing assembly, but knowing like if you want to get the anther index into an array, you have to know that the size of the every element in the euro is say, eight bites. So then you compute the address into the mhm. Yeah, it requires you to think a lot. Yeah. Yeah. Interesting. And you get used to it, but especially after writings and compilers, right? Yeah, right, Right. But yeah, not an ideal experience. E think some of that could actually be solved by just kind of, uh, enhancing the default acid library so that it a nose the size of every type. Um, possibly Baigent By changing what the compiler outputs. I don't actually remember if you need that or not? But then you can add a bunch of, say, access er functions that, say, print a string or print a value adding array index. And yeah, I think there's a lot of room for just little ergonomic improvements around that kind of usage. Kind of ah, classic scenario for the Plan 9 ecosystem in general. I think Dog Star had mentioned recently that Plan 9 There might be a lot of like, kind of broke and a half broke and things floating around that people haven't noticed. But when you need to fix them, it doesn't feel like an insurmountable task to do So. Uh, it is something that has to be done. Yeah, that's kind of one of the things that I like. The other thing with Plan 9 that you kind of notices you get deeper into it is that there is a lot of stuff that got done to the proof of concept. Stage got done to where the authors could use it for their purposes and then, you know, never got the Polish surely riel. I never got pushed to the point where it's clean and perfect, right? Right, like complete in a polished, finished like this is viable as like a doesn't need much changing over time. This is just like it. You know, I got my paper. What? What do you want? I think I agree. You see it a lot, E. That's one of the dangerous is of a research system, right? Of course. And as faras reached research system, scope or systems with small user bases go in general, this'd is not like Plan 9 does really? Well, yeah, like on just general polishing things working. Do you have an offhand example that you could compare to that you, Maybe you had. Where's experience with or what, exactly You may be missed with you exploit another kind of comparable system in this regard. Had e don't really have comparable systems, but just looking at paper and trying to make sense of stuff that people have published. So there's this great subreddit where people post systems research papers read Qamar systems and I try to poke through and look at the interesting ones and ah, lot of them are either missing the code entirely or the code is terrible or trying to get it to run is a chore. Yeah, yeah, they're getting to run is a sure thing is also something I kind of I miss Ah, lot from nine and the nine Ecosystem software so much of the time. Like on I think when I first started getting exposed to software development under By posits, I was I felt kind of lied to when I was first learning is there, like, you could just run dot, slash configure and you type make and something builds. And that's going to be basically it, that's all. You kind of need to know. You have tar ball on tar CD, blah, blah, blah, blah, blah. And and some extent I feel that is kind of true. And there are tools and utilities out there for sussing out what you might be missing or configuration might be missing. But it feels like when one of those bills just doesn't work, it's ah, I think my fighter flight starts kicking in a little bit when, like, big posits, library errors start rolling out from under me. Especially in, like a new stuff. But I'm like nine. Yeah, you could go ahead. Yeah, I was gonna say Yeah, over time, you kind of develops in Stockholm syndrome, and it kind of gets better, but yeah, like I I don't feel lost really so much anymore. And I don't feel like they're truly insurmountable. But compared to nine where even like you take like a program, I you could take on nine. And this I don't think this is I understand why it's the case was static linking and everything, but I don't know if you were aware of this, but when I had gone to get, like Second Edition up and running, I found that by just by chance the 386 2nd edition binaries, If you take one, you copy it over to, like a modern nine front 386 system and just run it. It just it just runs and a lot of the builds and, like the M K files and everything still like work is obviously library differences over time. But I don't think I've sat down and felt quite like if it feels very attainable as an individual, I think, yeah, yeah, I think they can't remember who said this initially. E don't think it was me, but I think the best kind of tongue in cheek. One sentence description of the of plan nine was that I've heard is, uh imagine that the good things they told you about eunuchs were true. Yeah, as a classic, I e I think that might be in one of the fortune files, even. Oh, that would explain it. I think so. Yeah. Yeah, yeah, you're absolutely right. Especially I even with the easy example of everything is a file. But yeah, going down like make and how the compiler is make nice for you. So many things, right? Yeah. Or the lie that UNIX is a simple operate. Yeah, Yeah, man on going back. Thio. How much you like that? Like everything is just open close rewrite. I remember even, like porting getting go programs to work on nine sometimes. Like the simplest example I can think of was, I just wanted a clipboard stuff toe work for God. I don't even know. I had had some program going, And there is some go module that clipboard handling for, like, Windows, Mac, Lennox, whatever. And I just kind of wanted that toe work on nine, and I'd forked it out. I was like, Okay, so I think The only thing I have to do here is right to Dev Snarf and read from Dev Snarf And that's gonna be it. And the Plan 9 file for this is just gonna be like 30 lines tops sitting there and opening and writing and closing and flushing or whatever. Yeah, that sounds about right. Meanwhile, I think that Keith Packard's paper on how copy and paste works on UNIX was was titled This Is Keith Packard. So I'm pretty sure the name was intentionally kind of tongue in cheek. But it was titled something Along the lines of How to Copy and Paste in 1000 Lines of Code Right Now and you can see it and especially with things like X clipboard. I believe it. Yeah, I mean, there's there's a reason for some of it. For example, deaf Snarf doesn't like you, you know, copy and paste images and have the program that knows that, you know, getting the pace. They don't know what kind of image format your you put into it. So So you just get text three features that you use. Yeah, that's fair. That's fair. So online also, I think a lot of things are more represent a bill through text That might not be otherwise. Yeah, for sure. Interesting. So maybe this goes with good may. I'm gonna put on my prediction hat here and say the answer is gonna B c. But like, what language do you think you write the most in on playing nine on plan nine? Yeah. Yeah. Followed by R c followed by merging, followed by Go e Think that covers all the available like, Well, nowadays we have kind of a nice Frey. There's an O camel port. There's my Yeah, Mycroft went back and resurrected the old hugs Haskell Compiler. I know he's been having a lot of fun with that, and he has, like, an actor working. Yeah, and I can't remember who did it. I know that there is a There are actually a couple of Lou reports. Yeah, Yeah, it was tongue in cheek. Yes, of course. I know. I think you're I think you're right, though I am. The murder on Plan 9 works very well in my experience. All things considered, I think I actually, uh, experience less odd functionality than when I did on like, Lennox. Um, if you remember I pestered you a long time ago when I was trying to figure everything out with that? Yeah, part of it again. Simplicity. Um, you know, our for con plan nine gets its own thread, which mean or gets its own stack, which means that you don't have to do we're assembly games to kind of get your program started when or get your thread started when it doesn't yet have stack. You have to do everywhere else, which is the source of a lot of bugs. Yeah. You know, I saw you talking about our fork on I received the other day. How do you do you like our for quite a lot? I feel like it's ah, very you Not unique to plan nine, but very plan nine e kind of thing that exists. It's definitely a very plan 90 thing. Although Lennox basically cloned it for their clothing system called, um, except without the multiple threats are Sorry. Multiple stacks. Eso basically, uh, doctor is really fancy. Are fork Yeah. Uh oh, my goodness. Yes, and so I'm probably gonna So you are asking how I like it? Um, I feel like anything you ask me about the question like that, you're going to get well. I have mixed feelings. Yeah, of course, that's fair. But I think that you can't really use the system and understand it deeply without kind of having misgivings about basically every interesting part of it, right? That's right. For example, with our fork and the and R F Threat or R F Prock, you're sharing memory except for the stack, which means that things get weird when you try to pass data that's on the stack between things. Lip threat does kind. Does some stuff where just Malik the stack. Now you fall off the end of the stack and you don't get a good error about it. And there's upsides and downsides. Um, everything sucks, but everything is kind of useful to So you know, what tradeoffs do you make? And I think largely Plan 9 has made good trade offs. Eso yeah, that's mostly what I like the system. Yeah, things the things that I hate about it are less annoying than the things that I think that's fair. I think that's fair. There's certainly rough edges. Um, eso you had mentioned also that the next most frequented language by you after seeing our C, I think. Was it you that had put out some patches for it recently? Is like quality of life improvements. I know. I saw some rolling around. I just haven't been super observant on the mailing threads. Yeah. No, listen, concatenation gone or well, it's still there. But now you know where it's coming from on for anyone that's listening, that doesn't appreciate this. And or you can correct me if I'm wrong here. No list. And concatenation is kind of the only, uh, air you get from R. C. And you didn't even get a line number. Anything helpful from it? It just falls out when you have ah, no list contaminated and RC falls over and doesn't know what to do. Yeah, you do get other areas from RC mostly syntax errors. But it was the most annoying one to debug because, as you said, it's just it's the most common runtime. Error just tells you Hey, you had to know. Listen, your program somewhere somewhere. Oh, I have horrible, horrible fever Dreams of when I first got work set up for nine dot post next dot p w and the first time I sat down and ran it, I just got no listing Cat Nation out of work and I stared like, fresh out of the box. I stared at that, and I was like, took a very, very deep breath. Um, and it occurred, actually, I have a sticker on my laptop, and so does I think, Moody. Because when I used I used to work in a security lab and me and Moody worked together there, and we had a label printer, and it's nice. Yellow label printer. Almost kind of acne colors and prints it only in black text. And I have the r c colon space, no ballistic concatenation printed out and sitting at the bottom of like, I guess in the middle of the laptop, looking at it. Um, e yeah. I get a good giggle out of it. It's probably the my favorite when I have on there. Um, yeah. So that's gone. You have, uh, Did you get line numbers in? Uh, yeah. Nice. Nice. Nice. That's basically our C compiler compiles to bite code. And I just added a byte code that sex line number whenever the line number changes. Nice. That sounds nice. That's Yeah, enormous quality of life improvement. And I appreciate you immensely. That's I know for me, I foot gun myself and r c probably more than I should. And that's like a huge like, I I hope that the no line number are Sierra's becomes a faded memory for us. And newer people might not even know that that was the case. And that's okay. Yeah. I think the yeah, before this r C dash tax was probably your best bet. It fixing the are finding these errors. Okay. The line that the last line it printed? Yeah. And hope for the best. Yeah. Yeah, it wasn't. Yeah, debugging shell scripts with Dash X is not fun. Yeah. Yeah. Heaven forbid they do any, like, including and jumping around or anything like that. Yeah, yeah, um, knee. So kind of pushing outwards. And we'll just go over a couple of these before I start pulling out questions that were put on grid disk. And if we get any live questions, we maybe we could go through those if you'd like, uh, but something a little more high level and less dug in 29 Do How do you think the ideas or architecture of plant. And we kind of went over this talking about how the labs culture influenced how you write software. But do you think nine has had an effect on how you write software outside of nine, maybe things that are never meant to run on nine? I don't know how frequently that happens for you these days. Um, the do you do anything explicitly, differently in remembrance or structure style, anything like that. Explicitly. It comes to my It's OK, if not. I mean, if I'm right, if I get to define the style, I will basically go with the usual plan nine style in my code. Um, I have actually, definitely. Well, so the last job I worked at was building smart microwaves. Uh, because, well, there's a whole story behind why it wasn't just Let's make these, uh, microwaves vulnerable. Thio, uh, there was actually some interesting physics going on and trying to cook the food better. Uh, but basically, that microwave ran off of the plan 99 p. Implementation. Oh, interesting eso. You know, there was a little microcontroller STM 32 running, uh, some embedded. See, uh, never gonna run on plan nine doesn't happen. Mm view doesn't need it. Uh, but basically, what I ended up doing to control the device was that was exposing a nine p interface over a USB overdone USB. Um, making the end dude, for example, control the various actuators That would change the way that the ways were reflected inside the microwave by writing an angle to or a set of angles to a 90 file. You'd read back sensor readings through another night. P file. Um, so the actual nine p code itself I wrote from scratch, but the parsing of the protocol came from, uh, plan nine e just lifted, I think, probably Ken's code directly on and then on the android side. Because, of course, you know, if you want to get a cheap armed, cheap and reasonably powerful arm processor to run a reasonably capable UNIX E system on one of these devices, you goto a vendor and you tell them, Hey, I want to get, say, qualcomm snapdragon, they go cool. What version of android or you're running and you say I don't want to run android and they say, Oh, that's nice. What version of android or your own. Uh, so you say. Okay, give me the most recent and then they say, Well, we've got one That's, like, three years out of date. Is that good used Teoh? Is there anything that newer? And they go? No, anyways, Excellent. Yeah. Yeah. Um, So basically, the android system was running some code that had bean that was lifted disentangled from Plan 9 port. And that was kind of doing all the communication on the android side of things up into the android. I put Ryan, are you i eso There's definitely some planet influence in the stuff that has got fascinating. That's so neat. That's so interesting. Um, a very, uh, like kind, elegant solution going on there. I'm quite a trick, but I like to quite a bit. It was good up to the android anyway, so I just, uh, just out of curiosity. And maybe this is outside of what you've looked at since you put kind of nine pm like I've been embedded platform. Have you ever looked into, like, plan nine on a bed platform? Or maybe even like inferno since? That's kind of what that was designed for, though. Inferno I think has some creaky edges lying around it. Nowadays, in the public version, at least, I haven't really had a need. So for this kind of thing, infernos even way too big. I had 100 and 28 kilobytes of Ram. Oh, I see. And that had to be able to run, you know? Ah, whole bunch of sensors as well as, uh, have a big enough buffer for protocol parsing. Okay. Okay, E I mean, the embedded code that we had fit with room to spare. But as soon as you bring in a garbage collector, right, a run time or anything fancy. You kind of falling apart. Happy? Yeah, that makes sense on guy. Yeah. I haven't worked on an embedded I haven't needed to work on embedded system That was small enough for that, you know, on off the box. Lennox, What wasn't the easiest solution, But then on top of that, we needed to do some, like, on this microwave device. We need to do some consumer facing you. I which means a It's hard to hire inferno programmers, although, Yeah, I feel like the people that knowing for no well enough to be hired are also kind would also jumped at the opportunity. So that's right. Yeah, I think. Yeah. Yeah. And then in other places, I just haven't been in a position to make the technical choices around this kind of thing. Absolutely. Yeah, that makes sense. Things just kind of where a lot of people are you. Yeah. And then there's always the business question of how do we hire? Yeah, which is hard? Yeah. Yeah, absolutely. I'm I'm glad you got to have some fun putting something like nine. PM. Yeah, it was also a great day when you know I'm not even in the room, and we're and CTO VP of engineering are kind of hashing out some initial ideas around design and CTO goes. So how about we do this with nine p? Excellent. Yeah, I actually ended up shooting that down because just doing UNIX sockets was way simpler. Yeah. I mean, all we need to do is transfer one stream of data so that 90 doesn't actually help there. But, you know, it was kind of nice when they were over engineering some stuff and so their choice their choice of a virgin air with 90 Yeah, that's nice. I e I guess you can't even say that A nine piece of very niche protocol anymore. Every windows install with that can leverage WSL now ships with a full nine p stacked on it, piping together wsl on windows, you know? Yeah, Crazy. Although I would be willing to bet that z 92,000 l or whatever. I'm pretty sure I'm pretty sure you're right. Yeah, because it hooks in, like, the Lenox stuff on Lennox does the $92,000 So, yeah, it's definitely, definitely nice that it's kind of turned into the semi standard way of talking to virtual machines now. Yeah, it is very nice, because what I think Doctor uses it. Ki Mu did something like that. Yeah, and it beats. Well, I'm pretty sure that anything any other alternative would have been way more complicated than $2000 even if $2000 a lot more complicated than 2000. Yeah, So I think there might Yeah. I mean, it's all flavors of badness, and this one is the least better. Yeah, first, yeah, not maybe not the best, but it'll dio So maybe then also looking at the outside world a little bit. Uh, is there any like, because I know s I'll take an example from, like, the community I know VD has, like, a fascination with, like, open VMS and thinks Plan 9 can learn a lot from what VMS has done in the past. Is there, like, some software set system or language or something that exists kind of wholly outside the nine world that you think that you, like, admire and respect to play a nine or just yourself? Or that you think nine, as a community could, like, learn from explicitly I mean, we could learn from everything, right? Sure. Um, hi. Lennox is well, to pick an example of everyone knows I'm kind of Lennox is not an elegant system, but there is a lot of interesting algorithms, interesting approaches to things that they've kind of mashed in. S o. For example, uh, the whole r. C. You approach for concurrency is actually a really neat way of handling updates and on mostly read data structures, which basically gives you you don't even need atomic constructions. I believe on on modern intel processors. As long as you can figure out the right, Grace, period. Eso taking a step back. I should kind of summarize what are see you is, uh imagine you have, say, network configuration. You almost never change your i p address compared to the number of times that you read packets and need to compare against your i p address. So taking the lock on every every time you look at the i p address so that when someone changes, it changes. Or doesn't I p configure whatever. Um would be kind of a big performance It So what happens if you could Previously the old i p address Onley when you knew that no one else was reading from it. Uh, and you didn't need to take locks. So what re copy update does is you have readers that just read from data and the update, er does the update and waits long enough before freeing the data. Onda, How long is long enough? Well, there is a bit of sleight of hand. And for the Lennox implementation, you really need to be in the kernel to do that. Um, basically, they then, like, if you're doing are see you. You can't sleep when you're reading. So That means that you can't switch process eso now if you wait until every process every processor has switched processes at least once before you for your data structure, you know that no one was reading from it based on that rule and because switching processes acts like a memory barrier, at least on X 86 you don't even need to synchronize anything. So, you know, there's a lot of clever algorithms like that that you could learn from Lennox. Um, in terms of other systems, they're just completely different. And I don't think Plan 9 can learn from them just because they are so different. But the idea of, say, early list symbolic list machines Mm. Um, they, you know, I love the idea of basically your programming environment or your user environment is a T bugger. If something crashes, you can poke around, fix it and continue the program. Pick up where you left off your memory. And so I've never actually used one of these for more than, like, a few minutes in a general emulator. So I'm completely talking out my ass here. And anyone that has actually used this will probably tell me this guy is an idiot. He's wrong. What the hell? But basically the impression the impression I got is that you know, you don't really have a file system. You just have live objects and live data, and you're interacting with it directly, possibly through user interface that you've written in the environment. But it's just like a ripple that you're playing with direct. And I kind of really, like that idea of having something so explore a ble. Yeah. You get similar ideas with the small talk systems, which I haven't used it all, but yeah, that kind of sandbox feel is something that I like. Yeah, that makes sense. Yeah. Yeah, there is. Ah, Squeak port. Uh, plan nine in the ports tree somewhere. I don't know if you ever saw that. If you felt the need to scratch the, like, kind of small talkie itch. Um, I don't know if that's really what you're looking for, but I mean, I've seen it. I've just I get it, I get it. Yeah, I've seen it. Wants Thio give me enough money that I could quit my job and play with Yeah, that's absolutely since you mentioned like this machines especially, have you so going back toe toys that no one has time to necessarily play with Did you ever get exposed to the, like, interim a West project That was attempt at the fusion of kind of the list machine style like, let's be ripple environment stacked on top of so that everything is a symbol. Everything is a list Dada, Dada, Dada stacked on top of that. Everything is a file of nine. I think it ran on like a raspberry pi or something like that. I have not. I actually don't think I've heard of that 10 wow. Okay, well, I can I'll drop a link afterwards, but suffice to say I it hasn't been touched since I think, like 20 14, 15 or so. Um, but this I remember his name. It's a bunch of MMT and something like that, and he's putting out a open source. Hardware laptop recently, actually, is what he's been working on most recently, but he made this thing interim OS inspired heavily by Plan 9, though I don't think I could be wrong, because it's been a long time since I've touched it. But I don't think it's even really planned. Nine. It's just plan nine e and does that. Everything is a file nine p on. Then the default shell and way you interact with system is a lisp. P rappel that scared towards like especially file access is so you get the kind of compounding universal abstraction benefits. It's very good. Very interesting. Yeah, definitely. Take a look at that. Yeah, OK. I'll be sure to pass it on later. I'm sure you'll get a kick out of it. Uh, if you could get it to run, So now I'm going to go back. Thio. So a couple of the submitted questions I think we actually secretly covered a lot of thes because we've done a really good job of, like, bouncing back and forth. Um, but this one's pretty good. And you can say, as little as much as you like as always. But where do you can just see the future state of nine front over time as a project, or even the Plan 9 community? In a broader sense, do you see as, like, kind of, ah, self sustaining process in the future? Especially? It's like the kind of waxing and waning of audience and contributors. I think we're in a really good place right now, personally, and we almost had the International Workshop planned nine conference this year. But obviously that has fallen through. Um, yeah, something, something pandemic, some kind of virus. Yeah, don't worry too much about that. Honestly, Yeah. I mean, people come and go. I'm scratching an itch. I hope that there are there is that there ends up being enough community that I don't have to scratch all the issues. E can fool other people into between e u right. But it seems like things are more active than they have been in a long time. Yeah, Hardly, because I think you know ah, lot of the tools to talk to the outside world have been either updated or written or fixed, partly because people like you have actually started talking about it and reminding people that, Hey, this isn't actually dead, but, you know, I mean, it's so it seems to be more alive than or more active than it. Waas. There's I'm actually not sure what the status of nine legacy is, but I know Miller has been doing some interesting work around Risk Lee recently, which is kind of neat. I don't know. He got a tiny e m You working? Yeah. And it's apparently putting single core on some actual hardware, which is crazy. Yeah, it's like, pretty awesome, Charles. The risk the stuff into the inferno tree, just like in the last couple of weeks, even on it hasn't worked. Yeah, yeah, yeah. And there's a bunch of stuff that was done in Adam kind of under the radar that I'd like thio try either porting or bringing in tow. Nine front. Yeah, um, so you're probably aware of De Tracy or Dick Tracy or whatever, which is pretty much the, uh, our clone of D Trace. Let's go, introspect and look at what various bits of the system called stuff for doing. Nine. Adam has something with A so far as I could tell much worse, much worse user interface, but much more flexible internals. It looks like from what I've seen on, but I have to look at it more closely. There is a way of hooking into basically any function in the colonel on adding a we have. It looks like it's abusing the profiling stuff. Thio, get a get observation on basically anywhere instead of that fixed trace point. Oh, wow. That sounds nice. Yeah. So getting that in with De Tracy would be wonderful. Yeah, that'd be That'd be. It says this is a lot of strange things hiding out in nine. Adam. I feel like it's kind of almost forgotten. I don't even know if the downloads for it still work. I I mirrored it years ago. Now, I don't know if it's even changed since then, but there's so much like, neat stuff. I think we imported the section What? 10 manuals? Yeah, I think those initially came from Inferno. And then I see. Yeah, Section nine or nine. Yeah. There you go. There you go. Uh huh. Yeah, Yeah. So I think there are actually a couple that were still missing after Look at that. But yeah, they came from that. There's a lot of decent stuff in there. Are you passed Implementation on nine. Front initially came from nine Adam, right, ton of bag, ton of bug fixes and improvements since. But the initial work was nine Adam and that made it possible to open big meal boxes. Right was I know that on labs I want. Years ago when my mailbox was much smaller, I had tried to open my mailbox on labs, and that did not go well. I could imagine. Yeah, I don't remember if it was hours or days later, but I know eventually it I know eventually drying out of memory and just didn't work. Yeah, I I think I I think I experienced something similar once when I had opened my absolutely unq urine and university mailbox. I'm like an old, like nine labs image or something just because I was playing around and I think I had a very similar experience. It just ground thio lifeless. Halt eventually. Yeah, now. Interesting. Yeah. So I think I guess I have one more thing I kind of like to ask you about since I'm kind of surprised we haven't run aground of it yet. I was kind of figure it would come up naturally. But recently you've got get nine self hosting. Do you want to talk a little bit? Maybe about how that went on and you have. There's only so many get implementations floating around, and I know that I had at one point attempt to deport what I think like Libya It, too, and had just totally given up on it. At one point, I just I just, like, could not deal with the amount of, like, you know, almost necessary positively stuff sitting around. And you did basically, I don't know if I don't think it's the only but one of the very few I think Clean room get implementations and not only it made a clean room, get implementation but made it in a plan nine semantic kind of way with NFS and all that, and then not only made it work for what just get added HJ get for like, kind of plan nine off. If I'm understanding that correctly, get over TLS, which is not even ubiquitous, I think it's definitely get nine thing upstream. Get doesn't support, they get over to us. Yeah, there's that and s o much. And it's self hosting and all of that. And you have Ah, little self host up and running now. How How was that? You spell long time on that? At least in my memory. Yeah. I mean, yeah, part of it. So the reason I think I didn't bring it up is just because there's only so much self promotion of uncomfortable. That's okay. That's okay. I'm asking, So yeah, I mean, so as far as let get, too. By the way, that's where I started. Okay? I supported it. E think the code has gone now because bit bucket deleted all the mercurial repositories. Yeah. Yeah, thanks. By the way, for salvaging Assman ease. You did. I did my best. Yeah, I'm sure that I'm sure that we lost some because it's not like there was a master list of everything but course a t least this time. When get hub decides toe, delete everything that isn't sponsored or something will be prepared and it's all in one place. Yeah, also e mean to be fair, If no one knew about it, it probably won't be missed. Yeah, yeah. Sad to say, but yeah, yeah, yeah. So basically, I got lip get to working and then started thinking about what it would take to make a u I and decided. You know what? Forget this. A couple of years later, I go. Okay. I really need to get if I want to use Plan 9 is my main system. How hard could it be? So I read the specs and the way I usually end up kind of approaching big projects like this is I'll read the specs and go. Okay, that's way too much work and leave it percolating in the back of my mind. And for a few months, and then eventually something will pop out and I go. Oh, wait. Actually, I see how I can do this. So the first going from nothing to the first usable version of get nine was like a month of work where I could actually start committing maybe two months. I don't The mercurial repository where I did the initial bootstrapping. His God, That's okay. But basically, yeah, that was the eso going from no code to something that could commit to itself. Uh, didn't take that long. Um, the hard part was initially understanding all the file formats and getting used to the way that good nine FS works and so on. I hadn't written too many files since before, so this was actually one of the bigger file systems I've written on. And then just getting Yeah, it was just, you know, you write the code. Yeah. Paraphrasing what I think Bill Joy said about TCP Yeah, yeah, yeah. So yeah. Uh, was there anything else? There was something I was thinking. Um, was there apart that just like you just cut out completely and said, No, we'll never do this or I desperately don't want to do this. I don't wanna be the person that has to do this or something like that. There's stuff that I'm punting on way. We don't have rebased yet. For example, getting something that will work if you don't have any conflicts is actually five lines of chow. It's just get all the commits between the two and then loop exporting pipe exporting each committed piping, the result to import on a different branch, but handling all the areas. And what happens if we do have a conflict so on is something that I just kind of, You know what I hope someone else is doing? I'll take the patch, I get it. But there's nothing that there are a few things. So there's definitely a few things that I didn't want, like three whole staging area and get, uh, it's extra complexity. But also it confuses people. There are other ways of doing it that I think would be better, which I haven't gotten to write. But basically the problem that people want to serve with this are solved with a staging area is they want to be able to do partial commits off data. That and kind of yeah, basically partial commits. Yeah, and the staging area is a really heavy handed way of doing it. That's kind of error prone, because so what happens in get is you get at a file and then you make a couple more changes, and then you commit theme. The things that will be committed will not be what you had when you did the commitment, what you had when you did the ad, and that is something that kind of throws a lot of people off. I feel like we could do this better in Plan 9 by having say Diverge FFS or something like that invoked before you commit, you edit the files in memory, get them to where you want cast them out, which is something that you can't do with staging area. Right, goddammit, commit tested code on. Then you can commit that and drop out of that name space, and I think that would be a better work for them. So there's a whole bunch of little workflow things like that that I haven't implemented. There's tons of features that I haven't implemented, partly because no one's asked for them, including myself, right? Partly because I just would rather keeping simple, proud. Absolutely, I don't know. I mean, pretty much get nine other than rebased missing and performance tweaks is doing what I wanted to do. So I'm That's it. I don't feel the need to really do stuff. Yeah, I've used it. I I used to have it on my nine boxes. I think I I was a little addicted in a bad way. To the ease of workflow I had developed around like https commit. So it took me a second since that's omitted and That's totally get that. And I probably shouldn't anyways, But you switch commit, pushing, like pushing and whatnot. That should work. Oh, it does. Oh, extra. Wow. Okay. Excellent. I thought it was not there, but no. So we don't We can't serve over http. Because that's a pain in the ass. But Drew default kind of made me dio eso. Basically, the thing is that well, there's the get protocol which is unencrypted on unsecured. So Drew refuses to support it, which is a reasonable choice. Uh, but that means that I have to support http. Right And whatever fest just does Http. Off asl ong as your http artworks pushing should just work and does that feedback through factotum, then? Yeah, e mean, it's nice. However, that's one of the things I like about how plan nine works. The stuff just kind of fits together. Yeah, no one's reinventing every every little bit of every library. So very, uh, orthogonal to Elena. Very orthogonal. But also, I think a lot of people kind of misinterpret Well, a lot of people do minimalism poorly. Sure you need things to do enough for you that you don't need to reinvent everything yourself or glued together. 50,000 different programs. You end up with something Mormon. You can end up with something more minimalist. If you make some programs, do more, because now you just need fewer moving parts, right? Everything's a balance. I feel I feel like that's something kind of profound and maybe ah, miss especially. And maybe, like the posits minimalism community in a lot of places, you know, very interesting. I appreciate that. I think we can turn over if there are any live questions. I don't know if there will be. I can look in the discord or twitch chat. I don't even know how many people are in the twitch chat. But if anyone has is watching live and has anything, I have my eyes on discordant twitch, and we can sit here and let people ruminate for a few minutes if there's nothing else we can close out. Okay. All right. Give a few minutes to see if anything comes in. I'm gonna guess that we probably covered about everything. Thank you already So much for this. I really appreciated it. I really appreciate you taking the time. Is there anything else you'd like us to go over before we close. Can't think of anything. I'm Yeah. Happy to talk? Yeah. Looking forward to hearing With what? Some of the other people who have been around the London community longer have to see the next episodes. Yeah, I'm working on. I'm you know, I'm working on getting people. I got Charles to say yes in September, and then I kind of went dark for a while because I've been away from a computer for so long, but hoping that that offer still stands because I would love to hear what Charles has to say to, But I am so glad that we had this and I also look forward to what more we could get together. So thank you, Lori. It's been it's been an absolute delight. I'll be putting this up as an edited all your recording and maybe trim, trim down the gaps and sound a little bit. And I'll put an uncut version up on YouTube, probably. So take care of Thank you so much. Yeah. Thanks for having me. Bye bye.