Friday 29th September 1995 Coding Lecture 1 ------------- Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: Norm Ulysses_Omega Tol'mac Final Test Section Obvious exits: Out Mark_Farrell walks out of the testing section with a padd and holoprojector under his arm. Bruce has arrived. Bruce enters from the Quad. M'Ceepy says "Greetings, Mark." Pivik has connected. Mark_Farrell smiles. "Evening, MCP. Bruce says "Has the lecture started?" Tol'mac raises an eyebrow. Norm says "hope not" You say "Not yet." You say "Take a seat." Bruce says "oh..." Tol'mac is sitting. Bruce nods, and takes a seat. Norm sits down Bruce says "Right on time." Mark_Farrell places his notes on the podium. Ulysses_Omega sits in the front Pivik sits down Norm takes out his steno PADD and gets ready to take notes Mandor has arrived. Mandor enters from the Quad. Jhzanne has arrived. Jhzanne enters from the Quad. M'Ceepy smiles. Mandor waves to all Jhzanne sits quietly in the back so as not to be noticed. Tol'mac nods. Guire has arrived. Guire enters from the Quad. You say "Alright, for those of you who don't know me, I'm Merchant Pilot Mark Farrell." Pivik starts M'Ceepy sits in the back next to Jazzy. Mandor sit's in the front row You say "This lecture is going to cover some basic coding concepts right from the terminology though to some basic coding." Guire sits Mark_Farrell surveys the crowd. "I can see we have a good mix of coding abilities here, and I expect many of you will know most of what I'm going to cover today. You say "Alright, how many of you are new to coding." Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: Guire Jhzanne Mandor Bruce M'Ceepy Norm Ulysses_Omega Pivik Tol'mac Final Test Section Obvious exits: Out Norm is somewhat new Bruce Raises his hand, somewhat. Guire raises hand Pivik is farely new. 011_and_101 has arrived. 011_and_101 enters from the Quad. Tol'mac peers at the Binars. You say "Okay, I'm going to cover the basics fairly quickly, but be sure to stop me if you want me to recap." Pivik raises an eyebrow. 011_and_101 are just here to listen. Mark_Farrell smiles. You say "Alright, the game is made up of a large collection of generic objects." You say "We currently have over 20 thousand in the database, and these constitute the coders basic building blocks." You say "The generic objects are split into types - players, rooms, robots, exits and other objects." You say "These objects have registers or attributes on them - some of which have special functions and meaning to the game, but many are general purpose." You say "Each of these registers can hold upto about two thousand characters." Guire has connected. You say "The game provides two distinct types of commands. The @commands, and functions." Guire has disconnected. You say "Now, to draw a distinction between them, in general, the @commands are the blocks that actually _do_ things, while functions are used to supply the information that the @commands use." You say "Most of you have used @title to set an attribute on yourselves, or @desc." You say "The parser is the machine code that is running on Grimmy to process all of these commands. I'll often refer to 'the parser', and I'm sure that most of you, like I did, and still do, will refer to it as" You say "That damn bunch of incomprehensible code that passes for a parser." You say "Or words to that effect." Pivik wants that code. M'Ceepy has disconnected. Pivik er never mind...was thinking of something else. Mark_Farrell nods at Pivik. "For those of you who are mad enough to want to look at the actual code that runs a game like this, it is freely available on the network. Guire thinks he has a friend just that crazy Salek has arrived. Salek enters from the Quad. You say "Okay, so that's the basic terminology out of the way. I'll get down to actually coding something if there are no questions so far?" Norm understands Guire says "none so far" Bruce shakes his head. M'Ceepy has connected. 011_and_101 shake their heads. Pivik waits to get to registers and @digs... M'Ceepy says "Everything past 2000 characters" You say "Alright, creating an object is straightforward - you use the @create command." M'Ceepy apologies for the outburst. *Mark_Farrell* Ensign Bruce is looking at you. You say "I should mention that there is online help available for almost all of the commands, 'help @create' will give you the summary." Pivik notes that it is a very easy command to use and understand. You say "Functions are slightly different, in that normally 'help function-name' will work, but because there can be conflicts between topics, 'help function-name function' will always give you the right help." You say "Okay, so, you have a new empty object - what can you do with it." Norm grins Pivik raises his hand You say "Ever busy." You say "Pivik.." Pivik says "You can set up registers, set flags...i.e. I, p, etc" Guire nods Mark_Farrell nods. That's right. Guire says "OK some of us have seen this before ..." You say "There are a number of ways to get an object to do something. There are ! and $ commands that can be used to recognize speech/emitted text, and typed commands respectively." 011_and_101 note that some haven't. You say "Also @fail, @succ and others, such as @enter, @leave and so forth." Guire says "I am one of the ones that has not. I was being sarcastic" Mark_Farrell nods. "This is intended as an introduction to coding, to bring everyone up to a common reference point. I apologize if this is ground you've covered already. You say "So, to start with, I'm going to code a simple object to respond to a command word." 011_and_101 nod You say "We are going to use one of the general purpose registers for the command." You say "There are 3 blocks of 26 registers - va through vz, wa to wz and xa to xz." *Mark_Farrell* Ensign Bruce is looking at you. Tai'Mylen has arrived. Tai'Mylen enters from the Quad. Guire raises hand Tai'Mylen sits quietly You say "These are always available for you to use." You say "One caveat - if you're setting your own registers, you shouldn't use wz" Pivik notes except for wz. Salek raises an eyebrow. You say "That is reserved for the academy to keep track of you." Guire raises hand in question Mark_Farrell nods to Guire Guire says "I don't want to sound stupid, but are these registers hardware on grimmy or software memory that are just called registers" You say "These are in software." Guire says "OK thanks" 011_and_101 notes the non-existance of 'stupid questions' You say "The registers (or attributes) are held on a per-object basis. Each object has around about 150 or so standard registers. Maybe a few more or less, I've not bothered to count." Pivik stands up. You say "That's right 011_101. I am here to field all questions and to help clear up any problems you have. You will probably help to shape the game with some of your coding projects, so it's my job to try ot get you to code well." Guire whispers back "true, but I did not know how many registers there were Mark_Farrell smiles. Pivik says "I must be leaving. :(" Mark_Farrell nods. "Take care. The logs will be available." Pivik has disconnected. You say "Okay, so I'm going to create an object called 'Greeter'. This uses the @create command I mentioned earlier." Greeter(#126) created. Dropped. You say "Okay. Once you create an object, you are carrying it, so I just dropped it." Norm nods Guire nods You say "If you look at it, you'll see it has no description or other exciting things on it yet." Tai'Mylen sees nothing special :) You say "Now, there is a more detailed way to look at an object, using 'examine'" You say "You use that in the same way as you would 'look' at something." You say "Now, if you do that at the moment you'll see that Greeter is owned by me, and has very little of interest." You say "Now, if you examine yourself, you'll see a list of register definitions on you as a player." You say "So - why is there a difference? Surely examine should work the same on every object?" Norm rasises his hand Mark_Farrell looks at some of the new coders for a guess, or some interaction and feedback You say "Go for it norm." Norm says "Is it so that others can not see your specs? Such as future major, etc. ??" Norm says "or that you have just not set them yet?" Bruce raises his hand. Guire raises his hand Mark_Farrell nods. "That's part of the reason, Norm. Bruce you were next." Bruce says "The 'visible' flag is not set, I believe." Tai'Mylen raises his hand Salek nods. 011_and_101 raise their many hands. Mark_Farrell nods. "Again, that's part of the reason." You say "I'll go to Guire then 011 and 101" You whisper "Sorry, missed you. You're next after 101" to Tai'Mylen. Guire says "that the default for any object is not to show the empty registers" Whisper-pose: Tai'Mylen nods You say "Yes, in part." 011_and_101 raise their hands You say "011 and 101" 011_and_101 says "Because You own Greeter, and we own ourselves..?" Mark_Farrell nods. "That's a big part to do with it. I'll let Tai have a say, then lecture some more. Tai'Mylen says "The look command and the examine command are the same except in one respect... the look command shows only one attribute - the @desc... the examine command shows all attributes (assuming you own the object or it is set visible." Mark_Farrell nods. "That's true, but I was refering to the differences between examining yourself, and Greeter (something that's not yours). Tai'Mylen says "Oh... my mistake" You say "Okay, we covered most of the major points." Guire says "is it that objects have internal and external attributes" You say "Yes, some attributes are set OSEE which means everyone can see them." You say "For instance, if you ex me, you'll see my race, sex, and any other OSEE attributes I have set." Guire is owned by Guire Last:Fri Sep 29 18:09:14 1995 Sex:Male Race:Human Alias:MC You say "This whole topic brings us to a big part of coding the muse, and that is power, and rank. I'm going to briefly introduce it now, and touch on it some more later." Norm stands up, "Excuse me, I must be going Norm leaves the Auditorium. Norm has left. You say "You all know that there are organizations in the game, and that everyone is tied to one or other of them. StarFleet Academy, Civilian, Guest, etc." BreeAnne has arrived. BreeAnne enters from the Quad. Salek looks at Bree Bruce looks at Bree Tai'Mylen smiles to Bree You say "What you may not be aware is that high ranking players gain certain powers over the others who are lower down in the organization." Tai'Mylen is painfully aware of that :) You say "The reason that you can't see the attributes on Greeter is because you don't have power over that object." 011_and_101 nod You say "For instance, a high ranking (Somewhere around Captain or Commodore) player in your organization can see all of your registers, wether you are set visible or now." Guire says "cool" Tol'mac raises an eyebrow. Salek raises an eyebrow. You say "It is to be hoped that players of that rank have developed a good sense of ettiqette and will not misuse that power." 011_and_101 raise 4 eyebrows. You say "You have a comment, Guire?" Mark_Farrell smiles. Guire says "no just commenting on the omnipotence of Capts" Mark_Farrell chuckles. You say "Most of them work hard for the game, the commandant in particular, and it just makes their life easier when they come to help people." Guire says "RHIP" You say "So, I'll set Greeter visible, and you can look at the registers that are already set" Flag set. You say "To change the flags you use the @set command." You say "The @set command is multi-purpose, in that it can set the contents of registers, and set/reset flags." You say "@set Greeter=visible sets, and @set Greeter=!Visible will clear the visible flag" *011_and_101* 011 raises a hand. Greeter(#126v) Owner: Mark_Farrell Credits: 1 Status: Thing Org: None(#-1) Type: Thing Flags: visible Home: Ready Room Location: Carlin Auditorium You say "101" *011_and_101* 011 asks "Is this how we'd set the osee things you spoke of earlier?" Saving TrekMUSE DataBase. Response will be slow for a few minutes. You say "You cannot make a specific register OSEE. That is done by the game." You say "However, for setting the contents you can use @set" 011_and_101 nod You say "For instance, @set Greeter=race:Mechanoid" You say "Most of the OSEE attributes have specific commands for setting the contents. @race Greeter=Mechanoid would have worked in this case too." You say "Okay, so you have all seen that you can see extra register when I set Greeter visible." Bruce nods. 011_and_101 nod You say "I'm going to mention here that sometimes when you are coding something and you need some help, you may be asked to set yourself visible." Guire dropped holosphere. Tol'mac raises an eyebrow. You say "Be security conscious. If you have defined some macros on the object you are going to set visible, don't let other people who shouldn't know about them see them." M'Ceepy nods in strong agreement. You say "Eg, I create an object to store all the fleet movements in SFC for the next week. I have a coding problem, and need some help." Guire dropped holosphere. Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: holosphere BreeAnne Greeter(#126v) Tai'Mylen Jhzanne Salek 011_and_101 Guire Bruce M'Ceepy Ulysses_Omega Tol'mac Final Test Section Obvious exits: Out Tol'mac nods. Tai'Mylen says "Dont ask any Rommies for coding help, then :)" You say "The thing not to do is to get on Gadget channel, set the object visible and say 'Hey everyone, object #.... hasa problem with so and so register, can anyone help?'" Bruce raises his hand. Salek says "Indeed." You say "Okay, Bruce was first." Bruce says "Is there a SF Gadget channel?" Bruce says "or somethign like it." You say "There is the research and development channel, which I'm not sure is public knowledge, and I'll have to check if it is meant to be a forum for coding help." Bruce nods. You say "I'm generally around monday to friday 5am-5pm, so ask me. You can also ask on Gadget channel, and type in the problem code, or if Yngwie is on Gadget channel, he can help you without you needing to be set visible." Bruce nods. Guire dropped holosphere. Mark_Farrell chatters into his compin for a moment. You say "Okay, FedCode is the Federation coding channel." Jhzanne smiles. Bruce nods. 011_and_101 nod Guire says "If you will excuse me my girlfriend just paged me" Corrupter has arrived. Corrupter enters from the Quad. Guire goes home. Guire has left. Guire has arrived. Guire enters from the Quad. Salek says "If you'll excuse me, I must leave as well." Mark_Farrell nods. Salek leaves the Auditorium. Salek has left. Guire says "She will kill me if she found out I left this here" Guire goes home. Guire has left. Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: Corrupter BreeAnne Greeter(#126v) Tai'Mylen Jhzanne 011_and_101 Bruce M'Ceepy Ulysses_Omega Tol'mac Final Test Section Obvious exits: Out 011_and_101 shrug You say "Alright, so everyone is aware of the problems that visible can cause?" Bruce nods. 011_and_101 nod BreeAnne nods You say "So, general rules, 1. Don't set objects visible unless you need to, an 2. Don't leave them set visible." Corrupter leaves quietly Corrupter leaves the Auditorium. Corrupter has left. You say "As a helping hand towards getting help on Gadget channel, you can use @force me=+com Gadget=NO MATCH" Mark_Farrell kicks the frigging parser :-) You say "As a helping hand towards getting help on Gadget channel, you can use @force me=+com Gadget=[get(object/register)]" M'Ceepy laughs! Jhzanne chuckles. 011_and_101 nod Tai'Mylen smiles You say "That will send the contents of the object-register pair you specify onto Gadget channel." You say "Without the need for visible." You say "Right, back to getting the object to do something useful." Greeter(#126v) Owner: Mark_Farrell Credits: 1 Status: Thing Org: None(#-1) Type: Thing Flags: visible Race:Mechanoid Home: Ready Room Location: Carlin Auditorium You say "I'm going to use a general purpose register, va, and create a listen command" Greeter grows ears and can now hear. You say "The command I typed was: @va Greeter=!* says "Hello, Greeter":say "Hello there." 011_and_101 says "Hello, Greeter" Greeter says ""Hello there." 011_and_101 nod You say "Okay, examine Greeter to see what that looks like." You say "@va is a shortcut was of setting a general purpose attribute, instead of using @set Greeter=va:!* says......." You say "Similarly for @vb to @vz, @wa=wz, @xa-xz" Rizon has arrived. Rizon enters from the Quad. You say "As 011 and 101 demonstrated, it listens for anyone saying "Hello, Greeter", and replies to them." You say "So, ! commands. These are ways to trigger actions when someone says something that matches the pattern." You say "Everything upto the : (but not including it) is the pattern." You say "Ie, * says "Hello, Greeter"" You say "Now, there are two ways to match something you don't know. A * matches any number of characters and spaces, and a ? matches exactly one." Bruce says "pardon me..." Bruce leaves the Auditorium. Bruce has left. Mark_Farrell looks around. "Everyone with me so far? Tol'mac nods. BreeAnne nods Tai'Mylen nods Rizon nods. 011_and_101 nod You say "Good. In this simple case, there is only 1 action - the 'say "Hello there"'" You say "So, we just made a simple challenge-answer system that you can extend to be more complicated and to do something useful." Ulysses_Omega tought that was usfull. Mark_Farrell smiles. You say "You will all have spoken to the Yeoman to join StarFleet Adacemy. A simple ! command is used for that." 011_and_101 nod. And the Bartenders too You say "Aye." Tai'Mylen peers at the Binars. You say "So, lets take a look at some more of the internals of the game." You say "What happens the the text that was matched by the *?" M'Ceepy has disconnected. Tol'mac stands, and slips out quietly. Tol'mac leaves the Auditorium. Tol'mac has left. Ulysses_Omega raises a hand Rizon forgot to sit and does. You say "Shoot." Ulysses_Omega says "it gets put in the 0 register?" You say "Yes. The game has what we call 'stack variables'. They are like temporary registers that only last while the register is being processed." You say "There are 10 of them, numbered 0 through 9." You say "The first wildcard is put into number 0, the second into 1 etc." You say "These stack variables are accessed using one of two methods." You say "Either by %0, %1, . . . %9" You say "Or by the function v(0), v(1)....v(9)" Ulysses_Omega raises a hand You say "When you use functions and when you use predicates (the %?) I'll come on to." You say "Omega." Ulysses_Omega says "what happens when you have 11 *'s? the 11th gets over written in to 0 ?" Mark_Farrell smiles. "Actually, I've never tried it, but I expect that the 11th is silently thrown away. You say "however, back to the pattern matching code" Ulysses_Omega stnads and leaves saying excuse me. Ulysses_Omega leaves the Auditorium. Ulysses_Omega has left. You say "I've just checked with Yngwie, and those after 10 are thrown away." You say "For those of you that haven't heard of him, he is the god of coding here, and has a lot of experience. If you want help coding, and he helps you out - say thanks. He's busy most of the time fixing comlinks, consoles etc." You say "Right - I feel that 'Hello there' is a bit impersonal." You say "How about I take some suggestions from the new coders on using the stack variables to make it a bit more friendly." Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: Rizon BreeAnne Greeter(#126v) Tai'Mylen Jhzanne 011_and_101 Final Test Section Obvious exits: Out You say "Okay, well, if we use @va Greeter=!* says "Hello, Greeter":say "Hello, %0. how are you?" we should have something a little more inviting." You say "Hello, Greeter" Greeter says ""Hello, Mark_Farrell. how are you?"" 011_and_101 nod You say "Now, having told you about that, I'm going to tell you a different, and probably a better way to do it." You say "Alongside the 10 stack variables there are some other predicates you can use - in this case %N would work." SUBSTITUTIONS @OSuccess and @OFail messages may contain %-substitutions, which evaluate to gender-specific pronouns if the player's gender is set. They are: %s (subjective) = Name, he, she, it. %o (objective) = Name, him, her, it. %p (possessive) = Name's, his, her, its. %n (player's name) = Name. Use %S, %O, or %P if you want the pronoun capitalized. If you need a '%', use %%. Ex. '@ofail teapot=burns %p hand on the hot teapot.' See GENDER. SEE ALSO V-REGISTERS and Functions V, Poss, Obj, Subj. 011_and_101 slip out the back door 011_and_101 leaves the Auditorium. 011_and_101 has left. You say "If you look at 'help substitutions' is gives a list of them, and their function." You say "So, any one have any questions or points to raise?" 011_and_101 has arrived. 011_and_101 enters from the Quad. Rizon raises his hand. Nakat has connected. Nakat wakes up. You say "Alright, Rizon, fire away." Nakat says "Hello." Mark_Farrell nods at Nakat Nakat leaves the Auditorium. Nakat has left. Rizon says "will there be another lecture on this topic" Nakat has arrived. Nakat enters from the Quad. Nakat says "What the heck was I doing in here." Nakat says "Oh well." You say "Yes, the Friday 6pm til whenever is going to be a regular slot." Nakat leaves the Auditorium. Nakat has left. Rizon nods. You say "I'm going to take the code forward and demonstrate the use of functions and some other little quirks of the parser that you should know about." You say "Anything else on the ground we covered today?" 011_and_101 shake their heads. You say "We've covered a fair bit of ground for the entirely new coder, and introduced the concepts of the parser." You say "I'm going to close this lecture now, and I'd like your comments on the material, lecturing style, and anything else you'd like to say generally." You say "I want to convery the material as clearly as I can, so constructive criticism is welcome." 011_and_101 quite enjoyed the lecture. Thank you, we must be leaving. 011_and_101 goes home. 011_and_101 has left. Mark_Farrell nods. BreeAnne says "I liked the way you used Greeter to illustrate what you were doing" You say "Anyone else?" Mark_Farrell nods. You say "We didn't get particularly far, but hopefully next week we can plough on." Rizon says "i liked the detail in your lecture" BreeAnne nods Mark_Farrell nods. "Areas you'd like improved? Rizon quietley slips out. Rizon leaves the Auditorium. Rizon has left. You say "Things you would have done differently, or presented in a different order?" Carlin Auditorium You are catapulted back into the late 20th century as you step through the double doors and into the dimness of the back of the Auditorium. As your eyes become accustomed to the lacklight, you begin to appreciate the beauty of this unique Terran decor. More than 200 seats, divided by two wide aisles spread over the main floor. An overhanging balcony provides additional seating. Three luxurious private boxes, obviously for visiting dignitaries, are visible on either side of the expansive walls. Thick red and gold carpeting covers the floor. All seating is upholstered in plush red velvet, a common covering for the era that is being depicted here. Two large gold pillars stand like silent sentinels on either side of a stage that spans the full width of the room. The only hint that you are still in your own time are the three familiar flags; Starfleet, Federation, and that of Starfleet Academy that stand proudly on the left side of the stage. Contents: BreeAnne Greeter(#126v) Tai'Mylen Jhzanne M'Ceepy Final Test Section Obvious exits: Out BreeAnne says "I wasn't here for the whole lecture, but I thought it was pretty comprehensive, and helpul to a new coder like me." BreeAnne says "helpful even :)" You say "Great. I'll make the logs available when I've tidied them up a bit." BreeAnne nods "Thanks" You say "Thank you for attending." Tai'Mylen says "Nice Lecture, Mark..." Tai'Mylen says "Sorry... I was idle for the end there" Tai'Mylen says "But I logged it :)" BreeAnne waves BreeAnne has left. Tai'Mylen waves Tai'Mylen leaves the Auditorium. Tai'Mylen has left. You say "I'm glad you enjoyed it."