I'm Andreas, one of the core committers, so hello, hello. I'm here to talk to you about what possibly is the greatest innovation in our lifetime, which is namely the web. And I think that everyone in this room cares quite deeply for the web. In fact, I think that the people in this room cares more deeply for the web than many other groups. So I want to start off by giving a little insight into the life which you have now introduced yourself, which is the life of the web developer. So of course, what web developers do is that they invent and they create the web, right? This guy is a web developer, apparently, really a modest bunch. We don't care much for titles, apparently. But unlike many other inventions, the web is not a static thing. The web is almost 20 years old, a little over 20 years, actually. The modern web is about 16, and we're not using the web as it was invented. The web as it was invented was a fairly basic thing. Now, the web is a living thing. It's something that evolves every single day, and it evolves in many different ways. It evolves because there's no single inventor, for example. Tim, the director, he could have said, he could have kept the web for himself, but he decided not to. He decided to open it up. He happened to get the idea of this electronic system of interlinked hypertext documents, but he chose not to restrict his use in any way. He said that it was not his to safeguard. In fact, he did the exact opposite thing. He decided to open the web up for everyone, and the web, consequently, evolves through individuals like you and me. So we have services like RSS, syndication, we have hosted web apps, all new innovations, big websites which we go to every day, and there are some things which we invent which are so important to the structure and the architecture of the web that it eventually gets put into a web browser. And you guys all know this because you're all web developers, but precisely because of this fantastic plethora of innovations and ideas, it's sometimes a little bit difficult to agree on exactly what is a good idea for our community at large and which ideas are destructive. Now as a web developer, we have a responsibility to test, a responsibility to improve the web. One way to improve the web is, amongst other things, through standards. Now my argument is that testing is quite a fundamental concept to software engineering in general. If you write a software program today, it's inconceivable not to test it. And the ironic thing is that that's not the case, or at least not until recently, has not been the case with web standards, with specifications. Specifications are sufficiently complex that you can't just define them and rely on the browser vendors to implement them. They are subject to a much, they need a much more thorough testing effort to actually make sure that they are as good as they can get. Now browser vendors, they do test their software, they do test their browsers, but they don't run the same test cases, for example, and they don't test in the same way. And everyone who's worked a little bit with CI environments, we know that the environment in which you test has a tremendous effect on the outcome of the tests. Now we have to ask ourselves, is this behavior from the browser vendors good for the web? Well, I mean, no, it's obviously not good. It means probably less work for the browser vendors. It means that they don't have to test as much, they don't have to write the tests. But for us as users, we suffer at the lack of interoperability. I'm quite sure that most people in this room have discovered some feature in some browser, which doesn't work in another browser. And that's one example of lacking interoperability. Now I'm here to talk about the web platform and how we test it. But the web platform, what exactly is the web platform? It's a fairly browser-specific implementation detail. So in short, I'm going to go through it. In short, all cross-parasite technologies that browsers like Firefox, IE, and Chrome build and ship, it's a collection of web technology standards developed by the 4G, W3C, the IETF, ECMA International, and Unicode Consortium. It is basically a big collection of technologies. And to illustrate that, I'm going to go through just some of them. And I don't think most people who develop for the web realize that this is actually the world's most advanced application platform. And it works, I mean, even if you give it invalid code or if the browsers aren't fully compatible or if something doesn't exactly work, it all works itself out. And this is because of the way that the evolution of the web, I mean, it didn't have to be like that. It could be that we would have more strict standards which would limit which websites would work in different browsers. So I'm going to talk a little bit more about that later. There are not many technologies that can boast the same level of backwards compatibility, for example. The website which was made in 1995 still works in the browser today, and that's pretty fantastic. But it's important for us as web developers to make sure that we don't regress the web, that we don't deprecate how the web works, and that we don't make any content on the web inaccessible. And that's one reason why we have these standards. Now, there are some core technologies, HTML, DOM, ECMA script, ECMA script, which is actually JavaScript. URL, XHR, course, it says encoding. But the list goes on. There are so many things to test. And each one of these words or each one of these has its own specification, and these are all technologies implemented in browsers. So you have animations, font positioning, WebGL, all of these things are foundational web platform technologies. Media, events and messaging, cross-document messaging, very exciting new technology. There are APIs for if you're using a device like this one for getting the battery level, the device orientation, whether it's upright or sideways, vibration, et cetera. And the list just goes on. And many of these things have been actually invented and specced in the more recent years. And interestingly, in the category other, it has categorized by the W3C, there's also a new specification which I've highlighted there called WebDriver. So exciting times. So documentation on this is found on these various URLs. If you just search for a specification, be a little bit cautious of what you find, because most of it is just outdated, and you need to go to the real sources. And developer.mzilla.org is an excellent reference. Now the web used to be a very simple place. We used to have useless standards that no one followed. We used to have browsers who did pretty much what they wanted. I'm not sure if anyone remembers the blink tag and the markweed tag, but that's like one example of the browser wars which happened about 10 years ago between Netscape and Microsoft. Around the same time, the W3C, the worldwide web consortium, realized that this was getting out of hand and they needed to do something. So they started the process of speccing XHTML, which was going to save the web from this mess that it was in. And that's true. The web was in a big mess, but at this point, it was also in a position where the browser vendors were saying, well, we have all of these users and we have all of this web content. We can't just deprecate it and don't allow people access to it. Pages must work. That's like a secret mantra of the browser developer. Now eventually, someone, the browser vendors in this case, realized that a spec describing reality was a much better approach. And so HTML5 was born. So the web used to be simple, but worldwide web has morphed from a system of simple interlinked documents into something which is so advanced that new approaches to testing is necessary. We used to test for regressions, but now we also have specs which comes with tests. So we need to find a way to test those. So the question is if we can do better than we did a year ago, two years ago, five years ago. And the answer is, of course, that we can do better. We can do better with automated testing. And I think Anand Bhagbab made some very eloquent, had a very eloquent talk yesterday about the need for automated testing and what it means. So I urge you to look up the video from that if you didn't attend. We need tests which are vendor-neutral so that we can share the tests between different browsers. We need them to be run in continuous integration environments so that we can get immediate feedback. Otherwise, it's really hard to find proper regressions. And it would be really nice if the tests were accessible to everyone, right? And a way, I mean, having access to the tests which the browser vendors use to make their browsers with means that we have a way of keeping tabs on our browsers to make sure that they are actually doing what's in the best interest for the web. And consequently, for the browser vendors, it also means that they get better interoperability. Now there is a project for this, which is called Test the Web Forward. And it's an open source project, and you'll find the link here. I really urge you to go and check out this project. It's a project by individuals who submit tests back to a repo called the Web Platform Test Repo. And it's situated on GitHub, so it's really easy to write tests. So the Web Platform Test Repo is, well, basically tests for the open web platform. They're collated by the W3C, but the W3C doesn't write any tests themselves because they rely on contributions from individuals and from browser vendors. They are continually updated, which means that, which just underpins my point about the web being a living thing. It's not a static thing which you spec and then implement. Specs evolve at the same time as you implement them. I'll upload the slides so you can get the links. Now exactly what do we test in a specification? Well we look for conformance requirements is one thing. And they're based on an RFC, which is <IP_ADDRESS>, which is known to everyone who works in the browser business, which basically is like you have statements going must, must not, should, should not, may, et cetera. And these tell the browser vendors what they must implement, what they can choose not to implement, and what they can optionally implement. There are also some statements which are unambiguously requirements. There are some statements which are candidate requirements. Which basically says that, which is basically statements which go, you can choose not to test this. For number four, we have requirements which often, which often have stated, which are often stated with algorithms. The web drive respect has some awful algorithms, for example. They're really, really complex, but it, but it gives the testers a really good idea of what you need to, what you need to test. As a single requirement, a single requirement usually requires multiple tests. A single test case may be a test, may require a combination of multiple tests. A single test case may test a combination of requirements. But in short, the whole thing is very complicated. But more importantly, specs lie. Specs have bows, just like software. Specs change constantly, sometimes the specs themselves don't match reality, and this is precisely why the web is so bonkers. Three HTML5 specs were written first and then attempted, implemented. The reality was that no one implemented these specs. For example, HTML4 was not implemented because it was unimplementable. And it is also wrong, but that's another discussion. HTML5 isn't making the same mistake because it specifies what browsers are actually doing. It started out by just specifying what they were doing, and now it's like continuing to add new things. But I mentioned that the web is a massive place, which basically means that deprecation is very hard. So the first time, well, when you introduce a new feature, you can't just remove it. If a feature is used by only 1% of users, that's several tens of millions of users. So it's really hard to be speccing something like the web. In the web platforms test repo, there are several different test types. There's a script test type, which is driven by a framework called testharness.js, which is written by a colleague of mine, James Graham at Mozilla. There are web IDL tests. The web IDL is basically, I'll return to that later, and I can show you an example. Ref tests, we have ref tests, there are manual tests, and finally, a recent addition, a new test type to the W3C are the web drive implementation tests, which I just landed patched for a couple of weeks ago. You can start with the script tests. They are basically JavaScript. They run in context, in context of the browser window in the top-level browsing context, and this is an example of what the test looks like. So you have a basic HTML page, you load in the testharness, you have a test function, it takes the document title, which is meant to be document title, and it asserts that those things match. It's an example of a very, very simple test, but this is an actual test, which is located in the WPT repo. And the reason we have these tests is, of course, that if someone happens to break the title tag that we catch the regression before it ships. This is an example of this test running in the harness. You just spin up a web server to serve you the testharness.js script, and you go to the URL. Simple as that. There are a number of different testharness.js assertions. We have all of the usual suspects here. There are a few special ones, which are, like, assert-owned property, because objects in JavaScript can have properties. There's prototypal checks and a few other things. Because JavaScript is inherently asynchronous, there's also a need to test callbacks and event handlers. And I'll show you an example of an async test. So basically, you have to register a handler, and for each step, you can register an assertion. And then you tell the harness that the test is done so it can continue on blocking. This is an example of this test. So you register the load event on load, and that happens to assert that the event type is load. So that was simple. Web IDL test is basically a format for defining interfaces. They're typically JavaScript APIs, which are meant to be implemented by browser vendors. And the Web IDL tests are an extension, which you can put on top of testharness.js. So you load in this second JavaScript, and you can do tests like these ones. You have ref tests for when your test result is visual. So here we have an example of a biodirectional override. So yeah, you have the test on the left, on the left there, and the reference on the right using simple HTML. So this tests if the BDO thing works. There are also a number of things which isn't possible currently to automate. And these are simply manual tests, which you use when nothing else would work. A couple of examples of things that are untestable at the moment are on visibility change. So if your browser goes into the background, you have Chrome events, like if you resize the window, blur on focus and on full screen change. These are things that are hard to do with JavaScript, because the JavaScript doesn't control the Chrome of the browser. There are also a number of new web APIs, such as those for the Firefox OS device, which Mozilla is developing. There are telephony APIs, vibration, SMS, IDL, screen orientation, power management, Bluetooth, battery status, NFC, spell check, lots of different things. So all of these are things which you, on devices which support them, you can implement, you can use from JavaScript. There are also visual CSS tests, which, for example, this one. If the square is still red, please indicate that the test has failed. It used to be the case that you had a test genre, which you actually manually go in and click. Is the square red? No, it isn't. It's a pass. It's a very tedious process, right, if you have tens and thousands of these tests. When you have some helpers for tests, there's a requirement that you are able to speak to server sometimes to test some specs, like you have to delay the connection, for example. When you have to test XHR web sockets, perhaps you need redirect status codes. Perhaps you need to manipulate the connection data. There's a WPT serve library, which is in WPT repo, which allows you to do this. This is an example how it works. It writes a status code, and it actually sleeps for a second before actually sending the response. There are some implementation requirements for this. Tests must be pulled from upstream. They need to store the expected result of each test. They need to be super robust against misbehaving tests. Because tests are continuously upgraded, so the test needs to be really, really, really robust because they're updated very frequently. It can't require things that only make sense in one vendor context, like something which is Chrome-specific or Firefox-specific. Automation needs to be easy for the browser vendors to use. We need to have cross browser and cross platform support. It needs to be possible to run the WPT test, of course. They need to run fast, parallel with the ideal. They need to run in a normal browser, which means that they need to run in the top-level browsing context because some tests assume that, meaning you can't really run them in an iFrame container. We need to guard ourselves against misbehavior if the browser hangs. We need to kill it, for example, and we need some machine-readable test output so that we can interface this with third party systems which the browser vendors already have implemented, like their own testing systems. We're solving these problems in the WPT runner by pushing test scheduling into the harness. That basically means that we have control over the browser process. We have machine-readable output solved through structured logging, which is like a JSON-ish schema for storing outcomes, expected outcomes, debug output, anything. Then we need a way to communicate with the browser via some protocol, and that happened to be WebDriver. WebDriver happened to be at a very convenient point in time for solving these problems. The general design of this is that we have a Python test drama, which schedules tests. It typically uses WebDriver to drive the browser. For JavaScript tests, basically what we do is that we open a window at the start of the test run, then we call executeAsync script from WebDriver to start a test that we inject some JavaScript. That opens the test page in a new window, and then we have a callback for when test results are posted back via a channel from the open window. Ref tests are actually even simpler. They just use WebDriver's normal APIs. The WPT runner architecture is basically a test manager instance which owns a browser and a test runner. These things are fairly obvious, so I won't go into any detail. The browser is an abstraction over different products. We have one subclass for each browser. The test runner owns a test executor that actually knows how to run the test. The test executor has a subclass per test type and a method of executing the test. This basically provides us with the two axes of extensibility that we need. I'll just put this in here if you're interested, so you can look at this later. I don't expect you to see it. The current status of this is that it's working on Firefox and B2G, Firefox OS. It's even working on server, which is Mozilla's new attempt at re-implementing a browser, a parallel browser. It's working on Chrome via WebDriver and Microsoft are actually adding support for IE. Things are looking very interesting. An interesting thing I should mention is, of course, that the WPT tests have this concept of a manifest files, which lists all of your tests. It also has a concept of expected test results. This is because the browser vendors, different CI systems, they work slightly differently. For example, Mozilla's and Google's work in a way that they expect all the tests to pass the whole time, whereas operas, for example, will not expect tests to pass the entire time. So we need to cater for those different use cases. But essentially, that sort of defining whether a test is expected or not to pass is actually extremely useful in the context of testing the web platform, because it allows you to have things, to have tests for things which are not already implemented, and that way you can actually track your progress of something you implement. Is this test-driven development? Not sure. The reality is that the test suites are actually never complete. They're never feature-complete. They're almost always, they almost always have bugs, and they most certainly don't match reality. Yes. So do we have interoperability yet? The answer is sort of. Things are pretty interoperable. But the honest answer is that we really don't know until we start collecting test results. But the exciting thing is that WebDriver is being used in a very untraditional testing context. And it's filling an important role. It's really helping us to test the web forward in the truest sense in an automated way. So we've solved a simple problem with finding a way to automate all our existing sets of tests. How do we actually increase our test coverage? What about the tests, for example, that can't be automated? And to answer this question, why can't tests be automated, we need to ask, well, why can't they be? We need, I mean, one reason is that to test some of these things, we need to convince the browser vendors that we should take control over their computers, that we should disregard all security measures in the browser, and that we should have access to all hidden things inside of the browser. And that's quite controversial. What we really need is something which can emulate a user. We need something which is capable of controlling the browser instance from an out of process program. We need something which would let us instrument the browser. And we really do have that, don't we? We have WebDriver. We're already using it in WPT runner. We already have a WebDriver instance controlling the browser. So let's have a look at one of the un-automatable test cases. For example, if you have on key down, on key press, on key up events attached to your document, tests will, if those are examples of things which can't be tested currently, because, I mean, you can generate a fake synthetic JavaScript event, but that doesn't really mean, that doesn't really mean the same thing as injecting something into the event queue of the browser or into the operating system. We have tests, yes, so let's have actually a look at this test. Let me see if I can find it. There we go. So this is the test. Actually, I have the source code in my slide. There we go. So it's an async test. You load the browser, but there's no way of simulating the key event. So the test doesn't really pass until you press a button on your keyboard. And the interesting thing, I found this is an actual test from the WPT repo, which I found, and you'll note the first comment up there, that someone is thinking ahead. I haven't seen this before. So if we try to run this test, for example, it's now running. And I need to press a key, and there it completes all of the test files. If I just leave it running, it's going to eventually time out. But this is a great example of a test which currently isn't automatable. So let's have a stab at implementing this test. This is fairly standard Python.   We need a way to define which, like this is how I'd implement it. We need to define which browser to test with. We need to get the capabilities of that browser. Then we connect to our remote web driver server, and we request the browser with those capabilities. We load in our test case, and we send a key. So far, so good. Then, of course, because JavaScript is asynchronous, we need to wait for the test results to come back. So we bring in a web driver wait, and we assert or we wait for the presence of the element by ID summary, and then we get the test result from that element. And then we print that to standard out, and we exit. But this thing is very verbose, isn't it? I mean, if a tester had to go through this sort of approach every time he wrote a web driver test, he would become very sad, because there's lots of boilerplate here. Granted some of the things we can remove, we can put into a library, which we load in. But in the end, you're going to end up with something roughly like this. And this is, by the way, a simplified test, because you also need to register the test events with a logger, which reports it back in some machine-readable format. So it's not easy. But the problem with people is that people don't always want to learn new tools. They don't want to learn a new framework, and especially they don't want to learn a new language. This is all fine, I think. Because when we had this discussion with the WattWG, this previous example is something similar to what the web driver working group ended up with proposing. And we went to the WattWG, and they said, I don't really want to use this. I don't want to learn a new language. They were very skeptical. And I can understand them, because they already have perfect tools for what their purpose was. They wanted something which was much simpler. So now we're, let's see. So if we take a step back, I thought long and hard about this for a few weeks, and I eventually came up with a solution. I should highlight that this is not the web driver working group official position. It's a proposal of my own. I haven't submitted it yet, but this is a taste or a preview of what, automating a web platform's test with web driver might look like in the future. So we have a remote web driver. And the remote web driver is, in all its simplicity, an HTTP server, right? It accepts some HTTP calls. You can send it some JSON as the argument. Use HTTP, because that's the simplest protocol which you can implement in literally any language. And we already have a web driver session. I mentioned this earlier. So the WPT runner already has a web driver session for maintaining control over the browser process. So the use case for web drivers often in combination with assertions that can be made using test.js. Like they want to do this key event thing. They have all other tests, but what they really need in addition is something which goes press a button. What if, conceptually, we had an interface from the JS test to web driver controlling the browser session? So what I'm going to show you is an in-document JavaScript, an in-document JavaScript script controlling its own browser session from an out-of-process driver through the web driver remote server. And I've included a couple of examples of what it might look like. I can actually show you how it works, but I mean, running tests in an automated is usually very boring because they just disappear right away. So I've included some screenshots of how it looks. So this is a JavaScript running in Chrome, controlling Chrome itself. This is kind of like inception, right? So in this case, the third test, the two first ones, which were just to make sure the thing actually worked. But the third test here, it says get title matches document title. And I've included the JavaScript console at the bottom here. And if you have really good site, you can see that it records the JSON payload which is sent to and from the web driver server. This is pretty amazing, right? I have another example in Firefox, which is a little bit more elaborate. So this isn't like an official test or anything. I've just thrown together some functions just to make sure that it works. And there's one failing test, but that's because of a bug that I know about. So you can basically in this way control the browser from JavaScript inside the browser it's controlling. It's amazing, I think. This is an example just to show you I'm not cheating. This is the inspector in Firefox. You can see all of the payloads being sent backwards and forwards between the Selenium server in this case. You can drive it directly against the Chrome driver if you want to. You should be able to drive it directly against the new Firefox driver, which is based on Myonet, once we have an HTTP server in place. And you can drive it against Selenium. So that opens up a lot of opportunities. So to wrap up, it is a brave new world out there. And the web driver specification is opening up completely new areas which have previously been untestable for web standards. I encourage you all to take a look at the Test the Web Forward project. It's a really interesting project. It requires help, the coverage in the web platform test is not great. And so you can all help. So thank you. I'd be happy to take questions, otherwise you can just find me afterwards if you have comments. So the question is, the question was whether how much money the big companies contribute to the W3C, if I understand? Oh, of the test themselves. Yeah, so they currently don't really contribute that much. There are individuals working at the browser vendors who do this partly in their own time, but the focus amongst the biggest browser vendors isn't great on the platform. So you could say like there are lots of companies contributing, but the focus isn't great. This is why we need individuals and individual contributors. That's great, thanks. All right, thank you so much for coming.


Hey everyone, welcome back to theCUBE, live in Miami on the floor of IFS Unleashed. I'm your host, Lisa Martin. Had some great conversations, have more great conversations coming your way. I have two guests joining me. Please welcome Martin Schirmer, the President of Enterprise Service Management, IFS Assist, and Parminder Khosa, the Senior IT Manager at Paroxyl. Guys, it's great to have you on the program. Thank you. It's good to be here. Talk to me a little bit, tell the audience a little bit about Assist, so they get that context before we start asking questions. Yeah, no, absolutely. So IFS Assist is a recent acquisition. It's an acquisition we made about a year ago, and fundamentally it's a platform that takes care of IT service management, enterprise service management, and IT operations management. So think of it of managing sort of the ERP for IT, and then broadening that out into the sort of enterprise, where you're driving enterprise use cases for all lines of businesses, like HR, finance, facilities, so on and so forth. Got it. And then, Parminder, give the audience just a little bit of a flavor of Paroxyl, who you guys are, what you do, make the impact that you make. Yeah, so Paroxyl is a clinical research organization, and what that means is that we manage drug trials for big pharmaceutical companies. So we're a big company, we're 25,000 people. We have offices in 150 locations, all the way from Japan in the east through to the west coast of the USA. Big company. Yeah, we are, we are a lot of people. And let's start chatting now, Martin, with some of the questions that you have, so we get the understanding of how IFS and Paroxyl are working together. Yeah, absolutely, I suppose. I mean, the first thing is, and thank you for traveling all the way from the UK. Appreciate it, and great energy and vibe. So just the first question I had really was, you're a customer of ours for the last 15 years, plus maybe just give the audience a bit of context into your journey and how you've evolved from the sort of early years to where you're going into the future. Sure, so our history, I was part of a company that Paroxyl acquired that was already using ASSIST, and as Paroxyl acquired us, they were in the process of also buying ASSIST. So it became a kind of natural fit where I carried on with ASSIST, and we started relatively small, sort of just the service desk stuff, and throughout the ongoing 15 years or so, we've just grown and expanded into kind of being a critical tool for Paroxyl right now. Okay, that's fantastic. So just, I mean, part of that journey, I know you started in sort of the more, they call it ticketing space or IT service management space. Expand a little bit how you've expanded out of that and really moved into the enterprise. Sure, so yeah, so when we first rolled ASSIST out, it was, as I say, purely IT, and eventually we reached out to other business units to say, asking questions like, are you managing your workload through email? Are you managing your workload through Excel spreadsheets? In which case, if you are, we've got a solution for you that will make it a much better experience for your customers. They're all internal. It'll make it much easier for you because you will have official tracking going on through our system and it'll make it better for your management because we can drive metrics from all of the data that we're getting. So if you imagine finance, we're getting, I don't know, 200 miles a day because of the size of our company and then we're just working through them one by one, responding and it becomes just a mess. So we develop forms for them to say, okay, raise all your requests here, we will pick it up, we will manage it, we will communicate with you and once the piece of work that you've asked for is done, we will let you know and as we go through that process, we'll make it better for us because, as I say, we're getting those metrics and we'll make it better for you because we can spot where our gaps are. If a request is taking three days and of that three days, two days is waiting for someone on our end to respond to you or is waiting for us, waiting for a customer to respond, we can iron those out and make it a much better experience for everyone. That's fantastic. It's really music to my ears because we're always pushing the industry to say, move away from just the IT side and really get into the enterprise and it sounds like you've really gotten a lot of productivity and efficiency gains out of that. Definitely, definitely. It becomes kind of a happy circle, so the finance guys will work with the procurement guys and they'll say, well, we're doing all of our work through assist now, so the procurement will turn around and say, well, we're using this big spreadsheet to manage all of ours, can we do the same? And they'll reach out to us and we'll say, of course we can, what is your process, for example? They will say, okay, if someone asks for a new laptop, we need to get the approval from their line manager, from the supplier, we need to do our own internal work and then we will send it out. So imagine if you're doing that in an email chain, it just becomes chaos. So we will build all of that out for them and then procurement will talk to HR and it just becomes a snowball and before you know it, we are doing about 4,000 tickets per day in our assist system and of those, 50% perhaps, maybe more than 50% now will be non-IT related. Well, that's fantastic, really music to my ears and it's really breaking down the boundaries or silos within an organization. It's really good, let the teams work together, right? Definitely, and that's one of the key things that we've learned is that we have to engage completely with our business partners and our business partners are becoming more and more IT literate as well. So for example, we had a recent big HR solution provided to us and as part of that, we know there are going to be questions and queries and perhaps even issues to do with our HR system. So we have to work with us guys, the assist frontend, the IT HR guys who look after the databases, all of the technology in the background, then there'll be IT HR who are workday experts and then kind of not necessarily at the bottom of the chain will be the HR people themselves who are in their own way experts, in their area experts in IT in a certain way. So all of those people have to work together, we become the frontend but we have to work with all of those parts of the business. That's really great, it's basically what you just said is taking business, IT processes and underpinning solutions, effectively digital transformation, right? Exactly, yeah. So HR is a great example. They used to have paper flying around with leave requests, with sickness requests, with all of those kind of issues. And we've said, well, if you have an issue with your HR system, you can't raise a leave request or you can't raise a sickness request, tell us, we will take care of it, we will fix it for you, we'll give you the instructions and we will get rid of all of that paper. That's brilliant. Just sort of turning the attention and all of that, how do you drive the sort of, we'll talk about the autonomous enterprise, how do you drive automation in that process? Yeah, we, of course, we have to map all of those processes out, because we're not the experts in HR or procurement or whatever the business area may be, we have to really dig into their work methods, their working areas, what is necessary for them, what is a must have, what is a like to have, what is we don't really need. So we really drive into their processes. Once we've got those, we will automate them, we will build them out in assist with the process designer, it's very intuitive now, the latest version is really good to work with, we will do some pretty clever stuff in there, we'll say, okay, if the manager approval is, the manager is not there, then escalate it to the next person. Then we go to HR and say, okay, if HR have taken two days to do this, we're not particularly okay with that, so we will escalate it to the next person and all of that process is completely automated, completely in assist. Brilliant, I mean, obviously we have a codeless workflow engine with a designer and if you look at one of the trends from post COVID is a war on talent in particular developers, the IDC says there's going to be around four million shortage of developers. What is your view on how easy, do I need developers, is it easy, is it difficult to do these workflow extensions and automations? Definitely not, no, so the two key areas that you mentioned that was the customizer to develop the forms, to make them available to our end users. Drag and drop, really easy to do. You can put some nice filters in there, you can put some nice variables in there, you can drive the forms from there as well, so if option A is correct, then don't show me option B, show me option C and all of that is codeless, entirely codeless, I don't need to type any code. And when we move on to a process designer, that hooks in nicely with the form customizer because we can say, okay, if option B on that form is selected, then runs this process. And all of that process is entirely codeless as well, drag and drop, creates some tasks, creates some decisions. Fantastic, brilliant, sounds really good. Switching gears a little bit, you spoke about experience and that's also obviously very topical post while COVID becoming a remote workforce, clearly we need to be digitally connected to our business and organization because the hybrid workforce as we all know is here to stay. And that employee experience is fundamental because it is their sort of channel to the engagement of the organization. Of course that has retention impacts and productivity impact. So just from your perspective, how was COVID from your perspective and how easy or difficult was it to get your employees engaged and productive and working? Yeah, and for us, it's a double-edged sword COVID because of the nature of our business, we do COVID stuff, we do drug stuff, so we may have issues with some trials that are related to that, so we need to escalate those, we need to be aware of them and move them to the top of the chain as soon as possible and then assist becomes a source of truth. Everybody knows that if I've got an issue with the current environment that we're living in, I can raise it and assist and everybody knows that's where that information is. There's no need to sell huge conference calls or huge email chains to try and follow those around. So with our assist platform, with our employees as well, everybody knew that this is where the source of truth was. We didn't have any dropouts, we didn't have any concerns with our system or performance. We knew it was there, we had to do some work, like as I say, around COVID issues just to make sure they get pushed up to the top of the chain, but otherwise we were fine. And great credit to our IT operations team as well who managed that pretty much seamlessly. That's brilliant, it's good news, it really is. Just taking it a bit further and talking a little bit about what next, my team has been, I know, talking to your team about the whole area of asset management. Maybe talk to us a little bit about that journey. Sure, sure, so we're an ITOM customer as well, so all of our hardware data is stored within the ITOM platform. So we've pushed out the agents to all of our end-user machines, so 25,000 agents, and we're in the process of integrating that into our assist platform to make that the single source of truth. And as part of that, we're working on the software asset management side as well, so we've got a really good idea of where our software assets are. It comes to what license-order thing, we know exactly how much we've got there, and the more complex side of it is, of course, server software management as well, so we're in the process of getting all of that data as well. So once we've done all that, there is always the next step. The next step will be to perhaps do monitoring or pushing out software using the ITOM platform and getting rid of some of the disparate systems that we have right now. Well, that's good news, and I think I saw a study, I think every single person as an employee carries around 15 or 20 assets with him at any one time, be it from a PC, a phone, physical software licenses, so on and so forth, so just in that context, I can imagine the business case around us. Definitely, yeah, and every, again, we map every user to their assets in a vertical amount of their assets, and again, assist is a source of truth for that, so if you want to look at my record, say, all right, Palm's got a laptop, he's got a mobile phone, we're thinking about giving him a tablet, but we'll find out that he's in the process of getting a tablet as well, so I can have a look at my user record and know exactly what I've got with all of the asset tags and the various links that it has to the software pieces, so it becomes a big tree of my assets. That's wonderful. Just a question I had was, we spoke about breaking down silos and the enterprise use cases and the effect that has. Do you envisage that assist can really get to being enterprise-wide, and when I say enterprise-wide, everybody in the organization, effectively, using this tool as their source of experience and level of automation of process? Definitely, as I say, we're getting, we're really pushing to get to that, as I say, 4,000 tickets a day with a user base of 25,000, kind of means that everybody will interact with the system perhaps every two weeks or so, so we're getting to that point and with the new functionality that's coming out with the assist product, with the teams integration and the bot and everything that will bring to us because we are a big, we use teams, we use bots, we use that kind of technology, it will just fit in seamlessly and trying to break down the silos, as I say, finance, procurement, all of the big beasts within our company already are using the assist tool and we want to bring in more and more of their processes as we mature. Brilliant, I think OmniChannel's critical, we want to connect from any device from anywhere, it's just the way we work, so I think that's critical, Teams is of course a tool that most of us have become too familiar with, to be fair, it's better to be here in person finally, right? So I think that's all exciting news and it's really fantastic. So I suppose maybe in the time that we have left, what's next? What's next for us is that we're in the process of migrating our solution to the cloud, to the RFS cloud, that will open up a huge new user base for us, if we think all of our customers, all of our people who work on studies will have the ability to connect to assist and ask questions, that's a lot of it, is just ask a question or raise an issue or ask for something. So we're talking, it could be expand by hundreds of thousands of new users, that will mean more people on the back end to manage those requests as well, so yeah, it's just going to get bigger and bigger and as you say with the CMDB work that we're doing as well, that's another big ongoing stream for us. It's great because as you know with assist, we have a disruptive licensing model, so we have a t-shirt, it's ours pricing, all you can eat based on number of employees, so there's no barriers to entry for you. There really is, and that really helps us because, so initially particularly when finance came on board and now they're expanding, there is no cost implication for it, the more that we use it, the better it is for us, the more bang for buck that we get. Yep, that's our mantra, enterprise users right for the price of a cup of coffee for the price of a user. That's our mantra. I love it. You guys have done such a great job of articulating the synergies in the relationship that IFS Assist has with Paraxel. You talked about the great outcomes that you're achieving and it's all about, Martin, I know from IFS Assist's perspective, it's all about helping customers achieve those outcomes and those moments of service that are so critical to your customers on the other end, staying with you, doing more business, whether it's the end user customer, whether it's the actual employee. You talked a lot about the customer experience, the employee experience, what you guys are doing together to enable that and I always think that the employee experience and the customer experience are like this, they're inexplicably linked, you can't, you shouldn't, otherwise you're going to have problems. Yeah, no, absolutely. And you know, there's actually a study on that saying that 70% of customers generally don't feel they get what they want from organizations. 70, wow. And if you take that one step further, that's what you said, the interconnectivity between customer and employee, employee shops on Amazon, right? It's on those websites. So you can't be rolling out and digitally connect to the employee with something that is clunky and has the wrong experience. Like I said, it really affects that level of engagement the employee has with the company, which happens to be largely these days remote. It does. Last question, Martin, is for you. Talk to us about what's next for IFS Assist. Obviously we're back in person, there's a lot of momentum at the company. I was talking with Darren, the growth in first half was great. He kind of gave us some teasers about second half, but what's next from your perspective? Yeah, I mean, look, so what's next for us is achieving our goal. We're here to disrupt the industry. It's an industry that's dominated by one player and a fair amount of legacy players. We've disrupted the business model, as I've told you. And we're here to do more, because it's a simple thing. And that's the word simple. We want to keep things simple. We're going to keep engineering and driving our product forward, right? We've made sure that our platform is up there with the best. We've just been certified by Pink. Pink is a verification of ITAL4, they call it. So it's a body. And the top level is you can get 20 out of 20. We got 17 out of 20. There's only one other vendor that has more than us. And it's only by a little. And after that, it's a big white space. The next one is 14. So we're on the right track. We are going to, of course, drive and capture the market. So watch this space. We're here to grow. We will watch this space. Congratulations on being that disruptor. Perminder, great work with what you guys are doing. You did a great job of articulating, as I said, the customer story here. We appreciate your insights, your time. Thank you very much. All right, my pleasure. For my guests, I'm Lisa Martin. You're watching theCUBE live from Miami on the show floor of IFS Unleashed. We'll be back after a short break.


open source is not a business model and that when they build the business around the open source they need to very clearly define the business strategy around that. So having a very successful and virally spreading open source is fine but where is your value? Hi, this is your host Soplin Bhartiya and welcome to you for Let's Talk and today we have with us Otan Horowitz, principal developer advocate at LOX.io. Otan is great to have you back on the show. Thank you so great to be here. Yeah and today's topic is around open source and as the theme was suggested open source is more than a license which is totally appropriate for today's discussion and I think one of the reasons we I mean I remember my early day of the journalism I started as an open source journalist and I met all these luminaries back in 2005 Jim Zumbla and Marshall and it was a new word to me back then our idea was you know why companies should open use open source what are the benefits look at 15-20 years most of the companies are not using open source the word runs on open source but it feels that companies don't even know why they open they use open source how they can become good open source to even at the same time as the business has grown we have seen a disturbing trend where companies start with the open source license and then when it gains momentum they change the license which becomes incompatible I remember early days we used to worry about hey is this license compatible with you know GPL v2 or not and now it doesn't matter it's a very very difficult word lines between you know what is open source and what is not open source you know lm2 and all those things it becoming very very difficult so I want to just hear from you to just give us a broader high labor overview what you are seeing in the market industry communities today where you're seeing the lines you know between open source proprietary or open core are getting blurred yeah so we see that definitely we've seen that in the past couple of years for sure and more so even lately probably all of your audience has been aware of the terraform re-licensing for example and other projects in the in the HashiCorp family so and we've seen that in the past as well we all remember probably MongoDB and Elastic and Confluent and others so as you said you can worry a lot about licensing which most of the people do but then the licensing can actually change so you can find the licensing that they appropriate for you and then one day find out that the licensing of the project has changed that's one of the things we can see other things in the in the industry that are peripheral that are not just the re-licensing itself we can talk about things such as for example if you look at the repository where you keep the your own assets like the registry so the terms of service of a registry can also be a significant change if you think about the terraform registry in the example that I mentioned before think about other registries as long as it's open you can use it that's one thing but if the terms of service change again a major change or we can look at about the red hats change on the CentOS or more more so the rail the enterprise and the way that it's not a change of license just a change of the way that the the code is being released and what comes before what and how CentOS is or is not compatible with rail and and so on so these sorts of of changes makes it more blurry whereas before you knew this is open source now you have also source available or foxpen source license and you have all sorts of other flavors that are open core obviously like like redis model and others so it's a more complex world these days as you said if you just forget about all of that and let's not look at the definition of open source of free software by fsf of our OSI what is the goal of open source what is the basic idea of open source so I think this is the core questions because people get really confused especially these days and so source available is that open source is not not open source because people say open source so open meaning that the open source is source code is open and I can access it but that's actually not a open source that's source available or foxpen source license so the term actually is free and open source software false as you probably well know from your experience but the free part is very important because what is free in free and open source so as we said it's not free access to the to the source code because you have you have the source available for that it's also not free of charge people think about the cost no you have community additions for many of the proprietary products as well so the free I think it comes to the essence of the freedom to use to modify to redistribute the software for any purpose without restrictions or discrimination and that's that's the really differentiation of open source from all the other alternatives we mentioned how much do you see people understand what open sources are you are like they do consume a lot of open source there's a difference in the open source user and those pencils consumer consumer is a one-way traffic user is a two-way traffic so how how much awareness or education you think that this is there or we are going back to 2005 where you have started educating people hey you know what is open source and why should do it right I find myself very surprisingly going back to the basics of what is open source what is free and open source software in many discussions in many forums and yes the question becomes comes back again but in a different form because there are so many variants and so many things that are similar but not exactly that that are challenging by the way even the professionals you look at the OSI the open source initiatives struggling to find its position you look at the the CNCF the cloud native computing foundation needing to issue responses to a grafana labs relicensing or to to uh to elastic search relicensing and others because it's so heavily used by the way by other open source projects so the impact of these moves is not just commercial impact and a business risk for companies it's also a risk and an issue for other open source projects within the open source community itself I think if I'm a project and I'm an Apache to a licensed project and I use another tool or another dependency or library and that library suddenly changes from Apache 2.0 to a non open source license that's a no no I can't carry on using it and even if it changed to another open source license that is not enabled so for example the CNCF does not permit using AGPL version 3 so when grafana tool changed from Apache 2.0 to AGPL version 3 that was an issue to many many projects utilizing that project so this is a main concern both for the open source community and for businesses where it's an actual business risk let's look at the role of some of the organizations you know CNCF which is part of Linux Foundation of course OSI is also there uh how much they can do or what role they can play in addressing some of these challenges of course you know open tofu was a great example where you know the whole user community came together uh to kind of find a way around the license change by Hashikar for Terraform so there are a lot of things going on but in general what are you seeing there what will these organizations can play yeah open tofu was an amazing example I I scored the fork of elastic search into open search that took like six months to reach the first version the GA and with with open tofu it was so fast and I I've been in touch with the founding members I even had a them on my show to expose to provide more exposure to this initiative and get more people on board and that's amazing and closing the loop also with the Linux Foundation and making sure that this is being adopted by the Linux Foundation as a as a its own project so really a great example that I'm curious to see how it evolves but a very good start now foundations for those who don't we're not familiar this this is a different creature so both from vendors and also from single maintainers that create very cool projects in their basement but still you have the risk of a one-man show or someone you know flipping the the on you one day and you don't have the project with the foundations it reduces a lot of that risk thanks to the fact that you have the project is actually owned by the foundation a vendor neutral foundation is the legal entity owning it to not any of the vendors no matter how heavily involved they are within the project so that's about the legal side of who can actually decide to change the license and secondly it's about diversity you have a vendor neutral ground and you have very clear governance behind around the project to make sure that there's no single entity that will grab control and there are very clear governance that will balance out all sorts of potentially conflicting interests and making very transparent who can become a committer who can become a maintainer who can become an approver of of PRs and so on and so forth so a very clear process so I think this is the main value of foundations with regard to these risks and above that there is also other additional benefits such as encouraging collaboration between the different open source projects underneath under the same umbrella of the same foundation the cross pollination between the projects and between the maintainers that are actually part of one forum one slack workspace if you want if you look at the cncf's massive slack workspace for example so it's a really powerful way to reduce the risk I'm not saying it's it's a full proof bullet proof but definitely reduces the risk tremendously now the next question I'm going to ask is a very tricky question and it could be sensitive as well is that if you look we have been talking about FSF and OSI and if you look at some of the most popular licenses that predict and whether it's gonna gpl v2 v3 agpl or you know a lot of other OSI approved licenses they were written in the age when we used to write and distribute software we will download it we'll run on our own machines where the whole point was that if you are redistributing with many changes I want to see the changes back when I talk to Linus he was like you know I only thing I care about is if you have made any changes that improves my code I want that change back so I can further improve it and that is also the idea behind it but the challenge in the cloud centric or sass word is that nothing is being distributed everything is running on my own server you are just a second service from my own server so I'm not even compelled or bound by the license so actually I'm not violating any of those licenses of course agpl can be challenging but others are not and sometimes we hear this message you know what these big cloud vendors are you know using our services so we cannot compete with them and that's why we are changing license restricting their usage which goes against the whole idea of open source that we talked about I had this discussion with Stefan also at open source summit from OSI about the license change that do we need instead of these companies keep coming up with their own licenses which are obviously not OSI approved and not compatible with other licenses should we come up with a license which is more suitable in the cloud word so do you think that we need to come up with a license which is more suited for the modern word so licensing is a very subtle thing and to be honest I'm not a lawyer I'm an engineer so I don't know if I'm the most qualified especially if you had the chat with Stefan or the executive director of the OSI but what I can tell you that there is a very large range of open source licenses within the OSI including you mentioned agpl so agpl does have a section that discusses about accessing the software via the internet via networking which is exactly the use case so definitely I think there's a lot of room to maneuver within the OSI and maybe there's room to fine tune that but I think the core issue here is not about the licensing I think the core issue is that these founders that are so excited about open source and they realize open source is the go-to way and they start from day zero many of them around open source and they get the viral effect and everyone using the open source but they don't realize that open source is not a business model and that when they build the business around the open source they need to very clearly define the business strategy around that so having a very successful and virally spreading open source is fine but where is your value is your value around the general providing services around the open source is that value around creating a commercial product an enterprise level one a hosted version of the open source or many other ways so it is very clear and this is something that I find myself day in and day out talking to young founders starting new ventures that they need to pay extra attention to setting the business model for their company and making sure that the open source provides its own differentiated value okay it has to stand on its own right it can be that if you use just a one and a half or three nodes and suddenly you need to start paying or something like that if if you castrate so to speak the the open source developers will immediately go away and look for alternatives it needs to provide value on its own right as an open source and then in addition you may make sure that you have your unique value proposition on top of that very clearly distinguished from the open source actually the most of the projects out there on github are actually single individuals and just not to sound like I only talk about vendors and vendors are evil no vendors are not evil I work for vendors as well and and everything is fine and also these passionate individuals that compose their own open source in the basement I tell them by the way the same advice if you decide to open source your project don't expect material compensation out of that you have lots of ways to to earn your your box from from code development from software from these things but if you go down the open source path don't expect that material compensation and we've seen issues with single maintainers that realized at some point that it's such a heavy burden and on the other hand they haven't seen any income from the open source and they started getting frustrated because all the fortune 500s are using I don't know look at the log for shell the vulnerability that just showed what extent the log for j2 is being used and it's two maintainers around that project so for individuals are saying the same don't expect material compensation with your project if you decided to go for the open source path realize that and either accept that or you can find a lot of work again by the way including for pay developers in open source some companies pay open source developers to work for them it's fine but or go down the path of setting up a vendor entity around that like the around the around Kafka the folks from what's their name I forgot their name that started the start up around the Kafka anyway so lots of examples there around the m3 and many other the ex uber guys and many others that started their own company around the open source that the company spun off but but don't be confused you need to determine whether you want to start an open source or if you want to go down the the money earning path two different things if you look at the general trends that are going on in the industry do you see that the trend is becoming really disturbing whether we look at the whole miscommunication around redhead and centOS or hashik or business source license and before that a lot of other things happened in past where you're like hey this is a disturbing trend or you think hey you know these things always happen in past if you look at the whole sql sql and all those you know the whole lawsuits and everything else happened the whole you know samsung versus apple happened microsoft was nt linux but now they have become actually i was joking that actually window is the biggest distribution of linux these days with wsl2 you know uh the desktop linux joke is here windows is the linux desktop today uh so so the point is that you feel that no these are minor events they will keep happening they have been keep happening in past we should not worry about it and focus on helping those individuals or companies who do want to build an open source ecosystem or you're like no those disturbing trends are going to help affect the larger open source ecosystem i'm not worried to be honest i think it's an evolution i think maybe uh we're maturing up as a community and as an industry so maybe before there was more of a romantic view of open source and more a binary way of saying you're either open source or proprietary and today's world is more complex and you have more shades and more flavors around uh but i think it's ultimately maturing up as a community and there's an industry so as i said we need to realize we need to face the fact especially in the industry that is venture back to a large extent and you have the the financial pressure to deliver financial results which are always short-term whereas community is the longer term play obviously so we need to balance out the community and the business incentives i don't expect it to change these pressures and these conflicts will carry on being and the different startups and businesses will need to balance them out i think as an industry we need to as i said realize better how we build out sustainable business models around open source and maybe make licensing options more elaborate to accommodate different models and having these foundations stronger and more of the larger vendors taking part i think that if you look at microsoft's transition to microsoft is to open source is an amazing example i think aws has been doing tremendous strides if i look at the open search and others compared to what they used to do before that so i think the realization also from the large companies that they need to pitch in and to also contribute back will balance out a more stable way of handling open source as an industry what advice do you have for you know organized students developer team engineering teams you know let's go back to the example of terraform who were heavily relying on some of these technologies suddenly the business sorry the license was changed which makes it difficult for them to continue to to use or work with that project so how how they should evaluate a project at the earliest phase that hey this is a project that we can rely and build a company around which will be around for 10 20 years that is first part of the question second part is that if they do end up choosing a project or a product that is in a dicey situation and the license change happened how they should deal with that so there are two four two part questions yeah so first of all if you need to choose a tool we all know to look at the licensing i think that you don't need me to explain find the license that is most permissive and the suitable for for your business needs but don't finish with just end with just the licensing go beyond that and try and understand who's behind the open source is that a one-man show as I said an aficionado there in the in the garage it's a it's a it's a single point of failure is that a vendor maybe the vendor can you know suddenly get you pulled a rug from underneath your feet so if it's foundational as we said you get more guarantees so these who's behind the open source is very important also what's the governance policy around it to understand who can who can be a committer can if i'm a competitor can i become a committer if i'm passionate about this open source but i'm a competitor of your vendor company or not will you block me will you block my commits will you block me from advancing up the ladder if i'm active and so on and so forth so and ultimately who can obviously relicence and this is for for look at the whole picture not just the licensing that's what i say and when you get to actually use it also use it with the relevant mindset so just like you treat you have the security mindset with with software saying with licensing managed your third party licensing exposure with the same care as you do for for security do s bombs to analyze what kind of dependent licensing you have down the stream with dependencies and others make sure that you don't have license contamination within your code and also when you use these dependencies do treat it with care we i'm an engineer we all like automation for example but treat be careful with using automation on your cicd pipelines and upgrading these versions of the of the third parties without putting safeguards and places where you check the licensing issue if you suddenly the license changes and you automatically upgrade you may find yourself in a lot of trouble so with all due respect to automation definitely take care of that and if you do find yourself needing to extend the functionality of the open source do try and do that not by modifying the core code which is the first thing that is gets blocked by relicensing but try to do it in a plug away with by extensions plugins and so on which is usually a more relaxed way of doing that and is less exposed to to the relicensing change who can be hit really hard if such a license change happens talk a bit about what kind of industries those will be and what can they do to avoid any potential fallout from license changes on the project that rely on obviously this license change can be a legally a very serious exposure to the organizations using that dependency or that library or that tool and for these organizations like financial services banks government or things like that that want to just like any other businesses to mitigate the risk and are willing to to put some maybe bucks on that but still want to work with the open source they like the open source then my recommendation they can just go with distros they can go with distros are like packaging of the upstream open source that are provided by vendors and they come with obviously the identification so the vendor that provides a distro will take the heat in case of such a thing and will be legally the owner of that and that's one way and obviously it comes with additional benefits they provide a support they provide certifications to run on specific hardware setups so you get more well rounded version of the the upstream open source that's for on-prem if you if it's a cloud-based and obviously you have SAS versions of the of the open source such as log zio that provides Jaeger or open search or others as a managed service so again you get that as as a service and you are not directly exposed to any relicensing and someone mitigates it for you in the in the cloud realm and on that way when you also purchase these distros or these services usually you also help fund the open source because these are also ultimately the force that they invest and and are part of moving the open source forward so I'd say it's also pay forward in a way instead of payback pay forward thank you so much for taking time out and kind of discussed this very complicated and sensitive topic in a very pragmatic manner thanks for all those insights thanks for great advice to companies as well there and I would love to chat with you again thank you thank you and may the open source be with you as I say


But I would like to just first give a brief about the problem that we generally face. It's a general trend nowadays that we want to create a single page application. But the problem is how to do it. There are frameworks, there are lots of frameworks available, but none of them really came up with the exact same solution what we have in the older version with JSP and ASP pages. So what ARIA came up with the templating engine, which allow us to give exactly the same conditions. The conditions that we are very used to in JSP or in the ASP pages. So I will just show you how we can create an ARIA template application, a single hello world program and I will just list out the basic component that we require. So to set up an ARIA page application, what we need to do is first of all we need to download the ARIA template package. There is something called a pay engine which ARIA template provides using pay engine we can configure our templates, what template we want to use, what template we want to load for particular configuration, what are the URLs we want to give, all user friendly URLs. So I will just run to the code how we are basically setting up. So in the creating ARIA template application, this is what our single page looks like. We will have a general structure, we will define what are the resources you want to load. The basic thing that we want to do is we have to load the ARIA template package. So that is the first one that you can see there are ARIA templates, we will give the version name and this is the core of our application. So what we basically want to do is we will like to initialize our pay engine and the pay engine will then internally take care of loading the templating. The each template in a pay engine represents a section of HTML which we can configure using pay engine configuration file which is similar to this where I have defined what template I want to load for a particular page. So let's say in this case my page is home, for home I have said there is a main layout which is nothing just a container where I will define what are the different template that I can configure. So if you just see main page, I have defined one container and using the configuration I have defined that in that particular container I want to load a different template that is main page and in the main page template I have just given a single line hello world which is right now just a HTML. If you want to configure further for creating more complex HTML we can use the dip tags, the articles, sections, all the HTML file specifications. In addition it provides us the power of conditional statements. So like we have Mustache or JS also available with us which also gives the same template concept but in Mustache we can't use if conditions for each loops or maybe other clauses that are available but in this in area template we have all the freedom. We can use all the conditions, we can iterate over a list, we can parse the JSON, we can do JavaScript operations, everything can be handled directly inside here. So if you see our basic setup I will just show you the basic folder structure that we require to run an application, this is a folder structure. I would have the area package structure. I would have a folder with modules where all my templates and other files are available and inside modules I will just list down the basic, I should, I closed it. What happened? It closed? Sorry, it closed. Yeah. So inside modules we have three different sections config pages template, template is where we generally place our templates and these are the configurations. So one more advantage of using this concept is the configuration files based on the channels like we generally want to support adaptive and responsive design. So based on the challenge what we can do is we can have a different set of configuration files available. Here I have shared pages, this may be for one channel I can have a different folder which may contain the configuration for different channel with different sets of templates. So that way we can make our application adaptive and just to run the application, so this is what we created last time, a single page application with a single hello world text and this is what we will show. So that's it from my side.


at least that's right there. Right there. Keep going with it. That one you got. You got to at least get there. That one you got. You got to at least get there. 76.72158. You observed an artillery round impacted 500 meters north of your current position. The round is emitting a large amount of yellow smoke that will leave to be a chemical agent injuring one of your battle buddies. React to a chemical attack and get injured casualty to the decontamination line once you have fully donned your JS list. Decontamination line is that way. We'll show you which way it is. Do you have any questions? No. Gas, gas, gas. Gas, gas, gas. Team two. Team two. Is that good? I mean, we'll see what happens. We're going to say no. You're going to look good. Stop the hill. Come on. Almost done. Come on.


What's going on everybody? Got Kyle and Sean here relating sports car trip in two boxes for Kato H I got a 2023 tops chrome update series baseball and a 2023 tops chrome black baseball Good luck. Mr. Kato. Let's see what we got. We'll start with the update Hey guys just about 30 minutes or so on the cue if anybody wants to get something going You can get it going pretty quickly here. What's the best card I pulled in 2023? Oh, no, Nicholas. That's a tough one. How is the best card I pulled in 2023? Yeah, yeah, I don't know how you're supposed to redeem that. There's no scratch off code or anything You're supposed to have the thing to reach out to them. Yeah, I know but and then I'm sure they're gonna There's no code on it. So we showed everything on the video But the whole thing so like how they gonna send it in You personally probably I don't know that's what I'm saying. I don't know Because there's no code on I don't know how you redeem it without sending it in No, you're good. It was a good question. No, I don't know. It's a perfectly good question I just don't weren't ready for I can't think of the answer right now. Yeah That's a tough one to answer off the top of my head. I can't Yeah, that's what I was saying. There's no code on it Should go sides of it. Maybe you have to Show up with it.  It's got a co-loss for fracter There's a corbin carol future stars rookie Yeah, I'll have to get back to y'all on that one. Uh necklace Say francesco alvarez rookie debut. I might uh look through some pictures later There's a ryan walker number 250 nice gold rookie for the giants got future stars and kevin curemeyer prism There's jordan walker on the future stars Got a our all this chatman and carlos vargas max scherzer spencer strider Leo de tovaras refractor There's another corbin carol this time action stars rookie And auto is going to be yeri de los santos for the pirates rookie base auto there Not numbered on the base on card yeri de los santos Going here. Good luck kato fracter rookie jason delay prism hose siri and a um adley rushman insert rookie Refractor josh young from the all-star game Miguel vargas debut rookie refractor And tommy fam to 299 on the um lava lamp lava lamp prism garret acton rookie francesco alvarez rookie azucar and trevor williams Righty. Good luck here kato One last handful of the update There's jordan walker on the rookie Insert ronald lacunia Dylan mora refractor Action stars debba and jason delay On the rookie Alrighty, that'll do it for the update now. We got a chrome black I don't I don't think so. No, we won't be here on new year's eve. We're working either way No, we're not working new year's eve or christmas eve Or something. I don't know Tristan casas rookie for boston There's a green 299 garret colt Green wave and a corey seager corey sega base Now for the encased Is gonna be a fred lin on the throwback there for the red socks fred lin base auto Throwback for the red socks Alrighty there mr. Kato that will do it for your two boxes one um tops chrome update and one um tops black Thank you, sir. We'll get that right out to you


The cause produces the effects, which then bear witness to the cause and not themselves. Look then beyond effects. It is not here the cause of suffering and sin must lie. And dwell not on the suffering and sin for they are but reflections of their Christ. So that's that statement is a restatement of what Rhonda just had Look then beyond effects because all of the Upsets are about effects. The metaphor always comes in handy is to think of it watching the TV screen and something being sitting upsetting and just going up there with your fingers Like they watched a movie 21 or 2001 where they all these apes and then all later on all these men in spaces We're going up to this like a big bar Big like a big domino. They're going and touching it But it would be like going to the TV screen and just hinkering with your fingers and your fingernails and trying to You know had be as ridiculous as trying to change things by doing that as it is Yeah, by going around on the text that came to my mind yesterday I don't remember specifically what it was, but I was saying something to kids or what could I just start? What are we doing this for? I'm saying something to try to change something in the movie it's like You know how when you're watching a movie and you think you say something that Somebody in the movie will hear you talking to the screen I'm talking to the characters in the movie and I really think they're gonna hear me and do something And it just seems kind of funny to me You play in salvaging the world from condemnation is your own escape Forget not that the witness to the world of evil cannot speak except for what has seen a need For evil in the world belief in the mind the reason separation is What has seen a need for evil in the world? That's what has to be questioned and This is where your guilt was first to be held which is in the mind in Separation from your brother was the first attack upon yourself begun and it is this the world bears witness to Seek not another cause nor look among the mighty legions of his witnesses or it's undoing We had a discussion this morning about how it seems as if everyone's looking for models or for people that Are enlightened in the world one of the things that came up was That there doesn't seem to be a whole lot of models You can look in many many directions Go in many different places read in many different books, but that's a good Sentencing not another cause nor look among the mighty legions of his witnesses for it's undoing Don't be looking Out in the world even to other people You know to find a witness for it's undoing You have to look at the cause the false cause in your mind is produced the world And then by looking at that cause then you can see that it's not really a cause at all Unreal cause and once you see that as we go on we'll see then you can see that you're the dreamer of the dream and then You know when you give a new purpose to the world Everything and everyone is seen as a witness to that Stepping some to that seems to be that there seems to be some things that are more symbolic than other things of Love seems more symbolic than a strangling smile seems more symbolic than The day you're in the back We're symbolic of love And Even as we were talking this morning session You know having sessions is going into things can seem more symbolic than Changing the oil in the car or Taking a walk or this or that but the point we're trying to come to in the sessions and also it's like The sessions are a simple symbol of it, but it's like watching your mind and just coming tracing in to see that That that cause that seem to produce the whole world that the body's eyes behold It's a false cause and seeing that everything is unreal in the world the stepping stone towards it is you know, you may seem to See the words hear the ideas hear them in songs see things in movies that are symbolic of everything that's like it that's a stepping stone to coming to Really see that there's nothing in the world is meaningful It's kind of like with movies. You can watch movies and you can say Example with being there it sounds the gardener to me is a symbol of innocence And so once again, it's assumed that here's this movie and here's this character in this movie and the character in this movie Is a symbol of innocence? childlike innocence And That that's still pulling it apart because we're other times people will watch a movie and they'll say I could really identify with that character in the movie and That's characters representing something to oneself And then there's another way of watching a movie and stepping back a little further and just Watching your feelings and your thoughts and your reactions So you're not looking you're not saying that That don't wear a character or that chancee gardener character or whatever is But just noticing in your mind the thoughts and the the the reactions the feelings and everything and Looking at the police system So that's like one step back from trying to find something symbolic on the screen Just look in your mind Try to find something in there And you have to start somewhere. I mean that's the feeling is that feeling of like oh my gosh, it's like a tidal wave You know, it's like you're there with a bucket or something or something trying to hold back a tidal wave It just seems can feel useless at times, but That's what you can only start was where you proceed yourself to be and even if you if you Have a number of thoughts just seem to seem to keep coming back and the mind just seems to be just calling them Then it might be good just to pick one Particular theme or one particular thought that keeps coming back and Start to just work with it to trace it in a little bit a lot of times. They're all related You know, I mean they might be future thoughts. There could be a million different things in the future, but It could be oh You know projecting into the future, you know, I mean sometimes they kind of all go into a category And then it doesn't seem so overwhelming if I could say oh I'm just thinking about the future only Never mind that All these different variations on that theme Then it seems more That I didn't get a handle on it Or do something with it because otherwise when it just seems scattered all over everywhere That is that is going to take me forever to do this and That is of course, that's the egos use of time if it it thoroughly approves of that. Yes And Again the Holy Spirit emphasizes the only aspect of time that is meaningful and that is now and we've heard it said so many times about live in the moment and It's like when the mind is in that mode of thinking about the past and future. It just Talk about the present or pay attention right now just can seem a time superficial or Right like one woman Louise when we had our intensive on the Bay. She said she said by the way, I perceive time is this is Just went like this. She said that's the past She said that's Microscope or a magnifying glass to even find it because it's so Squeezed in and so in between these two bad things and And yet that's the that is the point That is the whole point of the course so to speak is the holy instant Mine just seems so convinced in the reality of linear time That it really does even to have a hope of enlightenment. It seems to be there But it just the mind projects it out into the future and it's like Seems like it's going to take forever to do it and Once you know there are those who work with the court that will Emphasize that Aspect even that will say You know the analogy that the Freudian analogy was that like the egos like an iceberg Tip above the surface This is that Thing underneath that hit that's like the unconscious that has to be exposed and There are lines in the course like when you get to the Second to the last stages stage of this stages of development of trust Jesus uses the words, you know this May take a long long time. He uses words like long long time There are those that will emphasize that But if you have it keeps coming back to desire if we really just keep looking closely right at the ego and not falling into those maneuvers that Rhonda was talking about at the beginning which You know if you get caught on all the little snags, and you get caught on all the specifics Then it can seem to take a very very long time And that's where you know to me it's like You know, I have to reach my hand Say help pull me out of this because it can feel like quicksand it can feel like you're getting swallowed up You know when it feels like the thoughts are so overwhelming or the feelings are so overwhelming It's like I don't see any way out of this you know, I feel like I'm going down fast and The more I seem to struggle and fight faster. I think You know, and so that doesn't work, you know It's like and then everything I try doesn't seem to help and and for me a lot of times It's just that symbol of it in whatever way I can to reach out my hand and say I need help You know to pray to literally ask for help To do whatever it takes, but that's again the willingness to say, you know I don't want to go down to quicksand. I want to and you know I I can remember going to a lecture years ago When somebody did the diagram of the iceberg and they had only you know, very tip of it And then you know, it was like oh every time I uncover a hidden belief. It's like this little teeny-tiny chip out of a huge iceberg Pointless Well, it's not it's not really accurate. It's not helpful. It's not helpful. We're seeing it because it just it looks like I'm here. I am with a little You know hammer and pick and This boulders big as this house You know, and it's you know, my hammers this thing And trying to chip it away piece by piece and it just seems like For the beaches analogy it's like going along the long be picking up every single Another You got to be done. You got your turn to do it