So in that case, your line of code in your console will be just one line, which is the execute for the inspect break. I did a video on debugging in WebDriver.io using the VS Code debugging. So if you're interested, I post that in chat. Oh, thank you. Anything for WebDriver.io? I mean, sorry, for WebStar. It's definitely for WebDriver.io. No, not for WebStorm. Okay. Cool. So I started recording the session just in case we want to upload this to YouTube or not, but recording, I think, makes sense. So I don't have much of an agenda. Thanks, everyone, for joining and for the second contributor meeting. I think we had one last year at some time in the summer. I'm not sure with a couple of other people, but now I thought doing the call-up summit would be a great time to just meet and have a chat about WebDriver. And I would say before we start, let's do a round of introduction, because I'm not sure if everyone knows the other person and tell who you are and where you contributed. I will start. I'm Christian, working at Sausage and started contributing a while ago to WebDriver.io and had my fingers almost everywhere, unfortunately. So, yeah, I give it up to Xiu. Oh, yeah. So my name is Xiu. Working in the Bay Area, US. Now right now I'm working at the biotech company. So got exposed to WebDriver.io back in 2014. Then make a little bit of contribution, right? Christian, not too much. But I would say I have a lot of feedback, because I'm kind of a field engineer, so I work in the real testing. So I had a lot of feedback, you know, how WebDriver is being used.  That's why you get the, that's where you get the first-hand experience. I think that that's it. Just pass it to someone else. Maybe, Arvind? Yeah, sure. Hi guys, I'm Arvind. I'm from the Netherlands. I work for a tech company called The Testers. I've been working with WebDriver.io for about, I'd say five years now. And part of the steering committee worked my way up from, like, I think it's been around three years now since I've been contributing actively. And I'll pass it on to Wim. Hey, well, I'm Wim. Wim Sellas. Living in the Netherlands. Work at Sales Labs. A colleague of Christian. And contributed to, or started using WebDriver.io, I think, three years ago for a native app, a React Native app project. Started helping out with answering questions on Gitter. Did some pool requests and created my own plugins for WebDriver.io and got a lot of support from all you guys. So thanks for that. Okay, Wouter? Hi, my name is Wouter. I'm also living in the Netherlands. So, hi. I worked at a big web agency in the Netherlands. And used Cucumber over there and then integrated it with WebDriver.io. So I contributed a lot to the Cucumber boilerplate project. And nowadays I work at a tech company that's called Sorgdamein, working for Dutch Healthcare. And we used Protector before, but we were not really happy about that. So we're now also switching to testing Angular with WebDriver.io. So next, it's called Clamping. Kevin, but my screen name for some reason does Clamping because I can't change it because it's Zoom. Kevin Lamping, I have been working with WebDriver.io for five years maybe. I originally got into it because I was interested in visual regression testing. And there was a tool called WebDriver CSS Wayback Win. And then that got me into testing, just functional testing. And yeah, I really enjoyed it and wanted to... I've been working a lot on the documentation side, creating... I created a course way back then, which needs an update. Created a... We're finishing a book on WebDriver.io right now. And I've done a lot of videos on it as well. So kind of less on the code commit side, more on the documentation side. But still really enjoy it. Let's go with Divi. I said that right. Divi, you're muted if you're speaking right now. Otherwise, Mikolai, can you go ahead? Yeah, hello. So yeah, my name is Mikolai. I started working with WebDriver.io, I guess like two years ago, or maybe two and a half years ago. I was looking for some framework that would simplify browser setup and would allow to run tests in parallel, like really easy. And it was a good match, especially after Java frameworks. I did contribute it to WebDriver. Lots of bugs fixes mostly, I guess. Also developed expect for driver.io library. I'm also part of technical steering committee. WebDriver.io. I'm originally from Ukraine, but currently in Spain. I'm going to move to the Netherlands. So we have lots of people in the Netherlands now. Yeah. And well, I used to work as a quality assurance engineer or software developer in test. But for the last couple of months, I'm working as a developer, not just developer, in some consulting company. So yeah, that's pretty much for me. Guys who want to be next. Maybe Olga? Thanks, Erwin. Yeah, I'm Olga. I live in the Boston area in the US. I work for a company called InterSystems. It's primarily, well, historically a database platform for health care, but it's now doing other things too. And I've been doing, I've only used WebDriver.io for about three years, but I've been doing testing and test automation since 2000 to date myself. And as far as contributions, I just recently have started answering a lot of questions on the Gitter channel. Just because I realized it could be helpful there. And, you know, I've learned, learned a lot from there as well. And I guess I only have two code commits, one with, with, with Christian's help with the first ever Web Office Hours inauguration session for, and then for some cucumber hook changes and another one, actually with Erwin's help for some documentation changes for a TypeScript setup. And I think I'm going to do one more for, for as minor change to the, to the cucumber boiler plate project Babel setup, which is missing something. And that's it. I might have out, I don't know who hasn't gone yet. I think the only one is for hook. Go for it. I think we cannot hear you if you're speaking. All right. That's giving us some time. You guys already can think about what we want to talk about. I have something that I want to go over the initiatives that we're clearly on the way that are currently on the way TypeScript support and the network primitives. And then, you know, we can talk about some features ideas, what we want to implement in the future and how we can make contributing easier moving forward. And yeah, anything else? There we go. You're muted still.  Anyway, my name is Barry or Baruch, whichever one you want. I, I work for a video game company here. So senior engineer. I must admit that I've never used web browser at your professional. I have used other tools like this cafe and that sauce labs when I worked there before. Um, but yeah, anyway, my first contribution, I guess my biggest contribution to a brother I was the ability to select react elements with the, I guess with the name and stuff like that filtering by props and states and whatnot. I've also done some changes to the CLI. And I think that's the most most used to allow for the help tags to be individual to each command. Um, yeah, I guess it's pretty much the introduction. Cool. Um, yeah, let's, uh, does anyone has something he wants to bring in? Um, what we can start talking about. Otherwise we would go over the initiatives. Maybe the, um, maybe the idea about changing the driver setup, maybe that's something to discuss. Uh, which driver setup. Like the way that we handle, uh, the current driver setup when we use selenium standalone versus the, um, the direct drivers, basically, uh, where we can use, for example, the, uh, that driver manager or a own implementation and stuff like that. Um, uh, is there, is there a specific ticket to that? Or is this just an idea? Well, this is just something that we discussed one time. Um, is it something in our roadmap, like manage drivers automatically or, uh, there is a, there is a project for it. Um, we find it auto driver setup. Yeah. Yeah, that would be cool. Um, I was looking into the web driver manager. Um, but that is currently maintained by the Google, by the Angular team or not really maintained. They haven't done anything there. And I wanted to make this a little bit more simpler using, uh, a tool and MPM package that automatically downloads binaries for you based on your system. And that would make the tool, downloading a driver and start the drivers super simple. Um, I wanted to reach out to that team, but I haven't done that yet because I have no, I have other priorities right now. Um, by the way guys, do you think we need it at all? I mean that, um, from the tools protocol is developing like rapidly and can be a complete replacement for a driver protocol. So we don't need to manage actually any drivers. Yeah, that's true. Um, I think the ultimate plan and, um, I participated the first, um, web driver working group as meetings where we were talking about the new web driver protocol, uh, which will pretty much be similar to what Chrome death tools is right now with, uh, difference that you can opt into the death tools. Uh, so you still create the web driver session as usual, but then it allows you to connect to a socket. Um, if you, if you want to, uh, so it can be, it can be still a web driver session, but at the same time the death tools session. Um, and I'm, I'm pretty sure the fact that you need a driver will continue, uh, but you're right that the current death tools protocol works really well in, in Edge and Chromium and Chrome. Um, and will be soon be supported for Firefox stable. It's going to be only supported Firefox nightly. Um, so the Firefox team is working on that as well to make this somehow compliant. Uh, so pop it here, can be run on Firefox. I guess that would be ultimately a nice, nice thing. Um, which makes, you know, me think that this is not the highest priority for me to get this right, to be honest. All right, cool. What do you think is, uh, one of the most important things we need to work on? Well, of course, except of network primitives and UI runner, which everyone talks about. What do you guys think? The UI part, are you guys talking about the GUI test runner? Yeah. Yeah. Okay. Yeah. I really think we should go, go there like sooner. Also, I have a question. So I talked with the Cypress people. Sorry guys, I'm using Cypress. Now, but, um, so, so they told me they were using Chrome debugging protocol. I, I'm not sure that's the same as the dev tools protocol. Is that the same? Yeah. Yeah. So I think they, they told me they, they, uh, also, um, the challenge of, uh, for example, the upload, uh, or something, some feature, the browser feature is, is not, whenever it's not a native, um, browser event, that's where, um, it's hard for the, or it's challenging for them to implement. Um, so, uh, I think probably same thing applied, applied to us as well. Yeah. I could see that they move ultimately to Chrome dev tools because right now they still have, they still trigger the automation with basic JavaScript on the application on the test. I think so. And they are moving away from that to be on Chrome dev tools only, uh, which allows them to use Firefox and Edge and some other of the other browsers, but they will never, they will never be able to automate Safari or other browser or mobile browsers that will never be possible. Or, well, they say they put it on their roadmap, but I, I have doubts that this will happen anytime soon. Do you have any reference for that, for them using the DevTools protocol? Because last time when I said it, I couldn't find the reference that I got it from. Yeah. Um, I assume this is kind of their secret, like trade secrets. So, uh, I think, officially, I haven't seen anywhere. They mentioned that and they probably, they probably don't want to admit they using puppeteer as well. Probably. It's not a secret. Yeah. We're working with our, you know, the native browser, a comium protocol or something. Like, yeah. But, uh, I think in, in general, um, um, I would think, um, the browser compatibility, I think it's as less, it's a less value to any framework right now. I think it's just eventually, I think it was just like, all the browser wonders kind of, you know, merge or like it be unified to under, I don't know, premium, premium or, or anything, or a play, play, uh, you mentioned the play, play, play, right? Yeah. Yeah. So I think instead of spending our energy engineering, you know, um, efforts working on, make it better, I'll support all the vendors on the earth. I think there would be more value to, you know, adding more features, you know, make, let's say, for example, make the upload, make the download, the building, you know, that the more you have a building features, all the box working, that's why I might spend using separate. They have a lot of things just like working out of box. No configuration required, you know, so it's, it's super free, beneficial for the user. So I think that that's the direction I would go, you know. Yeah, makes sense. Um, uh, definitely proposal testing becomes less important these days. And, uh, uh, that's why, you know, focusing on Chrome DevTools features and built them in, like built them into the framework, uh, makes sense, which is why, you know, I started this initiative to, uh, have this network primitives, which I would like to go over, uh, bits. Uh, let's see. So before you get, right before you get into that, I kind of want to second that when the past two years, I've written a ton of tests for Chrome. I don't know how many, like I could count on my hand. So many times I've run it in Firefox or IE. We just never get to that point where we're, we have a test, um, case, um, that we're like, okay, we've got all the test cases that we want written. Now let's check it in different browsers. Um, and the overhead of, of running your tests in multiple browsers and maintaining that is, um, something that I've struggled in the past just because browsers sometimes supports one thing and sometimes support something else for some reason. And, um, so I've kind of shied away from, um, doing multiple browser support because I find it's more valuable just to have more tests that run on a single browser than fewer tests that run on multiple browsers. Uh, yeah. So I just wanted to throw my thoughts out there on that, but obviously anybody's free to disagree and come up with other reasons why, because I can see other reasons. Well, yeah, I would agree that these days it's more important. However, for example, I worked in a company, uh, like a year or a year and a half ago as they still, uh, have, uh, uh, requirements to support AE 11 and it's, um, and it's super, super important. Well, uh, I dunno, uh, about, um, like difficulties in terms of that, but, um, I guess I spent like 2% of time to support AE 11 and Firefix, so it was not a problem for me at all. just added some like hacks because we had like 3000 tests and all of them were working in Firefox, IE11, Chrome. Yeah. And I want to say I don't want to drop support for browser, I think for multiple browsers. I think that's a really big selling point right now. When people are comparing WebDriver.io and Cypress or WebDriver.io and another tool that only does one browser or like PlayWrite, you can say, yeah, we do support multiple browsers. I think that's a big selling point. I just don't think that it's a super, like I just don't think that it's something that I would personally want to focus on. I mean, just as a user, I mean, I also work in a company where, yeah, we're expected to test on the browsers that we support. So, and I found I do run into issues on lists you know, on IE11 or on Firefox that are not necessarily seen across all browsers. So, yeah, I mean, I think it would definitely not just as a selling point, I think more robust support. And I'm not saying these are all WebDriver.io issues. They might be underlying WebDriver issues or Driver issues, but yeah, I guess just a vote for, I think, cross browser attention is good. Yeah, yeah, I totally agree with that. And if you would also look at the the people that are in this room now are pretty smart, know how to do coding, to do proper coding and to figure out workarounds. But I think the majority of the people that are using WebDriver.io don't have the automation skills that people in this room have, making it pretty harder for them to find a workaround. So, I think a little bit of focus on that part might still be very important to support them because it's, like you all said, it's still something that companies want support on. The only thing we might kind of like might be able to promote more is the thing that you also mentioned, Kevin, is like having more tests, for example, on one browser and just maybe do one or two happier error flows on the rest of the browsers instead of running the full set. I think if we can kind of like promote that message more, it would remove a lot of difficulties on IE 11 or maybe on older versions of Safari to get everything working. That's an interesting idea. That's one thing that I did in a set of tests was I had a tag in my test name and it would only, it would either skip the tests on when it had that tag in that browser or it would only run in that browser and that was really helpful. There was something to do with browser execute with getting the form field input and on email address you can't do it in one browser but you can do it in another. I think maybe Firefox doesn't allow you to get the values from a text input that has a type of email but in Chrome you can and it could be reversed but yeah, I had a something in a config file that would be interesting to see formalized. I think that would be helpful personally and I do appreciate you all's feedback on the need for cross browser testing because obviously I'm just one in like one single type of user but you know if everybody else is finding this very essential then yeah, let's do it. Yeah and if I can add something to that also the focusing on the test so enabling, disabling certain tests also really helps in that process. So not only for the specific browser but also just running only one single spec or one single test. So before we, yeah, I want to get to both points. Ben, where you said something like we should better focus on the non-developers that have not the best automation skills. Do you have any particular suggestions on that or where would you, where would you start then? Well, I guess with what was already mentioned is with UI configurator and with UI runner. I guess it should help people a lot. For example, I don't know about if Cypress really has some UI configurator. I guess it's kind of limited but for example when it was developing some website in Vue.js for example they had really great configurator and it saved me like lots of times when I need to install some package or even bootstrapping project or configuring it in whatever way I need. So it's going to be something that really should help users. I guess for example like just have some UI layout where I can check that I want to run tests in Firefox, in Chrome or in Appium and if in Appium then okay again bootstrap project so I can easily start my tests like straight away with desired configuration in whatever framework I need and so on and so on. I guess it's going to be helpful. I think that will remove one part of the challenge that people have. Kind of like the configuration is the first part but I think the second challenge that people have is kind of like just having the proper skills to write something in JavaScript but also being able to to figure out I've got a page it has several components. How can I like code this in a proper way so I can be use a lot of my stuff doing a simple abstraction that kind of stuff and that's not only something for JavaScript that's also something that we see at least with customers who are using Java or Python or Ruby so it's also the animation skills slash coding skills itself. I used to just think in IDE that you know where you can pick elements from the website things like that would help. I have some sort of an idea we can do. I don't know if you can hear me. I think I discussed this with you before Hans question that it was essentially like you can have like a Chrome plugin that you can do like record and then you record some like you select some sort of input and you do some sort of test against that and then just renders a code a file we show the testing code so essentially you don't have to code the test you essentially just recording your screen the first iteration of the test like test that you want to whatever you want to test and then just extract that into a file that you use upload and then the user doesn't really need to know any coding just uses the tool. All tools that have tried is a field I think right? I don't know if anyone has tried it to be honest. Yeah there's been many. I mean as yeah I guess the original example my people are probably familiar with is Selenium itself had the Selenium IDE Selenium 1.0 which did that and I mean I think the general consent you know not to say that it's a bad idea but as a general consensus that was that was not seen as a a really good thing to encourage people to use because it really discouraged having a reusable modular framework just because the way it was implemented it did it did sort of do a linear spaghetti code recording I mean and there I know there are tools that try to do something more sophisticated with that and there's one I don't know if you guys are familiar it's called um it's called excel excel queue or something and um and it does it tries to sort of automate the process where you're selecting things and but it creates this universe of pages and sort of reusable modules and like autocomplete steps sort of sort of like cucumber it sort of mimics a really modular pretty modular framework where you have page objects and on top of that like business services so I mean yeah like you like you probably haven't mind since you mentioned there when people have tried so yeah it's not a bad idea but they're bad I think they're not constructive ways to implement it if it's done in a in a very linear way um I think something to improve here when thinking about the setup and the reusability is we have a CLI tool where we can run uh the install commands but our documentation never actually uses this example at all so people often forget to add a reporter to the reporter list or service to the service list stuff like that I think if we can update our documentation to include this example this command everywhere it would be a lot easier for them to just say okay I install this and I don't need to worry about anything at all it will be smooth so to say and also the um the import examples that we have no no new user is going to know that this is a battle example and they will they all struggle with getting started because yeah it says my import is not working why so I've seen this question a lot combined uh if we want to ease the the transition for new users I would certainly update to those two things and then I would start looking in all the other things that were just mentioned to be honest yeah this CLI install feature is definitely an easy first step that we could do and um I wonder if we could make it simple so that you know when you add a reporter it figures out which options the reporter has maybe the reporter has questions that you want to get asked for and it couldn't add that to it the only challenge I see with that is uh which we haven't figured out yet if you know usually it modifies the wdl config but what if you have like a staging config or like a different name for that config um then it makes it difficult to modify the code so that it it only changes the reporter section um I see what I mean if you have a different name like if you if you you know you have if I have like a common wdl config and then the config for for running things on source labs versus one config for running things locally um so if I want to add a reporter for my local setup then I need to somehow say okay this is my config file and then the cli tool needs to be more smarter on how it modifies this config file to properly you know format the stuff and to probably inject the new service or reporter can you ask a question like to which uh files you want to add this maybe something like that yeah yeah just specify file we are currently modifying I used to have multiple configuration as well especially mobile and web configs usually differs a lot well at least in my experience oh yeah the install command actually has a a flag called config that you can pass the the where your configuration file is and then it will just overwrite that one so that already exists yeah that's for for this let you mean for selenium standalone or no for the web driver cli can you imagine that if uh we ourselves don't even know this command that works this way that are you uh I know it because I I added it right all right cool actually understand okay yeah pretty much the confusion that we had here is pretty much describing the the fact that it's not documented well for our users as well no I guess it would it would be better to build a ui configurator because yeah and no one reads doc documents and it's not not really obvious how to use a cli I mean it's currently built like really good from my point with you but but it still doesn't provide enough level of visualization of what I have now and what can I have and creating the ui configurator it shouldn't be that hard this is you know it's stressed it's a gooey for the cli that we have no so we this is a matter of spinning something up real quick is running the cli in the background Kevin built this already right you have something that was working really well for version four right yeah um you talked about a ui that kind of managed the config file yeah yeah uh it was it was tricky to kind of handle all the different use cases because um yeah part of it was having to read the config file and turn that into a set of form fields that have the defined input and while I could handle like my own case well what if somebody is running their what if they have their their test need to run some commands so sorry in like their package json they have their test script and a lot of times you'll have or I'll add something that like clears out some folders maybe compiles type script down and then runs the wdio command having to allow for that having to allow for very um config files that are a lot more dynamic than um what the basic config file is so um yeah I did have kind of a basic version working um and it was nice I I liked using it because it was a little bit easier to um when I wanted to run certain spec files instead of having to remember what the spec file was I had a file explorer that I could click the spec file I wanted and run just that one that was kind of nice yeah on the subject of um I guess the cli or and or um boilerplate projects and modular reusable frameworks I was one thing that just kind of strikes me it oh is that um as far I haven't actually looked at all the boilerplate projects but I'm not sure that they are really set up using the page object um pattern although I know we have documentation on page objects on the in the documentation but um I went I feel like it would be useful maybe to either have boilerplate projects that um that have a more modular setup or or to have this cli that actually a cli that actually might create template files in a sort of modular in a way and I know that this I mean obviously we want to be flexible we're not trying to you know I think this is also like we were talking about the recorder we I think that's there's almost a different approach right are we are we for developers or are we for like non-developers and so far web driver IO is solidly for developer types which I think is a fine focus but even so yeah I mean I think I see a lot of questions on the Gitter channel about like how to set up was the best way to set up page objects what's the best way to handle it and it seems like that might be useful to have at least more documentation around if not more um we just kind of like add that when you start web driver IO through the config uh we already installed the dependencies but we don't add extra tests to it kind of like this is a test set if you would run this command it would run uh automatically on this website and this is kind of like a page object structure documented with inline documentation if we have it already there then people can already they install the stuff and they have a few files in it that you're a run npm test and the project is running they can see what's happening exactly the babel they got the babel config and then we don't need a complete UI it's nice to have a UI but I think for people to to do the steps with all the installations and then doing the translation for how do I write my test case with web drive radio I think a few sample test cases with a proper page object pattern will be really useful for them exactly I totally agree with with that and we actually have in our company somebody wrote a like a template file generator um so for specific very specific to our framework which is sort of like a five-layer framework is probably not you know not necessarily what we want to standardize but it would um it would actually take a page uh it would be specific to a page you I forget exactly what it did well actually it was it was like it would also um detect your low your all the elements in their locators so it was a little bit in a different direction but that so would detect it would create a locator mapping file and then it would create four other files and that same in that same page as hierarchy like we call them page objects and then we can do this UI services and validation services if you want and like and we use cucumber so like a step step definition files I don't know I mean something yeah it's something like what you're saying but probably simpler just like a google search example I think would be super useful yeah I think I'm going off with what Vim said like um maybe we have we can add like another command to the CLI like init initializes like a default um two or three file tests that test this web driver at your website and then that way they can understand like how to set up a project almost have that already as well by the way cool we do a config minus uh why it will already do like automated setup so we only have to add this to it and we in fact have a project um where this is documented the the project number 10 um which is called uh auto generate sample files which is essentially that way and I had one kind of like proposal a one ticket to define a proposal for this uh where a couple of people including Barry already chunked in me call as well uh so you know for anyone who feels interested in that um that's something we can build out and I could see you know that should be that should be actually straightforward and could provide a lot of value do you think that this would replace the uh the needs for our boiler plates I to be honest I I have to add that I completely agree with that um our well current situation with boiler boiler plates is like it's not that good let's say I mean we have a lot of boiler plates but um quality of the boiler plates are not uh well well they they're good but some of them are not that good if we might want to and also some of them more look like an examples of how to deal with particular issue and uh are not really usable as a boiler plates uh I used to review all of them like uh a year ago or half a year ago or something and I guess only fine for a couple of them that can be more or less usable well in form for my goals but like most of them were either like really really small ones that I can do with like in one minute by myself or huge ones that I need to understand what's going on here and so on but if we can have something like uh something to boost our project with the proper structure we can agree on what structure we can have uh and I guess we would need different structures depending on the framework or even the goal of what should be done I mean mobile web whatever well we can start at least with something uh so yeah it should be should be really helpful that I have just typed npm init uh or whatever uh dash yes and then installed cli and just initialize the project with uh structure with some tests that then I can just run npm run tests and here here we go my tests are already running and I have the entry point where I can start actually proceeding tests or defining my page objects and so on so on so yeah yes should be really helpful yeah yeah I totally agree with that and also to the point of whether we would replace the boiler plates I mean I think the boiler plates would still be really useful as well because especially for people who aren't starting a new framework but you might just want to look at a reference of how to adjust their own tests that could be useful yeah I think also it's a nice incentive for people to contribute something to the project without knowing the technical details of the framework I saw a lot of people making their progress to the boiler code documentation and they were really excited to add their own their own boiler plate and whether or not you know every boiler plate is really custom and every setup is custom and I don't mind just add these to the section but in terms when we add this to the to the cli it needs to be we need to find a fine line between uh useful and small versus too big and too you know too complex all right before we have 10 minutes to go I wanted to just go over the network primitives everything that I have prepared and almost I think I'm almost 50% done with it so I wanted to make network stubbing a little bit easier and wanted to move it away from um the DevTools service and more to the core since Firefox and Chrome and Microsoft Edge will all allow this and I'm in the lucky position to also implement this in SauceLab so it would work locally as well as for people running their tests on Sauce and I have a couple of things that I wanted to show so the general idea is that the browser will get a network property that is the browser.network and then similar to how just works or how knock works where you provide a where you provide a URL for the resource you want to mock and you then get a mock object back and this is I figured this would be would be the nicest thing because this mock object could have a nice could be typed for TypeScript so that you exactly know what you what you can call on it and it's also nice to it makes it easier for me to implement it on the cloud vendor because the I wouldn't need to have to listen to the network events to make dynamic decisions if that makes sense I would like if you the idea here is to if you want to mock and resource using a block stream then you get a mock object back on which you can then call like a response method where you respond a certain payload it can be in this case it's a JSON so if you if you want to mark a REST API you can just say mock respond you could do the things that are really nice and just where you mark certain returns of functions once or multiple times so in here we respond once would return for the first call injected to do and for the second call another injected to do and then after that it would return I don't know what's the you how it would use after how it just works after that you can actually set a response I believe and then a response once twice basically and then yeah it will do the default that's the idea here and so essentially that would be nice and then you can also inject a function that would dynamically return something which also works already in the spool request so here I just go all over all items that I got from the API and change the title and the item from it so that the pretty much it allows it to dynamically change based on the content you get so the response and the response once make a method that allows you to overwrite the response with a JSON object or within with something else as well another thing that was in a board where you can say okay I want to have this respond to fill with something which is pretty straightforward and then which is really nice that you can either clear or restore the difference with clear is that you that the mark still contains like as continues to exist so if the browser calls the same resource it responds with the marked resource but the calls that this resource got which is captured by web.io is then cleared and the reason why I wanted to have that is so you can do things like expect mark to be called three times let's say so you can test for instance how many times the browser is called the specific resource that you have marked out and restore similar to what expect does is just bring back the original resource and remove the mark completely what do you guys think of that I think it looks really good something that I don't see is any any status codes how would that work for example yes so there you can what do you mean with status code in what context because you said you can abort for example but you can also respond yeah so what if I want to have a successful now I want to have a 400 but I also want to have something in the body stating for example an error message oh yeah okay yeah this is indeed missing here let me wear this down that you can modify the header as well as the status code from not only the payload not only the body but also the header and the status code yeah and something else that I think would be very useful to combine so to speak because we're focusing on the mocking part here taking Cyprus as an example here I'm not sure from the top of my head how Descafé is doing this but I know that with Cyprus you can actually do a route and depending on if you modify the object it will either spy or or mock it and if you just spy on it you can actually wait on it for example yeah this is a it's essentially what how this works as well so if you just define the mock like this it will be only a spy so you can still say I want to wait on this specific mock response let me find the one second if I go into wait commands which is already where I only made a prayer for that so actually no this is not the right example I need to update this it's like here if you start mocking a network request then you can wait for a response on that certain mock without having to set like without even need to stop it okay would it also be possible to just wait for a response without passing an object uh yeah okay I think this is just you know I wait for a response and I like like with wait until and all the other wait function it has a timeout in an interval but you can also just say uh mock dot wait for response without anything and would take the default values no like in in line 17 though yeah exactly yeah all right yeah awesome yeah so yeah this is exactly what you mean I think this this is going to be great yeah like for for websites that use apis not all websites use apis and that's its own struggle but I would love to see something like this I mean you should I it should be possible to also respond within a 64 image if you want to mock images or javascript files the idea was that you can where is it that you can be like I don't know provide maybe a url resource and say you know just redirect to that resource see I don't have that in here that was one of the others things I want to have so that you say respond and then you provide some like a url to a file and if that exists uh let's say file.js and if that file existed we'll respond with that certain file or it will redirect if it's like an hdps uh it can redirect to that resource so that should be should allow you to mock everything you know based on our other resources so in separates uh go back to Armin Wang so they have this concept of stopping and spy stop spy and fixture I think so spy meaning you just observe the network traffic but you're not you you're not doing anything you're just watching uh I don't see we have a method here like doing doing that and so they're uh stopping I think it's the in our case it's mocking uh so stopping meaning like your intercept the network traffic the API call and replace the the real response with the um with your own uh mocking uh return response but in separates I have used the fixture so you're just you know reading the JSON file you know fixture folder and respond with that um well that's your gospel too right if you define the mock I mean this is just the internal way how you define it but if you define the mock you automatically spy on it and you can say you can just listen how many calls has been made to it um like how many how often the browser has called this resource and once you call like once you call us uh like uh once you call us respond or abort or something like that then you actually stop it like here yeah but uh so they have the option of just like watching like spying not doing anything or and also if you want to do any something that you do you you you calling the stopping to replace with the fixture so uh another point is like uh so this only supports REST API I'm assuming uh does it support the like web socket web socket call oh web socket is interesting um no not this yet uh but let's me make a note for that so I can create the tickets yeah I think the Cypress is um I haven't seen they have some example for a web socket but uh I haven't like um dig into their strong field so to speak yeah I'm not sure uh mocking socket connections is actually possible in Chrome to be honest that I think it's like you're uh establishing some um um server um uh like using the because the web socket call is just like an upgrade right upgrade of the HTTP HTTP 1 to HTTP 1.2 something like it's like an upgrade then you you basically establish a like a fake server then uh whatever the call to the web socket call we route it to that server I think then they respond with whatever the the one you want to feature or fake yeah I mean if that's possible um we should definitely consider implementing that but so far um I I doubt that this is really possible in I think that yeah this is a good for the first step you know I'm talking about probably in the future maybe we want and support for the web socket call because um yeah there's a lot of a use case for for that um so a couple of other things that uh also currently working on is just setting the user agent which is um helpful in some use cases actually no actually it feels this one because this is a changing or serving websites with different that based on your user agent is uh uh not considered to be a good way of doing things these days so I remove that if it comes up again that we want that someone needs it we can reiterate it should be something fairly straightforward to implement um I wanted to implement some network oh I was I skipped this as well uh because it was kind of difficult to implement okay sorry about that so this will also not help me at least not I will not use focus on that but the one that is always there is the throttling uh so you can throttle on a specific type uh that is predefined or on your custom on your custom way which is pretty straightforward so yeah those are uh request I'm I had struggled with the first pull request um to get it working at CICD but this has passed just a couple of hours ago uh so I will make sure to update my other pull request and then I want to merge everything in this one thing and merge and ship this feature as a whole um in one of the next versions um and then we will see how how people will use that and if they like it come up Christian currently it's already possible with web drive it to do the throttling run uh no it's not just uh for I'm not sure if chrome allows it chrome has like a custom endpoint but it's not part of the web pair protocol uh right yeah that could be it like sauce that I built a sauce and it worked on extension and sauce let's do allow customers who run the testing sauce doing that stuff uh but it's not the chrome browser feature yet cool looking forward to it awesome um yeah I think we are on top of the hour um I don't want to steal your guys too much time um anyone else has something to bring up what talk about can we do this sometime again like in the future make it regular like office hour I know separates and now separates actually we're doing the office hour right I would suggest the set is doing the same thing but yeah it's a super helpful and uh we can maybe set up like a regular maybe a quarter quarterly meetup or something yeah I would be totally down for that um I could I can see how like I can I can make myself a note and um we can then schedule something for the end of next quarter and then you know check in um if you guys are down to that I'm absolutely I will definitely down for that yeah that would be great and yeah if you haven't seen that yet um I am offering now uh work without open office hours uh so I've blocked four hours a week on Wednesday if people want to work on certain issues and poor requests if they need help implementing teachers and uh I had really really successful sessions yesterday one with Olga and the other one with uh Alexander who's working for the browser company uh she wanted she was working on upgrading Spectrum to version six of work level and we got it running within that session which is really awesome um so I've met one session next week and if you guys want to you know do the same um I can add you to this calendary thing which I'm using and um you know you can you can help some other people as well but uh yeah I think I'm going to do this for the next couple of months now and see how successful that is it's a fixed time I believe now right yeah you can define which hours you want to be available for someone and then the person who books the appointment pretty much chooses um between your options all right now you can add me to that list yeah yeah uh then you just send me the hours that you want to be available um and I can add it to the calendar what is the every Thursday what time currently I have it um on Wednesday uh 10 to 12 am uh dupian time and um I think what was the other one uh 9 to 11 am uh San Francisco Pacific time so so if you want to work on a ticket uh then let me know and we can work together on this you can add me to that office hour like for the San Francisco time I'll try awesome um all right uh thank you everyone for joining um let's do this every quarter and yeah if you have you know let's continue talking on the giddler chat and um continue working work tomorrow thank you everyone have a good day thank you have a good day thank you bye bye


Hey, what's going on guys root from no shell.com here today, and we're looking at even more Python today We're gonna be checking out Python's Function scope and this isn't like only exclusive to Python or anything This seems to be a common thing in like all programming languages and all computer languages like C++ Python Java PHP you name it if it's scope is something that I feel like it makes perfect sense But it might be a little hard to think of at that same time The the idea is when you define a function the things that you create inside that function are Only exclusive are only accessible and like usable and seen invisible whatever word you want to use They're only seen inside that function and any functions Below that and now you can think of below as sort of like layers like as if you had maybe an onion I don't know but just each each piece of it You have the global scope where like the main function runs and the variables that are created in there will be accessible from the Functions inside that the functions inside the global scope will not be able to have variables that are seen inside the global scope See when I explained it and I speak it I talk about it verbally it it might be a little hard to picture but if we open up idle and We create a new program a new window. I'm gonna Get my shebang started environment in Python I'm gonna save this as a file Python there we go overwrite that let's do Let's Let's run a function And we'll define get info We don't have any parameters. I'm gonna make a little bit of white space here And then we'll run get info So now if we do kind of what we did in the last video if we do user input equals raw input What should we say and then print Let's say tab and Then user input. We run this. What should we say? Oh, I should have made a new line there Urca burglar. Let's say Urca burglar Now when we go back to the program, I'm just gonna add the new line here. So it works. Okay, if We outside of the get info function tried to display The user input variable It's gonna like have a heart attack. Give it a go Let's run a function. Whoa. Whoa. Whoa. What's the matter here name error? The name user input is not defined in line 10. So we're on line 10 I can see that down at the bottom of vital and printing user input It's it's gonna give me an error because user input is not in this scope. It's only inside the get info function this one right here But that's interesting. What if we what if we had X? Let's say in the in the uppermost layer X equals 4 and then what if we printed X Inside the function. Well, that makes sense Let's comment out this line here in case we ever need it again. I really doubt it But let's hit a five get our program going. Let's run a function. What should we say her peder peder? Let's say her peder peder and then it displays for Huh, okay? So we have that sort of layered structure any any variables that are above These systems and these methods and these functions will be accessible in those methods and those functions and those things But any anything any variables below of another function will not be able to call those because they aren't created in that scope Huh, does that make sense? When you see it in action, it's it's a lot different from hearing it or maybe when you read it and you have a visual display or that sort of thing All those things do not work. It's strange. What if we did? What if we did X equals 4 and here? Actually X equals 5 Then we did X equals 4 actually X equals 3 over here Let's print X outside the function first time Let's print X inside the function once and then let's print it again after we've set it inside inside the function and Then let's print it outside the function once more and Then once we reset it. We will print it again So we're just printing X a whole bunch of times. So it looks a little dumb, but hey All right clean that up a little bit and yeah, that's that looks good to me User input might actually give us a problem. We should kill that f5. Okay. Let's run a function for okay, that's good. We print it again. Let's See what should we say? Wait a second. Oh, I see I see because we did we called get info after we reset things. Okay, let's try that again after Okay, so now if we do get info before if we can see up at the top here We're setting X to 4 at first and we print out X. So X is 4 that makes sense. So what should we say? Let's just say John Madden Football I'm just kidding Oh, oh, oh local variable X reference before assignment So let's print X What line is that 9-11? Are we on line 11? Yeah, we are interesting So now if we get rid of this though If we don't at least set it it should still be let's give it a go again. What should we say? Football We get four Okay, so it's letting us use that Above that it's letting us use the the X that's above the function But if we were to set X inside the function, it has a problem with that We can only display it after we set it if we create a new one Let's try it again Here comes another Chinese earthquake Let's say here comes another Chinese earthquake. We get five X equals five. We print X Okay, now we get that five and then we're printing X again because X is no longer five in the scope It's still four because we haven't modified it outside of the get info function And then we have X equals three at that last bit and it changes back to X equals three Huh Okay, that's curious. That's that's interesting the rules that you have to be able to Declare X inside the function without using the the one of the layer above that and if you're going to display it if you're Going to reset it and that sort of thing so that might take a little bit of time to be able to understand but I Feel like it makes sense after after you look at it in a grander sense and in a bigger picture I don't know. That's just that might just be me but The more you practice with it the more you play with that idea the more prosperous you will become and That's kind of the idea that I want you guys to have after watching this video today Thank you guys for watching. It'd be awesome if you could give me a like maybe leave a comment Maybe subscribe.


After making the game saving play that would send the Seattle Seahawks to the Super Bowl, Richard Sherman yelled really loudly on national TV, and it was like a bomb detonating. Twitter went nuts. Everybody had some idea of who Richard Sherman was supposed to be. We seem to need our athletes to be one thing or another. They are kind of Rorschach test. We project onto them our hopes for heroes or our cynicism about the corporatized and corrupted world of professional sports. It is very hard for any of us, for a sports writer or for a fan, to let a human be a human, a complicated person who is ultimately impossible to understand.


Welcome to the Australian National University this evening. Before we start, I'd like to acknowledge and celebrate the first Australians on whose traditional lands we meet tonight. Pay my respects to the elders past, present and emerging. It's great to see so many of you around. We have many distinguished guests, colleagues and friends of tonight's inaugural address by the Vice Chancellor's Entrepreneurial Professor Mark Kindle. And we're very delighted that so many were able to come and some from quite a considerable distance. I'm also particularly pleased that we have ACT Health Minister Megan Fitzera's back. So welcome. Mark has brought family, Faith and Luca Kindle here. So welcome down wherever I've seen you enter, but there we go. And I do hope that your whole family's had good fun. You've been over at one of my favorite places, Questacon, and you have done something I've never done, which is the free fall exhibit, which I find too scary to do. I have acrophobia, it's terrible. So one of the things at ANU is, as Australia's National University, we have a responsibility and obligation to be a global resource of policy and ideas that help to improve lives and make the world, we hope, a better place. And to do this, there's many things we can do, but one thing we've been working on is to break down the barriers between ANU and those who can use our research to achieve these aims, whether they are in business and government or in the not-for-profit sector. So one of the ways we've been trying to do this is our entrepreneurial schemes. And the scheme is facilitating, driving, and developing interdisciplinary research areas across the university to identify new approaches to significant research and innovation challenges, and we hope to drive our cultural change in academia. For too long, those who have done this, and there have been a few, and a few here I see tonight, have perhaps not received the plots that they should from the university, the support they should have, and yet they managed to soldier on, and we're trying to make that a regular part of the university. The first appointment under the scheme was Professor Genevieve Bell, one of the world's foremost technologists and public intellectuals, and I'm very proud to introduce to you tonight Professor Mark Kendall, the second appointment under this scheme. Now, Australia's medical research community is world-class. Professor Kendall's work is at the cutting edge of new wearable medical devices. Professor Kendall is a genuine rocket scientist. His PhD is in hypervelocity aerodynamics, and at the University of Oxford, he was an inventor of biolistics technology, that is, ballistic in the biology sphere, and the inventions he contributed were commercialized with PowderMed, which was purchased by Pfizer for $400 million in 2006. Professor Kendall came back to Queensland under Peter Beattie Government Smart State Initiative, which was designed to develop the state's knowledge economy. And in Queensland, he invented the Nanopatch, which was commercialized in 2011 through the company he founded, Vaxis, and the Nanopatch is a next generation vaccine delivery platform, and it was able to deliver vaccines in a hundredth of the normal dose without the need for refrigeration. You can imagine that is a very significant development for developing countries where consistent refrigeration from point of production through storage and delivery to communities is often a fundamental barrier to the safe and effective supply of vaccines. Now, I personally met Mark when he was at UQ through our interactions at the World Economic Forum, and his work there on the Global Future Council for Entrepreneurship and Innovation. As I recall, we were thinking about existential risk for humanity and basically, you know, the 10 best ways that humanity will do itself in over the coming hundred years. A really uplifting conversation in Davos, I can tell you, but we had all the right people in the audience talking about humanity's doom and gloom. His genuine desire to improve the lives of people across the globe through medical innovation was inspiring, and I was talking to him back then about, I didn't know I was gonna be vice chancellor then, so I was just talking to him at that point, and then about a year and a half later, we talked about how we might try to do things a little differently, and I was pretty open to anything that we thought might work, and was able to eventually encourage him to join us here at ANU as part of what is an experiment. Now, the technology Professor Kendall works on will have, we hope, far-reaching implications for our health and well-being into the future. He's working on a simple wearable devices that will provide a form of personalized medicine. These micro wearables could provide personalized diagnostics across a whole suite of diseases, and these will be minimally invasive, pain-free health monitoring, which you can imagine, could really change the way we administer health. Professor Kendall's company, Wear Optimo, is working on devices that range from low-cost disposable devices for shirt duration measurements through integration to the next generation smartwatches for continuous monitoring and precision health. And like any good company, it's got a great new logo, which I take to be Australia turned on, or at least the potential of turning Australia on, which is all what this company's about from my perspective. But just imagine a world where blood tests and other pathology are no longer routine because your micro wearable is doing it all the time and is able to put the information to your GP or your health professional. So it sounds a bit like science fiction, but this really is a potential new reality. And so it is now an honor for me to welcome Professor Mark Kendall to the stage. Mark? So thank you for the warm introduction. That's a real honor to be here today. Firstly, I'd just like to thank people who have really come from long distances as well as short distances to be here.  As Brian said, it is an experiment that we're running. And the title of my presentation talks about a future to do with the fourth industrial revolution and health care. And this idea, this experiment of wear optimal that we're launching effectively tonight. First a little bit about who I am. So I'm a biomedical engineer and I love producing medical devices of substance that can make a difference in humanity. Brian's kind by saying I'm a rocket scientist. Let's just say I'm a non-practicing one. It's been a long time since I've been doing that. But today I'm going to be talking a little bit about how we got here. So there's three things. How we got here, what we're doing now, and what we're looking to do in the future. So it's a very simple structure. Now, first up, you never know what you need to know. And I had no idea I'd end up in medicine at all. In fact, I was going to go in a completely different direction. It was to continue working on rockets. But a two minute conversation changed everything for me. And it was a meta, an Englishman, and I won't try and mimic his accent. But he said, I really enjoyed your presentation. I was at a conference with him. And I've got this idea to use rockets to fire vaccines into the skin, which I like to come and work with me. This was more than 20 years ago now, just at the end of my PhD. And I thought, that sounds interesting. OK. Where is it? And he said it's Oxford University. And I said, well, I get a chance to row. And he said, if you're good enough. So three months later, we were there. And it was an amazing experience for us. So there's all the things you'd expect about a place like Oxford. The cold, the old teaching rooms, and all of those sorts of things. The academic excellence, that was clearly there. But one of the big surprises for me was learning. It turned out to be an eight-year apprenticeship in innovation. So it turns out, working with this thing, Brian mentioned science fiction before. Well, this is very much inspired. I'm happy to pass this around. Very much inspired by Star Trek. So the device, well, this is a kind of physical embodiment of something like that. But there's a bit more of a kick to it. It's a supersonic device that fired particles into the skin of 1,500 miles an hour. Gold microparticle, small ones. So there's no pain free. So I'm happy to pass that around. It's not a loaded gun. You can take a look at it. And what did we learn from this? Well, so many different things. Learned how to patent ideas, how to work in interdisciplinary teams, how to keep true to the science as well. Because in the end, that's one of the most important things. How to commercialize, how to work with companies as well. So that, for me, was very important in shaping who I am today. And that was quite some time ago. Now, looking ahead, there was, Brian mentioned Peter Beattie. So in the early 2000s, the Smart State Initiative was pushing ahead in leaps and bounds. And I was convinced to leave Oxford and go to the University of Queensland. One of the new research institutes there called the ARBM. And I had an idea in my back pocket called the nanopatch. And it was an amazing adventure to take that forward, to turn that idea into something real and do it within the Australian context. So explaining the nanopatch briefly, unlike the gene gun which is over there, that's another name for it, the biolistics. Brian rightly identified as the combination of biology and ballistics. I should back up by talking about the problem we're trying to solve. So Bill Gates put out a call for better vaccines for the developing world. And I sat down in my office there in Oxford trying to make it work, make the gene gun work. And it wouldn't.  A little aside, by the way, biology. So you think rocket science is harder than it is. And biology is harder, at least for me. Because the biological variability is humbling. You think you've nailed something and then something comes and you have no idea of no explanation for its biological variability. And within this particular narrative, yes, the rocket was hard and my job was to start with a rocket, but it turned out that the real challenges were in the skin. The biology of the skin, the immunology of the skin. And I had to start getting a handle of that and learning it. And that was not easy. So it turned out the gene gun wouldn't work for the developing world. So that was a problem. And I thought, well, what am I going to do? So I sat down and thought, OK, well, here's what we now know about the skin, map the skin's immune system with some great immunologists over there at Oxford. And designed a device from the ground up to try and place vaccine to the cells in the skin that tend to matter for improved vaccines. It's called an antipatch. And unlike the big device that I just passed around, this is an example of a nanopatch. And you can immediately see it's a lot smaller. But also unlike the device I passed around, which is taking something from aerospace and putting it into biology. In some ways, this was taking something from Silicon Valley and putting it into biology. So this is a silicon chip. So I needed to find ways to make this work and a silicon chip turned out to be the case. So again, happy to pass the nanopatch around. What we see here is an example of a nanopatch compared to a needle. And in this particular case, it's a device for the mouse. There's 4,000 projections on that particular device. And you apply the patch to the skin. You dry coat vaccines to it. And the vaccine is released and released quickly and targets those key immune cells. And this is a close-up of what it looks like when one of these types of devices is applied to the skin. And it looks like a cartoon. It's a pretty image. But it's not. It's real data. It's a scanning electron micrograph. This speaks for itself. This is one of the projections from one of our devices. The layer in red at the top is dead skin. It's astralum corneum. The brown is the viadermis. And the purple is the dermis. So we've turned the cells of interest in this particular image. If I try to sum up, in one image, I suppose, 20 years of work, this wouldn't be too far off the mark, it's interfacing with the skin in functional ways as opposed to just producing a medical widget and then trying to find a use for it. We study the interface, the physiology of the skin, and design fit-for-purpose devices in order to meet that particular need. And if you're wondering what drives me, this is a good image for that. So this is taken a little while ago now. It's when we went to Papua New Guinea for a usability study with the nanopatch. And it's the global health narrative. It's getting these devices out into the field. In this particular case, we're at Port Moresby with the practitioners. They're getting these nanopatches. In this particular case, it was mock-ups of them. But in the hands of the practitioners and learning about what happens in the field and feeding them back into our devices to make them work better. So perhaps being infected by my days in Oxford in 2010, 2011, the data looked strong and compelling using CSL's influenza vaccine called FluVax, trivalent at that time, now quadrivalent. And so we're faced with a fork in the road. Well, do we continue on the academic line or do we actually take the leap and try to turn this into something real as in the form of a company? So we did the latter. I founded a company called Vaxus and ran an interesting experiment for about four years. And so the experiment was to be a full-time professor at the University of Queensland and effectively a full-time executive in Vaxus. So let's just say it stretched my Protestant work ethic a little bit and learned a lot in that period of time. And so Vaxus is still going forward and it's in the clinic and taking things forward on that front. But I stepped out from that, which brings us on to where we are today. So that's a little bit of a background in a few slides, trying to compress 20 years of my life from a technical point of view at least. Then I noticed something. I did a sabbatical at Harvard in 2015. Around the time I saw Brian started working with the World Economic Forum. And then it's interesting you develop an instinct for something and you think, okay, there's something here and you can't even fight it. It just sort of pulls you in. And so a little survey, I suppose. So first, is anyone wearing a Fitbit device? If you don't want to admit it, that's okay. So there's a few. Faith, thank you for wearing a Fitbit. She'll hate me for saying that. And anyone wearing an Apple Watch? Okay, where's Luca? Luca should be wearing an Apple Watch. I'm not doing this on purpose with them. So that's probably what we think about when we think about wearable devices. Another little survey since I'm at it is who thinks I know a lot about the Fourth Industrial Revolution? Okay, there's a few people just really nudging. Okay, so I want to just take a little moment to cover off these two things and talk about the context of wear optimal and why are we doing what we're doing? Why are we running this particular experiment? So how about we start with... Let's start with the Fourth Industrial Revolution. Okay, so to describe the Fourth, we've got to talk about the first three. Okay, so most of us, when we think about the Industrial Revolution, we're talking about the first one, and that's very much characterised by mechanical things. So steam engines is one great example of that. Primarily at its zenith, it was in the 1800s, and it took a long time for it to roll out around the world, and it didn't really achieve its full reach. Massive changes, though, that came with the First Industrial Revolution, including, it could be argued, the founding of Australia from a European perspective, but we'll save that for another day. Second Industrial Revolution, primarily electrical, okay, and the champions for that were not people like Brunel in the UK, but there was a lot of the champions for that were in the US. And so we're talking about people like Edison, we're talking about the telephone, the telegraph, but also manufacturing. As we think of manufacturing, it's in the Second Industrial Revolution, so you could argue that the fabrication of Ford motorcars with Henry Ford, Second Industrial Revolution. Now the third, looking around the room, it's very much in our lifetime. So it's a digital computer revolution, okay, and we can look around and see great examples of that. Of course, most of us would have one of these, or something like that. That's a great embodiment. I meant to turn this off, Sue had asked me to do that. So anyway, don't call me. So that's one example of what took place and is taking place in the Third Industrial Revolution, the internet, computers, transistor radios, and it's happening very quickly, faster than the other two. And who are the champions of that? Companies like Google, companies like Apple, and so on. And they've really created a revolution. I mean, here's just one example. If someone said to me, I'll be here in 2018 talking about a company that's only 20 years old, yeah, with an R&D budget that is bigger than all of Australia's, I wouldn't believe you. But that's Google, okay, and that's a snapshot of some of the things that are taking place. But that's the third Industrial Revolution. So what's the fourth? So working with the World Economic Forum, I learned a little bit about this because it's a key topic of the forum. Now the fourth is a whole bunch of different fields taking off at the same time. So the third is very much digital.  That's just one example. To me, that seems obvious, okay? But there's other ones. There's always other fields taking off at the same time. We have artificial intelligence. We have genomics. We have other forms of biotechnology, nanotechnology. They're all taking off at the same time. And the question is what's going to happen when all of those things, how do those things come together? And how do we handle that? How do we train people to get their head around that kind of thing? Is it possible that the ability to make things can actually outstrip our imagination now has usually been the reverse? So that's an interesting idea. Now, let's bring it into healthcare now. So the Fourth Industrial Revolution in healthcare, of course, another way of talking about this is great examples of personalized medicine and digital health. Now, I'd now like to come in to talk about the wearables thing, because I've talked about the Fitbit and the Apple Watch. That's really what we think about when we think about a wearable device. And there's great reasons for that. But they're not really functional medical devices yet. Yet, that is. But right in front of our eyes, we can see that there's a march up the value chain where soon wearable devices in a wide, kind of widespread way will be functional medical devices. And this field is like nothing I've ever seen before. So let me explain what I mean by that. So the first is, so the gene gun, if someone can hold up wherever that is, it's over here, and the nanopatch, wherever that is in the room, harder to see, it's up the back. Okay, they're both examples of an industry that's been around for a very long time. It's the pharmaceutical industry. It's a mature industry. And I try to fight this, and I've tried it in many different ways, but it seems to always come back to this. But when you succeed in this industry, it takes 15 years to go from my dear to product. It's a 15-year ride. So in Fraser's narrative, which includes CSL and includes Merck and others, from my dear to product, it was about 15 years. And we can debate the reasons why, but a lot of it is just the nature of the industry, the nature of the regulatory hurdles and so on. But that's what it is. But what's happening in this wearable space is, yeah, it's like nothing I've ever seen before. Its epicenter is not the traditional pharmaceutical industry. It's coming out of places like Silicon Valley. It's coming out of places like Google. And unlike the pharma industry where it kind of comes from this methodical blockstep approach, the culture is very, very different. The culture of people that can produce billion-dollar companies from their backyard or their garage don't have the background of working with regulatory authorities. And so there's a culture clash that's coming. But also on top of that, they're extremely well capitalized as well. So one of the likely epicenters of this is Silicon Valley. So why are we here in Australia and why are we talking about it? And what's where Optimo got to do with any of this? So Brian and I have been talking for a little while and Brian came on as Vice Chancellor. And he wants to get some big things done in innovation and try to change the way we do things as well. We don't need necessarily always more of the same. Now in the context of what we're talking about here, I could, I'll talk about micro wearables in a moment, but that's the core idea and the ability to gain access to the skin for all manner of signals. So I could try to do it the way that I've done it before, working within the classic pharma context where it will take 15 years, write some research grants, hopefully win a few with the ARCO and or the NHMRC, and after X amount of years have some feasibility data and then try to set up a company and take it forward. And if you succeed, that might be a 15 year ride. Now of course, other than the fact that I'll be extremely old man by the time that gets done, so I'm not a big fan of that, but it's actually wouldn't work in this space because in the meantime, unlike this field which is moving at the speed of sound, this other field is moving at the speed of light. So what do we do about it? Well, one option is I could sit back and watch it unfold kind of like a spectator in the grandstands eating the popcorn and write about it. Try to do it the way I've done it before, but I'm convinced that it wouldn't work. Or we could set up a fit for purpose enterprise that's well capitalized, a biotechnology skunkworks, and I'll talk about what that means in a moment, where we're focused, we have the backing of ANU, we work really close to within it, but we're not tied under all of the layers that you can tend to sometimes happen in an academic context. And just as a little aside, one of the outcomes from the World Economic Forum is they're arguing that the universities are going the wrong way. And I know that might not be a PC audience, a thing for me to talk about in this audience today, but what they're saying is that we're getting caught up in our metrics so much that it's forcing us to do incremental research and we end up getting caught in a machine where it's the papers leading to a grant leading to the papers. What we're about is trying to really change the way things get done and produce impact. So that's why we've came up with this framework for Optomo. It's a company. The idea is for it to be very well capitalized. The idea is for it to be entirely focused. A top team of really bright people, not required to write papers, of course, when we choose to, but focus on global health care impact. So that's the core vision. Now, let's talk about what we're actually doing. So this is a little snapshot of where we are today and it's the look forward. And this is an example of one of our micro-wearable embodiments and another one as well. So this is a single-use disposable type device and this is something longer term. So what big problems are we going to try and tackle or be focused on? And how are we going to make this worthwhile? So here's one example. Now, there is a bit of a backstory to this and I'll share it with you. We did think about doing this as a live experiment here today and the only thing holding us back was the Wi-Fi here might be a little bit shaky, otherwise we would have given it a go. So this is something I had tested just a day or two ago. So what are we looking at here? So firstly, this is one example of micro-wearables. It's gaining access to the skin very, very shallowly for a fit-for-purpose signal. And in this particular case, I'm about to play a movie in a moment. But this particular case, it's a simple electronic measurement called ECG, which is to give you a readout of how your heart is performing. And it's a field that's been around for a while, but it's still a field that you can get wrong in many different ways. Now, what most other techs have is this kind of stuff. It's called noise. Well, this is a kind of clean signal that you can generate with one of our types of micro-wearables that are applied to the skin. So that's just one simple example. And it's a stepping stone application. It's not the one that excites me the most. Now, the one that, well, there's a few that excite me, that really grabs my attention is, what if we can generate signals like that, that are continuous, that pick up and detect a heart attack as it's about to happen? Okay? Now, to do that, you need to gain access to all manner of biomarkers, in particular one called troponin. And we think we have an approach with our micro-wearables to do that. Why do this? Well, it's the biggest killer on the planet. So it's not infectious disease. There's 14 million deaths per year due to infectious disease. That is a big problem. There's no doubt. But today's, one of today's biggest problems is cardiovascular disease, and it is the biggest killer. And even in this year, in 2018, people can drop dead from a heart attack with no warning. And this is an interesting going full circle now as well. It's going back to my mechanical engineering roots. Because have a look at cars today. So cars, a high level car, I was told today by someone within the industry might have about 2,000 sensors within it. Okay? A standard car may have about 200 sensors within it, but it's detecting things all the time and you get to find out how your car is working. Can any of you guess how many signals that are produced by sensors on the human body for medical, regular medical use? Pretty much none, actually, when you think about it.  And it's an event, it's an acute event at that point. And when we look at some of the lifestyle diseases, I don't want to sound negative here, but quite a lot of ticking time bombs are taking place with diabetes and so on. If we can continuously monitor in those sorts of areas, we can get early insights into that and help shape the behaviour. So, that's one snapshot of where we are today. We have many more that we're working on. We're really excited about this experiment that we're running. I'm excited about it being so interdisciplinary. That will be hard, but I kind of like that challenge as well. We will need to work with all manner of people, not only within the team, but it needs to be extremely collaborative, not only here in Canberra, not only in Australia, but also around the world. We're talking about the need for artificial intelligence, knowledge, digital health, human interface knowledge, psychology as well, human factors. And of course I've been dodging some of the sharp stuff that we're working on right now. So the dermatology, the physical chemistry, the electrical engineering, all of those things. And I'd like to just finish with something brief. I talked about 15 years. So, earlier this year, my Oxford mentor, one that talked me into going to Oxford, he died. And there was a reunion for that. And we went back to Oxford, and that was a really touching experience. But I looked around the room, the people that I worked with, with that powderject experience, and what they're doing now is amazing. It's humbling. So the first PhD student that I had the privilege to supervise, he's now leading a company there in Oxfordshire with about a billion dollars and producing tuberculosis tests that are being produced, distributed around the world. And that's just one example. Now, let's look ahead 15 years. So first for the record, I don't want to be dead. But what does success look like from running this experiment? Well, first, we of course would like to have an impact with our devices being out there and in use. One of the reasons why it needs to be a company as opposed to a knock for profit is that actually to make an impact, you need to be commercial. So that's the first. But the second is I'm really hopeful that the younger people, in particular that come and work with us and come through and get that kind of infection that I had over there in Oxford, they're doing something like this 15 years down the line. Whatever it is, I can't even predict what it is. And I really hope I've got nothing against Oxfordshire, I really hope that a good slice of those will be doing that here in Australia. And if we've done that through the innovation by doing and teaching, then I think we've done the job and we've got a lot to be happy with. So on that note, I'd like to finish. Again, thank you so much for coming today. It's a real pleasure to see you. And I believe in the spirit of conversation you'll have the opportunity to ask questions and put Brian and I in the hot seat. So thank you. Thank you, Mark. So I'm going to lead a couple questions and then we'll open up to Q&A at the end. So I guess one of the first things to think about is you're someone who started in Australia, went overseas, did very well in Oxford, and you came back. So do you see that notion of brain drain being a problem for Australia? And I guess what was the reason ultimately, other than Peter Beattie, that you've decided to stay in Australia, which is not a common occurrence for entrepreneurial people like yourself? Great question. So people do talk about the brain drain a lot and it does happen, right? It's a real thing. But there's also a brain gain from going abroad. And it cuts both ways as well. Bringing people into here and having multinational labs, I think it's a fantastic thing. So for me personally, I learned a lot from that experience and was able to transplant some of those learnings back to here. And there's so many ways it opens up your thinking. I remember as one example, when we were building Baxus and we were putting together the Series A investment and I drew up the budget for what we should do. It was a $15 million budget. And the people around me, the TTO, said, you can't do that. And I said, well, why not? And they said, that hasn't been done in Australia. And I said, well, we kind of did it in Oxford. Let's give it a go. So I think it's good in opening up your thinking. So play the long game is probably my answer. Yes, some people will end up in England or wherever. But a whole bunch of people end up here too. And I think that's a good thing. And you found working in Australia compared to Oxford. I mean, how have you found it? What are the challenges you've found working in Australia? And what are the opportunities you've found working in Australia? Look, I miss, on the challenger side, I miss the feeling of being close to everything. And the reality of that too. If you needed to go across to a meeting somewhere in continental Europe, you can do that as a day trip. And things flowing through there so much. Here, it's kind of the destination people aren't passing through. So I miss that. But what I like about here is I think we're developing our own Australian way of doing things. So yes, we're used to being resource constrained, but we kind of have an optimistic approach of tackling things. And there is an upside to being left alone for a while. So you can work things up, and then you can choose to put it out by your choosing. But yes, and you know this better than anyone, Brian, the long distance flights are pretty tough. You need a good skill set to be able to work on that. Absolutely. Yes, I caught up on various box sets yesterday coming back from San Francisco. So one of the experimental aspects of this is really trying to embed a culture of entrepreneurialism. You said you got an apprenticeship for eight years. So how do you see that working here? Well, so you can study innovation and you can read about it and you could maybe attend a course for a week and all those things are useful. My observation though is nothing like doing it. So our strategy here with WorldTomo is to have a kind of an approach where all manner of people can flow in and be part of it. So say you're an academic here at A&U and you'd like it as a common for a taste of this. We want to allow that to happen. Although of course we can collaborate as well with you still within the university, that's fine. In terms of students as well coming through, a PhD that is nothing wrong with a PhD. It's a great thing, but of course I'm biased. I'm a product of that. But we all know that very few PhDs will lead to the academic path. And if we can provide an early taste for PhD students where they get an industry component by coming in and working with us, that can only help in that space. So I guess one of the things that people on this when you didn't really talk too much about it is there are a lot of people around the world working in the space. We now talk about Apple Watches in the beginning. We've talked about Google. So what is your point of difference going to be? So I'm going to take the classic Australian minister. We're not any good.  Everyone's going to run us over. Why are we even bothering trying? Sorry to be a little negative. To be clear, I've yet to meet a minister that said that to me directly. You've got to know how to compete. So my observation of this field of wearable devices is, as I mentioned, they're toys.  They're putting a device on the skin and trying to hear stuff. Now the skin's an amazing organ, and it's a wall. A good way to look at it is a wall. It keeps the bad stuff out, the good stuff in. You can listen on the wall, and that's what Apple are doing, that's what others are doing. What do you hear? We hear very few things, and the things you do here, you don't hear very well. Now, it just turns out, I've been working for 20 years with the skin, with functional medical devices, looking at the physiology of the skin, and we have the ability to gain access very shallowly into the skin for all manner of signals that you can't get on the surface. So it's that unique knowledge base that we're putting to work, plus the ability to, having done it before, once or twice, to actually put it together and make it happen as well. So I think that's the summary. All right, well, let's open it up to questions from the audience. Anything goes, with a reason. We'll start up there, sir, in the darkness. Please, ask your question. Thank you very much. We're gonna give you a microphone if that's all right. We're recording this, so we wanna make sure everyone can hear the question. Thank you very much for the presentation. Just towards the end of your presentation, you said that to be successful, it's got to be commercial. And so my question is about that, because I'm just wondering who is going to benefit in terms of the recipients from all of this new technology in the health field. I would like to think that many people in the developing countries would be the main recipients. And there are examples. For example, Lixill, that produced the bio-toilet and is in the process of distributing 100 million at next to no cost to the purchaser, would be the way to go with something like this, because we'd like to assess the health of everybody. Is there an equal chance for everyone in your agenda? So let's start with the commercial comment, and I'll come on to the others. So providing a little bit more context on that, what I'm talking about is providing a route towards impact. So if we didn't go commercial and did fundamental research there, there was absolutely nothing wrong with that, and a lot of fundamental research. But the question is, how does that work get taken forward to produce the functional devices that can actually be used by people in the setting for genuine health care? And so where we're positioning, where OXMO is to help make that happen, and that doesn't preclude any of the things you talked about. So I'm hugely passionate and always have been about the developing world applications. It's one of the reasons why I invented the nanopatch was to meet that particular need. And I'm keen to leapfrog the typical technology process, which is, so if you use a car analogy, there's a technology that ends up, starts in Formula One, a supercar, Mercedes, and then eventually it'll end up in a day-to-day car, but that's a trickle down that that tends to happen. I'm keen to try and leapfrog that the best way we can, so we can get on the agenda with the people in the most. So I suppose the short answer to your question is, it's all on the table. Presumably the commercial side is a way to raise the capital that allows you to actually create the technologies that can do that. That's right. And then how you license that, you could do that in a non-profit, presumably after that. Correct. Lots of flexibility. All right, question up here? Oh, sorry. Yes? Interestingly, you mentioned that you'd like to have a cross-disciplinary team that brings in expertise from all around the university, and I gather your devices over time will produce a lot of medical information in real time. Governments have gone, spent billions of dollars on producing things like the summary care record in the UK and my health record in Australia. Does your technology plan to integrate with those type of efforts, or will it supersede those big spending plans? And therefore, do you need a political scientist? That's part of your interdisciplinary team. Well, yes, please. Oh, that question is so many layers to it. Our starting point is to generate the data. It's to get in place, to the wide bother. If we don't produce attributes with these particular devices and technologies that make a difference in health care, then we don't even need to consider the kind of things that you've just talked about because we know that it won't be on the table. We certainly need to work closely with people that have a lighter sight on that. We want to make sure that we... Bad analogy, but I'll do it anyway. We want to make sure that we don't end up with a format. So I'm probably showing my age, but I remember Betamax and VHS, right? So we want to make sure that we are plugging in the format that actually will work in that world. And it's an interesting space. Who owns the data? How that works? We're fascinated in that. But our first job is to generate the data that matters in health care. OK, good. Yeah, so the last time I took my kids to get a vaccination which isn't as long ago as you might think, they didn't have a nanopatch. So I'm just wondering two things. First of all, where is the nanopatch at the moment? Like, what's its status in the world of vaccinations? And second of all, I have no idea.  How does it work? Where's the vaccine in that little thing that you passed around? Where is it? Oh, there it is. So that's just my sense of here. So there's one nanopatch used for clinical work. Well, that one's not. But it's a bizarre. So let's see. So this work has been published. I can talk about it. So the nanopatch has been proven now clinically using CSL's vaccine. Well, it's a subsidiary of CSL called Securus. And I think I've got that correct. I'll just check. Yep, OK, good. And it's going forward in the company called Vaxus. And so there's further clinical work taking place. So it's not on the market. Yeah, I understand that. It comes back to... Let's talk about the 15-year thing. When I first came up with the core nanopatch idea, it was in 2003. So here we are. It's 15 years later. It's not on the market yet. But it's got legs and it's going forward. But it's not an easy ride. Where is the vaccine? Yeah. So what we do is we dry coat the vaccine. So it's in solid format on the micro projections. It's typically about one micron thick. It's a very, very thin film. And you manage to get, because of the way we concentrate the vaccine, you manage to get, if you want it, a full human dose of the vaccine. And Brian touched on this briefly. But one of the attributes of the patch is it offers the possibility if the immunology allows us to do it for lower doses than what you have a standard needle based vaccine. One of our entrepreneurs here on staff, I see. Thank you, Vice Chancellor. You have a company, I believe, and I'll be interested to see how you see this company interacting with people developing intellectual property at the ANU, which may be in competition. How do you foresee this proceeding within the university structure? Oh, that's a good question. I mean, intellectual property is always one of those interfaces. How do you manage that? So we've got a framework of a bunch of agreements between ANU and Amor Oxnato that we've worked up really carefully, trying to capture the spirit of collaboration, trying to cut down... We want to try and avoid situations of people being partitioned too much. So we're kind of leaning towards a high cost model, because if we're... If I say it another way, I didn't really describe what a Scunk Works was, by the way, but the thesis of that is it's a tight team where there's strong communication and the working world together. So that's the spirit of what we're looking to do and recognize that, yeah... I mean, it's a fine line between a competitor and a collaborator anyway. And there's so many different fields. There's so many different ways where people can still do their thing, yet different commercial interests can be looked after. So that's the spirit we're hanging in with. I think it's fair enough to say that it's a bit of an experiment and we're going to learn some lessons along the way. And I promise you that where Optimal takes off and is part of a mega-company, the conversations will become more complicated. But it's a complication I look forward to. All right, so we're about... I'll take one last question if there is one, and then it's time over here if that's okay. Yeah. Mark, you talked about problems with the variability in health care of individuals. If you collect enough data, will you get to the point where you can get an average profile that's significant, for example, so you can predict at the moment the population might get glucose or diabetes? And what would happen in 50 years if the CO2 concentration increased by X, which you can sort of predict? Can you tie a much better statistical argument if you collect enough data, or is the variability so great for individuals that still doesn't happen? So, to develop a healthy respect for biological variability, what we're looking to do with our devices is to measure it. So, in the absence of individual data points tracking one person, what's the option? Well, the option is to do population-based approaches. We have to have many, many patients get one data point and aggregate and do the kind of statistics that you've referred to, and that's how traditional clinical trials work. And, you know, that still will happen in many different formats, but what if you look at the asymptote at the other end where you've got a profile just for you, so you have a mountain of data generated just for you, so you will have your own biological variability, your own data, and then you've got it with many different sources that get aggregated, then a particular intervention can be tailored for you as opposed to just working off the average, because there's always outlives. Certainly data in this field is always a good thing rather than a bad thing. There's going to be lots of complications of how we do it, but, again, that will be fun. Next, it's time to wrap up, but I'm going to have Nick Cardew-Hall, our Acting Deputy Vice-Chancellor of Research and Innovation, finish proceedings off. So it's down to me to do a vote of thanks. I first met Mark probably about two years ago when he first came to campus on Brian's invitation, and he took me through the concepts that you've heard today, and I sat there and I felt not sure about this, a bit skeptical about this one, and it wasn't that I don't think we could do it. I don't think it wasn't possible, but to do it, you have to have the appropriate leader, and I'm always needing to test out the academic. Over that two-year period, what I've observed with Mark is an outstanding academic in the traditional sense. What I've been more impressed over that time is that he is an inventor. He's an inventor in the spirit of Edison and Marconi, and I think that was a major thing that set him apart from his other academic colleagues. But over and above that, I've now observed him interface with politicians, senior bureaucrats, major investors in London and California, and a whole range of other stakeholders in a way that you can see that this is somebody that can really pull this together, and he was really deserving of being an A&U entrepreneurial professor. What we've seen today is a glimpse, I think, of what is something that's very exciting for us, and I think Mark has got the capability to lead us there, and I think we're very fortunate to have him here at the A&U. I think he's given us a glimpse in this lecture, and I would just like us to give him a vote of thanks for giving us a view of what the future might be. Mark, thank you.