 The drum is going to start today very soon, very much poetry away from us. Yes. So welcome, everyone. So yeah, it's Sunday morning, and I didn't want to bother you with something complex, so we're going to do poetry. I'm Joe Martin, and I love programming, but I also love poetry, and I wondered if it would be possible to make a poem-oriented language. So the basic thing is you write a poem, and you hide a program inside it using some words you put inside the poem, and then when the poem is read by the machine, it executes the written program. But to do that, I needed some kind of machine on which makes the program work. So I need to find some kind of virtual machine I could generate code for and make the stuff execute. And so I tried to find a machine that would be simple and minimalist, but complex enough to make some interesting stuff. And so before revealing what kind of machine it is, I need to make a demographic census in the room. So the question is, who in the room was born? I wasn't. Who in the room was born in or before the 70s? Raise your hand. All right. All right, that's great. Now, who in the room is ready to go back right now to the 70s? All right. Perfect. So OK, special effects. I have my hands up. So now we're in the 70s. And in the 70s, you might remember that something that is called the chip 8. So the chip 8 was one of the first ever creative virtual machine. It was created as a simple way to write programs directly in excelsis. Is the microphone working or am I doing that? Perfect. All right. So it was created as a way to write games easily. It was in a time when C does not exist yet. A lot of programming languages did not exist yet. You would write your program directly in excelsis mode. You're nearly programming directly in binary. And so there's the Wikipedia page of the chip 8. And so you could write programs like Pong or stuff like that. And the first time the chip 8 machine was announced was, at that time there was no internet. There was magazines. So you would buy some magazines. And inside you would have the code to implement the machine yourself. And so we're going back through the archive of Time Machine. And we see the Byte magazine from 78. And inside that magazine there was something called an easy programming system. And it actually explains in a few pages how to program using that machine. Are you ready for some advertising from the 70s? Because on every page there's like, wow, check out that new draw drive, new for me for pets. It's only $1,295. Great. So if you flip the page, wow, that's like a new graphic code. OK. And there you have the complete list of instructions for the chip 8. So there's like only 35 of them. And you would write directly in exodus math there. So the first nibble, it's called the nibble. It's like four bits, would be the instructions. And then you would put the arguments for your instruction on the next symbols. So for example, if you want to jump, you would put a 1. And then the three nibbles would be the address you want to jump to. And so the system is interesting because there is some easy way to make graphics. For example, the D, where is the D? It is a, is it? Show me. Yeah. Yes, there. So there, this instruction allows you to write on the screen. There's a 64 by 32 pixels screen. And by just calling that, you would write a sprite on the screen. So on the next page, you can see it explains how to encode graphics inside the computer. And then there's some coordinates on the screen and stuff like that. There's the first truly science motherboard. I love that. They're very awesome. And it would explain to you how to make some kind of space invader game. There's like the workflow diagram. I think it's there. Yeah. There's a workflow diagram for the program. So you would be a child and read that and try to understand how it works and get the game at the end. And there's the full code for the game. So you would type down all those bytes and you would get the game. It fits on only one page of a magazine. That's kind of awesome to see a complete game fits inside only one page of the magazine. And so this platform allows us to, it's easy to implement. And I could quickly make an emulator for that. And I want to try and see if I can write some programs in this. But instead of writing exactly single values, you would write poems. So to do that, you would need to, for every instruction, you would have a specific verb that you would use in your poem. And the verb would correspond directly to a machine instruction. And so that's what I did. And you can connect directly to relu.eu slash poem and try that by yourself. So I made a website in which you can type your poem down there. This one is a bit, it's not exactly a poem yet. It's in transition. But it has the minimal stuff. And I'll show you some other poems later. So this one is exactly the same as the one we saw with the rocket and stuff. And if I hit read, all right, I get the program from the bike magazine. And so if I understand the game well, this is a rocket. And you need to shoot down the alien by loaching the rocket at the right time. And you get points. All right. So if you miss the rocket, I think sometimes it misses. It's the hard game. Yeah, yeah, it's an extremely hard game. And oh my god, I'm nearly the best All right, I did nine out of nine. That's the best I couldn't do it. That's the first time I get the highest score. So I'm going to try some other poems. Let's see. So this one, this is the first one I wrote when I tried the platform. So the way the poems work is you can give them titles. So the title would be this part between dashes. And then you would have some lines. And the titles would allow you to jump and put labels inside your code to jump from one part to the other. So the way it works is paint here is the verb for drawing something on the screen. Then empty is the argument zero, is the number zero. C is the number two. And water is also the number two. So life is the number 15. Fender is the number 10. Stee is the number three. And there's a dictionary of correspondence between nouns and numbers. I did that here. So there's numbers here. And so zero could be something like void, death, night, black holes, emptiness, and something. And there's elements for every number. So you can write a poem using elements of nature and stuff like that. And that would translate into machine codes and passing arguments to functions. So if I try this one, it should do something like. So it goes through all the lines putting a random one or zero on the screen. Yes. And another one. I'm kind of, this one is fun too. So this one is a bit longer. And I didn't translate it yet into a complete poem. But it's a fully working Tetris. So you can actually play Tetris and oh, yes. There, there are the lines. And so I could play that for hours. So the next step here for this one would be to translate it into a complete poem. For example, if we try to translate the first part, this is the code that draws the base of the game area. And so we could replace zero by emptiness and one by water. And so we would say add into the emptiness some water from your eyes, something like that. I'm just making this up on the go. And that is the exact same program as the previous one. So I could do that for every line and try to create something interesting, maybe doing some rhymes or stuff. And that would still execute into the Tetris program. And so the platform is pretty complete now. There's like some other things going on. But for example, I wrote a pretty complete documentation. Like this is the dictionary. And so you can see every available verb you can use inside the poem with all the arguments it takes. So the complete documentation helps a lot to write the poems you want so that you can hide your program inside that poem. If you want to try yourself, you can connect to that. That's online on my website. And so you can try making some poems yourself. You can try the poems that are on the GitHub page. If you go to the GitHub page and in the poem section, there's some other poems if you try. And so during the day, you should make something interesting. You can post it on masterdom with the hashtag code poetry. And so I'm eager to see what kind of poems you can write with that machine. So thank you for your time. And if you have any questions or stuff. Yeah, OK. You can still do questions. Yeah, sure. Yes? So you talked about rhymes and some hard words. And don't go into the semantics of the program that you can just use at the end. So the question was, does the rhyme has something to do with the poem? Or can you use any words to make the rhymes? And so actually, yes. Currently, the rhymes don't do anything inside the program. But I'm planning maybe the rhymes could be encoding something inside the program that would be interesting. Another thing I thought about would be a expert mode in which instead of encoding the numbers using pre-made, additionary of pre-made numbers, you would encode the numbers using maybe the number of vowels, the total number of vowels inside the line, for example. So you would need to write a poem with the correct number of vowels to encode the correct number. That's an idea I have for later. We'll see. Yeah. Maybe you would pose even a restriction or else. So net form, for example, or limeric form. And then you're only allowed to have these kind of programs. Yes, so the question was, is there any limitations in the way you can write the poems? And so right now, there's not a lot of limitations. Only using the dictionary words, that's the only limitation for now. But that could be interesting to add some over limitations to the way you write it. Great. Yeah. Thank you very much. Thanks. Yes? So you talked about Mr. Don, to share your creation. Would there be a way to do some code go with the most beautiful poems to solve one problem? So it would be pretty creative because you could give one challenge in one way or just give this program. And everyone would have their own. So you have their own poem, really different. Yeah. So that was a bit of a question and also a suggestion, an interesting suggestion. It was, in Master Don, you could post poems and try to have some code-gold thing about what would be the better poem for one kind of code. You could have a program and see all the people trying to suggest the version of the poem for a specific. Thank you very much. Yeah. So if you want to take your own, take them afterwards. Thank you very much. Next week.