 I was doing a bit of experimenting today, playing around with API choices and stuff like that. And let me show this off and then I'll get into what this actually is and what the motivations were. What did I forget? Oh. I think that's it. Yeah, there we go. Okay, let's get a trace running. So, the IPv4, destination, and I'm sending it to, okay, sending it to my gateway. So, let's apply that and there will be, because I forgot something important. Well, there we go. HTTP payload, you can see that it is HTML. We can go a little bit further. Let's smack this in a div, be another payload and you see it's now within a div. And let's just do some really simple tests that's going to fail. So, I guess just if false. Does this compile or not? I don't remember if that will actually work or not. It compiles. Does it do what I want, though? It does. This is rather exciting to me. Now, very important thing, I want to get out of the way. This is overwhelmingly prototype stuff. I have no idea if I'm going to finish this. I have no idea if I want to or even if this approach will work when scaled way out. But the thing I was thinking is that it would be pretty easy to create a domain specific language for this where it translates a few things over from the DSL into this code. So, if we were to translate that, let's indent a few things first. Well, other way. Yeah, this will work for now. This will work. It'll get the point across. So, if we were to modify this into a rough sketch of DSL, probably we wouldn't even need that net, to be honest. I think you can see how this could be pretty easily translated into what we just had. Now, the idea of using pre-compiled webpages is not actually that unusual. I know a lot of people know web development stuff from PHP and Ruby on Rails. I think it's Django for Python. I'm not super big on web development. But pre-compiled webpages are actually a thing with an Asp.net make quite a bit of use of them. They existed pretty well before that, too. What's the thing called? CGI and FastCGI were essentially using that well before any kind of language-specific web server came about. You will also notice, though, that the sockets that I had defined there, which was basically just this. I don't know if you've ever used NATsock. There's a lot more writing than just this. In fact, I think I still have the thing I was doing with NATsock. Yes, I do. This is opening up that same socket in NATsock and then writing just a string. It was kind of bitching on Twitter earlier, so that's what this was from. I'll show what's in these, but there's not a whole lot right now. But the socket is essentially a wrapper around this so that this entire thing could be condensed down to this part and this part, which is a lot less writing, a lot easier to make use of. This is a lot. And mind you, this part is obsolescent nowadays anyways, so you can generally remove this, but the rest of it still needs to be written, and that's a lot of stuff, a lot of stuff. So delving into what I was dinking around with, the sockets package is literally just a wrapper around NATsockets right now. It takes advantage of the controlled types to do some special stuff in the initialization and finalization. Where is it? Yeah, so in initialization it actually creates the socket and assigns the channel and a finalization that closes the socket and nulls out the channel. Other than that, basically everything is just wrappers along with some interface to the actual stream because the socket type is wrapping up the stream as well. And the way this works is a little wordy. There's a heck of a lot going on here. It looks a lot more overwhelming than it really is. The only thing that you'd actually be making use of is the put for the content tag, which of course isn't a real thing, but I needed to have it called something. But then just like the div and end-div and paragraph and end-paragraph and the same for any of the other ones. What these actually do behind the scenes is tack on to this list. Now I'm using the doubly linked list and the add as containers. I'd probably write out my own because there's actually a validation thing that should be doing in what would be called a loopback link list or something. Lists can get really complicated, but it's essentially a list with loops between specific nodes. And you'd use that to validate that all the tags are actually ended appropriately rather than sending it off to the browser for them to find that out because you don't want the person browsing your website to find that out the hard way. This is just a proof-of-concept right now. Yeah, this is pretty delightful compared to what AWS does. Actually, I'm doing mod stuff too. AWS, yeah. There's demos. They got a lot of demos. I think we can go into... Yeah, they got templates in split. So let's do... Yeah, how fun reading that. Still, like I said, I don't know if I want to go the whole route with this. I don't know if I'm actually going to make this a thing or not. It was just something I was playing around with, but I did want to show it off.