är så välkomna till det är sådant. Det är så mycket funn att se så många. Pippen var inte här, men Skåne stjärning. Så välkom en. If you don't challenge yourself to the max, you will never be great. Så det är sas, tjäljning, tjäljning av säljs, ständning här. Tidag är det spikning. And we think that you will learn. Well, something from us and we will, of course, learn a lot from you as well. So hope to see you in speakers corner afterwards so we can share thoughts. So welcome to our future at Skania, where we are joining the forces of agile coaches and HR to become to boost agile transformation. And my name is Marie Kjellberg, and I work as an agile coach at Skania it. My name is Malinultin. I also work as an agile coach at Skania it. And my name is Anna Karinan float, and I work in the central HR organisation of Skania and just to put you in the context of what we work in our challenges. Skania is world leading provider of trucks, buses and engines. And we have more than 52,000 employees in over 100 countries. And in Södertälje, we are on 16,000 employees and approximately 12 hundred within IT. Ja, and then we have the global HR organisation consisting of 500 people worldwide. And in the IT organisation, we have an HR function with 20 people and there that is also including the agile coaches and they are currently eight in numbers. So and the vision of Skania is that we drive the shift towards the sustainable transport system.  Urbanisation, sustainability and digitalisation. We will set the new standard with technologies like connected, electrified and autonomous. And this will of course drive the shift and will be a challenge to drive the shift and it will of course transform the industry, the transport industry and we will see a lot of things in this shift and like the last technology leap we had. This is really a big one. But the last one we had was 100 years ago when the combustion engine was invented. And we know for sure that it will take a lot of more or not 100 years before the next shift will come. So it will move of course in a much quicker pace. So a big challenge and this will of course also completely change the way we see in people and how they will work. And new business models will of course need to emerge as well. So we need to engage the people in a much better way and we will need to wake up the happy sleepers. So how did the journey start? We started with the agile transformation actually couple of years ago with Skania. Do you want to share the story how it started? Ja, the journey really started when we set up a team within Skania IT called improvement office with the focus on the agile journey. It was the team of agile coaches and some other people. And to start off with we did a lot of trainings and coaching of the managers and the teams. And back then it was quite a lot of focus on the methods like Scrum and Kanban. And after a while we realized that the teams didn't really understand why they needed to change and why it would be good for them to actually be agile. So we realized we needed to change something. So we tried to focus more on the leadership and the mindset and we worked a lot on defining the new leadership for Skania IT. We had a lot of workshops with the management team and they created this servant leadership manifesto, which explains what kind of behaviors they want to see in the organization and what kind of behaviors we want to move away from. And of course it's a change for everyone, not just the managers. Everyone in the organization needs to change. Around this time we also came across Pia Mia's book, agile people, and we thought that we really need to involve HR as well on the agile journey. They can actually enable a lot of the things that we need to be more agile. So that's why we decided to really work closer to them since we have a lot of things in common like leadership, the passion for people and culture. And we could be a lot stronger working together, the agile coaches and HR. And how did you do it? Concrete example for. Well, the first thing we did was that we moved the agile coach team, the improvement office into the HR organization so that we were part of the same organization. And then we also moved physical location so that we sat all together, seeing each other daily, being able to collaborate, collaborate even more closely with each other. Yes. And this. How did the HR experience this change? Yes, of course it was a change for for the HR organization as well. And first of all, I think we got to learn, of course, a lot more about agile. What is it? What does it mean? And also could adopt quickly to some good ways of working traditional coming from the agile with more quicker feedback loops and more reflections, taking that into our own ways of working in HR. Then, of course, supporting the organization, for example, with recruitment, is much easier if you understand what it is that we're trying to build, how we want to work. What is the vocabulary used in when talking to people that come from and wants to work in an agile environment? So that was really, really helpful. And of course, with the servant leadership, that was also something very important for us in HR to understand. We are in many cases sitting in the leadership teams out in the organization. We can follow this on a daily basis and coach and encourage the leaders, but also the employees out in the organization to embark on this journey and to achieve what the management team had set up and what we wanted to achieve. So that was really something where we could see that we could also contribute to this journey a lot. And of course, there are some challenges as well, trying to start up something new in a part of the organization and then at the same time belonging to the big HR organization of Scania and trying to move into more agile ways of working while maybe some of the central processes are not always so agile. So yeah, that's of course a challenge that we are facing. So how was it for the agile coaches? How were they experienced it? Well, it was a bit of a challenge at first. We felt that HR was quite traditional and we as agile coaches had lots of ideas of how we wanted to change AR. So it was a bit of a clash, but we found quite soon that we could actually get closer to each other and understand each other really well. We also felt that HR was a bit more manager centric, whereas we were closer to the teams and the individuals, but that was a good thing as well, because then we could have like both perspectives from each other. And we learned a lot about HR, how broad it is and the challenges they are facing in the organization and by sharing experiences and what challenges we had. And by questioning each other, we could have better discussions and not just sort of talking to supporters of agile, but actually thinking even deeper what we thought so. Ja, and this cooperation between agile coaches and HR also opened doors to other parts of HR, central HR, for example. How did that journey start? Yes, it did. We were very happy at central HR, actually, to be invited to the agile people training that we did this spring. So we took this agile certification together with Pia Mia. Welcome to the room, thank you for coming. And that was really, for me, who has been working in HR for quite many years now. It was an eye opener. It was like, okay, under which stone exactly were we buried? I mean, where did all this controlling and all this things that we have been spending most of our time on? Where did it come from? This is what actually matters. I read the book as well and I was so sort of feeling it was really touching my heart my stomach and the feeling that this is what really matters. So it was a well-needed wake up call, I would say. And so what we did during this training, we then had people participating from different parts of the organization, both from IT, from the agile coaches and from HR, from different departments as well. So we discussed a lot about how this agile journey could take place within Skania. You can maybe take the next slide there. This is an example of the results, what we did. So we did a lot of discussion around performance management, the engagement surveys, all different parts of HR and try to understand how is it different in an agile world compared to the traditional world. And of course it is a challenge in an organization as big as Skania. And we have also actually a quite decentralized HR function, which could be seen as good in many cases when you want to work and we are close to the business and all of that. But at the same time we don't have a solid common ground to start from either. So some things are really a waste that could be made more efficient by doing them in the same way and collaborating more across the borders. Whereas some things should of course be very local and very much adapted to the business that you are in, but not everything needs to be that. So that is sort of the challenge that we have. And what we also saw when we discussed this in the context of Skania, that we cannot go totally agile maybe to the extent that you can do in a small startup or when you're starting up a new company. We need to adopt, then we need to do this in a good way to combine both the efficiency of being and the economic scale or whatever you would call it that you can have in a big organization, but with also being fast, agile and adaptive. Ja, servant leadership and this agile journey. What is the next step for you? Eh. Yes, so what we continue doing after them from central HR perspective after we had taken this training was that we kind of took the concepts with me together with my colleagues and we didn't talk so much about now we need to move into agile ways of working, but we actually did more of sneaking it in and and when we were going to go through some of the principles and some of of the global processes that we have in HR, we put a very agile mindset on one end of the scale and a very traditional one on the other end of the scale, which then started a lot of discussions in the teams and where we of course sometimes ended up closer to to the traditional way of working and sometimes maybe closer to the agile, but it was a very healthy exercise, not just to get stuck in the old ways of working. Do you have any concrete examples for the next step? Yes, we do actually. Right now we're working specifically with the onboarding process and reviewing that one and we have put together a cross functional team together with HR and with it to capture the whole onboarding experience. It's important to get your computer and to have things in place when you are going to start, but it's equally important, of course, to get a proper introduction to meet the people you need to get acquainted with our vision, the strategy, etcetera, all those things, but it's different departments in the organisation, of course, that contributes to that journey. So we have very much focus on the user experience. We are building really a customer journey. We are going out and asking people that have recently been onboarded to Skania. What was their experience? How can we improve and what is important to them? And then we will do some quick design thinking here and try to accomplish things in a quick way so we can improve and we will do pilots and we will quickly get feedback so that we can continue that journey. And we also have a lean startup concept in Skania and onboarding will be one of the things that we will look into there. During six months work in a concentrated team focusing on parts of the onboarding process. Great. So what other other initiatives are we working on? At Skania IT. Right now we are implementing OKRs across the organisation as the way for everyone to understand the strategies and how they contribute to them. Så right now all the teams are writing their team OKRs and individual OKRs. And of course we at HR are doing our OKRs as well. So these are some of the OKRs that we are working on. And this work is under progress right now. So this is the first version. Så yes. This was two minutes. Good. Yes we have actually. Yes. Quite quick. Yes.


Now that's love right there. The YouTube team keep it clean. What's going on? It's Engraven here with another video. And in this video, these are some of my favorite videos to make, man, because we always talk about how people need to spread love more often. We always talk about how we just, we wish that people would be more positive towards one another because simple words could make such a big difference. And in this video, Orlando Brown Jr. Showed just that. Now this was not a find by me. Shout out to my guy, Sean, AKA Scribbles. That's my guy. He been supporting the channel for a long time now. Got to meet him a couple of years ago. Met him, met his sister. They were both super cool and super nice. So shout out to him. He even sent a card of football, Lil Raven's football a couple of years ago too. So much love to you. I appreciate you, man. Love you and thank you for spreading this positivity because so many times on social media, so much negativity continues to be spread. But this, nah, this was none of that. So of course, we know that Lamar Jackson is up for his contract very soon. He could literally get paid any day now. Any day now. He's eligible to be paid any second now. Any second our phones could go off. Lamar Jackson got his new contract. He got up too and I ain't even gonna get into the numbers. But anyway, a question that has been asked among many people. How much should you pay Lamar Jackson? Is he worth this? Is he worth that? You already know my answer. But let's go to Instagram. And my guy scribes, he said, I know a lot of people feel some type of way about Orlando Brown, but this is love right here. What's love? Cause we can't really see too much from this picture. Well, let's go check out the details. Jordan Schultz. Jordan Schultz who, if you're on Instagram and y'all are like on BR gridiron, you on ESPN Instagram, you on NFL Instagram, his name is always in the comments section, always. But anyway, he put up a post. He said, would you pay Lamar Jackson $45 million per year? And he said, let me make this as simple as possible. Yes, electric talent and leader who's vastly improved his mechanics as a thrower since entering the league. So he let it be known.  He said straight up, yes. I will pay him 45 mil per year. And he said, after reading that the Ravens made this out 45 a mil to Lamar, I have to ask you the question, what would you do? So we know how Jordan Schultz feels about paying Lamar 45 mil per year, but let's look at some people in the comments section. First, we see Cam Jordan, defensive end from the New Orleans Saints. He said MVP, LJ Air, cut the check. And I couldn't agree more. And then we go down to Ryan Hollins, former NBA basketball player, Kern J.W. Shout out to him. He said, easy. So I'm with that too. And then over time, Mike, he said a simple, yes. Can't argue with that. But then the comment that stood out to us the most, the one that really hit our hearts was from Orlando Brown Jr. himself, the former Baltimore Raven. And he said, 50 a year. So all these people, they talking yes to 45 for the Orlando Brown Jr. Said, whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa. 50, add five mil to that. And then he followed that up with, y'all ain't seen his best ball yet. And when I saw that, I was like, wow. That's real right there. That's real on so many different levels. One, because it's true. We have not seen Lamar Jackson's best ball yet. We haven't. And it's just, it's crazy and it's scary because while we've seen Lamar Jackson do some fantastic things, we've seen this guy do some amazing things with his arm, with his legs, the improvisation, just everything, reading defenses and just breaking stuff. We just seen so much already. But to think that this guy hasn't even hit his peak yet. Oh, that's a scary thought, man. Seriously, it's a scary thought. But more importantly, I love how Orlando Brown Jr. didn't let business get in the way of friendship. He didn't let business get in the way of his boy. And he didn't let business get in the way of love, man. That's love right there. Because we have seen so many players let the business get in the way and stuff happens. We know stuff happens. It happens in our own personal lives. It's happened before. It happens on people that we watch in sports and whatnot. It happens. It can just be ugly. The business can get so ugly. But it's a beautiful thing to see times like this when it doesn't. Times like this, even though Orlando Brown Jr., he plays for the enemy. He said, nah, I don't care about all that. Pay my guy 50 mil per. You ain't seen his best ball yet. And of course we know that even though players play for different teams, they play for rival teams and whatnot, it does not mean that the players end up being rivals themselves. Because they're all under the same umbrella, they just getting it a different way. So ain't nothing wrong with that. So I just really appreciated this though. Cause like my guy Sean mentioned in his tweet where he brought this out, a lot of people got a lot of stuff to say about Orlando Brown and it's crazy. And that's part of just fandom and people being fanatics and fans of their team. It happened. People will change their tune on a player quick. Quick. That player plays for their team. Oh man, this one of the best right tackles in football. Oh man, it's an up and coming young right tackle in football. Oh, he could play both sides. He could play left tackle. He could play right tackle. He can do it all. Shout out to Orlando Brown Jr. That's that guy. That's that guy. Ooh, he gonna make a lot of money too. Man, we got one of the best. Ronnie Stanley on one side, Orlando Brown Jr. on the other. You can even flip flop them. They say this, that and the other. But then when that player is traded to another team, especially an enemy team, he's not even that good anyway. Wasn't even that good. Man, he was terrible at the right tackle. He was bad on the left side too. Oh man, he was overrated. People's tunes, they changed quick. So shout out to Orlando Brown Jr. Shout out to him for maintaining that positivity. Shout out to him for maintaining just that straight up love, man. Cause that's what it's about. That's what matters the most and I'm with it. And appreciate you, Sean. Thank you for bringing this out to all of Raven's flock. Team, keep it clean. I love y'all. I appreciate y'all. Again, special shout out to our guy, Sean, AKA Scribbles. Love you. Appreciate you. We out. We out. Now that's love right there. That's love right in there? Yep. You wanna hear it? Okay. You wanna hear it? Yeah, I'm gonna hear it. Oh no, no, no, don't press anything.


Well, we are doing a knowledge transfer session for Windows Service Rapper. We have multiple participants on the call. Thanks Mike and thanks Budika for joining. Just to share some context for those who are interested. This year we have a number of Google Summer of Code projects and one of them is related to improvements in Jenkins Windows Services. We use a component called Windows Service Rapper. And this component basically provides us an opportunity to run masters and agents on Windows and to register them as Windows Services. So this year we want to add YAML configuration and also to improve verification of the configurations. Today we will do basically a code dive. We will take a look at the Windows Service Rapper repository and code structure. We will also talk about how this component is used in Jenkins. And then we will have some discussion about how we could improve the configuration so that we keep talking about the project implementation. That's good to you. Okay, so let's just start from the beginning. A Windows Service Rapper is a standalone project. Now it's hosted in a Windows Service Rapper GitHub organization. It's a transition that we've done a couple of months ago together this next term. Currently it's been used by multiple organizations, not only by the Jenkins project. So you can see that there are 4,000 stars and we almost hit 1,000,000 downloads. So yeah, it's used in Jenkins, but there are many other organizations using that. And actually it's really a good tool right now. What does it offer? Actually, a Windows Service Rapper is a binary which you can execute. So it provides versions for .NET framework, different versions. And also for .NET Core. So if you don't have .NET installed, you can take the native executable for 64 32-bit platform and run this. So what commands does it offer? It provides several commands like install, uninstall, for installing service, and also start, stop, and a number of other commands. So basically you can use them in order to install your service, your application as a service. Let me quickly show it to you. Just a second. I'll show you the demo. There's a lot of documents which we don't need. I will just take a demo from this folder. Documents. So we will just need this file. So it gives these files. Yeah, I'm running the demo on Windows. So we draw these two reasons. Okay. So we have a number of files. Actually, in order to run a Windows Service Rapper, you need two files at the moment. One file is executable. Okay. I have two executables. One for common and another one for the net core. And also we have a configuration file. So this configuration file is really simple. Well, it won't work actually, but it would install an abstract executable as a service in your Windows setup. And you can just run it. For example, I will just install. Let's see what happens. Do we see users account control screen? Okay. Maybe not. So anyway, it required me to elevate permissions. And after that, I installed it as my application. So then I can go to services. And here, for example, you will have an application called, it was called my app service. So yeah, my app service powered by Windows Service Rapper. And here you can find the number of properties like startup type, also login credentials, recovery options, and the dependencies to be used. All these options can be configured through advanced properties. So if you go here, you can find that there is my XML configuration file. And actually there is quite a long list of options here. And hopefully we will be able to get the same options in YAML once it finishes the project. So yeah, that's what Windows Service Rapper does. Same manner I can install this service. Well, let's try to start that first. Because yeah, almost like nothing good will happen. Okay. So yeah, it installed because we didn't force logs. And now if you open a Windows log, you can actually see that, well, my executable started because actually I have it as such executable. No, I don't. It should be just in the application log. Okay, let's say you install that and then switch to our demo. So I can show the code structure in two ways. One, I can just use GitHub. Another one, I can use Visual Studio. So what would you prefer? I guess Visual Studio would be a bit more professional. But yeah, we can just start from GitHub if you wish. So here we have a number of directories. So all this source code is located in the CRC folder. We also have a number of other folders. So doc is just all the documentation including cancellation guides, guidelines for reporting, also a configuration description I described. Then we have Ensh folder, which includes build YAML. So basically it's our configuration we use on Azure DevOps to build the project. In order to release the project, right now we use another pipeline, which is not published in the repository. We will move it here soon. We also have examples, but basically there are two examples. One is sample minimal. So this is the file you have seen. And another one is just sample all options. So basically it's, well, again it's a file which includes all examples and which includes some documentation. I'm not a big fan of this file. The intention was to just show an example, but maybe we could move for this entire file, for example, to access this schema, so that this documentation and center moves there and users can develop our configurations interactively. So it's something to discuss in the future. And yes, our main file is actually CRC. So what do we have here? Here we have a solution. So what it means that this is actually a multi-project repository and this solution defines the top level build. So for example, in Java, there is example like made in parent form, in multi-modular repositories here, we have approximately the same. And yeah, there are also .NET settings, but it doesn't really provide a lot of information here. It's just used for the build flow to other right versions and other components. And yeah, now we go deeper. So there are three folders. One is for tests. We will discuss them later, but yeah, obviously it's about tests. Then there is plugins. So Windows Service Rapper has a primitive plugin subsystem. This plugin subsystem is basically documented. Just a second here. The extension points. Did I remove that? Yeah, now it's here. Extensions. So in Windows Service Rapper, you can define all rights, not to inject additional logic, and the two extensions are included in the repository specifically. So there is the directory mapper and runaway process killer. So next turn wants to kill this repository and to replace by native features, but the directory mapper still makes sense. So most likely we will kill this extension engine. And our main repository. Yeah, sorry, I'm on top. And our main repository is core. So basically core is the logic of Windows Service Rapper. It can assist of two components. One is Windows Service Core. So it's basically a library which includes the most of components and extension API, et cetera. And the second project is Service Rapper. So Service Rapper basically defines main C-Sharp, the Internet startup logic. It basically uses the library. And it also has some features for logging. And finally this repository defines how we package Windows Service Rapper. So for example, here you can see the configuration we produce. So for example, here we have dependencies we inject. And also we have targets. So for example, we create a zip file for .NET Core. We create executables. You can see destinations where they go. And that's how it happens. And also we have a number of .NET executables. So for .NET executables, that is one curious thing that we merge the variables. So if you go to the built directory, let's go to our repository. So what I'm doing, hopefully nothing copied. But sometimes it's awkward. Okay. So here Windows, I have a broken mouse. I don't know what happened. Okay, here we have a development repository. And for example, if we just go to our SRC Core Windows Service Rapper, you can see two folders. We are interested in being. So here, for example, for .NET to do zero, we produce a number of details. So it really summarizes the libraries we use. So for example, we use a library for managing the zip files. We use log for net. It's a logging library. We also include our extensions. And we also include our Windows Rapper Core. There is a simple executable there, but this executable doesn't include these libraries. So this is how the .NET applications are usually being shipped if you built them by default with Visual Studio. But what we do, we actually merge all this stuff into a single VLL. So here you can see that we do the same basically for all platforms. So for all .NET versions, we just take all the assemblies, include them, and then we generate a single artifact. So for that, we use Unerge. Unerge is just one of standard tools for .NET. Yeah, we include it here. So what it gives us, if you go to Windows Service, we have artifacts. Here you have the finally produced artifacts. So here we have .exe files, and in PDB it's a symbol of files for debugging. So that's all we get. And these distributables, which we can distribute. So you can see that the size of them is quite small. Actually, this is the executable we use in Jenkins. Notably the executable for the last .NET version is smaller because we started excluding some code which is no longer needed there. So thanks to the next term for this work. So these are classic artifacts. And as I said, we also have .NET Core artifacts. They are a bit bigger. For example, if we go to the GitHub releases, you can see the recent releases. .NET Core artifacts is more than 30 megabytes. So why it happens? Well, basically we include .NET Engine there. So these artifacts can run on any X64 or .86 version of Windows. They do not require .NET. They are portable, but of course they are bigger. So if you use Java, you could do the same, for example, by using Quarkus or whatever to make it for distributions. Okay, so this is structuring principle. Before we proceed, do you have any questions? Are you still here? Okay, I'm still here. Sorry. Okay, so this is what we have in terms of the build flow. So all the build is basically defined by project files. So it's switched to Visual Studio because it's a bit more convenient here. Is the screen big enough? Maybe not. Okay. So here, by the way, it's better to answer the worries because otherwise I have to go and open the chat. So here, the build flow is basically defined and we produce the artifacts. So how do we test that? We haven't discussed the Windows Service Core yet, right? Yeah. So Windows Service Rapport was un-executable and the Windows Service Core is basically a main component. So it's a library which includes a lot of things. Notable things which matter in this project is server-descript. So service-descript is basically a configuration file. So you can see that there is an extension point called Windows Service Configuration. So this extension point just defines all the settings needed for Windows Service Rapport to run. You may see that it's a bit old-style, but basically it's structured or repositories, number of classes, some overrides. This is what we need to configure. All these options at the moment come from configuration XML files. There are also default settings which we can use. So you can see that not all settings are actually defined. So if you're not familiar with .NET, here we use a lot of properties. So it saves a lot of time on getters, setters, default initializers and other things. So I'm still waiting for Java to have similar syntax sugar like CSR. But yeah, this is what our configuration including defaults. And this is our service descriptor. So service descriptor is a class which basically takes XML as an argument and extracts all this data from XML upon request. And then this file can be consumed. So what it means, if you take a look at the score, you can see that there is constructor and then there is a lot of different utility logic like parsing, extracting files from XML, et cetera. But what actually happens, every time you need a particular argument. So for example, when you need to retrieve working directory for your Windows service wrapper, your code goes to XML DOM and extracts data from there. It's good from the point of view that basically all conflicts are supplied on demand, but it's bad because all conflicts are also verified on demand. So right now we don't have start-up time verification except a few options. So for example, if you need stop arguments, so stop arguments is basically arguments for additional stop executable which can be involved on the termination. So this code will be processed only when you start termination. And if there is an error there, basically it's too late because you want to terminate this service, your configuration is broken, so most likely nothing good is going to happen after that. This is the main weakness of this approach and hopefully you could change it during this project. Okay, so how is this file used? Let's go back to our main cshr. So yeah, there is a lot of logic there but basically we need to find the main function. And here what do we do? We basically run these arguments. We receive from CLI. So right now there is no special common line interface processing. So all of CLI is processed basically manually which again I think we could change. So here for example you can see the execution logic so we just initialize the descriptor. Here it reads our configuration. Right now the configuration is basically hard coded so you can change the file class. There is a pull request from Boudicca which changes so that hopefully you will integrate it soon. After that we initialize loggers. So we use log for net and we also connect log for net to windows logs. Why we need that? So if you're admin you can see system events in your administration panel. So we connect the service wrapper to that by default. And after that we just start initializing the service. So you can see that there is some common processing but interesting things start here. So there are commands like install, uninstall, start, stop and all of them have handlers. So these handlers can be executed and basically they do exactly what's needed. Above you can also see suspicious elevated flag. So you may have seen that when I installed the service it basically asks for permission every elevation. It's a new feature implemented by Nexton. Before that you had to run the executable as administrator. Now you don't have to do that because basically the executable itself restarts itself and asks for elevation. It happens thanks to this elevated callback. So basically it just receives parameters and executes them. Okay, so let's take a look for example at installation. And here you can see that basically in order to install the service we do a lot of classes because for example there is an interactive support for credentials. There is also support for defining different accounts but at the end it invokes standard libraries in order to create Windows service. So we don't write to registry on our own at the moment. It was a case for example a couple of years ago and now we mostly use service managers so that everything is installed and registered here. Okay, I don't think we need to deep dive basically if it does all the configuration you have seen here. So all these options. But after that it's just the beginning. So once we install the service we also need to actually run that. So when we start the service there is another logic included. The wrapper is executable and we try to execute that so you can see that it can also elevate permissions if needed but then it basically starts the service. And the service once started up it receives all callbacks and starts all the initialization project for process. And away it's written. Just a second. So start service. So just a second. It's a real nice system. It's a real nice schema. Yeah, so these handouts we execute including create for services. And after that we should really execute the thing and let's find it. Just a second. I don't remember this part of the code but we have a way to discover it easier. So we have our service descriptor. Here for example let's just take executable. That's fine to use this. So here you can see a lot of project. So actually it's located in main class. So yeah, it just starts with arguments. And here you can see that it starts the process with executable. It wraps all the arguments. It attaches a logger. So if you go to start the process logic here you can see that basically there is a bunch of arguments for process. And this logic just eventually yeah, so there are hooks. So hooks are used for extension and vacation like post termination, etc. But the most of the logic happens in the process helper. It's our own class which is located in utility folders. And this on class is basically invokes process and wraps it by providing cold environment by sending proper signals when you need to terminate the process. And this data is basically fed by our configuration because all these options can be configured in settings. And finally you will just start the process under wait for exit. So here you can see for example full installation. So we will need workspace, we will need arguments, we will need processes, etc. We set up environments for the process. Environments again, they come from configuration plus some additional options. And after that we just start the process or basically form a dictable stream and launch that and capture all logs. So here you can see that we actually capture logs from the process. In order to generate log files as a part of our execution this log file is then consumed, for example, by upstarting our login systems like windows events or Jenkins can also capture these logs and even add them to support models if needed. And that is handled by this handle. And finally we just wait until the process exists and we do it in a separate track. So that's it. Okay, so I think we shouldn't deep dive here. Do we have any questions before we go to other parts? Sure. Well, it's you who will be coding that. So if you don't have questions, then I am fine. Okay, so for you, the main classes of interest will be of course service descriptor because most likely we will need to rebuild it completely. I started doing some work when I was splitting the repositories. So now there is Windows service configuration and some companies already support sub-configuration files. So for example, download is located in a separate repository. So we already have a kind of structure for configurations. But we will need to warm up this structure to YAML files so that every section is implemented. And service descriptor most likely will do a major cleanup there. Another file which might be interesting to you is, yeah, this XML helper. So assuming that we have existing validation, most likely we will need to add some logic here in order to invoke gratification. But this file is relatively simple. It's just whatever the location which operates with DOM and has a lot of generics to simplify the things. Also has a lot of logic depending on dotnet version nowadays. Hopefully we will be able to drop dotnet to the zero support so the code becomes much simple. Okay, so yeah, the code is relatively small. Well, let's say it's much smaller than Jenkins core or many plugins like Git plugin. But it's still pretty complicated and we have some test coverage in order to verify that. So tests are all implemented in the test repository. And here, for example, basically we have a number of tests and test utils. And we use an unit framework in order to verify the test. So basically in unit is just another implementation of X unit framework. If you permitted we have JUnit, it's more similar. And here you can see that we just have a number of tests. So for example, here main test just verifies whether common iterations could be done. Like printing help. So here we can invoke it. Yeah, I thought that visual studio allows to invoke it from here. Okay, if not, it should be available here. Yeah, run tests. I'm not sure, but testing is a bit slow in visual studio. So here what you can see that we do testing for a number of configurations. For example, here we have main test. So let's stop the previous test run. Okay, let's rerun it. This interface is relatively new and it's still glitchy before that unit had its own separate test UI. So here you can see that I guess unit still has it. So here you can see that we just execute the test. We can also potentially additional outputs. I'm not sure what happens with that. But theoretically everything should be operational and we know for sure that these tests work. So they verify the results. Yeah, here's our standard output. Just didn't change the focus. So here for example, we expected that you run an existing command and we got exception. So the test passed. So that's the plan. Okay. So for more advanced tests, we have some tests for extensions. We have some tests for utilities. There is a lot of test helpers which automate our process and code configs, et cetera. So you can see that there is some test coverage. I don't think that test coverage in this repository is perfect, but at least we get enough smoke tests. And there are always issues. So why we cannot really test it entirely? Because for example, in order to test the service management, you need a Windows version, which actually supports that. So you need to run as administrator. It's technically doable now in Azure DevOps. It wasn't doable before in... So we were using Carpier. And if you try to do it in Jenkins, most likely it won't be possible as well. But yeah, right now we don't have integration tests which would verify the service part. So it's something you need to keep in mind because this part likely needs manual testing. But you can test that fine. Okay, questions? Can you explain the difference between starting in CLI mode and service mode? You mean in Windows services itself, right? Yeah. Okay, so basically let's go to main. So in main... So right now... Just a second. We actually need to run. So here, how we discovered that, we have a flag in CLI mode. Basically checks the number of arguments. So if you're supplying more than zero arguments, then you're running in CLI mode. And basically this is an interactive mode for admins. So for example here, help or whatever. So all these commands, they've been executed in the interactive mode. And basically this is management CLI. If no commands supplied, then it will try to run as a service or it will assume that it runs as a service. There was a patch which in recent versions were an external try to improve this behavior. So for example, right now if I just run without parameters, it will show me that I cannot start service from command line or debugger. And the service must first be installed or whatever. So basically it tried to start as a service. It tried to retrieve service metadata. It failed and you get an error. So this behavior is not ideal. It would be better to just print help. And yeah, the next term tried to do that a while ago. So in a version of 2.6.0, this didn't really work out and we had to reverse this patch because it cost regressions. So right now we're a bit, not that ideal behavior, but at least it works. Okay. So when we run with non-service mode, basically everything runs as CLI. So nothing specific. So here we still retrieve the service metadata, et cetera. But it runs basically as a common CLI application with all these commands, et cetera. With service mode, of course it becomes a bit more interesting. So here you can see that we actually start a new instance of the service tracker. What does service method does? So yeah, we start the service base. So the service base is the default API supplied by WinAPI, which defines all the service behavior callbacks because operating system will be talking to us. And let's take a look at our service wrapper. So our service wrapper is defined within the library. And it has a number of flags, but actually it needs to supply some information like conversion, for example, it needs to follow the process and other definitions for runtime. It also needs to expose the status. So this is a common logic. And here, for example, we start the service and pass service descriptor. So basically we pass configuration here. And then our service will be basically managed by Windows. And there is a lot of logic there. So move file, et cetera. This is a start-up logic where we process configurations. Where it actually starts, there is on-start method. And the on-start method, well, what it happens, we first we retrieve environment variables defined by our configuration. Then we handle file copies. So there is a way in Windows service wrapper to implement data migration. For example, if you want to update the service, if you want to change the configuration, you can define migration in the configuration file. And this file copy is actually a desktop. After that, it does null nodes. So here you can see a funny thing already that a code appears completely differently on Vnext. And basically it's .NET 4.6.1 and also .NET Core. So here we use .NET features. But for all the versions, we don't really have standard methods to download files, et cetera. So we will just do it manually using, again, code-based in the repository. So here we download all files configured by the configuration. And so on and so on. So basically Windows service will implement the hook and do this management. Same for shutdown. When it receives shutdown, it processes the hook from, again, Windows management interface. And here we just stop the service after receiving. Again, we do a lot of configuration processing, et cetera. But basically it's an intelligent version of killing the process with some of it. And here we have a super useful feature in configuration that you can beep on shutdown. And it was implemented long ago, but it's still a part of the system configuration if you need that. Okay, does it answer your question, Boudicca? Yeah, thank you. Okay. So yeah, this is the code. Actually the code is the relatively simple configuration management part. Yes, it's not this simple in all this service descriptor and callbacks, but hopefully we won't need to modify the code too much during this project. But yeah, that's the plan. Let's take a look at how it's used on the Jenkins site. So in Jenkins site, by default, in Windows service wrapper, we publish GitHub releases. We also publish versions to Nougat. But Jenkins uses additional way to retrieve the repositories. So, for example, it's strange. Okay, but here for example, we can go to our repositories and, well, to the Jenkins repositories. And here's the first thing you can discover is maybe packaging for Windows service wrapper. It's a historic artifacts because Jenkins build flows to lie on a Maiden packaging. And here we can repackage artifacts as Maiden and deploy them to Jenkins Maiden repository. So this is the repository which we actually consume within Jenkins. And basically, if you go to our artifactory, here you can see that, yeah, it's just Windows service wrapper. And here you have a number of versions. So the last read this was 2.720. And here you can see that we actually include .NET 4, .NET 4.6.1, and the empty version, which is actually .NET 2. So this is all we include right now. We don't publish .NET Core versions. But yeah, most likely we won't need that if we ever decide to do that. So where is this library consumed? We have three areas. So firstly, it's Jenkins Core itself. So Jenkins CI. Sorry. Crap, Jenkins CI, Jenkins. So in Jenkins repository, we include Windows service wrapper in order to support installing Jenkins as a service after it's started up. So here, for example, you can see that there is Windows service lifecycle. So it's a special logic which allows Jenkins to properly operate as a Windows service. So for example, here it can self-update the Windows service wrapper if needed. And for that, it uses this file migration schema which you have seen in the conflict. Also, for example, it supports restart logic. So you can restart from the web UI if you use Windows service and other such bits. So this logic exists, but the first thing that I'm not really sure that this logic is being used by anyone nowadays. So how we actually recommend installing Jenkins on Windows if you go to our download side. Jenkins is your download. Here, you can see that you can just download Windows and it offers your MSI package. So for example, here, I'm not sure what. Yeah, it offers me to download the Jenkins MSI. This MSI file is defined in packaging. Right now, we are working on a complete replacement packaging for new core-based automation fall. But in principle, it's the same. There is an installer and this installer is based on Wix. It's a Windows installer toolkit and it actually includes the same Windows service wrapper with XML configurations. So here, you can see that there is, for example, exec config file. XML file is being generated somewhere in the scripts and the bundle of Windows service wrapper as well. Any questions? Microphone. Okay. So this is Windows service. Another area when we work, we use Windows service is actually for agents. So there is a Windows agent installer repository and this repository again uses Windows service wrapper in order to install agents on Jenkins. There is some magic there, but if you go to this repository, you can see that there is XML file, which actually is a template. So here you can see that this is a template XML file. We have some code generation where we inject IDs, where we inject Java versions, where we inject arguments and also we inject agents to download URLs because Jenkins supports automatic upgrade of agent jars and of Windows service wrapper and in order to do that, we just co-generate config depending on the configurations. So for HTTPS, we enable that if your instance is exposed via HTTP, no, it's not enabled. Okay. So some updates in these components during the project in order to apply new features to Jenkins. So for example, support configuration with YAML, but it's likely a second or third code phase. So right now we do not have to worry about that. Maybe another component you may want to know about, though we definitely won't be touching that. It's my Windows agents plugin or historically Windows slaves plugin. This plugin actually allows to use Windows service management interface in order to install agents as services remotely using DICOM and other remote communication services. So you can connect to remote Windows instance. You can install Windows agent on there, connect your master and keep using it as an agent. So this tooling works pretty fine. It's widely used, but at the same time I wouldn't recommend it for modern Jenkins setups. Okay. These are four main use cases within the Jenkins project. And I believe if you just Google for Windows service wrapper in the network, you can find more uses. Again, Jenkins is just one of examples where Windows service wrapper is used. Okay. So Dika, do you have any questions you want to clarify anything? I think I have this video. Okay, I have some problems. Okay. Now, after this coordination, I have document documented this what we discussed in here. So I would like to ask you what are the aspects that I have to cover during the documentation? Let's take a look. I think almost all the things that you discussed here, I think also covered in GitHub. Yes. So that's why we have acceptance criteria in this project. So right now we need this codef session. So basically you expect to create a new developer guide, which is relatively short. It would include a review of the project structure. So basically the first thing we've been doing in this video, which would just include a link to this video, that's it. So now you are not expected to document everything we discussed today, just on top level so that it can help potential contributors to start developing the component. That's it. So I have to maintain an external document. I don't have to update it to repository or something like that. I just have to maintain an external document. I don't have to update it to markdown or anything. No, I think it should be in the repository because we prefer to follow the documentation as code approach, but it can be a new file. So for example, how I will see that. So there is top folder. Here, for example, we create a folder for developer documentation. The way you can adjust the file, project structure and view and then link it from contributing guidance. Okay. Thank you. Okay, so anything else to discuss today? I think pretty much there. Is there anything I can ask in additional? Yeah, right. Again, it's just the first overview. We didn't really dive into the configuration. Yeah, there is a lot of information to process, but we can do it incrementally. So I definitely do not expect you to digest all this information right now. We have a lot of time to discuss it. So there is no other topics again. So next time we meet we will be next Tuesday and today we can have a follow-up discussion. So if you have any questions, we can deep dive in particular areas there. I'm happy to do more sessions if you need. Thank you too. So then I will stop the recording and I will try to publish the video by the end of the day. Thank you so much. Happy to help. Thanks for working on this project. So you have already built it locally so now we can try to do some patches and see how it goes. Okay. Thank you and have a nice day.


Euclid's elements, Book 2, Propositions 12 and 13, are a little complicated, but if we take them apart, we see that these are actually equivalent to what we think about as the law of cosides. And so we might say that Euclid's element incorporates some trigonometry. However, the real development of plane trigonometry occurred later. Much of this later development of trigonometry was due to Ptolemy, who wrote the oldest surviving comprehensive work on what we might call trigonometry. Ptolemy lived in the 2nd century AD in Alexandria, Egypt. Here's an image of him, as he would have appeared if he lived in 15th century Europe. Ptolemy called his work on mathematics the great mathematical treatise.  Great in this context means big, and by implication, comprehensive. Now Ptolemy actually wrote in Greek, so the title was actually Megales in Taxis. And because the Greeks weren't fond of long titles any more than anybody else's, the title was often shortened to Megiste, which we might read as the big book. Now while Ptolemy wrote the work in Greek, it turns out that the most influential versions of the book came from Islamic translators. And Arabic translators use the same title, Megiste, but they prefaced it with the definite article, Al. And so it became known as Al-Megiste. And so generally we refer to this now as the Almagest. Now the Almagest was actually written as an astronomical treatise, but part of astronomy was computing the positions of the planets, and for that Ptolemy has to consider the lengths of chords in a circle. Now in general we can describe a chord by the central angle subtending the chord. That's the angle whose sides mark off the endpoints of the chord. Alternatively any angle inscribed in a circle actually defines three chords, the two legs of the angle inside the circle, and then the chords subtended by the inscribed angle. Euclid and his predecessors had found several theorems regarding chords in a circle, and a couple of the following are useful. First there's Staley's theorem, almost one of the very first theorems in geometry, which is that an angle inscribed in a semicircle is a right angle. And then it's also useful to keep in mind that inscribed angles subtending equal arcs are equal. In other words, as long as the arcs are equal it really doesn't matter where we place the angle. Ptolemy considered the problem of finding the lengths of chords in a circle. Now in order to do this he begins with the construction of a regular pentagon inscribed in a circle. And Ptolemy's construction is the following. Let A C be the diameter with center D. We'll construct the perpendicular D B. We'll bisect D C and E and join B E. We'll find F so that E F is equal to E B.  This last observation comes from one of the propositions in Euclid's elements. Next, Ptolemy found some chord lengths. Now since the length of the chord in a circle depends on the length of the diameter, Ptolemy chose to make the diameter 120 P parts. And this allowed him to state the following. The chord on the arc of 60 degrees, in other words the chord joining two points on the arc of the circle, where the central angle is 60 degrees, has a length of 60 parts. Now from the construction of the pentagon, Ptolemy can also compute the chord of the arc of 72 degrees, has a length of 70, 32, 3, expressed in hexagazimals. He also found the chord of 90 degrees, has a length of 84, 51, 10, and the chord of 120 degrees, has a length of 103, 55, 23. Now except for the chord of 72 degrees, Ptolemy doesn't give a lot of details on how he can find these chord lengths, but most of them emerge from simple geometry. For example, the length of the chord on the arc of 90 degrees when the circle has a diameter of 120 parts. So let's draw our circle with the chord whose central angle is 90 degrees. So notice that this 90 degrees, well that's the measure of the central angle, and so this chord is one side of a right triangle where the two legs have a length equal to the radius of the circle. And that means we can use the Pythagorean theorem where A and B are the radii of the circle with diameter 120. And so we can find C, and in modern notation we can find that as a decimal. Now Ptolemy probably found this hexagazimal expansion directly using some variation of Theon's method of finding square roots, but to see where these come from we'll go ahead and do the modern arithmetic to get there. So we'll convert this to a hexagazimal, and we want the fractional part to be expressed in 60ths. And if we want to go to two hexagazimal places, that's something 60th plus something 60 squares. And to find D1, we can multiply everything by 60. And since D1 has to be a whole number, we can let D1 equal 51, the whole number portion. And that means this second hexagazimal is the decimal portion, so once again we can multiply by 60. And again, since D2 should also be a whole number, we'll let D2 equal 10. And that gives us our hexagazimal 84, 51, 10.


Good morning folks. Steve Rhodes coming to you live from the shores of sunny Delray Beach, Florida. This year, 11 am update and currently have all of the US indices that way tracked trading to the downside as well. All the sectors with inside the S&P 500 goes like this. The Dow's off 470 points. That's about one to four tenths percent, one to four tenths for the S&P or 57 points. One is six tenths for the NASDAQ. That's 196 points. The Russell's off 2 percent. 40 points to the downside. One and a half percent for the semis. 47 points there. You've got gold trading down two bucks. 1847 is the print. Silver's up 23 cents. 21.95 there. Lights we grew back 19 pennies. Natural gas off 15 cents. 30 Treasury's down one point and eight ticks. 124.17 is where it's printing right now. If we go take a look at our nine panel market update chart, we begin with the ES mini and the ES mini, we can see that price is trading below the bottom of its bullish structure daily profile. It's also trading below Friday's bullish hammer candle. That says if you're long, you're wrong or that's really its expression. During the Trader's Edge show, we'll give you the price targets as to where the ES mini is likely headed to. That's about politics. Now, well above its 50 day exponential moving average, that's at the exponential moving at 50 days at 2068 price right now at 2281. That is a positive for the sellers out there. Take a look at the NQ. She's trading back inside her profile, likely targeting the 11,975 to 12,083 level. That's its bullish structured support area for its daily timeframe. U.S. dollar index, if it ever does close above 103.85 on a daily timeframe, it'll trigger an A to B equal CD to the upside, but it hasn't been able to do that thus far. What price is doing, it did form a new daily profile that's bearish in structure. That says if the U.S. dollar index is able to close below 105.68, it should be able to make the run down to the 100.68 area out there or at least 102.83. If you take a look at Goldilocks, Gold still has a Td9 breakout support area that has held, but it too is also forming a new profile. Excuse me, support at 1771, resistance at 1808. Sover also forming a new profile. Support there is at the 2147 level, resistance at 2217. If we take a look at Lightspeed Crew, just consolidating with inside that daily profile, that's between the range of 73.64 and 80.68. If we take a look at Natural Gas on Friday and negate it, it's by the D point pattern. It needs a bullish reversal candle to confirm another one, as well as a rogement to indicator bottom. And we have a Td9 account bottom in the 30-year Treasury, but that would be negated with a close blow 124.14. Folks, stay tuned for the Trader's Ed Show, but if you have to start your Tuesday, please have a terrific one. Thanks for joining us. We'll see you again soon.


In today's video we're going to be building a $5 fishing kit out of Walmart's fishing section. If you guys are new to the channel be sure to smash that subscribe button, hit the like button and comment down below.   I really don't know. But anyway, we're going to be going through the Walmart fishing section today building a $5 fishing kit, $5. In the last video we used the Academy $5 fishing kit and I was like why not follow it up with this one and you know build our own $5 fishing kit. One thing I'm going to say, I am not going to be counting this towards the $5 price. The $5 price is just with the lures that we're going to put into this box. It might end up being this small, it might end up being that small, it might be any of these. Nice. But that's for the end. We're going to look at our lures, see what we can get for $5 baby. $5. This is balling on the budget. I was about to say this would be so cool to put in there like have some little crank baits and stuff. But this whole kit for these three are $10 itself. That's just going to show us. We're building a $5 kit guys. Let's see what we can do. We're going to have to get lures that are obviously around a dollar and a sufficient kit. You know we're not just buying one or two baits. We're trying to put you know three to four to five if we can even get there. I don't think we can get five to five dollars. I think we can but if we really want a variety and we have to buy hooks and weights if we're doing like soft plastics. I don't know. Let's go ahead and look and see what they got. I know they have some $1 lures in here but I don't know how many. But let's go ahead and look at the Walmart brand.  See that's like $2. It's still like, I mean it's a $1.97. It shows a dollar but that's $2. Should we count? But these are only a $1.22.  How should we do this? This is $2 definitely. I'm not saying that's a dollar. That's $2. We can say this is a dollar. We're going to round them over. So let's pick out our first bait. Hmm. All right. So you guys know the $1 spinner baits. We've done a few videos on them. I know Norm's done some videos on them. We've all done some videos on the $1 Walmart spinner baits. So we're going to have to go with one of these today. I think we're going to get this one right here. It's got a willow leaf blade and it's just a plain white one. That's going to be cool. That is our first lure. This is only $1. Literally $1 even. Right here. Set it right there. I think we might grab a buzzbait. I know they have one in here. Boom. Right there we got a buzzbait and a spinner bait for only $2 right there. A dollar piece. $2 right there for these two. Now that's fishing on a budget right there. $2. We're going to set these right there to build our $5 kit. Now let's see what else. We need some soft plastics. We got two hard bait lures. We got a spinner bait and we got a buzzbait. Buzzbait is top water. So we got a top water and we got a moving bait. Now we need a soft plastic. We're covering the top, covering the middle. Now we got to cover the bottom. So let's see what they got. Between all the price ranges, these are around $2, $4, about $4, $6. That's over our whole tackle box budget right there. Just with this one pack is already $6.30. All right. These are $3, $2. Let's see. What is the cheapest out of all these? I would say usually I'd say these. These are $2.86. These are pretty much three bucks still. This is going to be a tough one to be honest with you. I thought there would be some cheaper soft plastics. Sadly there isn't. This is actually $5 itself. This is a little kit.  That's $5 right there. $4.56. Not going to lie. I've been looking at everything for quite a minute. I'm getting a little stressed, man. This is harder than I thought to build a $5 fishing kit. I thought there would be maybe some soft plastics, like a pack of worms or whatever. That's over here. That's around a dollar, but there is one thing that I saw, and we've used it in some other videos, which is the ready for action one. The ready for, boy, he's ready for the action. Look at this guy. Look at this right here. This is only $0.96. Those are for these worms right here. Okay. Then you can get this and it's $1.42 and it's got like the spinners and the hooks on it. But I think we might go with this. And what we might end up doing is just grabbing a shaky head at home or something and using this for the kit. But this is probably going to be the cheapest pack of worms out of all these. This is $0.96. Around a dollar, we're going to call this a dollar right here. And the rest of these, like the cheapest they go is around $3. I think we might have to risk it for this one. This is $2.16 for some reason. So a dollar more. Hold up. So if I'm just looking at this correctly, this is a dollar. This is $2. Okay. 12 of them come in this pack. And these are some premium soft plastics. Like, I've used these before. I've caught fish on them. They catch fish. These, I don't know too much about, man. I really don't. You get three worms for a dollar. I can get 12 of these crawls for $2. So if I'm thinking about it, you know, I can buy two of these. I have six of them. I got 12 of these bad boys. I think we're going to have to go with these. We're going to put this guy back. But that means we're already at $4. Right here. We're just at $4. So let's go ahead and put these guys back. I feel like that's definitely the better choice of the crawls. I think I'm going to put the buzz bait back. We don't really need the buzz bait. Okay. We do need the spinner bait though. So we got a bottom bait now. These are $2. And we got a spinner bait. This is a dollar. We're at $3 right now. We have $2 left. I think for one of the dollars, we're going to have to go with the soft body swim bait right here. And these are already like pre-built right here. You know, they already got a hook in them. They got the weight, the whole deal.  We're going to round that to $1. So that's $1. Okay. Let's kind of get some wild. This is like the wildest looking color I've seen. But this one's pretty wild too. Hmm. I like that one. Let's go with this one. All right. Dollar swim baits, dollar spinner bait, two dollar pack of crawls. We're at $4. Now we need one more lure. So these down here, got some rattle traps. I really want like a solid moving bait with treble hooks. There's really not that many. Like usually you see the Walmart brand, but they don't really have it rather than the spinner baits and buzz baits. I mean, they got some up here. Those are $3. See they have the Ozark trails. That's usually what I would get. But that's still $2. I think we're going to go with this down here. And this is $2 as well. We're going to have to go a dollar over on this one, but you know, I think it'll end up being worth it. We're going to grab this rattle trap, which is a kind of a weird color. But you know what, I'm trying to make this thing a little wacky, man. We're going with that weird looking $5 fishing kit deal. Boom right there. Four lures, rattle traps, spinner bait, crawls, swim baits. This is going to be going in the $5 fishing kit. Let's go ahead and grab the kit and get onto the lake. I think we're going to go with this moderate one right here. We're going to grab this guy, give us a little bit more room. We might end up piling some more stuff in here, but that's the little $5 deal. So boys and girls, we have just made it home. Let's go ahead and start building this $5 fishing kit, baby. I'm excited about this one. This is going to be cool. You know, we're going to build this kit. We're going to go off fishing a little bit, use some of the baits in there and see if we can catch some fish on it. You know, this is different. If you guys want to see some more tackle kit build videos, let me know in the comment section below. Hit the like button if you guys haven't already. If we get this video to 5,000 likes, I got a really great idea. Really like a, such a good idea. It's going to take a while for you to get here, but I have a killer idea that you guys are just going to love. So give this video the 5,000 likes if you could. Let's go ahead and take this thing apart, put the baits in there, see what we're working with. All right. I'm excited. Like I said, I did not count this towards it. $5, obviously, like this is like three or $4 itself. So, you know, just don't worry about that one. But I did get these for like $2 as you guys saw, which is a pretty good steal. I'm not going to lie. And then I got the rattle trap as you guys saw the old swim baits. We got two in there and then the old spinner bait, which is great as well. And those are going to be the lures that we're going to put up in here. I want to see how, you know, they end up fitting in because like I said, there's a good bit of worm. There's a good bit of worm.  There's a good bit of space in this tackle kit. And we might end up adding a little bit more stuff that I just have sitting around just so it looks a little better because I already know, I mean, we have four little things that we're going to put in this whole kit. But let's go ahead, get a knife, cut these, and we're going to try to figure out, you know, the placement of all these lures. All right. Rattle trap. Two swim baits, which we're going to put right there. This double kill right there, boys. For a dollar, we got two little swim baits. Yes, sir. And then we're going to put the spinner bait right there. Yes, sir. Let's see what else we got. Where can we put these crawls? So there we go. After all the lures that we ended up buying, putting them in here, this is the $5 fishing kit balling on a budget, baby. Balling on a budget. Got the crawls, got the rattle trap, swim baits, spinner bait. But as you guys can tell, it is a little bit empty. I think I'm going to grab some other soft plastics just to put in there, just to have, and we're going to split it up like this. Another thing, soft plastic, soft plastic, soft plastic. Down here is going to be hooks and weights. Weight to you guys see what I just made. We added a little bit. Okay. I know this is the $5 fishing kit, but we had to add something to it. This isn't a part of the $5, but you know, we did have to make it look a little good, man. So let me show you guys what I did. All right. Look at this. Okay.  I mean, this is pretty ugly. I'm not going to lie, but let me show you guys what I added in. So I added some yellow trick worms, which you guys are probably thinking, Noah, why the heck did you add some dang banana trick worms up in here, boys? And the reason being is because it really slays them. I'm not going to lie. These things slam. Okay. Got some standard trick worms that we could easily add on a little shake. Yeah.  Obviously our crawls, rattle trap down here. I had to add a little sexy six cents square bill. I just added that in. Okay. It made it look good. You know what I'm saying?  And then down here, as you guys can tell, we had the hooks, the weights, and then the rest of the stuff that we needed to bind. So right here is the $5 section. Right here are the add ons that we added to the kit, but needless to say, it's pretty cool. You know, pretty inexpensive. Nice. But my whole point of this video is you can always get stuff cheap, guys.  You can always get with this type of stuff right here. I added this just to fill up the tackle box, but yeah, let's go ahead and take this thing. Let's tie up a few of these baits on. Let's see if we can catch some fish on it. I think I'm going to start off with this crawler right here. We're going to put it up on a little Texas rig and we're going to go fish it. All right, boys. We got the fishing kit. We're just going to set it right there. Easy to bring along with us. Only $5. Yes, we got some more stuff in there. I understand that, but okay. So this is what I did. I already had a shaky head on my rod, so I just rigged that crawl that we bought just on a shaky head. Pretty basic. You know, I was going to put it on the Texas rig and I'd go from there. But let me tell you something about this crawl. I made a video on it about a year ago, and the reason I bought this is because I put the buzzbait back. Okay. Now listen to me. This crawl, if you put it on a Texas rig, you can run it exactly like a little top water. See that?  This is a shaky head, so it's a little bit different. But if you put this on a Texas rig, I'm telling you, this is a type of bait that you can reel on the top of the water. You can work it on the bottom. Look at that. Look how good that looks. Just like that. It's almost like a little buzzbait.  So you can reel this thing on top of the water. You can swim it just like this. It actually just went really good on a shaky head. And then you can also work it on the bottom. That's why I love this crawl, and it's very versatile. So anyways, with that being said, if you guys want to check out that video, I'll leave it in the description box below. It's probably one of the most helpful videos I've ever posted on the channel. Without further ado, let's go ahead and start fishing, guys. Let's see if we can catch one. Fishing has been really tough since the hurricane. I mean, very tough. I don't know what the fish are doing. They've been really weird, but you know, I guess we just have to find out. You see that shade as well that's projected by that tree? We're gonna cast in that. So you got some rock and you got some shade right there. Should be killer. Yep, I got him. No way, dog. I just called that. Got some rock, got some shade. Summertime bass. Dude, he's fighting good, too. Look at that. Oh, snap. I should have let him jump on the bank. Let's flip him up here. Boom. Just like that. Oh, gosh. Dude, we just started. That might have been my second cast there. Look at his lips, red lips. Got a little bit of lipstick going right there. Crawl right in his mouth. Not a big one, but man, that's a healthy, chunky guy.  The fish out here are just so beautiful. Let's get him back in the water. Oh, that's sweet. Right there. That is awesome. Five minutes in, baby, on the crawl. And just note that we barely paid any money for this. That's the point of this video.  But when it comes to this and soft plastics, man, it's pretty basic. And I mean, I went out, bought it, you know, the whole thing, $5 just caught a fish on it in five minutes. And this place is not easy to fish. I would like to try to catch some more fish right now, but I'm running late. So I'm going to catch you guys tomorrow morning on the kayak. We're going to do some pure, just kayak fishing, nothing more than just kayak fishing. Catch you guys there. Let's get it. That was close. We're going to have a fish on my pole by the time we grab it. Oh, I got one. Right away. Oh, he's a good one. He's a good one. Right away. Oh, wind is whipping. We just got out here about five minutes ago. Got about two pounder. Okay. Right on that rock. I'm going to get down. Okay, buddy. Calm down. Boom. Boom, baby. He ate that sucker too. Ate it just how you want him to. What you think about that for the first fish today? He ain't quite two pounds. He's about a pound and three quarters. He is a thick body though. We're going to put the worm down, crankbait out. Gosh. Got him on the crankbait. Right away on the rock. He slammed it. I can't tell if he's big or not. He feels pretty good. Oh, yep. Yep, yep, yep, yep, yep. Don't bring me up on the spot. Don't bring me up on the spot. Oh, he's barely hooked. Oh, he's barely hooked. Look at that. Right off the bat. Sixth sense crank and juice color. I'm nicknaming this color, man. It's the juice color. I have cream made to these fish on this crankbait. Unbelievable, man. We've been here for five minutes. I pick up the crank first cast on that.  It didn't even take me real in it for about two to three seconds. Been out here for five minutes, whipped out the crank, got smacked. I like that a lot. All right, Jimmy, thank you.


Here is the story of a boy aged two. A doctor has just diagnosed him with autism, telling his mother he is so low functioning she should immediately investigate institutions for him. In that moment, his story had become a single story, autism. Here's the story of a boy aged three. He wanders to a toy keyboard, and within minutes he is playing nursery rhymes by memory and by ear. He cannot speak, but this does not matter. His story is a musician's story. Here is the story of a boy aged seven. He is asked to leave his general education PE class. Despite the presence of an aide supporting him, the teacher feels like he cannot follow instructions well enough. The school simply sees him as a child who cannot process language, but this little boy does not see this. When he doesn't understand the words swirling around him, he doesn't cry. He merely finds another child who does understand, and he stands next to that child and he copies his movements. Nobody else sees the resiliency, the survival skills, the problem-solving skills this little boy is teaching himself. His story is only autism. Here's the story of a boy aged eight. He loves to watch YouTube videos of live music concerts. One day at a friend's house he sees a guitar, and he picks it up and he will not put it down. He is sent home with it, and a week later he is playing and singing John Mayer songs. His story is a musician's story. Here's the story of a boy aged nine. He is excited for his first strings concert at school, but he doesn't understand why his father is seated right next to him when no other child has a parent seated right next to them. He doesn't know that he is only allowed to perform if a parent sits right next to him. He does not know that despite the lack of any behavior issues all year, his strings teacher firmly believes performing in front of a crowd will cause this boy to panic.  Here's the story of a boy aged 10. He gives his parents a drum kit much to their chagrin. He sits down at this drum kit and without a single drum's lesson and within 30 minutes he is drumming a Green Day song. His parents now see his story as a musician's story. Here's the story of a boy also aged 10. He attends his school's talent show and he wonders why he isn't performing. He doesn't know that the children in the special education autism class were not invited to audition. He doesn't know that the school presumed that children in a self-contained special education autism class could not possibly have talents worthy of an elementary school talent show. He doesn't know his story is only autism. Here's the story of a boy aged 11. He stands on a stage in front of thousands of people, guitar in hand. He walks up to the mic and he says to the crowd, you all ready to have a good time? As the crowd roars in response he strums his guitar and he rocks their world.  This stage does not cause him to panic. He plucks his bass and he sings Foxy Lady by Jimi Hendrix. His story is a musician's story. Here's the story of a boy aged 12 and the seven IEP meetings it took to get his secondary school to put a social skills intervention during study hall so he does not have to choose between the music electives he needs and the social skills supports he also needs to navigate a world that is ill-prepared for him. His story is within inches of remaining only autism. Here's the story of a boy aged 13. The first middle schooler in his secondary school to be both in the highest level high school guitar ensemble and all self-contained special education academic classes. The boy aged 15 who has a 30 song set list he can play from memory who played over 40 times in his community and his school in just one year. His story is autism. His story is a musician's story. His is not a single story. It is the perfect illustration of profound disability and incredible ability. It is of a school system that could not see ability in some areas of life because of disability in other areas of life. Too often we see the stories of children with disability as the story of their most single most limiting characteristic. We do not see their stories of strength. The danger of a single story for the education of children with disabilities is we design their education around what they can't do at the expense of developing what they can do. Right? Now, I understand, like I'm talking to educators, I know this isn't intentional, right? In this boy's story every single educator only wanted what was best for him. Their only goal was to help him, truly. But by defining ability through this really narrow lens, it led them to unintentional bias and unnecessary limitations. The role of public education is supposed to be to produce productive citizens for our society. But now we have so many numerous academic requirements and burdensome standardized tests that public education has been reduced to the single story of academic ability. Left behind are those students for whom academics is not their strength. Left behind are the auto mechanics. Left behind are the artists. Left behind are the plumbers. Left behind are the musicians. Left behind is the story of a holistic, well-rounded education that produces productive citizens. But mostly left behind are children with disabilities, especially autism, for whom it is nearly impossible to demonstrate competency in this environment. There are one in 59 school-age children with autism, most of whom are in public schools. That is a lot of children to leave behind. We need to fix this. We need a public education system that balances academics with flexibility and room to pursue areas of strength, whether that be more academics, or arts, or career and technical ed. We need to teach kids with disabilities the skills to compensate for their disability while still allowing them to access education in areas of ability and interest. We need a public education system that is flexible in its requirements, with multiple paths to a high school diploma. Now, I realize this all requires a paradigm shift in education, and that is hard. I get that. But in the long run, it will actually save us money. By giving all of our children the proper tools to become productive citizens, we reduce the number of adults with disabilities requiring social services. We reduce the number of adults with disabilities, a third of them, in our jails. We reduce the number of adults with disabilities isolated and alone. We reduce the number of students getting burdensome debt for college that they may not need or want. We increase our economic security. We do the right thing for everybody. We owe it to our students to foster their strengths and see their abilities. We owe it to our students to believe they have multiple stories. I owe it to my son, Jake.  He is both a brilliant musician and a child with sometimes profound autism. His teachers tell me that his musical ability, his perfect pitch, his stage presence, his memory for music can open the door to many careers. One of his teachers likened some of his ability to Mozart. And yet, he is still the boy who has been pressured to drop music electives in favor of academic remedial courses on top of academics, courses useless to his future. He is still the boy who in many states, including until two weeks ago in Virginia, cannot get a high school diploma that allows him to access federal student aid from music school because even though he passes grade level classes, he cannot pass a state standardized test in biology or algebra or English. Let me repeat. My Mozart in many states cannot access aid to go to music school because he cannot pass a state standardized test. And this bleak future is faced by many students with and without disabilities. Numerous academic heavy curricula, numerous standardized tests mean we are leaving many students behind because their interests lie elsewhere. Instead of providing all of our students multiple paths to success, we are providing them a narrow path to failure. The promise of public education is supposed to believe that every child, every child can write their own story. And the role of public education is to believe and help and give those kids the skills to write their own stories. After all, why would you want to stop Mozart? I'm becoming Mozart. Ladies and gentlemen, I present to you Jake Sizemore, musician with autism. Greetings. This is here comes the sound by the Beatles.


The storm was devastating. We had not seen that kind of weather ever. I can remember five degrees and we had peaches a year. And I thought, oh, they're safe. They're in the bud. They're tied in the bud and they're safe. But it actually killed the buds. They were freeze-dried. And it killed some of the tips of the redwood as well, parts of the tree. And I think ours were just at that stage that they, it was like the perfect storm day. They were very susceptible. The sap had started to rise a little bit. The buds had started to swell a little bit. We have had peaches bloom in February and make a crop. So they registered minus 14 at Nashville. I registered minus eight at my house. So I don't know about the orchard, but it was cold. Two varieties survived when everything else was just wiped out. My crop insurance officials came this week to inspect the orchard. And he says 90% loss because I have 200 trees that might have a partial crop on them. So my 10% is those 200 trees. And that's out of 3,500 trees. And it's all averages. It's all maybes informing. It's all, it's gambling is what it is. But I have 3,500 trees. I have 38 varieties. So the varieties that survived are two of my best July peaches. So everybody will be happy about that. I'm tired of these century things happening. You know, oh, that's a once in a century flood. That's a once in a century thing. That's a once in a century Arctic tundra. I was not, I didn't see that coming. Wow. I can't worry. That'll make you old. So I try to have a joyful attitude, but I was in a blue flunk last week because I really thought I had a crop, but I didn't. My husband was third generation. My kids are either fourth generation. I'm hoping fourth or fifth generation will kick in and want to continue doing this. My father-in-law, Jim Corn Jameson, served in World War II under General Patton. And he sent his GI wages, which was not much, back home and had his dad buy this land. So you talk about a tradition. It's something to be proud of. And planning ahead, boy, wasn't he thinking. But I'm going to do it. I can't stand it. I've got to grow them. I've got to grow them and harvest them.