All right, we're going to get started. Can you all hear me OK? Sweet. OK, welcome to the inaugural core project update for the Cloud Foundry Services API team. And we put Anos Bapion here because we do a lot of work with the Open Service Broker API community. So I thought I'd give a quick overview as well of how that project's going. So the most exciting bit of the talk. Hopefully, we've all seen this a number of times now. So I'm not going to read it out, but exit so that way. OK. Cool, to start with, let's do some introductions. So I'm Matt McNeany. I'm the PM of the new Cloud Foundry Services API team. I work at Pivotal in London. And I'm also a co-chair of the Open Service Broker API specification. And my name is Jen Spinney. I work for SUSE. I'm an engineer on the CF Services API team. And I work out of Germany. All right, so a quick agenda today. So firstly, Jen's going to take us through what is the Cloud Foundry Services API team. What are we trying to do? And an update on that project and what we're working on. I'll then take you through the Open Service Broker API project update. And then we've got a couple of live demos to finish off with. So over to you, Jen. Great. So we're going to start off by talking about the responsibilities of the services API team. We have two main hats that we wear. The first one is to improve and maintain the user experience of services inside Cloud Foundry. So that includes making changes to the Cloud Controller, the CLI, wherever we need to make changes to make services work really well inside Cloud Foundry. Our other hat is to represent the Cloud Foundry community inside OSBAPI, the Open Service Broker API. So when the Open Service Broker API comes out with a new feature in the spec, it's our job to implement that in Cloud Controller, CLI, wherever it needs to be implemented. We also work a lot with the OSBAPI community to give them feedback on what features we think need to make it into the spec. This is what we look like. Oh, our flags didn't show up. We had little cute flags, but now they're showing up as letters instead. On the top left, you can see Matt, he's our PM. The rest of us are engineers. We work out of a variety of countries, and we work for several different companies, as you can see. So remote friendliness is a top, top priority for us, as you can see, because we're so distributed. We all work out of Europe, but we work out of three different time zones in Europe. So we're always looking for new ways to improve our remote pair programming ability and making sure everyone feels like they're an equal member of the team. And we're always trying to improve that, and I think we do a pretty good job, but there's always room for improvement. We also have to coordinate a lot with teams on the West Coast of North America, so that involves a lot of asynchronous communication using tracker and Slack and stuff like that, so we really have to be good with those skills as well, and we're really kind of trying to learn how we can be an awesome remote team while still doing pair programming. So we're a relatively new team, but we've already done some cool features. First of all, we improved the developer experience for configuring services, so previously you could specify custom configuration parameters when you create a service instance or bind to a service instance. You could say, for example, I want this much memory or I want this to be this kind of special service, but it's all defined by the service broker author themselves, and you had to just like communicate with that service broker author or read documentation for that service to figure out what parameters are tweakable and what the valid values are and stuff like that. So we added JSON schema support to this so that it was machine discoverable what the parameters you can configure are and what the valid values are and stuff like that. We also added the ability to share service instances across spaces and orgs inside Cloud Foundry, and Matt's gonna do a little demo of that at the end of this talk. Also on the configuring services point, we also added the ability to retrieve the current value you have for those configuration parameters, so previously you could set this knob all the way up to 10, but then if you come back the next day, you're like, what did I set that to? You wouldn't necessarily know, so we've added the ability to retrieve what you set. And we're also working with service authors to increase the ecosystem of what services are available. Specifically, we're working to create a new proxy broker for talking with the new Google hosted service broker to get access to all of Google's awesome services from Cloud Foundry. And we have a lot upcoming as well. So one of the things we wanna do is start talking OAuth between the Cloud Controller and service brokers. Right now that's all basic OAuth, but we'd really like to improve that. We want to add the ability for people to trigger service specific actions, so a service broker could say for this particular service instance, you have the ability to pause the service instance, or you have the ability to do a backup and restore on the service instance. And that's defined by the service broker. And we wanna expose that then eventually to users via the CFCLI. So from the CLI, you could say, hey, my service, it exposes the pause action, so I'm gonna invoke pause. And those actions are valid either on service instances or also across the entire service broker. So we're working closely with the Oz Bappy Group to implement that functionality. And we also wanna work on increasing the flexibility of service plan and service visibility across. So right now, if you have like a service broker, it can be visible from a specific space, and that's a space scoped broker, and then the services and plans are visible just from that space. Or you can have it globally, and we wanna tweak that a little bit so you can have more finer grain control of exactly where that plan and service is actually available. Matt. Sweet, thanks, Jen. Okay, so if you're already familiar with the open service broker API project, then bear with me for two minutes. Well, I could give a high level overview. So the open service broker API project was designed to allow software vendors and SaaS providers a single way to deliver their services, things like databases, config service, messaging queues, to applications and containers running on any, what we're calling cloud native platforms. This did start out as a cloud foundry API called a service broker API, but late in 2016, still under the guidance of the cloud foundry foundation, this was moved into a kind of an open source project where we have collaborations from a whole lot of companies, as we can see on this slide. So these companies, they're not only at the building platforms like CF and Kubernetes, both kind of like locally installable versions of those platforms and hosted versions, but they're also building service brokers. So we, as Jen mentioned, we have like the Google hosted service broker as your has a whole lot of services available. And by providing this like single spec, we can get those services available to developers in any platform. A lot of this is focused around the self service model. So, you know, your admins can basically say, yeah, okay, I've signed up for this account. I can get this service visible to my app developers and then developers can kind of be pretty automated, right? And they can run free and provision what they need, be it a Spanner or a MySQL, whatever they want to use. So it's multi-platform and multi-cloud. What that means is that the service broker API has like, it's completely infrastructure agnostic.  It could be CF, Kubernetes, hopefully many more in the future will support the platform side of the spec. Likewise, the service broker could be running anywhere. So we have hosted ones. You could install something locally, spin it up in a Docker file, whatever it needs to be. The service broker is responsible for a very kind of basic set of life cycle commands. So API calls. So it's a very simple spec. So those things are like provision instance, create a binding, which typically looks like, give me a set of credentials to access a service instance. And then there's also unbind, delete, and the cast log endpoint, which is how you say, hey broker, what do you expose? Now that could be a number of services or just one. And each service is made up of a number of plans. So typically we see things like t-shirt sizes, so small, medium, large, but things like databases, but they could be anything and they can even be configurable in a large number of cases. So as I said, service broker implement this basic API. There's a lot of libraries out there, which if you have an existing service or application that you want to expose, I think the winning demo app from this last CF summit was an app that basically allowed you to put a service broker API in front of any application, which is pretty cool. And then platforms like CF and Kubernetes today can ask the broker these set of really simple questions. As I said before, a binding usually consists of, you get some JSON object which contains an IP address or a URL username and a password. But likewise it could also be, in CF at least, you can kind of have a service instance which intercepts traffic going to an application. So that can do things like authorization or authentication or kind of modifying headers. You can also have a volume out in CF as well so you can mount a volume inside your application. So the Ozbapi group met up last week and made representatives from pretty much all of those companies and there was about 20 of us. Version 214 of the spec is coming very soon. That has the get end points for fetching a service instance and a service binding. That allows the feature that Jen mentioned earlier where you can kind of go back later and see what you can figure your service instance. Did you set that knob to 10? And also async bindings. So because the service broker spec provides this kind of very high level obstruction, a service binding doesn't necessarily mean you're generating credentials. Just like creating a service instance doesn't mean you're spinning up a new VM. These things could mean anything. So we saw cases in the wild where some bindings were taking a reasonably long time. Let's say we have to call out to a third party API and do something on their backend. So we added support for async bindings so we can kind of start that process and then just pull that broker and find out when it's finished. The other new features coming soon. Jen mentioned one of them which was instance actions. There's discussions about what V3 would look like sometime in the future. And the other one I think is useful to call out is the schematized responses. So I said kind of bindings are abstract earlier. Sometimes they're an IP, sometimes a URL, sometimes username and password. If we can really well define those and have platforms programmatically understand them, then platforms can do some really awesome things. So things like network automation. So you see an IP address comes back and if you're allowed to talk to that IP, we could kind of have a very fine grain security system where you open up access from one application to that specific IP address. So if you're either working on a platform or a service broker or you have a service and you wanna make some more money from it, then come and get involved with the group. We'd love to hear, especially from service broker authors. There's a weekly call, which if you're based in this time zone is at 12, 30 p.m. on Tuesdays. Likewise, we have a very active Slack channel and Google group, so yeah, come drop in. All right, okay. Now the fun starts. So there's like two parts of this live demo. The first is basically like an introduction to using services in Cloud Foundry and Kubernetes. As we mentioned earlier, our team is responsible for the services UX in Cloud Foundry, but through the open service broker API, we try and provide like a reasonably set of kind of common commands across both. So this will give a demo into kind of what, how we can use a service broker and what that really looks like. The only bit of kind of, here's what I made earlier in this demo is the fact that we've already pushed a service broker. This service broker just runs, has like a dashboard. It doesn't really do anything, as I say, like a provision in this case is just saving a bit of memory in this web app, but this gives us like a little overview of what's being provisioned already. So on the left-hand side, in black, we have a Cloud Foundry environment, which I'll be running, and generally wearing her Kubernetes hat and running the right-hand side of the screen. So this is running live, but because I'm terrible at typing, I can just hit enter and it's gonna type the command for me. But if something goes wrong, you'll believe me. Okay, so to start with in Cloud Foundry, we have this concept of a marketplace. This shows the developer all of the services and plans that they have access to in their environment. If I go and take a look in CF today, we can see I'm looking in my organ space and I have no service offerings found. And similarly in Kubernetes, we can ask for all the cluster service brokers and we have no resources found here as well. Okay, so how do I get access to a resource? Well, in Cloud Foundry, I need to register a service broker. This could be deployed anywhere. It could be on the same, in this case, it's in the same CF that I'm actually registering the service broker in. Likewise, it could be on a VM in GCP or on my Raspberry Pi back home. All I need is a URL and a basic author user name and password to access it. So if I create that service broker, it's gonna go fetch it, check if that catalog endpoint works, and then it's gonna say okay. Because in CF, we have this fine-grained access control mechanism, I now have to enable service access to all the services that broker offers. In this case, I'm gonna enable access across my entire organization, but I could restrict this into a specific org or even a specific space. That's it. In Kubernetes, when we create resources, we usually deal with YAML. So first, we're gonna take a look at this YAML file that represents the broker resource that we wanna create. So here in this YAML file, you can see we have, similarly to what we have on the left, we have the username and password, but here it's hidden behind a secret in Kubernetes. So here we have a reference to a secret that we've already created that has the same password that he's using for Cloud Foundry. And we're pointing to the same URL that we're using on the Cloud Foundry side. So we're using the exact same actual app for the broker in both platforms. Then we can just use kubectl create and create what was in that YAML file. And now we have our broker. All right, so we can check everything worked by taking a look at the marketplace in CF. So you can now see we have our overview broker demo service that offers two plans, simple and complex. Say these could be small, medium, large, whatever the service broker wants to offer, and a kind of a basic user, user-readable description of the service. And similarly in Kubernetes, we can take a look at what service brokers we have now. So we have our new broker and we can take a look at what cluster service classes we have. A service class in Kubernetes is the same thing as a service in Cloud Foundry. So here we have one service class and we can also take a look at what plans we have available. And here we have complex and simple just like we have in Cloud Foundry. So it's worth noting here that there's nothing shown in this dashboard still. We still haven't really interacted with the broker. All we've done is asked it for its catalog, so what services and plans it offers. Everything else we've shown you is like the platform implementation of how you interact with that going forward. So in both NCF and Kube now, we have like a representation of what that broker offers and now we can start to use it. So NCF, first thing we're going to do we're going to provision a new service. So I've got the overview broker demo service. I'm going to use the simple plan and I'm going to call the instance of this service my service. This should happen straight away. This could happen asynchronously but we've set up this broker to do it synchronously. If I now take a look at the list of services I've got registered as we can see here, the last operation is wrapping a bit was create succeeded and you can again see the service and plan that you used to create it. And in Kubernetes, again, most resources are represented in YAML. So we have a description of the service instance that we want to create. Here at the top you can see the kind is service instance and then the name of our service instance is going to be my service. And then we specify what service class we want to use and what service plan we want to use. So we're going to go ahead and create this resource. So it's created and we're going to take a look at what service instances we have. We're going to YAMLify it and take a look. So here you can see if you look in the middle of the page here where it says status, it says type ready. So it was provisioned successfully. Everything worked okay. Okay, so we've now jumped back to overview broker and refresh. The one we should see is we have two instances created. This broker dumps a little bit of kind of contextual information that we got. So we can see this is using Odds Bappi Open Service Broker API version 213. You can see the service and plan names that we used, any config parameters that were passed in. And then a bit of information. As you can see here, there's no bindings right now. We can see which is quite cool, the organ space that it was created in the CF. So let's say this broker wanted to call back into the platform. Let's say it was an app autoscaler in CF and it wanted to go and find an application. It could use this information to know where that app lived. In general, this is in context because we want obviously service brokers to be usable across any platform. But this contextual information just allows some brokers to kind of do some extra kind of cool things, little tricks. Okay, so we have a service instance now in both our CF and CUBE environments. Now we want to get access to that. In CF, often that correlates to CF bind service. What that does is it goes and creates a binding on the broker, gets back a set of usually credentials in an IP address or a URL, and it injects that into the app's environment. To better demonstrate this, and so we don't have to push an app and do that binding, I'm going to create a service key. To the service broker, this looks exactly the same. But what this means is in CF, we get this service key construct. And if I go and look at that, my secret service key for the My Service Instance, then we can see that's what the broker returned to me. So a username and a password, which most brokers always return a kind of unique password for every binding. So we have that kind of fine-grained security control. So the idea of a service key in Cloud Foundry is represented as a service binding in Kubernetes. So a service binding in Kubernetes is actually not a binding between an app and a service instance, it's just a set of credentials just like what a service key is in Cloud Foundry. So again, we're going to take a look at the YAML that we've prepared for this. So this is a service binding, we're going to call the binding My Binding, we're going to reference the service instance called My Service, and we're going to create a secret from this binding called My Secret. So when we create this binding, it's going to go and create a Kubernetes secret called My Secret, and we can then later use that secret in our app or wherever we want to use it. We're going to do the kubectl create, like usual. The service binding is created, then we're going to take a look at what we have for service bindings. So here you can see the service binding was created, it says status true type ready, everything looks fine here in the middle of the page. And similarly, we have created a secret that was automatically generated when we created the service binding, and at the bottom of this list here, you can see My Secret. So then you can reference the secret in your deployment YAML file to use it directly. And again, we can take a look at the details of this secret. So at the top here where you see data, password, and username, that's just base 64 encoded versions of what Matt has on the left side of the screen. So if you decode those, you'll get the exact same values. Awesome, so if I jump back to the broker quickly, you can see now there's a binding represented in each of these. Again, in that binding, it has a unique ID and you can see the actual date that's represented by that binding. And now to clean up, all we need to do is in CF, I'm going to delete that service key first, otherwise I won't be able to delete the instance, because it's still being used. That'll delete it, and then I can go and delete my service. That should delete. And jumping back here, we should now see this kind of this Cloud Foundry service instance should be gone. And similarly in Kubernetes, we also just do some delete commands. So first we delete the service binding that gets deleted. Now we're going to delete the service instance, and that's deleted as well. And it should be gone. And if you look in here, we can actually see like the last request was a delete request to the broker, and the last response was nothing, which means it was successful. Okay, so the second part of the demo, which is a bit shorter, is I quickly want to show you this new bit in Cloud Foundry, which is demonstrating sharing a service instance across orgs and spaces. This was released very recently in I think it's CF deployment a month or so ago. This is a really cool workflow now, because before you had, if you had a message in queue or a config server or a database, basically like development teams had to make sure they were working out of the same space. If they both wanted to share that same service instance, that wasn't great in terms of like isolation. It was kind of imposing our opinion on the way you should structure your like Cloud Foundry orgs and spaces. So this is kind of enabling many more of our Cloud Foundry users to kind of have their own kind of organizational setup, and then use the use service instances and allow developers to share those autonomously. Just like the kind of the Ozbapi model allows this self-service for provisioning. Now we're allowing self-service for sharing these things as well. So this is a feature flag in Cloud Foundry, which is disabled by default. So as you can see here, we have this new service instance sharing flag, which is disabled. So I have all the power as an admin so I can go and enable this thing, and that's it. So now we should be ready to go. It's also worth noting that not only does it have to be enabled at a platform level, but also at a service broker level. Some service brokers that do things like call back into the platform to talk to particular applications, they don't want to enable this feature, but kind of most services like Spring Cloud services, kind of messaging queues, config servers, all kind of have already seen the benefits that this feature provides to their users. So there's a lot of brokers already who have this feature enabled. So I'm going to create a quick create a couple of spaces so I can better demonstrate this feature. So I'm going to create dev1 and dev2, and jump into dev1. So I still have my broker registered from earlier, the OV broker. So again, I'm going to create a service instance called myService. This time, if I run CF services, we can see that I have my thing created. So this is currently only accessible in dev1. If I go and target dev2 now, I won't be able to see anything. So since I'm a space developer in dev2 as well, I can now go and run CF share service. As you can see here, this is an experimental command. In a few CF deployments time, we hope to make this kind of a GA feature, but for now this experimental, so if you have feedback, please let us know sooner or later, because then we can take that into account and make changes. So now that's shared. If I run CF service, myService, you can see here, I can see shared with spaces, and I can see that it's shared into dev2 with zero bindings. Because obviously I created this instance and I might be paying for it, we wanna make sure that at any time, I can go and delete that thing. What that means is we have to make it very obvious if there are any bindings in other spaces, because if you go and delete that instance, those bindings are gonna break. So applications using those bindings will also break. This at least, there are warnings when you do this to the CLI, and this at least gives you the opportunity to go and find out if your colleagues are using the service instance, so you can make that a little bit better. All right, for now, jump into dev2. Likewise, if I run CF services, we can now see I have my service that's appeared magically in there, and if I wanna find out a little bit more about it, I can run CF service, myService, and again, this time, I can see that it's shared from the old BAPI demo org in the dev1 space. So if there's a problem with the service instance, if I wanna find out when it's being upgraded, I can go and reach out to the development team who operate in that space. All right, if I go back into dev1, I can now do an unshared service to stop it being used from dev2, and I've used the force plug, if I didn't, I'd get the warning saying, hey, this could cause some pretty catastrophic consequences, so you better think about that. And finally, like before, I can delete my service, and that's it, we're all wrapped up. So if we jump back in here, how do we find a SAPI team? So you can find us on Slack at hashtag SAPI. You can also email us at our email address. You can come talk to us today at 205 in the coaches corner down the foundry for our office hours, and we're also doing a hands-on lab. We did this lab yesterday, and we're repeating it again today, it's pretty much an interactive version of what you just saw with the Kubernetes and Cloud Foundry, so if you wanna try that yourself, come join us at 245 in the hands-on lab corner, or just come up to us, we're gonna answer questions with the time we have left, but feel free to just grab us after this as well if you have more questions. Awesome, so on that note, are there any questions from the audience? Hey. Okay, cool, so the question was, are there any plans to add parameters for sharing? So it's a very, very interesting question. So right now, no, what we've actually let that, we've actually like Broker authored to decide that, so in that context object, a service broker will be told if the binding from a space is coming from the space the instance was provisioned in, or if it's from a different space. So what we've seen is we have like messaging queues which allow apps in the provisioning space, so to speak, to be able to push messages onto that queue, and for apps in the receiving space, they can only go and receive messages, but so far that's up to the brokers. Which, okay, so there's a couple of things which might help with that. One is his actions proposal, so we might be able to use actions in order to kind of configure what sharing looks like. So you could provision a service instance, you then say, hey, service instance, what do you expose as actions, and it could return a whole load of configuration, like telling it what kind of sharing construct you want in there. But yeah, I'd love to hear more about that use case, so maybe we can chat afterwards, because that's definitely something we could like look to bring into the raw CLI experience. Hey. Sure, yeah, so the question was, last time a gentleman looked to there's still an experimental feature. So that is still the case. We're basically, we're just waiting to get some, a little bit more feedback on use cases. You wanna make sure that before we market as GA and get into the world, if we can't make breaking changes, that is actually kind of solving the problem we've set out to solve. We hope we're looking at a very short time frame to do that, so in the next couple of months. So far, the feedback's been positive, and we haven't heard of anything other than additional ideas like this, which would change things. But yeah, so two to three months, and this should be a G8 feature. Any other questions? Okay, if you have more questions, feel free to come up to us afterwards, and thank you for your time. Thanks a lot.


When you travel abroad, it's always a good idea to pick up some common phrases in a local language. If you are able to break the ice by using their own language, you will definitely be appreciated and make a good first impression. To learn more vocabulary and useful phrases, come over to our basic mentoring on edX.


I ain't scared of no ghosts.  It's Ethan from CrankGameplays, and today we are back in the mortuary assistant. Doing shift two. I did the first shift the other day.  But I think now that I've played it once, I don't think it's gonna be as scary this time. Cause I kinda know I, that doesn't mean I won't get scared. I just don't think it's gonna be as scary.  I'm not going to have to take my headphones off this time. All right. I'm going to be calm, cool, and collected. We're going to be able to, do you know really get these demons? These demons. Hello demons, where are you? I've got my clipboard. Oh, you know I can keep track of things. I will always be keeping track of all of the things and everything. So let's see, we've got Eric Range, we've got Antony Estrada, and we've got Yon Rojas. Great. We're going to find a demon and we're going to find it Kweak, okay? We're going to go in here. We're going to get some of these bad boys. Oh, already, huh? Oh, we've got, it's like a little sled. It's like a little sled. This, sure, put it there. Sure, great, put it there, yeah. Or should I not do that? I don't know, but we're going to use the Gany. We're going to, we also got ending three of five I think last time. We did not get the demon. No, we did not. We did what some might call a bad job. Come on, come on. Come on, come on, get it. Nope, come on. Hello, come on. Take him out. Sorry? Who the, was it you? What did I call you? Janice, Janet? I thought you were laughing at me. I'm trying to take care of you, aren't it? In here. I don't want that white guy to come back. You guys know who I'm talking about. I don't know what his name is. I don't know what his profession is. I don't know anything about him, but I don't want him back. Why can't, okay. We're going to go with somebody else. Yes, you will cooperate more. Thank you. And he, here we go. Got dust in my gourd. Let's inspect this man. Let's see. Hello, I've got your little things. There we go. All right, all right. You've got little things on your toes. Good, good. You got anything on your hands? No. I'm just waiting for that boy to come back, you know? Or for there to be some sort of shadow demon. Ooh, you've got some hand things. I also didn't realize that you can, There we go. There we go. You can rotate the head too, if you go up to the top. Oh, I thought that shadow was somebody, the record system. We've got Anthony Estrada, age 42. Head, nothing. Right shoulder, keratosis. Left shoulder, mid abrasion. Right arm, nothing. Left arm, hermeneumomas. Good. Excellent. Anybody hanging out over here? No? Cool. Cool. Cool. It's not not spooky. I will say that. Guys, I didn't want any pizza or anything. Who knocked? I didn't order anything. That there. Embalming, okay, cool. All right, sick. It still does, it makes me quiver a little bit. The things. I won't lie to you. I would never lie to you. I would never lie to you. Okay, I want you to know that. I am determined to try and find a demon today. A Matt demon. Okay, how do I, how do I, this? Okay, why are the jaw? Let's go for it. This is my least favorite thing. It's awful and I don't like it. Bang. Bang. We're just gonna not pay attention to the door that just opened. There we go. Hey, we didn't get the things, did we? Weren't we supposed to write something down? Do something to know that we're still saying or whatever? Something like that? Oh no, now I'll never know. Let's go out here. Oh, I can't. It's not great. Definitely not great. Okay, there we go. See now, I do this. And we see how far the rabbit hole goes. Okay, what do I need to do? The eye caps, yes. Love the eye caps. They're so fun. The embalming fluid, we need the reagent. Let's grab some of that. Good, good, good. Wait. The baleful reagent. And now we do the worst sound. Everyone's least favorite sound. Oh, we have to make an incision. That's right. Oh, that's right, the one on the neck. The trocar. Oh, oh, we need the tubes, that's right. Which are here. Did we get the trocar? We did, I think. I don't like any of the noises. I don't like- I'm missing something. What are you missing? What? What are you missing? Oh, four seps? I already have one of those. If I'm honest, I really don't remember. Don't I need to drain the boy? I can't use that here. Oh, four seps, yeah. There we go. Now we drain the boy. It's so loud, I hate it. Ugh, it's awful. Ugh, ugh. Turn that off. Remove the tube. Let's take this out, let's sew that back up. Nice, nicely done. Dude, we're due for another crisis. I can't use that here. Wait, what do we do now? Insert, okay. That's what we need to do. Oh yeah. Oh yeah, love that. Yummy, yummy. Fill him up, fill him up with gulp. Mix cleaners in the bathroom. Okay, don't feel good about things. No, I don't. I don't feel good. Got the cleaner brace. Nicely done, nicely done. Great job, me. Wonderful job. I'm just waiting for white boy to come back. I don't know where he is. I don't know where he is. And then what? Oh, the moisturizer. Great, lovely. Let's put some moisture on those gans. Why can't I do, oh, I can't do multiple things at a time. I get it, I understand. Let's just moisten up that face. All right. Nice. Nothing crazy happened with this body. Like I didn't see any twinkly toes or anything like that. No, no, uh oh, it's a circle now. All right, let's bring him back. Let's bring him back. Bup, bup, bup, bup, bup, bup, bup, bup, bup, bup, bup. See his toes are moving now, but that's because of me. I'm making his toes move. I don't remember who this was. Was this Antony? I think it was Antony. Close you in. What, didn't I? We could even get right here. I don't know why I would. There doesn't seem to be any reason. Okay. Yon, is that who you are? Hello, who knocked on my door? Why did I answer that? That was awful.  Hate every moment of it.  You've already got a big old thing on your chesticle. It's a big ooey gooey guy. Okay. I think it's time to do one of these as well. See if we get anything crazy down here. Nothing around here, huh? No? Maybe in the main lobby area? Maybe around here? Ho, ho, ho, ho, ho. It's a Z. Big old Z. Oh, so close. You don't need anything? No? Okay. You, it was a Z thing. Good, good, good. Well, let's give you the old examine. Rebecca? Head over to grandma. This is your mom? Hate me all you want. He's dead because of you. Oh. You should be the one here. See, if you guys don't remember, from the last time, the demon is trying to remind Rebecca that, the demon is trying to remind Rebecca that her boyfriend sort of died because of her, in a sense. But you know, Rebecca, you should, don't think it's your fault. It's not your fault. It's not how things work. We'll tell you that guy, uh-oh. There's a lot of stuff going on with this body. Any toe tickling? No toe movement. I'm not seeing enough movement in those toes. And then the head. There we go. Is that a little thing? Nothing here? I don't like how the bodies move around. All right, let's put in this info, huh? Entry numero dos. Yan Rojas, age 26. It's very, uh, it's very young. Left arm, contusion. Let's see, in the right leg, we have a mole. Left leg. I believe that is everything. Oh, why did the- Oh, hey! Matt Damon! How are you? Good to see you. Hey guy, how's it going? Do I have to interact with you the entire time? Well, I hate that. What are you doing? Back here? Where'd you go? Where'd you go? There's a lot of stuff going on with this body. Thus far. Okay, uh, now I need all of my tools. Okay, get that. I already have one of those. Me, me, me, me, me. Is this the way it's actually done? You know? Doesn't feel nice. It just doesn't feel nice. All right, let's bring those eyes out. Oh yeah, put some nice little- All right. Little hats on them. Open by the window. I'll get that stuff later. I don't need it right now. Jesus, these ghosts. Can't hold anything else. Yeah, yeah, yeah, yeah, yeah. Let's get that. And we'll get the reagent. Very nice. Very nice. Now we need the tubes from this puppy. Oh, it's terrible and I don't like it. Excellent. Now I'm going to take one of these guys and I'm going to go while we're here. Out over here, because I feel like I knew you'd be there. God damn it, I've been waiting for you for a while. He's just, I don't know who he is. But I don't like him, you know? Where's the symbol? He's the worst one of the bunch. He really is. Where's the symbol? Where's the symbol? Stop goofing with me. Where's the symbol? Is it like in a weird spot that I can't see? Oh, there it is. Okay, it looks like the number nine. Okay, good, good. I'm going to go around one more time because there's so much that's been happening with this body that I feel as though we may have a specimen here. Okay, is that my second one? Does it just like not happen after a while or something? Or do I have to do? Maybe it has to be in between the bodies. Okay, anyway, let's take out the tubes. If I say off this. Fill you up with fluid. The weird fluid. I don't know what it is. It's embalming fluid. I don't know. Actually, question mark. There we go. Let's go make some cleaners, baby. I love a cleaner. Hello? We're about to ring the phone. Do we see? Hello? Hello? I'm at work right now. I'm at work. Is that mom? Or is that a grandmama? All right, it's cleaners. Put it in the cleaner. Tank cleaner. It's my favorite thing, dah, dah, dah, dah. Let's do some moistening. That's about it for this one. That's about all of her. For Yon. Are you Yon? Is that who you are? All right. But your toes. They're not wiggling and waggling as much as I. You should be doing it.  You are.   Why is the door open? Hey! There's so much going on. There's so much going on with this one. How could you not be the daemon? The daemon, rightus. The daemon, rightus. But I have to get the right name. I have to get the correct name. Can I do it yet or do I have to put the other body away? I don't know. I don't know. Cause I just need one more letter of the alphabet. Of the creepy creepy alphabet. Okay. Okay, let's go. This body has a lot of activity. A lot of paranormal activity. See what I did there? Let's put you back to sleep. Bye bye now. Bye bye now, you're here.  Did we do Antony? We already do Antony? We may have already done Antony. Yes we did. Let's go here. Let's go. Turn off the light. Shabu. Life's a... We've done it. Who's been throwing this around here? Antony, stop it. Stop it. Stop throwing your fits. I'm sick of it. Antony, stop it. Okay? I am going to have to talk to your father when he comes home. You are going to get it, young man. Unbelievable. Unbelievable. Why is this door open? I don't believe I left that door open. Well, now that you're here. Maybe I can find the other thing. Bop bop. Beep bop. Beep bop. Beep bop. Bop bop. Beep bop bop bop. Prim bop. Prim bop bop bop. Fine, it's fine with me. It's fine with me if it's fine with you. All right, let's give you a look, see. Oh, your toes got something. A lot of things on your chest, nothing there. But you've got a guy here, some acne. I've dealt with my fair share, so don't worry. It's nothing to be embarrassed about. I know that sometimes it's a little embarrassing, but I promise you, it's nothing to be embarrassed about. Okay, he must have something on his back, on this side. No? Did I get all of it? Did I not get all of it? Or is the other thing? I thought I got all of it. Stop goofing with me. Stop goofing with me. I'm sick of it. There we go. Oh, I thought I had already pressed that. Okay, let's put this in the system. Entry three. Eric, age 35. The head, we've got some blemishes. The right shoulder, we've got a little rash, left shoulder rash, right arm, rash, left arm. God, he's got a whole lot of stuff going on here. You've got a bunch of things, Eric. Hello? Someone by a side who turned all these lights off. Who did it? Huh? I wanna know whom turned all the lights off. Well, how are we supposed to find this last letter? Oh, I should have brought the thing back here. Have I already? Wait, there's the Z thing. Have we already done it? We haven't, had we? I don't think so. There's the Z guy. That guy, the nine. Was there something else? Was there another one that I missed? Sir, stop. Stop it. You're not supposed to be moving. Stop. You want me to pull your finger? I'm not gonna do that.  Oh, you want me to go that way?  Is this what it is? God has left you. This one, great. Hey, who are you? I just, I don't like him. I don't like that guy. He just is kind of, he's kind of rude and I don't appreciate his presence, is the thing. He disturbs me. This one was the nine. There's nothing there now.  Why isn't there anything there? Interesting. Is this one still here? That one's still there. Why was there no thing there? I don't know. I don't know. Okay, we need to get all of our tools though. I already have one of those. Let's get your mouth. Nice and fucked. Stop, not while I'm doing the procedure. Come on now. I'm in the middle of a procedure. There you go. Stop it. No, your mouth is supposed to be closed. That's what the whole thing was. That's what the whole thing was, okay? Your mouth is supposed to be closed. Ship them. Ship them. All right. You know what I mean? We gotta do the embalming fluid. Okay, while that's happening, let's go into the night shift. Two, one, four, three, is that it? Two, one, two, nine, eight, two, one. You, I know you. Rebecca. I don't need your things right now, okay? Ooh. Wait, that's kind of cool. Okay, night shift, hold on. Sigils of demonic names. Why are you coming? Yeah, I'm doing research right now, okay? Desolation. Rebecca. Thing, oh, this thing, though. This. Interesting. Rebecca. Interesting, so we've got the nine. Rebecca. No, it's not that. Stop. Will you stop if I come over there? Rebecca. Yeah, I get it. Oh, you're naked. Why? Why are you naked? You don't know me.  I don't understand why there isn't a sigil there anymore. That's the thing that's making me go, huh? And why am I not getting a fourth sigil? A part moral, a part moral. We've got the Z, Z. So it has to be in desolation. We've got the nine, the Z, and that nine. So it's either Tashak or Uzoret. Or Uzoret. Let's try Uzoret. So it's nine, Z, blah. Let's take this. And can we put it on the body whenever we want? We've got the lunches. All of them could be seen.  I will clean the flesh and forget the houses and holes of hell to look for the ins and glory of my house. Why do I have to offer to prepare that for all of them? Yeah, all right. Oh, I don't like the... Oh, I see their eyes. Can you die, die? Like, can you? So difficult for life. Can you do it? Wrong.  He regretted you. Be more comfortable. Just let me get it, Rebecca. It won't be over. Rough. Pretty rough. We're gonna put this back. Put that back. We'll finish this body real quick. Is it though? But like, what if it's not? Oh, it's the... What if I'm not too late though? Okay, it's the weird Z, currently cute. Okay. So it's loose correct. I don't like the music. We still have to put moisture on his face though. I don't know what to do. We still have to put moisture on his face. Am I gonna lose? Nothing happened. This is no good. This is no good at all. I don't know if it's this dude though. Like, I actually don't think it's this dude. I think it's the other body, but I'm not sure. I think it's this one. Hey, use that here. Does it literally have to be? I can't tell. How do I know? How do I know? Cause I feel like that one had the most...   So I have... Maybe it was that dude. I think it was that dude. Oh, it's really hard to say. It's really hard to say. I think it was that dude though. Cause he did have like, scratches. Oh wait, hold on. Hold on, hold on, hold on. There's something that I can do. I know there's something I can do. Is this it? I didn't do it good enough.  Cause the daemon's inside of us.  Damn, damn, damn. Damn, damn, damn. Endings? I didn't do it right. I don't know which ending that was, but I didn't do it right. Next time, I promise, next time I will get the good ending and I will burn the correct daemon. I almost got there. I just, I think I hesitated too much. Big bummer, big bummer, big bummer. Gotta move faster next time. Anyway, I'm sorry. But I hope that you had fun watching.  I really, I really do like it. Like the replayability, I was worried that it wasn't gonna be fun because it's not as scary anymore, but I still had a good time. So anyway, gonna leave this one here. Thank you guys so much for watching. Hope you enjoyed. If you did, make sure to slap that like button right in the face. And I will see you guys in the next video. Love you all. Stay cranky. Bye. Ghost.


ServiceNow Knowledge 14 is sponsored by ServiceNow. Here are your hosts, Dave Vellante and Jeff Frick. Hi, everybody, we're back. This is Dave Vellante with Jeff Frick. This is theCUBE. We go out to the events. We extract the signal from the noise. We got a crowd chat going on. It's crowdchat.net slash no14. So check that out, put your tweets in, crowd chat, awesome engagement app. Frank Slutman is here. President and CEO of ServiceNow. Frank, it's a pleasure to have you back on theCUBE. Great to see you again. Great to be here. Thanks, Dave. So how are you feeling? I'm feeling great. I got the keynote out of the way. Got the keynote out this morning. You had the financial analyst in yesterday. You had the industry analyst. They're working you hard. Absolutely, it's a circus. Yeah, so your keynote this morning was great. It was right up front. They have a nice spot for the industry analyst. We appreciate that. Take good notes. But one of the themes that you struck was really hit home to me because you talk about transforming IT from essentially a cost center into a value producer and how ServiceNow is at the heart of that and how the role of the CIO is changing. So I wonder if you could sort of summarize and talk a little bit about how you see the role of IT and generally in the CIO specifically changing and what role ServiceNow plays in that transformation. Yeah, just to get a little bit of macro context, right? The worst of all scenarios that we see out there where IT is essentially viewed as a commodity, as a utility and as a result, people don't see much impact. They just want to get it cheaper, cheaper, cheaper and they want to cut more cost out of the infrastructure and staffing levels and so on. And IT is just an organization that we're tolerating because I guess we have to have email and internet access and all that sort of thing. Now you go look in the broader world around what technology has done to change business, right? What Amazon has done based on their technology platform, what we've seen in online banking, what we've seen in online education, there's just incredible examples of innovation using technologies. Now, IT hasn't done that for their own enterprise. They have in some instances, there's some really great examples out there where IT did impact the business but by and large, IT is not viewed as the go-to people that know how to bring technology into business in a way that really turns to tables on the competition, do some mind-blowing things. I always ask CIOs when I meet them, I say, what have you done in the last 12 months that really blew people's minds in terms of applying technology to business problems? And they start sort of thinking like, oh actually there's surely nothing I can think of. Well, that's probably a question you should be asking yourself all the time, right? If it's not lightning in the bottle and it's not the sort of thing that sort of lights up the whole enterprise like we want to do this, we have to do this, that excitement, then you're shooting too low. And in general I find the cost of session in IT is an indication that we're not looking for the opportunity and I think that's a damn shame and we're here to change that. Well, you talked about panning for gold, it was Apropos here in California. And it's also Apropos, I mean your company is smoking hot and you're commonly associated with the likes of Workday and Salesforce and Splunk. You must be very proud of that. But also there's gold and then there are IT shops, right? There's gold in those organizations that's not being mined. And I think you talk about your penetration is what, 20% of your target, your global 2000? We have footprint in about 18% of the enterprises that we think are relevant and appropriate to us but within those 18% we were probably a third saturated. So very early innings for service now even though we've achieved considerable scale and very high growth at that scale. So when you go into one of your accounts, can you discern that actual value production vision that you set forth? Can you see it? Can you touch it?  Can you actually sort of provide proof points? Yeah, managing surface is just essential in terms of economizing and saving money. And here's why and I'll give you some very professional examples that we've seen in real life in the Human Resources Department. And probably a good example because IT everybody sort of understands how the game works, right? HR organizations historically have not had service models. They've had email and phones and so on and you had a problem, you just called somebody. As a result there was a huge amount of work that preoccupied the HR organization that nobody knew what people were working on. And the staffing grew and grew and grew to deal with the growing volume of inquires and problems and changes and so on. Until they had systems, service models, and they had reporting and analytics that showed them what was consuming their time. Once you know that, you can put initiatives in place to start dealing with the underlying causes that are driving that work. I have seen HR organizations dwindle their staffing by 50%. Just by understanding what are these they were working on, right? That's what service management is all about. Instead of just delivering service, you're managing it, right? And once that quarter drops, by the way, RT organizations, they get this in space, right? Because large enterprises, they got 50, 100,000, 150,000 incidents flowing through their organization a month. It's a huge consumer of resource, right? If you go to these other service domains and you see very similar things, this layer of software really optimizes that resource. The way they attack it oftentimes is human resource. Doesn't that scare a lot of prospects away when they hear, oh wow, there comes service now and they're gonna replace all these people? It's a good question. I actually wrote a blog post about it recently as well. There is no doubt that in the economy at large we're gonna see massive substitution from people to systems. Why? Because the technology is here and the economic imperative is here. It's very much a societal and social question. But here's the thing, what's the alternative? Are we gonna try and stop it and not do it? It's going to happen. The markets are going to run their course. What needs to happen is that we adjust. For example, in education we have a lot of teachers, right? What's gonna happen to teachers when education is delivered through online streaming? Well, teachers probably will have to become curriculum developers, in other words, evolve and change in their roles because education is going online. Slowly, but it's going to. Why? Because the format, the service experience is that much better, it scales that much better and it's that much more economical than what we currently have. Well, you said today in your keynote that the system's broken, having to put four kids through school, I appreciate the little nudge there to the educational system. Why did it take so long? I mean, these are the IT guys, these are the technology guys in the organization, they're there to deliver value. Why did it take so long for this kind of transformational? Yeah, Steve Jobs has been, the late Steve Jobs has been quoted many times and saying people don't know what they want and the light show it to them. And that's sort of what we're doing, we're showing it to them. That's what we did this morning, we're showing people what they can aspire to. And that's what we're here for, we're trying to stimulate, inspire, motivate, give people a sense of mission, right?  Yeah. So, struck again by your keynote, the Affordable Care Act, which is actually known as Obamacare, the government not a customer of yours, or what's the scoop? Oh, no, they are, they are. Could you have helped with that problem? We could have, for sure, but then again, many people could have. Yeah, sure. You know, for the people that in software and technology, they look at something like that, yeah, last night I set a dinner with the Head of Infrastructure for Kaiser Permanente, they certainly know the problems of open enrollment at a massive scale. And it certainly, we didn't want to trivialize the problem, it is really, really hard to operate a service like that at the scale that they need to, but there is no doubt that, you know, we don't need any new core technology to build systems like that. I mean, the technology exists, the skills exist, obviously that should happen, like a lot better than I did, so. Let's talk about your business a little bit. This is your third year now, right? Since you've joined service now. It was exactly three years this week. Yeah, so let's sort of break that down a bit. When you joined service now, the discussion was around, and you talked about this yesterday, the whole TAM and everybody was looking at help desks saying, wow, how can these values be justified? And then of course you blew that away, and now people are beginning to understand that. It's interesting to note, at Data Domain, you sold the company, I think for what, 2.5 billion? The entire market is now greater than the market that it replaced, interesting. That's right. The market was 3 billion, it's now, according to IDC, bigger than 3 billion and growing. Yeah. So that's kind of interesting. Now that's a much more confined market. You talked about the TAM there being finite, you always knew it was finite. Here it's different. You guys have started to sort of fine tune your TAM analysis and communicate that it's still hard because you just don't know how people are going to use your software. They're finding new ways. But the TAM, I took a stab at it, I came up with 30 billion, but it was a top down, it wasn't a bottom up, and I had to get the blog post out, so it was kind of a back of the napkin. But still, it's very, very large, clearly a multiple of the IT service management market. So I wonder if you could talk about sort of the evolution of your thinking in terms of the market opportunity with service. Now were you always sort of where we are today or did that have to evolve over time? No, it has evolved, I'd say dramatically. Obviously the expansion from what used to be called help desk management to IT service management has basically exploded the market at least five-fold. I mean we're licensing five to 10 times as many people on our system now for IT SM purposes, then we used to in the mid 90s during the help desk era. Because back then all we did was license people ever physically on the help desk, right? People that would take phone calls and emails and so on. Now really everybody in the IT organization is an actor and a participant in the workflow of service management. If you may be a DBA, you may be a network engineer, you're gonna get, when an incident comes in or a problem is defined, you're gonna be part of that workflow, right? So that expansion was not understood early on, but beyond that, service is everywhere and service is everything, right? And every physical and even non-physical assets have service models around them. So once you start looking for it, you see it absolutely everywhere. I don't know what's a few billion among friends, I don't know what the numbers are, but this is heavily transformational. I think one of the things that people struggle with, they're looking for a line of sight, right? In other words, a company like Workday is viewed very positively. Why? Because they're seeing them take dollar-for-dollar market evaluation away from companies that they can't identify, SAP and Oracle and so on. It feels very credible to them, like that's $250 billion a market. I can see those guys from Workday take a chunk out of their hide. You go look at service now, you need to have more imagination. There was this great quote from Arthur Schopenhauer that I showed yesterday, which said, take talents to hit a target that nobody else can hit, but it takes genius to hit a target that nobody else can see, right? It's transformational, right? What Workday does is modernization. What ServiceNow does is transformation. It's fundamentally different. So when you came on to service now, I presume your focus was putting in the infrastructure and the processes to make sure that you could scale, just having watched you in your career.  So take us through sort of where you sort of started and what the emphasis was and where it is now. I mean, clearly you're investing in sales and marketing, you're investing in AP. I didn't know this, the substantial number of global 2000 companies in Asia Pacific, so that's another. So how is that, I mean break that down into maybe one or two or three sort of segments of your attention and your effort there. You can sort of split it up in two major stages or phases. The first phase, when I took over the helm of the company, was very much focused on operationalizing, stabilizing, scale, being able to deliver of what we were already doing in a consistent and predictable manner. And that was not a minor task because the company had grown so fast that it hadn't been able to basically catch itself in terms of building the business, building the organization underneath its business. So that preoccupied us tremendously. The whole thing about cloud is not like there's a lot of people running around out there that actually know cloud, that understand cloud, that can build clouds. How many people do you know that have actually done this because there's, you know, three years ago, I mean, there were far and few. We actually recruited people that had built the original cloud at eBay because those guys were pioneers. They had solved a lot of the problems associated with cloud early on. We saw a lot of people that understood data centers, cloud is almost inverse to data centers, the mentality that you need to build and to run them. That was phase one for us. And we sort of got through that, you know, about a year and a half ago, for sure, about a year ago. And we started to shift gears, you know, really from the operational infrastructure concentration that we've had to really starting to drive strategically the business towards enterprise service management and really expanding the addressable market way beyond where we had been before. We were going to market and telling CILs, look, at the assembly replacement, you have to do it.  We're gonna do that, right? But we wanna give you this much bigger perspective of managing service and enterprise and, you know, make that admission that you can own as a CAO and drive throughout the organization over a period of years. And a lot of our customers have roadmaps that are 24, 36 months, and it shows you all the things they're going to knock off over the period of time in all the different, you know, parts of the enterprise, it's facilities, it's engineering, it's marketing itself, so on. Yeah, so okay, so TAM expansion and now obviously accessing that TAM, hiring a lot of salespeople and go to market. I was struck walking around the exhibit hall last night because you just announced App Creator, I think last year at Knowledge. I was struck by, you know, that the booth down there with the number of apps, I mean it's just astounding where that's going. Wouldn't have predicted, you know, some of them that I saw. So that's obviously part of the TAM expansion as well. I wonder if you could talk about the importance of a single system of record in order to achieve that vision because it's not always easy, right? Politically, people wanna keep data in their own little silos. So how does that work? Can you, you can't force it in, does it sort of just happen organically? How critical is that to your success? I mean, when you have applications or services that relate to each other, like for example, you know, this morning we showed in the demo, I think we showed like seven or eight different applications in the course of one demonstration. The reason that a single system of record matters so much when you do that is all these apps need to be aware of each other, right? When you're staffing a project, you need to look at resource management. Well, that resource management relates to the skill requirements as well the skills that are available, right? What you don't want is these apps living in their own universes with their own data models, your own databases because now you have to start the hack integrations between them to make any sense out of that. And that's the world we've lived in. That's been the bane of software existence for so long. The service now says we're not gonna do that, okay? Every application that relates to any other application, they're gonna be operating on exactly the same data model. And by the way, you see that throughout our platform, right? When you bring up an asset in the CMDB, like a server or a router or a SAN or whatever it is, you'll be able to see all the other data artifacts throughout the platform, like incidents, problem changes and projects and tasks that relate to that particular asset. There's nobody else that can do that, right? And we provide that full 360 degree visibility. That makes application development so compelling because all the users are already defined in the system. You don't even have to get started with that. You only define users once, right? You reuse all that. And all the other artifacts already exist. So you get this data gravitas that the more data that is there, the richer the application development environment becomes. Yeah, we talked about this too at the analyst meeting about the relationship to your M&A strategy. You've got to be selective. It's got to fit in to that single system of record. Does that however limit your choices? It will absolutely limit our choices, but this is the commitment from an architecture standpoint that we make is that we're not going to repeat what legacy vendors have done is having 50 apps all stand along with the hack integration between them. As I said, that's the world that our customers want to leave behind because it was just horrible from an efficiency standpoint. After a while, all your people do is managing the operability of the patchwork plethora of assets that they have. They're not doing anything productive. And in our world, they do none of that, right? They're not upgrading software because it's the clouds. We do that. And they're not hacking integrations between apps because there is no constant of integration on service nowadays. All the apps are aware of each other through a shared data model. So is there still plenty of M&A opportunity for you out there though?  I know it's off a little bit lately, which I think is really healthy. I'm happy about that. Nice little breather. But still, you've made great progress. Adding value, you can obviously use your stock as acquisition currency. Are there still plenty of opportunities for you? Yeah, there's absolutely tons of opportunities. At the end of the day, software infrastructure is very similar and very common between applications. So for us to bring an application into our user interface framework, I mean, they have to have a user interface framework of some sort, right? So whether we replace what they have with ours, whether we replace the data structure, we replace the underlying cloud, we can do all those things, right? The question is, is it going to be hard? Is it going to be expensive? Is it going to be time consuming or maybe not as much? And that will influence how attractive we are to the asset. All right, Frank, we're way over on time, but I could go forever. I mean, really appreciate you coming on. Good to see you. And thanks for having us here. It's really a fantastic event. All right, keep it right there, everybody. We're back with our next guest. This is theCUBE. We're live from Moscone, right back.


From here, I appeal to every one of you, if a child is born, plant a tree. If he stands up, plant a tree. If he goes to school, plant a tree. If he gets married, he or she gets married, plant a tree. If somebody dies, plant a tree. Just find an excuse to plant a tree because what we exhale, they inhale. What they exhale, we inhale. Or in other words, one-half of our breathing equipment is out there. Or in other words, what we call as environment is not environment. It is just part of our lives. The planet that we walk upon, this earth, the very body that we carry is a piece of this earth.  Let people of Tamil Nadu and the rest of the country and the world be inspired by the work that common people of Tamil Nadu have done and made a phenomenal change in bringing back green cover. And we thank the Forest Department, the authorities, the government of Tamil Nadu and everybody else who have supported and assisted us in making this happen.


Hello, this video is part of a series. Be sure to check out the link in the description of this video, which will bring you to a full playlist of every video in this series, new videos every week at this point. And I'm going to use Vim as my text editor. You can use whatever text editor you feel more comfortable with, Nano, Kate, G-Edit. And I'm going to create a script. I'm going to call it funk.sh. And again, this .sh is more for the user. You don't need that. It's a shebang line, which is the first line in your script that tells the computer what interpreter to use. So here I'm going to say to use the bash interpreter. And what we're going to do today is create a function. Anytime you have a set of commands that you are going to use more than once, and it's not something that's just being used in a loop, but can be called at different places throughout your script. You want to create a function rather than typing out those commands over and over again.  You can call it whatever you want. You can call it Bob. You can call it Tom. But I'm just going to call it, I'll just call it funk, short for function.  At this point, anything I put in here is a function that I can call anywhere else in my script by using the funk command because that's my function. So let's say every time I call this, I'm going to clear the screen. I want to echo and I'm just going to make like a header for my script echo and actually I'm just going to put the date command, which should display the date there. So now if I was to save this and make it executable using change mod and the name of the script that's giving this script permission to run as an executable file, I can now use .slash again. That means the current directory, so we're running a script in our current directory, .slash in our script, nothing happens because we never called that function in the script. If I come down here, I can now call this function. I can say funk. And if I save that, I can now run it and you can see that displays the date in a little header there. So what I can do is I can use this more usefully. I can say this, I can say echo, this is text and then I can sleep for two seconds and then I can repeat that funk and I can say echo, this is more text and I can sleep for two seconds and we'll do it at a time, funk, echo, this is the final text, sleep for two seconds. Now I can run this script and we get a little header there and it says this is the text, this is more text, and each time we're getting that header at the top. Now obviously this can be done a lot more efficiently, I'm still repeating a lot of commands, but just to show you the basic, rather than without function, I would have to do something like this. Let's see. You can see that's making my code quite a bit longer, but this will, and if I never call the function anywhere down here, so I can run this now and it behaves as far as the output, the same as before, but I added a lot of lines of code because of repeat stuff. Really I'm repeating a lot of stuff, I'm repeating the echo command and the sleep command, but we'll talk about more of that in the next video where we start looking at passing variables to our function. I thank you for watching this video, I hope that you enjoyed it. I hope that you visit my website, filmsbychrist.com, there should be a link in the description, that's Chris with a K. Also be sure to check out the full playlist, link in the description if you enjoyed this video. Think about becoming a supporter, even dollar a month is very helpful, patreon.com forward slash metalx1000. If you can't be a financial supporter, think about supporting me by liking, sharing, subscribing and commenting on this video. I thank you for watching and as always I hope that you have a great day.


The action of this Nerf blaster fascinates me.  Re-cock the blaster, and it fires the next dart, and then again for the last one. No matter which barrel is loaded, one and only one dart will fire at a time. The pattern notes that the blaster uses a path for cascading a blast of compressed air. The key word here is cascading to sequentially provide a blast of air to the barrels. Let's look inside to see how this works. When you pull this handle, a plunger moves with it. This compresses the spring between the plunger and the base of the blaster grip. A catch at the base of the grip locks the plunger in place. When I pull on the trigger, the catch moves and releases the spring. This mechanism works because the catch and trigger are the same piece of plastic. It pivots on a metal pen near the center, so when the trigger is pulled back, the catch moves forward and releases the energy in the spring. The spring forces the plunger up and shoots compressed air into the dart barrel, which ejects the dart. The trigger piece returns to its original position because of this arm. It's a thin section of plastic that acts like a spring. This sets up the blaster to be cocked again. What interested me is how the blaster fires only one dart at a time. Each barrel has a spring-loaded valve. This spring pushes the valve forward if there's no dart in the barrel. If it contains a dart, then the valve is pressed against the spring. This valve's position delineates the path for the compressed air. The air enters at the bottom. An O-ring on the first barrel, empty here, prevents air from entering. So the air travels to the second valve. Because this valve is retracted, air is forced into the barrel and launches the dart. With the dart gone, the valve springs forward. This creates an air path to the third valve. This directs air only to the first loaded barrel, even if the darts are loaded randomly. Once you understand this mechanism, you can defeat it. If you put the first and second darts in partway, the valves are half-open so the air flows into the first and second barrels and, of course, into the third barrel. This splits a single blast into three weaker streams. When I pull the trigger, all three darts fire at once, but they don't travel very far. This blaster is the epitome of good engineering. As the patent notes, the air restriction mechanism is simply constructed, structurally robust, compact, automatically operated, and relatively inexpensive. I'm Bill Hammack, the Engineer Guy. Thanks.