Hello everybody, I'm EvilRabbit. We're here on a set of Corsa. We're back with the new cooler installed on the PC. We're gonna be doing a full shakedown test to make sure everything is good. Of course, we got the Moza R12, our CES, a V2 steering wheel, so I decided the best way to test this is to pick the loudest, rowdiest car I know. Mad Mike Waddett's FD and go full send. So make sure you guys follow me on all social media, I'll just show you up your box below. Let's do it. Though I did pick this car up off Voss and I'll leave the link down in the description box below for you guys, but definitely after all my fire.  Definitely after Mad Mike's whole situation that he was going through. Figured we'd bring his car out because why not? So we're gonna go full send. This is another variation of Riga. So we're gonna go full send and test this out and see what we can do. This track has a lot of open parts, as well as this little comp track. Just rev bang this. We can get up to that. You know, not knowing this course. Not too bad of a run off the rip. It wasn't too terrible. We could have been way worse. Just gonna go full send through this section. Figured bring the loudest, rowdiest car I know of. To go full test. Cooler. Did you hear that?  I'll leave the link for the car down in the description box below. R12, check in it. So it's great to have my PC back. We'll be running in all its glory. We just need to do some few shake downs with Oh, no, this part of the course may look familiar to you. Well, if we go that way it does. We go right, but we're gonna go Freestyle in this track right now. I want to go this way. We're just freestyle in here. Mad Mike's car. Oh my god, the fire. I don't think we'd be able to actually See.  Probably not be able to see much. No, definitely not. Oh my god. Now we're gonna go the other way. I can't see with that fire. Now I know this part of the course looks very familiar to a lot of people. Fifth gear slay right now. Sure, I need to go all fourth. Okay, popping up, popping it all open. So just a full shake down test of of course my PC with the cooler and everything go this way now. I don't know which way we've, I don't know which way we've been on this track. So if you guys like, you know, this track, I'll leave the link to that track down below as well. Kind of fun track to just crash. That transition. No break or just all break. And break. I think it's the first time we've actually screwed up. So I think we're going to change to a different car, different track, do a little more testing. So I'll catch you guys on grid. So would not be fair if we didn't come do a little mehan drifting. Here in this episode, we've got a big body chaser out here, see if we can't throw some T&M's. Behind the Miata, it might be on semi slicks. Beatback on this, in this car, it's green. Don't switch wheels while you're drifting. Driving this guy though. Oh, I cut that a little short. I don't mean to smack into that guy. We're door diving him though. So like I said, it's nice to beat back. We've got a lot of big things coming. Beatback is really strong right now. We've got a lot of big things coming to the channel. Some new things and stuff like that. Happening very soon. Some big things with Mosa Racing as well. So I'm super excited to be bringing. Oh, somebody came in. Super excited to be bringing you guys a lot of... Oh my God. Having that, I changed views. Super excited to bring you guys a lot of new content and stuff like that here. Very soon. Chaser's... kind of rowdy. Group Cam Hero. You, the chaser behind the big body chaser. The guy she told you not to worry about. Creeping in on you. So I think that's going to do it here for this episode. Here on our set of course. Like I said, coming back in full swing. And we're diving this guy. Here on the channel with the PC now being fixed up. And fully working again. Did he glitch out or did I hit him? Aw. Well, I hope you guys enjoyed this episode. I'm Meevo Revit. I'll see you guys on the track.


You're going to be creating your very own bounce game that you'll be able to share with your friends. How cool! To get started, we have to link up the paddle controls to the arrow keys on our keyboard. We can do this by linking the when left arrow block to the move left block, and the when right arrow block to the move right block. Give it a go and you'll be programming your own bounce game in no time.


What's going on everyone Sam here with late in sports cards ripping one box of 22 pretty flawless baseball hobby for MOD It's a good luck Emma. Let's do some flawless man. It's always a lot of fun A couple good breaks of it today. I have to say we did a case yeah case worth of good today. Yeah Did a case worth of um Um a lot of nice patches. Yeah a lot of really nice patches. Yep Plus that Lou Gehry diamond. It's pretty freaking awesome. That was cool That that braze patch was nasty. Yeah. Yeah, that was wild Yeah, there's some good stuff in this man. No wait not braze angels angels. Yeah. Yep. I just I just remember the Wow All right, let's do it. She's good Oh, that's nice a good way to start right there um, all right, we're starting off with a vertical rpa that is four color of redemurs six out of 15 for the angels Oh, that's cool Oh, that's really cool, man nine of 10 mike musina the moose For the yinx that game used. Yeah game used Mike musina. Oh, that's awesome, dude I love me some musina yankee legend orio legend hall of famer. I want to say yes, right hall of famer. Yes Yes Yes, I believe so I wish I did I wish I did though so I could be more excited. Oh cool That is nine of 25 wander franco. Very nice. Yes, hall of fame. Thank you Uh Two color all the way around Yeah, that's kind of wild actually There you go ammo nice wander. Uh, what is that the showcase quad patch? We've got four of 25 is going to be rpa Greg deekman That's part of the cubs logo right there from the uh from like right here where they wear it on their home jerseys That's sick dude four of 25. Congrats ammo Awesome awesome card buddy. Take some Greg deekman We've got Kevin Smith Uh, two colored rpa for the blue jade's nine out of 15 Geez Congrats on that nice kevin smith again, that is blue jade's kevin smith We've got seven out of 25 is joceya gray Three colored rpa for the nationals Congrats on that washington Seven out of 15. That is a three colored patch auto jd martinez Game worn jd for the red sox a lot of three colored patches in those. Yeah, a lot of them Case I guess Yeah, well, yeah, true. What's half case. Yeah And really nice one here nine of 15 flawless crates the big hurt that is frank thomas. Congrats on that. There you go ammo Lou Gehrig Six of ten on the diamond congrats on that. Let me fold the one to three earlier today. I saw an ammo congrats, man Yankee legend Number four retired hall of famer all of the above nice blue And we've got Number 15 of 20 rookie auto of o'neill cruise boom There you go ammo nice o'neill what a box 15 of 25 excuse me 15 of 25 Fantastic box overall. I have to say That is awesome. Congrats, man. There you go ammo Here is your exit. There's your empty um case Thanks again as always ammo. Do appreciate your support buddy. We'll get those right out to you, man


We have some data, and we plotted a histogram, and have decided that the data is approximately normally distributed. We're going to compare the actual occurrence of data points with the probabilities that you get by using the normal distribution. To do that, I first set up some tables. I got the count of the data point, 636, using the count function, the average, which gives me the mean, the average function gives me the mean, and the standard deviation. This is a sample, so we use st.s for the range, and those are the values. I first set up a table, and I'm going to get the actuals, and I need the count of the actuals data points that are less than 5.33. And we get that using a count ifs function. We put in the range, and then the argument enclosed in quotation marks is greater than or equal to 5.33. So that gets every data point that is equal to 5.33 or greater. And then I calculated the proportion, which is just the count divided by the total count, which is .0189. And then I did a similar thing for the counts less than 4.85. And I used the count ifs again, same range, but changed the argument again inside quotation marks to less than or equal 4.85. To make sure we got everything including 4.85. The probability of that is, again, just the count divided by the total count, which gives you about .503. And remember when we're doing probabilities, you just take the thing you're interested in, the number of ways that you can be successful, and divide it by the total number of occurrences to get the probability. So these percentages, these decimals are the same thing as probabilities. Looking down at our table of normal probabilities, we wanted, first of all, the probability that it's greater than 5.33. And I should point out that, again, for number of probabilities that is actually calculating greater than or equal to 5.33. And to get that, we use 1 minus the norm dot dysfunction. The arguments for that are the x value we're interested in, 5.33, the mean up here, d2, and the standard deviation, d3. And true means we want the cumulative probability from the left infinity to that point, which in this case would be from here to here. But because we want the greater than the right tail, we subtract that from 1 to get that probability of .0130. For the less than, we just use the norm dot dist with the same x, the mean, standard deviation, and true, because we want that left tail. And here we get a probability of .0787. You notice they're different, they're not extremely different, but you would expect that. The histogram is the actual counts. And if you remember back in our histogram, we had some outliers, some points that were sticking out to the right side of our curve. So it wasn't perfectly normal, it was a normal approximation. So that's the reason these are close, but not exact.


This is ThinkTek. Life in the Law. It's our Life in the Law series, and we're honored this morning to have Chief Justice Mark Wrecked of the Hawaii Supreme Court with us to talk to us about how the coronavirus has affected our judiciary. Thank you so much for coming on, CJ. I really appreciate you being here. Jay, thank you for having me, and thank you to ThinkTek for continuing to inform our community during this time of crisis. Thank you very much. We consider it a very important mission of ours. So talking about government in general, we know how busy you must be because you must be in the same place about watching the branches of government function even in the time of crisis, watching the judiciary, helping the judiciary through the crisis. We need government now, maybe more than ever. We need our courts. We need all the branches of government. Regrettably, we don't have the legislative functioning, but at least we have the judiciary function. I know how hard you work to make that happen. We need judicial oversight. We need to, you know, we need to lubricate the wheels of justice. So disputes and the implementation of statutes, however they were arrived at, you know, can be overseen and handled by the judiciary. Very important that you continue to function by understanding as much of the bar is working, much of the bench is working, and you're working harder than anyone. So we appreciate that. It's not harder than the folks on the front lines, but the healthcare industry. But, you know, we, well, first of all, thanks for having me on, Jay. I mean, I think, you know, we face the balancing between wanting to protect the health and safety of everyone who comes into our courthouses, our staff, our judges, and the public with also continuing to operate and do business. So that's really been the focus of our efforts over this last six weeks is to strike that balance, to figure out ways in which we can, the maximum extent possible, keep people out of our courthouses but continue to operate. And whether that's doing hearings remotely, deciding motions based on just paper submissions from the parties or written submissions as opposed to having oral argument or restricting access to the courthouses to people who are only there for very specific reasons from the public side, and then internally trying to have as many folks as possible set up to work remotely. So we're minimizing the number of people who are in our courthouses each day. But we need to be open. We need to be doing the public's work and ensuring that two processes maintain during the crisis. But we also need to do our part to make sure that we're doing everything possible to maintain the health and safety of everyone who comes in contact with the judicial system. Well, wow, let me unpack some of that a little bit. For example, I mean, we have to maintain public confidence in the system. And that I guess that happens at every level. But you have, for example, right now you have the police are issuing citations and tickets. In a case or two, they made an arrest for violation of the quarantine and orders issued by the governor. Is that in the pipeline? Is there a way to handle that? Or is this going to be something that just gets delayed until we find a better time? Well, I think you know, what we've done on the criminal side of the house is when we have the real focus is on people who are in custody. So if someone is arrested and is not able to post bail, or even if they do post bail, there's a series of constitutional and statutory protections that require action by the courts in a relatively short timeframe. And so what we've tried to do is to maintain that both core criminal proceedings and try to do them as much as possible by video. So if we have somebody who's, for example, being held in custody at OCCC, Wahu Community Correctional Center, we have video slots available on several days of the week. And I try to say that the Department of Public Safety has worked with us to increase the amount of time we have to be able to have defendants appearing by video from OCCC with the lawyers in courtrooms here in Honolulu, and they were able to socially distance in the courtroom and to be able to conduct those proceedings. So for folks, you know, proceedings when we have folks who are not in custody, generally we've tried to continue those proceedings into at least into the end of April to May. And now of course that was our initial order was to basically continue matters until after April 30th. And of course as we start to near that deadline we're going to have to reassess what we're going to do on a longer term basis and are we going to continue operating the same way? Are we going to change things up a little bit? What changes can we make based on the experience we have? So I think really in any particular case depends on the nature of the case and you know particularly in the for criminal cases that somebody in custody and then of course there's a very different approach in civil cases. But even there realizing there's certain core kinds of cases that have to be adjudicated even in this environment like restraining order cases. So somebody that's at risk from violence, that's not something we can put off for a month. That's something that has to be adjudicated hopefully to the maximum extent possible online or in a remote way. But if not sometimes you have to do it in person. Well, you know, you talk about the criminal process that there have been issues raised on whether the prisoners in the Wauau Community Correctional Center should be released because of coronavirus by the ACLU and others. And this is not only why you hear this issue being raised on the mainland as well. Do you have any thoughts about it? Can you speak about it? Where does it fit? Well, I, you know, we do have a pending case in front of us. And again, under our Code of Conduct, I can't comment on a matter of this pending. So, you know, it's out there that there's a special master's in the point that Judge Dan Foley will be reporting to the court that the status of the case right now. And then beyond that, I really can't comment on the issues that that case is raised. I can say that even before that petition was filed, we had done a lot of work on a county level trying to work both with the police, prosecutors and public safety to work through the sort of myriad issues that come up on a day to day basis of, you know, should this particular person be brought to the courthouse? Should we be executing this bench warrant on someone who failed to appear for a traffic violation? Do we want that person in the system right now? How do we go about having the judges come engage with the defendant? Is that something we can do by video? Is it are there arrangements we can make to maintain social distance? So across the state, we had have been and continue to engage on a daily basis with, you know, law enforcement with public states, the public safety department, police, prosecutors and public defenders to try to work through a lot of the practical issues that come up. But the case, the matter itself is now the subject of the comment because certainly something we have to fight on the record. So what about access? You know, access is a big part of the American system. The public should have access. The courts should be open to the public. But you really can't do that. I mean, you know, talking about the micro work by the Japanese science community on micro droplets, which are, which are emitted when you just speak in a conversation, they hang in the air. This is probably a big reason why coronavirus is so contagious. So if you let people in, you're going to have micro droplets for sure, and you're going to have contagion. How do you handle that? How have you handled that? A couple of ways. So, you know, I think one critical, you know, for one critical step we took, I think it was around March 20, when we basically closed our courthouses for all but official business. And what I mean, and that order said the folks who could be in the courthouse building were relatively specific, people who had a specific role in the proceeding, attorney, a party, translator, domestic violence advocates, there were very specific categories that we identified. And the order said, you know, enter the building, go to the proceeding, turn around and come back. And then the direction was to maintain social distance in the courtrooms as much as possible. And I think we tried, we've tried very hard to maintain that. And then to clean, you know, intensely those areas where folks come in and come into public contact. But you know, those, so those are that that small category of matters that are still being conducted with people physically coming in. But we tried to minimize them to the greatest extent possible. We tried to find other ways to resolve those cases without having people come in. And then when they do come in with we could just have folks who are there for that very limited purpose. And then are absolutely the courthouse afterwards. And you know, I would view to be clear, the media wanting to cover an event and that being obviously a legitimate reason for some of the being in the courthouse. What about jury trials? You know, it's hard to do that by remote. And it's hard to have a jury of 12 sit in a in a regular jury box where you can't be six feet apart. How can you handle how are you handling jury trials? You know, it's a great question. That was, you know, one of the when I entered an order on March 16, to basically set the framework for what we're doing in the judiciary in terms of how to handle this crisis. And, you know, did I did sort of the broad parameters of what we were going to do. And one of the things one of those was to continue jury trials or until after April 30, if that was back in mid March, and now we're going to have to re-asset that as April 30 of years. But it was apparent, although, you know, we had tried to figure out ways in which we could minimize the risk. You know, we initially were looking at, you know, strong policies for folks who had traveled to particular places might have been had other risk factors and then allowed potential jurors if they were in the high risk categories to ask for excuses based on those risk categories without having to come to the building. But eventually, we reached the conclusion that we simply had to stop bringing people together in this way. Because, you know, when you when you create a jury, you need a lot more than just the 12 people plus the alternate to around the jury in the pool and to bring them together for jury selection. And so we, as I believe every other state and federal jurisdiction across the country suspended jury trials during this period of time. And I think, you know, we are actively trying thinking through what might we do or how might we bring back jury trials going forward. I think, again, it's a real challenge because it is typically a face to face. People are in a room. You could try to socially distance and certainly those will be things that we'll think about. But, you know, typically you do have a lot of folks in a relatively small space. And so we have a lot to work through I think before we're going to be ready to bring people together in that way. That is a kind of uncomfortable in the sense that the American jurisprudence is based on looking the witness in the eye, seeing the sweat on his brow or her brow and try to figure out if he's telling the truth and making a determination of fact on that. So, you know, we have to preserve that and preserve the system. One other thing I wanted to ask you, CJ, is we have special situations now, civil situations. We have situations involving businesses that can't pay the bills, especially the rent or mortgages or loans. We have situations where people can't pay the rent for their homes. We have all kinds of, you know, breakaway type civil situations. And I recall that you've issued some orders dealing with that and delaying, for example, evictions. What have you done and how has it worked? Well, I think we've, you know, foreclosures and evictions, both proceedings are among the ones that have been continued until after April 30th. So again, we're going to have to assess everything that we did in that initial order back on March 16th to determine how we want to proceed going forward. But I think there are, you know, we get questions sometimes about in the landlord spending context. Well, what if there's a, what if there are, you know, there's conduct that's threatening or that might affect public health safety and, you know, the restraining order mechanism is still available. So there are still avenues for people to proceed in that context. But the proceedings for eviction and the proceedings for we decided again, because they tend to be bring a lot of folks in and bring people together in the building. Those were some of the proceedings that we continued, although in every instance, the judge has the ability to say a particular matter is urgent and needs to be resolved immediately that judges still retain that power. And so that's the balance we've tried to strike in that area. And again, we, you know, we need to look ahead when we get to the end of the month and decide how we want to proceed. And we're going to try to use the best evidence that we have in terms of how long this crisis is going to continue and figure out the right path forward and really are listening very carefully to our judges out in the field. You know, and we have I have to emphasize we've heard the bar twice a bar association and its members have been extraordinarily helpful both in terms of us being able to share information about what we're doing in the courts with members of the bar and also being able to hear from members of the bar. The challenges they're facing and being able to practice in this in this environment and ideas for what we might be able to do to ensure that, you know, the legal system can continue to operate both in the civil and criminal arena. So in my hats off to a great Friday president of White State Bar Association, Pat Maus should be due because they really have helped us get out the word about what we're doing. And you know, I realized what a lot of, you know, I set that framework for how we're going to in essence reschedule and move to a world that is let as minimally in person as possible. But I left to each Chief Judge in each circuit the opportunity and responsibility to define how that was going to take place in their individual circuits. So each circuit Chief Judge issued a series of orders, addressing specific courts, civil criminal family in their respective circuits. And we realized there was a lot out there. So we put it together on our website in one place where people can find it because we want to be sure folks, lawyers and others have to navigate the system can understand what's up and what's running and what's not right now. What's the name of the website CJ? So if you go to the White State Judiciary, if you Google White State Judiciary, go to our website, there's a big banner on the top that says COVID-19. You go there and it's all of the all of the orders starting with the White State wide orders and then each of the circuit orders is set forth there. And again, the big ones for us statewide where the order is should not March 16 that set the framework for basically moving us to a non in person hearings rescheduling a number of matters until April 30 and then a couple days later of shutting the courthouses except to official business and we suspended a number of filing deadlines for about two weeks. And that was just to ensure that people who might not have had access to a computer or might have, you know, for whatever reason, might have been exposed, you know, put a risk of exposure if they had to, you know, come into an office and then come to our building to file. We wanted to give them some relief. So for about a two week period, we I suspended filing deadlines in the in the trial courts and the appellate courts that expired on Friday and based on the feedback I've gotten, which is it seems like people have settled in and are now able to work in this environment. I didn't extend it. So we're back to the deadlines that exist is in cases that have been set forth in all of our cases for people to file. What about the those young young people who are taking the bars and we're trying? What's the status there? So that was we did we took the my court, which is in charge of the the licensure process, working with the board of bar examiners. We did two things. First, we extended the bar. So there's going to be a bar exam at the end of July. We've announced that we're going to reschedule it probably for a date in September and then we extended the application deadline for that bar by another month. So we tried to give again relief to folks who I'd not have been able to feature applications on time that that deadline was April 1. And we were you know, I know there's a lot that goes into applying to become a lawyer. And again, some of that might bring us out to bring us out to people out into the community. And we wanted to give them another month to apply. And then we just, you know, along with about a number of other jurisdictions made the judgment that we would reschedule the bar rather than trying to bring again, bring all of those folks together at one place in July. And again, it's just something that people need to plan for they need plan to travel if they're not here in Hawaii. So those are the two steps we took. And I have I found our website address www.court.state.hi.us. But again, if you just Google Hawaii Judiciary, you'll find it. Okay, well, it sounds like, you know, you really got your arms around it. And furthermore, that it's essentially working for now. But that your your approach is to take a look at it. I hate to use this term take its temperature as it were. And tune it up tune it up as you go forward, which is really great. So at this point, where there's so much discombobulation, confusion, misinformation, it sounds like the Hawaii State Judiciary really has things worked out, at least for the moment. Well, you know, I gotta say our, our, and I really have to do two things I have to say, our, our staff and judges have been amazing.  We have folks who are, you know, coming in and, and, and engaging in our buildings. We have others who are working very, very hard from home.  And then I really have to shout out to a lot of our partners in the community. The Department of Health has been very helpful to us. As we've had specific situations arise, giving us guidance about how to deal with them. You know, the legislature was very supportive while they were still in session, in terms of our needs. As I said, the bar has been wonderful. And, you know, we've been able to, again, working with law enforcement and others to address some of the day-to-day issues that come up. And then nationally, you know, we've engaged just yesterday, there was a national web broadcast of judges from across the country talking about ways to do more work remotely, which is, you know, an example of, again, judiciary of judges and staff coming together, you know, both here in Hawaii on the local level at the state level and then across our country to be sure we serve the public, but maintain public health and safety in this crisis. Yeah. And by the way, remote remote is something that the press has addressed and that we have addressed and it works really well. I mean, it's not only think tech and CNN, MSNBC, almost all the guests these days are connected remotely. But let me point this out, though. We're in a dynamic and things are changing. We haven't reached the apex yet. There'll be more cases, more deaths, more issues. And, you know, you can imagine, I'm sure you do imagine, there'll be disputes about this. There'll be legal issues that need to be resolved, just a few to come to mind. You know, one is there was an article about whether in whether the standard form, insurance, business insurance covers business interruption in the context of a pandemic that was in the paper today. policies have to be developed. We have business failures breaches of contract failure supply lines. All these issues are going to come up to be a lot of claims. We have not decided as a matter of public policy, a matter of law, exactly where the burden should fall. Is this an act of God? As opposed to contract talks about active God, but they didn't don't talk about epidemics. And thankfully, a lot of them do talk about it and, you know, handle that issue going forward. But I suspect you're going to be awash in you when I say you know, I mean, the judiciary, the justice system, the civil justice system are going to be awash in new issues of every kind of nature. I'm not sure when this tidal wave is going to start, maybe, maybe it's already starting, although you probably can't handle it right away. But how do you see that? You must think about that at three in the morning, CJ, there's going to be all kinds of new issues that are arising around us, though.  And then that's why we have courts, you know, so that the parties and their lawyers can come in and make arguments to our judges, and we can, you know, listen and decide, make the right call based on what the record and the evidence is. So, you know, whether that's an insurance policy or a contract or a statute, that's kind of that's what we do. And that's why, you know, it's so important for us to continue to survive this error forum with new process for all. And, you know, those, those issues will arise and we will deal with them and do for us, you know. And so, and I'm confident we will be able to do that. And I'm sure there'll be some things we haven't seen before. But, you know, some of these issues have arisen in other contexts, you know, with the corruption on the big island, there was some, you know, tough insurance coverage issues that arose and folks were able to address them. And I'm sure there'll be issues that come up here as well. I'm confident we'll be able to address them and resolve them in a way that's fair. We'll listen to everyone and make the right, make the call that we think is right based on the record. Well, you remember what George Washington said. He said the the true administration of justice is the firmest pillar of government. And I, with you, I am confident that you will be able to handle this. But let's move on to, you know, planning for the future. Because, you know, every every crisis is an opportunity to learn and develop better plans going forward. And you must be thinking about that, too. You must be thinking about, you know, having the resources, having the technology, having the systems that would be able to better deal with another crisis like this. And PS, the scientific community has made it clear that the coronavirus is just one virus. There are others in the pipeline that we will see later. That's the human condition. So this was a bad one has been and is a bad one. But there will be others and they could be even more, you know, damaging. So question is planning, going forward, thinking about how you would, you know, change the system to make it more resilient in the face of other crises in the future. Have you thought about that? And what are your reactions, you know, to plan? Well, for sure.  We had training for our judges and, you know, we've had folks who've gone and participated in, you know, tabletop exercises on pandemics. So it's something we certainly have thought about, although we put a lot of emphasis into, you know, considering, for example, the framework that would apply for mandatory quarantine if somebody didn't want to go into quarantine. That's not, in fact, something that's really, by now, it's been that much of an issue now in terms of proceeding to actually impose quarantine on folks. So, you know, some of the things that you sort of anticipate might be what we spend a lot of time on. In fact, are not the things that we spent a lot of time on. We're focused, you know, of course, because of the nature of this pandemic, on how do you do the business of the court without having folks come into the court, both in terms of our own staff and in terms of the public parties and lawyers. And, you know, those lessons, I think, are ones and the adaptions we've been making to that situation, I think, will carry us forward. So using technology more effectively to enable people to work remotely, I think on our side will be important. And also learning ways to use technology to be able to engage court proceedings, the public, learning lessons about how technology might be used in, for example, depositions in ways that it hasn't been used so far. Although our rules anticipate that you could have depositions by electronic, you know, by electronic means, you know, are those rules of adequate need to test that we have now. So there's a lot of lessons to be learned and we're learning them. We're learning them fast and we'll keep trying to learn them and be ready to, whenever we need it, whenever we need that information again. Well, will it cost money? Would you seek additional resources to be better prepared for the next one? Would you seek additional personnel or space for that? You know, I think those are all things we want to sort through.  But, you know, the legislature certainly had expressed, before they went out a session, had expressed the willingness to entertain those kinds of requests if we need them. And so we'll see what our needs are going for right now. You know, we're taking the resources we have and using them to the best of our ability. Well, one thing you've mentioned a couple of times during this discussion is, you know, that the benefits of having remote communication like we're having now, and of course with laptops and the like, in terms of improving the equipment software, what have you, that I wonder if you see a whole change in the system emerging out of this. In other words, finding more and more opportunities for remote connection within the judicial system and making it thus more resilient and more efficient even in times of non-virus. Is this a possibility? I certainly think we're going to, you know, we're all becoming more adapt to using new types of technology.  So if as we explore new means or new opportunities, I'm sure we'll learn from that. And, you know, that may make us more flexible going forward. But, you know, there are certain kind of core needs that we have. You know, one is for the trial judges to be able to create a record, you know, which is something that the appellate court can look at and understand what happened and then be able to determine, you know, if there's a challenge to what took place in the software, have a clear understanding of what took place. So whatever we do, there's some of those core needs that we still have to be sure that we address. But, you know, we're trying every day to learn and identify opportunities for how we can be flexible and how we can respond more effectively. And I'm sure all those lessons will carry on in the future. You know, CJ, there's a lot of people out there who are worried about the future. We took a poll, a survey on our website, you know. We got some answers back about how people are not necessarily optimistic about the future. This has scared them big time. They've never seen anything like this. In fact, nobody I know has seen anything like this. Even the scientists have not seen anything like it. So, you know, and really it's a test in a way, isn't it? It's a test of government, it's a test of all the branches of government and certainly a test of the traditional system. And I wonder if you could talk to people for a minute in closing even though I have more time, but in closing to say what is your message to them about the future? About the future of our system, our democracy, our judiciary, and you know, the basic principles that have held this country together for all these years? Well, I think people absolutely should be confident. You know, these are terribly challenging times. They're heartbreaking things happening around the country and in our own community that, you know, causes the flaws each day and, you know, causes to have, you know, dark moments. I think every one of us has this moment. But, you know, the fundamental truth is our system is strong. The folks we have who are working in our government are committed to providing those services, maintaining the basic principles of our democracy, you know, equal justice before the law, and due process, and to ensure that people have this forum to resolve their disputes, whatever challenges we're facing. And so I think people should feel confident in the future that our institutions of government will be up to this challenge. You know, we're not going to get everything right necessarily the first time, but we're going to learn. We're going to work our hearts out to figure out the best way to do it. We're going to learn from what happens and get better and better and better. And the commitment of our people is unwavering within the institution, and people should be confident that we're going to be able to continue to deliver on the promise of justice for all and due process that are the bedrock of our democracy. C.J. Mark Franklin, well thank you so much for coming down with us and for talking to us by remote about these really critical issues in our in our community and our democracy. Thank you so much and thank you for all you're doing and I hope we can circle back and check back with you in a month or two to see how it's going. Absolutely, and you know, again one last shout out to the folks on a long front line who are working day in and day out here in our organization and across the state health care providers, public safety folks across the state who are just working tirelessly to keep our community safe. So thanks to them and thank you, Jay, for letting me come on and speak to all your listeners and followers and I appreciate what you're doing keeping the free flow of information. Thank you C.J. C.J. Mark Recton World, Aloha and stay safe. Aloha, you too, Jay.


Hello everyone and welcome. I'm very pleased today to welcome you to this conversation with a group of new Moodle team members. My name is Abby Fry. I'm the communications manager at Moodle and today I'm going to be having a discussion with new members of the Moodle US team. Moodle's US is a services business that Moodle has launched in the United States to service customers. It has been formed by the acquisition and merger of three US Moodle partners, My Learning Consultants, Munami Learning Solutions and eLearning Experts. So to get started today I want to introduce some really important members of the Moodle US team. First of all we have Jonathan Moore, one of the founders of My Learning Consultants. Jonathan is an education technology strategist and a leader of technical services and he's been in the industry for over 20 years. Jonathan is going to be the CEO of Moodle US. So welcome Jonathan. Thank you Abby. We also have Kathy Robeson who's the former CEO of eLearning Experts. Kathy will be using her extensive eLearning expertise and her management skills to oversee the integration of the three businesses. Hi Kathy. Hi Abby, nice to be here. Thank you. I'd like to welcome Michelle Moore, also a co-owner of My Learning Consultants and Michelle is an internationally renowned as an online learning expert. Michelle's role at Moodle US will be to head up customer success. Welcome Michelle. Thank you Abby. I also want to welcome John Porton, who is the former president of Minami Learning Solutions. John has facilitated a number of very large scale client educational organizational contracts in his stellar career. And John will be overseeing our operations team at Moodle US. So welcome John. Thank you Abby. And finally, last but not least, of course, is Martin Dougie-Armes, who's our CEO and founder. So Martin, I thought I'd direct the first question to you. Why Moodle US? Thanks Abby. Well, look, this is very exciting time for us. This is a new thing for Moodle and what we're doing here is building something that will really serve customers. Moodle uses better in the US and we're bringing together all the best experts that we can and a lot of them are here. This is something customers are asking for. So there's a lot of requirements that customers have. They need help, they need support, even though Moodle's free, the actually making a solution takes expertise. And we've had a partner network already in the last 15 years or so around Moodle and around the world. And all the other people here have been successfully running Moodle partner companies in the US. But it's time for us to come together and be more cohesive, have very stronger services with a much larger team, able to do better support and better coordination of all kinds and particularly work with really large customers. And we already have some quite large customers we're working with and there's a lot of demand there. So it's all about that. And I'm interested, Martin, do you think the timing is important here? Are there things going on in the market that has made that more important at this time? Yeah, there's a lot of reasons for it. Online learning in general is still hitting its stride. We've been involved in a lot of us up to 20 years, but it was really only last year that you saw like an enormous uptake. The pandemic has really forced a lot of things and you see a lot of people using online, doing online learning in not such a good way. So there's a need for expertise and support and we have all this experience. There's also a real time for sustainability in the Moodle world. And like I was saying, we're really trying to build Moodle as a stronger organization that can work more closely together, with these thousands of people around the world to support the Moodle open source projects. And it's a really good step forward for that. And Jonathan, how do you feel about Martin's comments? Would you see, have you seen a change in the US market in recent years and perhaps around the pandemic? Are customers requirements evolving? Do you think? For sure. And it's kind of been a long, long standing issue in the market that structurally, it's difficult, especially for large clients for Moodle to put a successful formal tender forward. You look at the economics, you really have multiple Moodle vendors all doing a fraction of the effort that say Unified Company does. So we tend to spend probably more money as a group trying to be responsive to those requests for proposals, but on average have a little bit lower quality.  What are your security protocols? Give us some references of other clients that are in our industry, maybe in our region that are on par with a similar size. And so it's been kind of unfortunate where Moodle is really probably the most adopted LMS on the planet. But you have a tender command that you literally can't meet the requirements for on some technical issue of you can't have a reference with enough users of particular birds of the feather. So I think this really will fix a lot of structural issues where we can be more responsive to the market. I've spoken with lots of prospects that ask, well, why didn't you apply for that? So I think that's going to let us be a lot more responsive with clients and we have seen the pandemic is really kind of fast forwarded. You look, there's been a real kind of a rocket ship line by itself with the adoption of distance learning, but then the pandemic has probably moved the clock forward five or 10 years. At first we weren't sure if that was a temporary thing or a more permanent thing and it seems to be a more permanent shift towards using these tools. Yes, and I can see with that level of adoption that being able to service at scale is really important. And so these mergers of these business will allow you to do that. I'm curious to understand why you are such a Moodle advocate. Why do you think Moodle should be the platform of choice in both sectors, both education and workplace learning. Well, I, you know, I think it comes down to a variety of factors. One, it's a very capable solution. And it's a mature product that's been been around for a long time. The underpinning of that is how did we get here today and that's the open source nature of Moodle, where Martin had this fantastic idea, and invited a bunch of other people along to contribute to that. And then there's a stone soup dynamic where everybody's contributed a little bit to the stew, and it's become a really tasty stew. You look at, you've got a lot of great core functionality in Moodle. But then there are almost 2000 plugins that have been contributed by the community. And not everybody needs all 2000 of those, but you have you have kind of a long tail of functionality where maybe you need one or two of those to really meet a particular need within your organization. So it makes it quite dynamic and functional and then if that doesn't cover your needs with it being open source, we can get under the hood and and make it really like a custom glove really fit to the individual organization. So our philosophy has been to try to to a certain extent adopt the LMS to the organizations needs rather than vice versa. So I think that's a place where Moodle is really different than other offerings on the market. I like your analogy of the large under the hood analogy and sort of this notion that there's a very, very large toolbox there. And, and you connect that to its open source core. I mean, I know that's very important to you, Martin. You know, there is a lot in the public domain about open source versus versus proprietary software. You know, why do why is open source from your perspective, a better choice. Yeah, I've been working open source for about 30 years actually I was looking back at it. It's a, it's a very natural way to develop software actually it's, it's very natural to just give your source code to somebody. In fact, the proprietary method is in fact harder. It's much harder to keep software locked down. So, first of all, it's kind of natural but there's all these benefits that come with that you have these the four freedoms of open source so you can take it, you can run it, you can study it, you can modify it and then you can redistribute it. And those freedoms enable all this wonderful network effects so you get these communities you get, you know, like these people here in the room, who have come to know each other over the years just because we're working through this project. And there are thousands of people around the world, also with involvement in Moodle and we all work together to produce something that we can all use and benefit from. And it's sort of like academia, right? So you share research and everyone we push the needle forward and we all learn together so it's, it's great for that and it means that Moodle is very, very deep in functionality. It has 20 years of educators and developers just solving problems and sharing with each other and I could never have hired thousands of developers and teachers to build that open source was the way to do it. And at the same time, you have benefits on top of other software you get more security because you get people looking at the code and solving security bugs and more reliability. It's very flexible it's very customizable. And yeah, it's, it's open source is really the purpose of everything we do at Moodle. And it's the main reason why anything with the Moodle name on it exists because we are trying to build and sustain this open source project. Yeah, I really like this notion of people coming together. And I can see with Moodle US, there's the benefits of this history of the 20 years or so of development community that has come together and now you all come together. And can you give us a bit of perspective on what the services of Moodle US will be. Yes, that's something really excited about is being able to bring all three companies together. You know we have a lot of overlap that there's also specialty areas within each company. We're really looking at this as a broadening of the individual services of each, each company so Moodle US is going to be able to service really any usage and assistance that an organization would have around around the adoption of Moodle so kind of the bread and butter stuff is around how do we host the application how do we make it available online. And we have a broad set of services whether that's helping someone that has an on-prem installation, all the way to hybrid options and then full SAS type operation where it's turnkey and the organization just hands out all over to us. So we have that kind of technical piece. We have the part to service the open source nature of Moodle which is the development shop so a lot of organizations may say well I like Moodle but here I have to have a developer. And that's not the case and even if you do want a developer that's something we can we can provide and then do that custom glove. And then finally but probably most importantly is really the learning design side. So once, once you have the tool in place the tool is not really that valuable unless you're using it. And so we have a really great team and even broader team bringing everybody together that understands the research behind what's effective education, but also has a lot of practical experience of how do we implement that and then having worked in a in the service market for a long time, we can kind of balance those two factors around what's an organization's budget. Yeah, that's really interesting the whole area of learning design so making the most of Moodle. I'm keen to talk a little bit more about and I know Michelle that you're an online learning specialist. And that's your area of expertise and also obviously is in your role of heading up customer success. So what's your perspective what makes a customer successful so in this implementation of Moodle. Yeah, I think it really is it starts by looking at the organization's needs. Right, so we take a very customized personalized approach to an implementation, you know we're not just going to give you the same manual we give everybody this, we talk about, you know, what goals are you trying to achieve what's your vision for the learning experience what resources do you have. How do you want to work together. And then we work with the customer at whatever level they need. So for some customers, we have spent a lot of time talking through the instructional design learning design aspects right around content and the activities. And of course we are developing prototypes and templates for them to build their Moodle courses. And with yet others, we're practically embedded in their team, helping them with all aspects related to their Moodle implementation and whether that's work flows curriculum planning the whole breath and that's one of the things that I love about what we've done and what we're going to be able to do even more is that we're not just focused on the tool and the technology and telling you how to click the right button. It really is working with our customers as partners to figure out how to really create incredible learning experiences for those that they serve. And I'm really, when in bringing the learning design experts together across the organizations what kind of background to these people have are they educators or they come from technology backgrounds maybe both. Yeah, we're talking about just this integration. It is so cool to be able to bring together people that you know I've admired and, and, you know, in the space and to have all this expertise. So, gosh, I don't know on average how many years of experience and Moodle all of our folks have, but it's definitely significant. You know, having 10 years of Moodle experience is pretty common across our team. And then if you look at the practical experience we have people who have been working in the government compliance, you know employee training kind of things. We have people on our team who have worked in higher ed. We have others who have worked in education and K 12 levels. We really have people who have lived all of those experiences of our customers so they can really relate and know what they're seeing. And then we add to that all of the education and just engagement in the Moodle community so from the formal education point of view. We have people who have certificates on online learning multiple people have master's degrees and online learning or learning technologies, several that have doctorates, you know, in the area and have really studied that. On top of all of the wealth of information that people have drawn from the Moodle community and years of engagement there where people are talking very specifically about what works in Moodle and the best way to do that. And that's where we're helping define the best practice and also learn from the implementations of others. So, yeah, and so all of our customers get to take advantage of all of that experience and knowledge. That's a very deep pool of talent. And it is. Yeah, and that's awesome because the outcome for learners will be so much better. John, I'm thinking about customer success it's interesting to think about it from a learning design perspective but when you're working with really big contracts so very large institutions or organizations from a workplace learning perspective. They may have slightly, you know, a more a broadest definition of success I'm interested in hearing about that. Yeah, Jonathan hit on a couple of these points earlier but the reliability, the ability to scale Moodle to super large numbers of users and of course the, you know, security is, is a major criteria for success right now. Reliability has always been, you know, something that every customer needs. They're not able to provide but the last few years, the scalability is just gone off the scale. So we've got multiple clients now with academic clients with an excess of 50,000 users, we're supporting a government site that has nearly a million users. And these there were deals in the pipeline they're coming along and, you know, managing Moodle early any application that kind of scale takes a very specific set of expertise in terms of managing cloud infrastructure, security posture, those types of things. You know, we have existing clients also that, you know, colleges, universities, small medium sized companies that were running Moodle or Moodle workplace at a level that they could maintain up to the point of the pandemic and the pandemic just basically let everything on fire. So, you know, IT organizations, internal IT organizations were seeing usage levels, double, triple quadruple, and in some cases just really kind of expanding the point where it was beyond their internal resources and capabilities and that's what we've been able to step in.  Yeah, the pandemic has had a massive impact I can see on the need to scale, scale to serve clients needs. I mean it feels as if, if online learning wasn't already on an exponential growth is accelerated in a massive way. And equally that the notion of online learning as being a really effective way to achieve learner engagement Michelle I think is more widely understood now so you know we're not going to be returning to the traditional classroom 100% there will always be a hybrid model would you agree with that. I would totally I think it's really opened people's eyes as to what's possible and what's can be most effective. Yeah, absolutely. Well Kathy, I know that you are overseeing the integration of the three organizations and I can imagine that is a big job. How many people are coming together in moodle us. I think the last count is a little bit over 50. And then together between middle headquarters and middle us it's possibly over 150. So, it's been a challenge and it continues to be one but it's actually a lot of fun. The people involved are highly experienced. They're excited about the project no one's being dragged kicking and screaming into this. If anything they're basically sort of chomping at the bit to try to get everything done they they're they're ready to go. I understand to it at a really deep level, how important it is to get it right as we do the integration as we pull the teams together. How important it is to get to know each other how important it is to get to know how we want to set up processes and systems. I understand that there are enormous opportunities to this particular merger, and the opportunities involve better services to our clients they involve, involve wonderful work environments for the people who are coming to work for moodle us. So I think that they really have a lot of buy in on this and if anything they would like this to have happened a couple of months ago rather than right now. Many team members are already working together spontaneously to solve a lot of complicated problems for a variety of needs within all three organizations. They're developing ideas and thinking out ideas to become more efficient. They're already establishing strong working relationships with each other just naturally they have a lot in common, they have worked in the same industry, they do a lot of the same things and in a sense, they, I've been calling it the tribe. They are unique in their own ways that have drawn them to moodle and the middle community over the years. And as Michelle mentioned, you know, a lot of folks have more than 10 years of experience with moodle and that is true also I think for all the organizations. So they're, they're really comfortable in, in working with other people who are a lot like them as well, and with clients who have such a wide variety of needs. The management teams have been doing exactly the same. We're more alike than we are different. It's been a lot of work. We've learned a great deal from each other. But I think probably one of the most interesting things I found has been sort of opening the door on moodle headquarters team. And while we have thought a lot about our own companies, we haven't really realized to the extent that we do now, how much remarkable talent sits behind us now or with us. And that is awesome. Personally, I've had an opportunity to work with people in culture, which is just an amazing team in and of itself. I've had opportunities to work with customer success and I've even been working with DevOps, and everyone I've encountered is just so invested in the success of this project and in the success of the customers who are with any one of the single companies that are coming together, but also with the customers that come to us to moodle us as a new entity. The culture holds still a lot of work. No one will deny that. But there's not a team that's more prepared than this team is right now. They're just awesome people. Yeah, that's very exciting. Moodle is a global company. I know that's very important to you, Martin. You must be really excited about all these people joining the big global Moodle footprint in ways. I really am. I mean, I've been really wanting to get to this day of us launching. But as you've been hearing, all of these folks were very complimentary as well. The range of skills and the complementariness of it, like it fits together, it just seems like it was meant to be to come together under the Moodle name. So it's four companies coming together and I couldn't be happier. Fantastic. And we've talked a lot about the benefits potentially of Moodle services to customers in the United States, but they said benefits to Moodle. Moodle HQ is it sometimes known. But yes, so this is about the United States primarily and you know, I've even, you know, Moodle Moots in the US over the past few years. A whole lot of people have talked to me and they were waiting for something like this to happen. And I knew it was going to happen and I would sometimes say just wait a bit longer.  So now's the time to call us if you're listening. But it is focused on the US and it's a very particular US issue that we that we're that we're focused on together. So high quality services in the US, we have a network of 100 certified partners globally focusing on all the other areas. And they'll continue to do so and the partner network is still growing strong and we're getting into all kinds of, you know, sometimes quite tiny countries, all through the world in South America and throughout Asia in Africa. And that's, and that's really a big part of Moodle going forward. So no changes there. No changes to the community in the way we work with the community. The Moodle users association continues to be a really strong group of people who are helping set the roadmap and that continues as well. I think one of the major things that we are hoping to be a little different is that Moodle. Having this direct connection with services. We have an opportunity to actually strengthen the services of our partners by providing infrastructure and experience on this large scale hosting or hosting lots of people to just provide stronger services globally. And that won't be forced on anybody, but it'll be us, you know, doing the research and the development to provide those solutions and just make Moodle hosting and services globally as high quality as we can make them. Yes, it really is exciting times ahead. Well, if any of you got any questions for each other or anything to add at this point. Any final words, Mum? Well, I did want to reiterate about, you know, the balance of open source and commercial ventures like this that services that open source organizations need to be sustained. And if you look at some of the biggest most important open source projects in the world. So look at Linux. Most of the world all those dot coms all those unicorn billionaire companies completely reliance on Linux to operate. And that is mostly powered by services you look at companies like Red Hat and others. They're the ones who are providing the funding to allow Linux to continue and all of the collaborators will look at WordPress. It's over 40% of the world's public websites run on WordPress completely open source GPL license just like us. But they have WordPress calm and they have services that essentially funds most of that development. And we're no different in a mood also project that's relied on by over two thirds of higher education around the world. A lot of companies and corporates a lot of K 12 all education sectors. And I think we all owe it to all these people and all the world to keep open source projects live and the way to do it is by services and that's what we're doing here. And in addition, it doesn't hurt for us to have even more contact with users. So we just really want to hear what people want, improve the products and get that virtual cycle going where we all win, win, win. A cycle of improvement. I think that's a nice. It's a nice thing to finish on. Well, I want to thank all of you for coming today. Thanks Martin, Jonathan, Michelle, Kathy and John. It's been great to talk to you. If you have any questions, please don't hesitate to click the link on the screen and we look forward to talking to you again another time. Thank you.


Hello, everyone, and welcome to this presentation about a package and Debbie's little cousin and This presentation is a recording and so feel free and to put your questions on the chat window and At the end I'm going to be available to go ahead and answer those Okay, so a little bit about myself a This is how I look like so if in A Better world where we can see each other at conferences again. You see me in the hallway Please say hi come say hi and and we can talk about a package or about a You know these are the projects that I've been involved with and so I work for and I the company that Used to be known at National Instruments just went to a rebranding and my involvement with open source goes back about 10 years and We create a we have a platform of embedded controllers and we need to modernize that platform and so around 2010 we decided to use a Linux with the preemptive patch and a group was created to Build a distribution which we called it the NILs real-time distribution that distribution Was based on a open embedded a joke though And which got me involved with those projects and our software stack is pretty complicated it has a dependency Tree that is very wide and deep so quickly we started a Heating the corner cases and limitations of a package the package manager that is used and by open embedded and so when and There was an opportunity to step up since the previous maintainer and was already longer able to to maintain a package I Step up and became the maintainer and I've been the maintainer ever since since 2015 Below there are some other projects that I I'm involved a Jupiter hub and a soul stack So today I'm first gonna give you guys a historical context on the project Then I'm going to dive into the architecture Then the most interesting part of the architecture is the dependency management solvers So I'm gonna be talking about The both the internal solver as well as well as live solve then I'm gonna finish up with a some ideas of Where I see the future work on a package and there's gonna be some time to answer whatever questions Do you guys may have a please put those on the chat? So let's start with historical context and A package is based on an eye package. I package was created in 2001 by Carl Worth a Which is a long-time Contributor of open source and maybe better known for being the creator of a live Cairo to the graph library for Linux And I think a G its name comes from It's a bit see package manager and he started just as a shell script But as it started to become a popular it was rewritten in C and It was originally created for the links is a NS Ella are you to which is the appliance that you see on the right? And it's basically this appliance that you can connect to a Ethernet and you plug in USB sticks and then you got you have network storage and this platform was running and embed linux distribution However the project Lost momentum and the last non-commit was in mid 2007 so fast forwarding to 2008 and There was a linux distribution called open moco and which was targeted for Smartphones when smartphones started to to become a thing Open moco started using a IPKG as its package manager But since IPKG was no longer maintained a patch is starting to pile up and they decided to fork Since there was a trademark on IPKG and they decided to call it a package though from a open moco Then around the same time Marcin decided to Also adopt a package for open and better open and better at the time was using IPKG as well and all package it's actually Two projects it's a package and then all package utils which is a repo with helper scripts For example, there's open make packages which creates an index Make index and and there's a package build which is another script that helps you build packages and and this Scripts are used by OE to So open moco lost momentum to you because Android became the de facto standard for in UIs on on mobile and then most of the Efforts behind the development of a package moved to OE and below is a list of previous maintainers Thomas move with Dick Chen Graham Gower and before me a Paul Barker so all package now and Right now. It's under the jocto project project umbrella. They provide get hosting as well as the boxy la ticketing system the mailing list is on Google groups and I'm maintaining it and I'm Releasing it twice a year. So June and December. So there's an upcoming release And within the next few days And and I will say that at this point all packages is premature And there was work that I'm going to be covering later on the presentation and to create a plug-in solver and back end Which vastly improved the project and I'm also most of the features that you will expect from a package manager They're done So if you're considering a package manager for for embedded I am highly encourage you to take a look at all package Okay, so now I'm gonna be covering and some of the architecture I copy this quote from the original IPKG FAQ and It's basically saying that and All package should try to Do things like Debian does unless there is a very strong reason not to you And and I will say this is kind of like the golden rule of a package development it is all over the source code and At the very least that's something that I follow Very closely so if there is a bug report I try to see how Debian handles it and I try to model a package after that You may also ask and there's already very good package managers. Why do you need another one? Why not just use Debian a deep package? There's a few reasons some of them are a historical to me The biggest one the one that resonates more with me is is size So here I have benchmarks of an OE build of the Smallest image which is called core image minimal and with the different package managers And if you use RPM the package manager is gonna be DNF Which is based on Python and that's going to set you back 245 megabytes and if you use The package the package has dependencies on parallel and that's gonna cost you 37 megabytes And then a package since it's written in C. I only has one hard dependency Which is leave our archive is just gonna be 4.6 megabytes So big difference the internal structure of an IPK the packages that will package handles is super similar to a Debian package and you have an external and our file and Inside you have a your root FS in a data dot are and compressed Archive and then you have another archive where you have your Control file as well as your maintainer scripts So you have things like your pre-installed post-installed pre-move post-remove Which are scripts that run at specific times during installation remove also upgrades to give you hooks to Raise their things with the system a star services, etc And there's also an optional com files a file where if you have a Pats there those are considered com files So if you are upgrading a package and a com file was changed a backup is created And there's another optional file called MD5 sums so if you have that file with paths and MD5 sums you can run a package verify and that's going to Make sure that the files that you have on your file system has the same MD5 sums it as you know the files on the package and I have involved the Pieces that are required and the other ones are optional and on the right hand side of the screen and I have An example control file and on red. I have the fields that are and required the other ones are optional So really you just need a package name version and architecture To be able to to have a package install a file and that's different than than Debbie and Debbie requires more stuff So differences from the package There are a few and I'm going to highlight a couple The way architectures are being handled is is quite different and And on a package a you can define for specific targets which architectures the target is compatible with So for example, how do you define that in com files? Here I'm saying that this example target is compatible with architecture all x86 x86 64 core 264 and x64 and On the right the column the right does the priority so if you have a package that It's Available on multiple repos you will use the priority to determine which one you should install Following on the example, I'm defining three repos one for the architecture all One for core 264 and the other one for x86 64 So let's say that all of them have a busy box if you do a package install busy box You will install the one with the highest architecture, which will be the one on the repo for core 264 And and this is different than the package on the package targets have a fixed architecture And then the package being installed has to match that architecture And there's some flexibility like you you have the option to use wall cards or there is they all are and any architecture but In general is is more rigid The other difference is that a whole package tries to be a simpler So what I'm showing here is the state diagrams For a few operations here's the the one for install So when you install There's a set of things that that happen you first run your pre install script You unpack your files, and then you run a post install script And on the package there's basically more and fail safes so and if your prints prints a script failed The package has a way to recover from that. So you can basically call your post remove script with a specific in a parameter call abort install and You can have a code in your post remove with a case structure to recover from that and then if you can recover then a You end up in an okay state instead of on a half a Install state that will require some manual intervention to recover from Here I'm showing the diagrams for remove and as you can see is super similar the difference being that and The package has a way to recover from a Remove a script failure The last diagram is for upgrade and I'm really not gonna go through this diagram is Super complex as you can see What my bigger point is that Deep package tries really hard to to recover from problems that you can have with scripts and All package takes a simpler approach approach saying well even script failed Doing a bad state and you may need to go ahead and Follow some mental steps to recover Okay, so here what I'm showing is in the recipe for the latest version of all package and what I wanted to show here is that all package has only one hard dependency and that's on live archive and It has this dependency because a via live archive all the different type of compressions are supported and doing that with custom code a Was hard that was done in the past, but you know was Was a limiting factors and so and back in a package 0.3.0 and Hard dependency of live archive and was added There's a bunch of other things that you can select to to use for example, if you want to use and And Reposigning you want to you may want to enable GPG and if you want to use coral instead of a double you get then you may want to enable coral and The other one that is very relevant here is live solve and If you enable live solve then you will have a dependency of the external library live solve But then you will get a very powerful and solver for dependency management And I just to give an idea on on on space. I think live archive adds about in 600k all package by itself is about in 200k and live solve is about a 500k and this is on an x64 architecture so before we move to solvers and I want to talk about the Package ATS. This is something that pooled and Barker did And I think I think is great. I like it a whole lot. It makes my life so much simpler And so the way it works and is that it's Python based and you can define different scenarios and To check for for example here. I'm saying there's package 8 which depends on B and then there's package B And let's write that down to a package file run or package update and then install a Make sure then that a is installed if not error out and make sure that B is installed if not error out And I'm mentioning all this because this this is terminology and that I'm going to use on the rest of the presentation Whenever we go to a few and scenarios Okay, so now I'm going to be talking about and solvers so and There's been changes in a package since version 0.3.1 that Improved the solver a mechanism a whole lot so before in versions previous to 0.3.2 and I'm going to walk you through how the dependency engine worked So what I'm showing here. It's a scenario where you have package a that depends on both package B and C The green arrows mean it depends and then package C conflicts with D. So the red arrow means conflicts so if I say Install D Then we go ahead and install D and then if I say install a Water package used to do is that it will do a depth search and depth first search So it will start on a and say well and a depends on B Then it's gonna say hey does be has dependencies. No, B doesn't have dependencies. Let me go ahead and install it Then it will go and say hey does C have dependencies and say yeah, it depends on D and This it conflicts with D and this already installed It will error out, but then your system will be polluted because B will be left installed And so this was a major problem. It was basically installing as it was solving. It was a one operation So on version 0.3.2 and I split the operations to solve first and then Modify the file system. So see this is the exact same scenario You have a depends on B and C and then C conflicts with D So you will first solve so her here. I'm saying Let's install D and then let's try to install a During the solving a portion of the operation and we will determine that there's a conflict. So we'll say I Cannot continue and your system will be left Without modifications this second scenario is just Showing you how a successful operation will look like so We have the same dependency graph and then we say let's go ahead and install a the internal solver will walk to the dependency tree and We'll determine that this is solvable. So then it's going to pass all the things that need to happen to the second part and of The process which will go ahead and install a B and C So this was a great improvement Over what we have and however the internal solver remain and Remain to be ahead that honestly and it was the main cause of bugs And and it had a lot of tentacles. So if you wanted to Implement something new you will modify a certain area of the code that then will be Affecting other use cases there. It was very tightly coupled and And it was hard to modify. It was a very complicated. It is a very complicated code On the other hand dependency management is a very well researched topic. So with all of that and I managed to Convince my boss to get an intern that I could work with and to go ahead and Add support for and leaf solve dependency package dependency management library and so I got a chance to work with Eric you and We were able to add Leafs of support a tool package, which was a A major milestone. So what is leaf solve and? Leafs of is it was created by Michael Schroder and from Susie in June 2007 doing a hack week and is library that Solve a dependencies for packages. So what he did is that he grabbed a Mini set, which is an open source library that implements a specific type of sat solver And it's actually very small. It's like six hundred six hundred lines of code and and he re-implemented it both added a package manager specifics. So and for example when when you are solving you want a Favor to leave packages that are installed and installed on the system. So he added those heuristics and enhance a The core algorithm of mini sat to then have a library that is very well suited for a package management dependency a resolution and To me my point of view was this is a very hard a Domain and there are domain experts. So Let's delegate all that to them and and I can focus on in another areas of the project so and Leaves off a was created by open Susie and is used on seeper and on and Other package managers that are RPM based. So what about Debian and Debian has also been experimenting with Sat solvers What they did is that they created this protocol called EDSP external dependency solver protocol and then you can choose I've been installed a solver and use the dash-dash solver flag to tell the package to and I'm sorry a pity get to use a different and dependency solver So package could have used a Similar mechanism or could have plug into EDSP But honestly leaps all these working so well Michael the maintainer is very responsive and he either has guide me into Into the leaps all code base to to fix my own errors or in my own box or he has fixed them for me and That right now. I'm very very happy with Leapsolve and a nice project could be to enhance or package to also support and EDSP Backend but right now like Leapsolve works really well for us Okay, so on the next couple of slides. I'm gonna get covering a sat solvers So, where are they? And they're soft software engines that try to solve the Boolean satisfiability problem So the Boolean satisfiability problem What it's about is that if you have an expression like the one at the bottom The symbol next to the a means not The problem says okay try to find values of a b and c that makes a that expression true And and this problem is NP complete. So it's very hard to solve in a generic way And but sat solvers try to use heuristics and they have been very very successful And sat solvers are not only used for dependency management. They're widely used for a EDA or for routing on FPGAs with millions of variables and So following this example Let's say that you have in not a or b and not a or see if a equals true the only way that That expression is gonna be true is if b and c a are true and That's the solution and it means that that expression is a satisfiable So once that I set a to true The first clause became false or be and the second clause become became false or see The process of determining that b needs to be true and c needs to be true is called unipropagation And that's something that I'm going to cover in a few slides Okay, so how do you sat solvers on package managers? This is kind of what Leavesoft does You first need to Translate your package dependencies into what is called a disjunctive Boolean clauses. So only using or's And I here I have a few examples. So you have a dependency like a depends on B and C you will say Not a or B and not a or C because if you think about this and If a equals true, it means that it's installed in Then B needs to be true and C needs to be true and that's basically a reflecting that depends a relationship and the conflicts a relationship is a Express with two knots because if a Equals true and then not a equals false. So then Basically both cannot be a true at the same time In the last one, I'm saying if a depends on B and there are two versions Then you will use two expressions the one saying well a depends on both B1 and B2 and Then you have an and and another clause when you're saying that B1 and B2 cannot be on the system at the same time and You then translate what you want to do a In bullet losses or install a is chose a remove B will be not be You solve and then you're going to get either a Solution saying this is so bubble or or non-solvable and then you get a list of transactions that you need to apply to Get the system to the correct state And So lips off is a specific type of set solvers because they're different types Is what it's called a conflict-driven class learning set solver some helpful And and this is how it works and don't worry if You don't get all of this. I'm gonna work. I'm gonna walk you through a An example and after this live So basically you start saying you start doing a unique propagation first to make sure that You're in a good state and then you initialize something called the decision level to zero and Then as long as there are on assigned variables You do an assignment and this is where the package manager heuristics Coming to play so you will for example favor to leave packages installed or try to favor And the highest versions of available packages And after you assign a variable you increment the decision level You do you do you need propagation? and And you keep track of everything that you're doing on an implication graph If there's a conflict and you go to your graph try to find out when the conflict happened You then add a clause that is the negation of the assignment that led to the conflict and you backtrack To the decision level before the conflict happened and so if you think about it a Conflict driven clause learning sat solver is is a backtracking algorithm. That's why it is Okay, so this is an example. So in this example, I have a package a That depends on X an X is provided by two packages So it can either be provided by B Which has a conflict with D or by C and So And if these installed What you will expect is that a X will be provided by C the one that doesn't have a conflict So you will end up installing a A and C And an insolver notation, this is how it looks like and the first clause is saying a depends a on B or C Then you're saying a B has a conflict with D and I want to install a and Let's work through through that expression Okay, so you first a set a equals true because a is what you want to install Then you do you need propagation So if you set a equals true and you're going to end up with the first clause being not a false and Then or B or C and the rest is the same and then the last clause is going to be a True you then select a variable to set and that's when a you use package manager a heuristics so which is D because these already installed so you set the equals true Then you replace D on the expression And The first one is gonna stay the same then the second one you're gonna end up with not be or false The third one is the same Then you do you need propagation because on the middle expression the only way that middle expression can be True is if B equals false With that you end up with this expression and Where the only way the first expression can be true is if C equals true and and with that you have a Solve expression that is satisfiable and is that satisfiable with the values of a equals true and B equals false so it stays uninstalled a C equals true and D stays Installed so basically that's trans translates to install a and C which is the correct solution and So yeah, so solvers are great and there's one more scenario that I want to a Walk you guys through that I think is a Shows the power of of sat solvers. So in this scenario I Have a package a at version one that depends on B And then I have package B at version one and I Say let's go ahead and install a so as you will expect you will install a and B version 1.0 But now let's say that you add more packages So you're gonna end up adding a new version of a 2.0 and two new versions of B and B version 2.0 doesn't have conflicts but B version in 3.0 has a conflict with a So you can think of it as as this You have one version of a 2.0 and two versions of B But the higher version has a conflict a with a so this is this is what happens and With the internal solver of a package and a is correctly upgraded to version 2.0 But B stays at 1.0. It's not touched And and this is the same thing that the package does it will upgrade a and it will leave B Untouched a A package a with leaf solve a is smarter than that and it will upgrade B to 2.0 Which is arguably a better in end state So such solvers have the power to to be able to to figure this out Adhoc solvers They try to just a favor higher version. So they try The highest version of B and then if that's a Non-installable they give up and say well, okay, then I'm not gonna touch B and so with all this and kind of what I'm saying is that and Use the leaves all back end If you can spare the 500 K a Is great. It works really well and and on the code base a I'm De-prioritizing fixing the errors on the the box on the internal solver Because lips off just work so well and with only it's the default So if you have a build avoid by default is gonna be including Lips off so future work and I'm terrible at drawings So if some of you want to collaborate and are good at logos and that'd be great and the build system and Right now is based on auto tools and is it could It could use a Modernization so I'm thinking CMake and Right now I think is is overly complicated and Error handling in a package it's Is not that bad, but it could it could be better I think this that that's an area where a the code base needs to be Improved and The sister repo to a package or package tutorials where a lot of the different utilities exists and I Think that repo is the one that it probably needs the most work and it's It could use some cleaning and Date yes, I like it a lot a With a With a language that that I just show you Is very easy to you know, whenever I get a bug. I first go and try to replicate the bug in the ATS and Make that test fail then I will implement my My fix I will run and make sure that it works So so it's great, but it's not it's not exercising a lot of different config options So that's something that could be improved on and Right now there is no website. That's something that's been on my radar for for a while and and Also, I want to talk a little bit about a open WRT and I'm gonna do that in the next slide and but the last bullet point. That's the link to The open bugs and we have a little bit over 40. So that's another great place to to start if you want to engage with the community and with the project which Which would be great So open to a WRT and That's a as you probably know Alino distribution that runs on routers is very popular and And they run a whole package But they basically forked a package on a very old version and then they're doing cherry picks and Back in 2016 there was an effort by Floreen a grandi to make a always old package a Support all the things that open WRT Required so I work with him We putting a bunch of package, but in the end the effort was not picked up and by the open WRT community and and I Feel like there's duplication of efforts every time that There's a split it sounds to me like a like a missed opportunity So I'm not sure if you guys saw this but There this was all over the news. There was a security vulnerability on the O package open WRT fork and The vulnerability did not affect a OISO package. It was on specific code of open WRT and was pretty bad It basically and allowed you man the middle attacks that will let you and bypass a Consistency checks and so you will be running a arbitrary code on on on your router And and the first thing that that I thought when I saw this is if we were on the same code base and Maybe this will have happened so and If there's someone from the open WRT community and it's interested in emerging the code bases and please reach out and I would love to do it. I think some of the Specific things that open WRT need Like being flexible on on on what you link to so you get small binaries is something that we can work on and so yeah, if you're interested, please reach out to me and With that and let's go ahead and go over questions. Thanks again for Listening to my presentation and hope to see you in person at some point in the future. Hello again. Thanks for Watching my presentation. I'm not gonna go over and answer some of the questions that you guys put on the chat window So the first one says How does a package keep track of the install packages? Does it maintain like the package a database containing all information about install packages? Yeah, the answer is yes. It keeps It actually uses the same format so it stores in a status file and in that file you have Package metadata and it and its state So it says like if a package is installed or if a package is half installed And I think it's using a pretty much the same Format as the package and also when you do a package update or package goes and it gets all the metadata and For the different fees that you have configured and is also stores that metadata in in files in the same way as The package or APT. Okay So the second question says Why not give the option to build a package without the ad hoc solver? How much memory will that save? So effectively when you configure a Package to use leaf solve you are not compiling the ad hoc solver So I didn't mention that on the presentation, but but that's how it works. So if you use a Configure dash dash with leaf solve and You're not compiling the the internal solver Which makes it a real pluggable architecture. So if we wanted to add a new solver You know, you will not be paying the price for the Leaf solve or ad hoc solver a hook ins This next question says has you considered mess on for the build system? Hmm And I have not I'm I'm pretty open to use to using something more modern over what we have and so I'm not super familiar with mess on I more familiar with CMake, but I'm certainly open to and Collaborate and use something more modern. So and So, so thanks for the tip. I'll definitely look into mess on The next one says and I think open WRT changed the package format Won't that be a problem to match them? Hmm. Okay. I was I Don't have enough information to to answer this question I will think that as long as the format didn't change in a very fundamental way and I Will be optimistic. I think I think there are ways to accommodate even changes on the format as long as The control file stays the same if it's just like packaging around it the way And it's being compressed et cetera. That's something that I think we can work on and All package has a lot of different Build flags as well as a runtime flags with the main idea being and That you just fine-tuned to to Whatever you need you make the trade-offs that that makes sense for you. So I can totally see having a flag for for different formats being a thing and So the next question says have you compared a package to? APK as you see now by Linux. Oh, okay, huh. This is a very good question. Um, so I saw that coming on the mailing list. Yes, there's there's some interest on APK and I meant to look into APK to to check was a house. It's a dependency management and I haven't done it yet. And I know APK is super popular for Alpine Linux and So so I think this it's a good conversation to have and it's happening on the emailing list, but we we should definitely Look at the merits and of APK and to see if like it makes sense to have a another backend Sorry, not another backend another Package manager added to the family of always supported package managers okay, so William is a saying that He thinks that open WRT replace are with another tar Yeah, okay, so that would be an easy one. Actually, I think right now a package already has support for the Other layer to be tar instead of our so if that's the only thing that change a issue either Already work or it should be in fairly simple to to get it to work. Okay, so That's all I have and If there are no other questions We can finish the session and thank you so much for a Being here and if you want to continue this conversation and I'm on the slack channel so a ping me and we can talk more there