Look it's over this season is over just punt it just move on Mavericks. It's the damage is done. Oh Yes, we'll talk about that too because they have to look a little bit into the future on that But Dallas has lost six of their last seven They do have their last three games all at home against Kings Bulls and Spurs shams as far as the mindset of this team heading into These final three games. We won't go in the offseason yet. That's coming. But what is it going in the last three games? Well, I think the Mavericks have to seriously look at whether you shut down Luca Dante and Kyrie Irving these last three games Maybe two games of the regular season. This is a team that is one game out of the play-in behind Oklahoma City Oklahoma City I believe has the tiebreaker over them sir There's there's essentially two games out of the play-in with just three, you know four games left So you have to see what happens with Utah what happens with Oklahoma City between now and Wednesday The Mavs don't play again until Wednesday at home against the Kings I'm told that the organization is seriously considering the possibility of shutting down those three guys They have a top 10 protected pick So being out of the play-in race it behooves them not to try to keep their pick and at that point You have the flexibility of having that potentially top 10 pick You have three first round picks that you can trade this offseason to go get a Star and potentially more players in the marketplace. They're gonna be one of the more active teams So you go get Kyrie Irving who's playing at an elite level you try to go get him Luca Dante some help And you have two guys and in Luca and Kyrie that have been playing through stuff Luca's dealing with a thigh injury Kyrie's been playing through planar fasciitis. So they clearly need more depth on this team You know Kyrie Irving even though he's played at an elite level most of his time in Dallas He just has now clicked so far for this Mavs team as a unit And I think you're gonna start looking at them over the next few days Look into what exactly they want to prioritize going into the offseason Yeah It's it's devastating the kind of the run that they're on right now And it's the exact opposite of what happened for the Lakers has happened for the Mavs. They mix things up They make a big trade they bring in Kyrie Irving and it has just been bad They've gotten even worse defensively. They don't have depth. They still lack size Their big guys don't give them a lot of production And this doesn't all fall on Kyrie Irving. They have to find a way to re-sign him They gave they gave up way too much to not but I'm also I can't just shut down these guys right now I I see what happens before Wednesday before they play next You know, you're a better team than Oklahoma City You know, you can hang with them New Orleans, Minnesota and a play-in you have the talent if on them I ride out this season. I don't care about the pick yet I think I have enough talent with these two guys that I just get into the playoffs Anything can happen and and they've dug themselves a huge hole But I can't with those two guys on my team just shut them down when they're still even a glimmer of hope I'm just riding out. You're about to have five or six months off Riding out happens, but man, this has been a fall from grace all year long We're talking about the Lakers and how bad and they're not gonna make the playoffs and the Mavs were a lock And now the last month they have just completely smoked it. They're dealing with injuries. They're dealing with chemistry getting guys You know comfortable with each other, but this has been a brutal stretch and absolutely And it'll be even more devastating if they don't resign Kyrie See, I find that to be very interesting because you and Choms have both now Alluded to the fact that they're just gonna sign Kyrie and keep this thing rolling Eddie I don't know. Do you run it back with both Kyrie and Luca or do you try to change this thing? I mean, I think technically they almost have to as far as their cap situation goes and If they don't use that money on him, it's not like they can spend it elsewhere in the summer They I guess they could do a sign-in trade of sorts But then you run into that situation where what is the market for Kyrie? Can you trade Kyrie for 40 million dollars of stuff coming back? I don't know that that's true I think the trade deadline told us it's kind of iffy and And and things have gotten worse since then not even with Kyrie. He's actually played fine But there's just that marker of like what does he do for us? And I think I was a great player and I think he played tremendous I think it was ridiculous last night hit a clutch shot late that layup We just showed and he can be valuable to the right team But I feel like there's gonna be a lot of team sitting there going. I don't think we're the right team So yes in some senses Dallas is essentially stuck and then it turns into what do they do around those? Two players from there It's been tough. They've lost seven or their last eight games. They've been awful defensively They gave a 129 points to the low scoring team in the league the other day a team where Jimmy Butler may or may not be trying It's it's it's a lot and they just continue to have these issues and on top of that like you know The morale on that team like the quotes that are coming out of some of these scrums are just like those guys are ready for vacation I'm with Chandler.  So like Chandler said to not bring him back I think would be so much more devastating for that organization than bringing him back I think the feeling that you would have if you if Kyrie Irving walks Let's say to a Phoenix or to a Clippers or another organization and you don't get anything back for him There's no such thing for the Mavericks as let's see how life is with no Kyrie Irving and let's see if this team is better Because at that point you literally reach rock bottom and then you're looking at Luke Like you literally have to look into rebuilding because there's no way to maximize that roster hold and that money from a financial perspective So I still believe the Mavericks first and foremost priority this offseason is bringing back Kyrie Irving on a deal And then from there you have three first-round picks You have salaries to go out in the marketplace whether you want to go get a star player whether you want to get other You know rotation type of guys they clearly need bodies in the front court on the wing So you have to try to rebuild this team around those two guys and figure out what kind of town you can get in here Luca Dodgers still under contract with a player option through 2026 So it's not like they're here with with kind of the time running out on Luca Dodgers It feels to me like and look by the way I preface all of this by saying these are two amazing players in the league But that doesn't always work just because you put them together. That's not the right formula It feels like this maybe was a mistake But now we're gonna double down on this mistake because you feel like you can't do anything else So it's a it's almost depressing if you're a maps fan But Jason kid mark Cuban especially mark Cuban right now because we know how competitive he is about his team How much pressure Chandler's going on in that front office and to be a fly on the wall I would also like to add because again Jalen Brunson would have signed for four years 55 million dollars But anyways, that's neither here nor there. How much pressure do you think they're putting on themselves? There's a lot of pressure and it definitely hasn't gone obviously the way that they expected it They thought this is going to turn around. They were so excited They thought this made them one of the best teams in the conference if not the league and it just hasn't and it hasn't worked and again It's not Kyrie Irving. It's not look at all. It's collectively this team's just not working. They don't have defense They don't have toughness they need they have so many holes where the talent of Luca and Kyrie is not even able to carry them And like we just touched on and you have to resign him if they don't and this is just a three month rental And you gave away two starters and all those pigs It's one of the worst trades ever if they don't resign him So I don't care if it's not if it hasn't gone as planned I don't care if it if you're gonna not make the playoffs you have two generational talents And that's attractive to free agents this summer. That's attractive Wanting to make a move and come join those two guys and They're gonna forget about this month. They're gonna forget come this summer one of the they sign a third guy We're then talking about how good the Mavs are next year and they can't be that without Resigning Kyrie Irving and losing all that stuff. So this it hasn't gone as it hasn't gone as planned But yeah, they have to double down. They have to resign him or this is brutal Wow, what a what a weird circumstance to put themselves in


What's good y'all? Chris from jassescasebrace.com. Don't be shy. Have some more. It's 2022 Top Swap Star Baseball 8 Box Capes Break, PYT number 7. Thanks again y'all for getting this done. We are absolutely cooking tonight. Let's switch on over. PYT style. No fillers needed. We have been rocking Jason once again with the Last Spot Motrographs. A lot of spots in this break. Good luck Jason. Good luck everyone else for getting in. Jonathan, Rick, Debra, Nathan, and Steven. Thanks again y'all. Very, very much. Always fun to do the 5 star. Always appreciate hanging out with y'all. Y'all keep me company as well. I've got PYT 8 up on the site right now. I think that's what I'm putting. I'm gonna call it. Well, it's done or not by midnight. So 30 minute deadline. It's 11.30 p.m. Pacific. It will be our last break of the night. But for now, let's focus on PYT 7 of 5 star. Good luck everyone. Thanks again. We've seen some really cool stuff. That 5 star with the actual 5 players auto the last box, box case. Starting off with Jake Myers. Working for the Astros. Going to Nathan. We've seen some metallic penmins. We've seen the metallic inks. We've seen the Pertanamus penmanship. We've seen patch autos. Let's get something. Let's keep that triangle. Let's keep it going. Get something nice here. Some gold here. Gold ink, gold graphs. For the Cincinnati Reds 6 out of 10. It's the Hall of Famer Johnny Bench. Cincinnati Reds going to Jason K. How many baseballs can you hold? Like a dozen? A dozen baseballs in both hands? 6 out of 10. On the golden graphs. Johnny Bench. Too big. The little too small thing. Hoy Park working out for the Pirates. Jason K. Grab Pittsburgh. Hoy Park. For the White Sox. Purple. 21 out of 50. Frank Thomas. Who signs his card middle middle on this product. Whether it's deliberate or not. That's for you. The big hurt does it. 27 out of 50, excuse me. One feels light. Crops for redemption or a shadow box. It's going to be both like the last time. It's going to be a redemption. Card two. Good luck, everyone. First up, though. Hall of Famer, Fergie Jenkins from the Chicago Cubs going to Jason K. Usually about one redemption per case. Let's see what we get. Good luck, y'all. Steve A. Five star autograph jumbo prime card green foil parallel. That is a mouthful of E. W. A oldest Chapman Yankees going to Jason K. Let me see what that's going to be number two. Jumbo prime card green for the Jenkins. That jumbo patch looks like greens are out of I think 25. I don't see anything about that prime. Double check. Let's go. I think it's what it is. Jumbo prime. Double check. Yeah, five star auto jumbo prime football for a second. Five star auto jumbo prime checklist greens are out of 15. So a nice Chabon patch and auto out of 15 for the Yankees and Jason. Maybe they don't care. Maybe front comes like, no, I don't care. You guys pay me to do this. You know, I'm gonna have to do this. I'm making that. What? What? What?  Nutrinix? What's that called? I'm doing that. I don't need top 20. Go to Panini. I'm making that and we'll be the show money now. Box four first auto. Nice golden graphs nine out of 10. Kansas City Royals wit Merrifield Royals picked up by Steven. I think that's our first besides Nathan our first one since Nathan. That's not going to Jason. Nice wit Merrifield golden graphs gold out of 10. And the big unit. Nice Randy Johnson. The true like last spot mojo. Nugent. I don't know what's called Frank Thomas and you know, whatever these other guys are big unit base auto nice one there for the Dbacks. I don't want that. Second half of the case here here is box five. Randy Rosarana. Auto for the Tampa Bay Rays and Jason. Exactly. You gonna say no? You're gonna say, hey, you're doing this wrong. Next up for the Minnesota Twins Hall of Famer, Rod Garoo. He converted 15 out of 25 Minnesota Twins going to Jason. Frank Thomas is already big enough, you know, but he's bigger. Box six. Stewart Fairchild, rookie auto. One out of 75 Arizona Diamondbacks and Jason. Be careful handling this card chip on the side. Next up. Pudge. Pudge Rodriguez. That's gonna be Marlin's edition. Four of Marlins. Now Miami Marlins, the Hall of Fame catcher. Going to Jason. She'll like it. Hey, she'll like it too. That's us. But the autos. Yes. Yes, sir. Mr. Thomas. Alright, second to last box here y'all. Let's get out of the banger here. Gonna be Jose Beria's. Toronto Blue Jays. Jason. For the Guardians. Nice. Jose Ramirez. 29 out of 75 Cleveland Guardians. Going to Rick. Joe Ram. Switch hitting third baseman stud. If I can be a little biased about my Guardians. And the last box of PYT 700. PYC 8 on the site right now. Stick around for 20 more minutes. See if it gets filled out. If not, I'm gonna kick it. But here we go. Last box. Thanks again y'all. Appreciate ya. We got a graphs here. Maybe a signatures. It is silver signatures. It's for the White Sox. It's Yosemite Grandal. Eight out of 30 for the White Sox. That silver angle looks super nice with the White Sox uniform. Chicago White Sox. Jason. Very nice. And the last card of the break. For the St. Louis Cardinals. It's the reigning NLMVP. It's Paul Goldschmidt. Base auto going to Jason. Nice again y'all. Nice fun case. The case hit that jumbo prime patch and auto. It was also the redemption. So two burns. One stone. Thanks again. PYT 8 and more on the site right now. Jasper'scasebreaks.com. Thanks again. Bye bye.


Hi everybody. I think everybody's joining right now. I've got nine participants, so I'm gonna wait about two more minutes. While we're waiting, make sure you have your email open. I've already sent the first assignments. Already earlier this week, I sent a lecture. I'm not going to give that lecture, so that was really the idea of background material and more of a flipped classroom design. A paper that is just in case you're interested in reading about an application and probably most importantly getting started documents, which gives you instructions for downloading the software. So gather the documents from your email and then we'll get started in a minute. And I also just started sharing my screen and you'll see that first assignment that you all should have as well. All right, I think it's about time to get started. Now that I'm screen sharing I see I don't have all of the controls anymore that I have when I'm not so I may now and then stop sharing my screen so that I can reach all the controls. I have let me see if I can pull that up a chat screen that you can use to and I see I have one chat. The chat box so we can use that to let me know if you want to say something. It sounds like I'm the one that can unmute you so that you guys can talk. Let's see I may be able to allow for you to unmute yourself. I think what we'll do is if you can use the chat box if you have a question or you want to say something and then I can unmute you right here. I did just give everybody permission to unmute themselves. Okay, okay, but they will need to do it if they want to talk. Okay. So that's handy so you guys can unmute yourself if you want to. To do this, you can see the the exercise that I've put up. I put one slide up from the the presentation that I've sent you. The eco path with ecosystem software is designed to be very user friendly so what I would like to do today instead of you guys following along with me completing values and parameters into a model is that you build your own model. And really by doing that realize that it is, you know, something that you can easily pick up, even if you don't have a background in this. I think that there's a raise hand function as well but I'm not sure can I can somebody raise their hand so that I can see if that works. Okay, I see indeed Sarah raising her hand. It looks like those since I don't see everybody at the same time on the thumbnail that it may be handy or just just type in the chat box if you want to say something. Or if you have a question, because if you're not I see Karen Kira raising her hand. I think if I don't see you on the thumbnail I may not realize your raised hand so just type a message in the chat box if you have a question. The thing I would you are the only slide that I want to show from the presentation is up now. So this is a real brief overview of eco path with ecosystem. It has several different modules eco path, which is really a mass balancing snapshot of your ecosystem. Then we have ecosystem, which once you have created that snapshot which we are going to do today. We can do time dynamic simulations, and then then there's eco space as well where you create a grid and it becomes spatially explicit, and time dynamics are still in there as well. And there's various plugins with which you can do other things you may be interested in. So what we have I'll only do eco path and ecosystem today. So the first exercise is eco path. So if always well I'll click on this you guys went to the websites eco path dot work. Here you can already see right at the front that there's a new release this month. So it's have a very new version to work with. You can click on that, or you can go to downloads, where you can see that there's various updates so it's a very lively communities, a community and there's constantly updates. Before you have that may version of eco path with ecosystem, and then there's notes under here, what you need and I included that in the getting started documents as well. Is there anybody here that had a problem getting the software on their computer please type it in the chat and I can, you know, unmute you or you can unmute yourself if you want to ask a question about that. All right, so far I don't see any messages so that's a good sign. While we're on the website. We also just decided to start a seminar series with the eco path research and development consortium. And the next one is actually next week, May 26. So if you're interested in learning more sign up for that seminar right here and there will be more to come. We'll do about six seminars a year so you won't be flooded with them but just the right amount to to learn new, you know, new developments new models new applications and so on. All right, so assuming everybody has the software. When I close close these two things out. Let's start with the exercise so reading this here I would like to introduce you to the software explore what data are required and build a simple model. So we all have the software installed so it's handy if you open this word file and that you can work on it on your own. So, I would like you to just get started using these instructions and what I've done to make this a group exercise is that throughout I'll scroll down. I would like to see that I've highlighted sentences in yellow so that we can kind of see when everybody's at that stage and working on their models. What I would like to do is if you are if you read text and you do whatever is asked of you and you are at a highlighted sentence. Done in the chat and include a number so this is the first one so maybe done one. And then I know that you're here. If I get multiple questions at the same time, I will put somebody that's done and indicates that they're okay with doing that. A person that's finished together with a person that has a question in a breakout room so they can help the other person through where they got stuck in completing the model. So, whoever's at this first yellow sentence, why don't you guys type done one in the chat box so that I know this is going to work. All right, and if you're not done type a or you have a question, you know, type that and I can unmute you or if you have a hard time with the chat box. You do actually have the ability to unmute yourself so you can do that as well. I think the done the done's coming in. So, what you guys will do is create your own model. I've created it already so don't worry if you're really stuck or you don't feel like really typing stuff in at the end of the first exercise, I will send you a cheat sheet with which you can check whether what is correct. I will also send you the model in case you know it didn't work out at all but like I said, I would like you to really work on your own model. So, for now, how about you get started. And so start reading off to the first yellow highlighted line. I'm going to stop sharing my screen for a second so that I can more easily see your chats and whatnot. And as soon as you have a question, you know, just put it in the chat and I can work through items, but I think it would be more interactive if you actually start doing it rather than just me doing it up front so if we're all okay with this let's get started if not or if you have a question just chat it to me or unmute yourself and I'm going to stop sharing for a minute and let you guys work on that. And if you just joined and don't know why it's quiet just put a question in the chat box and I'll explain. So anytime you do want to go to the chat box move your cursor to the bottom of the window. You'll see some options coming up. That's where you can enter the chat box. And everybody's able to unmute themselves so you can just speak up if you want to as well. The other thing I've done in these assignments is I included in blue. If it is not really something you need to do to complete the assignment with just some more information and there's more of that in the second assignment it'll send in a minute. So we have the basic input so if all is well it starts looking like that she in your models right now. Rebecca has a question you want to unmute yourself. Are you in edit a multi stanza. Actually it looks like you need to unmute yourself. So you're probably in edit multi stanza. Is that correct. Rebecca I see you're on mute it so you can talk if you want. I don't hear you if you are talking but I do see your microphone on mute it. Okay. So maybe you have microphone issues. So you're probably talking about this leading biomass. I think you probably got a pop up message when you click which of the groups is the leading Q2B and leading B. So yeah that's fine. So if you're in that edit multi stanza groups. This is what you want it to look like that you have a check mark on leading biomass with the adults macros and leading Q2B with the adult macros. So if you do that for the first time you can get pop up messages just asking if it's really what you want to do. So yeah yes it's good. So basically you've put it on adults. So basically tell the first highlighted sentence. This is the spreadsheets that you are completing after creating the groups. What you need to think about is that for the macros you have to click this edit multi stanza right here to get this little pop up window so that you can start entering the multi stanza. So multi stanza really means breaking a species in different age classes. So we have two age classes here at juvenile and adults. And there you can then include different mortalities for those groups. And the leading group really determine so they're connected with a vombert along the growth curve. So that's why here you select which one's leading which is the adults in this case. The biomass of the juveniles gets determined based on the biomass of the adults. So that's when you click calculate to make sure that's basically the great outboxes get completed by the software. And you can say OK. And there's abbreviations in the in the assignments that all of them are super intuitive consumption is a queue for example. So the P to Q ratio you're asked for that for three groups that is this production over consumption ratio. Now what I'll do while you're working on this especially since we just had a new person joining is send you an email with an Excel file where you can actually paste from Excel. So that's another good tip when you start building these things. Where each of these sheets that need data. I have them saved as Excel files and exceed and I see some people are are done with that first sheet. So especially if you start reading further. And again if you're not done but it's because you're stuck and you have a question just posted in the chat. If you are done you can continue on to defining our fishing fleets. So we've been in basic inputs so far. But there's a fishery right here as well. So if you click that to expand. You can define your fleets here so you see a define fleets button. I've already done it so you see him here. And then we can continue on to landing so you'll definitely need to define your fleets in your model but then I'll send an Excel file that has some of the data that you can paste in from basic inputs and landings and and and we'll get to a diet later so when you're continuing on you know you can just say when you're done at this point we've done to as a bunch of you are doing right now and then you can continue on and say done tree and I'll stop sharing my screen for seconds to send you an email with some extra information. Alright since I've already had prepared that email. You'll see it will have multiple attachment. Even the model already. But what will be useful right now is that Excel, I called it a cheat sheet. Here you'll find each of these. I'll share my screen again. Each of these eco paths spreadsheets are a sheet in that Excel file. So you can grab that and more easily paste some stuff in what you see for example on basic inputs. Yeah, I would say blacked out is not completely blacked out but you can see it's grayed out. That one paste like this so for those multi stanza groups right here for example you do need to go to multi stands and enter it yourself. You can see things like landings for example should be easy to paste in pay attention to see if it ends up correctly sometimes it doesn't when we have these extra great outs rows in there that that show your, your multi stands at groups. And if you're not done and want some help just put it in the chat and and I can help you or if it's multiple people at the same time, or you want to talk to somebody else who's already done I can create breakout groups. So if you are stuck on things and it's hard to keep up the email actually also has this model that I'm showing on my screen right now so there is a model and the as an attachments that will have, you know, everything completed if you're catching up maybe you have some trouble with the software or anything like that you know you're not lost for the entire session so as soon as you're caught up. You can just grab the the model from the last email I send you open that and you'll be basically at the end of the first exercise. So if you're working through the exercise. You know, you can just get it from the word file itself which whichever values to complete, or you can grab the Excel file which is also an attachment to your email and a little bit more easily complete these sheets of the ecopath model. So I think most of you are in fishery right now so you've defined your fleets. You have landings right here. There's prices here. What you may have noticed I'm talking about dollars in the assignment you can see euros here, you can actually specify that so if you were to go to model parameters. There's a monetary units here, you can choose yours so here. So this is on euros. You can go to us dollars. Once you do that and you go back to these prices. Now they're in US dollars so it's not going to do any convergence for you if you have numbers in there the number will stay the same. So this is just for yourself so you've indicated what units are you're working in so looking at the assignment we're actually working and dollars so this would be appropriately to do that. So if you are done with the fleets. The next one is diets. If you're done early like Cassie, you know you may want to enter these and have everybody else catch up. But if you are one of the later ones. This is a perfect one to cut and paste from the Excel file that I sent. This works the other way around to so if you've created a diet matrix so I'm showing a diet matrix right here, if you click on this little square here, you're selected the whole thing. You can copy it. You know you can just right click copy and paste it in Excel and it comes in handy to do that especially once you're developing these models. You want to make changes and you want to keep track of the changes that you make, and just now and then instead of continuously saving versions of your model, you may just want to save your diet matrix of or another. Any of these spreadsheets so it's very compatible with Excel you can just paste it in Excel and you'll have a record of that. So if you look at these diets in the table in the assignment right here, what you'll see in the model itself is that you also have a row called some in here, and just for handy for you one minus some. So these these these values are proportions. So we have our groups right here so I hope everybody's there that you have your groups in the in your model. So this is referred to the exact same groups. So what you're completing here is here your whales are the predator. What proportion of each of these other groups are in their diets, and it always has to some to one. So this one minus some is handy for you so you'll see what you're lacking you can complete it. So included in the assignment. You know there's a lot of data going into these type of things so you actually get from stomach content analysis or a review for a lot of your groups like what are these organisms eating and the proportions can obviously be tricky so you know if you look at one stomach it's not like they're going to exactly exactly eat the same proportions every day so you need a lot of you have your basic inputs, you have the biomass of each of these groups in your model. So it may make sense for example for a species that is kind of a generalistic feeder to have them eat that to have the proportions kind of follow the biomass. So if an organism, a fish eats anchovy spray and shrimp spray, and you see that you have a lot more anchovy biomass and shrimp in your model, you can, and you know they're actually pretty indiscriminate and they're probably going to encounter a lot more because just because there's more of there, you can incorporate that knowledge into your diet so there's several ways to go about it and you can imagine that there's not one exactly true answer it's just what these organisms are eating. You do want to make sure, let's go back to the diet composition, that if there is an organism that is an important component of a diet of any of your predators in there, it has to be a group in your model because you cannot incorporate that information in your model if that diet item is not in there. So if you've developed a model, and now you look at what your organisms are eating and you see that there's a species there that is important prey item for one of your species you've got to add them you know go back to defining your groups and add that particular diet item so you want to make sure that all that is accounted for in your model. You can see though that there's an import right here if you, and this is especially important, not just because you don't want to add a group, but if you know that they're feeding outside of your model area so you have a concept of what your model area is. If they're eating outside of that, then your import line item would be appropriate. All right, I see a lot of you are getting towards the end of building your own model. So that's good. If you're kind of catching up, you know, make use of that Excel file, or even if you want to just follow along, open the model that's also an attachment. In the in the email and you can see the completed model so once we've done all the inputs. This is a mass balance model. So what that means is that at least over a period of time and they usually determine, and in this model to that to be a year, your inputs equal your outputs so to. And all these items, so how much biomass you have, how much landing there are of each of these groups, what their diets are really are incorporated in that mass balance equation. So when you're done at the end of this. Then you've completed all your your data here. You want to click basic estimates, and it's going to mass balance. Now if it is, of course, I fed you these numbers and it does mass balance. That is not going to happen normally on your first try so if you're here at done for where you've completed everything you click mass balance. The next thing you can do is try changing some of the outputs and see what happens don't save it. Because if you know if you just change some values in the basic inputs, you maybe massively increase the landings, you may not actually end up with a mass balance model anymore. But it's a very handy thing that eco path does for you. For example what it what it tells you if you have an error message when you click those basic estimates is that there's too much of a group consumed than there's present in the system. So basically you have not found a possible solution to what's going on in that system. So it's very handy that it gives you that warning and that you have to adjust something. The warning that you will see if there's too much of a group consumed and present in the system is that the eco trophic efficiency is too high. So the eco trophic efficiencies if I scroll up over here. For the most parts we let determine by eco path so what that is is it tells you what proportion of that group is actually used in the system so true consumption or fishing. And it's not just dying of old age, which you know doesn't often happen for invertebrates or fish species maybe it's higher trophic levels like the wills and seals that that can happen so marine mammals may have a very low eco trophic efficiency. But if you go down, they probably get pretty high and high is one one is that everything gets used in the system. And so it's some proportion of one. If you have an eco trophic efficiency above one. That's when your model won't balance because more of that group is used in the system than there's actually there so you'll have to reduce some use of that group or increase the turnover rate of that group or maybe increase the biomass of that group. So that is basically kind of your help parameter the eco trophic efficiency. So you can see we've only completed it for one. So when you were entering all the biomass as of each of these groups. You left the bentos empty so basically you may have a group for which you just don't know what the biomass is, then it's handy that we have this eco trophic efficiency because now if you complete that it will calculate it for you, because what you do is say well if this much of that group is used in the system and it knows all the diets and maybe fishing removal that you've included in there. How much biomass would you need to make that happen so with basic estimates that was calculated for us. This eco trophic efficiency isn't truly measurable. There are some estimates of what's normal. You know for these groups. So here we have the anchovy for example. So that's a low trophic level fish high turnover there's a lot of predators. Maybe a fishery on it. We can check that if they're anchovy landings. Yes, there's anchovy landings by this forager fleet here. So basically, it is normal or acceptable or to be expected that that eco trophic efficiency is very close to one. So I would say for bentos that is a group where we don't often know the biomass. I often another literature that that that kind of converges on saying that's 0.8 so this is a bit of a low estimate here. But that's often used for bentos, for example, but because it's not really measurable. It's very important to actually have data on biomass this is something we can measure in the field right how much biomass do you have in it of any group so that one is an important one to try and have so sometimes when you build these models, they're very much based on a lot of field data, you may actually, you know, need to do some experiments to get to, you know, consumption to the biomass ratios or you may need to go out in the field and get an idea of the population size of Wales so there can be a lot of time involved in getting a good model. And luckily, you know, there's other people doing that as well. So do a good literature search and you'll find a lot of this information in there. So, I see a lot more people getting done. And again, if you're not, you know, make use of the Excel file or grab the finished model. I want to at least show. Usually what I do is build an eco path model because I'm interested in the more dynamic components, you know, you want to model through time what happens if you increase fishing or something else changes or you want to go in space and look at how the distribution changes when something changed in the field. But the eco path model one that we just built itself is an output as well. So if we are to go tools of eco path, we can see that we've now determined the pools and the flows of biomass in our case of this system. And that's, you know, we have a quantified system right now. So you have an eco path flow diagram, for example, as your output and in this case, you know, the the fleets are included as well that that we've created. And you can see these lines are the flows. The y axis are trophic levels so that your primary producers are on trophic level one, and you go up from there. Oh, let me pause for a second because I have a question in the in the chat box about the ecotrophic efficiency of seals the bio accumulation was negative. Yeah, if you go to other production, maybe try to change those rates again. So what we've included in this exercise is basically showing that a mass balanced model is not equal to a steady state model you can have increasing and decreasing groups in there that's already indicating your eco path model. Oh, and I think Kira has actually solved their problem yet but but let me continue on this train of thought. It could actually be the case so if we wouldn't include these increasing wells and decreasing seals on this other production sheets and bio accumulation, your model actually doesn't balance. So it doesn't have to be the case that every inputs and outputs are equal because we do have this biomass accumulation rates option right here. So that is, let me see where I put that in the assignment. Oh, yeah. So that's right after you're done.  So we can actually model declining populations and recovering populations so you don't have a steady state model and that is just right here. So if you did have a problem, you didn't have a problem balancing your model if you haven't include that. So if you did balance your model, you've got the flow diagram right here. You can get a lot of statistics calculated from the pools and flows that you've included in your model so check out the statistics right here. And then some of the keynotes and also in a network analysis clinic yesterday that you may or may not have participated in. You've heard terms such as total system throughput just different calculations of the flows through your model. The numbers are all calculated in eco path as well. If we go to the network analysis plugin. A lot of these are based on the theory of Bob Hulano, which was the last keynote speaker of yesterday. We can go through all these outputs and see, you know, what the ascendancy of the system is so how efficient is this system how efficient does energy flow through this system, or is there some redundancy that can be seen by by the overhead. For example, let me see another one that he included the Lindemann spine for example so here we have your fight a plankton and you to try this group. And here you can see what each of these lines represent the total system throughput as a percentage is right here total biomass here, your total respiration from that particular group consumption, you know, of this group by this group predation so consumption for the other right here. So you can so you can all this is created automatically for you. Once you've successfully balance your model. I do see one problem. That's from Sarah that her eco path model populates fine but the statistics tab is all zeros. Did your basic estimates work out fine as well. I'm mute. If that's easier. Because you will indeed see if you start changing can I did ask you to do that try changing some of the output and see what happens. You start changing in a fashion that on balances your model, your statistics become zero it's not going to be able to isolate any of these outputs of these net ecological network analysis outputs when you do not have a balanced model so this only works with your balance model so if you did change make some changes and you didn't save it. You could just close that model and open the model you save the game, or you know change the values back to if you remember to to what it was from the assignment and balance again by basic estimates and then your statistics should populate. I think a lot of you are at this point where the you created your full model. You can put in the chat right now. If you have any issues or you want any help before we move forward. I can see Sarah saying that everything was populated. Did you can you click basic estimates Sarah and see what happens, and then Kara still getting an arrow of biomass accumulation. Is it just a pop up window because I think you can say okay. When I create a new model when and I and I put in any value and biomass accumulation. I always get a warning screen that that's what's going on and I say okay okay okay. It will allow me to continue with one so it will give you if you start a model, especially if you grab the model that I've created already you start a model that has anything in biomass accumulation, especially if it's negative you will get a warning message to just alert you of that. So, is anybody else is having that problem that's Kara is having, because we all have that negative biomass accumulation of the seals in there. Well, it's only Kara that is getting basically stopped by the software from continuing. So, yeah, so others have completed it, probably here in the biomass accumulation and they said well when we changed it to be a rate, then it worked. So that could be the case for you as well here if you look at the what I have up right now make sure they're over here. So, so included in the be a rate over here column right here. So while Kara is looking whether that is working. You can see all these little arrows we have a lot of information though here you can click those kind of get rid of all that so. And then we'll look at ecosystem. Right now, all you want to do once you've created an eco path model is just run your ecosystem and see what happens. So I've already messed a little bit with it so you'll see that that's in there, but you guys will see let me see if I can undo my time. I've already included some time series so that is going to give you a different result. What you guys will see is, if you wouldn't have anything in biomass accumulation, you basically get a straight line. So what you guys will see is that everything else is a straight line, but your whales are going to go up a little bit and your seals are going to go down a little bit so if all is well that's what you show I already continued on with the second exercise so I'm seeing some results from that right now. Check out your run. It should look like a straight line in the middle and then maybe one up and one down so oftentimes you don't have anything completed in biomass accumulation. And then this is just a handy trick to see, you know, do I have a straight line that shouldn't be anything happening yet if I if I have that eco path model without anything changing through time and ecosystem. So if it doesn't then you look into it what happened and in my case for example it was loading some time series that you will do in a second. But, and if you do have biomass accumulation, you know, even though you may have a group increasing or decreasing if it was negative, it should stabilize so just look at whether you have a stabilizing lines here. And again if you don't have any changes in biomass accumulation it should be a straight line altogether. All right Kara still has some problems. It may be the case that it didn't just removing those values from the wrong column maybe that didn't work out right I think since you are got really far except for that maybe Kara for you. And the best solution is just to grab the answer vbay eco path model that has everything completed. So, what I'll do so we've been in an hour for now. If you can put any questions they could be about anything else not just that you have problems populating it but maybe now that you build a model you're curious about certain things. Put them in the chat box, and we can talk about that briefly. This is also a good time to, you know, use the Excel file to check your values is everything in order, or just load the eco path model that I've included in the email and that you are at this stage as well. And then add it to that email to is your next exercise where we're going into ecosystem and fit your data or fit time series so actual data and and and have your model replicates field data, which is something that you want to always do anything time dynamic with these eco path models. So Rebecca has a possible solution for Karen the chat box as well as to put zeros back into the accumulation column. So it could accidentally retain some wrong information. I included that in there. So, for everybody else I think we can have a just a five minute break to either catch up. You know still you know if you have a question put in the chat box I'll keep monitoring that. And for the next five minutes you can either catch up or and or switch to assignment to so go to your email, the second assignment in there looks like this. I'm dragging over where we're going to fit some time series to anchovy Bay. You can already I've also added a CSV file to your email, save that on your computer. You can see that that's the file that contains the data the time series data that we're going to use to fit the model to. All right, so we'll start with the second assignment or exercise and so four minutes from now, but keep the questions coming if you have any. So I see somebody has difficulty finding the assignments, send another email. So I have on this email that is coming in right now. You'll see the second assignment and word. I also already put an finished model where I did some fitting already in there. I recommend. If you want to start with an already populated model to grab the model that I called anchovy Bay eco path so that you can, you know load the CSV file and so on. With the email I just send out. I've called anchovy Bay ecosystem. That has everything already in it. I did some fitting with that already. Right, I see Kira is out of trouble because he said done six right now so all right let's get started on that second assignment. Did you find that that email arrived that I just send where I put the assignment in again. So for the second assignment again, we're going to use the ecosystem model that you've just constructed. And we're going to fit it to time series data so basically field observations fisheries catches and so on. Oh, it could be a Rebecca sees a discrepancy from what's described in the doc. It could be the blue. So you mean probably the blue. I think the the one that I put in there is actually an update from what's included in the blue text so the blue text I just described some example of how to do this in your own model with the kind of the setup of a of a CSV file should look like I've updated the exercises from something that really created so it may not be exactly as what you see right here. It should be exactly as what you see right here. This is the I have the CSV file up right now. We double check it could be different from here. It's not actually but then we don't see the whole thing per se. Do you. Is this what you're what you're seeing though, Rebecca. So what did what you guys saw in my run in my model is not going to look like what you'll see yet. I didn't refer it back to not having done the ecosystem assignment already so I couldn't show you exactly what it looks like. So I try to describe it to you by memory but this is what it was going to look like after you include some of these time series so let's not worry too much about that if you don't know what you saw here when you press run look like what it should look like if you had a balance model after your basic estimates. You should be in good shape. So let's go to the exercise here I see that some of you have already right here. So what's what you do before this highlighted area is just reading in that CSV file. You go to time series. You grab those entropy Bay 10 times series so in your case, you're importing it. They're in there. So basically, you look at the time series grid. This is the same. We see basically that's a couple of ones here and then 0.75 0.5 0.25 so yeah this looks about right with the the CSV file that we loaded so is everybody able to upload the CSV file. So once you've uploaded it you can read through the blue it doesn't really change. It's not a part of the assignment really. What you'll see here is some information about how and you can include this in other ways as well so we have time series what we can use to fit the model, but you can also start including some environmental functions here so you see temperature here. We don't have enough time to really start playing with that so so I haven't included it as an exercise, but you can for example have temperature in your model and have your species. We can respond to temperature in different ways through response curve so like tolerance curves here. I'm not going to work with this one for this short time that we have either the dummy variable is a way to include primary production but maybe in this case you don't know how much that is you can actually use the model to try and change your primary production in such a way that it best fits the secondary production that is seen in the model so there's a lot of things you can do with these CVS files when you load them. You can also just include you know your landings from your trollage for example your different biomass values and then in your model. You can see so here we have the time series grid you see that none of those environmental variables are coming back here. You can include them over here so for example that's temperature that's loaded is going to show up as a forcing function over here. You can also here with add and remove. You can add more forcing functions with values you can paste in your temperature values right here so there's several ways to include that information so for this exercise. We're just going to work with fitting your, your, your, your time dynamic model run to your, your time series. So some of you, most of you are at six now. Some of you are on to and are done with seven. So we've loaded those time series. So they show up right here once you did. So you have a run with your ecosystem model what you'll see is these little dots show up. Those are your time series so your model. Probably actually what you guys already see right now is kind of like this. So your model runs, you have your time series and you can add your model output in different ways. So after you have a run, you can separately look at your group. So if you click on a group name here. You can even just use your down arrow which is what I'm doing right now. You can go through the different groups you can see that your time series and your model run will have the same color. So let's see, we didn't include time series for all your groups so they're not going to have anything in there. And I'll get into as well how what you really want to try and do is have as much time series as possible, because that will be your most realistic model so you're pretty limited if you only have a few time series which is actually what we have in this example. So let's run ecosystem window. You can go and show your group plots so you see various information about your, your group so we're looking at oils right now for example. So we have some seals information here what you see if you've loaded time series they're also going to show up here so here we have in blue your time series, and your model so you can see your model is not doing a very great job right here fitting this time series. We have a few other ones. So you definitely want to do some fitting here. So, and indeed indicated. So the way your model set up right now. So what's happening for example with the seals is they used to actually fish for them and then they stopped doing that so that is what your time series you can see that here too is indicating so this is fishing efforts. It's dropping off and then it's gone right so there's not fishing for seals anymore in our model. So you're, according to your data that really increases the biomass of your seals and your model is really not quite capturing that so we could try and see what is changing that so the way we're going to fit our model is changing the vulnerability things in your in the model. What that is so I'll click your vulnerabilities right here. These values right here are vulnerability exchange rates so if you looked at the presentation in advance of the clinic. In the model there's the foraging arena theory, and in that is that pray items are present in vulnerable and invulnerable states so you cannot always consume everything that's present. So basically in real life pray is usually in hiding. So this exchange rates is also one of those parameters that is not really measurable is kind of our main targets when we're fitting so maybe there's a we have our group set up in such a way that they just can't really consume enough of their pray items to increase their biomass and up so we can start changing that or let the model change that based on the field data that you're providing the model. So, I see some people done at seven are there any questions or is anybody stuck in trying to get at least the file located so even if you grab a model that I provided to you, you at least want to load the time series to to be able to continue with the exercise so you know if you go to your time series the first time you see that you can, you can load one, either import one or if you grabbed my ecosystem model, you can just click on the one.  That you do get these little dots which shows your time series is loaded. Is there anybody that does not have that not have any time series loaded no dots showing up when they run ecosystem right seeing nothing in the chat you know if you're kind of looking into it still just put that in the chat. But if I don't see anything I'm going to assume people have these time series in there. So let's start fitting. So, if you go to ecosystem let's go to the vulnerability so those those with this little column right here. So set it all to two. So to do that quickly, you know you can set the whole thing you say apply to. You can do that per column as well or per per cell but that would be the quickest way because we get started that's kind of like the defaults before we start fitting and changing these. So we can actually we have an automated fits to time series you can imagine and I put some information here that you can start trying out different numbers yourself as well and kind of see that's what I did here you can show multiple runs. You can run ecosystem. You could just change some values run ecosystem and see what's changing right so we can actually do that one time real quick so let's say of our seals right all these tools. Let's make them a high value. And now we're going to and just put it on seals. Here right now let's show some multiple runs run it. So let's just look at seals. We can see and run one. It was not following your biomass at all run to it's trying to get there so we do all you can see in both. So that helps to increase that so you can do this stuff manually but you may not, you know, have the knowledge of what to put in there. So, you can set them all at two and use the fit to time series and tools. And this tools. And we will actually use the vulnerabilities as what will be changing during this search. So it's going to change your vulnerabilities by 1% and just try. The model does to find the lowest sums of square so that's the deviation from your model line from the data points and and and and find the best solution so what you see here these are the the groups again that we have in here. So, we're at point two now here you select the vulnerability search that's what we're on right here. You can start with doing one block so that's number of blocks right here. If you click this sensitivity of the sums of squares to V we're going to go by predator and say search if you go by predator, it is going to do a whole column and say okay. And it's just going to change your vulnerabilities here. So, I put in here yes we go to the search so when they say search here. That's this search right here. We'll see your iterations here. This SS is your sums of squares it's going to go down on each iteration. If it asks you it has converged it's not going to find a better solution do you want more iterations you say no. Let's get a little bit more room that we can see the whole output screen right here.  And search by predators is going to find the two most aware, the vulnerabilities are most sensitive. So we'll actually have the biggest change in our sums of squares by changing these vulnerabilities, and you'll press another search. So squares of go down gone down which is good your icon key information information criteria has gone down which is good so.  You could do this, you know, block further and further. You can go to say 11 blocks. Yeah, 11 right here. Predators search. Right now I just did all of them so then you know which which of these interactions are most sensitive to our the vulnerability in the interactions are most vulnerability or most sensitive to changes in the sums of squares is not really something I'm finding an answer to yet because it's because I've selected all of them. Okay, and I'm going to search. It's going to go down again. Something I did put in here, and I didn't do actually is uncheck reset these on the run. You can find really important if you have a very complex model. What it does what you can see now is I did a search here and I'm going to do a search again. It starts at the sums of squares that we had at the beginning that 9.5 again in these any type of these type of searches for the lowest sums of squares you can kind of get stuck in local minima. So what's better is if you came down to a sums of squares of 3.9 is to say, don't reset the vulnerabilities on the run. I'm going to check this. What happens then is instead of starting at the 9.5 again and doing everything over again. It's going to start at the 3.1 so you can really find different ways in which to find the best fit. So continuing on to where you've left off with the sums of squares instead of starting over again again. So this is checked by default, which I don't think is necessarily the logical decision. So uncheck this and what then happens is that you continuously go on with the lowest solution and some of the squares that you found here. Let's see. So a lot of people are getting done at 7 so so you kind of together with me are doing this. So what I've put in here is just increase the steps from one to two to three to four and so on and so on until we're at 11. I did 11 right away. So so one way or the other you may all be here. You can now go to your run ecosystem and run it. And I've, you can unclip this if you want but it's maybe interesting to show what's what's changed here right so we now go to say your seals. Three, four, you can see that there's an improvement right it looks pretty good now. So you can go through all the see kind of what changes occurred with your bidding procedures. One way to check that out as well is just to go to all fit. So we see here that they're all doing a pretty good job in in following these these observations. So limited we didn't have a lot of observations so you can see that is one problem you know if you have a lot of groups in a model you want to really want to have time series for as much of these groups as you can. The problem that I wanted to point out is that if we are to go back to fit the time series and you, especially the iterations, really what this does is finding the smallest sums of squares. At least we have also get this information of the AIC but it's not using them from the for the fit. And as you probably all know the lower the AIC the better. So we now see a very low sums of squares so that's great but we see a high AIC. So what this most of the time indicates is that we've overfitted the model we really have a really high AIC so there's a lot more parameters in there that shouldn't be in there. And and what I want to show you with doing this exercise where we have you know a pretty nice low sums of squares but a high AIC and then in the next one of we're going to look at what if we also pay attention to AIC. So let's read this little part here. It's easy to overfit models if you include all groups which we just did, including the ones you don't have data for so we've even included groups in the fitting now we didn't even have time series for. There's no real stopping when those vulnerabilities are changed there's no real stopping of what's value it ends up on there's not even a time series to look at so if we look at vulnerabilities. You know we've got some pretty high numbers in here. So you can see it doesn't even fit in the column this is the actual value. We don't know whether that makes any sense, especially for the ones we don't have time series, but we're not necessarily going to see that in the fit so this is something you may publish and everything looks fine. But your model may not perform very well so what you often want to do is be after you fit a model to time series so that's data in the past, you may want to do some simulations into the future. So let's go to ecosystem parameters. And this is the duration that's automatically set because of the time series you loaded so this is the amount of years you had time series for at least one for. Let's set this to 100. Let's run ecosystem. So, you can see our data ends here. This is what our models doing. You know, it may be exactly right but we definitely don't know. And, and for example, whales we don't even have time series for will stare going up by a lot with the vulnerabilities that we included. We have our cod is crashing in 2020 our whiting is crashing in 2050. So we've a lot we have a lot going on and we don't necessarily know whether that's true because we've been fitting all these groups that we didn't even have time series for so even though your fit looks really good I guess is the message I'm trying to convey. Your model may not be great. So if you then use that model and project forward you may come up with these, you know, expectations or or proclamations even like oh God will all collapse in 2020, you know, which is today. And your waiting will all collapse in 2050 so let's be a little bit more careful in our fitting, which is what I'm trying to do with our next step. So you can reset your vulnerabilities right here back to to to try this process over again. You can also when you go to fit the time series. Okay, here let's reset them on the run.  You've probably had it before that you've got that pop up message where I said here, like select know when you see that. Yes, especially at the start you know we do want to reset the vulnerabilities to the default of two. So what we're going to do now instead of searching all groups let's start with searching the groups with time series so here's my little pop up message reset vulnerabilities to a default of two. Yes, my vulnerabilities are all set to two again. So you can check that you can see that that's true. Apparently, I only have data here for these. So, so let's only search there and and what is even a better approach and this is just a convention I would say is to select one block less than what you have time series for so we have three. So we really only want to look for two blocks. So here we just kind of get into the more conservative way of fitting. So we can search. Actually, what I did is just to first we started actually with just search the group with time series would be your first step. We are going to reset the visa on the run search. So it's a multi step process. So first step I did was well let's just look at the groups but the whole column of the predator where we have time series for note to this question.  We have an okay, I can't get information criteria that if you compare it with the other ones at least a lot lower again than our last one that we didn't trust so much we basically overfitted. So now you want to say well we also still want to search for different blocks that are most are going to really changes in those vulnerabilities are going to have the most effects on our sums of squares. So now I would say you just want to do one block less than what you have time series for then click sensitivity of sums of squares to vulnerabilities. And even we're going to do it per interaction. So by predator prey and say search, you can imagine with a big complex model this is going to take forever so there's some automation you can include here, we're just going to change these two. Okay, make sure this is unchecked now we want to start at that 3.69 they search and basically what you'll do actually this didn't really improve it that much. Basically what you want to do is repeat this keep on searching until your sums of squares doesn't get any lower but again also pay attention to your AIC. Now here too so we're slowly going better you can continue on with this. You can paste. See, I have that here. Your vulnerabilities is another column you can easily paste in. So once you try these different routines so you can kind of keep this up until this doesn't get any lower just doesn't get any lower. We're pretty much trying a completely different routine than where we ended here and number three right. So if you reset everything to two and try a completely different strategies. So go to vulnerabilities and save your vulnerabilities into Excel so you kind of keep that run in a way. So, I've did that here when I did that just by block a couple of times. So I have some vulnerabilities in here. I can just copy select the right area. So you can paste those vulnerabilities back in of a good run so I've done that right now. Put the ecosystem parameters. Yeah, that's correct. That's a 41 run ecosystem. So here. So you've been continuously reducing. So what you can see in the Excel file is I came down to some of the squares at 3.14 and I see of mine is 29.44. It could be slight change differences in here but you guys are probably pretty close to this. Once you did that. So you can see and you can look through these again but this is also an easy way to look at it. This is very similar to to what we just saw so it doesn't necessarily look like a much better fit. Similar fits and as you can see what I've put in the Excel file here is that the sums of squares were 3.1 on our overfitted situation and we have like 3.14 in our pretty good situation. So, so the sums of squares is not really our telling point right here. It's the AIC. So the fits are not are going to look similar pretty much than we just had, but your projections are going to at least be different. And even if we don't know, you know, which you never know with any of these simulations. And you're pretty, we're sure know that you're not predicting the future. But we're now more confident in your ecosystem run. It's looking different. So for example, your whales are doing well, but they're not having that that huge increase. They're stabilizing. They're not our cod. I mean it's going down because our data says so but it's actually stabilizing as well. So even though we, you know, we never know for sure exactly what happens after we don't have data anymore. So we can be more confident in this output because we didn't use we only change things where based on information and we didn't start changing a lot of things where we didn't have information for so. So, that's what I wanted to show you so I'm right here now where I ran ecosystem for 100 years. There's been a lot of other parameters that you can change. Most of them not automatically in the fits of time series, but there's definitely things that you can change to make better fits. So I'll show some of them here. One of them that is another automated fits is this anomaly search that you see right here. I'm not necessarily a big fan of that one. What happens here is that you can imagine this being used by fisheries scientists that don't really have any data about the environment they are just interested in particular species. And they see a species increasing. There's, you know, bottom up effects there's any but you don't know anything about primary production there's a big chance if, especially low trophic level fishes start to increase in biomass that there's just more food. So you can start changing your primary productivity so. Here for example, you can have. So let's say we have a primary production time series so this is my approach really that you actually have primary production data. But for example with our dummy variable here, if we apply that forcing function so here on the fight a plankton. You can start on the anomaly search. So here now we see our dummy variable, you can put different spline points in there you can basically adjust your primary production such that it starts explaining your secondary production. I would say it's, it's, you know, it's automated in there it's used a lot. In this group, a lot of people are interested in model coupling and that's what I generally do as well so usually what I do I either have somebody with a different model that has primary production output that loads into my model, or I use data. This is not necessarily something I want to have automatically changed to make my models fit better so, but that is what that anomaly search would do so it may be suitable in some cases, especially if you just have no information about that primary production and it's pretty sure, maybe in some upwelling area that there's probably such an increase in primary production you just don't have the data that that would really explain your increase in biomass of your entropy. This would be a good way to use to replicate that in your model and see, but that's another way to do it or it's using combination a lot. And then a lot of these parameters that I described here are things that you can change by handing your model, you know rerun check if your fits are better you can always see in all fits what your sums of squares are, and and see if they go lower whenever you change so you can iteratively make changes in your model to make it fit your data better. And of course, you know in our example we had very little data increase the number of time series and you'll have a more realistic model. All right. Um, we have five more minutes. So any questions that you have put them in the chat. I hope of course there's a lot of material that I made some choices that I think are useful to learn and just these two hours that we have you now know how to build a model, what data you need when you want to build one, and how you can make your model fit data and make it as realistic as possible. So let me know what you think apparently the whole unmute thing doesn't work as well as we thought it did. I'm going to do unmute all for a second. And then let me know if you have any questions any comments. I'm going to stop sharing my screen and I can see you when you talk if no more questions comments I'm probably going to pop into the happy hour that is right after this. For a minute so I can chat further there as well. Um, you know you have the websites that will give you more information there's courses that are way longer than two hours that you can look up and follow. There's a help option in here where you can search in the software itself for solutions to any issues you may have. If you're interested in using this more, you know, you're welcome to join the eco pathologist and that's it for now. And I hope you enjoyed it to learn something and I will maybe see you at an eco path forums.


Yes, hello Welcome to my talk. I'm here as a private entity and hobbyist. I'm not here for a company But at least now my project got a logo So which you can see on the right side so I Have a quick overview of the topics. I've did previous talks at Europe hyphens Two and three years ago and these were longer talks this time. I was going for a faster talk I have some actual good news and I have some problems to share with you So I'm going to talk about who I am My name is Kai Hain. I'm a professional from the ATC industry and I do this as my hobby. It's my spare time effort And my spare time effort the title of a talk kind of disclosed it already is The Python compiler I got a bit preposterous about this but basically if you see the golds That makes sense Show you what it takes takes basically nothing. We are going to compile a simple program and the four bone program material but There's not going to be a lot of time to look at this so That's going to be fast. I'm going to present you with my goals and The plan how we get there The last point on the slide join me is the most important because this project is really high potential And it's limited by the amount of contributors so far. I am mostly on my own I have a few people who helped me and sustained parts of a project But this is not enough. So it's going slower than it could be Although if you as you will see it's pretty It's progressing pretty well Then I will have a look at some details of Newtka Newtka as you know, Python is very dynamic and complex language and I Have taken steps to reduce our problem and there's some common complaints here Everybody knows that Python is highly dynamic. How could a compiler even work? Then we look at optimizations. It's what we have so far that list got longer recently and Actually, I'm demoing now here and I when I wrote the title of the talk This didn't work and it didn't work until maybe last week the inlining of function codes Which is a I see this as a breakthrough to the compiler technically practically, it's probably not but technically is very Good achievement and what else where it's going to come so Maybe let me start with a name. It's named after my wife Anna and like it was Chizested Seconds ago. I could have named it like this. I named it after her in Russia's Russian and in Russian she's called a newtka and short-form newtka Which is tricky because it's pronounced differently than it is written. So but that is your name and I started it with after mingling with other projects Piper and siden To be a fully compatible compiler that doesn't have to make any compromises and doesn't have to invent a new language and so on I Was thinking out of the box so Most people see Python as a very powerful tool for some part of the language landscape But not all and I wanted to take it to Also where performance critical stuff happens. So sorry I don't see any time pressure So I do this the right way and the right way means that I can do this so it carries all all the weight of Python all the time It's licensed very liberally and you can use it with everything. So it's free software of the most free kind Most major milestones are now achieved. It's basically working. If you what all you want is an accelerator It's going to work on all the operating systems Android and iOS need some work But in theory they should work and I know that some people have done some things but It's still future work. Obviously the mobile space and Python Could see some help and maybe Newtka can provide that So what it does it use it uses older Python versions and your ones alike even the latest 3.5 meter Anticipating a question from you. I added support for that. So it passes the C Python 3.4 test you'd Running a compiled code And it takes a C++ compiler I will cover that issue more on later slides and it takes your Python code and that is it So it's really just a C C++ compiler in Newtka and you can compile So having a new language that is separate from Python means I lose all the things I like I put them all on the slides here and I'm trying to be a bit fast about the presentation, but you know There's lots of things that you are used to and if it's not Python, but for example Something else Then we just lose it. So I put a kind of stop sign Below there. So very important to me is if we have a fast Python It should be a Python much like Piper tries to be one or Jyton tries to be a Java dialect I can switch back and forth. So The thing I'm trying to do is if you start using Newtka, you are not going to have a price attached It doesn't mean that your project is Bound to using it that means if you encounter a buck in Newtka and it stops working You can just use something else instead So My ideas here for performance and these are very old ideas I've not done anything actually in this direction yet and I know that Edo is running around and presenting ideas for type hints and Everybody asked me will I support them and the answer is yes Although technically I would like something That also works during the runtime of Python. So in his proposal, it's just something that Python very exquisitely ignores and doesn't use and I don't like that at all I want it to be code that actually improves the quality and makes these actual checks And then the compiler just gets to benefit from the knowledge extracted from such checks So the first goal and one which I met a Couple of years ago was feature parity with you Python It's compatible with all the language constructs and it's also compatible with runtime So Qt lxml Whatever extension object there are You can use them The compatibility that I have achieved and that I have increased since it's amazingly high Basically, my first attempt at Newtka was to make a demonstration that something like a Python compiler actually can fit into things without having a price and This is now what I consider a true statement so from there on Well On to the next thing Some of these projects I mentioned need patches so pi qt Pi side and so on sometimes they Make too tight check on what is a function So I have a compiled function type and they were not tolerant about this without patches So the next thing is to generate efficient code from that as You will see of a pi stone benchmark. I achieved a number Two and a half fold speedup. So this is something I looked at but it was only a concept It was only to show If we don't have bytecode, but have compilation, what can we gain? It's not really worth it So I think this sort of speedup is unimportant so What we got new is this code generation is now starting to remove code that is not used and it's using traces to determine if objects need releases and as we will see later exceptions are now fast, I have a slide about this So constant propagation, which is basically just peephole optimization so Identify as many values and push it forward So if you assign a constant into a variable and use that later on You generate a efficient code. I have just recently achieved that What I haven't got yet and which will be an important part to getting any actual Improvement that is worthwhile for anybody He's to make type inference and treat strings integers lists and so on differently that's only starting to exist Then interfacing with C code the so-called bindings I had a discussion with With a cyber guy this morning Newtka will and should be able to understand C types and CSC if I and make direct calls I have a slide about that too and Hins type hints doesn't exist. So not this year type means and So on so I have here a outside view of Newtka Where you can see that on on the top left you have your code when you put that through a newtka Can be multiple files on newtka recurses according to your python path and just finds your code and produces from that a bunch of C++ files and Put it in a directory and then it runs cons And what typically happens is that people tell me for some reasons that I do not really understand that sconce is somehow bad I Don't think it is it does the job and I have a sconce file in newtka Which then can be used to produce a module So if you were to deliver extension module from your python code, that's feasible Even whole packages or you can produce an executable. So from a user standpoint Newtka and your code that is basically it sconce does handle the C++ details and I get very Nice emails from people who said it even found my my Microsoft compiler and just works It's very easy to use. So I have a very low barrier of entry When we look inside You will find that I have a couple of faces. So based on the Abstract syntax tree the same one that python uses So in a sense, I'm reusing the python parser, which is one of the benefits of not having a separate language. I Enter a step called reformulations So for example in python 2.6 with statement got added and it's Well, I could have a with note and generate code from that and actually First versions of newtka did that So I had a C++ template and a generated code which just happened to do the proper thing the compatible thing But that's not how it's done anymore We now have reformulations and with these reformulations the with statement ends up a simpler python We are going to see a few examples of that So I'm speaking very fast and I try to be fast the idea is also that you can have your questions asked So if you have a question just raise your hand and ask questions whenever you think you have one, please do so Then we go into optimization, which is basically an endless loop because Optimizing a python program you cannot have a single or two-parse approach because after every optimization Any other optimization may become feasible again. So it's an endless loop But it finishes at some point and then finalization is entered which just annotates the code a bit more This then final tree receives a code generation and then the directory we were seeing So that's very typical. What's probably special is that there is this reformulation step Which tries to make a baby python out of things so Time for demo This is a Python function and It has a nested function and it does local variable assignments And then it makes this call which can be inlined and actually You and I as a human we can We can see what happens and the thing which I'm very proud of is that I now have variable tracing and SSH sufficiently strong To justify that on a global scale Newtka will be able to understand that sort of code and produce a Simpler result so It has a verbose mode and here we see a look into the inside What happens there? When it runs So there are tried blocks Which is sort of true because of a reformulation for example this statement here does an unpacking and Secretly that involves try finally semantics. So if you get interrupted while unpacking you get to release something So but the static analysis finds out that the tried blocks can be reduced It finds out That the assignment to G can be propagated Entirely and therefore be dropped the one to X one to Y the value is then actually propagated and then In line 9 here we have a constant tuple Constant result we can replace the call to G with a direct call and we can inline the function We can discover that previously there was a variable G But it now is no longer used and it's so it's not assigned and then it's not initialized anymore so this uninitialized variable G it can be Well the releasing of it Should there have been an exception in a Python function your locals get released. That's What's behind this and then we propagate the inline variables And a very little build a tuple and so on remove all the try handlers and Ultimately, we are done with that so for example This is a even simpler program, but it will help me to make a better demonstration Better in the sense that right now the unpacking I don't I started to have analysis years ago for that, but it's not yet sufficient, so I Cannot have tuple unpacking and show a full reduction So when we run this as you can see outputs and a lot of findings and now For easier debugging I Have invented a XML representation of the node tree and I use this to test that something is entirely optimized and As you can see here, we have a statement return. That is just a constant to two so This function f all it does is a lot of churn around the notion of producing one constant Obviously your code is not going to be like this but It could be if for example the X were an input value of some sort and then If this was already a partially optimized function for some reason then these things make sense so We got this any questions about this The question was is it storing the reduced Python code anywhere? Actually, that's a cool idea for a project that I have is to generate Python code from the reduced One right now. I only generate C. I would love for somebody to Take the internal representation of the optimization and generate Python code from that Python code That is just faster than the other Python code but since We are making a Python compiler for a reason. I'm going to see directly and in C I'm outputting this but basically Technically the internal final representation is not entirely Python anymore So as we will see in the reformulation part For example wire loops and for loops. They don't exist So it is a reduced set, but it would be for example feasible to create Python code out of that so Maybe quickly here No Don't do this because I made XML and because I'm easily confused I removed the code that is not used and I had opened it already, but here we go again, so This is what the Generated code for example looks like So we have a local Variable return value initialize it to nothing then we initialize it to the result Which is a pre-made constant and we go to the function return exit Which checks that it's actually a return value and then returns it. So this is how it's become in Python world the most efficient The most efficient Code that you can have Obviously There's more to it. So we can also do mercurial This is something that worked two years ago. It's passing the test suit with mercurial So we could compile this now and actually I was doing it It took 35 minutes to compile all of mercurial, which is a huge body of Of code Right now Newtka is not making enough optimizations and discovering enough dead code But half an hour is pretty okay on this laptop without power so Generated code works like this I will be quick. So now it's C code When I initially started out, I was aware that this is a very ambitious project So the only reason I did even started was because C++ 11 The new C++ language was having so much cool new features that convinced me that code generation would be relatively simple now So the gap between C++ 11 and Python was relatively small It turns out That for example C++ exceptions suck and in place operations of Python are Optimizable, but that doesn't fit into one object only one thing so I went to C++ 0 3 and then to See ish C++ which is basically just see with some C++ elements But no class no types and it's going to be C99 soon enough So I'm going to skip something. So as an evolution three years ago. I'm talking now about the C++ 11 one The blue part that was the joke code generation So I had achieved something Phenomenal and that was a compiler which Was capable of integrating with all that Python landscape and made things faster Which was tremendous, but the other part. They are so small you can barely see them Pazzer Optimization there was basically only loophole people optimization for years ago two years ago, I went to C++ 0 3 and the code generation got a lot more dumped and reformulation Started to appear and optimization become bigger and right now code generation has become really stupid and Optimization is carrying the day so now These reformulations. I'm making some overhead there using temporary variables and so on I can now optimize them away So availability I have a high focus on correctness So it's available in a stable and a develop form the develop form is also Better than other stable projects. I content and I have a factory Where I publish things that are not finished yet. For example, the inlining code is right now on a factory branch There's not just good. There's RPMs and so on lots of people are already using Utka This is my most important slide. So I want you to join the project help me I will guide you and One thing I have to cover for correctness. You see the Oracle of Delphi Delphi means I can use C Python and compare with Python So testing for correctness. It's it's a dream. It's very easy for performance It's much harder It's a race and I have ideas and what I would like you to do is to help me Come up and develop with a tool that will help us Give a user feedback for performance because if you now compile your code, it may not be faster at all it may even be slower and We wouldn't know why There's no feedback. There's no idea which function is slower or faster and how much there needs to be a tool I need somebody with an interest to help me out with this and rescue us So This is the most important things I meant to say I would leave the rest of the time. I hope it's still 10 minutes For questions if you have them Yeah, okay in my opinion which Python language constructs we're making code generation for hard is I Think technically Once we are able to inline meta classes and very effects I think they will not be an issue and they are very very easy technically classes and instances Need a lot of babysitting Especially under Python to to be correct. So that's that was an issue and I had huge amount of difficulties with in place operation and Exceptions and expectually exceptions exceptions are totally a nightmare. So I was and Yeah, reference counting is no fun Which is why I develop a compiler too. So you do not have to write C code ever again Yeah, so next question for what The default type to me right now is object. So the question was how to handle it if something doesn't have a type Right now Newt Kerr is basically using node type information at all yet What it will do and let me Show you this In the future it will be able to understand for example C types and they make direct quotes But right now everything is an object be it a list string integer. I'm belly only not I'm not using the knowledge yet I will start to make now that I have this Tracing capability. I can produce proper traces of Python I will be able to trace the list and make optimizations dedicated to types, but I don't have it yet I'm integrating with lip Python and it's pie object asterisks. It's it's a standard Python object It's it's like you wrote a C extension code. Another question Yes, I tried various compilers Obviously on the C level there's still always something to gain and I'm trying to be clever and smart about code I generate and I find the Microsoft compiler to be terrible and intro will probably be better But technically newt guy should be in a position to understand Python So if the example that I showed you it gains by an order of magnitude Performance by just inlining a function call I don't have a slight time to show the slide now But if I'm if I just avoid a function call of Python I I can have speedups in the domain of 20 fold and and and so on and maybe on top of that with an C compiler you can add a few percent again Yes Yeah, that's also there was a Python talk 2014 and the presenter always also said it just works. I throw things at it What you just tried is also something called it's a standalone mode I'm not mentioning that because I'm not interested in it, but it means It would also pack all the things together and allow your distribution to other machines Something people also expect from a compiler is to be able to take the code to another machine My interest is mostly in acceleration and I'm solving this as a sidekick. Yeah, so but the feedback is it just works and So when I'm it's at the point where I'm surprised if something doesn't work for standalone I'm not surprised if something doesn't work because it's very hairy with extension modules often. Yes Yes, the bytecode is incredibly smaller definitely It's No need to talk about it a binary which contains the Python implementation and uses it it's larger, but I don't think it's anywhere near important issue and Obviously, you will be much faster with a smaller you are but Yeah, it's it's it's larger, but it's still small binaries. So if we can have a look at HGX It's sort 31 megabytes. I think yes to confuse users That's a very important part of my protec So Suppose the program you compile is named Hg What is going to be the resulting name without overwriting it? I want to put it alongside and I've made good experience with dot exa. It's relatively rare But the Python program exists as dot exa So, but I'm getting questions and please take note this one will run on linux despite its name And you can rename it. It was the work. So if you despise the name I Think I'm using a stack memory allocation. Yes And I would definitely if what I will need is some sort of list implementation That is not malloc driven if I know the size and if I know enough Sufficient things I will use stack memory. Yes Try to be fast The question is if I take advantage of ref counting I Try to do this So I'm not always taking a ref count when part C Python does but it's a very marginal game The real direction must be to avoid Python objects wherever we can and We will see how far this gets but of course where I can I will have this analysis and know that I don't have to Take another ref count because I will be holding one already No, there is no he's asking about standalone and the standalone distributions if you want to copy it to another machine basically due to the incompleteness of code removal includes the standard library and all the libraries that standard library uses and so you end up with a Largest set so the distribution. I don't think it's huge, but it's it's like a Python installation I suppose yes, I don't have real-world benchmarks because that defies the purpose of benchmarks I know that Piper is really cool now with presenting Real-world programs and how Piper stacks up to this I I Have this idea about Valgrind all my benchmarking I'm doing with Valgrind and Valgrind gives me ticks so I don't have to run many times and I can make Analysis directly and I would want your help or I will do it myself But I want your help to create a tool which will run the program in Python and run the program in newtka and compare the tool and make a highlighting of what parts are fast and slow and so I can Get you as a user can get an image. How much speed up do I get in my program and It should be simple enough to just run your program under under another tool and get a report so It's all laudable to have these benchmarks with synthetic Code, but I would actually like to empower us Me and the developers of newtka and the users I don't know if we can make this tool and the sad truth is right now There's nothing basically. I just have random number numbers of something and I'm working very hard on getting to somewhere but like I said, I have a time and I don't have a panic to be fast and everything tomorrow and Right now I am only starting to wonder about actual performance. So this is now Where I want to know how good I am Okay, thank you so much. Thank you for being here and for the good questions