This is the Big Picture, an official television report of the United States Army, produced for the armed forces and the American people. Now to show you part of the Big Picture, here is Master Sergeant Stuart Quain. Just before written history, a famous army was stalled before the walls of a famous city. Finally, in desperation, it turned to its engineers. And those early engineers built the Trojan horse and chained stalemate into victory. Well, there's not much demand in our modern army for Trojan horses. But the Army's core of engineers has been asked to build almost everything else. In today's Big Picture, we'd like to introduce you to the men and women whose job it is to provide combat engineers in the field with the equipment they need when they need it. Without this footbridge, these troops would have been stopped. Without this floating bridge, a lifeline of vital heavy equipment would have been halted, mountainside, and an airstrip constructed almost overnight in a far corner of the world. All built in combat by your army engineers. There is a temporary sign, but there are thousands of projects which are unmarked. The services of those who carry out the desperate work of construction during the heat of combat or during days and nights of extreme urgency where the job must be finished regardless of danger or difficulty, or fatigue or hunger, this story cannot be told often enough. Nor can it omit the important role of those who provide the equipment and keep it in running order for the moment when it is needed. In America's defense, not only men, but equipment, the right equipment must be ready. In times of peace, your engineers must be instantly prepared to give aid when disaster strikes, when nature goes out of control, eating the emergency, and seeming perfectly designed for its location, a new bridge replaces the one washed out by floodwaters. Whenever and wherever the nation suffers large-scale destruction, the engineers are on the scene. But how does it happen that in addition to the men, the right equipment is on hand? Obviously, a vast, well-planned system of supply is required to bring forth the right materials, not only for emergencies that may occur in peacetime, but for the major need of national defense. In depots all over the world, this system of supply must have engineer equipment for the soldier, on hand, combat ready. To see what is on hand in the storage depots overseas, equipment constantly to be maintained, serviced, repaired, and replaced is to understand part of the supply story. And to see similar long lines of bulldozers and other heavy construction equipment stocked in depots in the states, is to begin to recognize the size and scope of engineer supply activities. Phases of the supply mission, such as recording and cataloging all these items, and seeing to it that they are properly shipped when called for, these alone are giant tasks. For the seemingly superhuman job of inventory control, this country has developed literally superhuman electronic data processing equipment. This equipment has become essential for our modern army. Electrical machines, recording depot inventory, keeping stock records, recording repair parts levels, these process huge amounts of data at a very high speed. They save time and effort, and they help tremendously in speeding the delivery of engineer items to the users in the United States and overseas. The system of linked business machines, which among other things does away with old fashioned file cabinets filled with bulky and various sized forms, has greatly increased efficiency. Staffs can be smaller, but must be more highly trained. They are needed to process and interpret the supply data the machines turn out. All information is translated into machine codes on small, compact, easy to store, punched cards. When special information is needed, a sorting machine will find it, thus eliminating the time and labor of rummaging through large and bulky forms. The newest, most elaborate equipment used by the Corps of Engineers is the giant electronic brain. Brain's memory is on reels of magnetic tape, which carry the facts and figures of supply, as many as 40,000 characters of information are available at any one time. The brain is 100% logical and instantly reports mistakes to the operator. Besides analyzing data, the machine is able to predict future trends in supply requirements. Used for inventory control, the electronic brain is a time and money saver. A product of American ingenuity, it is of tremendous value to national defense. Here in the depots are the facts and figures in physical form that the brain handles and digests with such remarkable ease. Masses of construction equipment, as far as the eye can see, and all of it, each item is well known and recorded in the extensive data system of engineer supply by number, location and condition. Cranes. Trailers. Ditchers. All of it identified and in order. Stacked bridge parts piled high for all types of bridges, baleys and ponds, fixed and floating. When the demand arises, the proper bridge can be shipped in a minimum of time where it is needed. For the bridges that must be floated, there must be boats. These two are engineer equipment. Here, the boats are being tested by civilian specialists before being shipped to an engineer bridge unit. These boats must be tough and capable of taking plenty of punishment. They are small tugs needed for a myriad of tasks, such as the number of boats or a myriad of tasks, such as towing and pushing floating bridge sections and ferrying equipment or men in combat are easily handled, lifted in and out of the water, as simply as toys. Water tasks, which the Corps of Engineers may be called upon to perform at a moment's notice, there are several types of workboats available. Another collection of supplies. Crane parts and attachments. Crane, always a source of interest to the sidewalk superintendent, has almost as many attachments for digging as a dentist's drill, buckets and hose and shovels, each type for a purpose. To see even a portion of what is contained in the engineer's supply system is to understand a phase of American preparedness, the large amounts of different kinds of construction equipment and supplies. These are weapons too. They are the very best that American industry can produce for our military construction forces. They are essential to success in war. Because equipment must be ready for issue at all times, the supply mission includes care and preservation of this equipment. It's one of the shops in which this kind of work is done. Steam cleaning. Each item receives the individual treatment it requires. There was a time when mothballing techniques applied to such vehicles as this baby bulldozer meant a liberal pouring of grease over everything in sight. Today, preservatives are applied to relatively few parts of the equipment. A special aluminum wrapper is being used on a piece of equipment to keep out moisture. The aluminum cloth moisture barrier will protect this item indefinitely under normal storage conditions. The cloth is sealed by machine. Delicate instruments are given this type of storage treatment. One tractor protected against weather for anywhere from 18 months to three years, ready to leave the care and preservation shop for storage. No one knows when it may be called for. It may be three weeks, three months, or three years. It may be for the Arctic or the tropics, for the desert or the jungle. But when the demand comes, the equipment must be ready. Those machines returned from the field for overhaul are regarded as something of a challenge by the men in the repair shop. It's a major job to strip down a bulldozer, but in doing so, in providing a top-to-bottom overhaul, even to sandblasting the body and parts clean of old paint, the aim is to return the machine to the user as good as or better than new. After a paint job, a dozer blade is attached to this model and it is ready to roll. Beside the big equipment that must be restored to first-class working condition, there are many small items that are supplied by the engineers and therefore must be repaired by them. The infantryman's sniper scope is one of these. Capable of throwing a beam of infrared light for a considerable distance, the sniper scope is used at night to allow American sharpshooters to literally see in the dark. Precise measurements are all important in instrument repair shops where meters and gauges themselves are repaired. These tell a vital story about equipment and how it is operating. The key to the maintenance and overhaul of engineer equipment is in the large number of different repair parts required. Inventory control of repair parts is a complex and difficult operation. Electronic machines greatly facilitate the work of procurement, storage and issue of repair parts. A request comes in in the form of a punched card. The holes carry all the information. Requesting agency, date, the part required, method of shipment, and so on. This card and others are fed into the machine and the electronic brain will locate the nearest depot, storing the part, issue a warehouse order, and report the number of spares in stock. No one need refer to the files, no pages need be studied, no telephone calls need be made. In a matter of minutes, an order goes out to the depot nearest to the agency making the request. Here in an area stocking great quantities of engineer supplies, a highly organized system allows the orders to be filled with remarkable speed and efficiency. Fundamental in the operation is the chain belt principle. Various types of conveyances are in motion throughout the area and in the warehouses to simplify the routing of thousands of items which are simultaneously being processed. The Corps of Engineers uses the best methods employed by modern industry and takes pride in moving with the times. Every effort is made to save unnecessary steps and movements. This ingenious device called a tovair makes a round trip throughout the plant every 51 minutes thus providing a long distance chain belt for carrying small items from one section of the warehouse to another. All is lined with bins. In this depot, there are thousands of individual bins, each one storing a different repair part. And in few of these bins is their time for dust to gather for almost all of them contain fast turnover items. Also, every phase of the operation has been scientifically worked out from the standpoint of the individual worker to avoid strain and to prevent injury. In the bins, items are stored according to weight and size. Commonly drawn items are at elbow height while the light items are frequently stored at the very top. The items selected are now headed for the shipping department. There is no pause in filling the order from the time it is received. Of the many problems of storage, one is the damage to equipment caused by moisture within packing cases. A humidity sensing device is being used here to indicate the moisture within the box. Most of the problems of moving and storing large boxes are solved by the amazing little forklift trucks. These are an integral part of any large warehouse operation. Frequently, civilian employees devise ideas which aid in carrying out the supply mission. A set of rollers eliminates tugging and straining in the handling of heavy boxes. And here, a machine called a pack master, which wraps small parts, was improved upon by an employee's suggestion to the effect that the same machine could label the part as well as pack it. There are endless problems in packaging small parts. A plastic shield protecting the operator from flying particles given off by this sealing machine was an employee's suggestion, resulting in safer operation. To protect the individual and to speed the part on its way, these are two important aims in this phase of engineer supply. Among the many methods of protecting parts is a dip in a plastic bath, simple and effective. The tow veyer arrives in the shipping section with an order transmitted earlier by the electronic brain, fan blades destined for a depot in France. Here, the supplies are given final packing and are addressed. Everything flows along smoothly in a warehouse system second to none. At many stages, there are machines to carry out work that once took many man hours. A banding machine quickly and neatly reinforces the box. Sailing machine does its work with remarkable simplicity and efficiency. The fan blades are on their way. In a few hours, they will be on a plane, and in a few days, they will be at the depot in France. While most of the work at engineer depots is done by civilians, the army must have military personnel capable of setting up and running depots and maintenance shops in zones of military operation. These young soldiers are undergoing on-the-job training prior to serving overseas. Part of the training includes running their own depot, participating in all the basic supply activities that are commonly found in the full-scale operation. Working with an assortment of supplies, they become familiar with the practical problems of stock issue and control. Since complicated electronic equipment has become part and parcel of the engineer supply system and is to be used overseas, experience with its operation is part of the on-the-job training program. Men have been selected on the basis of aptitude for this advanced instruction. Many career opportunities are present in this field. National defense is expensive, so we are constantly seeking ways of making it less costly. Let us turn now from equipment and supplies to a man whose job is saving the taxpayer hundreds of thousands of dollars every year, one of the core of engineer's standardization experts, Mr. Bruce Dollison. Not long after the end of World War II, we began dropping items which were nice to have, but not really necessary. We made intensive studies of identical or interchangeable items, and since the Korean conflict, we have succeeded in dropping over 100,000 engineer repair-part items without weakening our supply effort. Here is an example of economizing. This familiar item, gasoline tank caps, used to be stocked in 87 different sizes and types. We now have reduced this to six basic types and sizes, some of which are shown here. Perhaps you have noticed in the back of your electric refrigerator small pipes. These are made of copper tubing. The core of engineers had over 3,000 requirements for copper tubing, each with a different stock number. We now cut these items from bulk tubing, using simple tools which are in the hands of the men in the field, thus eliminating 2,500 line items. When you press the little switch on the floorboard of your automobile to dim your headlights, this is the little dimmer switch gadget that does the work. Through standardization, we have succeeded in reducing several of these items with the same function to one. Incidentally, it is a less costly item. When you take your automobile to the filling station to have your car greased, these little grease fittings are the port of entry for the lubricating grease. Note on this board are 120 grease fittings which were formerly stocked under 120 different part numbers because we bought them from different manufacturers. We have now stocked these under one federal stock number and in one bin. The average cost used to be 22 cents each. We now pay an average of 3 cents each. So standardization results in not only space and manpower savings, but procurement savings. We have succeeded in eliminating over 5,000 line items of gaskets by the use of bulk material. The man in the field cuts out his own gaskets. Hand in hand with the program of eliminating all unnecessary repair parts by standardization, we have developed a small engine program in six sizes. One half, one and one half, three, six, ten, and 20 horsepower. Designed to meet the power needs of the armed forces, these six engines replace 78, now presently being supplied the military services. At the present time, at the Continental Motors Plant in Detroit, these engines are being assembly line tested. These engines will run water pump, air compressors, and hundreds of other items. Standardization is a huge step forward in ease of maintenance for the men in the field. In war, you cannot purchase or place a value on time. Standardization constantly recognizes new ideas, research and development, and a better way of doing things. Sometimes we compare it to the daily task of shaving. No matter how well you do it today, it still has to be done again tomorrow. Our goal in standardization is a better and more economical way of supplying engineer troops. Whatever the secret weapons a nation might have, none can perform without the support of construction power. America can be proud of its ability to manufacture and ship the equipment, supplies and repair parts needed to assure the construction power when called for by military units. And for numberless purposes including aid to our allies in the Mutual Assistance Program. These carloads of equipment symbolize not only our industrial might, but our clear recognition of the necessities of preparedness.  And these shipments to units here and abroad suggest to the countless constructive purposes for which this type of equipment can be employed. The future we do not know, but the past is full of lessons for the future. A shipment of supplies by truck recalls World War II's Red Ball Express for rushing equipment to the men in the front lines. Today we are continuing to think of the race against time and here for example new techniques for mass airborne transportation of heavy engineer equipment are under test. The work goes on. A joint effort by a civilian military team to develop the best techniques for supplying the finest equipment available to those who must use it and maintain it in the face of countless difficulties and dangers. Your Combat Engineers. Who's their services? United States Army Engineers are standing by ready when needed. Now there's a Sergeant Stewart Queen inviting you to be with us again next week for another look at your Army in action on The Big Picture. The Big Picture is an official television report for the armed forces and the American people produced by the Army Pictorial Center presented by the United States Army in cooperation with this station.


Welcome to the 2015 NCAA World Finals. I'm here with the world champion and the finals average winner of the $35,000 non-pro and that was Tessa Bunton who rode smooth and mighty. Congratulations Tessa. Thank you very much. So tell us about your two runs. You got a 218 and a 220. Describe the first run. The first run I was really nervous. Nervous to be here. I've never been in so many lights and you know it was a cool situation. It's Fort Worth finals you know. It was a little nerve-wracking today. It was just fun. I was like this is my last run of the year. I love this little horse. She's been good all year. I haven't shown anything but her and so I think the two of us just kind of walked in there and we were like this could be good.   Well yeah you could say that. It was yeah we just went out there and just did our thing. It was fun. So describe the whole year of chasing this title. What has been like for you? Well I really I just started showing in the 35 this year because it was a class that I could look my husband's horses and then come show and then when I looked at the standings in June I was still leading it and so he said well hey you know your marriage six do you want to show age events this fall or do you want to haul for the world and I said well I think I want to haul. It looks like fun so let's do it and I really was the only one just hauling in our barn. We had a couple more people come along and haul with us but I just decided I'm gonna do it. I'm on top why not. So this is the first year you hauled? This is my first year showing really yeah. That's a fantastic result. Thank you. Wow something's going right you know to put all that together and come out a world champion. How does it feel? I don't know if it still hit me or not yet. When I walked out of there I just I was just like wow the year's over that because I've been walking to the herd with pressure on me all year like I'm gonna I want to try and win the world I want to do this I want to do this and then today it was like I just walked to the herd and I was like it's already done. It was I took a deep breath. So you could enjoy it. Tell us about your horse. She is a six-year-old little mare that is kind of special to us because she is one of the first horses that Monty trained and showed when we went out on our own and I've loped her since she was two and I've just I've loved her and then he surprised me with her last year as a Christmas birthday everything gift you know for a while and he said but she's only five and she's only been shown in perfect situation so she's not gonna know what to do with you up there because I was learning how to show and so I didn't show her much this last year and then this year he's like all right let's do this you know let's crack her out and show and she just from the very beginning till now I haven't shown any other horse all year and I've run her all over the place and she has never stopped trying her best for me I mean it's pretty unreal and stayed sound very sound I've hauled her all over so would you do it again what's what's on the cards for next year I would definitely haul again it was the overall experience you know it was early mornings crazy hours long drives but the people I've met and the places I've gotten to go and the situations I've been in it's just I would definitely do it again and next year I I think I'd like to try some aged events and let's turn it down a little less traveling so maybe next year we'll be interviewing you for winning the non-pro as your first year competing just like you did this year maybe that would be cool well good luck with it all and thank you thank you very much


But thank you, thank you. All right, so the slides are already online and ready to go. If you bring up the URL there, slides.unsupported.io, slash explore-estrace, at least when you're looking down at your laptops, checking your email, things like that, I always think you're looking at my slides. So it's helpful. If anybody wants anybody to get them, we'll leave it there for a few seconds more. And cool. All right. If you do bring them up, the cool part is as I go along, you all will follow along with me, OK? So like I said, your system calls in you a brief exploration of S-trace. I don't like staying up there very much. There's demos at the end. I'll come back up, but usually I'm down here walking around. It just makes it easier for me to kind of go through this. All right, so first off, hello. And I think a lot of people don't start off with at least hello, right? So hello. My name is Alex Suarez. I wasn't expecting an introduction, that's why this slide is up there. I wasn't sure how the audience would sympathize with Adele or Lionel Richie, so they're both up there, right? So again, hello. And also, thank you for coming out. There's a lot of great talks at this time slot, something I wanted to go to. It would just be weird if I didn't go to them, or I didn't go to this one instead. So thank you for coming to this talk. Thank you for spending your time with me. I really do appreciate it. My goal here really is to entertain you long enough to learn a little bit of something, hopefully walk out with a little bit more knowledge, hopefully know less knowledge. That would be weird as well. So how are we gonna get there, right? Our agenda for today, kind of the topics we're gonna talk about. First, we're gonna talk about why this topic. Why spend 45 to 50 so many, it's talking about a very simple, very simple tool, very basic topic. Then we'll talk about what is S-Trace? Experience level in the room can probably vary from 10, 12, 15 plus year admins to two or three year Linux users. So I wanna get also on the same page on what S-Trace is, the same Blingo, the same jargon. And we'll talk about system calls, which are kind of the core of everything going on here, and kind of the meat of it. After that we'll do some demos, because what's the presentation without demos? Chance things go horribly wrong, it's always fun. So, so far it's like good, Wi-Fi works, this is working, you know, so that's kind of cool. Then we'll do continued learning. I can't show you everything about S-Trace or by anything in 45 minutes or 50 minutes, right? It would be impossible to really cover everything. So what I'd like to do as part of my role, at Rackspace as part of my role here is to get you enticed just enough to go out and learn a little bit more and give you the tools and the opportunities to do that in an easy fashion, right? Make it easy for you to learn more, make it easy for you to go out and just pick up more information. Lastly, we'll do some Q&A. And by the time it should be lunch, so here we go. So why this topic, right? Again, why spend 45 minutes talking about S-Trace? For me it's two things. The first thing is about solving problems. At Rackspace, one of the things that we do is, one of the unique things that we do in a managed hosting environment is that we get to see thousands upon thousands of configs every single day. While most people have environments where they run 10, 20, 100 plus servers, most of them are the same. Most of the configs are the same. They know what's running on them. At Rackspace, in a managed hosting environment, we have thousands of configs every day, running everything from your normal lamp stack, very basic stock install, two very custom apps, to the Java app that has been updated in five years because developers know where to be found. And so we have all those bits of information, bits of things going on. What that does is present us with lots of opportunities, we'll say, opportunities to learn and to figure out things, right? A lot of troubleshooting, okay? And also, this talk is about going back to, phone's dead, there we go, going back to basics. Because we have so many configurations on so many different servers, we can't guarantee we're gonna have the latest and greatest monitoring or application software, right? We're not sure we're gonna have New Relic, right? Or App Dynamics, or any of those things installed on there, right, any type of monitoring. So this is a talk about a tool that was pretty much came out, its last really big push was in 93, right? I'm talking about a tool that started in the 90s. Pour it over from Sun. This is not the latest and greatest, right? But this is a tool that we can use to troubleshoot anything on almost any server anywhere, okay? That's why I called it back to basics talk. That's why I find it super useful for the admins that I work with every day so they know how to use S-Trace in a very effective manner. Because no matter what's on that server, they can understand the very, very base core of what the system calls are doing to troubleshoot what's going on, okay? So that's kind of why this topic, right? So what is S-Trace, okay? We'll cover two things. What does S-Trace do and how to use S-Trace, okay? First off, very simply, S-Trace can interrupt a process trapping the system calls and the return code and give it to you on the screen, okay? Everything that the application is doing and that way it communicates with the kernel, it's letting you know what's doing what those system calls are, okay? So, right, what are system calls, right? I've already introduced a new term, a new topic. System calls are those functions that the kernel exposes out for you to use from your application. Most applications don't call system calls directly. They call libraries, right? Things that are implemented by G-Lib C or different C libraries to then talk to that hardware directly, okay? So your system call is that kind of interface between what you're writing in code and what you actually happen with the system, right, with the kernel. Okay, whoop, there we go. Oh, there you go, yeah. So, very basic, right? Jumping right into it. We can use S-tracing first off by doing S-trace and then the application we want to trace for you to simply S-trace and W. We'll do all the examples you see up here, we'll do demos of, so don't worry about what the output is in the next couple of screens. We'll do demos of it and we'll kind of go through that step-by-step in the demo section. But what you might get is something like this, all right? You'll get the system calls that you see up here, okay? Hopefully, if you can't see it up here on the screen, it's a little small, I think. Hopefully, you can see it on your devices or your laptops, think of that question. That'd be great. Oh, I'm ugly, it's fine. They don't want to see me anyway. Yeah. If we can, I'd like, I'd prefer them down. Maybe not. Ooh. All right, I like that. A little better. Yep. And I'm okay with that. Like, any good admin? You don't know he's there? He's doing his job well. Oh, wow. Okay. Wait till something screws up in a second. Okay, so as an example, I'll put you in my get, right? We can build upon that command and then do, oh, phone, thank you, phone. We can build upon that command and then dash V to make it a bit more verbose and get all of the gory details. If you can't see the screen, notice up here this first line, the ZEC line. What's happening here is it's combining all of your environment variables into a small structure and not showing them to you.  You know, you may hear sometimes that some like cron doesn't run with some environment variables, right? You can probably verify that by S-tracing and see what environment variables it does have. What environment variables do get passed to it, right? So it can really deepen down all the little gory details, okay?   We can also trace processes that are already running. This is useful for, again, for that Java app that no one wants to restart and your server has been restarted in three years. We see those, somebody has one of those. Those are fun. So we can trace a process already running, right? Also useful, an example we'll see later on for tracing like daemons like Apache. And you go have a web server, right?  We can do that, okay? Now, in doing this talk a couple of times, this example always comes up, right? Big old warning. When you trace a process, S-trace sends a SIG trap or signal to the process. Some processes can detect that and just shut down or act unexpectedly. Usually these are proprietary installers, think Plesk, right? Something they don't want you to kind of reverse engineer, okay? Something that involves a serial number or something like that. This happens all the time with us. When you install Plesk, it doesn't go quite right. We wanna figure out what's going on. We'll S-trace it. And then they'll remember that we can't because it detects that and kills out and says we're being traced, we're stopped. So literally, your S-trace process sends a SIG trap. And your application is like, whoop, hold on, it's a trap, hold on. Now it may continue on and continue to run and give you what you want back or it may continue to just die, get a SIG stop, a SIG kill, right? It depends on what application might be coded. So keep that in mind.  But again, it's very, very rare that this happens. Again, mostly Plesk, right? It's kind of the big one we've seen all the time. Small applications can give you quite a bit of output, even just small ones like W or password or things like that. So we can save the output to a file, simply like this, S-trace-o, file and command or the PID we want, okay? Ooh, wait, let's figure out what happened here. That's good, thank you. All right, not a big deal. Where is, where is caffeine? Where'd you go caffeine? Is up there anywhere? All right, let me turn off the displays real quick. Well, I know what's going on here. It's on the S-trace-o, let's see here. Turn off mirroring and there is caffeine, awesome. Display, arrangements, mirrors. For people to present, caffeine is a great little tool against one of those things that just continues to, whoop, whoop. Where'd you go, Firefox? There we go. All right, caffeine just continues to move your mouse for you, quote unquote. All right, so again, we can direct the output to a file if we want to. Normally it goes to standard error. Just keep that in mind, not standard out, but standard error. Try if you try to pipe it and get the first-hand line, just like that. Just need to redirect standard error to standard out. All right, so, next. We can also follow child processes. This is, again, we'll see this a bit more explained in one of our last demos, where we S-trace Apache. For those familiar with Apache, you may know that the root process has a mainpid, but it spins off all the child processes that handle all of the connections. We don't want to follow the root process. We want to follow that child process. Those child petroleum processes are more than anything else. So we can do that as well as you see up here. And these commands are just building on top of each other, right? What we're seeing here is we're doing the dash ff to follow the children, dash o, to put it out to them a file, and then a pid for whatever, maybe the Apache process, maybe it's something else, okay? And the output's gonna look something like that. You'll see what you'll get from that command is all the files individually labeled with whatever name you gave it, as well as the pit number. This will say a pit number for it, okay? So, useful stuff. We've seen this used multiple times when the scenario is that Apache is segfaulting over and over and over, and we think it's the PHP file somewhere in there. What we can do is do that, strace, follow the children, and attach it to the Apache process.  And the last line of every single one of those files will be open, such and such, PHP file, and then segfault, okay? So, super useful and super helpful when you wanna show a customer, look, it's this file, all these processes die from the same file. Did you change anything? No, right. Except that one file, right? I've been on phone with customers for 45 minutes to an hour. You changed nothing, no, no. Show them that. Oh, you did change that one thing, but that shouldn't affect it, no. It's part of the framework. So, all right. You can also use strace to not only get the output, but get stats, get a summary of the system calls that were made, any errors, and how much time they spent on each system call. This is useful when, for example, I'm not sure where to start looking at a process, right? We've already seen here that the output can be quite big, and we'll see it again in the demos. So, it's helpful to see, okay, where are they spending most of its time? Is it spending most of its time malicking memory? Is it spending most of its time opening files, checking for other files? Right, we'll see that here. And what you'll see is the output looks something like, look at that, okay? You'll see here that you get a percent time that's spent, and it's percent time in system calls, okay? From the man page, it's trying to measure that from the time difference between going into system call and coming out of the system call, okay? You'll get the number of seconds it's spent. I believe that's wall time, if I remember correctly. And then the number of calls it does, the number of errors, the number of errors are, the number of, if I remember correctly here, the number of negative one return codes for an error, okay? Maybe the file wasn't there, right? Maybe something that's not going to be detrimental, but again, maybe the file wasn't there, maybe you can have permissions, any of those things would cause an error on something like that, like an open like that right there. Okay, all right, let's see here. And then lastly here, we have how a process can exit, we'll get that at the very end of that Strace file, useful to see if the process did exit out correctly, right? Useful, or if it was killed by a signal or with a different return code, okay? Now we can get the return code from a bash, a variable just easily, but we can save this and look at it later on, okay? So that's kind of a quick rundown of some of the flags I find useful and how to use Strace, okay? Our next thing here is going to be system calls, okay? This slide came up a little earlier, right? I want to make sure I introduce a topic or a term and define that very easily, very early on. And the same one here, right? A system call is simply that as a function provided by the kernel that the application uses to access, make hardware calls, right? To write a file, to get memory pointers, things like that, okay? Now there are about 441 different system calls. I'll show you how I got that number later on. Some of them are synonyms for others, so not quite that many, but there are quite a number of them. We'll go over a few of them today that I find useful, kind of the first ones I want you all to know to kind of really, that most programs are doing, right? Opening a file, reading a file, checking the stats of a file. We'll look at those very briefly. And also, this is one of those sections where I want to talk about finding out more information and learning a bit more, okay? The man pages, usually we hit man and then a command, we get a man page up, right? Now, which section of the man page we get can vary, okay? The man pages are built out of different sections. Section number two is for system calls. Now, fine and dandy, but there are some commands, or as you see here, a bash built in, that have the same name as those system calls. For example, here read, okay? If you do just man read, you'll get the bash built in man page. Not what we're looking for when we're trying to figure out what a system call is doing. So, simply, man two read, and then we get, you see up here, the system call man pages, okay? And this works for, you can do man two and then any system call and get the information back, okay? Keep in mind some may bring up the system call page first, some may bring up another one first, right? Stats are a great example of that.  And we'll see that later on as well. Oh, let's see here. I really regret throwing a 30 second time on my phone now. All right, a note on system calls. The good thing about system calls is that they all have a similar structure, okay? As we see up here, okay, you have a system call. I'm gonna do this real quick here. You have a system call, we have a read, then you have any arguments, right, that you might have for a system call and then a return code, okay? And the beauty is that all of these system calls have the same structure. They all have the command, any arguments, and then return value, okay? And from the man pages, you can look at what the return value should be, what it means, right? And what those structures are that you are doing inside those system calls, okay? All right, so let's cover a few of them that I find useful, especially when someone's just learning about S-Trace, kind of the ones you're gonna see almost every single program I'm doing. So let's start with this. Open it, whoop, there we go, there we go. Opening a file, right? Opening or possibly creating a file. Most applications are gonna want to open a file, create a file, things like that. What you'll get up there is you'll see, you'll give it a path name for it. You'll see any flags you wanna do, use of it. To read only, open, append, any of those things, right? And what you would say, you give it a path name and open returns a file descriptor, right? A file descriptor is simply just a small number that the program will use to reference that file later on, okay? And what can you reference that file would exactly be the read system call. Notice here, what it's expecting is a file descriptor, okay? Coming from the return code of that file which opened, if you will, okay? On success, returns a number of bytes read, okay? If you see that you're requesting to read 800 bytes and you got 400, well, maybe you had an error. Maybe you read to the end of the file, right? So you can look at your system call and see, hey, am I reading as much as I expect to be reading? Yes, no, why, why not, okay? And then fstat or stat. Again, this is not one of those where if you just run man stat or man, at man stat you'll get the, the, I believe the application man page. But if you do a man to stat or fstat, you'll get the, well, it says call, man page, there you go. Okay, and this returns the information about a file. This is what the stack command shows, right? It returns the I know the file and in a structure you can begin to read those variables out, right? For example, the I know number, the permissions for it, things like that, okay? And then lastly, yeah, lastly, we have the syscalls for mapping memory, right? To map memory, to unmap memory, get a pointer back, right? We've seen it where applications just go through and map a ton of memory and we can show it's doing that by looking at system calls, right? So yeah, again, those are some of the most basic ones or at least the most introductory ones, right? The four ones you're gonna first see when you start looking at different applications. All right, so that's enough of me talking. Let's do some demos, this'll be fun. You get a chance to see me type horribly, okay? Real quick here, so on the slides, if you don't see a quick video up here, just refresh your page, it comes up, sometimes on a second time. I have these videos up here as part of the idea that you take these slides later on and whatever demos I'm doing on the screen you'll see up here later on, right? Obviously the demos aren't being recorded, so I try to provide these for you all as a kind of base to what I did up here on the screen because usually that's hard to read and we'll go ahead and look at, for example, that's not my one at all. There we go. What's that? Anybody got some? No, that my friend is the 50 year. I do not have that. $36,000 bottle. There was two in the US three years ago and there's one that came to the US, Canada, last year. So they're very, very rare. That one in San Antonio, with kind of just a small little plug for San Antonio. That's after the presentation. All right, real quick I'll show you what the demo looks like here and then we'll switch the terminal so that we can get a better view of it, okay? When you hit play here, what you'll see here is just, I think it's quite small and we'll do it better, but again, the idea of what's going on here, it's all, it's a thing called ASCII Cinema. You can copy and paste anything here, right? Play it back, kind of step it through, all fun stuff as part of kind of take it back and use it later on. But for here on the screen, right? So boom, S trace dash W, right? Again, the first example here, how do you use S trace? Very simply we can run a program and run S trace around that trace program from the get go and we see here, right? Notice what we see here also up here is this first line that's exact line, where'd it go? I probably missed it already. Let's do this. This is easier, S trace W, two, one.  Again, everything goes to standard error, switch to standard out. Again, first part of almost any S trace you're gonna do is this first exact line, notice what we saw earlier that if we just do with S trace and W, we get very small condensed output, okay? All right, cool. Thank you all, appreciate that. Okay, so what you see here, right? It's this first line, very, very simple condensed, right? So building upon that as we saw in our usage, we're just gonna add a dash V to that. Again, real quick in case anybody's unfamiliar where I'm doing this part right here, it's not part of S trace itself. I'm redirecting standard error to standard out so I can just grab the first 10 lines of that with the head command, okay? Again, not part of S trace itself, just a tool I'm using. So, right? So that being said, we see now our first line here, a bit more, right? All of our environment variables, everything's expanded out for us, okay? We kinda wanna get the nitty gritty of it. Okay, here we have a program not running quite right. We think maybe it's not getting a variable or a path or something like exported properly to it. Somebody else can help you out, okay? And again, lastly, we see here our return code, okay? All right, so let's switch back to, make sure I'm going with the slides here, right? So the next one here, S trace dash C and W. I'm not gonna run it, this time I'm just gonna switch back to the screen here, S trace dash C and then W, right? And when we get this time here is we get the percentage of the time spent on the calls where it's spending all it's time, okay? So, if we notice here, 245 calls to open, all right?  We'll notice that a simple program like W spends quite a bit of time opening, let's see here. Quite a few files from PROC, okay? Just to get some stats for itself. It spends a lot of it's time there. Sometimes tech comes to me and says I wanna learn how to just get better at programming or get better at X, Y, and Z. Project I've given in the past is use S trace, trace your simple tools, rewrite them in your language of your choice to learn how to use it, right? To re-implement some things. So, you should be able to look at this and kind of get an idea of what's going on, what files it's reading, where it's getting stats, things like that, okay? All right, so, again, we see here where it's been all this time. Now, for example, this program I wasn't familiar with, I might start looking at, okay, let me spend some time looking at all the opens, right? Now, I'll show you a demo in that here in just a second here, let me show them all my slides, all right?  All right, and again, the O, local machine, do we try and cap on that now? We'll take a small amount of time to figure that password out. I've learned my lesson before. So, when I do a dash O, what I get is everything with the standard error now goes to a file and I can interact with the program as I would normally, like you see here, everything going in the standard out that should, okay? And I can look at my file and say, less password dot out, and see my file there, right? I can look through it, see what's going on, can have some fun with that. Okay, now, let's see here. Are these demos going too fast or slow? Should I slow them down? Good, all right, I got some thumbs up, all right. No one's saying no, awesome. All right, so, here's a fun one. So, we had a scenario one time where, sorry, let me back up a little bit. As part of my role at Rackspace, one thing I do is teach Red Hat classes, and part of those classes are to have S trace enabled for everything. Now, a question came up, why would we have, or not S trace, I'm sorry, wrong presentation, SE Linux enabled for everything. And part of that, there's an exercise that we're recovering through a password, where we need to relabel all the files. And a question came up, why do we need a relabel, we're just changing our password. And so, what we found out is that, part of this is going on, we said we do a, LS dash, I think it's I, Etsy shadow, right? We have, the ash I gives me the I node of that file, okay? And when we did a password, let's do a password again. Password, okay? We saw that the I node of Etsy shadow changed. So, hence, if we're in a covering mode with no S Linux enabled, it wouldn't get context. But we want to figure out what was going on there. So, the first thing we did troubleshoot that was, we did, I saw earlier, was S trace dash O, you know, password.out, password file, okay? Password command, we did that, okay? And let's say, we looked at all the files there, and we said, as a lot of lines look through, I want to look at the many lines, right? But we knew it had something to do with the file. We knew it had something to do with operation on Etsy shadow of some way. And so, the next thing we can do with S trace is to limit the types of system calls that we collect. Okay? This is, I consider this a bit more of an advanced or a next step, that's why I include it in my first part, but I want to include it in the demo, because I think it's super useful. And it's a way to begin to really dig down and filter out what we need, what we need. So, let's take a command here, I'll break it down for you. S trace dash E, trace equals file, dash O, password trace.out, and the password command. What I'm telling S trace here is to only grab any operations that have to do with a file. Open, close, create, things like that, okay? And so, let's do that, okay? And then, now all of a sudden, our area to look through is now 142 lines. Okay, I'm looking at just the output, or the file operations. So, password trace.out, right? And we see only all the opens, right, when we get. I'll shortcut a little bit here, because that demo took forever, or that kind of troubleshooting process took quite a bit of time, but what we found out was that, is that at some point, right, the password command renames a newly created file to Etsy shadow, therefore, the new iNode, okay? Therefore, if you have SC Linux enabled, and you need, or it's on a running system, you need to re-label everything there, okay? So, kind of a way, we try to troubleshoot our own things to figure out what's going on and balance them like that, okay? You'd be surprised by the number of applications that do just that, open a new file, and then copy everything back into place after the fact. So, kind of a fun one, again, that one was just like this, dash e trace equals file, and you can do that trace on different families, not just file operations. I can say just the opens, or just memory operations, okay, I can really narrow it down like that, okay? All right, and then we have another demo here. Again, that video there is the demo I just did, see a chance to see it later on as well, in case you wanna review it. Again, building out a little bit here, again, not quite a new demo, but again, the difference here. All we're doing is the iN-V here to get a bit more output, right? And then, well, again, what we see here is a bit more information, right? And right here is an example of what you might see as an error. We looked at dash c, right? Again, nothing that's gonna kill the process, nothing that's fatal, maybe, but maybe something that wasn't found the way it should be, okay? Sorry to say it again. So, the question is if I can filter out critical versus non-critical errors, and that's not that I've found. Just like when you get that dash c part, right? The, let's see here, s trace dash c dot w, right? That there's no, it's just returning back where it comes back as a negative one, right? So, not that I've found, there might be, but not that I've found. Go ahead and make my copy out like, maybe it's out there. There's a whole lot out there. All right, let's see here, okay? And then, one last demo here. This is a fun one. So, s trace dash ff o, our file, right? And then our PID. You see here the little hint here, hc-axis and file-axis. So, our scenario, we had a customer who had their Apache document root on an NFS mount, and it had been that way for a long time. Everything had worked just fine. All of a sudden, they brought new developers and then things started to take a turn for the worse. Actually, let me sync this up here real quick. There we go, okay. So, it basically got new developers and then, like I said, it, their performance took a turn for the worse. And we asked them, would they change, would they change, nothing, nothing, right? But something had to have changed. So, this demo here, I don't have it recorded. It's just, it's kind of a fairly long demo, but I wanted to at least walk you through it to see on the screen at least once. If you have questions later on, come up to me and ask me or reach out to me on email or whatever, we can do it again. But this demo here is, on the server, I have a Apache server running. And only thing I've changed here for this server is, I've lowered the match detection per child just so I can see things, my threads spin up quicker than I want them to, or quicker than they would normally, okay? All right, and then, what they had done is, let's see here, where'd it go? One second here, there we go. There it is, okay. All right, so let's do this real quick. I'm gonna bring up here and say, while true, actually, that's trace, all right, local boxes, while true, curl. Okay, fair enough, okay? So I'm just pre-trafficking my server here, okay? Now, what I'm gonna say here is say, system CTO, yes, I'm running REL7, or SIN7, status, HTTBD, right? Because what I care about here is the, where'd you go? I'm getting the PID of the main Apache process in this case here, okay? And what I'm gonna do here is say, Strace dash ff, again, to follow those children, dash o and we'll say slash temp apache, or let's say scaled dot out, and then I'll get PID number after that, and then dash p there, okay? Did I get the wrong, okay, hold on here. There we go, main PID, that's what I was looking for earlier. There we go, okay. Which is here is that because my max section is so low, I'm sparing up processes quickly, okay? And what we'll see here, if I just till this off real quick, is I go to temp, I get all these files here, right? All those are the patch processes that we're running, okay? Let's take one of them really quickly here, okay? So the setup here is that in order, if you enable HTT access on an Apache server, right? Every directory that you have in a path needs to be checked for HTT access, okay? And this customer had, as they called it, their directory structure very organized. What they meant to us, it was a very deep and very wide, right, just a lot of files, okay? So for example here, let's do this here, quick. And say curl, I'm not even kidding, it was about this deep. Sorry? Oh, never. So let's go back here and say slash, there, okay? Let me double check something here on my settings. That one's good, okay, am I that correct? I think I do, all right, let's see what happens here, okay? So while true, do that, right? Awesome. And while it's going on, temp, rm-rf scale, and then our strace command here, okay? So again, I haven't changed the patches settings too much right now, so let's go here real quick. Now I'll cut it off just in the interest of time and say we have, just picking any of these here. Now look at that, notice that for here, it looks for HTT access for just part of dub. I have it turned on just for that. Just so I can find it in here. But you know it goes through the path of getting these stats and not a big deal, right? Oh, let's see here. Now let's turn on, again, closing everything off, resetting everything. Let's turn on HTT access here. And this is gonna be in our VAR to dub html directory, right, where all of our path is. We're gonna come down here and say allow override all, because that's the easiest answer to get working right now. Not the best, but the easiest, okay? All right, we're gonna save that, systemctl, restart, htpd, systemctl. Every time I did that before, it says ctl instead. Oh, all the time, right? Tap complete, I'm like, oh, dang it. All right, so ctl, restart, htpd, okay. That worked, thank you. Timing, right? All right, so let's go back here and do this again. All right, systemctl, status, htp service, and let's get our main pit again. All right, and then we're going back to our strace here of that, okay? Again, as you saw before, attach, attach, attach, great. Now, if this was segfalting, you'd see attach, detach, detach, detach, and you'd find your error, but that's good here. Now, let's take a look at any of these here. Less, let's see your scale, that, nope. Oh, sorry, scale it out. All right, grab one of these, thank you. Now notice here is what I'm talking about here. What was happening was that, check that directory, that directory, that directory, right? Right here, right here, right here. And all of a sudden you're adding in a number of calls to an NFS system that you don't really need, right? Why did they do that? Well, the developer said they need to change some Apache settings, right? And there wasn't much, but they need, because that one change, you add all this overhead. But they wouldn't believe us until we showed them something like this, right?  Okay, so you have that many more hits to an NFS directory, that many more calls on it, your performance is gonna suffer quite a bit, okay? So, yeah, they wouldn't see it, right? Okay, it's just them. But now throw on their 20 rubheads, right? All in that same NFS directory. So, again, this is one of my favorite examples of how we can use Strace to show what's actually going on and where the impact is, okay? So, with that, I'm almost going to close here. Continued learning, my last section here. Like I said, there's no way that I can show you everything.  Up there on GitHub, you can find some code examples, very, very simple C code examples that will help you illustrate when I do a simple open of a file or read of a file. What system calls does that translate to, right? What does it translate to? So, I'm gonna give you a real quick example of that on the system here itself. And let's see here. If I close this here, shut that off because we don't need that anymore. And let's see here, CD, Strace code examples, okay? What you'll see here is some very, very simple C code. All right, hello world. As with anybody first programming out, hello world, right? But what we can do is compile that, GCC, let's see here, hello world C, okay? Good.  But what does that turn into in system calls, right? We mentioned earlier that applications don't, bless you. Bless you to all of y'all. For some habit. Strace here and say hello, sorry, Ada out, right? What does those simple library calls try to be in Strace? There we go, right? We're gonna see here all the things it's doing just for a very simple hello world, okay? Now you can build upon these examples and say what if I write a file? What if I meld memory, right? And see what type of system calls you get back from that. So you begin to see as you title it together and you look at big applications, you see what they're doing, right? And you kind of get an idea of what's happening in there, okay? So again, just a real quick, small code examples. We look at the open file, go through and try to read a file, okay? And then again, following through with this, it's real quick here, GCC, open file, let's see. That's fine, old code. But if we do Ada out, file. There we go, right? But if we do this now and say if things learned earlier today, Strace-o-my-file.out, back. Again, now we get to see what those small opens and reads look like when it comes to what's actually happening at the system level, okay? And that's a way y'all can go and learn a bit more about that, right? Small code, find other code online and do the same thing, okay? It just helps you sort of to visualize what's actually going on code-wise to what's actually happening on the system itself. So, all right, let's see here. All right, so towards the end, I was to kind of jump back to the beginning here. Let's do this here on my phone because like any good talk, right?  So kind of in summary here, we talked about why this topic or why I find it super important for text to understand and why I wanted to share it. Hopefully you all found it important and found useful, can find useful walking out of here. Talk about what is S-Trace, talked about how to use it, right? And then we talked a little bit more about system calls and what those mean, okay? We did some demos up there, we did some horrible typing, at least I did. Things worked for the most part, which was kind of cool. It's very rare that it happens. And then we talked lastly about continued learning, right? How can you all take this from this presentation out into your next troubleshooting adventure, we'll say, okay? So with that, again, because I'm not used to having an introduction, which is kind of very nice, thank you very much. Real quick contact information, except by the end, my name is Alex Juarez, I'm a principal engineer at Rackspace hosting. My role there is a lot of training and mentoring of our front-end support texts. So doing things like this for them daily, kind of on a one-on-one, or doing things on a weekly basis with brown bags, kind of what I do there at Rackspace, okay? You can find me online. And then my friend Jill was nice to write me a bio, which was right up there. So again, might use to have this up there. So real quick, that's all. And then lastly, Q&A. Oh, we talked about whiskey. Let me talk up here real quick, so I can see you all if you have questions. Questions, correct? Yep, yeah. So question was, S-Trace included in most distributions. Yes, S-Trace was poured over from Sun in 91, and then kind of merged together for a 2.5 version in 93. So it's been around for a long time and all the systems I've seen, it's on there. Yeah, question right there first to come back here. Questions, how can you S-Trace a cron job? For me, so it wouldn't be the cron job itself that I'm S-Tracing. I would be S-Tracing while the descriptor if I want to run or S-Trace out the Damian Fort and follow its children that spins up. So that's how I attempt to do it, yeah. So, but usually it's going to be a script that I'm doing itself and seeing its environment variables that it's having, so, okay, question? I wanted to S-Trace something like Java, but it's really, it's called Unibasic by Dynamic Concepts. So this is a language, it kind of stores its source as a P code, sort of like a Pascal like P code. And I'd like myself and the developers really are trying to figure out what in God's creation this thing does have the time. And so how would you, would S-Trace be an appropriate tool for that when I said Java, you kind of laughed and I understand when you look at the Java, JVM argument list? Yeah, so it's the question that you could use S-Trace to create something like Java or kind of reverse engineer some code, right? And it really depends on how it's implemented. So like I said, it's something with an Installer like Plesk that would trigger for it, might just kill out. And really, it's not to reverse engineer the code itself but to see what's happening on the system. Maybe what files you're trying to access, what memory you're trying to mallet, right? So it's not necessarily to reverse engineer that code, but again, more to figure out what ultimately is doing on the system. Is it quick? Yeah, so if it's using incurses, would show that. Do we have something I'm not sure? I haven't come across that in my experience, at least we have troubleshoot stuff in the past. Usually what we're troubleshooting is gonna be, for example, what's it called? Coyote, right? So it's web backend or something like that. We're trying to troubleshoot. We might get, look at that a little more, but I haven't seen it using incurses or kind of in that experience before. So yeah, question, different? Question of the work with D-Trace. I do not work with D-Trace much. I know it's out there, just haven't used in my day to day. So, so. And you have the questions, questions in the back. Okay, that's a great question. So the question is, I'm just tracing a process and I see follow-scripters are already out there. How do I know what they are? I'm glad that question came up. This is fun. If you look at the PID that you already have, go to PROC, let's say maybe, let's see, your CD PROC, right? All the directories in there are those PIDs? Are PIDs, right? So within that, and actually this is a talk I submitted didn't get accepted, so talk to the scale about that. If I go into any of those directories, those PIDs, if you will, let's do one because we all are pretty sure what that is, right? And I go in there and look at the directory FD or follow-scripters. It will give me the follow-scripter to the file, okay? So that's where you can tie us together, okay? Any other questions? You're very welcome. All right, any other questions? No, cool. Thank you.


What's going on everyone? Sam here with LaytonSportsGargeman22, Panini one football hobby 10 box break number 25. Pick your team style, read off the list for names in our teams. We've got Carrie M, Chargers, Dale C, Falcons, Dallas P with the Titans, Dan M, Jets, Edward P, Bills, Edward E, Cardinals, Panthers, Browns, and Seahawks. Eric P with the Packers, Henrik J, Dolphins, James D, Ravens, Jason A, Bears, Lyons, Jeremy H, Commanders, Joel M, Niners, Joel G, Bucks, Joel B with the Bengals and Chiefs, Joseph S. Colts, Justin S with the Texans, Matt P, Broncos, Jags, Rams, Matthew P with the Giants, Matt P, Broncos, Jags, Rams, Matthew P, I with the Giants, Matthew C, Eagles, Michael B, Patriots, Paul B with the Raiders, Reed M, Cowboys, Rory C with the Vikings, Thomas J, Steelers, and Timothy F with the Saints. Notice recently they got more releases scheduled early than the one on blowout. Wow, that's probably good then, honestly. Beckett and Cardboard Connection. That's who I always use for checklists, and I always use Cardboard Connection. I don't mind Beckett either. Beckett just doesn't do a great job on the checklist. That's the only, that's my only complaint about Beckett. Alright, here we go. Box one. One of ten. Got one more half case of one after, and then we are on to 10 Box Tuesday. Nice! For the Ravens, two of 75. Kyle Hamilton, day one rookie auto. Congrats, Baltimore. Put this in the team order here. Got Ravens, James D. There you go, James. Nice one there, buddy. Day one auto. Shield or bust? God, I hope it's a shield, man. Empty. Box, dos. We can do a recap of this one, too, because it's quick. That is gonna be, that's nasty. 19 of 25, Doug Baldwin. Three colored patch auto. Grats on that. That is from 2018 Penini One. 2018. That must be an update right there. 2018 Penini One, Doug Baldwin. Congrats. I think that's Edward with the Seahawks. Seattle is Edward E. Congrats, Edward. There you go, buddy. Yeah, no, Beckett is easier to navigate. He's got a nice auto, too. Yeah, with the inscription. 8-9 inscription as well. Not bad there. That was cool. That's weird. 10 of 25, Doug Baldwin again. Two Doug Baldwin's, both of 25. 10 and 19. 10 and 19. Congrats, Edward. Double it up on the Doug Baldwin's. Not bad. Again, player worn, both from 2018 Penini One. Bet you didn't have on your bingo card, you'd see two Doug Baldwin patch autos pulled today. Nobody had that on their bingo card. Okay, thank god. Trayvon Walker. Precision. Rookie patch auto for the Jags. 18 of 25. Nice one there. Congrats, Jacksonville. That'll be going to Matt P. Matt PR. There you go, Matt. Alright, next box. Here we go. We've got Doug. No, I'm just kidding. That is gonna be 29 of 30. Ocho Cinco. Lone Star Autographs. Two colored patch auto for the Bengals. Game worn. Ocho Cinco. That's nasty. Grats on that. Sincy. That'll be going to Joel B. There you go, Joel. I should say Chad Johnson. That's now his name. Again, that is game worn from 2021 Penini One. So that is another part of the update. The Penini One update set. Now that's going to be to 199. Aiden Hutchinson. 152 out of 199. Nice one there for the Lions. Congrats, Detroit. Thank you there, Manuel. Picking up the Browns in a Chronicles PYT. Detroit. Jason A. There you go, Jason. Grats, man. That is nice. 6 of 10. Garrett Wilson. Two colored RPA for the Jets. Going to Dan M. There you go, Dan. Congrats, man. Garrett Wilson. 6 of 10 with the N from New York, I'm assuming. Or W. I know. I'm sorry. I'm sorry. I'm sorry, Paul. I'm sorry. But I have seen and we did a 10 boxer the other day and there was two Garrett Wilson's in it. So very, very good chance in the second half case there could be another Garrett Wilson. He's not a QB. If it was a QB, it's a little different story. Receivers, they 10, you can double up on him. Malik Willis. Logo. Laundry tag times two and another logo. Congrats, Tennessee. One of the last teams taken. That's Dallas. HawkDoc. Let's go, baby. One of five. Square one, Malik Willis. That's awesome, man. Congrats, buddy. HawkDoc. One of five.  That's really sick. Maybe I can get a Doug Baldwin double. Vaughn, I go to this Saturday and watch the break I did on Saturday. Two Garrett Wilson autos in a half case. Two. Two of them. I swear on my life that happened. That's 33 of 49. Sauce Gardner. Go into the Jets again. Dan M. Congrats, Dan. I flew over my head. I'm a bot. It's a 49. Vaughn's being a Vaughn. And shiples. And we've got, nice. Going to the Colts, 19 of 99. Alec Pierce. Two colored RPA. Again, going to the Colts. Very solid. Do a quick recap here, guys. Pretty solid break overall, I would say. We had a Kyle Hamilton day one. Two. Doug Baldwin RPAs, or not RPAs, but PAs, patch autos. Both from 2018. Both at 25. That was an Alec Pierce RPA. We had the Hutch 2199. Lone Star Game Worn of Chad Johnson. Trayvon Walker. Sauce to 49. That is six of ten. Garrett Wilson and one of five. Square one, Malik Willis. I'll do it for the break, guys. Thanks again for the fill. Up next is 26.


My name is Denise Baxter. I am originally from Martin Falls First Nation. I'm a member there and I am a member also of the Barrick Clan. I'm happy to be here. Thanks for having me and my current role at Lakehead University for the full-time role is I'm the Vice Provost of Aboriginal Initiatives and a secondary role I have is also teaching the additional qualifications courses for the principal PQP 1 and 2 online for the faculty of education. Aboriginal Initiatives has many arms to it. One of the pieces that we have is our support to the entire institution to I guess all things indigenous. So whether sometimes we're looking directly at supporting students. So we have a department called Aboriginal Culture and Support Services and we have a team of three right now that work there and they provide all of the direct student support. So right now we have a staff who's working with a community member and students from the community to set up the sweat lodge today and then tomorrow we'll be hosting a sweat lodge which happens every month and so all the students whether indigenous or are not are invited to come or participate in that sweat lodge. So that is one example of the kind of work that Aboriginal Culture and Support Services does. We also have counseling that's culturally grounded happening within that area. We have a transitions coordinator who works with students and does all kinds of different workshops on health and well-being. We're working with the law school indigenous director right now to look at sort of so you want to go to law school series so that we can have people start thinking about that in their first second and third year. So that by the time they get to fourth year and actually have to write their LSATs and do their applications they've already had ample time to engage with you know what is the study of law what is the career of law look like what are possible career options. They've had multiple time to practice those LSAT exams so that they're successful on their first right. So those are just some of the examples. We also have a staff member who runs a little team of students and it's called the Aboriginal Mentorship Program. So Lisa works with faculties across the university and then works with school boards, First Nation, public schools and even some of the adult age schools in this in the system to look at how indigenous traditional knowledge can be recognized or is recognized and how it correlates to you know western scientific knowledge for example. And so she travels around the region she has regular students who she's hired through some student funding we have to go work like once a week and with a particular class in the school and they've done some really interesting work. The main goal behind that is to really work with all students so say it's a public grade eights class for instance the entire class participates not just the indigenous students so it's a learning experience for the teachers for the school principal and for all the students in that classroom to really see the validity and the integrity of indigenous knowledge in an academic setting and also the faculty that work with us then help bridge those gaps with traditional knowledge keepers and elders. They did a really interesting project at one of the schools last year where they built a birch bark canoe but they looked at all the physics and the like the dynamics and the aerodynamics and the flotation and the traditional teachings of the birch tree and harvesting roots so that they could actually build their canoe and then they tested their models they built one model and they tested it here in our flu so they actually you know shot it down through an actual science-y kind of space but they got to go into the 3D printing lab and print their designs out so it was really a full year pace but I had a chance to go in on one of the days and they had two elders with Fort Willam First Nation and Fort Willam Historical Park who were there and so they were also learning the language at the same time so they were learning the teachings of harvesting a tree because you actually kill the tree when you harvest it for a canoe and so what's the ceremony involved in that what are the languages what are the mathematical concepts that you come across so it's really really rich but it's it's about having I guess maybe demystifying the academy for students but helping students realize that there really is a lot of indigenous knowledge recognized across our institution in a variety of fields another piece that we do that we're involved in is outreach so we have a coordinator and a chief who right now is actually I'm part of the Apsip trail I guess so she's working with other post-secondary service providers who are indigenous but also are specifically servicing indigenous students throughout the schools in our region and they travel all over the province different weeks of the year in the fall but one of the things that she does is really coordinate outreach for graduate students incoming undergraduate students and so right now she's working with our indigenous learning faculty and our international vice provost and we've applied for a grant to have five students go to Mexico in the fall and so we just finished doing all the applications they're writing the proposal for that and so they have applied to go like a university is a part of something called can max where they have presidents from a number of I think 11 Canadian universities and 11 indigenous intercultural universities in Mexico and the presidents get together every year and they alternate Canada Mexico Canada Mexico at different sites and they get together to talk about what indigenous learning and indigenous education at the post-secondary level looks like might look like what they've learned and so we're hoping to send five students from the indigenous learning program down there to do some community-based research at the same time that this conference is going on so that's another example and then another program that we have that our department's responsible for has an old throwback title but it's called the native access program so nap and so we have students it's an access program and right now it's connected with the humanities and the arts faculty and so that's where the program sits but we have 22 students who've started this year and it's a program where they move together as a group the classes run between 10 and 2 every day and some of them are just for the group but then other classes like indigenous learning 1100 are they're part of the regular first-year student population who are taking that course so it's about scaffolding some learning and some skill development so that when they take the three credits that they finish from that program and move into first year they already have three credits towards their first year and a solid grounding of how the university operates I think part of what we know from the research is if people are first timers I guess in like first generation in a system they don't necessarily have any understanding of how the system operates and success is always higher for those people that know how a system operates to be successful in it so while we do our best to I'm going to use the word disrupt the system by really having people think about our practices on an ongoing basis and looking at where those changes need to happen and how how we can help that happen we really want students to understand the processes of registration ensuring what it means to you know ask for extension assignments things about it like our accessibility finance scholarships like there's so many systems in a university setting that if you don't have a guide to help you navigate that your success rate is not going to be as good so that's another program that we have here we have a few structures in the university and one of them is called the Ilkmao and advisory council and it acts as part of the three pillars I guess are three points of a triangle in our governance structure so the OHEC is a committee that's made up of probably about 60 percent of community members are representatives from First Nations, Métis and UN organizations and then we have staff and faculty that also round that out and it's an advisory council that provides advice and directly to the president as the other part of that is with the board of governors so the three those three pieces make up that triangle and the OHEC we meet four times a year at a minimum sometimes five and really we look at everything to do with Indigenous programming Indigenous faculty hiring retention Indigenous students political landscapes happening in our communities and for me that's a really important part of how we govern the university and the role that OHEC places in there the other piece that we have is an elders committee and we also meet we meet five times a year every second month and the elders committee everything goes through the elders committee often before it goes to OHEC so we have a 12 elders that sit on that elders committee from around the country really but they all live here in Thunder Bay now and so we meet with them and we actually like the academic plan review was the most recent meeting we had so that they were the first committee that the vice president did reach to through the consultation process of our academic plan and got some very pertinent feedback to help along that process so that that to me is another important piece of that we also are part of the Northern Ontario School of Medicine so we have an Indigenous reference group which has been really interesting to work with and are actually we just had a report and a community gathering that happened together with that group so I think you know recognizing the importance of partners and decision-making is is another important piece of of really making good decisions in education on many levels I think Indigenous education is really about how the lessons we were we were taught and the lessons we still are taught and I'm going to just digress to a personal like a story at the moment but when I think about this Friday for instance I have an elder coming to the house to share women's teachings so she's coming we'll have a you know a small feast in in our space I have a few female friends who are coming over as well as my two daughters one of my daughters is currently on her berry fast as her transition to womanhood she's 13 and my older daughter has already completed that first fast which last 12 months are 13 months and so for me a big part of Indigenous education is exactly those types of experiences and they're the experiences of teachings that have been taught for millennium they're teachings that are that are taught to help you live your life in a good way they're teachings that are passed down orally from person to person and while you can read about them you know many teachings and some of the books like by Edward Benton Benai are out there and the sacred trees another one so there's some great books that tell you about some of the teachings or share those but I think face-to-face in relationship learning for me is is one of the key areas of Indigenous education you know I think about growing up and spending time out on the Albany River with my family and my grandparents and my aunts and uncles and cousins and and what life was like and I you know I remember asking my grandfather when I was young and I was old enough to take the canoe out on the lake to to catch fish and I had he said oh get some fish for dinner and I wasn't allowed to do the sturgeonedding I just helped with that but I did take my rod and rail to get some prickler some speckled trout and I said what help me do we need and I remember looking at me and he said we'll just get enough and I'm like well how much is enough he said Denise there's six of us here just get enough for dinner and that was it off I went and I think of what that means in terms of sustainability learning in terms of harvesting in terms of you know living in an ecosystem to ensure that that balance stays the same so it wasn't oh I'm going out because you know the fishing limit is you know four or whatever it was if I caught a big fish and a little fish and that was enough to feed us and that was all I needed if I caught one bigger fish that was all I needed if I caught three smaller ones and if I didn't catch any then maybe we need something else for dinner you know so but but I think of those lessons of life of of and those teachings that are all embedded within those kinds of experiences and to me that is what indigenous education is so how do you do that in an academia is is a whole other kind of question and certainly we have a lot of I think really great opportunities as we think about what that decolonizing educational western education looks like how we bring a traditional and indigenous ways of knowing into courses as we build courses from the ground up sometimes it's it's really I hesitate to use the word indigenize because I mean for me that means kind of a layer on but really I like to kind of start fresh I guess so maybe unpack a course and then put it over here and then start and build a new course with the community about what those courses are looking like and so for my particular role a lot of what I do is build programming with faculty deans associate deans and First Nations and Métis communities so that we're building together through collaboration new programming new experiences so that we're embedding those traditional ways of knowing and being at the at the heart of it and building the program around that and that takes time it's not quick there's a lot of learning that has to happen sometimes it's about structures and governance structures in the university and you know course hours and that type of thing but also from the course building perspective how we do that together and that equal partnership and that sharing around the table together and and collaboration is is really I think how we move forward with that there's I mean obviously some great books on you know by Baptiste and she the Coté makes has written some stuff around indigenizing or decolonizing the classroom at the post-secondary levels there's a whole lot of things that can be read that academics have written who are indigenous people but for me I think it's much more personal at that face-to-face space for me I really see gosh I see things really changing because I see that change underway already I've had a chance to speak to some professors who are working at Lakehead University and there's a group of indigenous professors who are working with the First Nation community here locally to build a land-based masters of education program so that's not you know it's not the university going to say to the community here we're going to give you a program it's really about people sitting down together and working through things and listening you know not just with their ears but also with their hearts and I think those types of relationships and partnerships that are that are growing and really developing right now to me those are the kinds of things that I see indigenous education really or indigenous people really lending a positive aid to the university to have the university think about a learning opportunity to change just change things moving forward I mean the reality is formal education is still recognized in many many situations and so we've been exploring through processes that will recognize traditional knowledge and experience within the academic setting so that that's also part of it and part of that like the native access program for instance is one of the ways that we do that right now we also have our native nurses entry program and those courses are built and we're built with community and and the research from multiple communities about what is necessary moving forward one of the other partners we're working with is looking to build a business program that meets the needs of the members of their nations so that people from their communities can have that that learning but also connected to what they they are learning and need to learn about doing business within their own communities but internationally and nationally as well so really I think personalizing education is probably one of the the ways I see that moving forward


Hi everyone, Joe for jaspyscasebrakes.com, coming at you with a good one here. 2020 Panini Contenders Football, first off the line. It's a one box break, random team break number two. Nice little sale price right here. Another one box break already loaded up on jaspyscasebrakes.com if you want to get in on it. Novet Common Ship, five autographs. We're looking for those red zone autographs. That's exclusive to first off the line. And of course, you know the 2020 draft class. A lot of quarterbacks, pretty good one here. Big thanks to this group for making it happen. Appreciate everybody on this list here. Thanks for getting in and good luck. All 32 teams are in. Let's roll it, randomize it. Six and a one, seven times for names and teams. One, two, three, four, five, six and a one. Dylan down to Frank after seven. Six and a one, seven times for the teams. One, two, three, four, five, six, and seven in final time. We got the Bucks down to the Panther. Now remember this is the 2020 draft class, so keep that class in mind. All right, Dylan, you got the Buccaneers, Michael with the Broncos and Bears, Frank with the Packers, Jordan Love possibilities. John with the Giants, Michael with the Chiefs, Brett with the Patriots, Juan with the Bills, Brett with the Cowboys. Dylan with the Jaguars, Michael with the Niners, Allen with the Browns, Justin with the Jets, Joe with the Colts, Dylan with the Titans. Frank with the Ravens, Brett with the Chargers. Justin Herber, right in this class.  Let's sort by team. And just to give you an idea of, just a reminder of the guys we're looking for right here. Right, oh, Joe Burrow, right, Bennett got the Bengals. You know, so these among others are who we're looking for. If we're gonna pause the video just for a little bit, for a trade window, when we come back, we'll see if there's any trades that don't have the break. So stick around, we'll see you on the other side. All right, welcome back everybody to the other side of the trade window. TWC trade window closed, no deals were done, so this list right here is now official for one box, random team, two. Again, next one box break is in the store. If you wanna run this back, we definitely can. Really good price point, quick little one box break, and a chance at some big hits. All right, so we've got a big stack of first off the line right here. First off, we're gonna select which side we're gonna do, and then we'll roll the die again for the individual box. So first, one, two, three for the left side, four, five, six for the right side. One, two, three, left side. So we'll save this for another time. And now, just from top to bottom, we'll go one, two, three, four, five. If I roll a six, I'll just roll again. Three, one, two, three. All right, good luck. There's the first off the line sticker right here. Again, that's what we're looking for here. Five autographs, one on card. Clear ticket mosaics would be pretty cool. Good luck. And those red zone parallels. I think there's one autographs, at least a red zone autograph, and then there's one red zone parallel, I think generally, generally speaking. All right, good luck, everybody. Oh, Jude Law turns out to be the bad guy. I forgot about that, spoiler alert if you haven't seen Captain Marvel. All right, my friends, good luck. Here we go. So yeah, so these vet commons won't ship. But stuff like this, of course, will. Kid reporter won't ship. And our first autograph is gonna be Darius Anderson. Rookie ticket auto. Colts, that's gonna be for Joe. Joe Lawson with that one. And we'll do left, right randomizers for those round numbers cards. All right, this is 20, this is the risk of doing some of these old product is that we'll have expired redemptions, but we'll still ship those to whoever that goes to.  But you'll get something back in return. All right, we got a nice Cam Acres on card autograph. And that red zone design, it's got some good penmanship here. Goes to Frank and the Rams. Where is, I feel like Cam Acres still has, he's with the Vikings now. He showed some flashes of brilliance with the Rams. I guess really only ended up playing a hand flow. Let's hope for the best for Cam Acres.  And we've got a Chris Godwin. Red zone parallel, that's gonna be for Dylan and the Buccaneers. Oh, is that a plate? Oh, plate coming up. And here's a Ross Blacklock championship ticket autograph, 13 out of 49. That'll be for the Texans. And that's gonna go to Brett. So that's one, two, two, three, four autographs right here. So maybe that plate is an autograph. So this is Isaiah Simmons, who is a cardinal, maybe? Yeah, back in 2020, he was a Arizona football cardinal. Again, it is expired, but oftentimes, if he needs good enough to either give you the autograph itself or send you something else in return, Michael with the cardinals. He had 2020 is a pretty good draft class, Caboose. All right, plate time. It is Donovan People's Jones, one-of-one plate. Allen with the Browns. Cleveland, this is for you. That's last spot mojo as well, 70% of the time. Last spot mojo hits 100% of the time. He's had some moments in his career. That's pretty nice. And a train whistle, Allen. All aboard the Big Hit Express. Nice box, but we still have not seen any of those big name quarterbacks that could still be lurking inside this one box break. So, I mean, could be one of those guys. So for those round numbers, Carter, let's do a left-right randomizer. Another box already loaded up, if you want to get started on that. Just a little bit of momentum could really unlock this break. You'll have a lot of people following you because it's only 2,999 a spot. All right, let's flip back over here. We got left-right randomizer, so let's roll it randomize it seven times, six and a one, one, two, three, four, five, six and a one, seventh and final time. Left side, we'll get it. That's gonna be all the left side teams right there. There you go, gang. I'm Joe, I'll see you next time for the next one.


So there are 15 of the astronomy tables scattered across the open world and today guys I'll guide you to each and every one of them. How's it going guys my name's DPJ and if you do enjoy the video leaving a like really helps out and if you like what you see and want to see more Hogwarts Legacy be sure to subscribe. Okay so the astronomy class mission is probably between your 12th and 18th main quest story mission in the game but within this mission guys you meet Armit who teaches about astronomy and the astronomy tables and after you've completed this quest there will be 15 of these astronomy tables across the open world for you to find. Now these only appear at night but they're quite straightforward to do but the location to each and every one of them you'll see timestamped down below in the video description. One thing I do want to mention is the 15th one is a sneaky one and it's caught a lot of people out and it's because it's located on the outer edge of the Hogwarts castle and that's the first one I'll showcase to you guys on screen it was actually the last one I had to find and it was a pain in the ass so there were 15 in total after you do the astronomy class after that one is demonstrated to you within that mission there are 15 more for you to get and again the one that everyone seems to be missing or seems to be having a problem with is the one located within Hogwarts castle again that will be the first one you see but there we have it guys guys if you enjoyed the video leaving a like who the helps out if you like what you see and want to see more be sure to subscribe and hopefully guys we'll see you on that next one. on your own rebellion more cobwebs you don't think any spiders might be lurking about I think you should do the honors the constellation should appear near the center of your view I was right about the tables they really are gateways to the far stars just as the book said


What's up guys, my name is Michael and welcome to my YouTube channel today. We are going to go over binary search tree insertion so the Basically, we're just inserting a node into a binary search tree So let's say we have this tree four two seven one three If I want to insert the value six, it's going to be right to the left of seven So how would you insert a node into a binary search tree? So the good thing about binary search tree is that the left side is always less than the current node And the right side is always greater than or equal to the current node So as you can see here, we have four is our root To all the values on the left side of four such as two one three It's always less than four and all the values on the right side of four is seven and it's always greater than four Greater than or equal to four so yeah to insert into a binary search tree all you have to do is just Essentially keep going to the left side Actually, essentially what you're doing is your check you're comparing the the root with like the node that you're inserting and then If it's greater than the node then your root you're gonna recursively call on the right side And if it's less than it, you're gonna recursively call on the left side So I'll just go over the code with you right now So I actually created a helper function because I didn't want to deal with like I Don't know. I didn't like I don't want to deal with like passing in data over and over again So what I did was I created like a new node Called the new note that we want to insert to insert net pass in data to that to create my new node first You technically don't know how I have to do this But that's why I did and I just called a this helper function to insert my new node to insert and my current root I pass in and then I set my root to equal to this new helper function and I return the root Because that's what they want to return the new root. Okay. So what is this code for the helper function do? Basically, I have the node that I want to insert and the current root so The base case is if the current root is null, then I just return the node that I want to insert Otherwise, I get the data at the root and what I do is if the data that I want to insert out is less than or equal to The roots data that I'm going to recursively call on the left. I Said roots Latin new on roots left is now going to be The helper function recursively call on the left side of roots left that pass in to insert node Then if to inserts Otherwise if to inserts data is greater than the The data at the current root, then I'm gonna call root Arrow right is gonna recursively call on the right side of roots, right? I'm gonna pass in my new node to insert At the end. I just returned the root So I could go over an example on why this works and yeah So let's actually go over that right now and let's actually use an example of This sample input on why it works. So here we have You have this right Okay, we have this so let's say I want to insert six So first I create a new node six Right. I just have this move. That's what this first Line of code does it creates a new node of six and I'm gonna pass in my helper function of six and the Root that I wouldn't want to insert that. Okay. So now what do I do? What do I do? If the root is no, which is not right the root is starting at four. This is not no So what do I do it is um? I'm gonna get the roots data. So what is the roots data? It's gonna be four right roots data is four If the value that I'm inserting is less than or equal to roots data Which is not right six is not less than or equal to four. So we don't even do this. All right, we don't do this So we're not gonna do that Now we're just gonna check is the value that I want to insert at greater than roots data So six is greater than four than roots data Roots data is four six is greater than four. So we're gonna go to the right side of This bright side now recursively call on the right side So that's gonna be Yeah, that's gonna be seven. So now we go back to the top and root is that is now seven So is root null? It's not So i'm gonna get the data at root, which is gonna be seven. So now root is seven by the way root is seven Okay, so now now i'm here Right i'm at seven So now we're gonna check is roots Is the value that I want to insert less than or equal to roots data. So is Six less than or equal to seven it is it is less than or equal to seven So i'm gonna set sevens left sevens left.  So i'm gonna recursively pass um The null and the node that i want to insert at which is six So i recursively pass in here then We're gonna have uh null is our root and the value i want to insert is six So is root equal to null? It is right roots left is null because it's null then we're gonna return six So that's going to return six and then Uh sevens left is going to equal to six Eh Yeah, this is sevens left So yeah, and then um After that we return seven So after we return seven it's going to go back to here. So then it's going to say four's right is going to equal to Seven so then four's right is equal to seven. So it's going to return that so then it goes back to the top And then after four is right is equal to seven. It's going to return the root Which is going to be four the top of four. So yeah, then our whole tree gets returned So yeah, that's pretty much the gist of recursively calling this function. Um, I hope you guys understand what i'm doing basically i'm just Going to the left if it's If it's less than I go to left if it's greater than I go to the right So then I'm going to insert the value that I want to Insert it at But uh, yeah, essentially that is all there is to it and uh, yeah, I got a seed on this question But that's all there is to uh inserting into a binary search tree Hope you guys know this video write com subscribe. I'll check guys later. Peace