logo

NJP

Enhancing meetup portal - Live Coding Happy Hour for CreatorCon

Import · Oct 28, 2020 · video

[Music] [Music] hello and welcome to live coding happy hour on this awesome october 27th 2020. i'm your host andrew barnes and uh let's go ahead and jump right into the introductions with my awesome co-host brad tilton hey everybody my name is brad tilton and i'm a developer advocate with the developer program here at servicenow i have been developing on service now for about 12 years and been an employee for the last four and i am really excited about this special edition of live coding happy hour today oh thanks brad and i'm andrew barnes also a developer advocate here at servicenow i've just recently passed my second year working at servicenow directly i've been on the platform for over six years as a customer and an implementation partner and i specialize in building custom apps integrations and large-scale development deployments and we are super excited to be here with you today this is super live coding we are doing this right now this very second uh whether or not you're seeing us through the creator con channel or in youtube which is our usual uh broadcast point is in youtube and twitch um we're delighted to be here and what we're going to do on this live code is we do live development right here it's completely unscripted there is no uh there's no magic there's no pre-baking we didn't practice this ahead of time so what you're going to see is very much what you would experience if you're doing the development work that we're going to do today but before we get into more of that this is a happy hour and even though it's a little earlier than our usual fridays at 4 30 eastern when we broadcast we also have a beverage usually with it brad what did you bring to drink today uh today i am representing texas with a saloon juice which i thought was a clever name so i picked it up nice and i have got a barrel aged innocent gun blood red sky that i'm particularly excited about today so um the problems that we're going to work on today is we manage this show and it's automation through a servicenow instance so if you've seen the show before you've seen us work on that before and one of the things that happens is some of the pieces aren't all automated yet and uh the the automation point that isn't done that uh caused us a little headache a couple of weeks ago is turning off of our vm so we run the infrastructure for this show in a vm and uh in a vm and if we forget to turn that off it costs money to to run that vm uh so part of what we're gonna do today is automate the turning on of that vm and automate the turning off of it during windows around our our show and then if we finish that we have some more work to do which is ending the youtube stream um anything else that we want to share before we get in uh to our instance and start doing development brad you know i i uh on this on the uh google vm i cannot confirm nor deny which one of us is the one that's real bad at remembering to turn it off and the reason for this uh but i also want to call out hacktoberfest this is the last week of hacktoberfest uh where we are encouraging developers to participate in open source projects we have a post on it over on the blog if you're not sure what it is go check it out you have a few more days to participate and it's been a lot of fun so far we've had a lot of participation awesome well i'm going to go ahead and share my desktop and we'll continue talking about our problem set and then solving it while we're on our desktop share so let me go ahead and share my screen and go into my servicenow instance and open up a artifact so uh starting off i'm in a servicenow instance right now um that i've got loaded um our live stream uh management application it's called artifact manager so i'm gonna open up one of these artifacts and show you what's inside of here which is um you know this is a type of live stream and it's got hosts um so this instance doesn't have all our user data in it uh because i just set it up today and i got the bare minimum in here um so you see the sysid's for the users uh again this is completely unscripted and un unprepared unpracticed not unprepared but unpracticed uh development work i thought you were just gonna go full machine on us and tell us you can now read cis ids [Laughter] i can read sis ids i can read the the global scope cis id which is global there you go i can read that one um so we've got some automation already um that that drives these like when we move into ready to publish that creates our youtube um entry for this live stream at the scheduled time and date so that automation already exists it's already done in flow designer um and if you haven't seen flow designer we'll give you a little uh intro in that when i move into there and what we're going to do today is i thought i was going to have to create a new integration with google cloud engine but it turns out that i didn't have to i almost went and looked at what all i needed to do to do that um but then i stopped myself and i went and checked the servicenow store because i had an inkling that we might have uh this one and we do we do have google compute engine spoke which does exactly what i need which is turning on and off of it a vm in google cloud so i scrolled here to what it does and i was like start instance stop instance yes please let me get that so in order to get that plug-in um what i did with that store uh spoke i went to the application screen here and this is loading all of the plugins and local applications and store applications that i have access to from this instance and i put in uh what was it compute yeah so i put in google compute and it narrowed down here and it says that i could install it i went ahead and installed it because i didn't want to just wait on that loading screen there's not a lot of value from y'all seeing that but i've loaded this spoke and so now this is in my instance and it's available the next thing i had to do was set up a credential um so over in the credentials connections and credentials aliases that spoke installed a new one for google cloud compute and there was no credential here beforehand so i had to add this credential so i added this new credential here over in the oauth entity profile because our connection to google cloud is through oauth and so i'm going to drill into a couple of records to get to where i actually put in my details so here is where i the things i had to do was i had to set the redirect url i had to put in my client id and client secret the rest of all of this was filled out for me and prepared does that make sense brad it does it does and i i want to go back to when you were talking about you went and looked at the story you know there was a point in time where i felt like i knew most of the spokes that we had available but i think we have passed i think we're past 100 right yeah we passed 100 which is definitely past my ability to uh hold all of them in my brain which is why i didn't know for sure we had this until i went and searched so it definitely uh has surpassed that um just over the course of this year so during hacktoberfest last year we were working as a community on building some uh spokes um and so let's talk about what that is so over in flow designer which is uh one of my favorite tools in servicenow of the past two years we have these flows which are the digital workflows um so their purpose is to uh you know take you through part at least part of a process um but it it also in flow designer what is executed during those flows are called actions and so actions um are what comprise a spoke so a spoke is a usually designed around a particular service offering from another endpoint in this case google compute engine is a spoke and that's an associated grouping of all the actions that are related to performing actions in google compute so i've narrowed this list down to just those and so we can see there's 31 actions provided by this spoke all of those actions have some purpose in managing activity in the google compute cloud space and then you consume those actions inside of flows and subflows so our first step is to decide what we're going to do in our flow and or decide if it's a subflow i think it's going to be a flow because we're going to um oh wait that's a good question how are we going to trigger this do you want to trigger it completely automatically or do you want to trigger it through a button ah that's a good question i think it probably needs to happen automatically because the one of us that's bad at turning off the uh stream here may not remember to hit a button uh and that would probably be about the same uh as it is now okay so then that means that we'll start from a flow um so the decisioning i was making there was if i'm in um if i want to have a direct trigger from some sort of record interaction or scheduled interaction then a flow makes sense if i want to trigger that potentially from some other process then a subflow gives me a little more flexibility on when and how i invoke that and what my triggers are so let's start with a start vm for code and we're going to put this in our application artifact manager because this is part of that application we're not going to use the user session so just to jump in real quick if you are watching this through the servicenow.com site that creatorcon is running on uh the chat is uh back and enabled uh but you do need to refresh your browser screen uh to get the chat to come up uh or if you're watching on youtube just keep on watching awesome thanks brad and we we love chatting uh so uh brad is uh monitoring our chat and we'll be happy to answer any of your questions there or bring them up onto the stream um so that we can uh engage with you uh because this is totally live and uh we will uh you know it's like well it takes like five seconds processing uh but that's that's as loud as the world gets really uh so i want to trigger off a record um the record is going to be an artifact record it is going to be our state of that record um yeah so i did the start vm so we'll trigger off of our ready to publish state and then um this is going to be a little bit tricky how to invoke this at the right time hmm let me think about that because i can't really trigger this off a record operation directly because i'm not going to update this record 15 minutes before the show yeah does it need to happen on a schedule you think i think this might needs to be some form of schedule that i feed it can i run once a data pill from somewhere else no i mean we could also just have it run like every every friday afternoon and i could have a chat very great automation [Laughter] huh that's a good question uh is how i'd want to invoke this directly because most of the time it'll need to run around you know what let's do two things then let's do our regular one and we'll just go ahead and schedule that um with some checks to make sure that it should run then and then we'll do a if we're doing an ad hoc session uh we'll use buttons but we'll use the buttons inside of servicenow yeah sounds good so we can put our logic in a subflow and then just call it from a couple of different places so we're going to want to run this weekly on fridays at and this is where it gets tricky because we need to get the correct time which i think is 1300 hours in the instance that's i shouldn't grab this one because that's not that's not a good one that's not our usual time let's grab a published one and the time from that will be the right time 13 30 excellent so we're going to go at 13 30 but we're going to subtract 15 minutes so we're going to go here oh what the heck it's a vm just spin it up 30 minutes beforehand and then we want to uh look up a record uh yeah i want to look up a record right to see that there is one that's running near that time because like this friday we won't have one so we would want to make sure that a record exists for that for that day and planned publish date is on can i tell it today yes sweet that seems okay that's close enough so when this runs it will check to see if there's one for that day we don't we don't run later than that on fridays so i think that's good enough then we need to do just a little bit of logic which is uh if this is success we're going to do something and so the action we're going to take is over here in the google cloud uh nope it's not called google cloud here it's compute it's gonna guess gonna get me all day long we want to start an instance and this is pretty cool um let me grab from off the screen somewhere what our project is because i don't remember it it's completely obvious when i load it because it's some form of live coding happy hour but yeah i don't know what it is without that and and it is of course just live coding happy hour with dashes so there's some interesting um so i took just a moment to take a look at this uh to see how it it would work um so i'm gonna pull open this action and show you what's going on here so you can see when i hit zone there's data populated here brad you should have a question about that shouldn't you that's not prompting at all right yeah how is the uh how is the data there yeah so is it is it stored on this instance locally no of course not because we've nev we haven't actually ever connected to this um so this is not stored locally what it's doing right now is it's using a different action that was provided in this spoke to query the google compute apis um and uh send it our project id and return all of the relevant zones and instances for me uh so i opened up that action and i meant to instead open up the zone one so there'll be an action here to say fetch zones and fetch instances by zones and so this is a dynamic action that queries a remote api so you can see here it's got a rest step which is reaching out to the google compute apis and is asking it hey what what zones do you have available to me and then it does some processing of that and then at the output of this is going to be a zone object that will contain the different names of different zones does that make sense brad yeah and i love going into those um those actions uh just as a you know if you're trying to learn flow designer an integration hub it's a it's a great place to go look and just see how this stuff is built especially you know if you if you have to build something from scratch oh absolutely they're an invaluable resource for me um right when i'm trying to learn what i should be doing because especially some of these are cool in that they provide like the one that we just opened handles pagination so if you need to query a remote resource um and you you know you're going to get too much data per query you can you know limit those queries and paginate them so that you're uh meeting the expectations of the other endpoint and this shows you a working complete pagination setup and the processing of that and so you can look at one of these working ones and then use that to help you build yours a super valuable tool when you're inside of servicenow is looking at something that's already working so we had a chat question and i actually didn't catch this when you did it but for the zones did they just come in right after you tabbed out of the project id it knew what zones to get it it did it started going and grabbing those them right then nice absolutely so that that was a good question um so here in the um so i wanted to show you in the start instance um how this looks when you're configuring one of these actions is you actually choose dynamic choice and then it will prompt you for which other action is going to provide those dynamic choices so this is how that drop down is actually set up and configured um and all of this ha i was going to have to build this myself today and that this is completely like i i was prepared to go build this today uh this was this is not a uh pre-canned uh message that oh it's cool we've got a lot of spokes it'll solve problems for you no this was just a happy accident that it really is a uh you know a nice collection of spokes available to you in the servicenow store um so i i was prepared to build this today um yeah this was just a problem that we had that brad keeps leaving the vm on a real actual problem we have so i've chosen uh oh yeah see i did a good thing there what i don't want to do is actually turn off our stream so we should be safe right now because we're on the start vm uh action uh but this this can reach out and actually do things to my to my uh to my instances and what you'll note here is um there there's only one choice because i only have one instance in that zone i have more than one vm instance but i only have one in this zone so that other uh dynamic choice from this other action which is list vm instances by zone is already doing that limiting and so that was uh part of how i was helping myself today was i'd have to make two mistakes to get to this instance i'd have to choose the wrong zone and the wrong instance and so hopefully i don't encounter that but if we if we kill the stream in the middle that's probably why that just means we were successful if the stream stops yeah what i'm going to do really quick is pull over a window that shows you that this instance is off right now this is this instance is stopped and i'm going to give it a quick test just to show that i can turn it on because i have actually done this yet so let's let's see if it actually works so in order to do that we should be able to we have one that's planned published today so i think this would actually work in its current state let's give it a try do we think this is going to mess with our vm i hadn't even thought about uh doing this well running the vm uh this is a different vm though oh that's right this is a different vm so we're gonna we're gonna run this test and we're gonna see if the stream ends so um i click that too fast i'm gonna go back so after i um execute a test you'll see that i have this handy link here which opens up the execution and has details on uh this execution and it looks like it says uh it did not run so no success so let's see why record not found so i need to go uh look for uh a record from that has a planned publish date of today so let's see if this is true like there's two run yes there should be hmm how did you fail that's not where i expected to fail operation no record found so we're ready to publish published by on today let's take a look and see if we did something wrong in this query state's ready publish plain publish date on today that looks pretty reasonable um for now i'm just gonna x out this part um because i it's not actually i'm not actually like really needing that at this moment to just test this so i'm just going to give it another test with a little less restriction this is doing more spinning let's promise that that did that did a promising amount of spinning uh but it's not error hey let's just check that's good let's just check this what's it say um it says off still that's not satisfying [Music] let's take a look so this instance or this execution window allows me to see all the details of this this full run time so i don't typically have to go other places to see what's going on with with what i just performed the data should be here we've got a live coding happy hour we've got one b we've got four live which is the name uh you know it's it came back and said 200 on uh the status there which is usually you know i'd expect a authentication error or something first and then it says processing it it thinks it succeeded why didn't it for live compute operation everything looks like it succeeded how about i give that page a refresh let's just give this a oh did you see it it just took a little while to that's a sneaky little bugger i just wasn't patient enough so when you're in the interface and you tell it to start up it gives you a little indicator that it's starting up um but it looked like this only gave me the indicator once it was up and running because it didn't know this interface didn't know it was starting so it was successful well that i that's victory i like i'm taking a drink that's victory it started a vm for me they have confirmed that we're still streaming nice so the next action i want to do is i want to update my record um to let it know that i've started the stream does that make sense yeah so that the record we're going to update is our artifact record so i'm going to drag that data pill and drop it here into this record um input box and that auto selected my table and the fields i'm going to update is the comments no they were what we actually don't have an identity stream on that uh where do we want to put it how do we want to indicate that the vm is up what kind of yeah i don't do we need another state state it'll already be and ready for ready to publish what uh let me see [Music] oh maybe i no it's not quite ready for chain updating the publish date and publish url it's almost ready for that but that's different automation that i should do um i don't know is there is there a thing you'd want to see on the artifact record to let you know the vm's up i think up in the i think there is and i know where i want to put it now it is in this abstract details i want to append it to that i don't know how to do that do you know how to uh can you grab it from the i think i have to grab it's it the data pill and then add to it yeah i think that's all right so you can see um there's two ways to get to your data pills there's over here on the right hand side and then there's the little cannonball guy that's not the official name it's just my name don't yell at me and i like this one because it allows me to search so you can see there's a little search box up here at the top and what was the field i said i wanted was it abstract yeah abstract so we put in the existing abstract and then we add in the um vm is loaded and ready and unfortunately this start instance didn't return what i wanted it to return which was its ip address i think we're gonna have to query for the ip address of that because i really need that in my life let's see what's available again this is completely unscripted i don't know if this is in here but i'm going to look if it's in here i'm going to use it which is i want like give me the ip address of an instance uh maybe i should narrow down by instance or something get region list zones get instance template now i want to like get the instances details it didn't come back as part of the response uh i didn't see it in there but we could check the start instance executions uh which was i think it's a top one top oh yeah it doesn't list the uh actions things separately i don't know why i thought it did so we go into the step and then we can look at the return payload to see what they gave us um that was the headers it's not going to be in there should be in here [Music] i really want the ip address why why do you forsake me activities give me the ip address let's take a look at the you haven't you haven't saved this flow and it's making me nervous [Laughter] thanks for for you brad i will save anytime you need me to sir let's go take a look uh we'll we'll take a very very quick detour how are we doing on time brad i feel like i think we have two 25 minutes okay so i i've got i've got three minutes to go look to see if there's apis for that v1 instances get add get what's git give me yeah network details that that's that's what i need this this this is what i need so let's take one more quick look and see if they didn't get already give me that google compute engine not templates not a create what do you give me nope okay it doesn't do it would it for the could it be the google cloud virtual network because it was network details nope yeah this is something totally different totally different um so that just means we'll need to create it hey i know what a future live code is going to be is is i'm going to come over here to this start instance and tweak it just a little bit to be get the instance details because this api is accepts pretty much the same stuff you know projects project zones instance resource id which i'll have the resource id uh so i think that this is a pretty easy call to you know switch it uh from start to just get man i'm i'm sorely tempted to just do it right now but i'm not going to i'm going to get something working first and then we'll tweak it so this this is working um except for the failure route let's do the failure out we're never going to fail right i don't even know what that is exactly oh that's that's why i like you brad bring in bring in the right right things to the business so we need to update our record so i'm going to narrow this down to update record i'm going to update my artifact record and i'm going to tell that poor little artifact record that the abstract and we're going to get our data pill i'm going to go a little faster this time artifact record abstract the the vm is sad you have to start it manually should we send an email to uh we can send an email and i think we do uh when the abstract is updated but let's send an email hey you know what just came out was uh on the developer site which we haven't yet plugged yet so minus two points from both of us is uh the developer site over here learn and let's go to uh learn overview nope that's not what i wanted but we'll go to courses and then if we go to where am i going flow designer i'm premature aren't i oh my goodness coming very soon coming very soon to this page is a new module for doing notifications in flow designer uh brad and i both reviewed that and i i think it's released yeah like on friday i thought it was in already well obviously i thought it was in already too but i was wrong uh because it's not here unless i'm on the wrong version am i on the wrong version i am on the wrong version oh i like that little version picker up there we gotta go to paris where is it flow designer look at that crazy notifications and flow designer so this is what we're going to do while we're here on the developer site you can find us brad and i uh here in the blog as well as get to share projects in the community and local events like our developer meetups that brad and i helped manage all of the apis under reference including all that really cool stuff over and now experience i can't get distracted i can't go to the component playground right now but it's awesome you should go there it's a lot of fun let's add a notification so we have a question is this uh is this spoke available in pdis um that is a really good question so the store spokes currently aren't available in pdi's unfortunately all right so let me see um i need to service now core i need to send email and i'm going to uh target record is our artifact record we who we're going to send it to is those crazy hosts from that artifact record hosts the required hosts are the ones who care vm is not started go start it yourself dev program automation i just made up that signature i hope everybody appreciates it i like it so now we're going to send a an email to the hosts to let them know hey you've got to go start up that but we don't send an email or any notification to them on success because we expect success we don't know what failure is um uh we just haven't yet succeeded uh so we're we're not uh we're not gonna send a notification here because i don't wanna know when it succeeds i wanna know when i need to take some action so that is our start of em guess what we need to do next brad we should end one we should end one and we're gonna be risky let's be risky uh do you want to duplicate this one i feel like copy flow let's let's do it let's do it and we're going to put it in the correct uh spoke uh application copy it copy copy copy copy so what that's doing behind the scenes is copying all of the both the trigger and all of my actions and their settings into this new um flow record and so clearly we're going to have to change this start instance to be the end instance one because this isn't the that's that's not the rape but otherwise we should be pretty close uh so we want to end instance now uh vm what do they call it it's a style i think it's stop but uh but i tried two so then i there's no more you just have to and we already have this guy so we can copy that and move it up here and then zones so help me not shut our stream down brad let's just say thanks for joining us uh everybody just in case so for live is the one i want to shut down for sure you know i probably should have created a whole new account just for the riskiness of what i'm about to do so i'm going to delete the start instance action um this looks right i'm feeling a little comfortable about that 1b for live that's fine i'm going to update the artifact record vm is stopped brad is safe and send email on failure to the required hosts vm failed to stop please stop spending the money all right thanks for not putting my name in there i i have been a culprit myself i just have been doing it for a lot longer so my failure rate has uh died down uh because you know habits humans habits so are we ready to press the button it's been really nice hanging out with all of you we're glad to have seen you uh we hope that this action doesn't uh doesn't kill the stream so uh let's close this api page so here we are we've got two let's uh let's test it because this is this is how risky we get let's do it let's do it oh it says it's completed which means it started to turn it off let's take a look says it's on let's give it a moment i haven't heard anyone yelling at me in the background so we at least haven't turned off the wrong one yet let's give it a refresh all right turned off oh my goodness i'm excited and we're still going and we're still going so double success so this is pretty close to handling fridays now um i need to tweak my trigger a little bit i do have a question about our if statement in the flow shouldn't that be after we try to stop the instance oh so that status is actually on whether or not we're um found the artifact record or not okay so we probably should get um we probably should do double error flow logic down here on the success or failure from the starting and stopping instance um the reason i hesitated to do that was because what i really need to do is add in that get instance information um oh yeah and handle that and then then i can actually pass actionable information to the user which is i really have actually failed or i've succeeded and here's the ip address um and and go one of those two branches um so that's why i didn't add that yet that is something that i will need to add um but i have not yet added that because i need to add that action so on uh 1500 hours we're gonna run this one to turn it off so that's pretty ready i think so um we could we've got maybe like three or four more minutes before we need to start wrapping up brad do you think we should what do you think we should do in that uh the interim do you want to copy the the stop start instance and uh look at switching that to the get because i think that will be like i think that's a three minute operation all right you wanna you wanna copy it i wanna copy sure we did have a the get instance by zone did we did we validate that that is not going to [Music] if we do that after we start the instance do you think that might give us the ip address no because it's just returning um the names of the instances but we can take a look at it that was a chat for suggestion um hey maybe they're right we should look no get instances i think that's the same that we were getting from it says punch the response oh hey they appear to be getting instances you you chat person whoever you were i think this is giving me what we want but what we need to do is turn this one into so this is returning me instance network oh man it's giving me what i need right there oh yeah let's do it let's throw it in there yeah we just run this after the start right yeah so right here we do get instance that's not it this one by zone it was too specific for me get instance by zone let's do it and we're going to pass in um these others i think nope i think do we do it the same way we started it because this doesn't actually give me the details this start instance doesn't give me enough detail do that to just use the values in the second one oh man this really is calling for me to make this a subflow and i'll pass in zone and instance at the start so right now i'll just need to set both of those manually and so this will get me the details of that instance and then i can use that down here vms loaded and ready and i can get the instance details network interfaces network ip address right here save this is exciting i think what we're going to run into though is this is going to run too soon and it's not going to have information for me yet we need to wait oh i think we i think i think it's going to have to wait ryan has he already told us to do that in the chat no ryan you're on point because because i think it's going to happen too soon and it's not going to have the ip address yet because it doesn't acquire that ip address until after the vm has gone through most of its launch so i think it's going to end up not having that information yet for me unknown information network yeah see the network stuff is not provided yet i don't think it's got network ip in there but i don't think that that's the one i need yet because that's the internal one and i need the the one later so i'm gonna have to uh invoke maybe a subflow or something that that's going to run asynchronously like five or ten seconds later i think for now we may be out of time well i do believe that for now we're out of time but uh but thank you chat uh for giving us that idea uh you were totally right they totally provided that they just made it seem like it wasn't a thing that i needed so um i will stop share and hi there brad it's nice to see you again hello everyone that was a lot of fun um and i'm super excited to finish this up and deploy it into into production so that next week so we do this live stream on youtube and twitch um every week um and you can find us by going to the developer site um as we showed earlier and also it's a servicenow dev program so it's youtube.com servicenowdevprogram and if you're watching on the creatorcon site uh you can scroll down to more resources and click on servicenow dev program youtube channel and it'll give you channel which this following our show um that that we're going to wrap up right now is some socials which will be in those as well and that's also where you'll find the links to those shows and we'll have a slide up that details that but in that resource area is how you get to choose which social uh that you're going to to go join right after this so that was really cool brad so what we did is we found and downloaded a spoke um which is a collection of actions for flow designer from our servicenow store we we loaded that up we looked at its details we did just the tiny bit of configuration which was provided some credentials to the the endpoint that we were working on and then we built two flows to start a vm and stop a vm if there is a live show that is on that day it's not perfect yet it's but it's but it's better than what we had yesterday which is what we aim for around here is better than yesterday because i want all my days to be slightly better than the ones before and uh because that if you aim too high uh you you're gonna just be sad all the time i just want to be incrementally better uh on on pretty much everything i do so uh hacktoberfest tell wrap us up with a little bit of that and then we'll rate our drinks yeah hacktoberfest uh we are i don't know three four days left in october october yeah so hacktoberfest uh if you are you know if you're interested in spokes or now experience components uh you can go take a look at our blog post around hacktoberfest it'll give you more information on how you can get to one of the githubs with either spokes or components in it you can fork those clone them make some changes uh commit your changes and and then open a pull request and if you open four non-spammy pull requests you get a t-shirt from digitalocean uh and uh not a lot of time left but there's probably enough uh to get it done if you want to well the other thing is is those repositories are going to live on and so that's right they're a place where you can contribute and share to the community and see what other people have been building um so your service now instance is a good place to to find examples but also these uh you know github re repositories are another good source of what you can uh find and see learn and do um so bad how was your beverage today sir yeah i had the saloon juice and uh it was a solid four out of five uh so it was a good one and my uh innocent gun uh was quite tasty um this uh rum barreled red beer was delicious and it gets a four five it moves right into the victor category so um there's going to be a slide that's going to come up in just a moment and we're going to transition into the socials so we'll be over there in just minutes from now and you can follow the details on that and uh come join us anytime on youtube all of our shows are streamed and saved so you can watch them on demand and we we're super glad to have you with us today uh and if you're watching us in the future well you know come join one of those live streams uh that we have every friday and uh thanks so much thanks everybody welcome back i hope everyone's been having a great day so far and to end the day today we have special networking and q a sessions with the product experts and if you missed something from this creator con 2020 digital experience or you just want to watch it again all the sessions workshops and content are available until the end of 2020 thanks so much and i'll see you at the networking [Music] [Music] reception you

View original source

https://www.youtube.com/watch?v=40MuUQ5F2u0