Hello, everyone, and welcome to our Zephyr Development Summit presentation. Today we're going to be talking about USB Type-C and U, so turning your product concept into implementation necessities that you need to make it a reality. My name is Diana Zichterman. I'm our USBC lead on our embedded controller team working on our Chromebooks. I'm Sam Hurst, and I'm a software engineer working on embedded controller. Let's dive in. Today, we're going to cover a few different areas. We're going to do a recap of what the port rolls are for USBC and what they mean and what things those entail. They're going to go over requirements out of the specification that we get, and then we'll go into the practical details of how you take all that and you turn it into a device. First up is going to be a port roll recap. If you attended our USBC Power Delivery overview last year, this will be a review for you. If you didn't attend it, I highly encourage you to watch because that gives you a lot of the details on the technical part of USBC. But from where we're concerned for this presentation, we mostly need to review the rules because your roles are going to be one of the things that defines what you're doing with your port. First up, we've got the power roll. The power roll is going to be either a source, the one who supplies power, or the sink, the one who consumes power. This is the power that we talk about that goes over VBUS. It's the power that could range from five volts, a 100 milliamps or something like that, all the way up to 245 watts if you're talking about modern EPR chargers. Whether you're going to be supplying some degree of power to a port partner or always going to be consuming power. Up next to that is the data roll.  Also for the data rolls to bear in mind, the DFP has more control over the connection and what's done on the connection. The DFP is the one that controls alternate mode entry. It's the one that controls whether we go into USB4 mode. If those are things that you need to control from your own device, then DFP is probably the data roll you need to be looking at for that. Then last up, we have the VECON roll. You're either supplying VECON or you're not supplying VECON.  The VECON source is going to be the only one that's allowed to communicate with the electronically marked cable. If you need to probe the cable for any information, if you need to tell the cable to do anything, you have to be the VECON source in order to do that. Then as a reminder from our presentation last year, if you're just using a Type-C connection with no power delivery, then these rolls are going to be fixed for the lifetime of the duration of the connection once you've reached the attached state. If you're the source, you're going to be the DFP, the VECON source. If you're the sync, you're going to be the UFP and not the VECON source. But when you introduce power delivery messaging on top of the Type-C connection, then you're allowed to swap these rolls around as much as you need for whatever combination it is that you need for your specific use case. Now that we've arraigned into ourselves of what all the port rolls are, we're going to dive into the specification requirements that go with them. First up, you'll of course need to access the specifications. They're available freely on usb.org on their document library. Some of them have a static link like the power delivery specification, where you can just go to that link and it'll be whatever the most recent version is. The Type-C specification, the link will get stale over time, so you just go back to the document library and search for the most recent one. It's pretty simple. Basically, if you're thinking about anything that's about valid voltage ranges, connect disconnect timings, those things will be in the Type-C specification. Also, along with Thunderbolt alternate mode specifics, I'm not 100 percent certain why the power delivery messages for Thunderbolt or in the Type-C spec, but they are, so that's the place you'd go for those. On the power delivery side, it'll have your minimum PD requirements you need, the all the different features you can explore, and all those things, those will be what you find in your power delivery specification. I'll also note that there's compliance specifications available on usb.org, but between Type-C and power delivery, we've got 450 pages in the Type-C spec, another 750 in power delivery, so we're just going to talk about those today, because that's plenty of material for a talk. Now, you've gotten the specifications and you start taking a look at them. You might start wondering how these specifications apply to what it is that you want to do. We'll start with the Type-C specification since that's the base of the connection. If you open up Chapter 4, you start looking at the state diagrams. Those state diagrams will correspond with the states we have in our Type-C code, and you might notice there's actually a lot of state diagrams in there. There's seven possible sets of state diagrams you could be using for your connections. So you have to ask yourself, well, which of these states apply to me? What do I need to be looking at here? So the first thing you have to ask yourself is like, what is it that you're connecting to? What are you trying to do with your connection?  All you want to do is charge? Are you going to be hosting some kind of data connection? Are you going to have a combination of things going on that entail, perhaps like charging while also hosting something? Are you just going to be a source partner? Are you going to just be a charger? So just think through all the different things that your customer might be plugging in, and that should help you arrive at your source or sync designation that you want for your power role. Some devices like our Chromebooks that we work on end up being dual role, which means we kind of have to work with both. We have to be able to work with thumb drives as well as chargers. But for a lot of applications, you might find that you only need the one power role. You might only need syncing because you're just trying to charge yourself. So just think through the things your customer needs, and that helps get you source sync versus DRP, and that helps narrow down the guy who runs from there. But then there's still more states that you can look at. There's accessory states. Those accessory modes are primarily used for debug accessories and audio accessories. Neither is very common in the industry, so you probably don't need to worry about them for your specific application. So debug accessories are just if you have a specific debug partner that you'll be using with your device. We use those in Chrome OS, but as far as I can tell, it's very uncommon in the industry, so probably not something you need to worry about for your own application. Audio accessories are even more rarely used. Those are analog audio devices. Almost everyone uses digital converters, so you can probably just disregard any of those states when you're scoping out what it is that you want to cover support for. And then the last thing you might notice is in the dual role diagrams, there are tri-states. And you can ask yourself like whether the tri-states make sense or are something you need to use at all for your application. And the answer is probably not. It's mostly useful if you're a dual role port partner and you're interacting with things that don't use PD, which is very uncommon in the ecosystem nowadays. Nearly everything that uses USB-C will also be using power delivery. So now that we've got our power role settled, we're gonna talk about data roles. One question that comes up as you're filling out your capabilities, your source or your sync capabilities is am I dual role data? There's a flag you've got to set in there to say I'm a dual role data device. What does that mean? So it's a very easy answer. If you can act as both a host and a device, if you've got modes for both of those, that's a straightforward yes, I'm definitely dual role data. That's how I roll. But there's also some subtleties here. You're actually technically a dual role data device as long as you can use a data role swap message, which is one of our power delivery messages we use to change our data role with the port partner. So you can use data role swap messages because you like to be a non-default combination of things like if you're charging, but you also want to be the data host, you want to be sync DFP, you'll need a data role swap and that technically makes you a dual role data device. You can also encounter this if you have a preferred data role. So if you have a preferred role for UFP or for DFP and you're also dual role power, you end up needing to declare yourself as dual role data in order to get into your preferred data role. Though I will note, while we're talking about swapping around data roles to what role you want to have, partners are allowed to reject your proposal to data role swap into the role you want. So just be aware of that as you test and as you think through errors situations that can happen with customers plugging things in. Is that even though you want to be a sync DFP, you might not always get to be a sync DFP. And so just make sure you've got that thought through and supported however you need to. So we've covered power role, data role. Up next is VECON. And one of the questions is, do I need to source VECON? Do I even need to care about VECON? Like maybe what my application is, doesn't particularly need to rely on cables or consider cables. Like, do I actually have to do this? And the type C specification has an answer for you here. It has a table in chapter four that you can reference that just has a, it's called VECON requirement summary.  So if you can't supply more than three amps of current and you have no support for anything above USB 2.0 basically, then you don't have to source VECON. You're off the hook. If you're some kind of low power charger or well up to 60 watt charger, life can be good for you and you don't need to source VECON. If you support USB 3.0 and higher or if you need more than five amps that you're going to be sourcing out, then you are required to source VECON. And the ranges you need will be in the table. They're anywhere from 100 millivolts to one and a half watts depending on the applications you need to be supporting. And then syncs pretty much only need to source VECON if they need to probe the cable or if they need to tell the cable that it needs to enter a mode for complex mode entries like Thunderbolt, like USB 4. And then once you're sourcing VECON, you might ask yourself like, okay, I've probed the cable. Like can I just turn this off now? And the answer is yes. The spec does have allowances for you to not source VECON continuously. So if your eMarker reports that it doesn't need VECON, there's a specific little field within its discover identity response where it can say, hey, VECON is not something I really need. I can live without it. Then you're off the hook. You can turn VECON off after that point. If no RA is detected. So if you remember the presentation from last year, your cable is going to present an RA on it. If it has an eMark cable, if you don't detect that RA is there, you're allowed to turn VECON off as well. If the cable eMarker doesn't reply to discover identity VDMs, the power delivery specification defines a timer and a number of reattempts to discover the identity on the cable. If you exhaust those and absolutely nothing has come back, you're allowed to turn VECON off and just assume the cable has nothing to tell you about. I should note for all of these cases, you're still gonna be considered the VECON source if any swaps come up or if any other spec type things come up that require knowing who the VECON source is. So even if you have turned your VECON off, your role is still VECON source. So you should just always keep that in mind for interrupt issues with port partners. So we've covered all three of the roles and you're looking at your device and you're kind of asking yourself, do I need the power delivery part? Like this type C spec has a lot. Does it have everything that I need? Maybe I don't actually need the power delivery spec. And the answer is maybe. So if you're happy with your default roles, if you wanna be a source DFP or a sync UFP, if anything more than 15 Watts just sounds like an absurd amount of power to you, then you may not need power delivery support. You may actually just be fine running with type C support only. But you will want power delivery support if you want more than 15 Watts. If you want any kind of non-default role combinations, if you want alternate modes, really fun features like power button transmission, they have messages to allow docs to transmit their power button statuses up to the hosts. So all of those types of things, you will want power delivery support because it has a lot of features you can take advantage of. And then once you put in your power delivery support, you may be looking at the specification and say, okay, there's a lot here. There's control messages. There's data message. There are extended messages. And which of these do I actually need to worry about? And that's where you reference chapter six as a section called message applicability. And the message applicability table, they're gonna be what you really need for these things. So in it, it will have a series of tables just like this one that we've pulled a snippet out of that tell you what you need to be able to transmit and receive for your particular role. It separates it out by power role, but then also cables and VPDs, which are not super commonly used accessory that are defined in the type C specification. But so you can take a look at the message applicability table. These are for transmitted messages. And so you'll see we've got get country info, this sync capabilities, battery status. We'll use different symbols on the table to say things like we'll look at sync capabilities first. And then we need not applicable. So of course sources don't have to report a sync capability. The sync has N, which is normative. So syncs and dual role sources have to always report a sync capability. And then you're gonna notice a lot of these statuses have things like N footnote, ON footnote, or CN footnote. So O is optional, CN's conditional normative, N is normative, but then the footnote means there's tricky parts to it. And all of those, you just look at the bottom of the table and try and follow it as best as you can. So you'll notice here, like get country info is conditional normative, but it depends on the countries you're going to be selling in and interacting with. The BIST message makes you go to the subsection on BIST messages to understand it more. Battery status is only required if you contain a battery. So you can use these tables to kind of build up a sense of what the minimum things are that are expected from your product in order to interact well with other power delivery products. And so that brings us to the end of the specifications and I'll hand it over to Sam to talk about the practical applications. Hello everybody. Today I'll present how the Zephyr USB Type-C subsystem can be used to create a USB Type-C application. From the point of view of the subsystem, said application is considered a Device Policy Manager or DPM. There are only three steps needed to create a basic USB Type-C device. One, create a Device-Tree USB-C connector node. Two, create an application-specific data structure. And three, define a few policy callbacks. Each USB Type-C connector has many properties associated with it. And the properties are configured in a Device-Tree node. This is a logical view of how Zephyr views a USB Type-C port. The three main parts are the TCP-C, V-Bus and USB Type-C connector. Before a subsystem can be used, Zephyr must know the properties of each Type-C port. Here is the logical view of the USB Type-C port shown alongside its Device-Tree representation. The Device-Tree includes the minimum set of parameters needed to implement a seek device. I'll cover each parameter in the following slides. The compatible parameter informs Zephyr that this is a Type-C connector. Each USB Type-C port has a port controller associated with it. The TCP-C parameter in the Device-Tree points to a driver that Zephyr USB Type-C subsystem uses to interface with the port controller. The subsystem uses the TCP-C to get connection status, send messages and to receive messages. Each USB Type-C port syncs or sources V-Bus, and in our case, it syncs to V-Bus. The V-Bus parameter in the Device-Tree points to a driver that Zephyr USB Type-C subsystem uses to measure V-Bus. If this was a source port, the driver would also be used to control V-Bus. Now we move on to the application-specific data structure. Your application should check the Power-Row parameter in the Device-Tree to verify that this Type-C port is supported. In the code, this is done by comparing the Power-Row parameter to the TC-Row sync macro. The sync PDOs parameter in the Device-Tree should be extracted and saved in the data structure. It's used as covered in later slides. Because this is a sync device, the application, at some point, will receive the source capabilities, which should be stored in the data structure. This, too, is covered on later slides. Finally, we move on to the policy callbacks. These are the minimum policy callbacks needed to get a sync device up and running. I'll go over each in the following slides. First, I'll show a sequence diagram that demonstrates how Zephyr uses the callbacks and then I'll present code snippets to show how the callbacks are implemented. Power delivery negotiations start with the source sending its capabilities to the sync. In one, the source capabilities are sent to the Zephyr USB Type-C sync subsystem. In two, Zephyr sends them to the application via the policy callback setSourceCAP function. When the subsystem calls this function, the application should store the capabilities in the sourceCAP's variable of the data structure shown in the sample code. The source capabilities contain a list of power delivery objects, PDOs, that describe the power level supported by the source. The first PDO is always five votes and the following could be a combination of nine votes, 12 votes, 15 votes, or 20 votes. The negotiation continues when Zephyr requests one of the capabilities from the source. In four, the subsystem gets the requested data object, RDO, from the application via the policy callback getRDO function so that it can build a request message. And in five, the request message is sent to the source. The RDO indicates the current and which PDO the sync needs to operate correctly. In the sample code, the sync needs 100 milliamps and selects the PDO at object position one of the source capabilities, which is five votes. The subsystem uses this function to return the RDO. The source sends its response to the previous request. This could be an accept, reject, or wait message. At seven, in the diagram, the accept message is sent and at eight, the application is notified of the accept message. When the policy callback notified is called, the subsystem uses this function to notify the application of events occurring in the USB type C subsystem. In the code, the application is notified of the accept message. Finally, when the source has sent VBUS to the requested voltage, it sends the power supply ready message. In 10, PSReady message is sent and at 11, the USB type C subsystem notifies the application that the power supply is ready by calling the policy callback notify function. As stated earlier, this function is used to notify the application of events occurring in the USB type C subsystem. In the code, the application is notified of the reception of a PSReady message by sending a transition power supply message. At this point, the application can start operating at the requested power level. At some point after power negotiation, the source could send a get sync caps message. In the diagram at one, the get sync caps message is sent. In two, Zephyr gets the sync capabilities from the application. And at four, those capabilities are sent to the source. The subsystem uses this function to get the sync capabilities from the application, which were stored in the sync caps member of the data structure. Other messages could be sent from the source that requests the Zephyr USB type C subsystem to take a certain action. But Zephyr must check with the application before the action can be taken. In the diagram at one, the source sends a power row swap message. And at two, Zephyr checks if the application supports a power row swap by calling the policy callback check function. Since we are a sync only device, we can't swap to a source. So at four, Zephyr sends a reject message to the source. The code uses, sorry, the subsystem uses this function to check if certain actions can be performed. In the code, the power row swap message from the source is rejected when the function returns false. After the five callbacks are implemented, they must be registered with the USB type C subsystem by using the Listic API. The application data structure must be registered with the USB type C subsystem using the USB set DPM data API and the data structure can be retrieved from the subsystem by calling the USB set DPM, sorry, get DPM data API. Finally, USB C start must be called to start the USB type C subsystem. Zephyr currently provides two USB type C samples, a sync device and a source device. The sync device was outlined in this presentation, but the sample should be consulted for details. Two development boards are currently supported that can be used for testing. The B-G747E board can only be used for sync development, but the STM32G081B board can be used for sync and source development. See the Zephyr supported boards for details. And that concludes the presentation.


You know what I'm thinking of right now? What I'm grateful for? My corazón, my heart. And it's thumping pretty hard. And something that I do now after I run something hard or I ride my bike up a steep mountain and I can feel my heart going crazy. I put my hand on my heart and I just thank it. Good job, heart, way to go. Thanks for getting me here. Once again, I'm very grateful for my strong heart because for most of my young life, I had extremely high blood pressure and I was on medication every single day to lower my blood pressure. I'm much better now, so. My heart has had to work overtime throughout my entire life and I keep on asking more of it and it keeps on providing. So thank you, corazón.


Good afternoon. Welcome to scale. My name is Anthony Chow. I am a software developer. My employer does not endorse the sponsor me for my open source work, so I'm not going to, I'm not listing who my employer is. I am on Twitter. GitHub, you probably don't find much. My objective for 2016 is that I will have more presence on GitHub so that I'll be able to contribute more or do some work on different projects. And I also blog. The blog is for me to pick up, I am on a journey to the cloud. I read a lot of things and every day when I read something I think is interesting. I blog about it. The reason is that when I write about things, I know more detail about all those things. So it helps me and helps other people. And what do I submit to talk on contributing to OpenStack? Actually one time me and my wife went to Starbucks. So she went to get the drink I set down. When she came back, when she came back, she said, oh, you know what, today the drink is free. Then, okay, oh, I said, who paid for it? I don't know. She said, the cashier said someone paid for us already. Okay, so we enjoy the drink, go home, went home. And then in the afternoon and the evening when my daughter came back home, we said, oh, you know what, today we have a strange experience. We went to Starbucks and it's free. And my daughter said, so did you pay for the one behind me? Me and my wife said, what is that? Oh, they're supposed to pay for one behind you. This is called pay forward. And this is exactly what I'm trying to do here. I learned something. I'm now trying to pay forward. And then when you learn something, and this is why one thing, one reason I like the Linux community and the open source community is that everyone contributes.  So let's start. Why do I want to contribute to OpenStack? If you read the title of this session, you'll probably think about contributing to OpenStack. Is this some of the reason that I listed that you were thinking about contributing to OpenStack? I hope this is not actually, I have to point her, I should use that. This is the classic example of not testing out the equipment. But being in the Linux community for a long time, I have a backup system. Let me bring up the backup system. So when I'm doing this, what are some of the reasons why do you want to contribute to OpenStack? What do you think it is important to you? Obviously, if you come to this session, you will think this is something useful for you. This is something listed here. You might be wondering why is this, let me get this out real quick. Sorry about that. Why would this picture is in this slide? Is it applicable? Actually, this is the reason why I contribute. This then doesn't work. My backup system also doesn't work. Anyway, what do you see in this picture? Do you recognize Linux? Dockers? Anyone know about Go? Go is very popular. I think Dockers, written in Go. What I see in this picture, there are two things. They are very happy. All the characters, they are very happy. And there's also food.  These two things is what I'm trying to pursue in my career. I want a happy environment to work on. And also, I want to bring food for my family. So the reason I contribute to OpenStack is eventually I will be able to get a job in the car. And I hope today we'll be able to see if there are some barriers we can go over and try to see if we can start or you're not afraid of contributing to OpenStack. I think everyone of you know what OpenStack is. So I don't need to go through. But there are two things I need to point out. OpenStack is 99.5% Python based. As of now, I still am not able to find what is the 0.5% written on. I know it's mostly Python. Most of the code we use is Python. But what are the rest?  It is not 100% written in Python. So if you can find out what the rest is written on, let me know also. So contributing to OpenStack, I think knowing Python is one of the big requirements. And the other one that is important for us to know is that OpenStack is a bi-annual release cycle. If you are an operator, you don't really care about the release cycle. Although you just need to one stable build or one stable release, then you'll be able to deploy that in your environment. But this bi-annual release cycle is important if you want to contribute. The reason is that when you look at a bug, if you try to find a bug to fix, this release cycle might affect if you fix, it will be merged into the mainstream. One time, how many software developers we have here? You know about release cycles. Release manager will say, oh, release time is next week. Although, you can say, my feature is very good. It's very useful. But is it safe? I'm not sure. I can 100% say then the release manager will tell you, don't check it in. This is the same thing. Because this is a bi-annual release cycle, OpenStack is released twice a year. So you have a special window to work on the bugs. This is something we need to be aware of. This is, which I have to point out. But this is something we need to know about OpenStack is that before it is using a model called incubation and integrated. If you look at the picture itself, it was an older model. You have the call. You have the integrated system. What integrated means is that they will test your fix in the integrated with other features, other services as one. For incubated, the source code is not stored in GitHub. It is stored in Stackforge. So until the technical committee decides that this feature is going into the integrated, then it will not be in GitHub. This pose a big problem is that people tend to only contribute to the integrated projects and not the other one. So it is not helping the community.  Just like we are all under a big tent and also all the products is being tagged. And they are now being hosted in GitHub also. I have a link here. Today in the slide, I will have a different URL put on the slide so that we can have future references. The slide, I will put it on SlideShare. And if you look at scale, they should post it also. I think this is helpful if you can go back. Let's take a look at some of the projects. These are currently the OpenStack projects. There's a whole bunch. Sometimes every release will have new ones. I think Chef is one thing. Maybe it's not written in Python. Maybe if you contribute to Chef of OpenStack, then you don't need to know Python. You just know Chef. And there's also Ansible. Wrecked space is heavy and using Ansible to deploy a cloud. So knowing Ansible is also a good way to contribute. And this I18n, this is for translation. If you know other languages, translation is also a good way to contribute. But let's, we will talk about it later on. So we were able to find one of the current OpenStack projects. Do you feel this way with OpenStack? Have you ever worked with OpenStack? I think it is kind of a complicated system. And one reason why OpenStack is not heavily deployed is that it is not that easy to use. Although the Taiwan move on, people are doing different distributions. HP is doing some kind of, what is that called? A turnkey system where you buy just one hardware. Ubuntu has one system too where you buy one hardware. It's all integrated in and then you can deploy it from there. But it's getting better. But sometimes if you feel like this, this may be a hindrance of why we do not contribute to OpenStack. I find this interesting because I bought things at IKEA also and sometimes when I get home, it's not that easy to, you look at the picture, it looks easy but if you actually try to put the two things together, it might not be that simple. Okay, so I have to ask you this question. Why, what is holding you back from contributing to OpenStack? Any reason that I have not listed here? Doesn't matter. I hope after today we'll be able to, whatever barrier you have, it will be taken away and just look at this slide. Whenever it's impossible becomes, I am possible. I hope you'll be able to get some, get over some of the barrier. Is it some barriers you are encountering? Because this session is trying to overcome the barrier. If it is not listed here to share with the audience and maybe we can try to overcome that barrier also together. Oh, okay. So let's try to go over the process and see if that will help you. I don't claim to be OpenStack expert. The reason of the mind, I mean, I'm still learning but the objective of this session is that if we can overcome the barrier and you start contributing to OpenStack, I meet my objective. So let's move on. First of all, at least, what can we work on in OpenStack? There are many things we can work on OpenStack but in the context for this particular presentation, we concentrate on how to make coding changes and documentation changes. In OpenStack documentation documentation changes is also considered as code changes. In the sense that it goes through the same testing procedures, you have to write a commit message, you have to check it in and then go through the Jenkins gait system and then before you can emerge. Anyone contribute to other open source projects? They use poor requests. This is very different. They don't use poor requests on GitHub. If someone did not know how most open source project does is that they do in GitHub, you will call it to your repo and then you call it to your local machine.  But in OpenStack, it doesn't work that way. You don't submit a poor request. You will just submit it for Jenkins for review. We'll go through that later on but you will go through a code review and also a unit test system before they will merge it for you. This is also a good link on how we can contribute. Like I said, testing is very important too but I'm not sure if this is something you want to do.  I know I didn't say the word quite right. The triad process is that you test out the bug to reproduce it so that people can work on the fix. To prove that indeed this is a bug. This is something we can know. If you know other languages, you can do the translation. I know in China, in Japan, and also in Korea, they use heavily an OpenStack and if you can translate the documentation into the respective languages, it would be useful also. If you want to see what we can do, go to that link. I'm not going to go through it here today. Before we choose what to do, there are a few things that we must do is to create this account. You have to create an account and launch part. You have to join the OpenStack Foundation as the individual contributor. You have to sign the agree license agreement and use it also. This is a system that you have to create an account also. On your local machine, there are two things that we need to do is to install, get and review. In fact, on this machine, I do not have this installed yet. Maybe it's a good time for me to do. I am mostly a Ubuntu user. I don't know much about Fedora's NOS. Get, install, get. It's a very simple process and it's pretty quick. They do have a fast network. I think the network here is faster than the one I have at home. Get, review. This is another thing that we need to install on the local system. If you want to contribute, these are the two things you must have. Of course, you need to have the Python and the one that we will go through it later on. Let's see. This is, these two URL described about this process very well. So, I hope if we have, you have time and you have, I don't think you will get stuck. But in case you do this one from Sematic.com, have all the, have all the screen print that talks about which field you need to fill in. It talks about the whole process and then this is like if you go to Launchpad to create account, these are the things you need to fill in. It goes through the whole process. I don't think you guys have, we have problem with this but this is put into the slides for, just for reference. Current slide. So, how do we find bugs or how do we find things to work on? They have a bug system. So, the bug system, again, this is a very important URL that we need to know. In the bug system, it talks about, they have different status and they have the priority. It's being a critical high, medium, or low. Of course, if you have a low priority bug and it is close to release date, most likely they will not merge it into the, into the build. And then if it is the status, it's something we need to take a look when we find a bug in the bug system, as that we have to pay attention to the status. And this, this the triart is the word I'm trying to say is to that people was trying to repeat the test process and to see if that is, that is indeed a bug. So, but how do we find a bug? Not here, this one. This is where we find, try to find a bug. This is all the OpenStack bugs. It's listed in bugslaunchpad.net. Well, of all this, how are we going, which one is suitable for me to look at? Am I going to go through all this and try to find a bug? Well, this is one thing, is that we can go to the advanced search. This will limit the possibility. Well, status, for me if I want to choose a bug, I would not try to put a new bug because when a new bug is reported, it might not really a bug. So, let status settle down first. At least the confirm is very good that we need to search on because if it's confirmed to be about then we, this is something that we should choose to work on. And of course, in progress, means someone is already working on, unless you want to work with the other person, it might not be good fix committed. Of course, we don't want to search for that because it's already fixed, it's committed. For incomplete with respond, that depends on how you want to find a bug. Sometimes there are incomplete response and if you can take the initiative and follow up and fill in the problem that will also help. So, it depends on how, what type of problems you are trying to find then these two may or may not be useful for us. And for the assigned E, for me, I will choose nobody because that means that bug has not been picked up by someone or being assigned to anyone that's working on. Although that might not be a problem too, what I find is that some of the bugs that they have, they assign to somebody but and then later on when you go back to the log, it's that oh, that person is inactive for half a year already. Even though it's assigned, so you can still pick it up to work on. And this is some of the, you can fine tune the search. So, let's see if we pick this, how we can find some bugs. Well, you can, so many of them, let me instead of go and go back and then do a search. Then the limits still, we'll be able to find almost 3,000, 3,000 results. Then again, it's difficult. How do we find a bug to work on? One thing good about is that in finding a bug for OpenStack, there is something labeled as a low hanging fruit. And these are being tagged as a problem that's suitable for the first time committed to work on. In the mailing list, I talk to say, oh, how about take away the low hanging fruit and tag the bug as suitable for first time committed. But I was on the mailing list and then I reply and say, oh, this will not be good because I have submitted my first bug that I don't qualify to be a first time committed. But still, I am a casual committed for OpenStack, I don't work on the very detail. So, low hanging fruit is still important to me, so I think I hope they will not take. But if you go and search with this tag, then this is something I would suggest this is good for first time committed. These are the bugs that is labeled as a low hanging fruit that means they should be very easy to fix. And I recommend doing the search with this tag, so we just try to find something, wow, they have so many problems for fuel. Then this is one way we can find out what is a good bug that we can work on. If you find a bug, what do you do? Maybe you can, for me, I am a more cautious person, I will not immediately assign the bug to myself. Let's see, we go back to the slide, this is what I will do. Let's see, let me find, there must be some problem with the flip office, you should be able to see the slide, finding something to do. Another good way is that in the open source community, IRC is your friend. See, it's slide show, I'm not sure why it's not letting me get the full slide, maybe for the whole presentation we have to live with this kind of a format. But IRC is a good way. There are two things about IRC, let's go to jump to this and you can, I'm not sure if you have IRC client in your workstation, if not I'll use this web bay, web chat, three, no, dot, say ORG, I forgot on dot net, say three, no, dot net. This is how we lock in, I use, every way I use, I use this. Which channel? I make a mistake before I was going to open stack, it is not a right good channel for developers, actually it develop a depth, it's a good, good channel. Mountains, this one, this one, this one, this one. Did I miss anyone? I am not, well, probably it's not using IRC, let's see. Huh, select all the, this one, this, is this one? I, let's see, no more? Did I select all? It's only two? Let's see, yes I'm not a robot, I am not a robot, yes I am. See, this is how we lock in the IRC, there are two things about IRC, this is, you can ask question about IRC, and also different committees, they don't, they do not hold the meetings at, uh, opens this, on this channel, but they have individual, let's say if you country, want to contribute to Neutron, they have, um, weekly meetings, I think they're trying to go with the bi-weekly meetings too, because there are two different time zones, people can attend different meetings, but this is where it's discussed, what to check and if you are new to, uh, high scale, so someone, someone is locking in the IRC too, it's one way with that, I can ping that person and I'd be, is this someone in our audience? Hi, good, thank you for, for locking in, then I ping him, this is someone, if you wanted to contact someone, let's say if the bug is being assigned to him, and I want to work on it, or I want to ask question, then I will say ping him and then if he is online, and some people, they have a IRC proxy, they will appear to be online, but they don't, it's not there, they will answer you later on, so you have to pay patient, and then you have to find out whatever project you want to contribute to, what is the best time developers, uh, go to IRC and, and talk, then you will have to adjust to that time and talk to him, so if you, let's say, or, let's see, I can ask him if I can work on that bug, and then he will just confiscate, he will just go on and on, and then eventually, I'll say some people are very, I would say people in OpenStack, I have that in the one of style, people are very friendly to first-time committers, for some reason, so you just don't worry about asking the wrong thing, and then you just talk and talk, and then, um, actually for me, I was very fortunate, for my first bug, I checked in, it's a documentation bug, I was on IRC channel, I forgot which channel I was on, and then saying, uh, I'm a first-timer, some, blah blah blah, just try to introduce myself, and then all of a sudden, a guy asked me, I think it's a guy, I don't even know it's a, it's a woman or a man, but he's asked me, oh do you mind not working on documentation bug? I said, oh no, anything is good, then he get me a bug number, and I sign it to myself, you know what that bug is? It's take out two right spaces, that is the bug, see, actually, go out contributing to OpenStack, it's not that difficult, see, for me, I'm lucky, my first bug to fix is, take away the two spaces, and then I run, it's not that simple, or go through it later, even though it's taking out two spaces, it still take me more than one week before my fix got merged into the main master, but anyway, this is something, you, if you want to contribute to OpenStack, you should be able, you should master IRC, and then use it as a tool to find bugs, and to work with, because OpenStack is a collaboration of resources to work on, so if you talk to more people, you make your presence, in those individual, let's say Neutron, they're okay, they have the weekly meeting, if you attend, you just say hi, that meeting has been locked to somewhere, I forgot where IRC will lock it, but your presence is being locked in the minute, so people know that you are there, and then if you ask questions that you will make yourself known, people will know who you are, and they're, oh, such and such as here again, asking questions, they will not say you're asking stupid questions, at least they will not say it in IRC, but they will say, oh, this guy is very serious about contributing to OpenStack, that he will help you out, and will talk to you, so this is something we should be aware of, and this is your friend trying to find about, let's say, go back to the slide, and of course there's more like this, oh, I know what, let me quit, now let me, oh, still no, don't let me quit, this is something, something I don't like, I myself am a developer, I don't have a customer-facing job, talking in front of the audience is still not comfortable for me, but so, forgive me if I look clumsy or it's not as, the presentation is not as smooth, but at least my objective today again is that if there is any hindrance or barrier to contributing OpenStack, let's see if we can, through this session, we can try to overcome it, let's move on, there's also the melody list, this is, I have the URL here that you can go and this is a lot of good discussion, may not be bug-related, but they are good discussion about the project, they talk about the directions of the project, what is good, what is not good, people like this, they want this feature to be had, to be heading this way and that direction, this is very resource, very good, but then, bear in mind, I think, better not to use your work email address to sign up for the melody list, just use one dedicated somehow, some Yahoo or Gmail melody list so that you will not, you will, every day you will not be going over hundreds of emails and then there's also the Ask OpenStack, I personally do not use this much, I don't know, but of course you can ask question about OpenStack on this channel, let's move on, this is something, this is, let's say, assuming you already find a bug to work on, you have assigned yourself a bug, how can, how can we work on a bug? What I find mostly is that OpenStack developers, the year beginning systems, this is what I find, I think, you've been to in particular, it's very friendly to, to OpenStack, of course there are people from Seuss community, from the Fedora community, especially Red Hat, they use their own system, they, but I think, I would say 60 percent of the development environment user use, you've been to machines, of course you have your own choice, this is not limited, and then there's different ways to, to work on a bug, there is that you use, you can use a KVM to speed up a machine, anyone heard about Vigran? Vigran is very nice, you just spin up a VM and it's just right there for you, let's see, Vigran, I think they have a, they have some other product, there's some other product, this is how easy you can spin up a VM, so it's two rounds, and then after the VM is up, you just Vigran SSH, then you will be in that VM, you can configure it as whatever you want, and this is good for development systems, and of course VMware Workstation and Fusion, I'm not sure this is a Linux convention, not to make people, I, I am involved with the VMware community, I do have a VMware Workstation, but one bad thing I find out is that my VMware Workstation is an older one, it's version 8, it does not support 14.04, there's some, some hot way I find is that I tried to spin up a 14.04 Linux machine on my Workstation 8, and then I see crazy behavior, now actually I find out it's that version 8 does not support 14.04, but I think it's not a problem, and another two things that we look at is DevStack and RDO, usually when we configure OpenStack in the production environment we use different server, but limited if we are developer, we don't have that many resources, and even if we have that much resources it's more convenient if we can configure OpenStack in just one single machine, they have, let's say DevStack is very good, I use DevStack very, more often, DevStack is a community, you can spin up, this is very nicely described how to work, to just get cloned, and then you just spin, run the script and then later on you'll be able to start, and then you have a virtual machine with OpenStack running to work on, and of course depending on the project you work on you have add-ons, but you can easily Google your particular project, let's say if you work on Neutron, if you Google with the keywords DevStack and Neutron then you will have tons of information for you to see how to configure a machine, although I have to, I have, at least this is my problem, is that even though there are instructions to to specify the environment, sometimes it's not that straightforward, and that's where IRC come into hand, and that you can ask different questions, it's sometimes, especially my experience with the OpenStack community, is that it is not that easy, that's why I come up with this, with this, with this slice, sometimes I really feel like this way, but the good thing is that don't be afraid, it is not that simple, there are customer support on that, it's a community, it's very friendly, so don't worry about that, that should not be a hindrance, and then this is some of that, of course RDO, RDO is the San Luis Fedora redhead version of DevStack, I don't use it that much, but the same idea is that you can in a single machine or in one, you spin up one development environment, you can do your changes and test your changes, this is not something specific, and then fixing the problem is, it's depending if you have a low hanging fruit, fixing the bug, like in my case, I just have to take away two white spaces, and that's my fix, sometimes the fix is just like that, but still after the fix, the problem comes is that you have to do unit testing in your local machine, you just don't want to be a bad guy in the user community, do some changes and check it in without testing, you can do that, no one will prevent you from doing that, but this is our good practice, and then you can, there are few things, because mostly OpenStack is mostly Python based, we use talks to want, to run local testing, usually the project itself, if you're working on, they have very well developed and well tested test scripts, so you just run the, run this one, command it with this, run it for you, and this, this article, I find it particularly useful, and it very detailed, it talks about how to do unit testing, it details the script, it tells you that you need to use PIM to install talks, and then these are the things you need to do, and then you can go to, one problem with OpenStack for now is that Python has a version 2 or version 3, some project is using version 3, some project is using version 2, so it depends, and sometimes depending on the project you're working on, you will have to, but usually all the projects, they have good documentation on how to run unit tests, and this, you can go through it yourself, and this is something not difficult to do, and have good suggestion, the unit test, this one has a nice screened layout, is that you will tell you how many tests being done, and they are used as successful or not, most likely it's difficult for you to see them, because of the color, it's not easy to see, but you will see, this one is better, when 14 tests in how many seconds, and say okay, so your unit test is good to go, but this is something that we can do, but what I find is that after the unit testing, committing the fix is the most difficult, but you will think, the bug is already fixed, one is it's so difficult to commit the fix, well let's take a look, Garrett is a system, a code review system that will trigger when you check in, you will run the continuous integration test, and you'll want to see if your fix is good, the commit system, Garrett is based on a voting system, for sure you need two, two plus two, let me phrase it the other way, plus two is one, you need two of them, before your fix can be merged to the master, and also there are some times they will give you a minus one, like I said in here, minus one does not mean your fix is wrong, but there is something not quite right the format that they will give you a minus one, sometimes Jenkins, they will give you a minus one because when you run the unit test, it fails, I think what I'm not 100% sure, but what I my understanding is that Jenkins also use DevStack to spin up machines to run the test, so using DevStack or Arduino to run your unit test is also good, sometimes the problem is not on your side, it's because of some other people's problem the test fail, then you have to follow up and find out what the problem is, sometimes you can request to run the test again, so don't worry you will most likely when you do the first commit or first full commit, even a seasoned contributor to open step, they will get minus one, because they are of different reasons, people will say co-review, I don't like to do that, one of my experiences there is I forgot to mention on the release there was one low hanging foot I picked up, the problem is that they will say oh there are two flags, it's being deprecated, not being used in open stack anymore, so I'll say oh good that's the easiest thing, there's no logic change, I just need to take out the two flags, do a grab on the tree, whoever uses it, just take out the code, no problem, so I did that and I commit the code, I did the testing, they all tested well, I make my commit, some reviewers say oh it's good to go, but there is one person they give me a minus one, they said oh no, this is not how you do things, for a deprecated flag you cannot just take it out, you have to in this release mark it as deprecated, and then we will take it out on the next release, so for me okay, then what I have to do is I have to do a rebase, I have to make all the, whatever changes I make it's not good, so I have to do it all over again, and then I submit my changes and then later on on the next release they get taken out, I didn't do it myself, but commit message is not as easy as you think, it's very, because they follow a very strict, and I recommend you to go through this document before we do the commit, this is a very good description on how to write commit messages, we're not going to go through this, but this is some of the main things, don't make space, and I think that this is a good thing about this article is that you have example of good commit message and bad, and explain to us why this is going to be one that this is bad, and sometimes you might get a minus one just because the format of the commit message is does not adhere to a good commit message, so they would say, oh we do your commit message, and one thing is that later on we will go through is that because of Jenkins, the change ID is very important, we try to keep the changes, because if they're later on, or some will say you're fixed, you need to make additional changes, that will be good, then you will check in with the same new change ID, so that your fixes will be in the sequence in the lock, and I highly recommend we go through this, if you do a commit to go through this first, before you really commit your fix, I think this is something good about OpenStack is that they have this sandbox for us to play with, before we really do, this is something very safe, and I think we should be able to go through this here, and try to see if if you actually, if you have your laptop, you can also play with it, the URL is on the slide, but this is trying to do, try to play with a good, do a commit, so you see, or see this, for me already, download Git and Git review, so Git clone, let's see who were my first, see the, I don't have an OpenStack, Git, clone, DTPS, FetFingers, OpenStack, Dev, Sandbox, good, hope it's right, no, simple, it's fast, and this, you have this directory, CD, Sandbox, we have all this, what we're going to, actually this is very, I did it once, so this is very nice, I wish I know about this when I have my first check-in, I don't, I didn't, and then I have to learn it the hard way, so now we are there, let's follow, follow the instruction, see what I have now, config, this, this is done by the Sandbox, this is, I never, because I just downloaded, I don't have anything, so I need to get config, user, name, for me, something else, okay, no, config, no configure, okay, config, user, mail, actually there is a story about by this vCloud, beer thing, I like to drink beer, so beer is one thing, and my last name is chow, so when most of the joke people talk about me is they call me chowder, and I like food, so when I pick a username on Twitter, I say, I would say, and I like, I work on virtualization, so I call, initially I call myself v chowder, and beer, but later on, after I work on the virtualization someone, the cloud come into place, say, oh, there's good nice things, and myself from chowder, I change my username to be clouder, and that's how I've been using this for a long time on most of the social media on Twitter, on github, on even, I open a gmail account with this, just do that, ah, the next thing is very important for me, I have been working on Unix, Linux for a long time, but I never forget to learn Emacs, and forget the default editor is Emacs, the very first time I make a commit, I have a Emacs screen in front of me, I don't know what to do, because for me the most difficult thing is, I can do the insert, I don't know how to get out of Emacs, I have to call my wife and say, how do I get out, so this is very important for me, that I must do this on a new system, I need to change to vi, let's say vi, I don't use vi m2, I'm an old screw, just vi is good enough for me, so let's say get config, this, this is what I have, this, this is important for me by the send-ups, so I have configured my username, my email and the editor, let's just follow along, ah, this, I'm not sure we need to do this, but just follow the instruction, we'll do it now, let's say, no, let's skip that, just do your git checkout, new branch, this is checking out from the send box, we're not checking out from any three from github, new branch, so change new branch, and let's follow along cat, first file is my first change set for, what was that, well you can type it anything you want, okay, say git status, as one, but I need to add that, so git, add, that's it, git status, now I have one new file, so it's easy, so let's say I make change and git, commit, so this, wrong typing, ah, how come it didn't change, someone have to help me out here, so we need to write a good commit message, this file fixes a big problem, think what they recommend in the article is that you have one line that is between 50 characters to describe what the big problem is, then you describe what's been changed, add one new file, so the problem is fixed, this is a bad commit message, actually it doesn't really help other people what it is, but that's typical for now, one thing I forgot to mention is that writing a commit message, you have to say this is fixed, but this is a keyword, very important, let's say I will request, I work on bug 1, 2, 3, 4, this is bug fix, and there are a few keywords that you need to put on too, because if my fix change, I will say API, say API impact, of course if you change API, there's also a bug impact, these are the very keyword that we need so that the API, the group will know that this bug, there was an API impact that they need to log on, bug impact means, whenever you have checked in, affect existing documentation, so the documentation group has to take a look too, and sometimes there is that impact, if your fix has security impact, let's say your fix may be good, but it will introduce some security hole, then you need to put this in, or your fix is fix some security bug, then you put all these three, this will flag Jenkins, or a Garrett system, to inform the other group that whatever you have changed the fix has all this impact, so that they will follow up on that, and then I think this should the change ID should be given to me, let's see what it is, and how do I save and get out, is it control X? Control X and Y, enter, all right thank you so much, I thought I changed my editor, so I make a commit with a commit message, but that's not, we're not done, get status, you will say nothing, nothing to commit, but the most important is that after you do the commit, we type in this important command, it's git review, I'm going to type in git review, but my command is going to fail, it's not going to work, so see if you can figure out what went wrong, git review, it's going to fail, okay, ask me, yes, Garrett username, what's wrong, just give me a trace back, try again with this, it's a test, okay, this trace back, we don't know where your Garrett is, but let's see, they should know, so there is a git view, git review, anything wrong with this, sorry, yeah let's see, let's do this, right, but actually this is not my biggest problem, it does know where it is, but there is one thing I'm missing that I have not done, let's get her out, let's go to, where should I go, I should, this is the review, is it review open stack, review, let's sign in, this is where the review is, one thing I have not done is that there is one thing we need to know, settings, this is the key, my laptop is not set up, I don't have the key, that's why it's not allowing me to do that, these are the some of the things that might be frustrating when we contribute to open stack, this is a little thing, it's not the difficult things to do, but just that we don't know the flow, we love doing it as a second nature, so we need to figure out, but let's say if we're looking at this, these trace back and these things, even though if I do the, this one get reviewed at last, it might not necessarily tell you what really happens, and this is where Google companies to play, I think Google is the most common or most well accepted search engine, I don't think any people would use Bing as the search engine, even the ayahu, I think finally, not very friendly to use, but anyway, this is a side comment, that's not important, but this is where search engine, internet search engine is good for us, if we want to contribute to open stack and we find a problem, we just have to say, key in the right word, try and narrow as a, this thing we can say cannot connect to open, to get it, then you will try to find out what exactly, what is wrong, and for me at this time, I think I need to pull out a cheat sheet, and to create myself an SSH key, actually to do that is not that difficult, let's say, usually when I, at the, for us, and let's say cd.ssh, there is a .ssh in Ubuntu, but I need to generate SSH, T gen, minus T RSA, you can go to RSA, enter file which to say, just take the default, okay, this one is a, now, before I only have a known host, but now there are two files called, for me, this is what I need to do, is that I need to cat, id, RSA, pop, dot, pop, and then, let me put this away first, and then I need to copy this, and go to net key, paste, yeah, now I should be able to, let's see, let's take some, give it some time, usually it might not be that fast, I'm sure, let's see, go back, cd, cd sandbox, now open stack sandbox, let's do the review again, get review, see if this will work this time, because I added the key, I think this time is okay because what I see is that I have a number given to me, this is the number, and this, when we, when you do the commit, this is generated for you, then we just click, yeah, let's go there and take a look, copy, see this is what I have committed, and this is, you can see the reviewer, in this special case, this is Jenkins, Nimble Storage and EMC are up, it's the reviewer, see Jenkins give me a, because one, for me it's good to go, Nimble Storage say, no, not good, then I need to find out what it is, this is one, this is, so this sandbox is very nice to see, we can play around with it, and you can, if you have a successful check-in with this sandbox, then you can do your regular check-in for the regular bug fix, then you feel more comfortable, let's see, this is the change ID, this is important, let's see, because this is my commit message that I have typed in earlier, and what else can we get from here, this is the workflow, this is so many things we need to look at, but this sandbox is very nice tool for us to get used to the commit process at the workflow, so the key thing for me to overcome the barrier to contribute to open stack, it's not really the bug fixes, it's the process that we are not familiar with, if we are familiar with the commit process, I think it will make us more easy to commit to open stack, and let's see, I'm not sure, that's because I think this is only a test, when you do this, I think it's recommended by the webpage that we abandoned, this change, I'll get back to it later, but this is something and demo time is a sandbox play with it, and this is what I have, so like I said open stack community is particularly friendly to the first time, if you identify yourself as a first time committer, people is going to help you out, and they're going to give you advices, trust me, they are really friendly, and if you do not trust me, challenge what I'm thinking and do a first to be a first time committer, and you'll see if people are friendly to you, you can just come back and say oh they're not friendly to me, but don't feel discouraged, because like I said in this slide, you get nothing to do except, living to lose except time, but if you start contributing to open stack, well remember this slide and this is it's helping me out tremendously, in fact, let's say on my Twitter, I put that as my background, just to remind me that I need to, I need to stay focused and not to give up and try to continue my journey to the cloud, and that's all I have today, is there any questions, comments, is it helpful, I hope you go back and start contributing, when you get nothing to lose, the worst thing you get is minus one, thank you


Going on everyone Sam here at Lane sports cars remember 23 Bowman chrome baseball hobby 12 box case number 81 picker team style names and teams Brad art Dodgers Mets yanks Brandon S for the Guardians Brian B Tigers Angels Pirates Daniel W with the Rangers Frank P Cubs White Sox Marlins Blue Jays and Nationals Gavin K with the Phillies Jeremy H Braves Mariners John M Orioles Jordan N Rockies Josh and Diamondbacks Justin K Astros Lursak Y Reds Michael B with the Cardinals Mitch D twins Brewers or in W Padres Sean C athletics Stephen R Royals Ty W at rays Tony white Red Sox and Zach D with the Giants So good luck here everybody. Let's do it again. It's a lot draft Second draft case Astros Angels Brewers Phillies Giants Five to go Whoa, whoa. Thank you, Shai It's shite man. What a good guy Mel and yonji Vargas first, that's what that is. Oh So they literally started as Sean being like, hey, you want some shirts too? Just that just noises Guanypa refractor to 499 first cut your boy Javon Carter First base auto Wilfredo and Tunes going to the Guardians nice one there Cleveland last team taken Rainer Arias first and Jacob runner on Carter's on my fantasy basketball team. I inherited a fantasy basketball team my cousin's league How about play anymore? So they just gave my cousins like you want to play.  All right now Zach that would be so nasty and orange are an arm or an orange Arias Okay, cool. Gotcha. Okay All right, cool. That works nice and then Gold shimmers Spencer Jones to 50 another Rainer Arias How legitimately just wants to finish these good ones, right? Johnny Perron to 499 refractor out of congrats raise Very Gonzalez Oh nice Corbin Carroll variation brats on that one d-backs. That's awesome dude. I love that nice. That's cool. It's really cool Yeah, true of on at least you got the Celtics now Vaughn at least you got the Celtics Yeah, there you go. There's the bright side. I know I feel like I was thinking about it yesterday I'm like damn. I'm really like paying for the I'm really paying for the success of the Ravens this year with my other Talks are abysmal. The Yankees are terrible too, man. At least you have other teams. Yeah, true I haven't dedicated enough to sell us then first actually claim a team true Richie Palacios to 499 wall cop first VHS was still saying that's true. Honestly green 299 Camilla Diaz You know as long as the Cowboys don't make it to the NSU championship, and I don't it's whatever Yeah, that's kind of what I'm just hoping for this point. Carlos Rodriguez to 299 on the white speck a lot of for the brewers And when Solano to 125 Junction, Josie Galan Vinnie with the brew crew we're down to four to go and bomb a draft everybody nice Are you talking about the one that just happened Bennett? It's still just uploaded here. I could drop you a link to that Or you need are you talking about a link to the next one? Here's a link to the next one If you need the video for the last one, I can get you that too, but I know I believe you in the last We're gonna go on draft time three three to go on draft Astros Angels Phillies So that means yeah, Astros Angels Phillies very nice. Yeah brew crew came off Yeah, nothing super expensive left in draft now everybody. Thank you all Rainer Arias first after that We're gonna be looking to sell out good old NT baseball once we're past NT Goodwin Nick York atomic to 150 Goodwin random letter style, and then we're gonna finish off some prism Prism PYT's first base. I don't want almost going through the Royals as well Give me a little behind going in the next one apologize on that On this one should be able to get decent out of this. Yes, sir. Mercedes. Hello jumbo Jumbo Diaz film and sell us and go back to bed, dude Smashing wall cut Purple is 250 Marco Luciano First base auto Christopher Thorin for the d-backs nice one there Arizona ace and jace young Jace young Cheerio Ludwig Espinosa Jumbo just woke up. He's not do it, but he probably needs to go back. Jumbo needs to go back to bed for sure No englorman on the Bowman ascensions Was that earlier was that just Just now I had him I had him I thought I switched them now Yeah, I switch them back to 39. Yeah, no they were at Sorry, must have been 39 and I did Holding up break It is now it really is honestly it really is Lurad first base auto for the Cardinals At 3900 for the Yankees goes directly into my pocket. That is a orange yellow orange wave of Raj Garyas 275 for the Yanks base and bleach Jordan. I Really like that Corbin Carroll variation. I like the variations they have in this Product. Thank you. They're Daniel picking up a random team spot. Appreciate you, buddy Get three to go in Bowman draft and it'll be into in a tee 15 nice Jackson Holliday Oxyoplasma on Benjamin. I do think jumbo Diaz needs to go back to bed first base auto Chris Newell I mean if you will I will And jumbo why don't you come in and pop load and then I'll go there Edward Julian to 100 Paula This is a yasa Mercedes through Jones and Justin Crawford Hasn't Kirstad to 150 Arizona Folly. Nice. Nice one there on the jersey for the Orioles Manuel Bonilla, that's the 299 a manual bonilla again first for the Liges for now shimmer of Cannibal got it Jesus Bastidas 499 first refractor out of Congrats Yankees Bastidas and true waters to 499 rookie refractor and your entry for us We're going up. How many do you got three? Yeah, ready to go orange Francisco Lindo or to 25 Congrats on that one Mets. Lisa. Hello, Kunya and Michael Rowe Purple your end of Rivera to 250 going to the Nationals There you go Washington Carter young and Edwin Solana mola Jose Gerardo nice an hour Luisa made a wave to a hundred price to rang rookie for the Rovers Ethan solace and Adrian Tinta. Jim of Diaz. Lily always comes in all he just says it's hot That is Luisa made up to you at 1.99. What is that? I said, I don't know That's really the we coined the term 24 jumbo. Have you heard of that yet? Miguel tomorrow's first base auto nice one there for the race. Yeah, it really should lion's rams will be a good game lion's rams you get breaking We can't Sean Luisa rise to 50 for the Marlins Obviously Sean likes to time out our own employees. So obviously We time jumbo Diaz out for 24 hours probably about 10 times now And it's called a 24 jumbo if you time somebody out for 24 hours Give that guy a 24 jumbo real quick That's pretty good Pretty good. It is pretty funny. I will be honest with you on that Mason hour to 150 atomic. Yes. Yes. He does actually the 150 is Sebastian Walcott despite popular belief You know, Jivargas jumbo Diaz Is now let's see employee Oh Shrimp Federer's got that one, right? Purple Shimmer Sebastian Walcott again to 250 this time really Tiger Woods leaving Nike. Yeah, wait, yes. Wow Really That's crazy first base auto Mike Coyado going to the Guardians Congrats Cleveland. Yes. Does that even allow it? Rhymer and Barry. I thought he'd have like a lifetime sponsorship with them And we're fully into 499 Wonder if it's I bet in the contract he can get out of it. They probably can't if it was a lifetime. I Wouldn't make any sense with it. Yeah Tiger to live.  I don't think you'll go to live. I don't think so Anderson De Los Santos 27 year partnership 500 million. That's your date for this And it goes JK. I don't know anything He's I don't think he has any special ties to the PGA, but I just don't think he's gonna live. Yeah He doesn't need to right, right? Kazuma Akamoto, that'll be a ramp you all at the end of 499 Motto nice first refractor auto Alfredo. Do know to 499 Congrats Reds play Fredo, I do know I do know that is a reds it Ah Astros Angels Phillies left everybody three to go think the reason I don't think Tiger would go is because you have to play at Least like I think 12 to 14 events for live I don't think Tiger wants to play that. No, you're right. That also makes a very good point I don't think his body can play them also also very valid So from what I heard Tiger's gonna try to play at least once a month and just focus on the major majors Yeah, that makes sense though. That's what I heard. I could be wrong It makes sense for him to just play in all the big tournaments. Yeah, like like you'll probably play in the players Yeah, definitely play in the Masters. Yeah, PGA championship the open Yeah, I don't I don't think no matter how much money you offer him. He's a little Yeah, not not from tiger tiger playing and how little or how many yeah, I guess like the anomaly like Yeah, as well the Cabrera's that no, that's the 499 which team was What team is every she played for I'll take a look he's he's in the MLB Jesus Bouguard first base order. That's where the minors probably. I don't know I can look it up. I just like you might know. Yes. Yeah. I don't know off-hands Raise right now nice sign there. He's literally traded three days ago. Really? Yeah So yeah, that will now go to the raise Again three to go on Bowman Draft Jumbo. Let's sell it out everybody three two go Bowman Draft Jumbo Diaz Sanchez Yeah, Danny like the reason you get tiger is not for his golf. It's just for Tigers Yeah at this point the 75 you want your Vargas nice one there for the Dodgers on the orange yellow Vaporwave I want it full though. They would definitely take a hit. That would be rough. Yeah shimmers Justin Crawford I mean you got I think like Tigers have been out of golf for like almost a year now and like true Leonardo Bernal true Orange to 25 Congrats Cardinals Very nice.  I mean Roman Anthony to 199. Well, I just got wrong didn't I? Yeah, that's a good point. But like players like Shetler speed. Yeah, this like those guys aren't going now Like PGA the PGA tour roster still strong. Oh, yeah. Yeah, there's like more international guys that are starting to get More known. Yeah, I think they're in a good spot. Oh, yeah, they're fine Miggie to the Tigers to 499 Propel to 250 Jet Williams. It would give it would give live toward a man. So for sure first base auto Kennedy Corolla Astros Congrats Houston each down Yeah white sparkle of Chase young to 299. I think they should put players on the World golf rankings though. Oh, they don't do that not last year. That's so else. They changed it. It was just a PGA thing That's so dumb So once they change it, I don't know about yeah First base auto Jonathan Enriquez For the best Congrats, New York base auto or base of Sebastian woke up first And three to go Bowman Draft jumbo everybody green Christian Javier 250 or 299 From the Celestin and D'Angelo Sarmiento So in the end though, you know Javier goes to Ashley Javier And that's how it was in regular Bowman to a lot of big names are grouped together J-Rob to 299 Ethan Salas and Adrian Pinto Brooks Lee Juan Soto to 499 First base auto one cornel Grats on that d-backs Soto's on the Yankees. Yes, you will go Yankees now. Yeah, did I say Padres? I don't think you said anything if I said yeah, if I said Padres on the one Soto, he will go to the Yankees He will go to the Yankees He's now in New York. Yeah, there's a couple guys like if you pull a Yamamoto goes to the Dodgers Kind of like that same with Junho Lee. He's a guy. He's time to dodge that Giants Here's another World baseball classic. I'm gonna go Blase to 299 Weldon, Francisco, Braylor Guerrero Juno, Campala, Purple Shimmer to 250, Ethan Salas. Not bad. Congrats on that Padres. Take that all day Very nice. Very nice. Thank you, Mr. Brandon. Picking up a bunch of spots for tomorrow or yeah tomorrow, which is Tuesday Yellow to 75, Yosfar Zuleta, Zulu game. Grats on that BJ's Bryce Terang refractor to 499, Luis Torres, Jackson, Holliday Holliday I did add a new sound effect to the stream that you'll appreciate. Oh God. It's the Spongebob one where they're like, oh brother, that's pretty good. I like that. That's funny. My little Sam will spend all the points on this. I will. Yes, I will. They just play that all the time. It's not a cool down, so I can't spam it. I thought ahead. 499, Abner, Uribe. Nice one there. Hope I get to think ahead to a bunch of our employees controlling YouTube. A little bit, yeah.  Nice Adley variation. Two variations in this case. Very nice. Congrats, Orioles. I can't get away. No. I'll do it to myself though. True. Weldon, Francisco first. Do you need a trash changer over there? Yeah, after this one, I think. Ben Joyce to 499. Nois Joyce. Juanipa first, and Maia first. Nice one there. Shimmer of Victor Asturas. Chase a step to 499. First refractor auto for the Mets. And Autolopez to 150. I don't know where Autolopez goes off to, but I believe the PTAs, I think. Unless he got traded. I'll look it up. Two boxes left, everybody. Good luck here. Shipe, with the Phillies, Shipe's selling us out on draft. Thank you, Shipe. Nice. You're the man. Toronto. Toronto. It is Toronto. Yeah, that's right. Alright, let's get NT sold out, everybody. Let's do NT here. That is going to be $18 to go on NT. Not super, super expensive on an NT baseball. Thanks, Shipe. Oh, this is $75. Really? Yeah. It's not weird. I don't like that. Yeah, it's not weird. Interesting. Maybe he was one of those special players. Yeah, that's what I'm thinking it could be. It's weird when they do that on non-autos. That never makes any sense to me. Yeah. Guanipa and Maia again. Guanipa and Maia first. Yellow, Jayce Young to 75. Tags. $18 to go NT baseball. Roy Versalinas first base. Nice one there. Braves. Bravos. Yosue de Fuala. Muñoz. Those are rigged by the refs. Men's Dallas and our staffers. Yeah, true, man. That was rough. That was so bad, dude. Jesus Cabo to 125. That freaking Lions Cowboys game. Yeah. That was terrible. Just keeps confirming what we are, I think. Junior Caminero. NFL script writers. Yup. Hopefully the NFL script writers have the Ravens winning. First base, Otto Miguel Tamaris. Hold on. There you go. Race. Based on Super Bowl logo. They're at least making it to the Super Bowl. Not this morning. We'll do personals tonight, Ryan. That is to 150. Garrett Mitchell. Yeah. Personals will go tonight after group break. So around midnight Eastern time. Generally, that's when we'll do personals. You're good, Kyle. What's up, buddy? What's up, Kyle? Nice. Brother Guerrero to 250. He's a hard pull at this, man. Congrats on that race. Very tiny, Otto. Yeah. Not the best auto in the world, Braylor. Can't hear it all. Got him. Down T. Down T. I missed that. Luis Reyes. First base, Otto. Nice one there. I just get V all the time. I get every single V. Whatever I mess up. Oh. Gets everybody out of the weeds when that happens. Everybody out of the woodwork. Ridiculous, man. Not starting with this type of work. Luis Robert to 299. On the... Magenta.  Probably. Yep. Nice. Reiner Arias. Four of five. There we go, Zach.  That's kind of nasty. Four of five. Reiner Arias on the... What is it? Aqua red vapor wave, I believe that's called? Hell yeah. Zach, good stuff, man. Get that into a mag for you, buddy. Shimmer, Burgoyah, Ethan Salas, and Adrian Pinsoe. First base, Otto Weldon, Francisco. Nice one there. That was a great box. Great mini box. Montero and Brooks Brandon. And Oswaldo Cabrera, refractor. Let me just confirm Acomodo is a... Ed PB. What's that? The... What's up? What's that stamp for? The pod professional baseball, I believe. Okay. Oops. We're going to do WBC. All right, everybody. Doing the random for the Kazumo Acomodo refractor. Going to go eight times. All teams are in on this one. One, two, three, four, five, six, seven, and eight. That is going to be the Blue Jays. Going to the Blue Jays. Congrats on that. Toronto. Good recap here, everybody. We had variations of Rushman and Corbin Carroll. It's a 99. Christian Javier. Camilo Diaz. Vladimir Restituto. It's a 75. It's Otto Lopez. Jace Young. U. Andrew Vargas. Roger Gariaz. Spencer Jones. The 50. The 50. Arias. Lindor to 25. Heston Kirstad. Jersey. Autos now. We got base autos. Welbin, Francisco. Luis Reyes. Miguel Tamarez. River Salinas. Juan Corneal. Jonathan Enriquez. Kennedy Corona. Jesus Bougarin. Mike Coyado. Miguel Tamarez. Luis Rodriguez. Christopher Torrid. Juan Olboz. Wilfredo Intunez. 499 Chase Astep. Avneri Rebe. Alfredo Duno. Jesus Bastidas. Johnny Carone. 299 Carlos Rodriguez. The 250. Braylor Guerrero. Miranda Rivera. The 75. U.S. Varsulita. 25. Leonardo Bernal. And then to five. Rainer Arias. 4-5. How to do it for the break, everybody. Thanks again for the fill. Up next is Bowman Draft.


I got a word. I got a word. Went to transformation church a day and boy, what a word. It's just hard to imagine this guy being a Christian. There's a famous quote by Charles Burson says, a time will come when instead of the shepherds feeding the sheep, we'll have clowns entertaining the goats. Well, I think that time is here. Oh, why y'all ooing an eye? Y'all seen this 40-foot tree peline in here? Far be it for me to say who's saved and who's not saved, but sometimes people just give you signs, give you glaring declarations of who they are, and sometimes you ought to believe them. You ought to just trust the sign sometimes. And with him, with Mike Todd and that church, it is hard to imagine that this man is a Christian. Now, I do use one of his statements quite often. I think it's a very app statement to use in many cases.  Tweet that.   And I think this was happening here. Matter of fact, I don't even, I don't think we can even say that that he looks like he's saved. He didn't act like it. And then the people that are there, they go there for this show. This, what he is, is a carnival marker. What he is, is a ringmaster. This is a circus. And like he says, clowns entertaining ghosts. Maybe this is another clown entertaining other clowns or people who don't know any better. It's hard to even imagine folks that go there would actually want the word. Here's what the Bible says. Peter says this. He says like newborn babies long for the pure milk of the word of God, for the word so that you may grow in it and respect the salvation. If you have tasted the kindness of the Lord, that's indeed if you have tasted. It's hard to imagine that these people have. Thank you Lord for my word. Thank you Lord for the word. Y'all look at my word. The irony of him saying thank you Lord for my word. Well, it's not the word. And then just think about this. A giant 40 foot trampoline in the middle of the sanctuary where people should be sitting to hear the word. You have this there to put on a demonstration, put on a show. Look what God has given me. Big old word. An expansive word. I'm sitting on my word. But the potential for this word to actually take me higher is based on what I do after I get it. The word of God, and I think he's speaking that he's got some sort of individual word, some sort of prophetic word, their own little private interpretation or inspiration from the Lord is what he's speaking of. But the word he should be focusing on is the word of God. And in that regard, none of this stuff is to be applied how he's using it. And most people, when they get a word from God, it's not a catalyst to take them higher. It's something that becomes pressure that they get under. Oh, you weren't expecting the example to go here. We were expecting you to do any and everything. Why? Because that is who you are.  You tend to make a spectacle of the sanctuary. Yeah, put these over here. The whole lot of hostess. Okay, here. How far on the edge are we gonna go? I said we're gonna do everything short of sense. And I'm thinking about how unequipped I am and how much team I don't have and how many how many people have left me before. And so now I'm under the word. Just out here obeying God. Trying to get this word off the ground. Trying to get this business off. How come every time these people get a word, it's something about them doing something like growing a business or increasing their income. Something that's positive as far as they're concerned. Something that, you know, it's a good word. They never get a word that says from the Lord, study more.  They never get that kind of word. They only get words to speak about how good things are going to be. Just step out. It's really, their word is more motivational than anything else. This is a complete different experience. I will believe what the word has said and what he said over my life. And some of y'all are scared. How many of you all knew that once you saw this trampoline in the middle of the sanctuary, at some point in time, Mike Todd would get up on and jump it. I mean, I did. That's to be expected. You're going to use that to put on some sort of performance. Because you've never jumped that high before. You would rather me get on a word of God and sit on it. I think what we'd rather you do is to get the word of God, to read it, to teach it, and to lead by it. Lead yourself by it.  I've never been able to dunk in my whole life. But if you give me this trampoline, 10 feet, 12 feet, you can take that mug up to 14. Keeping in mind, this is a pastor.  Not like this. In all your behaviors. Why? Because it's written to be holy. Why? As the Lord, your God, as he is holy for I am holy. Be that way. Be different. Be set apart.  But instead, we've got this person who wants to be like the world. He wants to entertain the world. It's time for you to stand on the word of God. And this is the thing. It takes action from here. Now, the irony of what he just said is time for you to stand on the word of God when you're not even using the word of God. But it's time for you to start not just standing on it. I'm going to write the vision. I'm going to tell people about it. I'm going to be known for it. It don't even have to actually happen tomorrow. But I'm going to have faith for it. I'm actually going to build my stamina. I'm actually going to do seven days. So you listen. The fact that you would do that, all this is, is a show. But I'm going to have faith for it. I'm actually going to build my stamina. I'm actually going to do seven days. So you listen. But what would happen if everybody started flipping on the things that God told them to do? What if we started getting high? We would be like a city on the hill. Oh, we would be able to be seen. And that's it. We would be able to be seen. That's the whole thing that you're after. Let's just tell the truth, Shaman Devil. It's what you're after.  That's all you care about. You're not after the souls of these people. You're not after these people learning and growing in the Word of God. Why? Because that's not what you go to Transformation Church to do. That's not why you don't go there to get that. You go there to get this, what we're seeing here. Thank you for being with us for the last nine years. But if you don't have faith to stand on God's word, I don't need you in this next season. And then these are harsh words, but your whole ministry is trash.   Entertaining goats who they themselves may very well be clowns as well. You don't have anybody there in your ear you've complained about. We should just pray for you, which we have that the people around you would tell you what's right or wrong. Well, they don't. Clearly you have no, you need adults of provision and there are no adults around you. You've got people there who don't know the Word of God. You bring on people to your church who don't know the Word of God. And you bring in other people who to come and watch you not know the Word of God. Further giving them the credence, further giving them the validation and live their lives without the Word of God.   You are an embarrassment to the body of Christ. I don't think you are a part of the body of Christ. If you are, maybe it's possible. It's possible. It's possible that you could be.  Tweet that.   That could be the case or it may just be what it looks like. You're not saved.  And so like Paul, I'm with him, 2 Corinthians 11-12. And what I'm doing, I will continue to do in order to undermine the claim of those who would like the claim that in their both admission that they work on the same term as we do. And for Mike Todd, he does not. We are not on the same team. He has no interest in promoting holiness. He has no interest in promoting the Word of God. He has only the interest in promoting himself. As a matter of fact, have you ever noticed when you watch Mike Todd, when you watch his sermons, when you watch his shows, where you go to, I'm saying his sermons, his shows, his group meetings? Have you ever noticed how often when he's there, he dresses to match the environment? That's why you see some of these little weird, these little shenanigans that he does such as pouring syrup on the altar or what have you or I guess that altar, pouring syrup on the Bible. That's a thing now. I lift my hands to give you the glory. I lift my hands to give you praise and we will praise you. It's just a temple, syrup all over the communion. Don't care so much over the Bible too.  Let me. For having the little goggles with having the little 4000 apple goggles, whatever those little things are, all of the all of the shenanigans that we see, we miss what he's wearing because we see the little shenanigans, but he dresses just like the environment. They spent all this money to fix up the stage and to then color coordinated with his outfits. That's because appearance matters him. That's why he dresses the way he dresses. He's a flamboyant clown. He is just like a clown is he brings attention to himself with those bright colors and the foolish things that he says to entertain people. Like Charles Bergen says, he's entertaining.  And we look around the country and we see all these other churches doing the exact same thing. And we call them churches for lack of better work. They're not churches. These organizations, these community gatherings is what they are. And they're doing the same thing, trying to entertain people. The Bible is clear as far as we're concerned. These are people whose mouths must be silent, who subvert whole houses, teaching things which they ought not fulfill the look or say. I promise you there is big money in this. I'm not against a church bringing in offerings and so forth, but you want to keep up this show. You want to keep up this charade. And so in order to keep people coming, what do you have to do? You have to do more. Whatever you did this week, you've got to outdo it that week. And then the next week and the next week, it's just like a circus. I remember back in the day when Ringling Brothers and Barnard Bailey circuits come to town and they would put on the show for about a week, week and a half. But after a while, people would get tired of seeing a monkey jump through a hoop. After seeing the same old dog and pony show, people jumping through hoops and trampling artists like we see here. That circus would have to get up, pack up and leave town because folks get tired of that. Well, not here. They're not going to pack up and move.  Another act in the three Ring Circus for them to put on. Never the word. The word is not on display. Find someone that goes there and says, man, this word is so deep and so challenging. We learned this about sound. We learned this about me and my. We understood this about this particular dispensation. We understood this about the Holy Spirit, how he works. We understood this in the word. We don't get that from there, which is why that is not a place for anyone who loves the Lord to go. It's a dangerous place. Yes, colorful. There's lighting. There's music. It's a festive attitude.   And this is why every believer needs to be pointing these things out. Warning folks, moving folks away from that, steering them towards places where the pastor, the preacher, the church is helping folks to learn the scriptures, guide them in the scriptures, and they have a healthy appetite for the scriptures. And just when you think that Mike Todd couldn't do something to outdo the last thing he did, he's going to always prove you that he can and he will. And for that reason, leave him alone. Stay away from this person. Leave and never come back.


We're going to analyze the behavior of this sequential circuit containing a D flip-flop and a JK flip-flop. And this analysis is based on the evolution of signals given in the right-hand side. At the bottom we see the clock, and here we see different signals that are part of our circuit. The main observation here is that both flip-flops make a transition when there is a raising edge of the clock. So the trick to analyze this type of circuits is to focus mainly on the value of the signals right at the instance before the raising edge of the clock. And this is precisely what we're going to do. So at this instance before the edge of the clock, we know that x has the value 1. If x has the value 1, it is enough for us to deduce that D has also the value 1. We also know that A and B, as given here, have initially value 0. A value 0 on the output of this latch implies that the opposite value is coming out of this output. And therefore, we have a value 1 in both the J and K signals of this flip-flop. After making this analysis, we can translate this data to the diagram. So we say that D becomes 1 right before the edge. We know that J and K have the value 1, and therefore we can draw them like this, J and K. And now what we have to do is apply the transition rules for both flip-flops. So in the case of the D flip-flop, a 1 in the input means that this one will become the output immediately after the edge of the clock. In the case of the JK, a 1-1 value in the input means that in the next stage, the value of the flip-flop will go to the opposite value that had before. What we know now is that A will become 1, so we can deduce this transition immediately after the edge, and this 0 will become 1 because the 1-1 combination here inverts the value of the output. So this is the value of A and B after the clock. And we can reflect that also in the diagram. Now from here, what we do is reevaluate again the entire circuit. But now we have to go to the second edge of the clock right here. And we go precisely to the value before the edge. In that value, before the edge, the value of X switches from 1 to 0. And now we can recalculate the additional signals. Like for example, if we have a 1 coming out of this output, the opposite value that this is 0 will come out of this output, and therefore it enters the JK flip-flop, both entries are set to 0. And as we can see, this value 1 over here, when going through this gate, produces also a value 1 in the input of the D flip-flop. So we can reflect this change in here, saying that D remains 1, J and K go to 0, and A remains to 1 all the way through here as well as B. And now we apply the same rules again. Now with this in mind, whenever the edge of the clock comes again, we know that this flip-flop will maintain this value because it has a 1 in the input which will be translated to the output. And, very important, this flip-flop JK has the value 0 in both of its inputs and therefore what it's going to do, it's going to remain with the value 1 at the output. Therefore, in the instant, immediately after the clock edge, this is the status of these three signals, A, B and X. And as we can see, X will remain 0, this is an input, A and B will remain 1, and the only thing missing is to recalculate the values, but as we can check, they both remain exactly the same. That is, D remains 1, and J and K remain the value 0. And this is the end of the analysis.


The next tech selection is the most important and I'm just going to ask you to read the entirety of it, substrate specificity of enzymes, and then once you do that, try and take those terms and apply them to the model system we have. What you literally do is going to be the same, but we should be able to apply more terminology to that process.