 Okay hello welcome back everyone. So um yeah we are beginning with the next part of this course which is a next show which is sort of something that you may not use well you probably will be using it directly a lot but the main reason we're talking about this now is that it will connect you to well it's a necessary stepping stone for other resources so you could say it's sort of yeah like the prerequisite to getting to a lot of things other things for example our HPC kicks art course next week but you don't need to be a complete expert here just basically being able to follow along and like not follow along and copy and paste is enough for what you need to do right now so first question is why shell like is it too old is it too something too boring to read actually first we need to answer what is shell so Enrico how would he describe a shell it's something that lives on the water why did they pick this name actually like like a shell is it really like why what's the etymology behind the yeah so the answer is basically at least I think that the answer is basically so there was um so there's the operating system that can't be used directly and then the shell is the layer around it that connects to the outside world so yeah so here I've shared a shell and I can type a command like let's say hostname and then I see an output or I can type a program like Python and then this starts a separate Python shell so I type something in like and then I get something out and then I can exit so yeah so is this too old like do you think there's still a use case for this in 2021 yes there is yeah my opinion it's the it's the most basic it's if we think of the coffee machine with the buttons you know very often we are not those buttons the spremade buttons are not enough yeah yeah so and I've been sort of maybe 20 years ago or 15 years ago I would have wondered is this shell thing going away but in reality it hasn't so whenever you need to copy and paste and you need to explain something to someone else it's much easier to have the shell which gets copied and used somewhere like for example can you imagine every single program or every time you need someone needs to help you with a program they say okay open it click on this menu click here do those enter this file name click this button and so on when all this can be done with one command in shell so what do you mean with this it's nice that you bring this word command what do you mean with the command well well a command is like the things I typed in and it's basically a program that gets run that will actually be the we'll get to that in a second or two it reco hinted at this other benefit there which means it's easier to program interfaces like writing a graphical program is a lot of work but writing a shell interface which is really usable is something that everyone can do and is quite useful to know how to do so in this course it's not like we can teach you everything you might possibly need to know about shell instead we're going to show you enough to get comfortable so when you see an example from someone else then you'll feel confident in trying to reproduce it yourself or for example next week when you come to the HPC course as we're giving examples in the shell you're like oh I know what this means I know how it works and you can copy and paste and do it yourself and I see this is more like a learning shell is more like an experience than a course so we show you some basics now but you'll really learn it as you're using it for other things over time so any other initial thoughts in Rico no I'm just in my opinion it's really nice that we can go through this because I had to learn this myself without understanding the semantic of things what's a command what's an option what are arguments I had no idea when I started but then I understood that it makes sense so yeah so what is a comment yeah okay so maybe we can start with the basic principles so there's input and there's output so input is from the keyboard like here as I'm typing and output goes back to the screen so the internal terms here are standard input and standard output so I type let's do this again host let's take date so date is a command so there's a program on the computer called to date which will be run when I push enter and the program runs and then it says this is the output on standard output and then the shell comes and displays it back to us here so programs can have options and arguments so for example date let's see does this work yeah so here I've given a really weird-looking argument to date plus percent s so percent s means you next time so now instead of printing the date in a human form it's printed the date in the number of seconds since January 1st at midnight 1970 or I can give it some other options like let's see if this works so here I've told date to print the year and the month and the day so as far as the shell concerned there's just a command and then any other options you may give and can I ask is the command always coming first that is like that's that's the order they will need to run and then you pass some the command always comes first so here you see a plus sign plus is not special that just sent to the date program but the minus if an option begins with a dash it's called a option instead of an argument so here if I do date dash age it says invalid option dash dash help so here now date has printed out all of this help here which unfortunately it's sort of scrolling off the screen so it looks bad let me do it again okay here we go you can't see it all but that's okay so dash dash help is a common option that many different programs have and we can see date dash you UTC and other things like this so let's try the dash you option for date date dash you and I see now it shows you TT UTC time zone so other programs will have say file names as options so what we'll get to this shortly but like copy file one dot txt file two dot txt and you can combine options and arguments it's like CP dash I and these things but this will really start making sense once we start seeing actual programs that are using these things okay what is the what is the best way to get the list of all the options like if now you used CP minus I is that a so the dash age or dash help so here again this wants us to do dash help it tells us all of the options like here there's also something called the manual pages which will see a little bit later which tells you even more options okay so one thing that can sort of confuse some people is that Unix and shells are generally very quiet so if something is successful it will say nothing so for example you say I want to make a copy of this file and then it just does it and it doesn't say anything and that means good job it worked okay so what about files so files are represented by names just like in other things so it's a sequence of characters so here in my this computer here is our cluster Triton which we will be using which we'll be using next week in the course so if I type LS I see all the different files that are on Triton so here's a file called time dot out and here's a file called time dot sh directories are represented by slash so for example I can do LS so LS means list the files test and now I can see what's in this test directory so notice that I can leave off the slash and it still lists what is inside of the directory but if I want to list test 2 I can do LS test slash test 2 and there I see a sub directory okay let's see so that's files yeah that's how file the general files are represented so on Unix files can contain any character except a slash because slash is a directory separator but most people try to avoid using spaces and using basically standard characters okay so we have files so how do you edit files so Enrico how do you edit files via the shell so I use a software called VI I know that sometimes people mock VI because it's very difficult to quit it but I guess it's not the only one I'm sure yeah something easier than how do you edit yeah so I'll use the competing program called Emacs but we're not actually gonna talk about either of these programs right now instead what we're going to talk about is the general one usually called nano but let's say you're connected to Triton you may be used to editing files with graphical program which are great because they have a lot of power and have lots of buttons to click and so on but um it can be really convenient to be able to edit from the shell or more precisely we're editing from the terminal and the shell is running inside of the terminal so I saw a program called time.sh so I'll use nano and then time.sh and I'm recommending nano here just because it's a very simple editor and is installed on many different computers so nano time.sh and I see the contents of the file so there's when you're editing programs on your computer you maybe use things like word format but when you're at the level of shell the most common thing is just a plain text format so this is nothing but the raw characters here no formatting nothing beyond what you see which is basically how people do programming okay so you can type things so I'm adding an extra command here and a great thing about nano is it tells you how to exit it so it says control x to exit so on my keyboard control x it asked me do I want to save I will type y for yes and then give the name and it is saved okay oh can you so now you open nano because you want the 20 the file but what if I just want to check the file what's inside the file without yeah so when I'm just want to look at a file there's several different options often I will use a program called less so why is it called less so originally it there was a program called more and someone decided to write something called less because well less is more anyway that's like all funny history um and less is called a pager so let's look at time dot sh so now here I see just the concept of the contents of the file no editing and I can push the up and down arrow keys to scroll except there's nothing to scroll and I can do q2 exit let's try to find a longer thing um I'm scrolling up to try to find a longer program I wonder what singularity script is less space singularity script so again the program to run and then the argument is the file name okay this is not very long let's try something else test debug dot pi okay this is also short hmm let's say long program looks like at one of the outputs here I don't know if you have any like so now you're opening or you're using files that they are basically text only files like you mentioned earlier what happened if you run less with uh I don't know if you have anything that is not the text there but yeah so here's a non text file so this is the python program itself in a virtual environment so I see it says warning this may be a binary file do I want to see it anyway I'll do yes and I see a bunch of madness here so opening this in an editor doesn't really make sense okay so what about listing and moving files and so on so that's a quite common thing to do so as I said before LS is the command that lists as files there's a program called make there which will make a new directory so I'm gonna make a directory called shell demo and I changed to shell demo here and now I will do LS and it looked like LS didn't work but that's because if there's nothing to list as I said Unix is very quiet so just um print nothing okay let's make a file nano this is a file uh test test and then I will control X and save okay okay so now if we LS we see the file appears okay let's say I want to make a copy of it copy file 1.txt 2.txt and now I LS and there we go let's say I want to copy it again there's file 3.txt here so notice I didn't type this whole command again this is history of the shell which I'll talk about later it really saves you a lot of keystrokes so let's see how else we can list LS-L list even more so it says not only the file name but when it was modified and then who owns it and then the properties of the file which we really don't need to go into right now let's say you want to rename a file how does that work well rename is the same as move so I can do move file 1 to file 0.txt and now let's list and we see file 1 is gone and file 0 is there instead so let's go to one of the biggest traps of the shell move file 2.txt now I'm moving file 2 to file 0.txt and file 0.txt already exists so what does this mean so it didn't complain it just worked so let's list it and we noticed that file 2 is gone and file 0 is still there so really file 0 got deleted and file 2 got moved on top of there so many of these shell commands don't give you any warning before doing something that might erase a file so when using these I always think a little bit before I push enter let's try running the same command again and we see if you do something that actually doesn't work it actually does print an error message okay what about that if if you were not I mean there's no way to undo right if you if you accidentally overwritten the yeah so here we're at such a low level there's no undoing so if you are on an auto computer there may be snapshotting where you can go to a snapshot directory and get old versions of files back and when you're using linux or windows or mac and you delete something through the file browser it saves the copy because um let's see so it saves like the trash can recycle bin that kind of concept is made by the graphical interface and not by linux itself okay let's see maybe I mean before you move to something else would that be an option that would prevent me to you know to get a warning that you know maybe so mv with some option yeah and I and I would get a warning that so let's try the same thing with file 3 and file 0 but now we'll add the dash i option here and i means doesn't mean interactive or I think it's interactive probably interactive but here it says do you want to overwrite the file so it gives us a warning and I'll say no but if I do file 3 to file 4.txt there's no warning because it's safe and in fact some people use the dash i option on move copy and remove in order to prevent this from happening okay um what about to remove a file so there's a command called rm so we can remove file 4.txt just like this and do you think it will give us any warning maybe not of course not it's just gone and we can list again and we see everything here well just file 0 okay so I already demonstrated the make their command so make their new directory and now if we ls we see new directory here so why do you think new directory is colored with a slash on the end so this is just a property of the bash shell so the bash shell takes this and says like for convenience is giving the different directories to different type kinds of files different colors so linux itself knows nothing about these colors or anything and in fact this slash is also added by bash and is not actually part of the file name so now that we're talking about directories there's something that can be a little bit confusing so when you're in the graphical interface if someone asks what directory are you in does this even mean something like there may be I mean with with with the graphical interface you would use like a browser right like a file browser and there you see the directories so are you you are basically saying that these directories are the same that we would see with the file browser can we also get you know a location of where where we are in the file system would you is there a command for that yeah so if I type the command pwd which means print working directory we see it says I'm in the directory home dar star one shell demo yeah so when you're in the graphical interface there's not really this concept of what directory you're in like you might be in a file browser that has a certain directory open but that doesn't really relate to other things but here when you're in the command line there's always a concept of working directory so this is my working directory and it's basically like where I'm standing and all of my directions are relative to here so for example here I can list the new directory and there's nothing in there I can list the parent directory which is dot dot which is my home directory and then I see what's up there if I um yeah so this can be useful so you start a project and then you change to that projects directory and then you don't have to give the full path the files in there you give everything relative from that directory and the command to change the working directory is cd so for example I will cd to new directory and now I'm in here and if I do ls I see nothing because there's nothing in new directory if I do ls dot dot I see the parent directory and you notice there's a bash history file here this is something I've done just for my shell so I have a per directory bash history if you do cd with no argument it changes to your home directory and if you see right here there's a tilde tilde traditionally represents your home directory so now that I'm in home directory I can do ls shell demo new directory and then get to that the root of all files on any unix computer is the root directory which is represented with slash like this so if I do ls here I see this is everything that's on the whole computer and here you see different mounts there's the scratch file system that Enrico was talking about before under m there are different other file systems mounted and so on I can do ls tilde and let's just my home directory again or tilde slash shell demo and then that so if you would type cd and then tilde it would be the same of just typing cd it just goes to your home exactly so here I've gone back to my home directory okay and maybe one concept that I found difficult when I started so if you type pwd you you you're asking the system where am I and you were saying the dot dot is the parent so dot dot automatically sees where you are and just returns the top the previous level so now would be home so if I go to shell demo if I do ls with a dash a option this means list all directories actually let's do everything and then long listing so here we see in shell demo there's also a dot dot directory in here which is just the part to the parent directory yeah but what is the dot dot is current directory so basically every directory also has a link to itself so if I do cd dot I end up in the same place which actually that's a good point because dot represents the current directory so if I do ls dot slash new directory for my current directory list the new directory but all this listing things are things that won't really come up in your day-to-day life but I mean I guess it could um actually yeah maybe understanding the concept of the director you're in and how it relates to other directories is one of the most confusing things to get used to anyway anything else about directories no I'm thinking now it's 130 you covered basically all the comments you wrote all the comments that I typed daily yeah yeah this is basically it but I noticed that you are so well you already talked about the dash dash help to get some help and I think you also mentioned about this man or did you mention about it I don't remember yeah so another way to get help is the manual pages so man for manual let's type man ls and here this actually starts the less program again and now I can use the up and down arrow keys to scroll so I scroll down and I can see these are all the different options for ls so does someone actually need to know all these options no not at all the only thing you need to know is that if you needed to make ls do something special you have this manual page so the most common less commands for me are slash like slash so slash searches so I can search for sort and I see okay under description it says sorting things if I push the lowercase n it searches for the next thing and well there's all these different sorting options here and then q to quit okay I could say man bless to see how less works and I noticed that at the top you also have some like when you type man less at the very beginning you also see this minus minus help and all this is it like a summary of all the of everything yeah so like manual pages typically have um the summary at the top a basic description the different commands and now I'm using page down to scroll faster so many as manual pages can be quite long okay key binding sections if you go all the way down it tells you about the author copyright other useful programs to see configuring the program with environment variables and well lots of stuff there at the bottom some of some of them there's examples which can be really helpful okay um I already talked about help so there's less dash help and actually here you notice that less dash help instead of printing something it opens less with its help screen internally so basically the help options is up to the program to process not up to the shell okay so there's history and tab completion in the shell so you may think this is a lot of typing to be doing and you'd be sort of right so there is not a good like you may think it's easier to move the mouse but in reality there's some things that make shell a lot faster first if I push the up arrow key it's curls through the history so I can find old commands that I have run and rerun them so let's see like for example I found the cd slash again which is really so short I would have just typed it but well the point stands or I can scroll up to find something and then edit it let's say I want to list new directory so now I'm in root so the other thing that's really helpful is tab completion so I want to type shell demo but I don't want to actually have to type it so I type sh and then I push tab and notice everything just got completed there which is amazing and now I type ne for new and I push tab and there I go I get the directory and now I can list it so if I do this um from the start ls slash shell tab new tab I can type things amazingly fast like this so it can complete file names some other programs can complete options or sub commands or many different things so basically as you're using the shell you'll be pushing tab a lot um if I have a directory and I push tab so I pushed it once and nothing happened because it's not a unique completion if I push it again now I can have it list everything in my home directory so um ls tilde slash tests so let's say I do test and now I push tab I can see everything that starts with test and test dot slurm and now I can use the left and right arrow keys to scroll back and I change list to less and now I can open something so these kind of convenience things can really change your life and there's even more that I don't routinely use but is quite good to know would there be a command where you can easily see the whole history that you you know instead of going up and down with the arrow yeah so there's history that should list all of my history let's see what happens a lot got scrolled by so it shows the command numbers and everything there and I can scroll on up and see whatever okay so next I was going to talk about variables so this sort of gets close to shell scripting but I think it's important to know a little bit here so what if I do echo dollar home so dollar home is a what's called an environment variable so this is a property the environment variable is a property of the Knicks itself using dollar to access it is a property of the shell so basically what happens when I do echo home bash takes echo home and converts it to echo this and then you get the output so you can say you make also your own exactly can you set your own variable yeah so if you want to give it another name cd equals let's call it demo demo equals a shell demo and I push enter and now what happens if I do cd dollar demo now I go to shell demo so there's actually two kinds of variables here there is shell variables and then there are environment variables and for the purposes right now you don't really need to know the difference between them but the environment variables are set with export in bash and environment variables also get seen by other programs you run but shell variables do not but this is a distinction which is not important right now okay so you can access the variables using dollar or demo like this or with curly braces like this here what do you think will happen if I just do demo like this does it try to run it as you said earlier that the first thing is always the command is it that now this would be a command yeah so the shell expands that to the command so that's the same as running this here we're just trying to run the directory as a command and bash says well I can't execute a directory so yeah what if you what if you store in this demo variable a command would it run let's see so let's do demo equals cd um demo so notice I'm using quotes here cd shell demo so now I have to find this and let's type demo hmm so here we see the problem is that cd okay so but it was working like it it ran the command it's just I didn't find that maybe because the oh yeah could be that the tilde is it's not expanded because now that the tilde is just the string and this and the shell doesn't okay let's try this so instead of tilde I'll use home and now I type demo there we go yeah yeah so this what you just saw is not important for this initial shell demo but sort of shows that there's a certain order that bash evaluates the commands and um yeah all I can say is if you notice weird things happening then you can ask someone and maybe they can provide some advice and as you get more experience these will start making sense and you will think that you can do anything okay let's see yeah so try to we said some initial variables like cd work there which goes to your personal directory in scratch or then I'll go back to demo so you may notice whenever you're copying examples it will say things like um like run this command as batch so it will say copy this command and run it and where is script name you're supposed to replace that yourself with the script name you're running so basically it's not being used as a variable in the shell but a variable in our demo to um go to yeah it's a variable in our demo that you replace before you run the command it's like here okay it did nothing okay because you didn't have that variable right yeah because that variable was not defined so it was the same as just running as batch which does nothing and I push control c to cancel a program that's currently running so that sort of brings us to the end of the demo part here um so what comes next there's a program called ssh which lets you connect to other computers and run things so for example to connect to triton like I have here I've done ssh triton.alto.fee or my username at triton.alto.fee and then that gets you the shell somewhere else but that's sort of not one of the core concepts of this course and you can find instructions on doing this later and we'll do this for the um shell or we'll do this in the kickstart next week yeah I think the best way to learn shell is basically to use it so start it up and use it to um run your code to move files around operate on the computer and try to pick up some things see what other people do so how about yeah okay you use your shell daily and there are all these commands do you need to type all these commands one after the other or can you connect the commands you talked about yeah so that's sort of that I already say in the first part of this today's workshop so you write programs to run other programs so everything here I'm typing just for once but let's look at some of these other things like this test.sh program no I need to go back to my home directory so it said test.sh does not exist so cd to my home directory use history okay there's still not a test.sh test.slarm so here we see what is basically this is a shell script so the top few commands let it run on the cluster but here I've basically taken the same commands that I would run myself and then I can run them um automatically so basically you it's a very small step from running stuff in the shell to running um batch jobs um like scripting your other work which is really important for whenever you need to do big data analysis or things like that so you need to run the same program a thousand times or a million times you're not going to run that yourself you have to make a shell script and use these kind of tools so shell is itself a complete programming language so you have conditionals if then else you have loops for and while to do basically whatever you need and for very basic things you need just some basic commands that as you do more and more you will learn even more about this um you can do math in a shell so for example I'll set x equal to five and here x is not uppercase and that's it's still a shell variable so if I do echo dollar let's see so here I've done some math so by the point you start doing math in the shell maybe you're going a little bit too far but it can be useful for scripting when you're running a million jobs and you need to adjust something for each of the different jobs there's pipes I think it would be good to talk about as maybe one of the last things so you can run programs so so here words I will open this is a file that contains well it says about half a million words in the english language which is used for spell checking and stuff like that so there's a program called grep which will print words matching a pattern so let's say I wanted to print every word beginning in cs for example so this carrot symbol means beginning of line so here I printed um yeah these things which these don't really look like words so I guess there's not really that many words that begin in depth but now I want to see how many different um commands are in here so there's another program called wc which means word count and I do this and now word count prints the number of lines in the input the number of words and the number of characters so what if I combine these two so grep this to print out every word that begins in cs and then word count prints you the number of lines the number of words and the number of characters so I've just told myself the number of different um the number of different words in this file that begin in cs and unix is all about composing these different um things together so the idea is that you make one program that does everything but you have a lot of different small programs that can all be connected together with these pipes and you can do well pretty much so basically the idea would be that this would be like having blocks where the first block is this grep etc etc and this gets executed first right and then the output of that is sent to this other command wc that's how it is yeah and this is really beyond the course right now I'm just letting you know something you might see later and you can experiment with it so what would come next so there's a lot of different online guides for bash and shell scripting one of my well the one I learned from was called the advanced bash scripting guide I've heard there might be something more modern now within science it we have a Linux shell tutorial course which I don't know when we will do it again okay someone's writing it into hackmd here um this is a resource that's useful for scientific purposes like as a scientist you might have some useful stuff here um at least that's sort of the mindset we use when writing it and well sort of when you have a problem you can search shell and then what you want to do or bash and what you want to do and you can usually find someone that doesn't maybe there's a nice question there's a nice question in the hackmd because we are getting soon it's time for a break yeah but what about this path variable that this is something that you know you will come across the path yeah daily yeah so dollar path is an environment variable I print it and so internally in unix this is what it uses to find what to run so here path has something user lib qt 3.3 bin and so on if I go through I see see here's something in my home directory a bin directory so bin basically means executable files so when I type date how does bash know what to run so it searches every one of these different directories here from left to right and finds the first one that has date in it and runs it so I bet that date is in here no okay could that's user local bin maybe it's in user bin and there we go that's date if I want to see where bash is finding a program from I can use something called type type date and it says date is hashed and this is where it finds it from and type itself is not a program it's built into bash because bash can't start another program to tell it what's happening inside of bash so like type type we see type is a shell built in okay any other questions too well there was a nice long long discussion on why do we need linux is it good is it bad of course because a bit beyond of the topic here but yeah for those who are interested you know they can join the discussion there and yeah I guess maybe another interesting thing somebody was asking can I copy several files at the same time sometimes it's useful so let's go to shell demo let's copy let's say I want to copy both bash and file 0 to new directory copy file 0 bash so when you're copying if the last argument and copy or move is a directory instead of giving it that name it will copy it inside of that directory so I list new directory and it's there so if we wanted to be refreshed about how this worked what would we do we can look at the help so the long things scroll up and we see the different options so you can copy something from a source file to a destination file or copy a source file and dot dot dot means possibly more source files to a directory or copy to a directory possibly multiple source files so the comment on the is it good to use ubuntu or linux in general when working as a researcher so these days the advantage is less so really like bash shell can also run on windows bash shell runs on mac and so on so what we're talking about here while linux is sort of under it the lessons here are equally usable for other operating systems so I think it's useful to learn to use the shell well like to me part of the benefits of me using linux in the past was basically forcing myself to do things the hard way because the hard way shows you what's going on inside and makes it easier for you to do things the easy way later but these days on windows there is windows services for linux which can run all of this ubuntu and shell and everything for windows integrated to the operating system which I hear is pretty nice and I think would get you the same benefits um yeah okay are there major differences between less and more who wants the history of how these things came to be at least my theory of the history so first when there was unix people needed a way to look at files so you would cat a file um share dig words notice my nice use of tab completion here to basically make this magically appear so cat means concatenate and for practical purposes it means take the file and dump the content to the screen so here we see it's printing well one or half a million lines to the screen and this is actually a sort of good lesson here so the input and output and printing stuff can be the slowest part of your program running so cat can print the whole file or let's say test dot slurm so here I've printed a single file and this works well when it's short but then when something is long like words there was more which is basically cat but you push enter and it scrolls down or space and it scrolls down by one screen but you can't scroll up and down so you could only go down and being able to scroll up is pretty useful so then less came that lets you scroll down and scroll up do a lot more different things like for example in less I can push ampersand and then do test and here now it's printing only the lines that match test so all of these lines have a test in there somehow and I can search test and it will oh okay it's doing yeah there it goes it just quite slow because it's searching the whole file here and showing test so which one is best for you well it really is up to you so um I use well I use cat and I used less most often why do some options have a single dash and some have double dashes yeah so this is all up to the program so some older programs will only have the single dash options so more modern programs have double dash and single dash and basically with single dash you can combine them like ls ls dash la which is the same as ls dash l dash a but when you do hell or uh I don't know what the equivalent for the l option is but if there's long then you have to have a different option for all and you can't combine it like that and this is basically part of the user interface guideline so over the uh decades that shells have existed pvlog really refined these to come up with what they think is the best standards okay um yeah okay it's almost 2 p.m. should we have a little break and then what would be the next the next part yeah so now we're going to stop the stream and we will go only so if you're coming to the high performance computing kickstart next week next week you have a zoom link and we'll go there for installation help time so basically if you're having trouble getting connected to the cluster we can help you there and if not then well that's all so if you're coming next week please make sure that you have the cluster account and you're able to get connected and get the shell on the cluster otherwise you'll be behind and there's basically nothing we can do to um keep it um like to help you catch up by that because we'll be focused on the new teaching um yeah yeah okay okay this was hopefully very useful yeah i'd like to thank everyone that answered questions in the hack md um or that asked and answered there so i can share it here let's see yeah it actually works so you can see that people have all of these these are all questions that people have asked and answered and we'll post these on the workshop webpage there okay well thanks everyone for watching oh one last thing please give feedback so at the very bottom of the hack md um we're making a feedback section so please tell us one thing that went well and one thing that can be improved and both of these are very important since this is the first time we've done it by twitch and with the vertical screen layout and everything like this it's really important that we um hear what you think about things so please give comments there it's really important to us okay well with this will stop the stream and get going