Let me start right away. I'm Sander Schubert and I want to talk to you about the new Oriental Kit from the TDAF. It's not so new by the way. It's from some accident and joined with IDN, was a passion created and now finally joined the toolkit. So, what's the Oriental Kit about? The toolkit is not a silver or a gold. It's a tool. It's something that is definitely used for ODIF and I give you a few ODIF basics here just to know. Of course, ODIF is just a zip. If you exchange the suffix from ODIT to zip or ODIF or any suffix with, you might get the XML, the nighttime pictures and some content table that's called the manifest. Another thing that Sander Schubert is because it's just a toolkit, I mean it's about ODIF and ODIF specified and the specification is like a blueprint. It's like a cooking recipe where if we do everything right, you always get valid documents from it. So, the first tool that you might know is the Validator. It's even hosted by the GDF and you can get it out of the box as a web application archive and you can hold a command line or you can have run your local toolkit to upload your files there and validate it. So that's very useful. Other use cases, the title of the Validator is just a minor case to mention it. It's to run Excel team. It's a cell transformation and some script files directly on the ODIT. Usually they're running only on the XML but you don't have to unpack them. So it's just a fancy step that somebody just wrote once. But the main thing is to add a document and it wasn't invented as a customer wanted to have a server or a cloud that do some very fast work with Java whether or not many like to... They don't need a layout and they just want to extract data usually for translation instance or ODIT. That's usually use cases. And what's new is the coloration that is possible to be used as a background and starting with usually version 1 or 0-0 and we are allowed to release 0-9 this week actually. So what's the architecture? The architecture of the... This is the Alcazava from Arnair. But what's the architecture? What's all about? What can we do good here? So the main thing that we... I think a very good thing where the ODIT stands out from others is the ODIF DOM which is being generated with a lot as much as possible from a specification. And I will not dive into it because I think we can even improve and get better results there from the generation but even improve the specification. So if we just take a look at the other source code generator. I dive into this now. The source code generator consists of, let's say, three parts. The first part is the grammar which tells you what XML is allowed and what part. Since the office body has to be there and there has to be a text file, there has to be children code, child code, office text and so on. But it's quite complicated. So 18,000 lines of code and 600 elements and 1,200 XML attributes. So it's a lot of things. So we thought it might be good if we generate some Java code to DOM type, DOM code so developers can just look at the source code by auto completion and know how they can create the XML that is allowed. And to do so, we loaded the XML into a grammar reader. We didn't want to invent our own reader so we reused some of the software and the nice thing about this is it can read many grammars. So we reused the XML multi-schemer validator for reading it and then of course we wanted to write from that, that's the data, and from that we wanted to create Java sources. And for this, we used a template manager. Usually they created HTML files on databases of that velocity. Template agent means you write the Java base class and then there's some Java code and context it just like loose and conditions so you can create arbitrary files. This just happens once in compile time, but this was not sufficient. For instance, when there was a question, is a paragraph, can a paragraph be nested? So it's possible that in any other document a text P can be found somewhere beyond because usually a document is basically just a sequence of either tables or paragraphs. So this is very hard to tell because when you look at the source code this is like, it's very small, but this is just a table. It's going on and on and there are all links or something. So what we would do then, or what I took over across, I dive into that and loaded this into a graph database.  But what I did is, from the Moody schema of my data I loaded the graph database to answer the question, is the table can be nested because then I just dive a little bit into it. Here the red are the attributes of the table and it's just the XML table table with children XML elements and all in between. This should not be much, but we can dive further on and this is also hard to read. For instance, it's nothing and if it's choice, nothing, then it's optional and we can remove the boilerplate and have sequence like saying there can be a soft break, but there have to be a table roll. But ahead of that might be a soft break. This is what can be read here. And from that you can generate your source code. So if somebody, for instance, enters a soft page break then the source code should automatically check if there's already a text table roll inserted otherwise in front of it, if it's otherwise. Or otherwise, that's what we have to say. Because there's a rudiment, children, there's a tree and you can traverse trees quite easily so you can have a graph and a data structure quite easily and you can answer yourself these questions and share these questions with others. Otherwise you just take a look at this very huge text file. So that's the new thing since 1.00 I inserted some patched-in graph and just to get a better instruction, a better feeding for the data but I haven't answered the next question yet but I haven't improved the generation-lighted sequence what I've sorted out before is still only handwritten. If you use it at this point, a soft page break will be abandoned unless somebody did it manually. So this is the source code generator. Just imagine it, that's what we have. And to continue the picture, that's the validator. It's using the only FDOM and the XLT runner. The thing that is running the XLT from the script. The simple API there was some IDM for that was joined again but so much duplicating code that we just simply got it because I didn't support it and I don't read all that. We decided that it's time to drop something. So that's the basic architecture. To put it in a different way for the API, we have three layers which are very similar to the specification. There's one specification only for the package. It specifies the zip and not encrypted inside. It could be reused by PDIF or the 1 and 0 specification of the package which was used by EPUB by the way. Unfortunately they fought for the next version. The next one is only about the XML. The next thing which is, I don't think I'm going to specify, is the user semantic of the structure because we all know there's a table, we all know there are comments and we know that we all interpret this paragraph and make text bold. But although we are doing this at every only FDOM and also other applications like DocBook, there's no common sense on it. I wish once a user said, I'll get away with the XML. I don't care about the XML. I just want to work on the semantic level. I want to say open the text document at the paragraph, at the text, and I'm totally fine with that. So my wish in the future is to make this more a private layer like an implementation detail that's only F. But on a higher level, it's a very common sense about the things that the user has known. Just keep in mind that the semantic layer is some of this unspecified. But the nice thing is, with the graph, you can now annotate and mark things like a table. You can express the point of what X amount belongs to like a puzzle piece to different semantics. Why do we need this? First of all, why do we have a problem? Let me say, we have a problem of collaboration. We heard from an online set, the name gives a hint. It's only working online. Why is it only working online? Why is that problem? So the software comes from the 80s. In the 80s, there's only one person working on a machine. We were exchanged at four, which is sometimes a bit of a problem. It was everything working fine. We were loaded with full documents, saved with full documents. Yes, that's fine. But nowadays, we have smartphones. So we, ourselves, have multiple machines, smartphone, laptop, and we want to exchange documents. And if you want to have one through final document, like this is my application, or this is my contract, or this is the thing we all agree upon, then you have to take the others' copies and merge them back. So software development.  But we have a merge problem, because the key question is, if you merge it, you want to take one thing, you have to ask, what have you changed? But there's no way that we can explain it, because we only have the full final document. We only have the zip call source document repository. And we're currently, as we're cooperating as cloud, as source cloud developers were zipping their GitHub and giving them to the other by email and saying, okay, now you can add it, and it doesn't work out. It's still being paid for. So what we want is, we want to exchange changes. We want to like and commit diffs of libraries, but that library doesn't work for us, because we have XML, we have Sydney, it's horrible. So we have to go to a different fraction level here, and that's the semantic that I talked earlier about. So the question is, how, what have you changed? This can be answered by, by defined changes of editing, deletion, and modifying of these semantic things. Like the sleeper office now have a new second paragraph, and it's dispatched to other people, and it just dispatched to change, like it would change dispatched to commit, and would not zip the full document or the source repository. Or the, the work would now say, it's an only have to change right, oh, I make the fourth paragraph blue, and they would now merge everything, and it would go with the same copy of the same, yeah, they would have unified copy of a single document that is identical. Three documents copies that I think are, I think. Okay, anyway. So, wouldn't it be nice if this was working? And there's something, I tried to release a beta this week as well. I think I've worked about three, more than three years on this, and others as well. I was trying to put a prototype font to finish this, and started working with opening change on that, and it's very simple. I'll do this as a black number to green box, and you put in a document, and it's been transformed to a sequence of changes, like a user would have added the document thing by thing from the top to the bottom. Okay, but why do we need this? Because, as I said, the main question is why have you changed? And this is entering a change in the document into the real changes. By the way, it's just CLS and JSON, and the next thing is, you can also merge things back. Okay? So, we have something now, a black box, and a tool we have to look at the upcoming version, where we can just patch changes on all the F level, right? Well, we have defined the semantics things. And so, why is this good for? Because, if we have this on the back end, we can make any arbitrary application editor and all the F location. So, let's start with the graph, but let's start with Emacs. Emacs is a text editor. Who knows Emacs? Emacs? Okay, I don't know who knows Emacs. Where you got this? Anyway, Emacs, just text, okay? Well, think about it. Think about every line is a paragraph, and, obviously, they have text. You can load any full 32 document like specification or your contract, but only the... You use it on the back end, and you get all the changes, but you only move the changes to the text and the paragraph to the editor, right? And every change now is being tracked and merged back into the full document without breaking any of the features that exist. In other words, you can add a full feature document with Emacs without destroying it. Right? Well, remember, our way is to load the document fully in the document into the model, right? And filtering all the features we don't know, unfortunately. And, later, we save everything. And this is also a whole 80 pages document, or two hundred pages, and save it. I can't save it because I don't know how to save my data, and it took so long, and it's ridiculous to save always everything, right? So, this is basically what I told in Tokyo, but I did a little work, and I did a little exam, just a little exam, okay? So, there's some that editor called the CK Editor 5. It's just an HTML editor, and you can clone it and build it, but you can take a look at the example. And the notes, by the way, it's a little snippet that you might add to the index at an HTML, because these guys are from Warsaw, Poland. And, last year, I took a G-Bot, built in Warsaw, met them a day, we talked a lot, and they gave me the hints how to listen to some events to get their events there, because one thing is very special, the CK Editor 5, because from four to five, they changed their internal model. They said, we have so much problem with correlation and change tracking on the video. We moved from the full-featured document to a list of changes.  All I have to do is get the changes and translate it to my changes, because they all know the same thing like paragraphs, changes, so on. But I'm very, in the beginning, just a second, please. So, I should be. I'm just listening and looking at what they're doing. So, this is the CK Editor 5, okay? And when you download and build it, you get something like this. I just edited the very old sample, and if you, this is the Chrome, you go to F12, you got the console, right? And I should be. And when I press here number one, you see there's something coming up. And I also go for image. So, I make two operations, and there's something happening over there. They collect the operations, okay? So, let me first show you the solution. This is the engine thing. I have it in my lock here. You just have to enter this here somewhere. Yes, I have to do it in JavaScript myself. But this is quite easy, and I assist you if you want to, but you can play around and see, so this lies again, because I just record what I just did. So, you see, there's a lot of, let's say why not play, but I'm not interested. But I'm interested in, I inserted, oh, I inserted nothing. Sorry, it wasn't one. Okay, that's the data that I inserted. It's called, it's an operation, and it's better positioned, zero to six. They start, obviously, counting with zero. This was the first paragraph, the seventh sign. In my world, I do it like XML. When we say the fifth thing, we take the five, right? It's more human sense. So anyway, we have to translate these operations and all the F operations. Yes, and here's the other one. They start at the fourth character and at the eighth character, it may be time, okay? So, this is something that I can really deal with. So, the next thing what I'm doing is I'm buying a building plugin and collecting all the data and send it to a local or a cloud server with my production line, okay? And now, with this, I can even load a full OTF document into this editor. I can see only what the editor is aware of, right? I can add it and merge it back and it will not break the document. And I have a standalone open source editor. And yes, I can even work offline because then I can put kitten here, big M, for instance. This needs some work and broken branches and yeah, that is something that Cora Online is missing, the symmetric level on this page and this changes. And hopefully, there have been some guy who have been done a Leero office, a Leero office doing this as well. So, I'm coming to that as well. There's some website for the OVF toolkit. This is basically the core part of that. There's the usual guitar thing, the main branch, whatever. We push something, it's getting out. The sources are here. The latest sources, please catch me because I'm working on another branch currently yet. So, the changes are not yet there, right? But they will be hopefully another week within 100 meter. And yes, well, the differences in the specification documents, there you find even the XML schemers and the HTML documentation. It's quite easy to find things. So, yes, I think that was all. That was. Okay, thank you for the same. Questions? I have a question. I'm thinking about the usage of such tool kit. Is it possible to check certain tags in the OVF format? For example, if I want to know what I teach students to generate a document with certain styles or certain features and when they get the files back to me, I need to check one by one. But is it possible to check certain tags so that I know that, yes, they use the style or something like that? Yes, so the question was, is it possible that students are using certain tags in an OVF document that would indicate the parts that they had been edited, right? So, it is definitely possible to use it. The thing is, if you use currently deeper office, I believe, if you need to do some tricks, otherwise, as I said, everything is noted into existing model. And if your tags are not existing in the model of deeper office, they will be dropped. So, the workaround that's currently working is use certain character styles. That's what we are using in the audio specification to extract default variables, right? They are only written once in the specification and by X17 we extract them to get them for the generation of the source code, yes? So, you can do it by styles and you even can, if you use, for instance, if this will be working with the CKID file, for instance, then you can tell me the changes there, right? You would know exactly what the students have changed on offer view for us in that date. And then you can take a look at these changes and say, oh well, you use different format, okay, or you can take a look at this. This will be very nice and coming back to the original idea of this text, the text, that's the way how the common companies are using the latest toolkit for temperature generation, right? I guess the most commercial use case, I don't know, well, is using templates with certain text within it and they find it by a certain field or anything and then they insert some, usually they insert some data from the database and generate some, okay? But we can talk later and go more into detail but I think it's possible, yes. Any further questions? No. Okay, I've got a few minutes left. Got a question. Michael, Michael. So, what do you think, is it possible to get the semantics somehow, and what do you think is all, to everyone, but Michael's the one who's working in this DC, right? I think the audio specification is under-specified in terms of this semantic level, okay? So, you know, there's just a few bunch of people working on it, just a few bunch, but they are part-working and there's a lot of work. So, if I come up and say thank you guys, by the way, there's a whole layer under-specified, semantics, like, we need to define what is a table, right? And we also have to define what can be changed in a table, like, into the row, into the column, into the cell range, you can make it bold, blue, something, right? So, like, we define an ODF semantic user API and also the way how the API is being mapped to the XML change, okay? Because every time I do it at table number three and in the row at number four, right, the XML should be normalized, the same, okay? So, because it only works when we dispatch changes and change changes, if we can agree on how our document looks in there, they have to look the same way. If I say to you, the millions of paragraphs read the background color, yes, then you do it in a way that is totally defined, okay? And somehow we, hopefully, we can do it with a little automation, right, like the clear mechanism. With writing it by manually, it would be horrible, right? It's too many attributes, too many XML to get on the semantic level, but we need it because otherwise we're just simply sourcing all the toys and checking those instead of doing real collaboration. So, do you think there's any way to do that? I'm not sure I understand your question, but I think the answer is that it was previously auto-scoped. Okay, so Michael answered that, if he answered my question, if he answered the correct question, it's auto-scoped, okay? It was auto-scoped. It was auto-scoped. We can decide to make it in-scoped. We haven't done that yet. You realize that that was not at the active members of the DC currently, still I'm the subcommittee chair of the advanced download operation, and I thought myself, if there's no application coming to the subcommittee and helping to define this, I do the other way around. I write some toolkits where any editor can suddenly become a whole new application, like Emacs, okay? Emacs might not have the Emacs community, but a lot, rather than the thing. But, like seeing that in 5, it's quite handy to embed any editor of OVF 2.0 to write, so I find it's quite appealing. Okay, I think I'm running out of time. Thank you for listening. Let's meet later. Have a chat. Bye-bye.


What's going on, everyone? Sam here with the latest sports cards. We've been 22, Canadian football hobby, six box, half case break, number 11, picker team style. Read off a list of our names and our teams, Armando B Chargers, Ben P with the Bills, Dean I, Steelers Jags, Edward P with the Cowboys, Eric W Falcons, Ivan S, Bears, Bangles, and Eagles, James H Giants, we got Jeff M, Browns Broncos, Packers, Titans, Joel B, Cardinals Niners, Keith B with the Rams, Kevin S, Patriots, Colts, Lewis C, Ravens, St. Seahawks, Bucks, Matthew B with the Texans, Ryan S, Jets Ryan, Ryan SU with the Jets Ryan ST with the Panthers, Steve R, Lyons Dolphins, we've got Steven W with the football team, Thomas M, Chiefs, Troy D, Vikings, and Valerie P with the Raiders. Let's do it. Here we go. Something crazy coming out of this.      What a bar. DJ Moore, Green, 32 out of 50. Nice one here is going to be a vitreous of Justin Herbert, number 2115. Nice one there for the Chargers. They go Armando. I'm assuming that's Armando. Yes. Nice one there, Armando. Deontay Johnson. Oh, Lewis. Let's go, dude. It was a break too late. But how about a Kenneth Walker color blast? Let's go, man. Hell yeah, buddy. That's what I'm talking about. The K9 color blast going to Lewis C. We called that, buddy. We called that. Let's go, dude. There he is. Oh, Lewis is pumped. Lewis is amped right now. Let's go, man. That's awesome. We'll get that bagged up. Oh, that's awesome. 57 out of 75 is Devontay Adams for the Raiders. That is a Babe Ruth staring out into a center field type of shot call right there. Nice one. Nice Devontay. We've got 60 out of 100. Chosen Robbie Anderson. Going to the Cardinals. Congrats on that one. 60 out of 75. Jameau, Jamison Williams. Nice one there for the Lions. Congrats on that Detroit. And then we've got, see, 175. Velis Jones Jr. For the Bears. Velis Jones Jr. First chosen Rosen. I've chosen Anderson. That poor franchise. Yeah, fair of one. Well, chosen Anderson hit the run. I think that was the final straw for the Cardinals with Robbie Anderson and some changes in the name. And they're like, all right, now we're done. We were almost done before and then you changed your name to chosen. That was it. Got a Chad Mooma for the Jags to 100. And a green kill of Trav. 37 out of 50 for the Chiefs. Trav's kills him. Charlie Kolar for the Ravens on the rookie. 20 out of 50. Going to the Steelers. That is nice. Rookie eruption Calvin Austin on the two-color patch. Kind of nasty. Little number patch there. Got 57 out of 100. That is going to be a Bailey Zappy. Nice one there. 400 points. Again, that'll be random to all at the end. Let's keep it going, Lewis. How about 88 out of 175? There's a K9 on the rookie jersey auto. Let's go, dude. Kenneth Walker. Heck, yeah, go with your color blast right there, man. Let's go. I knew that that Seahawks spot can really pay off, dude.  Let's go, Lewis. Let's go, dude. That's awesome. All right, JK all day for the Ravens. Orange to 75. And Cortland Sutton to 100. What's up, Earth? Alec Pierce Rookie. 50 out of 75 is Romeo Dobbs for the Packers. A really cool one here. It's going to be two out of 50. Trayvon Walker for the Jags. Got ourselves a redemption Aroni. That is going to be Debo Samuel on the lightning strike auto. Going to the Niners. Nice one there. Debo redemption. That's cool. Very nice. Debo Samuel. And 15 out of 25. Brian Robinson, Jr. Three color, one color, RPA for the Commanders. Congrats, Commanders. Skyler Thompson, purple to 100. Rookie for the Dolphins. And Najiairis Green, 28 out of 50. Steelers. Tyler Murray. Got 44 out of 75. That is A. Aaron Rogers on the Atomic material. A. Aaron. 22 out of 50. Going to the Jags. Chad Mooma. This is Caleb's super collection. Nice. 18 out of 20, or 18 out of 100. Going to the Ravens. Justin Tucker. Automatuck. Congrats on that. There we go, Baltimore. And 137 out of 175. A. O. Pierre. You want to come out here? Pierre Strong, Jr. Rookie Jersey Auto. Going to the Pets. Nice one there. Oh, Lewis. You had the Ravens. Nice. I didn't realize that. Put two and two together. I know. I'm sorry, Paul. I know. I was hoping for it too, man. That's cool. They're doing the top 100 prospects right now. On the right side. Are you on there? Yeah. I'm number 37, actually. You'll see me in a second. Flash off here. It's crazy. Right? Shouldn't you be training? She dedicated the grind over here, dude. Jerome Ford. Five out of 75. Thank you, please. I try, man. I genuinely really do try. And nice. Vitrius is Trevor Lawrence. 86 out of 99 for the Jags. Hassan Haskins Rookie. Nice. Royce Lewis still considered a prospect. He didn't really play. You didn't really play. 40 out of 125. Got him. Is going to be a Patch Mahomes. Yeah. See, there I am. Miguel Vargas. There I am. So you weren't so good. Anything during spring training? Right. Nice one here. Going back to Lewis. We've got 42 out of 100. Rashad Penney on the Magnetic Signatures. Rashad Penney. Let's go, Dean. Patch Rick Mahome. That's true. That might be a new thing right there. 43 out of 50. Dean, how about a Hines Ward on the Galaxy Inc? That's sick, dude. Congrats, man. Dean picking that one up. Really nice Hines Ward. Should, I hate to admit it, should be a Hall of Famer. He's not a Hall of Famer, right? I don't think so. Should be. And 30 out of 50. James Cook for the Bills. Cook Rook. He came up with a stick for Zay Flowers. Zay Flowers Brings May Flowers. I can't wait for that. Oh, man. Oh, man. No, it should be April Showers Brings Zay Flowers. Oh, yeah. There you go. Even better. April Showers Brings Zay Flowers. Wow, that's perfect. Not Zay Flowers Brings May Flowers. What? Rhymes either way. We've got Skyler Thompson. 81 out of 100. Oh, that's perfect. That is, that's going in the arsenal right there. That just got loaded in right there. Boom, boom, boom, boom, boom. Loaded in. That is going to be a Tunnel Vision. LaDanian Tomlinson. 47 out of 99. Fair. No, I guess that's fair, too, Vaughn. Bookmark the stream when you say it. So we know what it really is. So we could track it down. Yeah. Track down the origin. We've got 23 out of 50. T. Higgins. Two color patch. Nice one there. April Showers Brings Zay Flowers. I'm telling Forest that when he comes in. 33 out of 50 is Matt Corral. Unbreakable patch. That's nasty. That is three color. Going to the Panthers. Redemption Arrone is going to be a Josh Jacobs. Magnetic Signatures Etch Orange. Going to the Raiders. What's up, Higley? And 125 out of 175 is Drake London. Going to the Falcons. Nice one there in Lanza. She's Erica, the Falcons. Like every really good Falcons half case. Nice one there because he had the one on one earlier, too. Let's do a quick recap here, everybody. Patrick Mahomes. Bailey Zappy. Aaron Rodgers. Romeo Dobbs. Devonte Adams. Calvin Austin. Trayvon Walker. T. Higgins. And Matt Corral. Redemption was Debo and Josh Jacobs. Got Drake London. Pierre Strong Jr. Kenneth Walker. V.L. Jones.  Thank you. Robbie Anderson. Josephson Tucker. A. Rashad Penning. Jameson Williams. Chad Mooma. James Cook. Hines Ward. Brian Robinson Jr. Collar Blast was K9. Kenneth Walker. Going out to Seattle. And then we got to do a points random. Thank you for reminding me, Jake. We got a points random. We got to do points. All right, guys, again, we're gonna roll the dice. Whatever team is on top after nine times, we'll get the points. So we've got one, two, three, four, five, six, seven, eight, and nine. Going to the Panthers. Nice one there. Panthers picking that one up. That'll do it for the break, guys. Thanks again for the fill. Next up, number 12 and final half


All right, so this is the plan for this clinic. Any questions so far? All right, I really encourage you guys to ask me questions. I love discussing things and talking about things. Feel free to raise your hand and tell me I'm wrong, things like that. I love arguing in a good way, though. All right, so first of all, the grand vision.  I had some carefully chosen words for this, so I wanna make sure that I get justice. All right, so the idea behind WMT and CMT before it is that we want to develop a framework for modeling that lets you assemble components to model and predict transport and deposition of water, sediment, and other nutrients over atrocious surfaces, and as well as how these surfaces evolve for a range of spatial and temporal scales. This framework should empower users to answer science questions. I think this is what Ireena will be showing. The framework should streamline the process from idea to implementation. It should also be inclusive, modular, and user-friendly. All right, so this is the big idea behind this tool. So what was our goal in trying to rewrite CMT? What was the purpose behind WMT? The idea is that we wanted to make a web-based tool to do component modeling. Why? All right, I've got four reasons here, and these are broad things I'm trying to flesh them out. So first of all, accessibility. So WMTLC runs on a web browser, all you need. You don't need to worry about what Java version you have. Does that Java version run on the Mac or does it run on Windows? What's a JRE? All right, all you need is a web browser. Next, integration. James made a point this morning about being able to link to the documentation and the help for a model so that we don't have models that are black boxes. Well, WMT is a webpage. I can make links to other webpages like those on the system's website. Third, portability. So because WMT is basically a web application, it works on a web browser, not on an operating system. So I don't care if you're using Linux or macOS 10 or Windows. All you need is a web browser.  And last, maintenance. So the nice thing about this, because web standards exist and they are standards, we only need to develop one version of WMT. We don't have to worry about these operating system dependencies. There are a few browser dependencies. I just found one in Firefox yesterday. But there's a lot less than having operating system dependencies. So this is our objective in creating WMT. All right, next, implementation. And again, I know this isn't terribly exciting for many of you, but I wanna show this because it can lend insight into how we built it. So WMT is a RESTful web application. What does that mean? REST is a representational state. What's the last T? I can't remember the last T. Can anybody help me with that? We can Wikipedia it. Representational state transfer. I'm trying to get you guys to help me out a little bit here. So REST is a software architecture paradigm. The idea behind REST is that there are features, some key features of it. And I put these in my standard separation, stateless, simple, and secure. I was very happy with that. I could illiterate that so nicely. So with REST, you get a separation between the client and the application programming interface. So I've got a diagram here. I'm gonna dive into the diagram a little bit in just a little bit. But let me, first of all, talk a little bit more about these properties of REST that we are using in WMT. So separation between the client and the programming interface. The separation of concerns. REST is stateless. So information about the model you're developing, for example, in WMT is held in the client. All right, so if the client goes away, then your model goes away. But the nice thing is you save stuff and it goes to the server. The communication between the client and the server goes through standard HTTP get and post method calls. Information is communicated with JSON. So it's kind of neat because it's a very lightweight way of transferring information. It's just text. It's a couple of bytes at a time. When we make communication with the client and the server. It's also here. We use HTTP, so your passwords won't be compromised. All right, so let me delve a little bit further into the diagram because I want to talk a little bit more about our application of this RESTful interface and how it works currently at systems. I should mention one example of a RESTful web application is the internet, is the web, the WWW. That's a RESTful application, actually. All right, that's an aside. Okay, so what we have with WMT is we have a client. The client is just gonna be your browser. So again, a browser on any sort of platform. All right, the browser communicates through the internet again with these HTTP calls with a server. Okay, now the server I've broken up and actually using Eric's explanation to me, I've broken this up into three components. The database server, the execution server, and the data server. So the database server, the idea, what it does is it contains information about the components that you would use to assemble a model in WMT. It contains the metadata about the models that you would develop as well as simulations that you'd run. The database server is sort of the controller as well. This is what you talk to between the client and the server. The database server will then, if you want to execute a simulation, it'll path that metadata over to the execution server. So the execution server is where the model is actually run. This could be, well, for example, right now that is Beech, our HPCC. In the future, this could be maybe a really sweet new Mac Pro, for example, those are pretty fast. All right, but this is the execution server. This is where the simulation is actually run. So it needs to have the computational ability to run a model. It needs to hold the system software stack. So the CCA tool chain, the systems framework tools as well as the compiled shared libraries for the components. So again, this right now currently is Beech, but it could be a personal computer. It could be Janice. It could be, as James mentioned this morning, it could be Yellowstone, for example. So, and then lastly, the data server. So when the execution server completes the simulation run, it will post information. It'll post the output to the data server where the user can then pick it up. So right now, the execution servers I mentioned is Beech. The database server and the data server are River. Is that right, Eric? Okay, good. So the database server and data server are both River right now. So it's our main computer systems back at CU. But again, this WMT could be deployed elsewhere as well. So we have an instance of WMT, if you will. Our source code is up on GitHub as well. So you can browse the code, you can download it, you can make fun of the bad code that I wrote. Oh, it was really good code, don't worry. All right, so it's shareable. All right, any questions, any comments on that? All right, well, let's take a look at the client. So this is the URL right now for our instance of WMT. Know that it uses secure HTTP, all right? So if you'd like, please enter this in your browser. What kind of browsers are you guys using? Who's using Chrome? Who's using Firefox? Who's using Internet Explorer? Awesome, Safari? Okay, we tend to do a lot of stuff on Chrome. So, and I've tested it on other browsers as well. I've tested it on my wife's iPad. I can run it on my phone, my iPhone. You know, so we've been testing it in various places, but I'm very curious. This is gonna be a great test for WMT to see how well what happens when all 40 of us hit that. All right, so the URL, this will be, again, systems.cario.edu slash WMT. And so, hopefully I have it up on Irene's computer. All right, so what I'd like to do now is I wanna go through the buttons and do a little bit of buttonology and talk about kind of what things do and why they are there in WMT. All right, you can see that there are three panels. There's a header panel that runs along the top.  There's also the model panel on the side, on the left side, and the parameters panel on the right side. All right, so let's walk through, and I wanna show you some things that you can do with WMT. So, right now, you can see I am not logged in as a user in WMT. If I try to do anything, it's not gonna work. So I can click buttons. You can see they don't do anything. I can click the driver, I can choose a Vulgen, but it doesn't do anything. So you have to be logged in in order to do anything in WMT. So, that's our first step. Let's do a login. All right, so I invite you guys to create new accounts on WMT. You can provide an email address and a password of your choice. And if you don't wanna use your real email, underneath the hood, I do some checking to make sure it's a valid email, but I don't like email you or anything, so it could be a bogus email. Yes, that's a good point. So it's different from the login on the system's website. It's also different from the login, for example, on beach. Now, we thought about this a little bit. We wanted to keep it separate from beach because with beach you need to have an identity, for example. We thought about using the same login as we had for the system's website, but that login system is set up through MediaWiki and it was just kind of a pain for right now. So that is something we were gonna look into to see if we can implement it later on because it would be really nice to have the same login and have it automatically recognized. Okay, so when you log in, if this is your first time logging in, you'll be presented with a dialogue that asks you to repeat your password. Yeah, I'm gonna take a look. Go ahead, that's the time I came. Okay, click okay, please. How about try refreshing the window. So just do a refresh, right, and then view this page, right? Okay, click okay. I'm gonna put this over here. Yeah, let's do this shot. I'm not sure. I'm gonna look over here. Hey, Eric, you have a moment to help with this, possibly? Thanks, all right. All right, and this is cool. People let me know if things aren't working. It's good. And if anything goes wrong, you blame me. Right, so you don't have to have an account. You can just use any email address and password combination. Yes, any email and password will work. Go ahead. Right, so there will be two separate logins. There's a login for WMT and a separate login for Beach. Okay, so we'll come to that. All right, so I'm gonna log in. After you've logged in the first time, you'll see that WMT remembers your email. It doesn't remember your password. Does that work out okay for people? Any other questions or comments on that? Okay, so now that we're logged in, we can do things. All right, I'm gonna take a few minutes to just go through the different buttons that we see and show examples of how they work. All right, I'm starting on the model panel. You can see there's an open, a save, and a run button. If you hover over the buttons, you can see that a tool tip appears. In general, I tried to put tool tips on every possible widget that I could find in WMT. So this is maybe a first place to look for help, okay? There's also a more button. So this is where we grouped other actions that maybe won't occur as often. So I could do save model as, I could duplicate a model if I had an existing model that was to be saved. I can delete models that I've created. I can manage labels. Hang on to this. I'm gonna come back and talk about labels a little bit later. This is kind of a bigger topic, but just to prepare you, think Gmail, all right? I can get information on the components that are currently available inside of WMT. I can view the run status of a simulation. We'll come back and see this later. And at the bottom, help and about WMT. I'm actually gonna click on this because I have links to two documents, which I would like to show early on here. So one of the documents is help. So I made a help document for WMT, and it's kind of loosely what I'm following here in this clinic. So if you click this, you'll get the WMT help at the systems web page, or the systems website. There's also a tutorial, and I'll be following this a little bit later in my talk as well. So there's a help and a tutorial. All right, so those four, those are the four action buttons in the model panel. Let's start, let's create a model. Okay, so to do this, I need to have a driver for the model. Let's see what's available.  You can click anywhere on the button. You can see, you get a list of components that are available on WMT. I'm gonna choose CEM, the Cosine Evolution Model. Okay, now when I selected that, you see that CEM has been loaded into the driver slot of my model. You can see that CEM exposes its two users ports, River and Waze. You can also see that the parameters for CEM have been listed. Let's, I'm gonna leave aside the parameters for a moment. Let's take a look at the model panel. Let's take a look at that driver component, CEM. You can see that the icon changed on the button. I should make a side note that Eric and I had a lot of fun with the buttons and icons, so we tried to map meaningful icons to the buttons. If I click CEM, which is now a component that fills the driver slot, you can see that a new menu exists. So in the new menu, I can show the parameters of this component, which actually is already being done. I can get information on this component, right? And again, this is, you know, as James mentioned in his talks, his talk this morning, you know, this is the way to bridge the black box. All right, so I can immediately get information on this component, the name, the version, the DOI, a summary, a link to the model help page. I use these links when I was developing the tutorial. It was pretty fun. So I can go to the help page for CEM, as well as the developer of the model. All right, so I can show the parameters and get information, I can also delete. So if I wanted to, I could delete that component. I'm gonna bring it back, actually, if I wanna use it. All right, so this is the component menu. All right, let's go a little further. Let's fill these users' ports. Let's find some components that'll provide river. So we have one component available that provides river, it's Evulsion. All right, again, if I click on Evulsion, you can see I could show its parameters, for example. All right, so now I'm showing Evulsion's parameters. Now, it's a little bit off of screen, but that's okay because you can pan over in this panel. Oops, no. I'm using Arena's laptop, so the key mappings are a little bit different than mine. There we go, all right. So you can see you can pan around in that panel. You can also drag the divider as well. So if I wanted to get something bigger, I can go like that. The numbers in the box, yes, they are default values. They are default values chosen. Now, I want to be careful with this. I think they're chosen by the model developers. Is that correct, Arena? Cool, thank you for explaining that, Arena. Yeah, that's a very good question, and that's actually my next thing, so yeah. So for example, you can see here. So I just had, I added Evulsion to fill the users' port for CEM, and Evulsion has an elevation port that CEM fills. So this would be an example of model coupling. There's gonna be feedback here. Does that answer your question? Can you give me a shout out and see if you can show our industry with it? Cool, thank you, Arena. Other questions? Okay, let me go a little bit further on this, because for CEM, note that the second little CEM box, I put a little icon there. I tried, I'm trying to show that this is in fact the same instance of this component in each case. So the second box for CEM is actually an alias to the instance of the driver. So for example, let's say that I, so I have Evulsion, I'm showing Evulsion. Let's show CEM, and if I change the parameter, for example, just I want to demonstrate that these are the same instance. So let's say it's a 150 instead of 50. All right, so now if I show Evulsion, if I show CEM now, you can see that that change is mapped as well. So what we're trying to show is that these are the same instance of the component. Okay, questions? Yep, go ahead. That's a good question. Let me demonstrate what happens right now. So the direct answer to your question is, yeah, you could. But probably the last thing that I need to do, this is so, WEP is at 0.99 right now in my opinion. So I need to make some movies because James would like them, and I also need to make it so that you could put a separate instance so that you could, for example, have two instances of CEM in the same model. As it stands right now, you just get an alias again. So that's like the last thing I need to do for WMP. Go ahead. How about this? One I see, this is an example that James has used before, I think. And let me see if I get this right. I think it was using child. And now you can see, for example, there are two base levels. So for example, so I could, I perhaps would like separate instances of base level, for example, here. Okay, all right. Right, yeah. So again, this is the, so again, this is the, both of these boxes for child refer to the same component instance. They'll be the same. I mean, these are the exact same instances. Oh, good, good. Here, I could help with that. Hover your cursor over it and you'll see that it fills the subarial delta port. We could put that there, but it's just, yeah. It is given as a tool tip. And I think this is also, I can't think of a way to say this. I automatically populated that user's port with the same instance of child. This is something that I did on purpose because I have not yet fixed, I've not yet completed that one last task of allowing separate components. So I do this for you as a convenience. All right, so this is something Eric and I talked about a little bit, so I understand what you're saying. Maybe it would be nice if I didn't do that, so that you could fill it in yourself and you could see that that's the subarial delta user's port. So I went maybe once, I went a little further trying to be convenient, trying to be helpful. Okay, other questions? Okay, let's go a little further. Let's take a look now at, all right, so again, this is more buttonology. So you can see underneath in the parameters panel, we have three action buttons. The first one resets all component parameters to their default values. So if I started changing parameters willy-nilly, I could then click this button with the lightning bolt appropriately and zap all of those parameters back to their default values. Next is the view input files button. So the idea is that you could click this and take a look at what the input files for this model component would look like if you were running or basically trying to execute the model from a shell prompt. So for example, let's take a look at the default. So you can use it for, if you save a model, you can actually see what the input files would look like for that saved model. Now, because I've not yet saved the model that I've created here, I can look at the defaults. I can choose, but different formats look at, let's say HTML. All right, so you can see the different input files what they would look like. All right, and then the last button is again, information on the component. So again, bridging that black box, making it easier to find information. Okay, questions or comments so far? Okay, just a few more things then, and then I'd like to let you guys try to experiment a bit. All right, so let's take a look at the parameters. So how about this? Let's take a look at the first one here, simulation on time. You can see that I put my cursor over the box where the value is, and you can see that it gives a valid range. So it shows what range of values that that parameter can take. And as Irene has explained, the default values are a useful, simple default. So I can put in other numbers. So my runtime in days is 100 years. Let's say I only wanted to do, say I only wanted to do one year. All right, so I've modified the text in that box. If I hit the enter key or the tab key, that this text will be parsed. All right, so you can see it got parsed and it got the .0 put after it. All right, so the boxes are somewhat intelligent. Note I could also use scientific notation. So set of 365 say I want to do 3.65 E2. Now if I hit tab, it'll go to the next box, or if I hit enter, it'll stay in this box, but process the information. So I converted that scientific notation to standard notation. Note that you have to use a capital E, not a small E. This is disturbing as I always use small E's. But if I use a small E, I get a message, an error. So note that if you put text that does not belong there, so that's okay. But if I did this, for example, and hit enter, I would get a box colored in a red color. This is my warning color. Now note that there's nothing wrong with doing this. I won't stop you from saving a model or running a model with something like this with one of these warning boxes, but your results may not be good. Just before I leave this one quick example, so if I hover again, I guess I need something in the box in order to hover. I just wanted to put a quick example of showing something out of range. I would put 66 just as I hit a couple of keys. If I did negative 66, that would be out of the range of acceptable simulation runtimes. And again, I get the red box. Okay, so two things that I want to show, and then we'll try some of this ourselves. So I want to save this model, even though I know this is incomplete, I want to demonstrate the act of saving. I also want to go back and talk about labels. Recall, I mentioned that earlier, but I put it aside. So let me tackle labels first because they have an impact on how we would save and open models. All right, so those of you who have used CMT, who has used CMT by the way? I should have asked that a long time ago. Wow, okay, awesome, okay. This is new stuff then. So CMT had the notion of a project. It's a way to group a set of simulations that you created. For example, Irina has created a set of simulations that she will show after this. And in CMT, they would have been grouped into a project. Here, in WMT, we are trying a different tactic, taking a hint from Gmail. And in order to organize and categorize models that you create, I've implemented a labeling system. So when you save a model, you can attach labels to it. Some labels are predefined, which will help you. Label, you can also make your own labels. And the idea is that when you save a model and attach labels to it, at a later point, when you come back and open models, you can then select labels to filter the results. So you can filter what you can see. All right, so let's look at the labeling system. So this again, underneath the More menu, I can manage my labels. Okay, so you can see that there are labels that have been predefined for the different components that exist in WMT. Note also that they are public. All right, so these are available to everyone. Also, Child, the driver of this model that I'm about to save, has been selected as a label for this model. So this is automatic. WMT will automatically select the driver of your model as a label. So you can go back later on. Oh, what was the model that I made with CMT? Or with CEM, for example, I could filter on CEM. There's also a tag or a label. Use those interchangeably. There's also a label that uses your login email. And then there are other labels that we can create. So how about this for, for this example, I like to add a new label to it. So I'm gonna add a new label. How would I call this systems meeting? So now I can know, actually how would I go, I can add two labels, add systems meeting and maybe I'll add 2014. So I've added two labels. Now I can go check those. So there's 2014. And there's systems meeting. And so now when I save this, these labels will be attached. And so at a later point, I can come back and think about, well, what was that model that I made at the systems meeting in 2014? I can filter my search results to find this one. Okay. So I've added some labels to this model. Now let me save it. So I can go to the save button. I get a dialogue box that will prompt me. I should probably call it something better. I should probably call it something like, there's a labels button where you can interrogate the labels that you set. So I can see what labels have been set on this model. I can save it. This isn't saved locally. This machine, this is saved at, on the server. So basically on river. No, actually. So the labels that you create are private. So they belong to you. So those labels that I just created were private. They were private just to me right now. Now if you guys create the same label, that's okay. You just save public right for, so for example, child is a public label. This is available to everyone. Whereas like 2014 and systems meeting, you can see that they don't have that public text next to them. So they're private just for me. Okay, let's prove that this works. If I delete this model, I should be able to open the model. Let's not save. I want to open. All right. And I want to filter on the labels that are available. So let's say I look at systems meeting. Aha, there's my model. All right. This is an example of using the labeling system. All right, questions or comments? Well, so I'm a little torn. So I have a, this was basically kind of the buttonology. I wanted to go through an example as well. So I have the tutorial example and I'm a little torn. I was thinking, do I want to go through it? We could all go through it together. Or do you guys want to try it yourselves? You guys have any opinions on that? Go for it. The data, oh, the good, good, good, yeah, yeah. The data are going to reside on the execution server. So this is stuff that, I don't know if I have the right words to explain it. Arenaq, can I ask for help with that? Hydren, got it, yep, we'll do.  Hope to like to save it, okay. Thank you, Arena. On data? Yeah. Any research is one in the future on data at some point, right? Or do you want to upload your own data files? On the server? On the beach, right. The data files? No, no, those are your files. Yeah, they reside in your space. What's that? We have a system set up for that, Arenaq? Okay. Thank you, Arenaq. Okay. So Mark didn't show that there were labels and they had to deal with that public, they're a child, arenaq, et cetera. That means if you're able to leave, you're always available, but if you're also available, that's public. And if you're ready, Mark, you already have a file that's normally in your description, is that label, that might be out of control, you see? That's, so that's how you share your files, right? You have to set it up and like, I'm not a computer, I'm not a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, and I'm a,ages, and I'm collaborating on this. So that's just a separate question. Do you commission data that then, is available to everyone? And is that in particular? I, Arenaq and I have talked about that. It has not yet been implemented. So we only have private for the user and public for everyone. We don't have like a protected right now. Or it should be my job to make it right and do the right thing. I should do the right thing and make protected as well. So that's one thing we have to do. No, because you still have to provide your own logging credentials to a beach. So the model's there, but the data's not there. Yep, this is our evolution of the idea of a project that existed in CMT. And the idea I take from Gmail, pretty well there. So I want to make the same idea here. Other questions? I talk a lot. I know, darn. So Irene, we've got about 10 minutes left. I can do a summary, and we take a slight break before we start yours. OK, so how about this? Just make a run. Yeah, OK, do that. So how about this? Let me just start over. The refreshing is really nice. So if you guys would like to try this with me, it'd be totally cool. We can try to hit our server all 40 with the same time and see what happens. I'll do hydrotrend. So what I'm going to do is I'm going to do the example that's in the tutorial. So this is, again, recall I showed the tutorial earlier. So we're going to do a hydrotrend example. And I'm choosing hydrotrend because we tested this. We're pretty sure it works. So I'm going to load hydrotrend as my driver. How about I change one parameter? Hydrotrend likes to work in years. So for the simulation runtime, instead of 100 days, I'll make it 365 days. I hit Tab, so it verified by 365. Let's save this. I'm going to save this as my name. So you can see the labels. It looks like the hydrotrend and my login. Maybe I should do a, I should do, yeah, let me do them. I love my labels. So make sure I got my labels checked as well. There, oops. All right, so I'll save this. All right, let's run it. All right, so the Run button, click that. The idea is that eventually we would have a post as well. But for right now, Beach is our host. So this is where you need to login with your credentials for Beach. So my username is different, for example. Omnitruth, so hit Run. Okay, so I get back a dialog. It says that I've submitted my run. I can choose to view the status of this run now. So I can see some other people have done this as well. I put my initials after mine so I can see it. All right, so the model ran. See, it's complete, available for pickup. I can download it. So it's a tar GZ file. Let me know if I need to pause at any point along here. Or if you want to break with a question. Oh, this isn't my computer. I can do, do you have iterm? Does it go to downloads? So there's my tar GZ file that I've downloaded. I'm changing your defaults just so you know. Okay, so I could unzip this. All right, so you can see the information inside. There's a readme, the hydrotrend output. So the input files, the output files. There's a time vector for us. If I go to the output. So what are all these files? You can get information on this from the model help page from WMT, you can go to the systems website to find out about this. Which is what I did when I made the tutorial. So for example, I know that hydroaski.q is the discharge at the river mouth. So there's the output from the model. Now, I'm not gonna go through and do a plot that took a little bit more time. But if you took a look at the tutorial, you can see that at the end, when I download, I made a quick example of reading the data from a few of these files and making a simple plot. Python, oh, lots of questions. Go, no, not to rerun the same thing. Oh, I don't know, yeah. It wouldn't know about that. One thing you can do, you notice that there are helpful icons, so I click the download button. You can also click the trash icon. So if you want your simulation results to go away, you can delete them. Does that answer your question? Keep going. Right. So like for now, there's like our unique characteristics and unique parts. And like, when we come back to this stage and like rather again, we need to get there. So if it's somebody and they can get there, that's like, you know, it's not gonna be like that forever, right? So like if there's a new feature, it's just a green icon, and that will be on the way. And we'd email you. We wouldn't throw it away without letting you know. Go ahead. The steps that you can do to make it easier to do it. Mm-hmm. Right. Oh, totally cool. We should do that. We just haven't done that. So that was actually part of the feature of CMT and that it had to visit a software visualization suite along with it. And so, yeah, that is an option. It is not implemented, but that is an option. Who for, of course. And the example that Mark is showing is a fairly simple time series, right, where you can pull that up and do it easily, like a grid where you get to do it. That is not the grid you want to get back to the web to create a time series like that. So there's actually, you know, you can just separate that and say like, oh wait, you know what, we have to put an app for the grid and not like a online grid to do the best. And so, I guess that's how it works. Thank you, Irina. So, you can use that app, they can use it. Sure. So, they can use their own data to get it back to this, I mean, that's kind of what we were at right now. The feature is so-called a software. And we are responsible for the software, we are responsible for making it more important for it. But then, like, what the user does with it and how they use it like the others. For now, that's something that I like to do. I actually make very much the use, especially for me, because it's so much easier if that would be a very easy to use for the staff and I feel it in both. So, I just don't use them for each and I don't think the only thing that needs to be applied to is that it's sort of like, oh, there's no one for that, there's no one for that. So, I don't have to try to keep guests in a lot of positions with three digital things. But the core of the software is there. You can find the standard format there, and then see yes, and then it's a little bit easier to use. All right, that's good. So, I think it's not interesting for the staff here. I don't, yeah, that's great out here. Or, I'm seeing the reason, and even today, and I really want to be in a space, it's gonna be like, I assume you should be able to do it, so like you're having geo-references like you're geolocation of these things, it can be out of the way, so it can be more of a thing. The timer thing? Did you get that? You? Okay. Anything else? Other questions? The question's been great, thank you. Go ahead. Yep. So, the job that seems to fit it for the center and it's really easy to do it, and so does every person. Mm-hmm. So, I went to the view run status page. You can get to that as well from this menu item as well. Yeah, that's the same page. Let me close it just to demonstrate. Refresh your browser, maybe, because when everyone's submitting jobs, this continues, this queues. This page queues. Okay, I have a brief summary. Then we'll take a tiny break, just let Irina set up and we'll come back and see some labs. All right, so with WMT, you can see that we have allowed users to select a component model from a list. You can build coupled models. You can view and edit the parameters of the model components. You can save the models that you design to a server where they can be accessed anywhere. You know, you could set up, you could design a model at your office. You could go home, tweak it and run it, for example. You can share saved models within the broad community using that public label. And you can run a model by connecting to a remote HPCC where the system software stack is installed. Questions or comments? All right, let's take a very brief break and I can switch it on with Irina. Yeah, probably. Yeah, okay. It'd be all right. Can you guys hear me? Is this on? Yeah? Okay. What I wanted to pitch for in this like sort of like next 45 minutes is that we think this is ready to be used by faculty or by TAs who like to teach with. And I've been teaching with CMT the last three years or so and there would be like, there'd be plenty of like little things that would frustrate people and I'm sure there'll be like little things that would frustrate people with this too, again. But I think this is much more robust and we try to make it a bit more accessible than the previous two walls. And so we're moving to this age-grant system between the CMT and the WNT and I provide a number of labs so that people can like use. And I'm hoping if people buy into this we can like make that sort of the topical labs bigger and bigger over time and sort of like target it towards just specific topical in there. So the ones that I'll share with you today are basically their examples and their work-out examples. And they said maybe to see how this is gonna go but hopefully not more people are able to do this. You can do different classes and we can like expand it to different models and different components. So I'm gonna spend like maybe five minutes or so to motivate why would we even wanna teach modeling in the earth sciences. I realize I'm preaching to the crowd to all of my own people who are all moblers and like we think this is an important thing but it's actually pretty embedded in sort of like how people view earth sciences, how they view predictions and like it's on a much lower level and great in our educational system and we can like sort of use that opportunity and use these tools to make it more accessible for maybe undergraduates or like even at some point in the K-12 system. I'm gonna show you like the possibilities that the WMT offers for that and sort of how we set up to do that. So even from the beginning, like see not all of you are aware of how long history of the CSDMES initiative has been but even from the beginning of CSDMES there was always this idea of like once we've got like this toolbox of the middle components together and I've made the bigger components that's like uniform, practical, mutual independence. It would be easier for people to use, it would be easier for people to teach with and so there's very much all of this education mission to CSDMES and to the tools that were developing. And so we're trying to hold up that promise and make things easier to use and like make them as robust as possible. And when you dig down in sort of what the National Science Foundation brought out in documents about what they think is so important to our graduates, undergraduates and even into the K-12 curriculum, then like there's very basic skills that they want people to have. There's very basic concepts that they want people to grasp that have to do with like modeling and what models are to our society and what they are closely making right now. And it's things like asking questions and defining problems. Can you then like work that into a theoretical model in your head? Can you then work your theoretical model into something that's a computer model or a equation? Can you then like say like, okay, I'm gonna do 10 runs but I'm varying these parameters and why would you even do that? So those are questions that you can like actually tackle at a fairly low level. And it's also something that's like, if you only need a computer, it's even accessible to like almost every map. You know, you don't have to go like to a part of a spiritual location or like in a certain sense, modeling is an accessible tool but we need to make the tool easy to use and make it accessible to do that. And then of course in all our research, we now have to use models. All right. You can do a microphone. Okay, turn it off. Okay. Let's see what we can do. What did you guys do? I didn't hear any echoing. So like, how's that? Better. I can hear it now too. And I think that in society, like modeling is becoming imperative to like forecasting and making predictions. And I put up the example of Hurricane Sandy. It's like one of the examples of like, okay, we have a model, the models run and like this is a prediction that people are using. And of course, weather modeling. There's like countless of examples where surface process modeling is important and like people are trying to make predictions based on surface process modeling. But if we want like our students to like, maybe even if they don't become modelers, we want them to be aware of like the role models play and what's behind them. So with that in mind, I have like sort of these objectives and this comes from like countless EKT group meetings too. It's not just me making this up. But at CSDMess, I am the EKT person. So that's why I'm like presenting. So what are learning outcomes of these labs and what is it sort of that I envision is important to these labs? Well, there's sort of like two overarching philosophical objectives that I have. I want people to be aware of what's a model versus what is data. That's a very vague boundary already. But people need to be aware that if they look at the forecast of Hurricane Sandy that I was just showing that that's a model forecast. Whereas if they look at like sort of like afterwards what has been measured at tidal gauges then like they're looking at data. But you needed the model to like forecast for New York what, when the search was gonna arrive or like how high the search that was gonna arrive was gonna be. And that is where the models have their role. And I want people to be aware of like this is the role that models have in our society right now. I also want students or learners to be aware that like any model that you make is it gonna be a simplification? Any model that you make has assumptions. Any model comes with uncertainty. And so those are like secretly I try to like address these philosophical issues in the model labs. And it's not that every lab has like a whole philosophical discussion but I try to make people aware of that. This is part of what you're looking at is a model and there's assumptions that are made. Other things are skills. Like we want that people are able to visualize data or ask questions, interrogate the model results that they get. We want people to be familiar with the fact that you could submit a job to an HPCC system. This is maybe a graduate student type of skill. But like one of the things when I was teaching class with the CMT, I would like ask questions afterwards and then try to evaluate what people had experienced from this. And one of the things is that I think they came away with like, oh, is that the big deal? We just submit a job to a supercomputer and it runs our model. And yes, there's like a whole added level of complexity if you wanna like submit it parallel, et cetera, et cetera. But if you just wanna submit jobs to a supercomputer, that's not such a big deal anymore. We can do that through an interface like this. And so this is one of the things that CSDMS after that like people are comfortable working on these machines, comfortable like with queuing jobs up and using that. There's also topical and conceptual understanding that we wanna take, people take away. And these are like from the list of sort of the big ticket issues that I got from the EKT working group. Like to identify feedbacks, which CSDMS coupled models are perfect for that. You're like searching for the feedbacks between the different components. And that's where the new science often lies. We wanna like make people aware that like not all processes are linear. There's complexity in processes. There's randomness in processes. So all those kinds of concepts are like hidden in the labs possibly. So we've been using CMT before for this and we're moving to the WMT right now. We've been teaching these clinics. So like every year there will still be this clinic and like once you've taken it like you probably don't wanna repeat it every year. But hopefully if our community keeps expanding then more and more people are aware of what can be done with this tool. I use it every year in the NSAT summer institute for two days and like people really get to run models for two days. And so it's a bit more scientific than what we're doing here with the botanology as Mark was saying today. So there's about 100 grad students that have like gone through this little training of two days and like playing around once over there. Oh yeah, and I'm very proud to say that they still come back to the CSDMess meeting after they've taken those two days. And so to make this an effective teaching tool you need the models to be like exposed to the public. And that's one of the core tasks that CSDMess has. And when we really first started probing people for models we like designed this metadata concept where like people, developers themselves submitted this metadata to us about what language the model is in, like what time steps it runs with, like what's literature references, et cetera, et cetera. And so there's a sort of a core little database of each model that's in the metadata. And then in addition to that the WMT is integrating these model help pages that have a bit more on the theory of the models. So I think I put up some examples. So you can go to like a model help page and actually find like the equations that go with the processes that you're modeling. And there's a nomenclature that tells you like, okay, if I'm filling in later today we're looking at Brad and Andrew's example of like wave-highness factor.  In this case I was good enough that I talked to Andrew once I like put it up and like he made a couple corrections and like clarified it a bit. But so I did, this is a Wiki. I know you guys are like overbooked. Everyone is, but it's information on your model and your conceptualizations that's on this Wiki at some point. And that's what's gonna be used by the community if people propagate and use this model. So we will try to probe you once we got like informational models up to like make sure that it's correct and that you like it. And sometimes there's things that we still misinterpret because these are not our models necessarily. And so on the educational repository. So under the CSDMS webpage there's a section with labs and they used to be CMT labs. So like not all of them have been transferred but there's a couple that we transferred for the to like make this ready for this meeting. And so there's like, I think there's hydrotrend and plume and set flux and CEM. Those are like the ones that have been transferred to this system. And then there's others that are gonna follow pretty soon. So the level these labs are written for is like for advanced undergraduates in earth sciences or oceanography or like sort of the core fields that CSDMS is all about, earth surface processes in its widest sense. Each lab in my experience, each lab takes like three to four hours maybe. And then possibly you can ask people to like do a report or like thought a little extra output or something and like make it into some homework, but that's about it. If you have very fast students, they'll like complete it in two hours. And if you have like people who aren't as familiar with like grabbing things or like maybe manipulating data or visualizing, then it will take them a little longer. Each of the labs will have the link to that tutorial. So like you basically can go in, like if nobody has ever used WMT, like maybe first do that little tutorial that will take maybe 20 minutes or so I think. So like arbitrary which one you like will start with, you can still do that tutorial right away. There'll be like a PowerPoint that has a bit on the processes and the relevance of that specific model or the specific coupling that you're looking at. So what I usually do is I use that PowerPoint to set people up the first 20 minutes and say like this is what we're talking about. We're like talking about coastal stratigraphy, blah, blah, blah, blah, blah, and then like you have like a little bit of background on the model already. It's harvested from the model help pages and like sometimes it is from talks that people gave here. Then I have instructions for runs and all the runs that like are proposed there to do have been tested. So once you go like wide out of that domain or not even that wide out of domain, I don't know for sure like hopefully the model is robust and we don't know what all developers did with their models necessarily. So like once you get like really creative you could like still crash models but the runs that are proposed in the labs are tested and like pretty fast in most cases. There's a bunch of questions to like meet topical learning objectives and there's like key references. So as you saw from Mark's demonstration you do need a supercomputer account. A lot of you have been set up with these and so it's sort of like digging around in your email or like reminding yourself what your password was but yes you do need that. It's a big deal to run or to have like access to this resource and it takes us a little while to like process that. So once you're like you know you're gonna teach a class or you know you have like a couple grad students and you want them to use this tool like just have them email us or like use the instructions on our site to like set up an account on beach. It takes three working days was what I put in and then like somebody out of our teams said like no I'll make that like five working days to be like entirely sure that you make it before your labs start or what I like to do if I have like a full semester I like just do this all like sort of logistics in the first class and then take it onwards from there. So they did a quick tutorial and then yes they do need to like get familiar with net CDF as a format or use the ASCII. If models provide ASCII files they can like still stick to the ASCII for some of the simpler models that's possible. But the standard in our framework is gonna be net CDF. You can like use MATLAB, you can use Python like your own favorite tool to like deal with net CDF files. We recommend visit for visualization. MATLAB is better for calculations so like it's kind of up to you. So as I said there'll be like sort of instructions on like how to set up a parameter or sort of like a couple of screenshots to like sort of guide you around like where to go. And then questions like I mean I put this one up because yes you like have this model and it has a removal rate and you can like sort of intuitively guess that like a removal rate probably has something to do with how fast things settle. Well as soon as you ask the question is like is this removal rate the same as Stokes velocity settling velocity? You need to invoke like a whole like theory and like go back to like either Wikipedia or like a textbook and sort of figure out like oh yeah what was the settling velocity again? Like let's calculate Stokes velocity settling velocity. So like it's sort of like the questions expand quite a bit on like what if a person just wants to change parameters then like they're not gonna be able to answer these questions yet. There's like theory there that can like motivate people to like dig a little deeper into what is behind these models. I'd like like how many people have their beach account and like know their password. Okay cool. So keep your hands up for a second. If there's one on each table then maybe people can gather around and like sort of like do these run or like do a couple runs and like sort of like do try to run this and like other people can sort of like gather around those laptops that there are maybe teams of two or three I think is gonna work out. So suppose that we go to this lab that's the CEM lab and just toy I think we have 15 minutes or so and then I expect that you guys will have like a bunch of questions after playing and then hopefully that will like help people to understand like how this works and what's up with it. Are there questions right now? When we wrote the renewal for CSDMS we proposed to do it in a sort of a tiered approach where the simplest is like animations from models that still teach some but some or like still are a visualization of like something that's a relevant process and you can document those and CSDMS actually has an archive of like animations and movies. Then sort of you can step up and say, hey I have a model that's fairly complex but like let's bring it down to just the parameters that have like a lot of impact. Like if I use HydroTrend as an example it's like all these bells and whistles to do river sediment low to the ocean. Well what if you have just three whistles or three buttons and you say like I can change those and it's just I added them or I increased the temperature and I still look at the effects of that and so we call those like sort of slider models or like sort of very easy models and that's like our second tier. It's very easy to build those in WMT but we haven't built them. But it's basically you instead of presenting a student with all the options of a full model you present them with just a few buttons but sort of the flavor of it would be the same and then these are like for advanced undergrads and like graduate students and like they're pretty serious I think. So that's the vision a tiered approach. We welcome ideas and like the EKG group is sort of the group that tries to set the scene for that. Other questions? Sorry? Oh yeah. Setflix 3D. This looks something on the web browser side. This is not but the run is not running. I think there's this is like a web. Yeah. It's probably. Did you guys find the lab that I was trying to point to? It's under education and then labs. I think let's look under like save runs and then see what it is a child to setflix there. I know for sure child runs like these are like yeah. And I'm pretty sure I know the like the combination runs too but I'm not sure like it runs through here. One time I ran the hydrogen it also gave me the same. Yeah, it looks as if it's like something on the browser side. So the message comes back from the API. Okay. I don't think it's our fault but I don't know what it is. So I'll try to figure it out. Oh I have a question. I don't know for a while. Yeah, I don't know what the those are. Like hydrogen like pretty much should run. I mean I've tested that pretty extensively. So I mean one of the things that I would do is just rerun what you were trying to run. Okay, I'll give it one more. And so I know like if it's something simple as your user word, your user login wasn't right. It will give you a different message here. Yes, it will say like. Yeah. Authorization. Yeah, so this is the native output of child which is what how Greg wrote it up originally. Yeah, well that means you could say the option. Right, so here you can like say the net CDF file. So the VTK files. Yeah. Only gives native. No, no, no, you have to switch them on then. Oh. So like erosion rate or surface elevation. But then it may. And then it will make a net CDF file. Set rate output for VTK. Yeah, you have an insect. Sorry. So now you have surface. Oh I'll try that. Yeah, yeah. And then like look at what your interval is. Like because make it, if it's a long run you want it to be not. Yeah. Is it working for you guys? Yeah. Oh, are you trying hydrogen? I think I got a crash. Okay, yeah. No, this one there's no communication with set flux in this one. No, but already that works. So like where it says. Yeah, okay. When you use the river bubble in the different module. Yeah, and so like you can switch it to 200 there. Yeah, you asked a really difficult question about the combination with set flux 2D between child and 2D. Because then you, it can be done. And because they can pass information between each other. And that was one of the options you can drop down. Right. And so it can be done. But like it's more logical to put 3D and 2D together. But it can be done. Set flux 3D, yeah. That combination is like pretty finicky because basically what you have to start saying is like when do you call something a river? Because at the boundary, at the coastal boundary, child will have fluxes at every cell. But if you have to run set flux for every cell, it becomes like totally unmanageable. So like we use cut-offs to say like, okay, I only want the 10 biggest or the five biggest or so. And so there's a bit of like administration that isn't I think quite done very robustly in this system. But it's very close. And I mean, they've run together, but not through this.  I hope. This is the one that I. Is that the one that you spin it? Okay. Which one? Are you running child? Or the CEM? CEM, yeah, I was just going for this example. Okay. Did you hook it up to a hydrotrend? No, to a river. Okay, good. Yeah, that should be working. It takes about three to four minutes. I think. Oh, okay. Yeah, but in mine it shows like how many days it is. So I'm not 100% sure that. When I did the test one earlier to it, I got the same. Okay, I'll bring this other one. So there's a lab that I know 100% sure is gonna run. So let's test that one. So it's one of these public ones. It's called CEM Waves Evulsion and we're for that one. So now it will populate everything with those default values. Let's say like I might get a little shorter just to see it after a couple of minutes. The 12,000, I think it took seven minutes last time I ran it. Save. Save as. Something. Okay. And then run. And then if you don't see a time thing there, then. Oh, yeah, that's a password there. Yeah, yeah, yeah. I think this, I mean, that one, and then you can like play it from there. I'm fine to set up this one. Okay. Yeah. Six. Yup. It takes three, maybe four or five minutes. This one? Yup. What values do you think you need? Is the code so high that it will get loaded into 200 kilograms per second? Yeah. Are you guys familiar with visualizing that CDF files? So there's this package visit. I'll put up a, I mean, you might have like a link in the lab even and it's a fairly quick download and like any net CDF file you can like visualize in that pretty fast. It's also not a huge deal in that lab. There's like a library for net CDF files. And so both of those are like good options. So visit this open source and like. The battle is under the river. If you like have the WMT open and you click on it here, show the parameters, then there's the backwards. Yeah, we'll like make a bigger delta. Oh, like is the output on? And like click on the C, show parameters and then if you scroll down, so output for seawater to sediment depth ratio is a good one. And so and you want it every hundred times steps, I think. Well, yeah, I mean, CEM is not quite, it's like 6,000 times steps. And like you do once. Is it day also this one? Yeah. Yes. The thing is that CEM draws from a distribution. So one event maybe like represent 20 days or a hundred days or like depending on what magnitude event you grab. So like it draws waves from a distribution. So times it goes 6,000 times through this like drawing an event, but it doesn't necessarily have to be days. Okay, good. Oh, so if you're that CDF file, like if you like don't change it to like a sort of a reasonable number of slices, like if you want 6,000 slices, it will take a while to run. Because I was trying to ask people like do it every 250 times steps or every hundred times steps. But I think the, yeah, that's good. Yeah, a hundred should be good. That one, yeah. No, but we want it very badly. And basically for uncertainty and sensitivity analysis. So one of the ideas is this was what James brought up this morning was like to like wrap Dakota, which does that stuff into this framework so that you could set up like it more easily to say like, okay, I always want to very, you know, like the wave hide from one to seven and then like this and these many steps or like, yeah, that would be great. And so when people do that, they still like code up that part themselves. And then they just call their script that they generate because in the end you generate a run script. And so like you can hard code, like a loop around that again. But that's a bit more advanced. Yeah, Kristen, you were at class at, were you at class at the seized? Yeah, yeah, yeah, yeah. Because I was like, people look familiar, but like I'm kind of like lost track sometimes where I met them. Cool. Yes, that's good. Is it working here? Yeah. I try time, I'm in the hard time saving things and we're gonna work. Oh, that's smart. Oh, maybe it was refreshing. Now at my, I think we're gonna have a nice work here. Okay. Mark, is there a word try? Yeah, that's right, yep. Or you'll try. Anyway, I moved to Google Chrome. He's got, he's got this. All right. We should work on this. No, maybe. I don't know. It was not too difficult. Don't fix it. Okay. Okay. I can't get that to work. HTTPS. That's right. Yeah. Oh, is it the WMT with capitals? Yeah, try it up to this bit as well actually. I don't know. Yeah, I think this might be capitals. Oh, that bit might be cap. Yeah. I'm not 100% sure about it. It shouldn't be that. No. Well, let's wiki, or like, just Google, use the mess. No, I don't like it. Do you have? I've got Google. Are you connected to the web? Yeah. Yeah, no, just checking. I've logged on to Google. You got a guest. Yeah, that looks good. Yeah. Okay, so like maybe cut away this main page wiki and then like fill in WMT. And for me, that works already. I don't see. Yup. Yeah, okay. Okay, good. So how do I actually, so I get this. I'm doing the same thing now. Hmm. I wonder if this is, like, An internet explorer thing? Yeah. It's a, I don't know, I think on here. It's just why I tried, That's why you tried Chrome? Yeah, so I just don't know the code. I want to do this login. I don't know what that, I could see it. Yeah. I use Chrome, so like that, I'm pretty sure that that will work for me. This is a cool laptop. It's not quite a laptop. So if I go into... Yup. And then like put in, I just have my Gmail. Yeah. So I go back and put in my password. Yeah, the first time, yeah. Yeah. Sign in. Okay. Can I use your password? Yeah, I'll just, I don't know. Okay. There you go. Okay. So. Oh, oh, oh. So I also have my pinch. Cool. Like so, maybe open up the example from that I'm trying to check. This is what people do, yeah. And then like if you click under here, there's like this one, C, M, Waves, Emulsion, and Revert. Yup. So like now it's populated already, but you can like change whatever you want. You mean I need to log on to the page? Yeah, once you save this and you submit this, then like it will come to you for you. Yeah, I think you still need to save because it's your run now as opposed to a little public run. And then try to run. Okay. I don't know why. I have to close the machine down and start it again. Maybe that was, there was something like a. I think there was a quick. Well, there's things where like the browser settings don't like. Yeah. To run things or whatever. Is there a recording or are you doing anything else? Oh yeah, I'm sorry. I should have told you, like you can cut it. Yeah, yeah. Yeah, I'll bring it back like in a second or two. Yeah. Great feedback too. Yeah. Yeah, it seems like Explorer is still having. I know, I just learned that. Yeah. And that's like. Because Chris had to download Chrome 2. So yeah.