We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
System Crafters · 1.1K views · 30 likes
Analysis Summary
Worth Noting
Positive elements
- This video provides a rare, unpolished look at the thought process behind implementing a programming language (Sigil) and the historical context of early Unix tools.
Be Aware
Cautionary elements
- The high level of perceived authenticity and community 'insider' status can make the host's technical recommendations or software projects (like Sigil) less likely to be critically evaluated by his audience.
Influence Dimensions
How are these scored?About this analysis
Knowing about these techniques makes them visible, not powerless. The ones that work best on you are the ones that match beliefs you already hold.
This analysis is a tool for your own thinking — what you do with it is up to you.
Transcript
Heat. Heat. N. [music] >> [music] >> What's up everybody? Welcome to System Capers Live. I'm David Wilson. We're back again with another Friday stream where we get together as a community and talk about whatever topic I've come up with for the week. And uh this week is no exception. Um I'm sorry, alternate v. I forgot the intro that AI helpfully made for me today. Uh I don't remember exactly what it said. There was a number of them that uh it went through and I'm not sure which one was the best, but uh they were all terrible. Anyway, we're having some fun in the system crafters IRC this morning talking about uh AI generated jokes that um involve me and another prominent member of the system craft sorry this not system crafters community the emac community kind of funny as alternate v says it's not an easy job being a cult leader quoting me it's not because I'm not a cult leader I wouldn't know anything about it uh let's Got to get my brain together. I've been super busy these last few days. Culture is just good fun, man. How do you remember all these stupid things that I say? Alternate bed. How do How am I supposed to say your name? Is it alternate bed or is it or is it uh alternate? Alternative. Alternative. Is that what the way it's supposed to be? Give me one second. All right. Sorry. I had to get some cable management done here. Um, just double-checking, making sure that everything's good to go here. I'm watching a CI run at the same time. Trieve says, "Hey, I'm here. Can you start now? New hoodie." It's not a new hoodie. I've been wearing this hoodie for like two, three years. Oh, check this out. Check this out. Check this out. What do you think about that? Ouch. I think I just burn my tongue. What do you think about the little popup there? Huh? That's cool, right? Probably shouldn't have picked that one as the the one that I selected. There's another person. Okay. So, um, what's been going on? Well, what am I eating? I'm eating the skin of my tongue that I just burned off of this green tea that I drank. It's a little bit too hot. I think I'm going to regret that. Uh, let me see here. Uhoh. Errors generated. Shout out. Shout out. Yeah, I'm sort of highlighting messages. It's a thing. It's a thing that I can do with some uh improved technology that I have here. I keep running into problems here. Ah, you see uh Purple G's message there has a purple dot. How appropriate. How appropriate. I wonder why that's the case. At the same time that I'm here, I'm trying to fix the uh the release of Sigil because All right, let me just go ahead and talk about that cuz I'm not really prepared, but I'm obviously not prepared. Okay, so I've been working on this thing for the last probably two months now. This thing has been about two months. uh a programming language implementation uh which I call Sigil and um it's basically ready for people to use. It's not really up yet though like I've got the all the documentation ready. I've got the thing working on multiple platforms. Uh give me one second here. I got to go back to the other other screen for one moment. Trev donated zero dollars. Yes, you did donate zero dollars, Trev. Oh my god. Where is my freaking mouse cursor? Get over to the stream thing. It's here. Where is it? Boom. There is Glenn. Um, so what was I saying? Yes, I've been working on something called uh Sigil, which is basically a schema implementation, but it's kind of got some other goodies on top of it. Um, working on for a couple months now. It's basically the point where people can use it. It's not the binaries aren't up yet because the stupid codeberg builds are not uh finishing because of various different issues. I've changed a lot of stuff today and that's always the thing that gets me into trouble is I just like I try to make things perfect and it never finishes. If that doesn't work, that's going to be a problem. But we'll figure it out. Just give me one second. I want this thing to be up so people can try it out this weekend because I want feedback and I want people to give it a shot. But uh anyway, the the point is that I've been using it for a lot of stuff uh recently. Oh, I should mention because people keep bringing it up that yes, I have been using Clawude Code to write this. Uh but I put like hours and hours and hours of my life into actually making this thing. So, it's not just that someone else wrote the code for me. It's that I basically did all the design work and facilitated the thing to to become real. Uh, and I feel like it is a a sort of a creative uh project, creative expression, even though I didn't write every line of code, but uh, anyway, it works. It's quite stable now. Um, in fact, the stream overlay that you see with all the fancy stuff is a result of uh, all the work on hours of watching scrolling text. It is kind of like that. Uh, is a result of the work I've done so far on Sigil. It's running in Sigil. Um, it's got a whole web framework, HP server, uh, websocket library, all kinds of stuff baked in. [music] And, uh, it's it's working. Amazingly, it's working. So, last week I was trying to use it for the stream and it didn't work out, but this week it actually is working. And we got this the Twitch bridge bridge working again, which is amazing. Uh, I don't know if the YouTube chat is showing up. I might have to reconnect. Oh, YouTube is supposed to be showing up. Is anybody on the YouTube side? I see Ed. Hey Ed. Ed said something on the uh the YouTube side and it came through. So, we've got all three platforms. Ash, I'm sorry, but S copy is now out of a job. We have all three platforms uh represented in the in the chat overlay, which is amazing. Fantastic. Uh, okay. Anyway, rolling it back. Altern says, "Sometimes it's hard to find motivation and time to do every small thing alone." Where is that in the chat? Boom. Right there. Uh yes, I agree. It is hard to find the motivation and the time to do things alone. I had started working on another schema implementation called mesh two years ago and I got pretty far with it myself, but it's very difficult writing a whole uh language and runtime by yourself. Even though it might be really fun, it's super uh super difficult. And uh now that AI tools make it possible to to get some help uh it makes it a little bit more tract practable for a person who does know what they're doing. Like I know how to write a scheme implementation in a bite code interpreter in a compiler. So I'm sort of directing the effort and not just having it generate total slop. Yes, Trev. Thank you, Trev. Anyway, I'm I'm doing a lot of justification for myself here. Sorry, escopy. Thank you for all your service though. I appreciate uh the the service of escopy and uh the other uh people who might not be named. However, we do still need Leftpad in in the mix. Uh anyway, let me just say hello to the people who are here so far. Uh I see Peter, Eric, Leonx, Alternate V, Gun, Dave. Hey Dave, uh Oxnil, uh let's see, Trieve Glenn, Purple G, Zororg, uh Cal, I need to make this text bigger. Uh, Ed, [clears throat] uh, Lord Devi, Appenzel. Uh, let's see. Auntie, Purple G, I don't know if I said Purple G yet. Uh, Big Edy. Uh, let's see. Left B says, "Stop the press. I'm here." Uhhuh. Purple G says, "David has been busy. This is nice." Yes, I've been very busy. Extremely busy. you know, watching chat scroll across or sorry, watching uh LLM text scroll across the screen actually is it will keep you quite busy actually. Um, let's see. Left pad should be SE Livebot. I don't think so. That sounds kind of dangerous to me. Hey, Jerry. Um, anyway, hello RD. So, yes, lots of stuff going on right now. Um, let me see if the build actually completed on that. No, it's still just sitting there waiting to start. Of course, because Codeberg uh is great a great service. Codeberg is a fantastic service, but also at the same time it uh will lag out like crazy. Leftpad says, "Come on, I have more style than that bot style. From what p what perspective are we talking here?" Let me zoom this page in some. Okay, now I can actually read it. Beach House says, "Someone's got to hold that slot pose." That's right. I'm the one holding the slot pose here. I'm just spraying it all over uh the repository uh of Codeberg and and whatnot, whatever. Anyway, if you want to try out Sigil before the binaries are released, you can go to the try it link on the main page and there is an actual web ripple if it decides to load up. There it is. Um I updated this example and apparently I didn't push it, but uh there is uh there's a ripple that you can use. Kind of an interesting thing here. Let me zoom this in a little bit if I can. Uh you can use like doc commands like doc uh sigil json and it will give you the documentation for the JSON module. Uh also I can say like uh doc JSON encode. Oh, and it got an error because of something. I think I didn't push the fix for that one yet either. Anyway, there's a ripple. You can run a bunch of different examples. For some reason, I can't click. That's very strange. Did my click stop working all of a sudden? Yes. my my keyboard decided to stop working. There we go. So, you can run a bunch of different examples of the code on here. Boom. Cool. And as you can see, I don't know if you really noticed that I have dictionary syntax kind of like closure, kind of like Janet. Uh if you like dictionaries, there's immutable persistent dictionaries in this language. Uh and it is done in a way that is kind of compliant with uh Scheme. It's compliant with R7RS. It's just like a reader syntax that gets boiled down to a procedure call dict that creates a a data type in the language. Um, so it's kind of cool. There's a lot of cool stuff. I don't know. I'm having fun using it. We'll probably write some code with Sigil today if there's a binary that gets pooped out by the uh release automation if that ever happens. [clears throat] Uh, where is my mouse? I swear I'm trying to switch machines with this keyboard and it's driving me nuts. Trev says, "Uh, I'm glad I bought in the sigil sigil coin on the ground floor. I will be flushed with cash." It's not a thing. There's no thing. Altervest says, "We need to hype sizzle coin a bit more." Uh Dave says, "What are you using for the immutable hash tables?" It is a hamped. Um what is the hash array mapped trees? Hamped. It's a hamped table. Yes, people are mentioning uh uh Neri again. Yes, I'll try Neri. Oh, and also where is it? Um I think that's Dominic, right? Dominic says, "Do you have a sigil package manager?" [clears throat] The double overlay is strange. What double overlay? What are we talking about? Um, no, there's not a package manager yet. There's just git repositories. There's there's a way to pull dependencies via git repositories. That's what we are dealing with at the moment. What else we got in the chat? Purple GCS, for all we know, that L&M injected something insidious. Well, if it did, then it would have been doing something to me already. Trev says, "We need to skip the David proxy and speak directly with Claude." You could do that by yourself. Ashra says, "A lower left chat message supposed to be a focus message." Yes, I'm clicking on them in the stream thing. I'm basically just like I read them and I click on the one that I'm talking about so that you can tell which one I'm talking about. Does it make sense? Any of this can be changed. I'm just trying some things out that I've had ideas for for a while here. Um, okay. So, anyway, that's that. Alternate VZ says I need to switch to Yuri maybe. But I I've been doing a lot of uh funky crazy things with T-M. And I'm kind of happy with that currently. So, makes it like an additional chat overlay. Maybe I'll make it fade in. If it fades in, would it be better? What do you think? Uh let's see. Where is uh God going back and forth is going to drive me nuts. There we go. Glenn says, "Sigil is really cool. Scheme compile programs without having to install Gile to run them. Excellent work." Yes, it is. Uh that's the thing is that I want to be able to compile scheme scheme programs and give them to people or put them on a website kind of uh easily. And that's one of the things I didn't like about many uh existing scheme implementations is it wasn't very easy to do that. But uh Sigil is meant to be a thing where you can actually make a scheme program and put it together in a binary and give it to someone and they can run it on their computer. Um currently finally we don't have to install Guile. Well, it depends on what uh distribution of Linux you're on. Maybe you do if you're on Geeks. Maybe it's there by default. Um yes, but we do have Linux uh AMD 64, ARM 64. So that means that you can actually or I guess it's AR 64, which means you can download Sigil and run it on your phone if you have Turbox, which is pretty cool. Uh also, uh Windows support, Mac OS support, and then three of the BSDs, OpenBSD, free BSD, NetBSD. So, uh, all of those will be working whenever the stupid thing actually, uh, kicks out the release. I've only tested the Linux and open BSD ones, like in practice. I've run the Windows one, I've run the Mac OS one, and the other BSDs I haven't run. How are you lowering to machine code? I'm not, Dave. What I'm doing is I'm compiling a a program uh that's a C runtime for the language. The the compiler and the uh bite code interpreter are written in C compiled to a C program and then I compile the sigil/ scheme code to byte code files and then I pack them up into an archive and attach it to the end of the program and then I read them out of the archive. So it's like probably the same thing that you would see for like love 2D programs or any other programs that uh or any other framework that allows you to give a standalone distributable is just you know you're not you're not really compiling the whole code to native. You're just compiling the runtime to native and you're just sort of attaching the uh the module files to the program. Uh and it works pretty good actually. I'm kind of surprised how well it works. Dave says asks the strategy that Wingo wants to take for GU which lowering to machine code or or just packaging up bite code files. It would work well for Guile I think because if you do that and since you already have JIT then you would basically just be able to take the code and uh compile it to the lower uh than the native code at runtime. Yeah, bundle VM and all the bite code that it works. It definitely works. It's something that is um I think it's the most practical way to go. No Emacs news today. Um, there we haven't gotten to the real news yet because I just keep rambling. Peter says it works well for Java for that matter. Yes, this is what I've been wanting to do. So, all the things I'm doing right now with Sigil are things I had planned to do with Mesh. I just never got far enough with it to actually do them. So, like bundling applications, uh, portable runtime, being able to compile to both the desktop and web, all that stuff. So, basically, Leftpad says you you expect consistency from these streams. You expect me to be professional and to do things that, you know, a professional YouTuber or streamer would do? No, I'm just some dude that's just talking. I'm just talking in front of a camera for however long it ends up being every time. Okay, that's the way it is. T says, "You always have to install the Joe Rogan experience." I thought, "Really? Never heard of that before. Can I write Emac package with sizzle? No, [music] you cannot because it's not Emacs list. Let me see. Just looking at the chat backlog. All right. Transpil into Emacs list. No, I'm not going to do that. Okay. Anyway, that's enough. So, let me go over to God damn it. I'm telling you, man. I'm getting really confused here. Who is David Wilson really? Does he even exist? Of course not. What? You think I exist? Um, [music] where is the button to make the thing bigger? There we go. Come on foot terminal, help me out here. Just write a VM in ELISP. No. Can I say hi alternate bed with sigil? Yes. Go to the website and run it in the ripple. Ashra says we need Sherry again. And I don't really know if we want Sherry again. Otherwise, this language is bad. What do you mean it's bad? Come on. There's other reasons you could say it's bad. It doesn't have anything to do with whether it could print out your name or not. Okay, so uh sites. There we go. I'm looking at the screen like an old man here. Okay. Content live streams. Uh December, no January 2nd. There it is. Let me just steal my own text here cuz that's what we do. If I can learn how to freaking type the year. Okay, here we go. All right. Anyway, so let's just um kill some things out of this so that I can just reuse it for the next thing. Uh apparently I put the wrong date in here. I don't think anybody really noticed that. I probably should go fix that. What is happening? I really love Emacs undo. Don't you? All right, so we got it. We cleaned it up. Battery connected. Thank you, Ashraz. It is connected this time. Stream integrity. Integrity validated. It's good enough. It's good enough for now. Okay, so uh Geeks course coming soon. I mentioned that last week. I'm still working on it. um called Geeks Essentials. It will take you through basically the fundamentals of Geeks and >> [music] >> um setting up Geeks on your system for the first time and sort of day-to-day maintenance, what you would do to actually use Geeks day-to-day. That's um going to be coming hopefully by the end of the month. I've been working on it for a while now, off and on, and I'm finally getting back to it because I want to finish that up and move on to some other interesting things. So, um be keeping an eye out for that. I do want to run it by some folks before I actually try to like record all the videos. So, I might do that relatively soon, but I got a little bit too uh sucked into the Sigil stuff recently. So, um [music] yeah, I've been I've been working on like three different projects in Sigil right now. So, yeah, I got a little bit sucked in. Anyway, it's coming though. I I've got it going on. Um let's see. Try Sigil first release uh is out now. I've forgotten how to type. So, let's see. Trev says, "I'd love to have have it run by me or run over me." Run over you. I don't think that's possible, Trev. Hey, John. Nice to see you. It's been a while. Oh, I clicked on uh where is it? Click. There it is. Crep stream that I actually caught live for the first time in ages. Hooray. Let's see. Where is it? Ed says, "Emac undo is great. Undo and region is awesome." Yes, but sometimes I just get tripped up. Trip tripped up on it. Like I get tripped up on my words constantly. Left pad says, "I can arrange a sigil run over Trev." Okay. Yeah. What's going on with uh Mark Rebier? Like I haven't really seen him much. I don't know if he just got like too famous and kind of got tired of it for a while. Maybe that's not what happened. Um there is some news in the uh Spritley Institute world. I think that there is a new post up about activity pub on goblins. I haven't actually read this yet, but um it was raised to my attention by a couple people. Activity pub on goblins, a new post by Sprayley Institute. He got a bit burned out. I bet he did. I mean, he was grinding for a while. So, uh this is a post about um I think this has been coming for a while, right, Dave? like basically the idea that you should be able to implement uh distributed um social protocols on top of OKAP [music] um and goblins and things of that nature. So, activity pub is a protocol that powers the fetaverse which was also co-authored the protocol was co-authored by Christine Leur Weber who is uh one of the or is the founder I guess of sprite institute right not only does it allow different instances of the same app to federate with one another allows different apps to federate uh etc etc has it been abandoned by spritly as a stepping stone no we've long had a project on a road map to implement activity pub on top of goblins you open up the activity pub specification you'll actually see mention of actors protoc call itself is designed with the actor model in mind. That's kind of cool, actually. Uh, goblins actors over HTTP. Sounds like a new transport, huh? G has a built-in web server. Not only that, but fibers has a back end for this. Means we can pretty quickly start handling requests. So, we're writing some G code in here. That's cool. Let's see. Um, making a synchronous actors that which can return promises accessible to HTTP requests. Yes, that makes sense. Uh Dave says requires an an HTTP bridge rather than using OKAP. And I should put my mouse over here so I can do this. I have a touchpad for a reason. I don't like the fact that the YouTube names are coming up as the username and not the person's name in the chat because I can't see who is who. Hello, Antarus. All right. Anyway, let's see. Most web framers have a special purpose routing language that uses strings which is an inexpressive anti-attern uh powerful pattern language pattern matcher. Where is the routes for this? Uh this yeah match string split. Yeah. Yeah. Yeah. Just typical match pattern. That's great. Uh let's see what else. How does activity pub work? I mean this it's tech it's a techni technically dense. Not it's not technically dense. It's technically dense. It has a lot of technology information in it. So, if you want to read more to get into the depths of goblins and activity pub and asynchronous HTTP request handling uh with actors, then maybe you want to read this post to get a little bit more information. I'll probably read it through it a little bit later whenever I have more time to uh digest what's happening here instead of just stumbling through and rambling about what's in in here. What's at the end though? This is basically the implementation I guess, right? Um, let's see. Prototype that I implement is a demo trying to explore some of both goblins and actor HP interface and how activity pub may be implemented as an in an actor framework like goblins. Let's see. Ah, there's going to be a Fosdom talk. I don't know if anybody's going to Fosdom. I wish I was going because there's a lot of people who uh a lot of cool people going there including Dave. Dave's got to talk there too. Hey, see. Uh but there will be probably recording of this after the fact, I would imagine. How to level up the Fedverse. Uh where is the other posts or the other Spritly talks? I know there's that one. I think there it must be in the uh what you call it the what's it called? The minimal computing room. Is that the one that all the geese talks show up in? Uh Thompson Thompson. There it is. David Thompson. Here it is. There's your face, Dave. Uh is this How many talks do you have? Three talks on Sunday. Are you crazy? Is that yours? Geez, man. What are you doing? How you preparing for all these declarative minimalistic? Yes. What happened to the build? What is auntie trying to tell me right now? Did the music stop? Ah, yes. Shepherd is out. Yes, thank you for reminding me of that. Why is the music stopped? Hold up, hold up, hold up, hold up, hold up. What's going on? All right. Well, the overlay still works. That's all that matters. I You know what? I bet money that the stupid MPV playlist did not restart. That's what's going on. Uh, and I can't get to the Emacs thing. Anyway, we're going to live without music for a little while. Dave says, "What am I doing is that's a very good question." Yes, you're you're overloading yourself with work, but that's okay. I respect it. I can't even get one talk done in time. I'm not going to get four talks done in time. But anyway, there's some interesting talks going on at Fosdom. You should check them out. Uh, when is that happening? Uh, the end of the month. Once again, I'm still trying to figure out where my mouse cursor is. All right, there we are. So, anyway, uh, more can be found in the upcoming uh, FOSDM talks by the Spritley Institute. I'm not going to be able to get all these in here. Somebody else will have to go find them. I know that Andy Wingo has a talk and Christine has another talk, more than one. Uh, was just those two. Okay. Yeah, that's good enough. Probably there's others, too, but anyway, check out the talks by Spritley Institute at FAZA. I'm just going to link all of them here. And those are not happening obviously until the end of the month, but you should just, you know, be aware. I think they're going to be live, right? They will be live talks. Oh, okay. So, I think that the stream overlay died. That's okay. You know why? Because I can just start it up again. Ashra says, "Whenever the music stops, a random user gets banned from this chat." It's going to be Ashraz. Ashraz is the winner for the day. Just kidding. Ash, you know I love you. It didn't break. It's still up. Look, I reconnected. Everything's fine. You got it. Everything's fine. Can't you tell? It's playing. Purple juice says, "Ban me." Why, man? That doesn't sound like a great idea. Okay. Anyway, do you hear the music again? See, now this is a more professional operation because I can actually fix things when they break like real in in real time. Anyway, so what else? Uh I think did we did we talk about the Shepherd release in a previous week? Uh December 2026 666. The number of the beast. Which one did we do in 2026? None. Did I not stream at the end of the year? Oh, it's 2025 for God's sake. I need some sleep. I swear I talked about Shepherd at some point. Anyway, uh Dave says, "I'm giving a talk on uh functional reactive programming that isn't directly spritly related." I think I've linked to all of your talks in this uh list. Trev says, "I submitted a talk to FOSM, but they rejected it because I'm doing a voice over on Minecraft gameplay." What are you Leafy is here? or someone else. Alternate vet says it's not an easy job being a cult leader. I didn't say that. Somebody else said that and they attributed to me incorrectly. Probably AI because alternate V was just making AI say things on my behalf all morning. Okay, let me just quit BSing around here and get to the actual [music] topic of the day. Erling philosophy, let it crash. Yeah, Erling is, you know, a lot more mature than the junk, [music] the slop that I'm using for this uh this stream today. God, another unde Oh, man. All these issues that are showing up in the Windows build are things that I got I fixed already and probably I just moved the stuff to a different file and all of the stuff is not there anymore. Yes. Okay. Yes. There there are other programs named Sigil UHG. I'm sure of that. Okay. What am I looking for? Okay, here we are. I think that the music's a little bit loud now. Don't you think? Don't discount sigil like that. This place is for rent. What are we talking about? Cadvocat C advocates. [laughter] I think we got another uh uh what do you call it? What do you call it? Uh another alternate v. Not an alternate v. another uh uh alternate identity. Not it's not you alternate vet. I'm not talking about you. There's somebody else here who it might be. You call it a problem. Yes. Anyway. Okay. So, today we're supposed to be talking about Ed. I'm not talking about Ed Bowler who's in the chat. I'm talking about Ed. Um Ed is the standard Unix text editor as the meme says, right? I didn't actually put the title here on this on the on the notes. Let me do that real quick. God, Ed is the weirdest Unix text editor. That's this what I decided to call the stream. Why? Because it is kind of weird and you'll probably agree once you actually see what that looks like. A damn it again. Platform connection closed replaced. I I'm getting errors in the in the terminal at the same time that I'm doing this. Oxnail says, "I just installed sigil with brew install sigil." That's not the same one, dude. It's not available anywhere. Be able to listen on port. Is there another one listening? Be able to listen on port. What happened? The weirdest. The weirdest. All right, I'm going have to to resort to using the IRC now. Rename the stream to live debugging my new chat bridge. Well, I'm not going to be live debugging it at all because uh we're going to have to move on in a second here, but it did get killed and somehow something is still using port 3000. I have no idea what it could possibly be. Let me see here. So usage of means to use a new ebook reader for skiers. Yes, that's what it is. You know, it's the best name that I could find. So this this is the way we're doing it right now. We're just calling it that because it sounds cool. I think it sounds cool, right? Why is Firefox taking over the port? Oh, really? Wow, that's weird. Because uh the MPV process got orphaned when when the uh the back end died, it kept the port open. How'd that happen? Just like the file descriptor linked and it just works that way. All right, are we back now? I don't know what happened. That was pretty weird. Maybe I'll just leave the reream chat off for now. Those of you on other platforms, you'll just have to watch the the IRC folks have fun. And now we're going to start the music over again. I'm just going to roll that down to about 17%. I don't know what happened. That's pretty weird. Yes, I don't know what happened. Left pad happened. That's what happened. Cults are just good fun. Can we stop with that? Okay, I'm just kidding. So, let's get back to the actual point of the stream today. Hi, Mom says Purple G. Um, Ed. Let's check out Ed. You know why? Because it seems pretty cool. It's pretty weird, though. Have you ever seen Ed before? Uh, let's check out Ed. So, I was watching a video today for about five minutes. It was a video that Cal 2001 sent in the system crafters IRC, uh, which was a guy named David Beasley, uh, who posted a two-hour long video. No, no, sorry, two hour. two day long video. And I'm not joking when I say it's a two-day long video. It's literally two days um of him. He I don't think he recorded for two days. I think he probably just put together compilation, but he was working through the second part of the book crafting interpreters, which tells you how to write a bite code VM interpreter um by code interpreter VM for a language and a compiler for the language. Um and he decided to use Rust, which okay, sure you can use Rust, no problem. a little bit difficult to uh yeah two days and 18 hours. He decided to do it with Rust, but also he decided to do do it with the ED editor, which I think is kind of insane because whenever I saw him using the ED editor, it looks pretty difficult to use. But I could see why people would be um kind of obsessed with it or at least fascinated by it. I was quite fascinated by it too whenever I saw it. So I think that it would be kind of cool just to take a look at it. The paint in my living room dying drying. What do you mean? Is it that boring gun? I'm sorry. Geez. Okay. Anyway, one second. Hold on one second. So, I'm looking at the the build output on sigil. I'm trying to get this thing out and it's just not happening. No, we're definitely not going to react to that video. It's way too long. Like, it would be really interesting to see how he gets by with all that, but there's just no way that we're going to watch that. There is no way we're going to watch that. Okay. So, oh, the comments are great of that video. This is the last video before bed and then you stay awake for two two days and watch it. This seems like the kind of video that Cal would watch for two days, doesn't it? All right. Anyway, so um anyway, that video is pretty cool. I should probably actually put that in the show notes, but I can't copy that over. Nightly David Beasley watch parties. So, um, let me see if I can pull it up in a terminal here. So, you may also have noticed that something looks a little bit different about my setup here because I'm using, uh, T-Mux. I've been using T-Mux a lot lately. I should probably talk about that on another another stream, but I've got kind of an interesting setup right now where I've been using T-Mox with uh WireGuard and Mosh to basically um get into my sessions on my laptop from my phone and also from other machines that I use basically like um to my server and also yes, I know there's a Shepherd release notes. I think we talked about that once before, didn't we? the shepherd. Anyway, after the stream last week where we talked about Zulge or Zelage or whatever you want to call it, um, we talked about T-Max at the very end, I was curious. I was like, "Okay, let me just go look at T-Max again." I've used it, you know, off and on over the years, but I started using it and I was like, "Okay, this is way better." So, I I just stuck with T-Max. I'm not using Ze now. I'm just using T-Max. Much much better. I should have a thing where people can actually add links to the news like on the overlay. That would be nice. I also finally updated my uh shell prompt, too, which has been a long time coming. All right, so Ed, I don't really know much about Ed. Is that going to work? Ed, I think that's it, right? How do you get out of ED? How do you exit ED? How do you do it? Ash, tell me how to exit ED. Ash, tell me how to exit ED. Q dot. No, it doesn't work. C doesn't work either. Control D. Control D. Control D. Okay. Control D works. You reboot the PC apparently. So only Q. You You put a period, didn't you? Okay. Q works. That's good. It's good to know. John says, I gave Zelia go. Where is it? And it's a cool piece of technology. I prefer Teamm as well. Same deal with Bobu. I don't really know anything about Bobu. Yes, control Z to shut down H. Now, it looks like that I would have to restart my machine. But uh so far, we're off to a great start with uh with Ed where basically we don't know how to get out of it. Is a bridge down again? Only the uh the other parts of it. Look, look, look. Don't bother with that. Don't bother with that. Look, if I reconnect, it will probably work and then it will crash again. In fact, let me just do that. Look, here comes the people on the other chats. We'll see how long it stays up this time. At least I can restart it. There we are. There's the YouTube folks again. There's Jerry. Vim is based on VI, which is based on Ed. Yeah. So, anyway, let me before we get into just typing random stuff out in the terminal, uh we're going to look at Thank you, sopy. [laughter] S copy, you're late. Uh, we're going to look at the Wikipedia entry on Ed. Okay. Not that. Not that either. Not that either. Where are we? Where's my freaking mouse? Editor. An ASR33 telltype for the genuine experience. Yeah, I don't really know if I need that because it's going to be way too loud. So, uh, ED, pronounced as distinct letters. So, it's not ED, it's ed d apparently, which makes it even worse as relation to the thing that just showed up on the screen. Uh, is a line editor. It was one of the first features of the Unix operating system. Although not commonly used today, it remains part of the POSIX or PZIX and open group standards alongside the more sophisticated and commonly used editors such as VI and Vim. Give me one second. You have ED installed. You have ED installed. Uhhuh. I see what you're doing there. Uh, one of the first three key elements of Unix operating system blah blah blah. So the the point I think here is that the uh ED editor is not really meant to be something that you would use interactively because you need an editor. It's uh more of a uh tool that could be used through shell scripts and it just so happens to be something that you could type commands into if you wanted to. So, I kind of feel like did this come before said and O or was it around the same time? It feels like it was it's meant to be a thing that is uh scripted though, right? The way that the Can I enable dark mode? Is there a dark mode? Wow, there's a dark mode on Wikipedia. Amazing. That's great. Thank you, Auntie. I appreciate that. Um, so yeah, it seems like a thing that uh may have existed before. Said and a does it say anything about said in this page? Get out of here. Bookmarks. said said said the Unix stream editor said implemented many of the scripting features of CAD which were not supported by ED on Linux. Okay. Anywh who the idea is that this is a very strange looking experience where you open it up. I guess A is a pen. Then you start typing in Ed is a standard Unix text editor blah blah blah and then dot maybe you you finish it. Leon says, "Before Ed was the editor for when glass terminals were not a thing." Yeah. So this is probably right. Right. Right. So both Gun and Leon are saying basically these are things as uh where you have teletype computers. Gun says from the TTY terminal times when you really wrote on paper. So it's from from a different age, different type of technology. Um Ed says is also based on Ed. Uh, Super Sabb says, "My understanding of ED is it's a line editor." Yes. And then Ashra says, "Dot is the only entry on a line ends input mode." Okay. So, how do you use tele file to save? Wext.TX. I can see how Vim might have come around from this. So, Ed uh a hello, this is system crafters dot. Okay. And then what? There's no output. I don't know what state I'm in. What is going on here? 2 I question mark. Does that mean I did something wrong? Com, L. Hello, this is System Crafters. I see the dollar sign here. I guess that means the end of the line. So if I press dollar sign, if I can see where dollar sign is on my keyboard. L. Still on the same line. Okay. So what do I do? Zed's dead, baby. Two I is insert before second line. You don't have a second line. That's the issue. Man, this is great. This is almost like a puzzle. You have to uh figure out how to use the editor correctly in the line mode. Come on. Windows build work this time. Add the prompt to it. You'll feel less lost. How do you do that, Leonx? You can use uh dollar I. Oh, is that like insert at the end of the end of the line? Okay, so dollar I a uh is this the next line? Dot, comma, L. Is this the next line? I put it before. That's before. Comma P prints everything says gun. Okay. Is this the next line? Hello, this is system crafters. You need to keep constant track of what you're typing and what you have in your mind. That sounds uh yes, more and more like some kind of cruel game. This sounds like a cruel game. You can move lines. Uh question mark is the only error Ed produces. As [ __ ] says, the experienced user will know what is wrong. Yes. How do you become an experienced user if you don't know what the hell is happening? How do you know? What does that mean? Gun lile email. Oh, Ed-P. Okay, so is that just give me a prompt? Let me get out of here. What was it? Just Q. Q Q. Okay, Q twice. Cool. Um, ed-p. Okay, that's a prompt. Take the second line and move it to one. Well, I think I broke it, didn't I? All right. So, let me see. Define fu uh x. I guess I can keep typing things, right? Display. This is x. Okay, I've written a scheme function here. I don't have anything to run it with. I don't think I have sigil running here. I can run it with probably guile, I guess. An email finished with a solitary period followed by a new line. Okay, that makes sense. Uh anywh who, so uh there's also a W. write uh food. SEM 69 characters. I guess that's what that means. So then um if we were to go back into Emacs and check out SEM, we would see that it actually is written out. Okay, that's great. But what about uh what about if I make changes file? It probably doesn't read it back, does it? Like if I delete the axe there. What is What does Ed do? You would probably have to open it again, wouldn't you? How do you open a file? I was uh instructed to look for info for Ed. Let me actually see if I can do that. No. Can I man Ed? No manual entry for Ed. I'm not seeing it. It's not in here. You want to open a file while you already have Ed open? Yes, I do. E food. SCM. No tab completion. Okay. Yeah, it it I think it actually did get it. There we go. E. So, it does make sense. There are parallels to the commands you would see in vi like E and W. E for edit, W for write. So, and Q for quit. So, that obviously you see where that came from. If if this is all inspired by ED, then uh the Vim commands are basically what you use, right? Palace P uh pointing me to the the ED manual. Can I put this in dark mode? Boom. All right. What's it telling me? Done in two distinct modes. Command and input. When first invoked, Ed is in command mode. In this mode, commands are read from the standard input and executed to manipulate the contents of the editor buffer. A typical command look like s old new g. What am I writing in here? um comma s slash this um the okay that works. So the the uh search and replace syntax that you would see in Vim and other places uh obviously works here. Can we add sigil syntax in ED? Apparently not. I don't know how do you do is there any syntax highlighting in ED? I can't imagine there would be R file.ext read insert mode. Does Ed have LSP support? [laughter] Does Ed have LSP support? I guess not. Why would it? I don't think that's the kind of thing that they had in mind whenever they created this editor back in the 70s. Is that how old it is? Is it the 70s? Tell me. 1973. This editor is three uh 10 years older than I am. That's crazy. Lead says first proper sigil project LSP for Ed. This tea is disgusting. By the way, says prompt does help. It doesn't tell me anything. It's just an an arrow. I mean, sure, I can see that there is a prompt now, but doesn't really do much. Jeff says, "I found Edge Go editor, which has LSP." is like, "Ed, seriously, yet another console text editor." See, this is just for uh people who like to be hardcore. Wow. Okay, that's too much. Come on now. That's nothing like Ed. And then because they got tired of Go, they just decided to make a new one called Red. This is not like Ed, is it? Oh, can you uh what what did I do last time that created an error? I typed in two I two dot 2i dot. Yeah, I put a lot of junk in here now. Uh let's see. Okay. Well, it prints the line. That's cool. Use 99 I. Okay. H invalid address. That's super helpful. I know exactly what that means. Use case for what? This editor. I don't know. Just for being cool, I guess. Is the Windows bill going to complete this time? Can you can [music] you please do something? Peter says, "Apparently now all the letters are taken and Zed is the last one. We're going to create a new editor called sped sped d uh which also stands for special education uh which is uh the editor for people who don't know how to use editors. That's a terrible joke. I'm sorry. Command syntax is uh address command parameters. That helps. That helps. Trev says let's rewrite this crap editor in sigil. That would make it worse. Lord Debie says it might be based on Sam. Where is that? Which is another editor made with the help of Ken Thompson after Ed was made. Gotcha. Big Eyes says Ed is now the official editor of System Crafters Emacs users and shambles. No, it's definitely not. I mean, I don't think anybody's going to be using this after this stream because I'm not showing anything other than just uh talking and complaining the whole time about what we're seeing. Sounds about right. I think standard lib finally compiled. Great. And leftpad says, "Bold of you to assume the Emacs users can stay away from their editor configuration long enough to actually watch the stream." Yeah, people who are actually using Emacs right now probably aren't here. What was it that uh AI said today? alternative ed what was it that it attributed to me or what was it that it oh what it said about um system crafter's user or system crafter's community members uh something about preferring things to be overly complex sounds like me I don't know about the community says I'm editing my config and watching at the same time by the way big are you still streaming I haven't really been following what's been going on in the world incoming crash All right. How do I um Well, I guess we should look at it a manual, right? Instead of just bumbling around. When an input command such as a append, I insert or c change. Sounds like Vim. New updates of sigil. Yes, I'm trying to get the release out. Whoops. Did the bill complete? What is it doing? He's just sitting there. Oh yeah. Why did the system crafter cross the road? What's the answer? Alternative ed. Where is the thing? Why did the system crafter cross the road? Where is it? To bind a key map to the other side and optimize the latency of the crossing in his init. It's making some assumptions about the gender of the uh the people in the community. I don't like that. And another thing that it said, this targets a community tendency to overengineer simple tasks by by Emacs list configuration and key bindings rather than executing them directly specific to the Emacs workflow Wilson advocates. I don't think that really sounds like me though, does it? This has some terrible stuff. See, this is what AI creates. Crappy programming languages and crappy jokes. Hey, the Windows build finally completed. Great. Anyway, so this is the primary means of adding text to a file. In this mode, no commands are available. Instead, the standard input is written directly to the editor buffer. A line consists of text up to including a new line character. Input mode is terminated by entering a single period on a line. All right. So, any type of input mode is terminated by uh putting a single period on a line. So, oh, and I I keep getting uh uh ED commands from gun. Let me just type one in. So, uh let me exit Q. I keep trying to put scheme ripple commands in here. Ed ed fu dollar a new line new line. I forgot the a. We're going into a pin mode here. Adding two new lines. Regards, we're adding Is this like a a thing that you would use for your uh footer for your emails? Slashn dot slashin. Yeah. Okay, it makes sense. WQ. Yeah. Yeah. Okay. So, that makes sense. I mean, like, you're basically just scripting the characters that a person would type in at the ED terminal by doing that. Oh, we're at the release task. Let's see if it actually finishes this time. If it actually creates a release on the repo. If it does. Oh, snaps. What is it doing? Error while reading. This plugin is deprecated. Got it. That sucks. It like actually it worked. Uh oh, the music stopped again. Ed for Emacs. Why would you want to put Ed in Emacs? Trev says, "This guy isn't paying attention to us and he's doing work on the other screen. I'm trying to do something that I can give to you." Why would you want to put X in Emacs, David? What happened to you? Um, well, this in particular, I don't see why you would want to put an Emacs. I can understand putting Vim in Emacs, but not uh Ed. Who's getting banned this time? I don't know. Probably me. Ed, the music stopped. I bet you money if I try to start it again, it will crash the overlay. No, it didn't this time. Anyway, the normal answer is because it exists. Okay, the overlay is is hosed. Let me just cancel it again. Control C. Don't you love just hearing the intro music start over and over again? It's fantastic. Hold up. Websocket connection failed. That's weird. I think that's what's happening is that uh Reream all of a sudden decided that I don't get the user API. Maybe the token didn't refresh. Probably the token didn't refresh. Okay. Anyway, who cares? Says we need to start paying attention to him and do work on his other screen. You're going to do work on my screen. Uh there's an ad expert on Fetty. Yeah, I've been seeing posts about that account. That's another reason why I'm kind of curious about it. Anyway, so how are we going to write a file with this thing? I don't think that it's going to happen. T says, "Why did you decide to vendor the external libraries in Sigil? Just pulled and noticed all that stuff." Uh cuz I didn't feel like like having subm modules and things. I mean, it's not that much, is it? It's like uh embed TLS is a one of the things that's larger. I'm embedding a TLS implementation and SQLite >> [music] >> Um, now that's going into the core library right now, but I'm going to separate it out into separate libraries eventually so that it doesn't go into the core runtime so you can have it be smaller if you don't need that stuff. Kind of plug and play, but uh yeah, for now it's all in there. Add file name and then add append um or make it from a here document. Yes, that could work. So, let's see. Livecfter dashboard. Got it. And let me pull up that link. So, if you want to check out somebody who knows what they're talking about with ED, you can go to bsd.networked one. That's a Fedverse account that posts out little tips and stuff about using ED. All right, back to Ed then. Uh, Ed, I mean, I I find myself kind of curious about it, but I don't think this would be something I could actually use on a day-to-day basis to write stuff. In fact, we should probably look at it in a larger file. Like, [music] can we look at what a larger file would be like? Trev shaking. Peter says, "As tree shaking thing for sigil apps." Yeah, that actually is quite possible because I've already got dependency tracking of modules. And uh I think we could probably do that. You just get rid of all the things. But the thing is like the native code parts can't really shake that. So really anything that requires big native dependencies that are going to be statically linked or pulled in a source, they need to be separated out into individual modules. Infreak says, "Eval with sigil doesn't seem to work with function procedures." Well, it will. It does. Obviously, it does if this stream overlay is mostly working. Peter says, "I think I actually think you'll get used to add pretty quick. I'm I might do it just for fun because this seems like the kind of thing I would do, right? just do something completely pointless for my own amusement. One second. All right. Using evalid on the CLI. It depends on which CLI you're using. If you're using the boot build, it doesn't work. Although it says minimal Emacs is boring for me. Let's just use Ed. Now, I'm actually thinking about uh going back to a little bit more in my Emacs config. But then again, maybe I don't have to. So, what I want to do is open a file. Can I open a file with Ed Ed help? There we go. So yes, I can do a file. Um, what kind of file should I look at? Do I have um packages sigil lib source VMC? There we go. That's a huge file. If I do Yes. Is it 231,000 lines? Oh, no. That's characters. Okay, still that's not that's not so good. Um, was it L? Yeah, that's is that the whole file? It printed out pretty fast if it actually did. Trev says rebel is gone for me. It shouldn't be. Uh what is it? Comma P. Yeah. Is that the whole file? It printed it pretty fast actually. All right. Um how do I look at like a specific little section of a file? Like how do I go to a certain line and then um print [music] out some number of lines? I know there must be a way to do it. In general, ED commands consist of zero or more line addresses followed by a single character command. So if I were to put put like 100 P. Okay. Is that like 100 lines of the file? Is that what I just did? Address. Add address. So um 1020p. Is that right? Yeah. Okay. So 1020p. Someone call ripple 10 x where x is command. Got it. What about uh is it 10 l. Okay. Is that's a at the beginning? 2 L and then uh 10 L. Still the same stuff that we saw before, right? 120 print lines. 120. 120. Is this 120? That only print printed one line. 100p prints line 100. Okay, that makes sense. So I don't even have to use comma then, do I? 1020p. Okay, that makes sense. Cool. P prints all. Thanks, [music] Gun. Um, yeah. So, I guess, hey Judy, so how would one use this? Like if you were editing a large file like this, a super large file, how would you use this? I guess you would jump to a particular line that you knew was in the file. Is there a way to search in the file? Like if you were to use like uh s slash um call. No. And if I put h, no match. Okay. So, how how do I search in the file? 1020N. Okay, that's cool. I like that. No start, no end print. Um, 10 N 10. Okay, use GP. Do you really have to use GP? I saw that there's also the exclamation point thing where you could uh run commands. which is kind of interesting to search. Okay. SL Oh, that's like in Vim, I guess. Okay. So, uh OP call. Do I do like in for next? Next, next. No. How does it work? Slash again. Um in ah in writes the line number I guess if you knew what you're looking for. So OP tail call. Uh 10 L. No 10 N. No. Uh 20N. No. 10 20N. No. How do you find from the current location? 20p 10p. No. Okay. So, we got searching working, but uh I want to print from this location. How do I print what I'm seeing like a certain number of lines? Line editing. When Ed opens, expects to be told what to do, but doesn't prompt us. Begin by telling Ed to do so with the capital P prompt command. Okay, there you go. And now we got a little prompt. Cool. Capital P. Okay, P. It doesn't It doesn't take par parameters. Doesn't care. Turn it on or off. Run Unix shell commands with a bang. All right, so date. That's cool. Got a little tutorial here. No different than running commands in shell. Say we want to edit the output of a command and save it to a file. You can use R. Okay. Is read uh into the editor buffer. Okay. Uh comma P as a whole buffer. I guess that comma was um Ashra says you want GP G/P. Got it. So G P. All right, there's two of them. Got it. + 10 - 10. Got it. Thank you, SP. That's too much typing, though. Uh - 10 + 10 P. There it is. Okay, got it. So that all makes sense. And it does remind me of vi and vim some of the commands. It's funny that gp is like that though. So if I wanted to edit uh let's see this tail call on what line is that can I put in? So + 10 no minus 10 + 10 n. That's not the lines I was looking for cuz I was looking at something different. I see tail call here. There it is. Line number uh 5634. That's That's not right. 5634. Is that right? 5634. That's not right. Unless that means something else. Probably move the point to plus 10 at the end. You might be right. Eric says try slouchp return brings next position current line is dot where is it where is it why is it not typing because I did something in team mux that's why okay there it is there's a z command that prints out a lane uh range of lines John says is it 56 633. Uh, it's probably 5634. Nah. Was that it? 5634. Did I just forget how to read today? Is that what happened? Ashra says, "Run capital H once. Invalid command suffix." What are you talking about, Ashraz? You must be using some fancy uh version of Ed that I've never seen before. Mr. or Ashraz. All right. So, how do I edit that line? What do I do? Can I put like carrot 56 34? No. 5634 dot. All right. I'm on that line. If I put insert question mark dot dot did I did I replace the whole line? Is that what happened? - 10 + 10 p. Yeah. Oh, I inserted text like a new line there. Okay. So, how do I delete that line? Will it like D? Would it be D? Huh? And where is this? I wish I could use like up and down to get back to previous things I've typed because I don't like having to type this stuff over again. Uh yeah, I screwed something up. Who knows what I changed. H enables automatic error reporting. Who knows what version I'm using? EDM ed improved. Yes. And then you could listen to Techno the whole time that you're trying to learn how to use Ed. It would be D, but you deleted the wrong line. I don't know how. Oh, does you actually undo it? I just went to the end of the file apparently. 5634. Uh, excuse me. [clears throat] 5634. So 10 P. No [cough] minus 10. There must be a better way to get like a view of the stuff around the point. What the hell? Minus 10 + 10. I've totally screwed it up here. D for delete line. C for change line. What does change line take as a parameter with 10 P you move the line you move to line 10? Okay. Is that what it is? 10. Is it 10 P? Just 10 P. So it would be 56 33 p then uh 10 n + 10 n - 10. No, that's wrong. - 10 + 10 n. Still wrong. 5633. What is it? Yeah, Ashra says 5633d. Makes sense. You move back, dude. I don't know what I'm doing here. Okay. What? What did you just tell me with 10 P? All right. I got to put P here. Got it. So, one, you move back to line 10. Got it. Movement is by explicit by address. Do not use absolute movement unless you want to stay on that line. I don't know what I'm doing, man. I don't know what these commands are. I just use Emacs, okay? I don't know this fancy Unix stuff. I'm not a neck beard. Not to say that you are, Ashraz, but you know. Let me just get back to the actual tutorial because I'm just going off the rails here. Ed, the A command is for pinning text to the buffer. Is there like a tutorial for this thing? Sample sessions. Okay, they just type in a whole bunch of stuff here. Entering a single period on the line returns ed to command mode. Now write the buffer to file sonnet and quit add sonnet. Begin by uh printing the buffer the terminal with the p command. Excuse me. Uh se select line two for editing with the number two. Use a substitute command S to replace flivers with sliver. So, how about I do uh is that on the on the current line? Flivers. All right. And correct the spelling of fountains. All right. Roses have thorns and with silver fountains mud. Got it. I feel like we're we're reading the the text of the file through a keyhole. Like you can't actually see the buffer. You're just sort of imagining what's in the buffer at any given moment. And you have uh no peripheral vision into the [music] contents of the buffer at all. Peter says, "For ED documentation, I have to use info ed." Yeah, we're reading the info manual right now. I couldn't get it to load up in Geeks. I don't know why. Maybe I had to do It's another one of those stupid things with geeks. So, I only did Ed, but I think I need to do info in Ed. What is the e search? No. Is it text info? What is it? Probably not. Uh, there it is. Okay, that worked. basics 1.21. Okay, that was from last year. I don't know why I don't have the command that Ashra mentioned. Introduction to line editing. I probably should have popped this open as like a side panel. How do you open panels in here? I forgot. So, bump pane. Break pane to new window. Display pane menu. Search for a pane. Um, select the pain. Select the pain. Select the pain. Where is create pane, dude? Horizontal split. Sure, that works. Maybe I don't want that, actually. Vertical split. Okay, so let's pull up uh Ed in there, huh? Okay, so now we got a little bit of side by side action going on here. Introduction to line editing. Did I actually select it or did I do something wrong? Oh, I'm I'm going back and forth in a stupid info viewer. If you're wondering why I'm not doing this in Emacs, you're wondering why I'm not doing this in EMAC is because I would have to stop Emacs and reload it. I guess I can still do that. But what am I looking for? I'm looking for um peace of mind. Introduction to line editing. I think that's the same tutorial we were just looking at, right? No, apparently it's not. Can I do control V? Okay, Emacs key binding seem to work. Can I drag this? How nice. Right. Invoking Ed. That's the thing we were looking at already. Right. There was search and replace somewhere. Okay, we got that. Yeah, we have to tell it which line or range of lines we want to edit. In the example above, we do this by specifying the lines number or sequence in the buffer. Alternatively, we could have specified a unique string in the line slash and slash. So slash uh tail call. How do I do that again? All right. So for this one, let's say I want to say uh S slashtail failg fail call. Okay, so we're getting somewhere now. John says, "This developer UX is breaking my ED." Do you even ed, bro? I do not. Apparently not. I am not such a hardcore programmer that I use Ed just for, you know, you know, casual editing. Not that kind of guy. Sound like the kind of thing Trev would do. This new feature breaks Ed. Can you write files using CAT? Says Big Edie. Yes, you can, but uh I don't know that you would want to. Where's my OBS? There it is. What the hell's going on? The music's out, which means the the stream overlay is dying. Yes, the music died again. I don't know what's happening. I think MPV does something weird. Peter says club would probably feel right at home with Ed. probably would. I think you're right about that. [music] There you go. There's some music. I wish I could move forward to another song in the playlist. All in due time. Shelling out the MPV is not the best approach here. I think Infreak says, "Does Ed have any features that Vim or Emacs did to not do?" Probably not. Yeah, blind Vimming. That's basically what's happening here, Trev is we're just uh blind vimming. Trev would use EV. What's that? Does that exist? Don McLean the day the music died repeatedly on stream. That's that is what's happening. Yeah, because the MPV subprocess keeps doing weird stuff. Oh, and now my uh reream decided to wake up and start working again. So probably the people who are on the YouTube side can can say hello. Peter says, "The way these Asian edit tools work reminds me very much of Ed." Yeah, they're basically just trying to like zoom in on specific lines of text. Gun says, "What do you want to accomplish right now?" I want to not look like a complete loser. Ah, yes. That's right. TR EV with the Is that a double M dash or a single M dash? Is that two M dashes? What are you doing, Trev? Is that two M dashes? Are you crazy? Anyway, okay. So, right now we're just looking at the the documentation because this is what you do whenever you're completely lost and confused. It's nice that control and control P work inside of the info viewer, though. I have to say, let's move to the next section. Invoking Ed. Okay, I don't really care too much about that. That doesn't help me. We can jump to Invim now then. Maybe David Will isn't as cool as you, Trev. Of course I'm not. Why would I be? Syntax command line arguments. This is like the most boring stuff possible. Line addressing. That's better. All right. See you, Eric. Oslo says is quoting me. I I don't want to look at complete loser. Too late. Thank you, Oslo. Jeez. Now we got the uh Zalgo text. I'm kind of surprised the Zgo text works in the overlay here. See, that just shows you that I have proper uh UTF8 support in Sigil because otherwise that would have been a complete mess. Another quote for the for the times, I want to to not look like a complete loser. Yes, you'll have to say that again. An address represents the number of a line in the buffer. AD maintains a current address which is typically supplied to commands as the f as the default address when none is specified. Current address which typically supplied to commands as default address when none is specified. Okay. Current address is set the address of last line in the file. Current address is set to the address of the last line affected by command. Okay. Uh let's see. The one exception to the rule is that the addresses represent the line numbers is the address zero which means at the beginning of the buffer and is valid wherever it makes sense. Address range is two addresses separated separated either by a comma or a semicolon. The value of the first address in the range cannot exceed the value of the second. Okay, fine. Ncloud says you mentioned uh interest in a config management tool and sigil. Say a few words on that. I've been working on it. Um, it it's kind of like geeks without all the geek stuff. It It works a little bit, but you know, like it it needs more time to bake. Oh, the release worked. Let's see. Let me go pull that up. Codeberg. Sweet. A couple of these builds are enormous, which makes no sense. I have to look into that. Uh codeberg.org sigil sigil. This just went up. Where is it? Releases. Only on this computer does the click not work. Anyway, if you want to download Sigil to try it yourself, this may work, it may not work. You can download it on Windows or Linux. Uh, if you're on 64-bit Linux, desktop Linux, the AMD 64 version would be the one that you want to download. In fact, let me just see if I can download it right now. And run it. Uh, let's see if I can run it without that first. Download sigil snapshot. No. Where did that go? Once again, Firefox is eating download paths. Replace. Why do I not see it then? The hell? Oh, cuz it's not. Okay. mod x. Boom. There it is. Okay. Ripple. Okay. So, you can download that and just run it. The ripple is in the sigil run binary now. That threw me off. It's not actually. It's not in the sigil run binary. It's in the sigil CLI module. No, it's in sigil CLI which is what you're seeing right now. Um, which is basically sigil run which is the runtime with all the modules for the CLI and everything else bundled on top of it. So it's really just sigil run the output of sigil run which is a program with the uh module files all stuck to it. Anyway, that's there infreak. Go use that instead. Okay, don't try to build it yourself. just go download it from the download page and use it there and that will be easier to use. Says I just built it by myself. Well, you could you could do that. Obviously, you could do that, but it's easier to do this. I'm really curious to see if anybody gets to run on Windows correctly. I mean, it is running on Windows for sure. Oh, nice. Oh, Michael Lucas. Yeah, I've seen that guy around. Um, mwl.link/edmastery.html. [music] HTML and it's got a freeBSD demon on the front. Nikos says uh has the idea of a config management system built on goblins getting stuck in head. Well, there is that with um is coming geeks with uh with goblins shepherd running on goblins basically. Excuse me. All right. Anyway, there's a book apparently if you want to learn how to do um ed better better than me because I'm terrible at it. [snorts] Anywh who, good to know that the first release of Sigil is finally out. My god, been working on this for two months like non-stop trying to get a release out and now there is one. Uh yeah, the docs need to be updated now that the thing is out. Trev says, "Alternate vet is paying me in sigil coins not to use geeks and go back to Fedora." Why would you want to be in Fedora anyway? I should say I I have a ser a server that I use for my XMPPP server. Um I was having an issue with geeks where after about a week or two the server would stop responding. I couldn't assess this into it anymore and I couldn't get to my XMPP server anymore. Uh and it turns out that Shepherd, GNU Shepard has a memory leak and has had a number of memory leaks recently and it basically just causes this server to become non-responsive because or unresponsive because of the uh lack of memory left to respond to any requests. And if you use the virtual console for the cloud provider to go into the VM, you can get into it. But then if you try to run any Shepard commands, uh it doesn't give you any status because Shepard itself is hosed from sucking up all the memory in the system. So uh because of that, I installed OpenBSD on a on a machine and got set up in about like two or three hours and now I'm back to where I was and uh more stable. So we'll see how long that lasts. But yeah, the ultimate book says gun, which is uh Unix text processing covering ed. Yeah, there's so many of these like old commands for Unix that I never really got into uh because I didn't really need to. I'm kind of like primitive when it comes to text editing. I mean, I use Emacs obviously, but I don't use Emacs for the text editing. I use it for just the the environment itself and what it what it provides from from that experience. But I'm pretty uh boring when it comes to text editing. That's why when I use Vim, I didn't really use much of the functionality of Vim itself, like all the the funky [music] commands that you could do for like uh object selection and editing. Um, hey GK Sudo. Yes, OpenBSD. I've been I've been flirting with OpenBSD for a while and now I'm I'm using it on an actual production system. So anyway, uh I'm using OpenBSD on a server and I'm liking it. The book was made by Tim O'Reilly. No, GKU says, "I like Vulture for OpenBSD VPS." I'm using Hner. Um I installed it on an ARM 64 machine on Hner and it wasn't that hard actually. I just used an offtheshelf um boot image and I just overwrote the Debian desk dro on there. So I just kind of like booted the OpenBSD image and just overwrote what was there and it worked. JKU says I'm looking forward to trying an open BSD. It works there because that's the first place I got it that I ported it to another platform. So, I'm trying to run some stuff on there. Open BSD is cool stuff, man. I like it. I like how that it's kind of simple and it's meant to be secure by default. It's cool. Judy says, "I'm running FreeBSC right now." Yeah, FreeBSC is actually really nice. Um, I'm not sure how uh Echo Codeet says you should try Kakone, Kakune editor someday. I I was tempted to do that one too, actually. Um, I'm not sure how usable I'm rolling back now. Uh, OpenBSD would be for a desktop system, but FreeBSD definitely is usable for desktop system. I got a very compatible comparable, let's say, desktop setup going with Sway and pretty much everything else I normally use on FreeBSD whenever I use it a couple years ago, maybe. Uh, and it was cool. Judy says it has some problems, but yeah. Uh, then one thing it does have that's nice is Linux program emulation in case you want to run some uh, Linux programs. Open BSD does not have that. Infreak says, "I run OpenBSD. Best docs ever." Is that what it said? Yeah, I haven't uh I haven't really used it on on a desktop machine, but I I'm considering it. DK Suda says, "Is Kacune like Vim, but in reverse?" It kind of is because the the usage model is uh selection first and then editing rather than editing first and then selection or something like that. Is that how it works? The what package did we look at for um EMAX that did that? Uh I can't remember the name of it, but Summer was uh going off about it constantly for a while in 2024. I think Meow. It was probably Meow Big. Yeah, I think it's Meow. Where is Summer? We saw Summer once, like for five minutes, and I think that was the first time in maybe six months she showed up. Judy says, "When mostly works on Free FreeBSD, um, I had some other issues with screen sharing, though. I'm probably going to move to StumpWM." Man, I tried stump stump WM so many times and I just can't get into it, dude. I actually have a pretty decent stump setup that I made and I I just didn't really like it too much. Trev says, "It's winter right now. You're taking over on the dad jokes, aren't you?" Ekko says, "Kakuni is awesome with multiple cursors." I imagine it is. And says she is too busy doing fashion stuff. No, she's not actually doing fashion stuff. I think she's trying to save the world at the moment, actually. I think so. I I joke that she's a CIA agent, but I think she's actually like a some other kind of agent now. Ekko says it's the only editor where multiple cursors just clicks. That makes sense. Leonx says she has a life. Yes, that's true. She has a life unlike me who sits at the computer all day. She has her Mr. Ed or what's the horse's name? I don't remember the name of the horse, but she does have a horse. I remember the day that we we were having a stream and she's in the chat. She's like, "Oh, I'm with my horse right now in the chat on the stream." Anyway, um so have we satisfied ourselves with uh looking at at Ed today? Because I know that it we haven't really done much. I'm sure that you're all disappointed that I can't show you anything interesting about Ed itself because I don't know anything about Ed. I probably should have just let Ashraz or gun uh drive the whole demonstration the whole time instead of me sitting here just fumbling around and not doing anything uh useful. They gave Mr. Ed peanut butter to make it look like he was talking. Uh-huh. The horse is a female horse called Princess. I remember that. Judy says, "We did some editing." sort of. Auntie said, "This was an intro to Ed. It was good though." It was not good. Thank you for saying that, though. I appreciate it. This whole stream was just an excuse for me to try out my new live stream uh overlay. Rev says, "I really thought we would get Claw to use Sig, right, Ed, we're not doing that." Okay, look, we're going to see Sigil more on the streams, but we're not going to be using Claude on the streams that much, if at all. I do enough of that every day. Gun says, "We merely scratched the surface." Yes, I know that. I am I'm am certain of that. John says, "I used to have a Clydesdale horse named Montego." Clydesdale's They got some big old hose, man. Got to watch out for those. Auntie says, "Now we are ready for sigil editor." Yeah, I'm just going to make an ed. Oloy says, "My disappointed disappointment is immeasurable and my day is ruined." Thank you, Oslo, for that. Appreciate it. Uh, let's see. Lion says, "I like to see you trying stuff. People often go to the latest hype instead of being curious. Curiosity is way better content." Yeah, it it's also better if I kind of have tried it myself in advance and have their perspective on it rather than just like deciding after seeing someone use it for five seconds to do a stream. Uh, let's see. So, uh, what's next? What's next in in the world of system crafting? I think, um, I'm kind of in love with this T-Max setup. Right now, I've been using Emacs in T-Mux. I do have the problem, as we were having recently of the hitting the control G too fast and getting into the stupid emergency mode. said. No, we're not doing said. Um, but it's been working. Okay. Terminal Emacs. I'm back in terminal Emacs again just because I'm using um uh T-Max so much. I'm also not using a shared session. I'm actually opening individual Emac sessions in each of my uh T-Max sessions. So, if I were to like let's see, I'm going to rename this one. Can I click? Um, I'm gonna rename this session foo. All right. Now, I'm going to detach. Oops. I'm going to detach. I'm going to run another teammax session here. I'm going to name uh this one bar. I got Oops, not that uh Emacs NW. You get the terminal version. All right. So, I've got like two different Emac sessions running at the moment right now. And I can switch between them uh by going back and forth uh and have all the individual like terminals or other programs open which is kind of nice. I kind of like that. Altern says why I use T-Max with Emacs when Emacs be T-Max because Emacs is still does not have a good terminal emulator. So it's better to have an actual terminal if you need a terminal. [clears throat] Judy says, "Terminal Emacs has some oddities like that." You know, the weird thing though is that I've had a better time using [music] Emacs inside of T-Max than I did outside of T-Max. It doesn't really make a whole lot of sense. I don't know if T-Max does something that helps smooth out some of the issues with uh terminal key bindings, but I haven't had problems with keybindings inside of T-Mux like I did with just using in a normal terminal. I can't I don't really have an explanation for that. Alternate V says, "I don't get it, though. You don't get what [laughter] gun says just try with six ad sessions. Yeah, for for each file that I have open to edit. That sounds terrible. What usual terminal can do that V term cannot? Um cope with clawed code. Cloud code does some stupid stuff and it just grinds Emacs to a halt. Uh Superst says, "Since you're using a real terminal emulator, did you check out Lazy Git?" Um, no. But that's a good idea actually. It's basically magic. Oh, they don't have it. I thought there was lazy git inside of uh geeks, but apparently not. Judy says, "Also, I get it. I use T-Max plus terminal emacs daily." Yes, I think it makes sense, especially Okay. especially if you're going to try to get into your machine from your phone like I'm doing. So, that's what I do. I use T-Mox so that I can get into my computer remotely or my other computers. Actually, I'll tell you what I'm I've been doing. Okay, this is not going to work very well. Oh, there it is. Eventually, I'll get it. Anyway, not like this. I've been putting my terminals in a grid on my screen, and I'll actually have a few different things going on at the same time. Uh, on my work computer, I've got a TeamX session set up so that I can get into my work computer from my home computer and do my work stuff from my geeks machine because I'm tired of using a MacBook every day. Uh that helps basically being able to team to SSH into my work laptop which is a MacBook and then get into a team session there and use Emacs from in there and have access to all the terminal stuff there. So I don't have to use a MacBook and I can do all my stuff on one machine. That's a benefit. Okay, that's one reason to use T-Max Emac and T-Max. Anyway, I I don't have all the key binding set up the right way for Sway to to work with me on this. I don't really use Sway that much like for window management. So, I'm just starting to use it for window management now. So, I have to like get used to the key bindings and stuff. Leon says, "Let's code a JS on browser ED editor using ED controlled by claude. Only Ed using is allowed." That sounds insane. Judy says, "I wish I could do that. I have to exist with Windows at work." Yeah. Well, if you use WSL, then maybe you'd be able to. I don't know if you Sometimes they don't let you install WSL on machines on work machines because they have like a group policy locking it down, but um if you can install WSL, then you probably could do that. Just use MSIS 2. Maybe, maybe it could work. John says, "I use [ __ ] Plus Tail Scale to compile my work MacBook Pro all the time. It's pretty nice once you get it tuned right." I'm using um wire guard. So, tail scale is basically wire guard with automatic uh pure configuration. Wire guard you have to configure it yourself, but actually it's not that hard. [clears throat] So, I've got WireGuard set up uh with a server that's kind of like the hub and then I've got my personal laptop, my phone, my other laptop, and then my work laptop all connected together through those. Trev says zero padding on foot terminal is driving me nuts. I don't want padding though, dude. What's bothering you? I don't want padding. [laughter] Alternate bed. Calm down. You're dumping your sigil coins. There are none. Okay, there's no cryptocurrency here yet. Isn't the world over cryptocurrency? like meme coins by this point. Gun says, "I did it." You can directly connect from Emacs into a WSL on a Windows 11 host renapped with WSL SSH support. Nice. I'm not doing no crypto coins. I'm just joking around. Okay. John says, "I'm using WireGuard for a P2P peer-to-peer VPN between my home lab server and a Bastion." Yeah. Yeah. Basically, that's it. Um, wire is nice. I like it. It's fun. Good stuff. It's working for me. So, I use WireGuard to connect my machines and then I use MSH. I don't know if you've heard of Mosh, but it's basically a layer over SSH that then once you make a SSH connection to a server, then it switches to UDP instead of TCP and then you can roam between networks. So, you can leave your home Wi-Fi and get on like cellular internet and still have an active connection to your your server. So, basically now that I've got T-Mox set up and a WireGuard VPN set up, I can connect to the VPN address via SSH. The stream music died again. Uh, and then stay connected to the T-mug session as I'm moving around, which is kind of ridiculous. Is the overlay going to die now that the music went out? Alternat says, "David will pay me to have coins and hype them." I didn't do that. see a gun or just use tail scale via domain. Um, yeah, I mean, I could do that. I just don't want to. I mean, once you set up a WireGuard VPN, as long as you're not like adding or removing machines all the time, you don't have to do much. You just set it up once and it's done. And with geeks at least, you have um the WireGuard service, I think. So, you can easily set up WireGuard configuration for your nodes. Uh, John says, "I tried mosh a long time ago, but last I checked it was pretty sparsely maintained and I had issues with it. I should check it out again." It's been working for me pretty fine. I don't know. I haven't had an issue as far as I can tell. Okay, so that's basically it for the day, I think. Um, I hope that uh terrible introduction to ED was enough to uh make you not want to use it because it doesn't seem very usable to me. But I guess people like it. So, if you like it, that's great. And thank you, Alternate V, for reminding everyone of what I said. Uh, Superstab says, "Did not realize that's what MOSH is for?" Yeah, Mosh is basically to keep your your SSH connection alive whenever you have uh flaky connectivity. See any clouds? Um, so anyway, uh, yeah, if you want to check out the AI slot language that I've been working on called Sigil, you can go to Codeberg releases and download one for your operating system here. I don't know why some of these are 10 gigabytes, 10 megabytes. I need to check that out. But it's supposed to be around 2.5 megabytes. It'll get smaller soon. I don't know why that one's 3.2. It's probably for Muzzle C. Anyway, check it out. Uh, let me know what you think. And uh you know, we'll probably see it again a little bit in future streams. Eternal Terminal is good as well. I haven't heard of that one. Sounds like the right kind of thing. Uh anyway, um thank you all for being here today. Uh as always, appreciate your time and attention. Hope you all have a lovely weekend. Until next time, happy hacking. See you.
Video description
I've been using Emacs for years, but I recently saw someone using ed, the original Unix line editor, and I was genuinely fascinated. No visual feedback, cryptic commands, and yet... it works? In this stream, we'll explore ed together. I've never actually used it, so we'll figure out the basics, understand why it was designed this way, and see if there's anything useful hiding in this ancient tool. Is it practical? Is it just a relic? Let's find out! #emacs #ed #text-editors #unix #linux SUPPORT THE CHANNEL: 👍 Support My Work: https://systemcrafters.net/how-to-help/#support-my-work 📰 Subscribe to the Newsletter: https://systemcrafters.net/newsletter/ 👕 Check out the Store: https://systemcrafters.store 📘 Get Your Copy of Mastering Emacs: https://www.masteringemacs.org/r/systemcrafters?utm_source=yt&utm_medium=desc&utm_campaign=scme SHOW NOTES: https://systemcrafters.net/live-streams/january-9-2026/ JOIN THE COMMUNITY: https://systemcrafters.net/community/ (Forum and IRC chat!) https://fosstodon.org/@daviwil MY CONFIGURATION: (This site is currently down but will be back up soon!) https://config.daviwil.com https://config.daviwil.com/emacs https://config.daviwil.com/systems (Guix) OTHER SERIES: - Emacs Essentials: https://www.youtube.com/watch?v=48JlgiBpw_I&list=PLEoMzSkcN8oPZvSdewHG8uApD7THlLLCV - Emacs From Scratch: https://www.youtube.com/watch?v=74zOY-vgkyw&list=PLEoMzSkcN8oPH1au7H6B7bBJ4ZO7BXjSZ - Emacs Tips: https://www.youtube.com/watch?v=wKTKmE1wLyw&list=PLEoMzSkcN8oMHJ6Xil1YdnYtlWd5hHZql - Emacs Desktop Environment: https://www.youtube.com/watch?v=f7xB2fFk1tQ&list=PLEoMzSkcN8oNPbEMYEtswOVTvq7CVddCS - Emacs IDE: https://www.youtube.com/watch?v=E-NAM9U5JYE&list=PLEoMzSkcN8oNvsrtk_iZSb94krGRofFjN - Emacs Mail: https://www.youtube.com/watch?v=yZRyEhi4y44&list=PLEoMzSkcN8oM-kA19xOQc8s0gr0PpFGJQ - Learning Emacs Lisp: https://www.youtube.com/watch?v=RQK_DaaX34Q&list=PLEoMzSkcN8oPQtn7FQEF3D7sroZbXuPZ7 - Craft Your System with GNU Guix: https://www.youtube.com/watch?v=iBaqOK75cho&list=PLEoMzSkcN8oNxnj7jm5V2ZcGc52002pQU CREDITS: Coriolis Effect by logos feat. stefsax, licensed Creative Commons 3.0 CC-BY http://ccmixter.org/files/mseq/26296 reNovation by airtone, licensed Creative Commons 3.0 CC-BY http://ccmixter.org/files/airtone/60674 ukeSounds by airtone, licensed Creative Commons 3.0 CC-BY http://ccmixter.org/files/airtone/32655 Between Worlds (Instrumental) by Aussens@iter, licensed Creative Commons 3.0 CC-BY http://ccmixter.org/files/tobias_weber/56664