Hello friends. I am Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. In this video, I'm going to explain and demonstrate the use of data type in Apex. So we will be discussing how to use primitive data type, S object collection, then enum, then user defined Apex classes and system supplied Apex classes. So all these we can use as a data type in Apex. Now before starting, if you want to watch more Salesforce related videos, like flow, workflows, process builder. So all these videos playlist link you can find in the description of this video. And in my previous video, I explained you about introduction of Apex. So let's start with primitives. So these are some examples how we can create primitive variables. So primitive data type is Boolean integer decimal string ID and is active numPrize as an ID. These are variables. And we can assign related values to these variables as per the data type. So now let me take you to developer console. So in my previous video, I also, sorry, I already demonstrate to you how you can open this developer console and how you can create a file Apex file in this. So if you want to open existing file, so you can go to open. And here you can see various components like classes, trigger pages, page components, objects, static resources, packages. So if you click on class, so all related classes will be available here. Now if you want to create new class, so you can click on file and choose Apex class. So I'm putting name as data type demo, right? So let me first give you brief idea like how we can create class and how we can create instance of the class so that we can execute constructors or methods those are defined inside the class. So first I'm going to create its constructor. So this way I'm defining constructor and inside constructor and writing system.debug. So whenever you want to print something, so you can use system.debug in Apex. So this way I created this constructor. Now to execute this, I need to open execute anonymous window. So here I'm going to create its instance. So data type demo equals to new data type demo. So as we create instance, so automatically its constructor will be called. So there are two options, execute and execute highlighted. So if you want to execute all the statements, then just click on execute. Otherwise you can select a specific statements and then click on execute highlighted. So right now I'm clicking on execute. So when it is executed, so you can move to log and you can open this latest one. So in the latest log, you can see that output. So you need to click on debug only. So here you can see system.debug printed. I am in constructor and this three is showing line number. So at which line that system.debug is available in the Apex class. So it is on line number three. That's why output is showing three as line number. Now here you can see one more option open log. So if you check this checkbox, so automatically logs are open. So we don't need to click on the logs. Those are generated. You just need to click on debug only so that debug results will be displayed. So this way you can use constructor. Now I am removing this and I'm going to create a method for this. So I'm writing public white. And inside this I'm writing system.debug. I'm in method. So methods are not executed directly. We need to call them. So after creating instance, you can call your method. So again, I'm clicking on execute. So logs are automatically open. I'm clicking on debug only. So here you can see it is showing I am in method. So this way you can create constructor as well as methods as per your requirement. Now I'm going to create a primitive. So let's say I'm creating Boolean variable B. And inside this method I'm assigning true in this Boolean variable. And after this I'm writing one more system.debug. So B equals to 10 plus B. So this is the way you can print variable as well as text. So whenever you want to display text, you need to enclose it in single quotes. And then for separation plus and then variable. So remember one thing, all the strings which you want to display must be enclosed in single quotes in case of apex. So this is a primitive variable. So this way we can create comments as well. So this is primitive data type variable. So Boolean is a primitive data type and its variable is B. So inside the method we assigned true in B and then we are printing it. So I'm saving the code moving to execute this code. So I'm clicking on execute clicking on debug only. So here you can see I'm in method and B equals to true. Both the messages are displayed. So this way you can use any variable like which is of primitive type. You can declare it outside the method so that you can use it inside any method. And if you want to create local variable, then that is also possible so that you can create inside a particular methods so that it can become local. Now moving further. So this way you can use these primitive data types. Now comes specific S object. So S object is very important in terms of Salesforce because whatever we create in Salesforce, it stores under a particular object, right? We create records. So records are directly associated with the objects. So we have two type of objects standard and custom. So in first line you can see standard object variable creation is mentioned. And in the last line you can see custom object variable creation is mentioned. And if you want to assign values to the fields related to a particular object, then you can use two notations like in parenthesis, you can use field name and you can assign values directly. Otherwise you can use the variable name like ACC then dot and then field name and then you can assign the values. So let me give you this demo as well. So I'm creating variable for account. So this way I'm creating this. Then ACC dot name. So here you can see as you put dot. So all the related fields of account object will be populated automatically here. So you can choose them directly. So here you can see I am assigning test in name field of account object then ACC dot phone. This way I assign test and 123456 in two different fields of this account variable. Now if I want to display it on output. So what I can write account equals to then plus ACC. So if I print ACC variable directly, so it will be displaying both name and phone because we provided two values as of now. So this way I implemented this. Now I'm executing it. So that we can check the output. So here you can see account name and phone both are displayed. So this way you can create variable for S objects. So right now I created object for standard object similar to standard. You can use your custom objects as well and you can assign the values further. We can apply DML operations as well. Like if you want to insert this account into database so you can use insert. You can use update. You can use delete. So all those DMLs you can apply here. So right now we are not focusing on the DML part. So that will be available in the upcoming video that will be based on DML. Like how we can create a new record through a fix, how we can update the record or how we can delete a particular record. Right. So those operations I will be demonstrating in another video. So here I think you understood how we can use primitive data types and how we can use S object as a data type in a fix. Right. So you can try it in your developer console. So I demoed you standard object. You can use custom object as well. Now one more thing that is generic S object. So right now I created specific account variable, but you can use S object as a data type. So for example, here I can write S object. And OBJ. So with this example, you can see I'm passing name equals to test inside the parenthesis. So account variable will be created and its reference will be stored into S OBJ one. Right. Now further, if you want to access the values, you need to typecast it. So let's say I'm writing name equals to test here. Removing these statements. Right. Now I need to typecast. So what I need to write account ACC equals to and then inside bracket account and then so OBJ is a variable of S object type. Right. It is having reference of this account, but now we need to typecast this OBJ into account so that through ACC, we can access its particular fields. Right. So without having specific data type, you cannot access the fields. So whenever you use a generic S object, so you need to convert them into a specific S object. So now if I execute this, so it will work appropriately. So ACC will be displaying name only because we didn't provide it phone number this time. So here you can see name equals to test. So this way you can create S objects. You can use S object as a generic data type and then you can convert it to a specific. Here you can read the note. One of the benefit of casting is to be able to access fields using dot notation. So once you have casted your generic S object into specific object, then only you can use dot notation, which is not available on the generic S object. So this you need to remember. So what is the benefit of generic S object variable? So we can use them to refer more than one specific object. Like here, I used this OBJ for referencing account, but after typecasting, I can use any other object like this. OBJ equals to new, let's say contact. So this way I can assign the reference of contact into OBJ and then further I can typecast it into a contact variable. So that way we can do this also. And one more thing, whenever there is any error, so you can see this red exclamation sign will be there and you can go through with your problems like this way. So here you can see it is showing duplicate as a duplicate OBJ variable. So we need to remove this as we declared this variable already. So we can just use its name without using any data type. So now you will see this error will be removed. So this way you can use these generic S objects. Now comes list. So there are three more data types list set and map. So in this video, I will be discussing them briefly, but in my upcoming videos or in the playlist of apex, you will see separate videos for list map and set. So in those separate videos, I will be explaining each and every method related to these data types. But here we will discuss briefly about them. So first of all list, it is an ordered collection of elements. Each element of list has an index for identification. Index position of first element is always zero. List can be nested and even multi-dimensional. Elements can be of any data type. So if you want to create a list, so you can create list for primitive for collection for as object for user defined data types or for built-in data types, built-in types, right? So user defined types and built-in types here refer to classes. Now how we can create list. So here you can see list of string. So it is primitive. So list of primitive, then list of accounts or account is S object. So list of S object, then list of integer. Integer is again primitive. So list of primitive. So this way you can create various kind of list. And even you can query the data that is available in the objects. So at the bottom, you can see one query is mentioned here, which is querying account ID and name and storing it into list. So whenever we query data from apex objects, so they return list of records. So we can use list of a particular S object to store those returned value. So now let me give this demo as well. So what we are going to do, we are going to create list of string. So this way you can create variable for list. So here let's say I'm writing str list. This is the variable. So list is data type. So list of string is now completely a data type. So we are creating collection of string, which will be stored inside str list. And this way we initialize it. Now to add values, we can use add method. So what we can do str list dot add. And here we can write, let's say, then str dot str list dot add. Then we can write. So this way you can put the data. And if you want to display it on output screen or in the logs, so you can write list contains plus str list. So both A and B will be displayed as output because list is containing these two values only. So again, I'm going to execute this. So debug log will be opened automatically. I'm clicking on debug only. So here you can see list contains and in parenthesis, two values A and B are displayed. So this way you can create list accordingly. Now let me demo you how we can create the, how we can query the reports from the database. Before that, focus on these as well. So here you can see my list dot add. We already discussed. Then if you want to get a particular index value, so you can use get method. If you want to add a particular, you can add, you want to add value at a particular location or index, then you can use add index comma value. If you want to clean or clear your list, you can use clear. And if you want to identify the size of list, you can use dot size. If you want to check your list is empty or not, so you can use is empty. So all these methods, we will be discussing in detail while I will be demonstrating you the use of list in a separate video. So don't, don't panic. Like I'm not explaining list in detail because for that, I'm going to, I will be preparing a new video for that. So right now I'm going to explain this last line, how we can query the data. So here I am writing list of account. ACC list equals two. And here I am writing select ID name from account and I'm writing limit two. So only two records will be query, right? So this is actually known as SOQL. This is actually known as SOQL. So we are querying the data which is available under account object and that list will be stored inside ACC list variable. Now I'm going to display this. So this way you can end this list. And one more thing apex is case insensitive. So you can write things in uppercase or lower case that doesn't matter. But try to follow the case sensitive nature because that is better to understand. So if you have written, let's say ACC list like this. So always use further in the code like this, like Alice capital and other letters are small. Don't write ACC list in all capital. So follow that notation. Even if apex is case insensitive, right? So now I'm going to execute this. So you will see two records will be received with this ACC list variable and those will be displayed here. So here you can see this is the first record ID name, Jen point. And this is second record. ID and name is United Island based gas UK. So two records only returned into the list because we already mentioned the list as sorry limit as two. So this way you can use a list of account or list of any a subject so that you can query the data and you can store them into a variable. So I hope you understood about basics of list. Then on set. So set is an unordered collection of element. It doesn't contain duplicate elements. So in list, we can store duplicates, but set doesn't contain duplicate elements. Set can contain collection that can be nested with one other. Sorry, within one another. Then elements can be of any data type primitive type collection as object user defined type burden type. So this way we can create set. So in place of list, we can use set as a data type. So set of string set of ID set of integer. Similarly, like we added values in list, we can use add values in set as well. We can remove values directly and we can check whether a particular value exist in set or not. Then we can check the size or it is empty or not. So same way we use list, we can use set as well. So again, I will be creating separate video for set as well so that you can understand the proper working of set through that video. Moving further next data type is map. So map is a collection of key value pair. So here we have two entities key and value. So keys are always unique having a value associated and value can be duplicate. So keys are unique and values can be duplicate. Then apex uses a hash structure for all maps, adding a map entry with an existing key over at the existing entry with new. So map key and value can contain any collection and can contain nested collection as well. Then key and value can be of any data type. So you can use primitive key or value. You can use collection as key and value as object user defined types, built in types. Right. So this is the example of map. You need to use map then string comma string. So a first string will be considered as key and second will be considered as value. This is the name of this map and then instantiation of the map. Now how we can put the value. So you need to use put method. So one will be key and first will be the value. Then two will be the key and second will be the value. So let me create this so that you can have its flavor as well. So map off string string. So demo map is equals to new map string comma string. Right. Now demo map dot put one comma first and demo map dot put comma second. So this way you can put the values. Now if we want to debug this make to check to check what is available in the demo map. So demo map equals to plus. So this way I created a map whose name is demo map and I mentioned key and value pair. Now I'm going to execute this so that you can see how output of map displays. So here you can see demo map equals to inside curly basis one equals to first and two equals to second. So one and two are representing key and first and second are representing as values. So this way you can use map in your apex and you can also use map with the s object. So let's say you want to store ID and account records together. So you can create map of ID comma account then how you can store the value. So here first I have created list of account then I converted that into map. So if you pass if you pass list as an argument into map so that will be converted into map. So this way you can use and in third example I'm using map of account comma list of account list of contact. So here account will be key and list of contact will be values. So this way inside a map you can use list as well as values. So this way you can use a list set and map. So in this video I just gave you brief introduction about set map and list but they are very much important. So for that purpose I'm going to create separate videos for them. So those will be available with the playlist apex and Salesforce. So do watch those videos as well so that you can understand their working in detail. And last one is enum. So enum is an upset data type. Enums are used to define a set of possible values after creation of enum. One can create variables methods. So one can create variable method arguments and return type of that type. Right. So this is the simple example. So we rarely use enum. So I'm just explaining this here only. So public enum. Enum is a keyword. So weekdays is the name of the enum. Then these are the values month, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Now if you want to create variable for enum so you can use weekdays as a data type and W as a variable. Then weekdays.monday. So we are assigning Monday to W. Now we are checking W with weekdays.q. So if both are equal then W will be returned. Otherwise not. So this way you can use enums to create symbolic constant values. Right. So we rarely use this enum. So you just need to know like we can use enum in epics, but we don't use it frequently. Right. So this way I explained all these things in this video and user defined classes and system supplied epics classes. These you can use as we used as objects. So you can use name of class and then you can create its variable. So as I demonstrated you how to create instance of particular class in anonymous window. So in anonymous window what we did we created data type demo. D equals to new data type demo. So same statement you can use in a particular class. So what you can do if you have created one class so you can create it its instance into another class. So this way you can link more than one classes together to use method of a particular class into another. So this way we used a demo method of this data type demo class. So we can write the statement in any other class as well. So that is what I want to say like user defined epics classes and system supplied epics classes. So these are also known as data type when you create variables for them. So you can use them as well in your epics classes. So this way I hope you understood about the data types which are available to use in epics classes. So along with theoretical explanation I tried to show you each and every example in form of demo. So you can try it in your demo or so that you can get familiar with all these data types. So if you want to watch all the videos related to epics and Salesforce so the playlist link will be available in the description of this video so you can follow that. Thank you for watching this video.


Well, good morning. Thank you all for being here. We're going to price something a little bit different this week We don't have a theme a bunch of people here to talk about a new initiative But as we appear to be reaching the end of the legislative session I want to take some time to reflect on the work of the legislature as well as my team have done for the state of Vermont as you recall in January I shared my belief that we could set a standard of civility and good government that would be an example across the country That we could remind a completely Polarized country where too many see their side is always right and the other is always wrong That there is still more that unites us than divides us and that compromise is not a weakness, but a strain. I Committed to focusing on areas of agreement I'm working towards consensus and compromise when we can and to listen to all ideas to grow the economy Make Vermont more affordable and protect the most vulnerable And I asked lawmakers to give my ideas a fair shot To hear us out and to work with me to keep the focus on the merits of our proposals not political scorekeeping Today I want to thank the Legislature for doing just that Together we set a positive tone focused on the issues and we've already come together to show that good policy makes That that we've been Utilizing comes true with balance and collaboration One example is a bill I signed this week that will allow the Department of Financial Regulation to consolidate our licensing statute By over 70 pages which will lead to better compliance and more efficiency. The truth is Probably this bill wasn't covered this week And won't get much attention Because it doesn't sound all that exciting and there wasn't any drama surrounding it But it's against an example of good government and what we can do when we work together Another example is the budget adjustment act I signed It includes many good initiatives and retired and interfined loaned that will take care of part of our debt Again an example of good government in addition when we don't know where we'll end up We've made progress this session in addressing our demographic challenges by leveraging our assets and focusing on workforce development for starters The administration the house and Senate have made significant investments in our cradle to career education system by helping working families access high-quality child care Both chambers have also support higher education in order to keep opportunities when they're with you reach for Vermoners wanting to go to college In the area of workforce development the legislature has moved forward with many of our recommendations to fill the good jobs We know are available right now and recruit more people to Vermont knowing that we can't address the challenges through training programs Every job we fill Take some of the tax burden off someone struggling to get by Now I think we all recognize in these final days Tensions will rise and there will be areas where we just can't come to agreement I've already shared my concerns about raising taxes and fees above and beyond what I proposed and We're looking at more than a $50 million surplus and a potential revenue upgrade But disagreements are okay. It's just part of the process and we'll work our way through it Regardless of the end game drama and tension I think we prove it that the spirit of genuine collaboration Of a good fate give and take with a civil tone that we practice this session are important Because with the demographic challenges We all know exists in the growing budget pressures along with the economic challenges too many of our 251 towns cities and village are challenged by We must do all we can together to solve the problems our state faces and help Vermonters who elected us I'm hopeful we'll close out this session feeling on both sides Like we took important steps forward for Vermont and we'll be ready to do so again next year So again, I send my thanks to legislators my team for all the good ideas and hard work Still yet to come so with that be happy to try and answer some of your questions What are those areas where you think you just won't be able to come to agreement? Well, again, I think I've laid this out a bit especially when we're seeing revenue upgrades for this It appears will have no less than a fifty million dollar upgrade I mean I mean in terms of revenues or surplus So with that in mind, I'm not sure why we'd be contemplating raising taxes If we can if we can utilize a simple to that surplus I believe there'll be a consensus forecast probably in July that will upgrade that Further base spending so I just think at this point in time we should take a look at what we're proposing and we you know as you recall in the initial original budget that I proposed We didn't we live within our means and had everything that we're contemplating right now within that budget leaving aside the Pay-lead legislation what taxes have you identified in the budget in the revenue bill that you find? well Again, I think the the open question really is Water quality. I think that's the big one The initiatives with water quality we have included in our regional budget and that now They're looking for different sources To come up with the eight million dollars that they they need to satisfy that so I would say that that's a problematic area Software to not start yet. You know, we've been through this a few times I remember when I was in the Senate we started talking about it when I was lieutenant governor We debated this and in the Senate decided that we weren't going to cloud To Texas cloud so from my standpoint, I think that would be problematic again Considering that we have a surplus coming And we'll have I believe an upgrade in and base spending so I We could we could forecast that and we know we have the money We should we should look at that source so you can live with the budget that they've got right now leaving aside The water quality stuff the budget I mean there are some areas I yeah, I mean they're not spending a lot more than what we had contemplated now They left a number of things out, but that's okay. I mean we can we can work our way through it But again, I think that the big one is the the water quality issue because I think we need to find I've said that we need to fully fund the water quality initiative I think treasure Pierce laid that out in her letter to the legislature as well Now to fund it through the natural well again, I propose Utilizing the one source the estate tax that's in the in our budget and They they decided that they didn't want to go with that route, but Considering that we have more a general Coming to surplus and as well this I believe will have a consensus forecast so upgrade that we could utilize that Use the estate tax So you'd like to use this I mean it's coming you know be coming out of the general fund so we could Everything that they they have used because they use the money that that we had we had contemplated They used eight million dollars that was in the estate tax so we could use the estate estate tax again And use the satisfy some of their Backfill the general right because that's where they take it right money Um Have you begun that end of session intensive negotiating that happens? I don't know if it's intensive, but we've we've met a couple of times It looks like in some cases they are Again, there's a lot going on a lot of dynamics a lot of bills that have yet to be finalized So we'll see where it all ends up. Have you provided them with a minimum wage increase construct that you would be able to get Again, I'm looking at the aggregate and I say this a lot, but but it's real when you look the aggregate burden on Vermonters whether you're looking at The pay family leave whether you're looking at the increase taxes Whether you're looking at things outside of even our budget the burden on on Vermonters like the 15% Blue cross blue shield Upgrade their income Upgrade their their request to increase those rates. I mean that's that's going to impact Vermonters So I find that on the except house Democrats are hoping that you could get behind the 2026 At the earliest $15 minimum wage increase the slower rollout. Is there any, you know chance of you supporting that this year? Well, again, I'm looking at everything in the aggregate and I'm not sure where we're going to end up There's suffice it to say I'm not going to agree with everything Well again, we we I voted for that when I was in the Senate To tie it to the CPI That we were never going to have this conversation again if we tied the CPI and raised the The minimum wage here we are having the conversation. So again, I've voted for that We do have an increase in the minimum wage. I believe that natural growth in the economy is the answer It's not my initiative to raise the minimum wage as you as you well know. I mean I beat it that last year the You can you talk about the aggregate in that makes perfect sense, but you get the bill is one of the time So you have to make a decision on each individual point Is this is this the way of holding your cards close to your vest? Well, I don't know if it's the decisions when you get individual bills You know we're wrapping up. I mean there are some I think who believe that we'll get out of here on If that's the case then they will all come once and we'll be able to take the aggregate at that point Um, you've got a few days to sit with the abortion rights bill that has to be said We're gonna do it again. Yeah, I'm again. That's that's difficult in some respects. It's a very emotional issue for some You know, I'm pro-choice. I believe in a women's right to choose. I think we're seeing in real time Nationally the fears of many what's happening across our country and in the visual states So I believe we need to Women's right to choose. What are your thoughts about the governor's decision to sign the legislation in Alabama that makes that states? well, again, that's extreme in the opposite direction and I Again, I'm pro-choice and I believe in a woman's rights to choose So supply to suffice it to say I wouldn't be signing a bill like that in this day You signed this bill publicly I have made a decision on signing anything in public at this point in time There's a lot of bills coming in a lot of requests. So I will I'll take a look at it Sure, we haven't received the bill yet by the way What what you said you uh Support women's right to choose if you think it's important to protect those rights What's the downside of this legislation what about it is giving you pause to say Well, it's just emotional for for many people. I mean we see it. I mean and it's not just for Republicans to be honest with you I mean I have I have Democrats who are writing to us and saying, you know, this this is uncomfortable for me and You know for me in my standpoint Again, believe in a woman's right to choose and I believe that Governments should stay out of it. I don't believe that this is something that we should be involved in so This is a this is a time when this between a doctor and a woman And we should not be involved in this so I guess I'm just trying to take the emotion out of it as much as possible and reflect on that and and we'll see what what I do, but So what are your reservations or your reservations that the protections may go too far now my my I think what I'm I'm feeling from Some of the reaction that I'm receiving from many constituents across the state That they're just uneasy about this even though this is what we're doing right now. I mean, there's nothing that's changing It's just codifying what's what's in practice. So just trying to get people to to Understand that this is uh, this is something that's being done right from out right now But they need to get comfortable with it. Why are you being so non-commentals that you didn't until the end of the session I'm paid them to believe in a way Guns abortion like you're still not ready to say Well, I think they need to work it out. I mean we're seeing there's a a lot of difference between the house and the senate This isn't just about the differences between the legislature and the administration or me They need to work out their differences first and then I have something to react to I You know, there's their bill and they have worked out the differences. Yeah, and then you're still not Well, they haven't they haven't taken a final vote on the on the gun bill yet So where are you on the gun door right now? Again, you know, I'll I'll when they when they pass it. I'll take a look at it I've been going to look at Some of the data. I haven't read the bill completely yet. I'd like to look at the data to see See if it it holds up Is it safe to say you would veto or pay me bill if it was if the program is funded by an mandatory payroll tax Yeah, I'm not in favor of the payroll tax. So that's it. Yes, you would well Again, I want to look at things in the aggregate and see where where the burden The financial burden is on parameters, but that's a big burden for guys. You remember As you might recall last last year, I vetoed the pay family leave that was supposedly only 16 million at that point. I mean, I think that was the All-in 16 million and then it grew to 80 million I think in the house. I think the senate is 27 million maybe right now In my plan volunteer Voluntary plan That is universal Has zero cost Senator rude told john his column this week that by you sort of stepping out of the Legislative session that you sort of said the democrats amongst themselves in fighting And we certainly seen that play out. Was that intentional?  It's more civil regardless of where our disagreements are. We're talking I mean, I think that's important. So I I think it's intentional. It was intentional for me to get to this point where we're still talking And I think that's important. Does that change your approach to Detoing not vetoing a bill If you are, you know, if If you are being more collegial more cooperative Well, I certainly ends It enters the equation. I mean, I'm trying to do whatever we can to work together. So I'm not trying to be out of this area I did that last year and I'm not sure that it worked out all that well Oh, one of the things we're not talking about is what you've characterized as unsustainable growth in the education fund Do you have any concerns that that is? Yeah, absolutely. We're spending 67 or the last year and there are fewer students So that continues to grow but I didn't I didn't find a whole lot of partners in trying to to limit that growth Last year and we had a lot of ideas on what we could do There wasn't a lot of interest. So, you know, you need to move on I mean, if this is what what they want and they have the majority They can they can do what they want. So I have to pick my battles And we're trying to work towards areas where we have common goals and and work from there The other thoughts on what's become sort of merge special education and high 46 the lids Do you think that that bill is important that it gets through the session? Would you like to see it delay in the special education reforms? You know, I I was I thought There was going to be a delay in the beginning and again, I was supportive of that Um, I still am supportive of a delay if they can come together But but you know, we're getting closer closer to July one And uh, you know people need some time And and I believe that we're our agency of education is trying to help Communities and districts uh adhere to the law which is why one I think you've had uh, it's s 49 Pia foley bill. I think that's been on your desk for a few days Oh, yeah, yeah, there's a few yeah, it was that was yesterday. All right. Yeah But there's a few more there's a few more bills today. I'm gonna have to look through. Okay Better do today, I believe So it doesn't sound like you're just starting to have those final conversations. It's not very intense You're taking that kind of a more hands-off approach Being upfront as you were before Is that about where we are right now? Well, again, it's it's a lot of differences between the house and the senate that they need to work out I don't know what to react to And I'm not taking sides on it. You know, there's there's an opportunity for them to to work out their differences And then you'll wait sure You given leadership any private Counsel on what you're willing to do or nothing Were they flying flying? I think I I'm answering the same question. So I'm answering here today In the same manner in the same manner. So they don't know what you'll do. I'm being transparent But not really because they don't know what you stand for don't stand sure. I've said that uh, you know I think we have to look at things in the aggregate It showed me where you're going with with all these bills and And then I can react but I I can't I can't I'm not going to pick in shoes and and as I think john or somebody has said, you know When these bills come piecemeal meal, uh, and I started uh, I started uh saying okay to this one Okay, the next one and pretty soon you run out of options So I I need to know where they're going But we're getting that point. I mean, we'll know a lot more I think if they are going to adjourn On saturday night, we'll know a lot more in a week Has it been productive to this point here? I think so.  I'm gonna do that. It was great I talked about you know, how collegial I think this has been productive it's been and it's been a lot of Good will a lot of good work has been done by all all the above legislators and and our our folks. I mean just the Working together in committees. I think it's been Again a willingness to listen to one another and I think that's regardless of the outcome I think that's been helpful and we can show Uh, the nation and others when there there's so much controversy and so much polarization that that's a different way Even if you even if you end up differently, you know, we can still we can still agree and we can still get along I'm sure neil would share his footage with you I Again, we'll see what the final product is But they're They're having their debates They're dealing with the issues the same issues that I'm dealing with and they're dealing with their constituents So, uh, you know, I've highlighted that that I believe that for mother's a burden That we have to live within our means. I think we have to focus on on workforce development They've been they see it as well.  So I think that's helpful Um, on the waterways, uh, clean up One option that I hear that the descendants considering Using this on the unexpected revenue to fund the water cleanup for one more year and then come back in in january again Would you refer to have a permanent source than a one time? Yeah, I would prefer in fact again I laid out a path forward the estate tax The federal government said that's uh, that's viable. We're okay with that if you want it. That's a dedicated source We're we're good with that. So let's just use the estate tax and we have general fund coming in Problem solved But mr. Nice guy doesn't mean you're not going to veto from um, whatever you think Brace that sort of aggregate for which has not been fine You're perfectly willing to veto stuff, right? Well, I think I I've shown in the first two years that I don't mind using the veto pen, but I've been You know, I'm not using that as a threat this year I'm trying to find a path forward so that we can get out of here Living within our means and giving Germanus what they want I'm going to jump it past this year without their success for you Well, no, I want paid paid leave with a voluntary plan. I want family leave. I think that's important I think it would be beneficial So I would like to see family leave passed by the voluntary plan And then you can always do something else with it. You know, that's the beauty of this plan You know, we can we can try it out. We can test drive this and and then we can see What the opportunity is the challenges are Within this plan and then if they want to go to a mandatory plan at some point in the future It's all in place and it's easy to do at that point You're not taking a car right out of the truck No You're going to which are you going to race this on or this season? I hope to do a few. Yeah I know I said, you know it appears the groceries and retailers are okay with it and It's passed by a wide majority. I'm Probably wanted to To take a look. I didn't see I don't believe No, I thought it was interesting though, I mean, I I don't know who else is going to to What their name out there? I mean, I've heard some other names floating around so I'm not I'm not ready to To get behind anybody at this point But I thought he was interesting. He's articulate very forthright Didn't agree with everything that he said, but but there were a lot of a lot of things I agreed with him on He's an interesting guy Oh, sure Yeah, yeah, I like there's a few charlie bait And maybe they'll run You guys do seem to be showing there's another way to Well, you know, I think If we're going to change the dynamics across the nation We all have to act appropriately in our own backyards. And I think that that's why I'm taking this seriously and I I believe In civility and I believe in respect and I'm trying to To show that we can do this in a different way again, we we're going to get to areas of disagreement And that's that's okay They have options. I have options And we'll just work work our way through it There's a climate people who are You know, but And Well, we know climate change is real We have to do better. We're trying to take some steps In terms of our infrastructure 60 of our carbon emissions who do the transportation So we have to take this seriously And we're we're doing some things this year in the budget and otherwise weatherization and so forth But we we've got to you know, we've got to pick our priorities as well I mean, we want to clean up the lake when we want to help for monitors and And again, it's all about prioritizing where we focus and We're doing what we can in terms of climate change But it's not enough to meet any of our climate goals Yeah, I mean We've got to Again, I I believe the answer is going to be in transportation when you have 60 percent of it carbon emissions Are emitted through transportation. That's where that's where it's at With the with many new initiatives in terms of transitioning to electric vehicles I think that's that's part of the answer. That's why we want to incentivize that Trying to to get more For monitors to adapt to that but we need the charging infrastructure at the same time To make sure that we have that in place when as we transition to electric vehicles Thank you very much. Thank you. Thank you


My family was forced to flee our home country, with no chance to return safely. Scared and alone, we registered as refugees. Luckily, my family was one of the few chosen to be interviewed for resettlement. First we went through a national security screening. Next came a health assessment. I was healthy, but my daughter had an illness. The IOM doctors made sure she was well enough to travel and could receive follow-up treatment in our new home. Then we received our visas. This was one of the happiest days of my life. IOM arranged our flights and pre-departure orientation. We learned about the education system, how to find work, and about local customs. The day came finally for us to travel and IOM was there to help. I was given a bag containing our travel and medical documents. I held onto that bag. It was our future to a better life. When we landed, IOM helped us through immigration procedures at the airport. It was daunting moving to a new country, but I knew my children would finally be safe. Globally, only one percent of refugees are resettled. When countries open legal pathways for resettlement, the door begins to close on irregular and dangerous migration.


Okay, move out. American citizen soldiers' weapons were pitifully inadequate by today's standards. His supply of powder and lead was equally limited. At the beginning of the Revolutionary War, the colonies fought for freedom with whatever shot and powder they could scrape together. But if it were going to survive, our infant nation could no longer depend upon small hand tools and forges. It needed a dependable armament source. Even after the Revolution was won, the need for an adequate source of armament remained. One reason was simple growing pain. The nation was rapidly expanding westward, and only with sure firepower could the frontier be rolled back. The other reason was defense. The young nation's integrity was imperiled time and time again, both from within and from without. As early as the mid-19th century, the young American Republic would feel secure in her ability to arm herself, for foundries and powder mills had sprung up throughout the country. Like the nation itself, they grew until they became the producers of the seemingly limitless supply of armaments devoured by World War II. The mini-ball, flintlock and powder horn, like this well-used powder tester, were the very best available in their day. Times have changed, but the need for up-to-date dependable firepower has remained the same. Today's armament is so complex that there's simply no room for confusion or uncertainty. This is the story of the streamlined and centralized system that keeps the Army's weapons combat ready, the story of the Army Munitions Command. The Munitions Command has its headquarters near Dover, New Jersey, at Picatinny Arsenal. It provides the Army with firepower for all its weapons systems. The task is staggering. It involves keeping firm control of 4,400 different products, and those are only the end products. Secondary items run to 44,000. Picatinny Arsenal is the Army's main research and engineering center for both nuclear and conventional munitions. Picatinny has lived up to its responsibilities, and that hasn't always been easy. When an unprepared United States entered World War II, there was no other plant in America that could produce anything larger than small arms ammunition. Picatinny had a two-fold job. It had to provide private industry with the technical know-how for the desperate fight ahead while it was filling the production gap by itself. The Arsenal turned out countless millions of munitions items, and at the same time trained thousands of workers in highly specialized fields. But that was years ago, and atomic age ago. Today, Picatinny, like all elements of the munitions command, is concerned not with the accomplishments of yesterday, but with the challenges of tomorrow. Challenges that the Arsenal's 7,000 engineers, scientists, and skilled workers have always been determined to meet. Back in 1953, a successful test of a new 280-millimeter shell opened a new era, the era of atomic artillery. But even with nuclear might, we still need conventional weapons. Research, development, and exploration. These bring about enormous improvements in existing weapons, as well as new ideas to keep pace with the future. Streamlining projectiles and redistributing their weight cuts down on aerodynamic drag. With a hollow base, there's more room for the propellant. Ballistic studies like this have led to range increases of 30%. Another idea for increasing range is to put a rocket motor in the base of the projectile. The motor ignites after the initial gun thrust loses its kick. Research and development have also heightened the effectiveness of munitions. Fragmentation, for example, has increased by 70% as a result of new materials. Totally new items have appeared, such as this anti-personnel mine or this new anti-tank mine. Research in many areas contributed to their development. Picatinny has perfected high-explosive anti-tank ammunition to the point where it will now stop any known enemy armor, literally melding a hole through steel. Here's something else that was developed and tested at Picatinny. Cartridge cases that burn up in the gun when they're fired. This promises huge savings in manufacturing costs because the cases are made from more plentiful materials. They'll reduce noxious fumes inside tanks and also eliminate the backbreaking job of hauling away spent cartridges. Here's a new development that looks like silly putty and behaves like flypaper. It's a plastic demolition charge that you can slap on your target like a band-aid. It'll stick to almost any surface, but it works like the deadly explosive that it is even underwater. You can pile it up in layers to add even more power. There's a built-in safety factor, too. It works only when you want it to. Unless you put a fuse on it, it'll take any amount of punishment without exploding. But put that fuse on and it's something else. It combines speed, adaptability, and muscle. Other current projects include studies of new concepts in rocket engines, new propellants, and the use of liquid propulsion for artillery projectiles. One of Picatinny's laboratories concentrates on plastics. Here they collect and evaluate information for the entire Defense Department. The result? Warheads and gun barrels made of plastic. Inexpensive, lightweight, non-corrosive, adaptable. Plastics have provided simple answers to many complex problems. Warheads and propulsion systems are a part of the story, but there's more to modern firepower than that. In the Pyrotechnics Laboratory at Picatinny, work is being done on space tracking, too. This vacuum chamber tests specially designed photo flash cartridges to see if they'll be dependable in outer space. They're visible for over a thousand miles. The idea is for the missile in flight to fire several cartridges one after the other. Even against a backdrop of natural stars, this trail of flash bulbs will show up quite clearly on a photograph. The result? Missile tracking even more accurate than through electronics. Another area that's under study at Picatinny is called weapons vulnerability. One irony of science is that technological advances in one area often cause problems in another. For example, some munitions are fired by electrical energy. That's fine if you've got your finger on the power switch. But a nearby radio transmitter or radar equipment can fire them accidentally or knock them out of commission altogether. Picatinny Arsenal is tackling that problem, a tough one, but no tougher than others it has solved in the past. Located in Philadelphia is Frankfurt Arsenal. It's been one of the cornerstones of the nation's defense program for over 150 years. In physical size, Frankfurt is small, only 112 acres. But coming in a small package hasn't hampered Frankfurt's achievement. Its 6,000 employees are dedicated to their mission. Although it extends to other areas, that mission deals mainly with small arms ammunition. Almost every round of small caliber ammunition ever fired in our national defense was either produced or developed at Frankfurt. Here's one of the Arsenal's latest developments, a duplex cartridge. Each case holds two bullets, the rear one angled to send it on a slightly different path. It may not make a soldier a better marksman, but it will give him more hits. That's because the rear bullets strike in a random pattern a few inches from the front bullets. At Frankfurt they're applying to small arms the principle of a caseless cartridge that burns up in the rifle. The greatest challenge has been to overcome cook-off or premature firing. There are also extraction problems, but Frankfurt isn't giving up. The obvious advantages of an economical, caseless, lightweight cartridge are enough to keep the staff hard at work on it. These are not American weapons. Frankfurt also runs a center for testing the weapons and ammunition of our NATO allies. Frankfurt's major concern is with small arms, but it often supports the development of larger munitions too. We tend to think of munitions in terms of explosives and gunpowder. There's more to it than that. Take the science of optics, for example. Modern weaponry leans heavily on lenses, radicals, and various complex optical instruments. Today, just about every weapons system in our arsenal relies on optics to sight and center on its targets. And the optical aiming devices work on the same principles as those developed at Frankfurt. This work calls for sophisticated equipment with sophisticated names. Here, an asphiric, curved generator for changing the geometry of glass. A precise pantograph that engraves lines on radicals, lines one-tenth the thickness of a human hair. If Frankfurt has machines with delicate skills, it has men with skills that are even more refined. A required tolerance of one-fourth of a lightweight leaves the machines behind and the men take over. There aren't many craftsmen whose art is polishing parabolic mirrors. Frankfurt Arsenal has them, as well as the highly specialized equipment they need. This particular study deals with automation to see how it can be applied to manufacturing military optics. This complete optical facility is unique to the Defense Department, and it serves the entire Defense establishment. Propellants have uses which aren't really firepower in the destructive sense, and Frankfurt develops them, too. This device injects soldiers automatically if they're incapacitated with a remedy for enemy nerve agents. Propellants also inflate life rafts for the Navy, the Air Force, and the astronauts in the Apollo program. Another item activated by a propellant is designed to sever lines and cables. It's part of another device which may well be the program's most noteworthy achievement, the mechanism that ejects Air Force pilots from crippled jet planes. To get the pilots safely out, more than 30 propellant charges must fire, each one at precisely the right instant. The program has saved more than 3,000 lives with no known failures. Frankfurt's newest mission is to develop equipment that will automate the maintenance of military vehicles. When it's perfected, this apparatus will spot the defects of a vehicle engine instantaneously. Its forerunner designed for tank engines is already in operation. It has eliminated costly tear-downs for inspection. The Army has countless items, from gun sights to barometers in which precise calibration is vital. Also at Frankfurt is the Army Metrology and Calibration Center. This center at Frankfurt provides the engineering and technical direction for the Army's entire calibration system. Highly skilled personnel ensure that our weapons will be checked with nothing but completely accurate equipment. There are other special research areas at Frankfurt too. These include metallurgy, corrosion and lubrication. Pollard metallurgy is an old science. Here it's probed for new applications. Friction welding will someday eliminate the brittleness that results from joining two different metals. Ultrasonics are also being explored, as are overlay welding techniques. Frankfurt is working to reduce corrosion in hydraulic systems, and they're working to develop lubricants that will be more effective in the vacuum and shattering coal of outer space. Radiation chemistry research has produced reactions that would have seemed like magic a few years ago, and produced totally new compounds. Frankfurt keeps pace with new ideas and stays ahead of them too. The staff is always ready to accept a challenge, proof that this arsenal which has served America well for seven generations will not fail her in the future. Edgewood Arsenal is another center of munitions activity. Located near Baltimore, Maryland, it was established during World War I. This is the headquarters of a whole complex of activities, research, development, manufacture and supply. The Arsenal's mission takes in just about anything chemical. The complex includes three army installations. It employs nearly 8,000 scientists, engineers, technicians and craftsmen in many specialized fields. At Edgewood are the research, weapons and defense development laboratories. These labs are responsible for developing defenses against chemical weapons. You'll find the same tools here that you would in any organic chemistry lab, and a few that you'd find almost nowhere else on earth. This complicated instrument has a complicated name, a nuclear magnetic resonance spectrometer. It's function to pry into the secrets of the invisible and determine molecular structure. The products of this research and development include protective clothing and masks, guards against fallout or gas. This protective mask is standard issue to the military, and this is its civilian counterpart. It comes in all sizes. The masks are defensive weapons, but the products of chemistry can be offensive and include tactical weapons. A wide variety of smoke, flame and incendiary munitions. In addition to starting fires, Edgewood also concerns itself with putting them up. This work is on a special project requested by the Air Force and the National Aeronautics and Space Administration. When a rocket fuel meets an oxidizer, it ignites spontaneously. Violent accidental fires can flare up at any missile site where fuel has spilled. Edgewood is finding ways to control these fires. All of mankind has benefited from the Army's chemical and biological research. A vaccine against anthrax, mustard compounds for the treatment of some cancers, the development of weed killers, insecticides, fungicides and other agricultural chemicals. But Edgewood Arsenal's main objective is to keep the nation strong. This in turn will help keep it free from enemy attack. The Army Biological Laboratories are located nearby at Fort Dietrich, Maryland, the center of the Army's biological research and development program. The research at Fort Dietrich is similar to the work at Edgewood, but instead of chemicals, here it deals with biological agents. Working with deadly microorganisms is about as dangerous a business as you can find. This is evident from the safety precautions needed to protect the researchers from accidental infection. In addition to the safety measures you can see, all the laboratories are kept under a partial vacuum. This keeps contaminated air from escaping into the clean areas. All work with infectious material is done in sealed cabinets. We can develop our defenses against biological attack, only if we learn everything there is to know about disease-producing organisms. Research such as this has had important applications in medical science, leading to the development of vaccines against many diseases. Other results of this continuous study have included rapid warning devices for biological attack and antidotes for biological agents. Development of a complete defense against possible biological attack is the sole objective at Fort Dietrich. Even after munitions are designed, developed, tested and proved, there's still an enormous problem, producing them and getting them to the soldiers in the field. It means knowing who has what, how long it's been there, what shape it's in, how much of it there is, how much more is needed, and making sure that replacements arrive on time. It adds up to a tough and exacting job. It belongs to the Ammunition Procurement and Supply Agency, known as APSA. APSA is located near Joliet, Illinois. Under its direction is the manufacturing of all conventional large-caliber ammunition. It also controls inventory and is the maintenance center for chemical munitions. This agency also provides the Air Force, Navy and Marines with ammunition, propellants and explosives. In addition, it loads missile and rocket motors for the missile command. These activities first got underway in 1940 when the government began a $3 billion construction program. By 1945, 84 plants had been completed to make all types of munitions. Today, 11 of those plants are active. APSA controls the operations of these active plants and holds a number of others in a state of readiness. All of the plants are operated by private contractors. They may manufacture propellants, explosives, shell and cartridge cases, or other metal parts, or assemble, load and pack finished ammunition items. APSA provides the parts and supplies used by these plants, and it gets these too from private industry. All contract bids get the same consideration, whether the bid is from a small family-owned plant or from one of the largest companies in the nation. All successful bidders must have the resources, equipment, people and skill to handle the particular job. Before awarding a contract, the agency conducts a careful survey to make sure that the bidder can meet all the requirements. APSA is also responsible for munitions stored in more than 20 Army depots. It has to keep them inventory and ready to use. And if, for any reason, ammunition becomes obsolete, this agency sees that it's disposed of properly. One way is to destroy it safely by burning. Another way is to process it into some other useful product that the government can resell. But the agency's main objective is to have the right ammunition at the right place, at the right time, and enough of it. When a request comes in, it goes to the manager responsible for that particular item. The item managers take immediate action. During an emergency, they may work on an around-the-clock basis, directly with the material readiness control office. Electronic computers lighten the inventory load. No matter what item is needed, this machine will immediately tell you how many there are, where they are, what condition they're in, and to whom they may already have been promised. And as if that weren't enough, it also advises which depot will get at where it's going the fastest. Everything that came before, the research and engineering, were of course indispensable. But it's procurement and supply that actually, physically, places the tools of combat in the hands of the fighting man, whenever and wherever he needs them. To the layman, it's the spectacular blast of an explosive that tells the story of munitions. But to those in the business, the story lies in the pains-taking day-to-day tests, the obstacle course that every item must pass before it's given to our fighting men. Can it withstand the force that sends it on its way? Can it take the rigors of shipment? Will it function at temperatures ranging from 65 below zero to far above 100? The story of munitions is the story of test equipment that can x-ray two feet of steel, or freeze on film a projectile spinning at 25,000 revolutions per minute to reveal malfunctions. All this is backed up by computer systems that can answer a question in one hour that would take 30 technicians with desk calculators a full year. It's the story of one concept applied to different items. The story of cooperation between different agencies working for common goals. A good example is this solid-fuel rocket, which produces 47,000 pounds of thrust in one half a second. It can rescue pilots from planes flying at four times the speed of sound. The story of firepower is the story of the munitions command's daily efforts to do its job and do it well at Picatinny Arsenal, at Frankfurt Arsenal, at Edgewood, at Fort Detrick, and at Joliet. That job is very simply to keep us ready. This readiness is an embodiment of a concept as old as our nation, for the words of George Washington hold as true today as they did when he wrote them. To be prepared for war is one of the most effectual means of preserving the peace.


welcome to another video a lockdown video so I've just come out today for a little bit of a hike and just going to see what I can find and take you along with me so it's a bit like fishing when you're going for foraging you might not you might blank which I often do but I'll bring you along we'll have a little adventure see what we can find come on even a path this way the past that way come this come on right here we go again oysters what look like they look like olive oysterlings look at these some olive oysterlings which are an interesting mushroom I don't think they're in the same genus or family as your normal oysters your gray oysters and whatnot but that might be misremembering that and but yeah they're they look like it anyway olive oysterlings so we'll get them back to the fungerium and and have a little look at them you have to excuse the noise we're not a million miles away from a country road so there's occasional cars going past apologies for that but look found a lovely little flush of velvet shanks here the lovely specimens and these little ones I'm gonna leave so they can grow a little bit and I come back and harvest them soon look at that man now that is a bracket small stick we just loads of turkey tails on it but I've got loads of these at home so and they're all dried out now so I don't need these leave them there's some more oysterlings here but these are long gone man look at that RIP RIP to crouch you can see if I can entice Mike in Tyson this robbing down to me watch watch this see if I can do it turn the earth a little bit and then just stand up against his tree here's a little chubby chubby had a good Christmas mate right let's take these back to the fungerium and have a little closer look power and there we go back back in the fungerium with our olive oysterlings which are interesting and I shall tell you for why shortly but first of all let's just have a little look at them also commonly known as the late oyster and it'll just grow on dead wood doesn't matter what it is coniferous deciduous it doesn't really matter and the spores if you do a spore print they are disappointed well they come out white but I've had trouble getting spores off these I don't know if I've just not left it long enough left it overnight nothing they're very wet though we'll give that another night and see if I can interject them here now if I haven't interjected them it hasn't worked so I do apologize a saprotopic or recycler fungus which is breaking down dead wood and fungi are the only group of organisms that can break down lignin and without them we'd be buried under mountains of debris they also play a vital role in driving the carbon cycle releasing nutrients that they don't require back into the habitat can fruit so the mycelium the the the the body of the mushroom is under the ground and the mushrooms are just the fruits so if you imagine just an apple tree underground and then the apples grow out that's pretty much what this is it's just a fruiting body which is used to then send the spores off and reproduce and the gills are initially yellowish and then they get browner with age smells quite nice there's no real distinctive order many of the books and websites will say avoid eating because it is it can be bitter and contain carcinogens now bitter yeah it's bitter to the bite for at first but the carcinogens thing when I first read that I thought well that's that's interesting and I delved further because bear with me if we look here we look in the Roger Phillips Bible it actually says not edible and so you would maybe read that and think right well that's not edible I don't want to get cancer not worth it move on and a lot of the websites and forums say the same thing but when you do your research it all stems back to a German mycologist called Andres Gminder who reported it that's what everybody says in all these studies it reports back to this one German guys studies now I did a bit of research myself I found a YouTube video with a young lad emailed this German mycologist and asked him about it and the German mycologist that emailed him back saying no it's it's it's proven to be safe so there you go it actually has healing properties it's quite a there's a lot of health benefits to this mushroom as well again just research research research research when it comes to mushrooms don't take just because it's just because it's written down on paper or in a book don't take it as gospel cross-reference when it comes to mushrooms because where everybody's still always learning and putting their bit into the melting pot so now do your own research and then make an informed decision yourself and I've made an I've made an informed decision and I'm decided I want to go out and cook this up with some velvet shanks out into wood I'm going to go find somewhere a little bit remote up high so maybe we'll get some snow fingers crossed and now yeah we're going to see what this tastes like that classic georgia no look at that solid that is I mean I'm in a rush but there's all I've always got time to stop for a decent lecture look at that let's just watch effortless no creaking tight just nice this ghost tree is dark man look how dark it is here jeans know me trying to keep my voice down in case there's any any wildlife right it's too dense in here man I can't see anything ant lights fading so let's get to the outside outside of this pine and get some natural light so we can get cooking tell you what put some miles on this like put some timber through it for sure fair enough she's a sharpen as well pick ones on the outside and then as we come in less of an angle sort of glide along the top and get thinner and thinner I was creating a flat base as well so these last few are going to be as thin as you can get them and then because I'm on the outfit day I can afford to bring my bring stuff that's a little bit heavier but that I like a little that a lot more and you know handcrafted stuff love this it's a weapon like is a weapon but I love it and then the back of me silky pocket boy I'll do just nicely so let's get into it one stick wonder we've got flames how mushrooms few choice specimens look at them man they are good the Easterlings they have a this bit here where it attaches it treats quite spongy and they can just give it a drain out can you can have a lot of water in there see if you can see it see all that coming out a lot of water see a pair of green Falcon fly over top nice annual plan unscrew the lid and change out one of these pot handles these pot grabbers lightweight pot grabber nice little camping frying pan and then you're not governed by you don't have to stick to the older specifically camping ones that in my experience can be a bit sticky that's just cooking oil I always carry with me to keep replenishing it because it solidifies and it's good for all sorts of stuff let alone cooking testers on let's go in with the shroom that looks pretty pretty as a picture decent egg covered again in eggshit what don't worry about it don't worry about it little bit of salt and pepper quick egg just for a sec burst me yolk life that's life though pheasant where are you hey look someone's shot him right peasy okay let's get into it tell you what I'm thankful of my of my sit pad today the velvet shanks are lovely really nice really mushroomy earthy mushroomy you know like how an oyster you can't explain that an oyster tastes like the sea but a clean version well these mushrooms taste like the land but a clean version the olive oyster ling is isn't great slightly bitter slightly bitter and there's no real great after taste to it either so would I eat it again yeah I would but it's not over exciting it's not very exciting at all it's I can imagine a lot of people wouldn't like this because of that initial bitterness but I mean it's decent enough them velvets are just lovely mmm delicious have some steak eh oh man can't beat it mate steak mushrooms yay get on the mushrooms that I got they're never going to fill you up as a meal but to put them with other stuff it's just lovely it's really rewarding as well knowing that you've been out looking for them you know it gets you out the house it's a little adventure and I see it as like it's like a treasure hunt and you never know what you're going to find so all of them are grilled aren't they so all of them are faced oh well oh it's a shame I can't stay here tonight it's going to get into these dark woods and see if we can get out onto the side this is some sort of sunset go and watch that lovely and peaceful it's not it's not like take your breath away sort of transitioning tonight or what you call it sunset it's subtle but in that there is such beauty the cloud formations are just wonderful hehehehe good so for anyone new who's watching please forage responsibly don't take risks if you're not 100% sure because I know a lot of people watch my videos and then do the things I do as far as you know ale reviews, wild camping all that sort of stuff that's all good but this one don't just wing it because it could end your life it's that serious if you get the wrong mushroom that's it final curtain done night night night logged off no password gone so please just forage with caution invest in a few books I'll put links below to the foraging books that I use just watch videos take the mushrooms home with you and study them get to know them don't eat them, just forget if you're just new to mushroom foraging just forget about eating them just for the first season just learn stuff there are a few that you can get that you know what they are but there are also some sneaky ones in there some sneaky ones and not all books are correct as of earlier on today with the Roger Phillips mushroom bible we were saying that the the oysterlings were inedible I've just eaten them collapses because I did my research elsewhere and brought it all together and then made my own informed decision and you should do the same so just forage with caution I don't mind being responsible I don't need to get out and about but I don't want to have a you know don't have a list of you're all tapping out because you're getting a load of death caps or whatever I don't need that please forage responsibly I'll be back soon with some more lockdown content so just I've said it before man but just look after yourself treat yourself right be the best person that you can be and then anything that's thrown at you for the rest of your life your optimum you and best able to deal with it because if you've got hangover or if you're eating shit food or you're not looking after yourself and you're in that spiral and then someone gives you some bad news or you've got to deal with something you're not your best you to deal with that and things can get on top of you so if you just look after yourself as much as you can and I'll send you a lot of love take care and I'll see you soon


Yeah, okay, Scal. Take it away. I got it. Went to UNLV though. Yeah, you know, my first college basketball game was no one. Oh, nice, you done it. Oh my goodness. The high loop way up on the rim. For you guys that know Danny, we got three guys here that know Danny. That is Danny Angel right there. How about Mimi on both ends of the court, by the way? Absolutely. But he'll still play tomorrow night? I think so. Oh, nice, you done it. Step back three. Man, you got it. Why not? Okay, he's coming into his own. What they said, that's funky like the county jail holding tank. Man, look at Kata. Give me the ball and let me grab that thing. That is tough, big time athletic place. Six blocks for Kata, yeah. Man. I guess I'm on camera here for a couple of seconds. I just want to say thank you to everybody who stayed through our broadcast and watched all this today. It was mind blowing for me to have an experience like this.  And that is in the case at all. So thank you, Boston. Thank you, Celtics. And we'll see you for playoffs. Thank you.


Hi, everyone. I'm John Mason. I work for ARM, and this will be using Yachto as a method to upstream maintain and track patches. Hopefully that's interesting for everyone. If not, feel free to run away. I think this is the last slot before the coffee break at the end, so you've almost made it. Sorry. So what's the problem? So the problem is SOCs have multiple open-source components. You've got the kernel, you've got U-boot, you've got ATF, you've got graphics. You may even have some other open-source pieces and maybe even some proprietary pieces that all need to fit together. And the parts that are open-sourced or that you want open-sourced, you want to be able to upstream them and maintain them. And hopefully it's simply as possible. Now would you believe me if I told you that using Yachto as a way to do this would be simple and easy? Does anyone believe that? Anyone think I'm a liar? Okay, cool. Well, hopefully I can prove you wrong or I'll make a humongous fool of myself. One of the two will happen. So this is the board that I used as a test of this. It's a friendly arm and I'm sure that's some kind of copyright infringement, but it's from some no-name company in China and it was super, super cheap. I think I got it off Aliexpress for like 15 bucks. But it has a core A53 which I thought was pretty powerful and something to kind of play around with. And it has a vendor-supplied Ubuntu and I'm throwing quotes around it not because it's not really Ubuntu. They took the Ubuntu images and then threw their own kernel and stuff under it and still called it Ubuntu. It's running a 4.4 kernel U-boot of 2016.01 which is pretty ancient but is not terribly ancient. I don't know. And I use it as a guinea pig. So the groundwork, how do we get this actually working? And step one is to conform it to Yachto so we need to get it working under Yachto, migrate to generic sources, split into patches and push the patches. Seems pretty simple, right? So getting it to work under Yachto. So three steps, commit it to get trees, write the recipes and verify that it actually works. So commit the code to get trees. So some vendors are super cool and they will actually comply with the spirit of the GPL and give you a nice get tree and maybe even host it somewhere like GitHub where you can get it very easily. And other vendors, they just give you a tarball if you ask nicely and do the secret handshake. So if you have a tarball, you can just throw it straight into a get tree. You don't need to do anything special because the fun part comes in a minute. You actually just look inside there and pretty much all major open source projects in the make file will have the version. And if you just look inside that version, you can find the upstream thing. It will be the tag that matches the version. Almost all of them do this and it's really, really easy. So writing recipes. So this is the hardest part and if you've used Yachto, you could argue it's not that hard. If you've never used Yachto or think Yachto is very difficult, then it is difficult. I think I just talked myself in a circle. So for every binary that you have, you need to essentially wrap them all together. So you have a recipe for every binary that is created and then you have a WIC file in Yachto parlance and that will put it all into a single bootable image. Oh, by the way, any questions at all, please blurt out. Otherwise, I'm going to run through this super fast and I might run over the question that you have. And there's a microphone somewhere. So does anyone not know what a meta layer is? Do I need to cover what a meta layer is? Raise your hand if you would like me to cover what a meta layer is. I see no hands. Okay, cool. Yeah, so creating a unique meta layer is probably the easiest way to do this. That way you can lock into what's already there in Yachto and keep all your pieces in the same bucket. What I think is a huge benefit for this is you can actually have everything self-contained in that and you can also, if you're doing it for a unique series of boards, so like the board I just showed you has the same SOC on, I think it was 14 different boards. So all it takes is a different machine, which is using the exact same git trees for the kernel, for U-boot, for ATF, and everything else. And the first setup took a few hours. Each additional one took minutes because you're using the exact same thing. You're just changing a few names. It's pretty trivial. And if other boards based on the similar SOC from different board vendors, it's almost trivial to add that. So the board that I referenced previously, the Samsung Arctic is using the same sock. So it should be almost trivial to throw in support for that because it's going to be the same kernels, same configs, same U-boot, same ATF, all that stuff. So here is essentially the recipes that I did. So kernel recipe, it's pretty straightforward. You can see that the source URI, that git tree is essentially a direct copy of their git tree, which I did simply in case they decided to move it somewhere else. Couple configs, a source rev, all that stuff. This is pretty standard kernel recipe. And then U-boot recipe is very similar. And here I'm actually still referencing their git tree. And then this is a fun piece. So not all the vendor may be legally obligated to supply the source, but that doesn't mean they always supply the source even when you ask. So I emailed them and said, hey, I see this L-loader is GPL. Can you give me the source? And then I got nothing from them. And then I emailed them again and I still got nothing from them. So Nadia Hunter response telling me where to go. So one cool thing you can do with Yachto is you can just, if you can find the binary or unroll it for something, you can just write a very simple recipe to pull it out of an existing git or existing tar ball or git tree or whatever and put it right into your image. So does that sound easy? Anyone buying that it might actually be easy yet? No? Okay. And then verify the bootable image is created. If you have automated testing, you know, that's a good thing and you should be using it. If hopefully everyone believes that at least. Okay. The next big piece is migrating to generic sources.  And so essentially to do this using the U-boot recipe I did before, you just clone the upstream U-boot, get in there, do a remote add and this will actually hook the upstream sources with the one that the vendor is supplying into the same git tree. And then of course you need to fetch it. And then I was in this example simply just taking that and pushing that to my local GitHub account. It will make more sense here in a second because then all you need to do is change the recipe to point to your local one. The one in my GitHub not using theirs anymore. And then now is the fun part. It's the rebase. So you, as I was saying before, you do the git rebase and essentially what it will do is it will replay all the commits it has which may or may not be interleaved with the current tag. It will replay them on top. So essentially at this point on the second step, you will have let's say 100 commits they have on top of that tag of V 2016.01. So right now you have essentially an entire history of commits. And then you can use the git rebase I to squash them onto a single commit which is a good thing. And then push it upstream. So as of right now, you should have the exact same code that you had before organized slightly different. And you can build it with the modification from a second ago. And, yeah, no recipe needed to be changed. Unfortunately, in this case, the, you could use a more modern tag like 2019.01. But that requires it actually replaying on top of that. And if anything's changed out from under it, and in three years, many things have changed out from under it, you'll have a fun little rebase problem at it. Every patch that is not going to apply cleanly, it will stop and say, hey, fix this up. Hey, fix this up. And if it has 300 commits, it gets old really quickly. So the kernel recipe that I showed a second ago, to change that, you just need to, the kernel recipe actually has some extra logic in it. So the source rev, if you don't know, is essentially saying, give me the shaw of the commit that you want to check out. And all the rev says, give me the top most. So this way, instead of saying, I want this specific one, you say, just give me the top. And that way, you can always, every time you rebuild it, you'll be building the latest greatest. So if you update your git tree, you'll have the latest greatest every single time. And we'll get to that in a second. Unfortunately, that starts throwing an error of saying, hey, your kernel versions don't match. And you can avoid that sanity check with the second highlighted one, which says, don't do any sanity checks. Okay. And then upstreaming, you actually now want to split it into unique patches. So the reason why you want to do this is if you, so as of right now, you have a humongous squash patch of every driver change, every core change, and anything else all into a single atomic patch. And if you send that to any mailing list, to any maintainer, they will immediately tell you where to go because it's not acceptable to them. And also, if you were trying to change a network driver and a storage driver, you're going to have different maintainers looking at that. And that means even if one's cool with it, another one's not going to be cool with it, and you're going to have to re-spin it every single time. And the network maintainer is going to be tired of looking at it after four times with no changes. So you need to split it up into individual chunks to upstream. So now we're actually getting to why hopefully all of you showed up using Yachto as a way to actually upstream and maintain it. So how do you upstream with Yachto? So there are two easy ways, I think one's actually easier than the other, using a Git tree that's being referenced in the Yachto recipe. So before I showed you, you can just update to your local Git tree in the previous recipe for the kernel, for example. And you can change that in Git hub and not ever modify your recipe. And each time you build, it'll keep updating it. Like it'll keep the latest, greatest every single time. Alternatively, Yachto has this patches directory inside the meta layer that we were talking about earlier. And you could have that full of just 400 patches that you would have to individually keep track of in your recipe. It's not that hard because it's an individual line each, but it's not particularly pretty either. So I think number one is the better way to do it. So using the kernel again as an example, every single time there's a tag that's released. So I think RC5 just came out for 5.3 or whatever. You can simply do a Git rebase on top of that. And it'll replay it actually, you don't need that I. Anyway, it will replay it all on top and any patch that has been accepted upstream will now just silently fall under that. So let's say that you had 20 patches that have yet to be accepted. And then you just get rebase and five of them have been accepted. Without doing anything on your own, those will naturally fall under the tag. And then it will still build and you'll still have this list on top of it. And then you can just use Git send email. Everyone's familiar with Git send email? Anyone not familiar with Git send email? OK, so Git send email is a very cool wrapper and essentially you give it a tag and say, using UBoot again, v2019.01.dothead and you will have every single patch that's there and Git send email will email every single one of those to a specified mailing list or person or whatever. So back in the olden days you could use Git format patch and it would sped out a series of patches and then you could use your email client to send those out individually. This is just a nice wrapper for that. So yeah, so just like I was saying a minute ago, as each patch is pulled in, Git is automatically going to skip over it when you rebase. So each replay is going to have a shrinking and shrinking list. You of course, as you get feedback from the mailing list, they're going to be modifying these, but it's not that ugly. If you want to use the source rev, you're going to have to update that constantly in your recipe. Auto rev is a great way to get around that, but it also has its problems because you're going to be tracking the head and you may not want to do that for various reasons. And if all those are going at the directory, you're going to have to regenerate those every single time and that's going to be problematic. So using Yachto to maintain. So you've already gotten all your patches upstream because it was easy, right? And now you have the maintenance version where you're getting patches from your internal people or you're getting patches from various people upstream that you pull into your local Git repository and then you send those out. So your Git tree is still all you need to really care about. And using the same ways before Git, Git send email, you're going to churn that buffer up and down. And then another thing, wow, I got fast. Hopefully everyone knows about the OE layer index. If you actually create a meta layer, the OE layer index is essentially a website that contains every meta layer ever and adding something to that is trivial. So when you actually do your own personal meta layer, you push it up there and everyone can use it and it's pretty cool. And then that's where you can find the code that I've done. Sorry, I ran through that. So questions, hopefully there's lots and lots and lots of questions because if not, you get to go to the coffee early. Any questions at all? Okay, so those didn't... Is that only for Yachto or is that for all the... Can that be used for everything? Yeah, so for the video feed, the statement was that there is a wrapper inside Yachto to generate the pull request for the Yachto changes, which essentially would be the core changes and maybe meta layer changes. So that's really cool. Other comments, questions, points to ponder. Cool, then that's it. Thanks everybody.