What did the instructor say is the most important now I'm having a conversation with my honor. Ai dictation from last week. You're free to do the same thing. I kick out these links. What did the instructor say is the major point of this lesson. I already know what it is, but the fact is, you don't know what it is, and maybe, for some reason, people have higher trust in AI systems, right? If the AI system tells you something, you're more likely to believe it. Wow, that's pretty cool. Let's go and drop this so I don't know, maybe come later on when you want to review this stuff or something, let's go and drop some of these notes. Let's make a thing for today so we can keep ourselves organized here.
Also, it is not in your course outlines. Yet it's actually it takes, it's happening very quickly. Normally, it takes about two to three years between a new need being recognized and it making its way into the courses, because everybody in their hair stylist has to give their approval and agreement with it. However, with the AI stuff, it's moving pretty quickly. So next term in courses like this and all of them, I don't know if you guys are still here, you're going to graduate. Come on in. Let's get started. You're late. Let's go. You're going to see more and more vocational learning outcomes like effectively apply AI systems to the conduct of one's professional activities. I love otter AI, right? Basically, when, even if I'm sitting by myself just doing some planning, I'll turn on my otter AI. I'll just talk and discuss. I'll talk and get going, and then later, I'll ask my AI to summarize what what I've been thinking about. So it's pretty you can I pay, I don't know, I pay like, 10 bucks a month or something, because I want 3000 minutes, but you can get the free version of it for, I don't know, a couple of 100 minutes a month, which is still pretty good when you're studying. You can just ask yourself questions and then just get the answers and stuff. So anyway, today is Section One s1, s1, I
so we talked about the fact that we're going to now. Oh yeah. So here was the first thing. So the point of assignment one, I'm I was what somebody fill in that sentence for me. You guys did assignment one I know because I'm marking them, so tell me what you did. We started to study the process of DevOps. And DevOps actually has many meanings, but the specific thing we're doing with the specific DevOps thing we're doing is to build a CICD pipeline. Why? Well, that's sort of the center of it, right? That is what you create, and that is what you work for. That's the tool you interact with to build a CICD pipeline. Is simple, small scale, but still fully functional using a git repository. Thank you. Whoever gave me that answer, at least one person is paying attention. It makes me feel better. Now, what are some of the things you need, or what is the purpose of DevOps? Right? That that is our courses here on DevOps. So coming out of this course, my major expectation is you're going to be able to understand and discuss what DevOps is. So I guess we could say the purpose of assignment one was to get us going hands on with DevOps. So the culture or the processes of DevOps.
Now, DevOps is what somebody fill in that sentence for me, DevOps, which is our source of study. Here is what it is the discipline of how we engineer and deploy software products. It is the stuff that we do, right? I'll use a kind of an official sounding term here, like the discipline or the body of knowledge. It's like, project management is a body of knowledge. DevOps is the body of knowledge of not only development, yeah, that's, that's part of it. That's, that's a big initial part. So we got to develop it. Sure. Yeah, very, very important. And also ongoing maintenance. So once the product is out there, interacting with customers, they're going to make error, you know, problem reports and so on, open defects and new feature requests. So ongoing maintenance, ongoing maintenance of the product,
main you mean Maintenance,
so that could include both processing defect reports. I
and also new feature requests. So sometimes users will say, you know, we want the product to do this app and the third and then the product owner will say, well, that's out of scope for what we can do right now, but we'll add it to our backlog. So in our next version of our product, we'll roll that out there. And in fact, it's a very good chance that most of you, you know when you go out there if you're interested to do this kind of work, because everybody necessarily wants to be a DevOps engineer. But if you choose to pursue this line of importance, I can guarantee you about 90% that your first job is going to be involving something called l2 or l3 support. So in a company, imagine a software company has the help desk and That's level one support. Customer calls in, makes a complaint, the analyst goes through a checklist, and if they can fix it, great. If they can't fix it, they'll kick it up to l2 support, and l2 support, now might need to go and do more investigation, and then if they really, if it's something totally bizarre, they kick it up to l3 support. So many of you may wind up initially in l2 support. So in that case, you're going to be examining incoming defect requests from customers. And I told you the story last week when I was at the lab, some of the kinds of things we saw a lot of there, what they were saying was a defect was not really a defect, because it was not something we warranted that the product would deliver. It was not in the software specification document. However we analyzed it, we said, Well, yeah, our product actually should probably do this. So we added it to the project plan for next time. So software development, processing, ongoing maintenance. And of course, the third one, which, in my opinion, is the most important, because if you don't do this, well, nothing else matters, deploying the product, getting it in the hands of customers, making it available for customers to use. And these days, we're going to be going more and more with cloud based deployments pretty much run the world now. So think about Gmail or Google Docs, right? Those are cloud based products. Chat. GPT is a cloud based product. So in our final project, we are going to be making a simple cloud based AI application using our CICD pipeline. So that is what DevOps is. Very cool. Remember that stuff you
so our assignment one was to build a CICD pipeline to do all of that. So
now, assignment two, we talked about it last week, and what's going to be going on there? I'm
it. So basically, we're going to be adding just testing, because hopefully everybody remembers now that the basic operation of a CICD pipeline. We made some drawings and charts a couple of weeks ago, I pasted them into your instructional material. So the core concept here is we have a GitHub repository, and that is your pipe. Late. Wait, I didn't say, did I say you can come in. Doesn't matter you're you have to pass a challenge question, what is the purpose of assignment to
not bad. Okay, go and sit down, yeah. So, um, we're gonna set up get actions so that when,
uh, you want one, one team member, right, when some member of the programming team makes commit of a new code, commit to your GitHub that is going to trigger an action which is going to run some jest testing. So that's why we need to do our jest pipeline stuff today. So we're actually, you know what? This is such good stuff. I probably shouldn't just bury this away here in this news form. I'm going to make this to be like a whole sort of learning node so that you can add it to your stuff to study. So we'll post this, but I want to start getting more into this now to create some context here. So we'll post this, but we'll I'll make this into um Google Doc. I'll call it you know, prep work for assignment Two You
all right, so I'll call this something To the effect of building into assignment two. I
What did I do?
Control? Enter. Didn't
want to do that either. I
uh, because it's going to start getting more complicated now with more moving pieces. So maybe this document will so next week, when I ask you some review questions, you won't embarrass yourself by just sort of going, huh? I don't know. All right, so let's kick this out before I forget. I'm going to drop a link to this in your rule, so You'll have it handy
with The link and view I'm
All right? You? And
I guess if somebody is not even here right now so they don't know they're supposed to look at that, they should put something in the news form as well to hopefully they're at least checking the announcements that they're not here. I
All right, having taken care of that, let's Moving on and building a Door assignment to work You.
Right? So here was the thing that I was hoping you were going to remember. This was like, now what I started with a couple of minutes ago. So Assignment One is about creating the pipeline. You can look at that Lucid Chart there. Now how we're building that up here in assignment two is working with Yeah, so assignment one, we learned about how to work with Git and GitHub.
We learned the design engineering methodology. We learned the language of how to design software which is unified process, hopefully all of this stuff is going into your resume, your LinkedIn. We learned some how to do some basic TypeScript programming and use Visual Studio code as our DEV environment. And we learned to use the console and TypeScript to give input and output for our programs. And we didn't do any testing. We learned how to use UI modeling to do all the stuff. I'm not going to review that here now, but this is all to do All the stuff related to constructing a software product And
now how we projected that into assignment two? So assignment two, our evolution of knowledge was that we went from Git and GitHub, where we haven't completely done this yet, but we're learning to work with Git issues and Git actions and create issues and create actions to resolve the issues in assignment one, we learned unified process. Here. We're going to be learning how to use traceability matrix as a way of assessing when you do your when I open defects on your product, and you're deciding whether that's something you should process or not. Maybe it's a real defect, or maybe it's not. And hopefully you studied my stuff on software testing and you remember reading that one of the questions I give them in the software testing class is, when is a defect, not a defect. When is a bug, not a bug? I asked you to write down and remember that, what do we say? Is the answer to that, when is a defect in a product, not really a bug,
when it's not in the software specification document, the SSD, meaning it's not something that we promised we would deliver to begin with. So that's what the business analyst needs to decide on the agile team I
so we are going to learn so in assignment one, we learned to use TypeScript to write classes for flow of control. Now we're going to learn some JSON data handling. And here in assignment one, we use the console. Now here, actually, I don't really know, to be honest, we probably won't get to that in assignment two. That'll probably become an assignment three thing, but at some point we're going to see how to make a kind of a web interface using the service oriented architecture. And you guys might have had you might at some point in your education, you might have encountered the concept of HTML and building web applications if you have bonus, if you haven't, doesn't matter. I'm going to teach you right from the beginning how to make another kind of a web interface called a service oriented architecture. You so anyway, with all of that as our background, now you have a you you have this all summarized in one document. So you know this stuff, right? Just start paying attention here. So now let's begin with our today's activity. So I'm going to kick out some stuff for us to work on now you
I was closing down some of my windows. I got too much stuff Open. I
Oh, What's happening the
New York
you Don't Know.
Each of These
to one
Google sheet, which You have a link to. It's up there at the top of your little page. But before things were sort of in a couple of different places, they were kind of scattered all over the place. So here I put it all in one place to make it a little bit easier to keep track of. So let's go and start by reviewing our assignment, two instructions, and then the two big things we need to do are just testing framework and get issues and get actions. So if we get through at least one of those today, I think if we get through our just testing framework, we're doing pretty good, and then we'll move on and do what so once we have tests and we can have something to connect our action to, because so the basic thing we're going to do with get actions is connect them to tests. Now, where do our tests come from? Remember? We talked about it last week, I asked you to read some stuff. Our tests come from our, our, our Tracy. Thank you so much. Somebody's paying attention. Good. Yeah, come from traceability matrix. However, we'll get to that later. Let's start right now with just quickly reviewing what we're supposed to do for assignment two, and then we'll actually learn the framework. And hopefully by the end of today, we will have some ability to construct a basic Jess test. And guys, I'm not asking for a lot right now for our introductory level class, we're going minimal. It's called MVP, minimal viable product proof of concept. It's not going to be a real production grade pipeline that would take several months with a team of like 10 people working on it, but my goal is, what I want is that when you walk into your first day at work, or even before then, when you walk into the job interview, you're going to have enough of a sensibility to speak with confidence. So the interviewer asked you, so that you already know from now, right? I've said this so many times. I'm sure you're tired of hearing it by now, what are the five questions you're going to be asked in the job interview? And since this is not a career coaching class, it's not a job search class, we're not going to spend too much time on it. I'll tell you again, and you have this honor, AI dictation, tell me about yourself. You know, tell what do you know about this industry? What do you know about this company? What do you know about this job, and what do you want to be doing five years from now? So every one of those things you can connect directly, assuming you're walking into a job for a junior DevOps guys, I've been trying to tune you out. I've been doing really hard. It's very distracting. Honestly, if you don't want, if you want to talk, you're welcome to go anywhere else in the building and talk, or even at least have the courtesy sit at the back of the room so I don't have to listen to you. I don't know why you think you're talking is so interesting that you have to share it with me. I honestly don't care about it. Just please be quiet or leave. Two good choices, be quiet or leave. Thank you. Oh yeah. So now what I was saying is you are assuming you're going for a job as a junior DevOps engineer. Tell me about yourself. Well, my name is Peter Sigurdson. I'm a recent graduate of CSD, our college. I was really interested in all of my courses related to DevOps and software engineering. I love the idea of being involved in a function, involving building software, especially now that everything is moving over to AI and becoming AI centric, I see that that's going to get to be a bigger and bigger things over the years. And I would really love to work for X, Y and Z company. Fill in the blank, whatever company you're in, because, based on my research, you guys are the top players in this field, and you're the ones I want to learn from and do this with. All right, so that was my first question. Tell me about yourself. What do you know about this industry? Well, telecom or health care, government services, whatever it is, is x, y and z, go and ask perplexity AI, right? I shared with you my material on on using AI to prepare for your job search. So have some good line lined up. Have some two or three recent topical news stories about that company. You guys are great because of X, Y and Z. You're the key players in this emerging field. And I want to learn from the best. That's why I want to work here. So now you've answered question two. What do you know? But what you Oh, yeah, so what do you know about the industry? What do you know about the company? What do you know about this job? Once again, you have to immerse yourself in that environment. You have to study using all the practices I showed you in my book on getting the job. But you can say, Well, I understand that this is a job being a junior DevOps engineer. I understand that this involves monitoring our systems, studying the logs every day to make sure that things are running smoothly, doing updates when necessary, working with developers to provision development environment for their software project and being available to do Problem Determination on any other issues that come up. What do you want to be doing five years from now? I would like to be a team leader in some function related to DevOps. I would like to be a team leader in function relating to building and managing CICD for machine learning operations. If that's what you want. I can't tell you what you're supposed to want. You figure that out by yourself, but that would be a very strong answer. And all of those things have one thing in common, which is they're all directly relating to what we're doing right now. What we're doing right now will give you things to talk about with confidence. And I think another thing that I told you previously is everything you want, here is everything you want. Think about the question where all this what's the stuff that you want? A high paying job, high status, lots of money, nice car, nice house, financial ability to support your partner, you know, get married, have children, support your your partner, if that's what you want, if that's how the two of you decide you want to live your life so they can stay at home and take care of the kids, or take care of your family, your parents, whatever. In fact, what you should do for the first three, four months of your working career, save your money. Don't spend a dime. Put everything in a good, you know, safe investment, like a high yield government bond, and then, you know, about six months later, you call your parents and say, Mom, Dad, I just want to thank you for all the work you did in raising me and taking care of me. So I'd like to send you guys for whatever they want. Maybe it's a vacation around the world. Maybe it's a cruise. Because something you don't realize now, because your parents are gentle with you, they don't want to tell you the truth about the world. I will tell you the truth. When you were small kids, you were obnoxious little shits. No, you. I'm not saying a joke, not just you, like all kids everywhere. If people actually knew what the story is of raising kids, the human race would be over in one generation, nobody would have kids. So tell your parents, Mom, Dad, thank you. And here's a little present, but you can enjoy yourself after all the hardships you put up with dealing with me. So anyway, where I was going with this is to tell you that everything you want is on the other side of the interviewer to hire you. Of the interviewer saying, Yes, we're going to hire you. We're going to train you when you're we're going to get you started. And everything we're doing here, plus all of your other courses are moving towards the goal of getting that to happen. All right, so now let's get started. We're going to review our assignment instructions, which is right here, which, once again, I just put that link to the learning notebook at the top of your Moodle page, and I also put it in the news form. If you can't find it, let me know. I'll, um, I'll jump in there and show it to you again. So let's review our assignment, two instructions, and then I think the first thing we're going to do is our just lab now just and I know, because I think actually about three or four of you that I know, and probably a bunch of other of you have already done this, because you told me you did it, and that's pretty cool. Great. Jess is testing, so therefore we're going to need some program to test. Now you could do a couple of things, right? You could take your real, actual program, which you developed in assignment one, for my sake or for my demonstration purposes. Here I just created a very small, relatively self contained, not not too complicated, TypeScript program, which I'm going to share out with you. So use my program, or write your own program or whatever, but we're going to take some program. We're going to write some testing. That's about it. And then that, should I that probably will be as much as we get done today. We finished early work done. We'll start it next week, which is our issues and actions. We will set it up with your pipeline now, so when somebody may commit, it's going to run an action and it's going to run a test. It just has to run one simple test. Yes, no, the code compels properly or not, right? That's good enough for right now. And then we'll move on to the next step of it, but that'll be a story for another day. Alright? So let's, let's read our assignment. Let's review our assignment two, and we'll probably take a little coffee break, and then we'll come back and get started with her? Well, not really. I'm going to teach you how to make your own test cases. You remember there's, there's an old story many of you will probably heard. If you heard this story, it says, Give a man a fish. You fed him for a day. Teach him how to fish. You fed him for the rest of his life. Slap him across the head with a fish, and he'll stop asking you stupid questions. So that that's my way of going. I'm going to slap you across the head with a fish so you just figure out how to do it by yourself. All right, let's go and read our instructions. You
so here's a lab, and hopefully you've at least read it over or maybe started working through it. Our get issues and actions Lab, our two new learning outcomes comparing to we've already done, already done. We already talked about in our spreadsheet, working with issues and actions, creating tests. Now we're required to have a traceability matrix, and I'm glad when I asked that question, a couple of you did shout out that answer, great. I'll just quickly because traceability matrix is going to be pretty central to the part of our to the story of our life here. And I got to tell you a funny story a couple of years ago when a young lady, one of my class members, she came up to me, she said, Peter, whenever you talk about unified process and traceability matrix, your eyes light up. She reminds me of a small child on Christmas morning looking at the presence and the reason why is because I was doing software development back in the 1980s before we had this stuff. And writing software without unified process is a very miserable experience, and that's why I was so happy when I was at IBM. I was an Information Architect. They sent me for this training because unified process was actually developed by a PBM. So, you know, they trained all of their developers. Was the standard thing we do there, and makes it so simple, it makes it so procedural, it makes it so fill in the numbers, right? Paint by numbers. So if you, and even if you don't want to be a programmer, right? I've had a lot of students tell me say, Peter, I don't really like programming. I just don't want to be a programmer. My answer is, great. There's 1000s of jobs in the world. Be a bank manager, be a teacher, great. Go to work for any company, anywhere. But one thing I can guarantee you, if your supply chain manager, or if you're a supply chain manager with some knowledge of IT systems, if you're a teacher, or you're a teacher with some knowledge of IT systems, if you're a bank person, any role or you're in the role with some knowledge of it. Systems, you will get ahead faster. You'll move your way into management faster. You'll get your pay increases will come more, especially now that we're moving into an AI enabled type of situation, it's going to be a very different world, and people who are able to accommodate that world faster will be the ones that survived so
with traceability matrix, the way I do it is just using Google Sheets, but you have your requirements here, and your requirements came from where say it with me, unified process. First step is interviewing stakeholders, talking to the people working with the system, figuring out, asking them what they what they want the system to do for them. So it comes all now, in the case of in this class, remember, it was about three weeks ago we chat. GPT was our playmate, right? It was we made a synthetic AI personality, and we asked it questions, and it gave us answers. We said, play in the role. Pretend that you are a user, a software system and business domain, X, Y and Z, and that will answer our questions. So we asked it, we interviewed it, just like we would interview a real user. So you got your requirements now you made your requirements documents, and you number your requirements, requirement 123, and so on. And then up here you have your classes. So maybe I have class A, method one, Class A, method two, class B, method one, and so on. Where did that come from? Where did your classes and methods come from? Where did where do classes and methods come from?
Ah, why?
No, no, no. A little bit mushy, left a little bit get a little bit closer to the source. Where do classes and methods come from? Water? Business Building, well, business rules evolve into UML, and classes and methods come from your UML diagram, which does so whoever said business rules? Yeah, great. You have no idea how many classes I deal with at the end of like 14 weeks, they still don't understand that. They still don't realize the role of the of the business analysis. So that's great if you're getting that here. Requirement one is delivered by this method. Maybe this method. Maybe a couple of methods are involved. And requirement two is delivered by here, and requirement three is delivered by here, and here, that is a traceability matrix, wherever there's an intersection or a check mark. I should be looking to put some sort of a test case to they're called Oracle. By the way, if you read my PowerPoint on software testing, see that a test rule is more formally pulled in Oracle. Two benefits of the Traceability Matrix, or what? What I've already told you, one of them, it tells you where to put the test cases. Another benefit of traceability matrix is, is, is is, what if you have any methods because you're not connected to a requirement that is a dead execution path, get rid of it. That's quite common, right? Developers are there, cloning away one day, one of the developers decided it would be a good idea to make a method to solve a certain problem, and as often happens, Midway decoding it, she stopped and thought, well, it's kind of a stupid solution. I should go and do something else. But because she was busy, she never went back and deleted that method. That's what the information architects job is, to maintain oversight, supervision to sort of catch the little things that the developers who are down, you know, deep in the weeds writing their code, that they sort of missed the big picture. So it lets you know, if you have dead execution paths, it also lets you know visually, graphically, you can guarantee 100% code coverage, test case coverage. And so if your client or your manager says, you know, are you sure you've tested all the possible things you need to test? Say, Well, assuming that these are all of our requirements, maybe there's a new requirement we forgot, right? Maybe the business analyst added a new requirement, and we haven't heard about it yet. So that's the case. Let's go and fix it. But assuming these are all your requirements, and we know from our UML diagram, these are all of our classes methods, and we know from our study of our work, we understand what's connected here, yeah, yeah. Then you say, Yeah, I'm guaranteeing you that's that's 100% templates coverage,
right? So let's move on now.
So this assignment two. So Oh, actually, sorry, yeah, assignment two builds on The practices performed by DevOps engineers. I
so assignment two was like a business simulation of actually being at work as a DevOps engineer
doing Agile software development methodology. So part one is your pipeline setup. We'll do all this stuff together in class like now that we know the basics to actually do. That's why we have to be very careful with courses like this, because I could just give you the code and it would run, and you go, okay, great. I know all that. But unless you actually, unless you're actually able to understand the meaning of it. Then, then it doesn't get you too far. So now that we understand where all these things mean, next week, we'll just bang through and we'll set it up and get it all going, and then we'll move on to assignment three. But yeah, so your deliverables are going to be your GitHub repository containing your pipeline configuration, which is assignment one, plus GitHub action Get, get actions, your just test suite, Docker configuration we'll talk about later. And, of course, your technical documentation delivered with overleaf.com and the tech and you're going to just make a little report covering and discussing what you did.
All right, guys, it's 1005, let's take a break till 1025, when we come back, we will work on our jest testing framework. So on break resume at
25 angles. Remember, No,
yeah, local Time, around time,
show up on
anything I
It says
to
Do, papers, you. It's Very exciting. I
Which One Are
People, Yeah,
Typically in
been
01, of I Say This.
Happy one
Are You Coming?
Nozzles,
People See
I lightly, Hey, CSD
It's
decisions.
It
will Further, 21 anyone.
You Six Is history.
I piece of Pizza.
So, Yeah, you. Hey guys, I just have to answer an email from the office and I'll pick it up with our lesson here. They're just asking me to tell them Something they need to know. I
Well, Hey, It That's
we To That so Let
me Don't
Need To
and Thank You for
it. Yeah, The
Are I book we Alright,
guys, let's get back to work now. The first thing we're going to do, the first thing we're going to do, is that our program, Play program, our program, to see our pipeline with, and then we're going to write just tests on it. So let's start by doing that. First I will take that instruction out, and then we'll get going. You
so basically, here's how we're going to proceed. I will kick this. I'll share this link out a couple seconds. You
so we're going to use Visual Studio code to make this project like to make it as a Visual Studio Code Project. This code base and compile it with script, and that should take like, 20 to 30 minutes or something. So we're going to go and do that, and then once we've got that, so you see here a little bit detail. This is sort of starting to mirror real world complexity of what type of a program you might be working with and in a commercial IT environment.
One fill in the details here for setting up our jest testing and our CICD pipeline. So once we've got that going, next step now is going to be to set up our test cases. Then next step after that will be our get actions, workflow. This set up the project models, Pokemon. Now you guys have, you guys know what Pokemon is, right? It's a kids show. Actually, I remember when my kids were very small. It was just when it was a big thing in the early 2000s I don't know, I have a lot of affection for that. I remember, you know, they had the cards, they had the board games and all that stuff. So anyway, if you don't know what Pokemon is, you had a very sad childhood, go and watch it on YouTube so you're familiar with the background of it. But this is going to allow us to model a Pokemon gym with training tracking and sort of monitoring our Pokemon. And then this is going to give you kind of a framework you can drop your own, your own code into when you're ready to go and do the project. So this is not hard, but it does require paying attention, doing things step by step, and also some of the skills here might not have worked with a lot before, things like working at the command line, some dos, file programming, batch file programming, making directories and so on. So start by making a directory on your local hard drive. And if you don't know how to do any of the basic dos stuff, I'm going to sort of assume you do know it. But if you if I'm going too fast, or you don't just, you know, ask me, and we'll slow down and go over more detail. So start by making a directory for your project. Now, when I say project here, I don't mean project in the sense of our class project we're handing in at the end. I mean, this pokemon TypeScript application project.
So let's go and do that now.
So we're gonna open our now on Do I have any Mac users here? Everybody use Windows. All right, good. So I can just give one set of instructions for Windows. So now I hit my Windows Cortana key, you know that little key with the little four square things, and I'm going to open my command prompt app. In fact, I'm going to be using a more advanced form of the command prompt, which is called PowerShell. So we're going to be saying PowerShell right click and run as administrator. Is there anybody who is not able to do this, because if you can't do this now, you're not going to be able to do the other stuff, all right. So now we have a command terminal. Now we're going to make a directory. So hopefully you're familiar with the fact that the directory system in Windows is a organization, like it's an organized system of files that your operating system maintains to to store and put files and so on. So I'm going to type CLS, and now I'm going to type cd, space backslash, and that gets me back to the root of my file system, which is the C drive. Now I'm going to make a directory. So I'll say MK dir, and make sure you remember the names of your directories, because if you don't, then later on, especially for the project, you're not going to be able to find your stuff. So I always go by date just to avoid that problem. So I'll call this fall 24 November. I'm six. Doesn't matter what you call it, just call it something you're going to remember. Pokemon project, Pokemon TypeScript project, in fact, remembering my directories is such a big problem for me, I just always grab a little screenshot so I can go back and look at it later. I don't need to take a picture of with your camera or something. And now I'm going to change into that directory. So now I'm going to say CD for change directory, and then just type out the name of the directory. And after you type the first couple of letters, you can hit the Tab key and tab will auto complete. So if you're working with long directory names, that's a pretty good time saver. And now you see here from my hand dropped, I'm now in this project. I can now do the following. Here's a little shortcut I can do. I can say, code space dot. Code space dot. That does what that opens Visual Studio code. And the doc says, Use this directory as your default directory. And we worked a little with Visual Studio code before, and I pointed out that if you're in the wrong directory, you're going to get really messed up pretty quickly, so just be explicitly aware of what directory you're in.
So I'm now going to go ahead and press the Enter key to issue that command. So I'll hit the enter key, and everybody now does have Visual Studio code installed because we used it before. Is there anybody who was not seeing this? Don't be shy, because I don't want to hear next week. You always say, Well, I couldn't do it from the beginning. So everybody is there, and we can see right here, up at the top you can double verify that your
rights here, there we go.
So there is my
directory, and
All right now we're going to go ahead and build up our we're
okay, just a second. There's something here, because I just updated latest visual things. So just study well, actually, I haven't kicked this out to you yet. I haven't sent you out your instruction sheet yet.
So let's go do that. I
So those of you, a couple of,
couple of people just came in, you, you missed the first introduction part here. So I'm going to kick out this lab sheet, and we're gonna, sort of, we're gonna be working on so I'll put this in your I guess I should put it in our Google Docs, where everything is tied together one place. So copy published URL, all right. Also put it in the news form. Let's make it easier to Find. I'm
so you guys are section One. Okay, so that's in here. You
all right, so we'll give everybody a couple of seconds to get to your news forum, to that latest post. We just made go and open that and start studying it, and we're Going to go and start working through that now you
i Sorry guys, my daughter just texted me, she got into a program she'd been really working hard to get into. I'm just sending her a little congratulations message. I'll be back since I don't know, like kids, yeah, it's basically for a PhD. She's been accepted to the Perimeter Institute as a as a research associate. I
I guess I got to send her some money or A little present or something. I'll do that later. I
you. We did the three labs. Hyphen, I'll call you in a few minutes When the students working on something here. I
Right now we've got that set up, so let's go and proceed with our work.
So the first thing we need to do now, and this is going to be a little bit requiring attention, however, DevOps that this is what you do, right? This is an exact type of thing a DevOps engineer might do. A developer is setting up a project. They ask you to set up their pipeline. So we're going to have to go and do some making directories, right? Hopefully everybody can sort of grasp here, or if it's the first time you're seeing it, then just pay attention, because there is stuff which is important at work, which we don't really talk about a lot here in school, because it's kind of hard to make theory about. But here you see, we have a root directory, so within our new directory we just made, which we opened Visual Studio code for, we need to go and make a root directory called Pokemon. So everybody go and join me now, and because if you make a spelling mistake, that's going to be a big messing, a big source of messing up later. So I actually do things by copying just because I don't want to, you know, put an n instead of an M or something. So Pokemon gem is what it is, the root of our file system, of our project system here. So let's go over to Visual Studio Code. I'm
I Don't Know
so the next worksheet we
need to go to is this one, right here. Step two, it is in your learning workbook, Google Sheet, but I will also put it in the News Forum, just to make it Easy to It quickly You
it. Guys, pay attention.
I'm now poor. Did my pen go? Where did my light pen go?
I lost it. Ah,
I don't know where it is. Epic pen.
So guys in your news forum,
you see 1135 now let's do my next worksheet, one that's tagged as 1135 so go and get that one. I just posted it so you might have to hit refresh to see it. You
that. All right,
so I'm going to, given we're having about another 20 minutes, we're going to start next week with this stuff up at the top, setting up the CICD and so on. Let's just finish this thing that we're already doing. So next week we'll have a completely ready and working code base to go and see i CD so scroll down about midway, and you're going to see something that says, installing no JS and TypeScript, which I guess we already have. Maybe you got a new computer or something in the last couple of weeks since we did this. So if you open a command line and type node. Do you see something that looks like this? You're good, and if you don't see it, then install Node. But I guess we all have node, so we're not going to spend time on that. So we're now step three, installing node and TypeScript. So step one is done, initialize and install TypeScript. All right? So in your project, right? So in your Pokemon project, do the following thing I
and we did it before for the program you did for your Sud so you're probably hopefully seeing it a second time now, but if You have any questions or something, let me know. So we're going to start with NPM and knit dash. Why? Why are we doing this? What does this do for us? This creates a node project. This turns your code into an actual node project. I'm
so npm init, do that
and what does that do? That creates package dot, JSON, do Okay, so here is my Visual Studio Code project. There's all the code that I've entered in there. Now there's my directory structure. So make sure you're in the root of your project, which is the one that contains pokey gym, right? So you're in the right directory. You're in the project root directory, and you know that's your project root directory, because that's where your Pokemon Gym is. You
and at that directory,
maybe I should put a screenshot here, so everybody remembers that, because you have to go and do all this stuff again by yourself later. Of course, you can always ask me, but at least this way, you'll be a bit further Ahead, because you'll remember what We did This Time.
I so npm init,
dash y, the dash y just suppresses it doesn't ask you for the inputs. It just sets all the default values on package. Jason can always go back and and manually reconfigure them later.
So there's my package, Jason, I just got,
and my package, Jason is correctly at the root, or
it should be right. It's there containing that.
Right. Cool. What's our next step?
Npm install
TypeScript. Because we need TypeScript to compile our TypeScript code,
just copy that
command over and drop it right in there at the same level as your package, dot JSON
package, good.
Now we're going to add another command here. We're going to install the npx
TypeScript compiler.
This will create a TS, config, JSON
file, which type script is going to use to run its operations. You
all right, created a new type script file, just getting some deep some operations there. There's your package, Jason, sorry, your JSON config file. It tells Jason what levels to operate at and so on. You
all right, let's go ahead and install jest now. So npm install double hyphen, save hyphen dev jest,
just copy that whole line in you.
All right,
so just double check you don't get any type of Miss. Chatty Cathy, do you want to come and run the lecture? Hello, Chatty Cathy, yes, you You're talking too much. Be quiet. In another 13 minutes, you can talk as much as you like. So we've done that now next step.
Configure jest, create a jest, config, TS file. I can't think of anything there to change, so let's do that. So at
the same direction, directory level as your Ts config, which means it's going to be up here. So click on
and
move file smart icon,
paste the file name in there is my configuration file at the same level as my package, JSON in my Ts, config, yes, if I'm all Good, let's
put this stuff in.
Save and Close.
I'm not going to get into our get actions yet. First of all, before we can do this, we have to have ourselves set up in GitHub, which was our first step that takes about, I don't know, 30 to 40 minutes to do it. So not really worth I'm getting it up and going now, yeah, and I don't want to get started on this now, because we're going to have to redo it next week anyway. All right, so see if
there's anything else, any Little details on this we can do now? You
I'm just looking it over to see if there's any important things here we didn't do yet. I guess we've done most of them. I I'm going
to give you a couple of minutes
to finish up your typing and finish following all The instructions if necessary.
So Take a couple of minutes.
So Foreign
So I Never had
COVID. You it, Yeah, The
and Adam you
Okay, right, guys, we're not going to start doing this now, but you can do it at home to prep for next class. So I've added something to the top of your lab workbook. We've done most of it you can basically pick up at line nine. Just Type tsc for TypeScript compiler. This will compile your TypeScript code. Let's see if my project is set up and ready to do this. So going here and going to my project, I'm going to say TSC for TypeScript compile. It's actually got some errors I need to go and fix, so I will fix
those before next week. All right, guys, it's 12 o'clock. Let's
take off. Have a nice day. See you later. Bye. Have A good week. Stop.
What's up? How are you?
Okay?
Not Not a problem. Yeah,
that's right, okay, let's go and get that. I
smooth
that I have to find Ah,
Here we go. Sorry Nate. Where are you?
Oh, might I be okay,
it's not in this section. Oh,
we're not section two. Well, this is section one. I
Well, this is the attendance I
took today,
November, oh, no,
November or November 6, sorry, hang on.
I think you can answer,
yeah. S1
Why am I not finding my s1 attendance sheet? Oh, no, because this one, I didn't move into the cloud yet. This is here on the right.
My name and you can, you can do it whenever you sign it. Yeah, sure, if you just,
here's a good pen. You can use this one.
All right, guys, see you later. Going Have a nice day. Bye, here. Sure
it is one. Give me like
six minutes.
Did I call your name during the next No, because you weren't here right down here, you can get to it
later. I focus on the
team when they Alright, see you
later. Have a good week. What happened?
I'm Oh, yeah. Oh, very cool, yeah.
I will get I need to go. I need to eat something before I get to my next class. If you have a question, email me. I'll give you some sort of just send me a screenshot, send me your code and ask me your questions. I'll help you. I just can't right now. I