 All right, so please join me giving a big clap to Nicholas. Go for it. Thank you. So thanks for the invite. My name's Nicholas and I'm a freelance Python developer from the UK. The focus of this talk might not be immediately apparent from the title. So let me explain a little. In this talk, what we're going to do is explore just a big subject, how humans communicate via computers. How software influences the nature of that communication. We're also going to do a little bit of digital archeology of old technical solutions for this problem. And I'm going to sort of wrap up with a show and tell of a fun brain break experiment in recreating these solutions with modern technology. But I want to set the scene. Let me just move. I want to set the scene with this photo from Europe Python 2011 in Florence. And what it does is that it captures the wonderful nature of the corridor track. As you can see, well, I'm actually stood in the middle in the red T-shirt and there's a collection of folks. We all appear to be holding penny whistles, which seems appropriate for a conference that could have been held in Dublin. And there's a guy with a guitar strumming away with us. It's informal, it's friendly, it's diverse, and it's fun. And this is why I love Europe Python. It's a nice place to hang out. And I get to see my friends and I get to make new ones most importantly. So let me just rearrange my window. So that I can see things. Yet, 2020 is the year we all learned to try to stay close whilst remaining, at least in the UK, two meters apart. And this has been a difficult time as we learn to change and adapt to the new circumstances due to coronavirus. But I'm extremely grateful. I want to put this on public records for the volunteers who put on Europe Python. Their efforts are often taken for granted and you wouldn't believe the amount of stress and the number of problems they will have to put up with. So this is especially so now that Europe Python is remote. And the current situation has also brought into focus an important question. How could folks remotely recreate the opportunity for chance encounters, unexpected conversations and exploration of a venue and a new city with friends, which is the sort of thing that happens at Europe Python. How is such a warm friendship expressed most effectively through a digital medium, a remote digital medium. Perhaps more importantly, how do we foster tolerance and compassion or corrections of misunderstanding and all that other good stuff needed to so a diverse community full of differences and unique perspectives is able to live with itself without becoming a fractured and toxic place. So Europe Python has decided to use discord in this sense. A chat service written for gamers. Now, I don't know about you, but I like discord a lot. And I'm actually really pleased that Europe Python organizers chose it over other solutions. Others being things like Slack or Microsoft teams or Google Hangouts. But discord is typical of the current state of the art in that they all look and function similarly. Yet I don't actually feel that comfortable at times with the current state of the art. So let's start by exploring my problems and discomfort with these platforms. Let's also try to imagine perhaps a more expressive, simpler or perhaps humane alternative too. So I'm going to start by taking discord to pieces. If you see what I mean to see what's going on. Actually, there's a lot going on in this application. For those of us used to computers. This is often easy to miss. This is rather a complicated user interface that we can see in front of us. We are literally bombarded with data, metadata, icons, time stamps, reactions, labels and silos are the norm for remote written interactions such as those that we might have through discord. And I'd also like to point out that discord is also ultimately a very transactional sort of way to interact and I'll come to what I mean by that in a second. But discord isn't, this isn't the case for just discord. This is the case for other social media sorts of platforms. So let's unpack that a little bit. So this is Twitter. There are familiar patterns in Twitter and this isn't so much a conversation as shouting into the void through the inconvenience of a 280 character limit. And look at where all the adverts are. And here's Facebook, the redesigned Facebook. Facebook fills to me the most mediated platform. This is most blatantly an exercise in retaining my attention at all costs rather than fostering a place for conversation or making friends or being friendly with people. Most problematic for me is the nature of our interactions with such platforms. Our interactions have become digital transactions. Transactions have metadata for analysis. Transactions are dislocated. There's no sense of place or occasion to such transactions. Transactions are impersonal such as with Twitter shouting into the void as it were. It's hard to have a conversation. Transactions are evaluated so we get to see likes and retweets and reactions. It's turned into a sort of popularity game. Transactions sadly are curated by platforms to capture our attention. Click here, react, reply, share or only show those things that are most relevant to you while who decides what that is. Sadly, our socializing is reduced to interactions that standardize, process and normalize our lives into a digital production line of uniform social outputs. Like something, post a picture, reply with a comment, set your mood, that sort of thing. The messy, complicated and raw aspects of life which I would argue are the most valuable, fun and interesting are lost or have no way to manifest themselves through these sorts of platforms. We've commoditized ourselves into a dribble of systematized digital assets, photos, posts, likes, that sort of thing. And also, is it just me but why do I always get the impression that the design of social media has been designed by Peppa Pig? Soft colors, cute, neutral and just a little bit infantile in tone. Or perhaps I'm just getting old. I'm the digital version of damn kids, get off my lawn. Or perhaps current technical solutions to remote collaboration, community and friendship feel like I'm being analyzed. My attention is being manipulated and I either want to be able to pay or see adverts to get anything done. None of which is conducive to me to making a place where I can have humane conversations and make friends. So, given the lockdown situation that we face, I ask myself, could there be a more natural way, creative way, simple way, expressive way, respectful way, authentic way, to meet, make friends and interact online? How do we remotely recreate the opportunity for chance encounters, unexpected conversation and exploration of a venue and a new city with friends but online rather than in Dublin? How could we recreate the online equivalent of our beloved corridor track where all these friendships and lovely conversations happen? And then as if by magic, I remembered a distant memory from my childhood. Text-based worlds with epic stories, curious locations and imaginative adventures. And this got me thinking. So, there's a bug in Firefox that means I just have to reload this iPhone. So, here we go. So, bear with me as I go on an adventure game. This is what a text-based adventure game looks like and feels like. This is Douglas Adams' own recreation of his novel, The Hitchhiker's Guide to the Galaxy, as a text-based yet interactive virtual world. Let me explain the mechanics of this. Text is displayed on the screen. The screen is up here for me. The screen is up here for me. So, you wake up, the room is spinning very gently around your hair, or at least it would be if you could see it, which you can't. It is pitch black. Let's have a look around. Nope, it's pitch black. Let's switch on the light. Good start. I'm in the room. I don't know if I get all the objects because I need them later on in my adventure. I can't do that because I'm still in bed. Why don't I stand up? This is very difficult, but I manage it. I see to have a hangover by the looks of the descriptions in the text that's coming back. Let me get all the things. Why don't I put on the gown? That's what Arthur Dent is famous for. If I examine the gown, this might tell me something more about what it is. The dressing gown is faded and battered. Clearly garment that has seen better decades. It has a pocket which is closed and a small loop at the back of the collar. That pocket looks interesting. Let's take the tablet. After a few seconds, the room begins to calm down. My headache has gone. Let me have a look around again. Where are the exits? Small bedroom, washbasin near the exit heading south. I type S to show that I'm going south. I'm now in the front porch. This is in close to the porch. I'm on the door. I've learned by playing adventure games it's best to take everything. You never know when you might need it. I gathered up the pile of mail. Let's step outside. This is where the actual book picks up. Mr. Process from the local council has a bunch of bulldozers. He wants to knock down your house. He's trying to lie down. That's better. I can't speak English. You get the idea. I tap something and things happen. It's quite good fun as well. That was a single player. Text based virtual world. Soon after the appearance of such games. Some university students in the UK invented mud. A mud is a multi user dungeon. It's a multiplayer text based adventure game. A little bit similar to the one we've just seen. The video I'm playing at the moment is of an interaction on the original mud that I recorded a few days ago. In it you'll have seen that I've just finished chatting with a wizard called Piwacket. At some point through the video I come a cropper with some rats. You can enjoy that as I keep talking. But the thing about these sorts of adventure games or mugs is that they are low tech. So I've actually connected via telnet, believe it or not, although proper clients are available. It's quirky. There's humour, imagination, playfulness. But sometimes it is serious. There's literary. So there's a narrative there. There's a sense of place and time and genre. And in this case we're in a fantasy world. Although we were in a sci-fi world with Hitchhiker's Guide to the Galaxy. And actually it's a lot of fun. There's also many varieties of mud. In the mid 1990s when I was at university, I would play on something called a moo. A moo is an acronym for a multi user dungeon that's connected to the object-oriented M-O-O moo. And in a moo what's interesting is the textual world is a collection of user-generated objects. Users program the behaviour of the world as well as inhabiting it as well. It becomes an interactive development environment. And that's in contrast to the mud that we've just seen, which has been programmed by someone that everybody collectively plays. So muds and moos became very popular. Before all the toxic aspects of current social media platforms, such behaviours were sadly manifested in these virtual textual worlds. A most famously documented by Julian Dibbles, a rape in cyberspace, which I highly recommend. It's a very thoughtful piece. Yet at the same time these were progressive places. And I made many friends all over the world at a time when such things were still viewed with incredulity. Social scientists, psychologists, literary critics, artists and educators all got interested in these platforms. MIT professor Sherry Turkle famously analysed such online role playing as a way for folks to explore different aspects of their identity in a relatively safe manner. The challenges that may arise in such platforms would allow folks to reflect upon their behaviour and get to know more about themselves, a sort of narrative development of their lives. Now, being British, I spent most of my time asking my fellow players what the weather was like, where they were, be that San Francisco, Paris, Tel Aviv or Singapore. This, for me, was strangely satisfying and it made me feel like a true citizen of the global village delivered via the information superhighway that was my 56k modem in the 1990s. I also built a textual interactive representation of a remote Scottish island that my girlfriend, now my wife, and I visited over the summer of 1995. I still have a backup and it's an interactive digital memento of my 21-year-old self. It was and it continues to be fun to write, explore and interact within such worlds. This all feels very low-tech, but I like that. I don't miss the transactional and manipulative nature of the current state of the art. And the focus is definitely on being in a specific place in a certain moment with particular sorts of people. The things I love about words are that they are, well, tell Rahul and show. The user's imagination is paramount. This is reflected in the simple and cluttered user interfaces where the text is most important. They could be playful or serious, but always tell a story within a recognizable literary genre that sets the scene for interactions between users. Whereas graphical games focus on hand-eye coordination and showing us things, text-based worlds put narrative, meaning and intent at the centre of their process. And while the reader may have more to do with their imagination, I believe the reward is far greater for what you imagine will always have the best special effects. Literary worlds are also more egalitarian and accessible. They're within the realm of a single developer. So there's very low overhead in technical terms. This to me reminds me of the difference between making a movie which requires thousands of people or writing a novel which, whilst still an onerous task, is something that a single person is able to do. So I ask myself, what would a mud or a move written in 2020 look like? Well, as it happens, I'd already answered this question. Pi Week is a game jam for Python developers and it's organised by the amazing and hugely talented Dan Pope. It's a wonderful hidden gem of the Python community and I would heartily recommend that you should try it. It's a very friendly place and it doesn't matter if you've never written a game before, you'll have a blast. I've had a wonderful time. And in 2019, with my buddy, Andrew Smith, I entered as a team. Andrew is an author and a journalist. So we wanted to do something text-based. And the theme that was given for this Pi Week was six worlds. And we decided to create a simple moon-like game where folks could build things, add behaviour via a list-like scripting language and interact with each other in the style of six different literary genres. Jane Austen, poetic passions where everything had to rhyme. Hard-boiled detective novels. Something we called J.R.R. fantasy. Sci-Fi in future worlds. And of course, something that we called parry-hotter so that we wouldn't infringe somebody's copyrights but you get the idea. However, TechSmith was born. But it was written in a week of furious coding. It was the minimal book-like user interface. And the focus was definitely on creativity, exploration, a sense of place and a genuine textual interactions with others. This was incomplete. But folks could make objects. And we had the start of a list-by scripting language to make the world come alive and programmable. The video is a short exploration through the web. It's browser-based with web sockets handling everything in the background. While familiar in modus operandi, the user is moving between places and meeting other users. We've added a multimedia spin to things too. You can see there are pictures and you can see I'm just about to start some audio which I've not captured in this particular video. It adds to the atmosphere. I'm almost tempted to think of this as a game. It looks as if it's a printed word. This is important for us too. We're focusing on the text. Happily we came forth in the team category which is our best result ever. And folks appeared to like it. The idea for this is unique. This has great potential. Really cool entry. Really would have liked to see that scripting language mentioned in the help text. It would have been so much fun to explore all of this. It would have made it a lot of fun to explore all of this. I had so much fun that I couldn't stop reading about mods or coding on text. My desire to write, create, imagine, play and explore fueled my enthusiasm as did my growing dissatisfaction and unease with the current state of the art for chat or text-based interactions on the Internet. Since the UK, like everywhere else, was in lockdown, I decided to entertain myself after work by rewriting text myth properly. I had to turn a week of hacks into something that I would like, you know, I could share with people. It has full test coverage, docs, scalable architecture and so on. In other words, code I'd want to show the world, like here at EuroPython. Which was remarkably good fun. Starting at the top, designing virtual worlds was written by Richard Bartle, who created the world's very first mod. And it's a sort of a Bible, really, for those people who are interested in this sort of thing. It's also a cracking good read. I highly recommend it. A theory of fun by Ray Costa is also very good and it's actually cartoons and writing, so it's a playful sort of a book. Ray has been involved in an awful lot of massively multiplayer online games in his time. My tiny life by the aforementioned Julian Debble is a good historical context about what was going on back in the 1990s in these text based worlds and contains not just the infamous or famous raping cyberspace paper, but many, many more that deals with different aspects of how people communicate and interact and build and make things in a digital world. If you remember, I mentioned Moo as being a type of mud. Well, the original Moo, called Lambda Moo, was created by a chap from Xerox Park called Pavel Curtis. And so I managed to find a version of this online, still online, the Lambda Moo programme is manual. And this was a great technical inspiration for me. Finally, there's Getlamp, which is actually a documentary, a creative commons licence documentary about adventure games and this sort of genre. It also looks at interactive fiction and things like that. And if you're interested in finding out more about these resources and if you're interested, I hope you do. The slides for this talk are linked from the page for this talk on the Europython website, so you'll come through and follow the links yourself. This was all remarkably good fun. So, how does the revised text Smith add up? What parts become the sum total of text Smith? So, let's look at our little diagram here. At the top is basically the front end. At the bottom is Redis, which is the data back end. And the middle is obviously the middle there. Let me take you through each of these aspects of the platform in turn. So, starting top left, Quart is an async.io web framework, a la flask, in fact the API is exactly the same. And this is the thing that provides WebSocket support and the website for text Smith. Now, Phil Jones, who's the maintainer and creator of Quart, does a great job. And I have to say, put it on record, this has been an absolute joy to use. So, if you are familiar with Flask and you want to do some async, I know, sort of development, Quart is definitely the way to go. Of course, output to the user is framed within Ginger templates. That's nothing out of the way about that. And then we get to Babel for internationalization. And this slots really neatly into Quart. So, text Smith is fully translatable. Text based virtual worlds are not just English virtual worlds. And I want my code to respect and acknowledge the diversity of folks who may use it. In whatever language they might want to use it in. The middleware of the app is all Python async.io and I use some really wonderful libraries to help make this easy to use. So, if you look at the code, if you look on the right, struct log, I'd like to point out is a really helpful way of letting me see what the application is doing. It emits structured logging. Using the 12 factor app scheme for web apps. And it's just slotted in and it worked perfectly. So, if you look at the libraries for things like connecting to redis, processing forms, working with e-mail and things like that, they just worked for me. And I was a bit cautious about using async.io because I know it's perhaps the ecosystem with async.io is perhaps not as mature as other places in the Python ecosystem but everything just worked for me. Which is a real great thing. On the right-hand side, you'll see a gentleman that might look familiar due to keynotes at previous Euro-Pytons, a very sly looking Dave Beasley. Sly stands it for one of these three letter recursive acronyms. Sly is a lex-yack thing. So, sly-lex-yack. And this is a module that Dave has written that I use to process the nascent, lisp-like things. Dave's work has been a fun way for me to learn about the language design and learn about language design and implementation and all that other good stuff which is part of computer science that I'm not that familiar with. I'm actually a classically trained musician so I don't have a computer science degree so this was great fun. But there's still lots of work to do on that front. And finally, redis is used as a fantastic key value data store with a host of simple yet powerful features. I've been very impressed with it so far. It also comes with a message queue that's used by TechSmith for inter-object communication. For example, if a user, an object, says something in a room, another object, then a message from the user describing what's been said is sent to the room via the message queue. Then the room itself will send messages to other users in the room telling them someone has said something. It is these messages that the users receive saying Fred has said hello that are sent to the user's browser via the WebSockets. TechSmith is also designed to be scalable as well. So you can have as many Python instances of the application as you want because they scale horizontally. And all the interactions between these nodes as it were are through the redis message queue and of course that the back is a redis cluster set behind all this. However you could just always run this as a single app with redis running on the same box. So how does it work in terms of working with the user? How is user input handled? Well, we have the following workflow. We escape any HTML if the user input, that's very important first. Then we handle special shortcuts that allow people to say things, shout things, say something directly to a person. If the input doesn't match that, we check if the first word in the sentence is a built-in verb like get, drop, build and what have you. Then we pass on the handling of the rest of that message to the built-in function within TechSmith. If that doesn't match, we break the sentence down into some grammatical parts. The verb, the direct object, the preposition, the indirect object, I'll come to what those mean in this sentence. Then what we do is we match the verb to an attribute name of objects in the room and we do that with a sort of order of precedence. So we check if the verb is an attribute of the user, if it's not, we check if the verb is an attribute of the room, then the direct object and indirect attribute value in the necessary message queues. Now, if the value of the attribute is a string starting with hash bang, we evaluate that as a script. So for instance, if the whistle object has a blow attribute with the value the whistle toots, then the command blow whistle will result in the whistle toots being displayed to everyone in the room. The verb blow was matched against the whistle object and therefore the value of the attribute blow was displayed. So let's just have a quick revision of grammar from primary school. So if we have the command stack treasure on table, the verb is stack, the direct object is treasure, the preposition is written, and the indirect object is table. Now, of course, this change is depending on the local or the natural language that the user is using to interact with text. This is something that we need to handle ourselves. So I mentioned script and the scripting language. It's a very simple list-like thing. How does that work? Well, it's definitely a work in progress, I can tell you. But scripts are evaluated in a way that makes it easier to interact with text. So scripting is a very simple thing. The user who gave the command, the room in which the user finds themselves, the exits from the room, the other users in the room, things of the object in the room, this which is the object that matched the verb, the direct object and the preposition and indirect object if they exist, and, of course, the raw user input. That they've run out of time. Scripts may also only update objects within the context that they find themselves. Scripts execute the privileges of the user who cause them to run. So if a script tries to change the description of an object that I don't have permission to change, then the script will fail. Scripts may only emit messages to objects in its current context as well. And, of course, if the script fails, users get a meaningful error message or a stack trace. And that's just the user who tried to run the script. Of course, the last thing we want is to fill a room full of stack traces. So that's essentially how the script works. What's the current status of TechSmith? Well, TechSmith, I estimate 80% finish. I'm having fun and speculating about how people could creatively connect with each other through code that promotes a space for playful or serious interactions. But as they say, I've only got the other 80% to go. Now, that's doubly so in this case because that other 80% is going to be the worlds that are built within TechSmith. So we're coming to the end now. And we'll have a bit of time for questions in a moment. But all of this makes me think of nested textual systems. And those of you who've read go to Lesha Bach, see where this is going very, very quickly. There are, in essence, textual systems within textual systems within textual systems going on here. So, for instance, Python is a text-based programming language. TechSmith is a multi-user platform for building interactive textual worlds. And the textual world inhabited by and meaningful to the users is built on TechSmith, which is built on Python. Okay? So it's a bit like what we can see on this slide here. We see a picture but we also see a hand holding a ball in a picture. And we see the artist reflected in a ball held by a hand in the picture. So it's kind of not turtles all the way down, it's abstractions all the way down. So in conclusion technology cannot alas of itself stop folks from being rude, thoughtless, ignorant or intolerant. But that shouldn't stop us from trying to imagine and create technology that emphasizes our humanity, autonomy, and promotes mutual respect, tolerance and compassion in a diverse and cosmopolitan society. TechSmith is a goofy game. TechSmith is also a kind of a thought experiment in code. But most of all it's a multi-user collaborative development platform for creating and inhabiting interactive textual and multimedia literary worlds. All this without transactions analysis of your social graph manipulation of your attention or clickbait adverts tailored to your user profile. You can find the code and the docs in the links that are in the current slide. And for those of you who are interested in finding out more about muds and moos and all that other good stuff I highly recommend the Titans of Text podcast. It's US based and that's great fun, they get all sorts of people talking about interesting mud and moo related things there. And it's also at times quite thoughtful. There's also the mud coders guild. I'm not the only one doing this sort of silly thing. There's actually a remarkable amount of people doing this sort of thing and I was really pleased to find this place. They have a Slack channel and there's some really stimulating conversation going on there. And there's also a multi-user dungeon server on discord as well which of course you'll need to find you'll need to get in an invite for but you could probably get that through people in the mud coders guild. So I'm pretty much on time I guess for a few minutes of questions. So are there any questions? Thank you very much. Thank you Nicholas. You are on time indeed. So just a reminder if you want to drop a question use the Q&A function on Zoom. So we have a question from Thomas. You said it is translatable to other languages. Does that also apply to the grammar used to analyze sentences? I knew I'd get a question about that. Not yet but the mechanism is in place. So I'm writing this obviously I'm an English speaker and I'm writing this with English in mind but there are certainly going to be stubs well you can see even now there are stubs in the code where it is doing the equivalent of a case statement I guess a switched case statement that's working out what the user's preferred locale is and it will analyze the grammar in the appropriate sort of way. Error messages and things like that are also translatable. You'll see that all the strings in text with a babel translated. Awesome. Reese is asking what should take on VR being applied to months or moves? So I'm assuming sort of you mean graphical presence in a virtual space. I think it's great fun. My son has an Oculus thing whatever it is he wears and he likes using that and playing games and things like that and he tells me that Firefox have some sort of Firefox labs type thing that will allow him to be present with his friends who also own the same model of device. They've not figured out a standard yet that's yet to come. I mean that's interesting it's like lawnmower man another reference to the 1990s there. But I like text call me old fashioned I like the fact that I can let my imagination fly and text is perhaps the best way of letting that happen and the thing about muds is that because it's not just transactions of conversation going on there's a place, there's a sense of traveling around, there are objects there are ways to sort of interact with players as well in a non-obvious way I missed out a whole section on some of the stuff that Julian Dibble mentioned some of the innovations that we still don't see in current text based systems that were sort of invented and used in months and moves in previous decades. So in a sense they're also at the very forefront of technology and waiting for folks to catch up. So I don't know VR is cool I like space rockets and flying cars in that sort of way but I also like reading books and text based things too that answers your question Cool Dennis is asking are there new challenges to creating muds in 2020 that were not present in the 90s? I'm tempted to say yes our development environment and the cloud and Kubernetes and Amazon and all of that sort of stuff in the 1990s this was a single server running on a single box that usually had a host name it was their pet rather than cattle to use the terrible analogy that cloud uses and that in itself is kind of cute whereas as you've seen the way I've tried to organize TechSmith is as a dynamic web application as well. So I would say we've learned a lot more about how to do this perhaps and the tools are more available. I've got a sync IO I've got Quartz, I've got Redis and things like that so in a lot of senses I don't have to reinvent the wheel where as folks in the 1990s would have to do that but yeah it's still a challenge because I have to imagine things and that hasn't changed all right thank you. Stanislav has a question as well have you tried using machine learning for generating content inside a game? I remember seeing something like this in the world yeah okay so that was yes so you're looking at maybe an open AI type text generation here so there was lots of discussion about this on some of the mod forums that I've been inhabiting over the last few months text generation for adventure games for single player adventure games like the Hitchhiker's Guide to the Galaxy thing that I showed as part of my talk that's happened the corpus that was being used for that sort of stuff however was taken social media and things and the quality whilst initially it looks cool and good and things the quality of it after a very short period of time you get bored of it apparently this is what I was told by somebody who'd been experimenting in the field with that sort of stuff I've actually been I used a Markov chain to generate some room descriptions based on stuff that I'd been scraping from from other mod's descriptions so that all the fantasy ones we had lots of orcs and the elves of Truffleleon with their goblets of fire and all of this sort of stuff and that was quite hilarious if a bit meaningless but I really like that point and I think that there's room for lots of innovation in mud and new related engines for that sort of a thing and I'd like just like to point out that because this is text base making changes and playing around with these sorts of things is it's a relatively low-hanging fruit if I were doing this in a graphical game or a VR game or something like that I would have a huge code base with lots of assets and making a change is quite difficult to do this is just literally text comes in I do some stuff, I put text on message queues, text goes out that's essentially the modus operandi of this sort of thing I hope that answers your question, that was a really great question enjoyed answering that Thank you I have one question I like the idea of recording moments that you said you recorded that moment with your wife in Scotland how would you go about doing that? Do you have an example? What I have is a virtual world that I created when I was 21 and as somebody in his mid 40s now he returned to that and I don't know about you but I can't remember anything about the code I've written six months ago, let alone back in the mid 90s so it was fun to inhabit what was in my head in a textual sense from 20 odd years ago if you see what I mean so I've got, it's a bit like it felt to me a little bit like reading my diary from way back when but this was an interactive diary and there were objects in the world and I could, you know, there was a picture photograph object on the mantelpiece object and so I could look at the photograph and I could see the description and it was a photograph of my wife's dog who was now passed away and I'd forgotten about Genie and I was like, oh gosh, I remember Genie and it brought back a flood of memories so that's how it felt like that's how it felt like is that helpful? Yeah, it sounds like it's just like a picture journal, right? Yeah, sounds good. Awesome, there's more questions thanks Nikolas for the great talk Thank you, you're welcome I'll stop sharing and get out here Thanks a lot Bye bye Alright, so we are in a break now we'll be playing some ads and I'll see you