Orlando Component Building - Live Coding Happy Hour for 2020-03-13
smile hello and welcome to a live coding happy hour on this fantastic March 13th 2020 I am here with my favorite people and moving into the weekend and my favorite way so let's get started let's start with Aunt Rose uh Chuck hi Chuck Kumasi senior developer evangelist new title since you saw me last on this show haha nobody has to ask what TPM M stands for anymore I bet it was ServiceNow for about ten years there was a customer for a couple years before that always have some sort of pet programming project in my back pocket and very excited to be here and learn about Brad hey everybody Brad Hilton I am a developer advocate with the developer program at ServiceNow I've been doing all sorts of ServiceNow things for about the last decade and I am excited about today's show they're letting me drive we're going to see what happens and I am Brad's partner here at work Andrew Barnes developer advocate in the platform business unit and we are just excited to be here today y'all have seen us before hopefully so will will cut right to the beers I'm still working through my eighth Street Pale Ale from Four Peaks brewing so this is another one I think is a repeat from a few weeks ago got a few of these it's good I like it there's a good friday afternoon coating beer Brad what's got alright I have a dogfish Head worldwide stout barrel-aged I've been into the barrel-aged stats this winter and I know this is good dogfish Head nice I almost grabbed a barrel aged out of out of my fridge but instead I went with the older s butan which is a Russian Imperial Stout so someone's gonna be having fun today we're gonna have fun on the show today let's see oh I don't know no I have to look you you know you can't afford it if you have to look right yeah it's 9:00 you'll see how we get through this one so today as we said Brad is gonna be driving if you didn't notice we got a brand new launch of the developer site developer dot service now calm where you can get your personal developer instance and training and API documentation for our platform and what's new on the site right now is all of the information that we've released about now experience which is our new design and UI framework system today we're gonna be working in that system and Brad who has not a lot of experience with this is going to be learning live just as you would how to get through this I've had some some light experience in this and Chuck I believe has done just a little bit enough to be dangerous but we're enough to be dangerous so we'll get work through it so that when you get to working on this you'll have that leg up because you you get to watch us make our mistakes so you don't have to make the same ones you can make different ones oh yeah and we'll throw in what mistakes you've already made - yeah one thing to note is I will be releasing a blog here shortly to show you how to there's a bug with personal developer instances right now Oh in that these components are web components and web components have a naming standard and they can't start with numbers and how much time did you spend figuring out more time than I would like to admit and all of the personal developer instances scopes start with numbers so the default scaffolding ooh makes it so that your components don't work so I've got the details on how to fix that and get around it I'll be posting that after the show today so you can find that on the developer site under what is it just the new menu at the top is it's not share it's a it's not community I don't remember what it's called but it's a bit too easy connect and then blog from there and we'll get a new version out that solves this problem but for now if you're excited and you want to do builds against personal developer instances you've got a you've got to do a couple of things to fix that naming so it's using the company code as part of the widget the component it's part of the component name Oh didn't know that okay cuz they have to be unique and so we're using scope plus name just like we do for pretty much everything we didn't underscore and we didn't start with the X underscore so they dropped the X underscore part that's inconsistent with everything else but okay and we're adding the X back so that's the that is the solution is we're putting the X back x and ur square will will now now solve that so we have a meetup app right bread yeah and you want to talk about what your what you do before we went to the share yeah so we have this meetup app and it has a service portal where people made of organizers can come in and interact with meetup stuff and do some things in order to manage their meetups and there were some things that we wanted to change and we went into that service portal and tried to change some things I mean it's it's sometimes difficult to work with other people's service portals that they build it and we figured you know what instead of rebuilding this from the ground up we're going to rebuild it using components so we are going to try to build a component and I think I mean my goal with this is just to build a component that can interact with the database somehow so it would be really nice to get a list of meetups I would settle for a number of meetups from the Midlands table I think you're more ambitious than I am for today so good well I don't know anything about what it's gonna take like getting a working deployed component that you know renders tanks statically was was sort of the goal for me for today so if we do more than that that will be impressive so bread all right well how much of the pre setup have you done have you installed node and NPM and all that stuff or are we going free yeah zero so I decided to get a little bit of the pre setup done and just so that we didn't spend the whole time trying to get me on the right version of node which I happen to be on the right version and that was nice but but yeah so I guess we can start let's go ahead and drop into the share my footnote to that is that I had a horrific problem getting node installed or at least the the parts that are needed to do the ServiceNow pieces because of permissions on my computer and and there is an option to say no no no don't install 18 user local Lib or wherever it's gonna install install it in my home directory because I'm the only person using my laptop let's be honest and and that cleared things up right away it got rid of all my permissions problems I mean I was on the phone with the product manager on a company holiday and it was it was about four hours of pain and suffering but there are rounds if you hit that stuff nice alright so I wanted to start just by sharing the new developer site and again if you need to get to the blog you can go to connect and click on the blog it's a beautiful thing but let's go so I started in duck so I'll wear advise everyone to start so the docs are really prescriptive step-by-step get you going off the ground and then once you need reference material that's when you want to head over to the developer site so that's sort of where I drew the line in the blog I wrote about this was you know do your initial setup with the information from the doc site and then when you need to see more examples and learn more and get the API references and things head over to the developer site alright so I started here on the doc site I did check to make sure I had the latest LT s version which was long term support I did not know what that stood for off the top of my head and I had the right version but you if you don't have the right version you may have to uninstall and reinstall but so I have been through these steps and then the next page is set up your project and I did I did come in and connect to an instance just to make sure what we're project that's a good question a project it is I think it's going to encompass everything maybe all of the different files and everything I need for my one component is that right or can I have more than one component of the project you can't have more than one component in a project but they deploy today is absolutely so if you have a complete component that so if you're using or creating a large component that has leveraging sub components that you create or that service now is provided and you're leveraging then those will all be either built there directly or brought in as dependencies okay I would love to see that if we have time but if we don't we'll come back to it because when I was doing my experiments it was pretty much one component one scope one project and it felt like it was a lot of back and forth and repeated stuff like Oh got to install this now I got installed again and I got install it again and it was very repetitive and time-consuming so if there's a way to consolidate a lot of common components into one project slash scope yeah that's that's uncover that if we have time today if not we'll connect to it and so the the CLI so the command-line interface that you'll be getting from the setup instructions it's called now CLI so you'll see that in the commands here can you blow it up at least one level red yeah I'm having a little trouble reading yeah let's make it to go to 125 Thanks much better right and so you've you started by already logging into the instance which is good because I would have to break out the shrubbery for you basic auth on a command line you get to be exposing some credentials yeah well I went ahead and used your credentials and you say oh nice ok I use them all the time I got Amazon stuff coming so yeah let me let's grab my command line and I'm gonna make sure that you know I agree I got out of this do we think I need to reopen ok you will not need to reallocate now once you have dedicated a project it is stored in that project yep encrypted all right sounds good so let's go I do have a folder created I think so let's look at so we're we're at step 2 here so I've authenticated to the instance and I did create a project folder so what did I call my project folder I did this a whole couple hours ago so who knows what I did look in your history back then yeah creating a project folder we have had some issues with cloud-based folder systems like what's the Microsoft one we're using onedrive onedrive yes if you put your projects out there there's been some issues with I think vs code extension that we've got and and now CLI it's like that would they do something crazy with the cloud-based directories when you're syncing them so you take that with a grain of salt I prefer to use local directories whenever possible okay okay check yes good so are you trying to share your terminal because we are not seeing it if I'm about to okay I'm about to let's go here I'll share it on top here course that doesn't look good are you doing terminal are you gonna do this through visca well so I suspect he's gonna do terminal for the commands and then vs code for the coding part well you can run the commands your terminal window of vs code so you're really absolutely you can yeah well I've got the terminal open to it yeah where can I move it that I can still we can still see things that's good do that yeah all right so step 3 we have to what are we doing here you're gonna create all the scaffolding for your project now right so that right this project command is and so you're gonna give it a name and the name you needs to be a unique name so but don't for example well you can but don't use your scope name because then you'll end up with the component name with the scope name in there twice yeah so I've been using my initials and then the component name and then actually removing my initials part but I was I was crying for a demo and I called him like SN clock SN - map SN - so it mean it's just some kind of name that'll help you understand what it is later the requirements here are that it's alpha and there's at least one - and they're lowercase so alright do I have to put in my org the beginning like weekly I don't think so I've never seen that before I don't know so these are my initials you guys can guess what the middle initial stance 401 we're gonna go like that then do at bt t then / and then the name of the rest of it ah well I would follow that okay just to make sure that it stays unique in follows their format I'm sure there's some reason that I don't know about why we do that format okay mister me come eat up all right sweetie meet up look like a description in there um if you don't specify scope it will get the scope and name the component based off of the instance that you're connected to okay and that's what I advise you to do unless you're doing something unusual like the building for scope that doesn't isn't your instances scope when I said scope I meant that called any code if you've got multiple scopes on that instance how's it going to know which one to get sorry I misspoke and said scope when I meant company code oh okay so if for example you're you're developing for customers org on not their instance potentially then you want to set the scope yourself gotcha okay so that should be a you we're just gonna leave scopa okay and so what that will do is it will grab it will go to your incense and reserve the scope name right then oh you get a error I don't like errors we learned from yours middle not module not found Oh have you have you X well no you need to do that after you do project the NPM install have you have you done the login in this folder already or did you do the log in before you created the folder good question I don't know if I've done it in this folder let's uh I guess let me login in the folder so we'll take this up screen yeah and if you just do bang now CLI login so exclamation now CLI login it'll execute the last command like that that you've done I believe I did execute it and should be logged in and then you want to clear your terminal with clear before you bring it back there we go and so we'll want to try that command again here I had the privacy shrubbery ready for you when you hit the up key I was prepared all right so angry anything let's see the start of the air guitar okay hmm well do a dash dash offline and see if it builds them no no but we're in the command again with dash dash offline and so this will not reserve the scope name in the remote instance yeah okay ID you will not know you have a problem maybe I did not successfully go through this but I thought I did financially to do what is next should we try the NPM install uh sure I mean go ahead you're gonna have to do that after you set up the project again let's see if it's got anything pending nothing okay so we've got the now CLI installed and you successfully did the login step right anything when you did that no looking for my notes try try to do the offline step again and set the scope so do a space - - scope and then you know set a scope like X underscore s and C underscore a BTT underscore m and then like m e it's probably about as many characters I don't know however many 80 characters wheel is 12 okay okay well that's exciting yeah try and did you do the scope or not the - Jeff scope yeah I did that okay so I was checking my notes so Andrew suggests handily NPM in star - gee like if that's the thing we're missing let's give it to it alright let's try it did you mean one of these what is now CLI - - version return you does it say 1700 ok right like something's wrong about base level yeah how about we uninstall now CLI and reinstall it or even node might be the problem if we can't even get a version command out of it yeah I don't I don't even remember how do I uninstall the now CLI from NPM is it uninstalled yeah I is the install NPM space I is installed so NPM NPM - JEE uninstall package name you I'll install and - CLI it was a head ServiceNow slash CLI 1700 what was what was the from the instructions in the dock behind you don't say yeah I think this was the last Oh previous page that's installed so there it is and this is what I did on Presidents Day day off my ass oh wait no you want you want the doesn't matter where the G oh yeah that G is it's fine you've copied the G's - cool run that then we'll put it back on look at you trying to load it early access problem I had Oh see how access problems yeah yeah now it's time to do a little Google Flu is an NPM command or that lets you install it like right into your home directory which is what I had to do so I'm hold on see we can find NPM install all directory and might be getting rid of that - chief but let me check downloading installing packages yeah so that that will make it not global so not for all users so that's right for an individual user then correct NPM global or local packages oh wait a minute I might have it still in my Pacific transcript oh come on slack be good to move oh come on slack [Laughter] I don't think I've talked to this guy since um there's a girl coming dude yeah so green cloud says they had that same problem they had to uninstall node in NPM and reinstall node in DM so would you like to go through that Brad or do you want to screen share with me and I will type what you tell me let's do that because I would really like to see something in the instance okay all right I believe I do have the right node version so Brad will if we do that you will commit to adding to the YouTube comments you're fixed to make your computer happy once you make your computer happy good point yeah assuming that I am able to make the computer happy oh that was that way today we will make sure that your computer's happy eventually let me scale my display I'm not the only person who ran into that let me oh I have I am NOT set up for sharing screen give me one more second somebody check your issue was that was it local permissions related I tried so many change owner and change mode commands in UNIX it was crazy I could never get it to work out of user local so we found an article that had a command it said run this and it will install into your home directory basically and after that I had no problem okay should have made better notes on that piece everything that's not what we want it does look like for YouTube comments we've got you know some some people that have ran into some issues yeah and and I tried quite a quick I've tried installing it with root access it just it's like half the time it would say all right this stuff is owned by you and your home directory you don't have access to it the other half the time it was this stuff is owned by root in this other directory and you don't have access to it fine just all the terminals that exists get a new terminal make it bigger all right here we are we are here we're going to the dark side we have gone to the dark side all right so I am in my components directory I'm gonna make a new directory for breads awesomeness you've exceeded my eight character limit we've moved in we've moved into bread awesomeness and we're going to now CLI project name is gonna be at bt t / what you say it was me meet up with nib - let's meet up - list well your your terminal screen is just off the YouTube screen - hi little high little too high - higher Oh too high got it because I cut off the browser stuff yep there we go and have you switched over to controlling the stream bread I have not did you go to streaming class he did he went to stringing class good no I have to remember well it's a meetup list and now we're gonna do description is meetup list and this is gonna build this oh I'm gonna need to login so we're gonna copy all this mmm store it real quick you know right here just just wherever and uh and we're gonna now login - I don't remember the syntax for logging in let's get us a new browser window browser window appear developers well actually well I know how to get there which is go to the developer site Wow oh I must be you know a profile that's nut and then I'm gonna go to the docs for detailed steps on the doc site so I need to log in which is here let us see a login - - host on your host URL - - method host basic yes PS dev program most method user name and password oh do we need some shrubbery no I'll just pull it off the screen ok basic username and now once I've gone to username I'm going to move off the screen it should ask them first can you do it now CLI - - version and nobody stopped me at the start of this thing which was I apparently didn't hit tab appropriately and so my command started with now it was just now it wasn't now CLI is deaf is a deaf program dev or dev I think it's deaf program Dev I don't know yeah that was for Brad oh I was muted I told you it but I was muted I want you now what's what's the freaking instance name program alright but it does appear to be doing something so maybe that's right checking connection yay alright now we have done logged in we have done logged in that was great I'm gonna point out how awesome that was we've logged in so now we're back up at the step of we were going to get from our PS code this handy-dandy copied thing we had already typed before pasted in now see a lot project so now this should be building the scaffolding for my component so it is log into the instance created that scope and then locally created all these things that had just said so that means here in vs code I can open a folder mm-hmm and and Brad are you ready to take over telling me what to do sure are you gonna tell me to open Brad awesomeness cuz that's funny I think you could always okay so now I am envious code I am so all of the files that have been created here these things are and they do one thing I will point out right off the top is there is already a handy get ignore nice and you should be connecting this local repo that has been created for you with a remote repository so that you can work on these components as a team because you can't reverse so want you to play this to an instance you can't pull it back down from an instance and work on it so you need to when you're building your components commit your files that you generated locally to source control okay good that make sense yep so the thing I was pointing out with the the special case for PD eyes is here's our scope name that was generated and here's the component name and you'll notice that it's basically this it's basically Brad plus the component name that I put in so it will be numbers here and you'll need to and I'll detail exactly where you need to remove these in the blog post but it is I'll just point them out here so under source under the name of your component will be a folder and in that as index this create custom element is where you'll need to adjust and add that X - and then under example so it's X - not X underscore yeah - is though is the convention for these components and then under example in element J s you'll do the same and those two places will allow you to deploy your component to the instance and then I'll show you the one thing you need to do in the instance once we get to that step while I was filling all the time what I was supposed to have done is used that time that I was filling there to install all the dependencies connector I created the project yeah but but I didn't so I was bad but that is now we have a scaffolding for a component this will a component that does nothing right now locally in your computer mm-hmm so if you go to source and then the component name folder and then index J s you'll get this this view that we're at here and right here under view is where you actually put what you want the component to do like this is where the you know I sometimes say where's the beef this is where the beef is yep so low all YouTube and twitch viewers so that will my expectation is this text will appear if I run this component locally so let's see how we're doing now we're getting close so this is it put it in in an h1 while you're while you're waiting let's make a big oh we'll make it big all right sure what yeah we're here we're here make a big I approve there we go all right so we're almost done rendering and then we'll be able to render this locally don't you you still need to do in the now UI JSON file down below third from the bottom on the left don't you still need to put in the UI builder section or is that once we place that only I want it to be in UI builder gotcha okay so we don't need that to run locally nope okay so what Chuck was pointing out and we'll go do that while it's finishing rendering is there is a special step here under developing components for workspace so if you're building a component that you actually want to show up in UI builder and so if you want to use UI builder to create landing pages for your workspace and this component should be one of the options that you choose from there there's a special step that you have to add and it's detailed here under at a component to UI builder but that won't be all of the cases you need so that's not the default okay good to know all right we have we have built so that means that we can now now CLI develop and what this does is this is going to set up the environment for me to build run and render in a browser locally my component before deploying it to an instance so it allows me to test this ahead of time so that that sets up it sets up the environment for this component and you only have to do that this one time right okay I think it throws out a little URL does it not you know terminal window says if you want to test go here I don't remember I'm a memoryless machine so it's still thinking about rendering so there are some commands available for when you're working on this which I don't actually remember where they are here I know where they are on the developer site so if I go to the developer site and reference now experience UI framework under the CLI section and then CLR I've got all of the the commands available and the details and I'm gonna say that black looks great that just pops out much it really does pop up doesn't it I mean I think that looks really nice so under the not deploy but develop you'll see we've got some choices for parameters here I win with the default but you can definitely use some of these other choices which allow you to specify which port and Howe and which entry to render on that but if you don't specify anything it renders the entry that you're in on the default port which is 80 81 and it has compiled successfully which is what you want to see and that means over here our expectation is that we get a big hello to all YouTube and twitch viewers and we should always know what victory looks like right mmm before we press the button hello are you two - twitch viewers yes so we have successfully built the scaffolding in dependencies that we're currently leveraging for this component what would you like me to do wanna get some database info I would like some do database and so should we deployed this to the instance first and make sure it works on the instance I mean that seems like a reasonable step so I'm gonna open up a new so I can still be rendering locally and deployed remotely components Brad and we're gonna now CLI deploy and so our expectation is that that is going to upload our component to our instance you know how do you know it's there uh so I'm gonna go to that scope actually show up in studio nope oh it created it so it creates a scope so every component yeah so at a scope can only contain one top level component there's that's a look hard limitation is only one you can create the scope first and then units that was created first so you can use a pre-existing scope or you can create a new scope and the when you do that project your man it creates that scope right then even though there's nothing else in there so it did deploy this because these records wouldn't have existed otherwise and now I go to check and say it's successful I already knew it was successful because the definition and source code are here um if you do like Chuck was mentioning in our building one for UI builder you'll get two extra records if you're deploying this to UI builder and if you have never seen UI builder let's go take a look at it so I went to workspace experience landing pages can you bump up the font absolutely and open up any old landing page there and then click this UI action that said and I want to click the one that says open in UI builder not enable because I wasn't ready for that and what you'll get here is the list of landing pages and then any components that you have that are available for UI builder to add into landing pages out-of-the-box service now is shipping six of things I think it is I think that's right yeah and we're gonna add to these over time but for now for landing pages where there are six available out of the box and you can add more your so either from building them or getting them from share or partner or the store and you'll see that my component is not here because I didn't tell it to be but the way it works is you can take one of these components and if you are on a page that you can edit you have to make a copy interesting where is go with global what the heck well what do you have in your box man what's available nothing there's a couple of dialogues that work like that I I don't I don't know what you want can we just copy this one we're just copying cuz yep could make a copy please make a copy I think it's upset with the scope I'm in could be so but in general the point is that you can take these and drop them in but I can't do that until I have one that is editable and I'm struggling with that we could sure that if we wanted to I have an instance definitely that is happier with me for that I suspect that you wrote is M well 15 minutes can we do something with the database I don't know that that's a 15 minute problem Chuck okay would you do that through what a REST API or how would you call that so they could still test your component outside of the the instance what's the basic approach to say hey get me a bunch of records yeah I know we're not dealing with glide record queries it's not server-side script that's a that's step three and I'm still on step two so so I'm not super familiar with how to or even vaguely familiar I'm not familiar with how to interact with the server data yet that's that's my weekend project graph QL it's going to be graph QL I know that part but I don't know actually how to do it is it documented interact the graph QL effect API is documented I'm looking at the documentation right now so the first step was to get a component that rendered yep and we don't wear that so the next step I in in in my world is to go to the developer site and go to these examples and start with the counter so there there's there's two sort of simultaneous ones which is under UI framework and the now experience you a framework 101 is understand at least like these first four and then move into the counter and then come back and work on state action action handlers and maybe down to like lifecycle and then go to checklist and then finish the rest of them and then move on to task board so that's my sort of like learning plan of how I think that others should go through this okay and so if you pull up the counter example it will teach you how to get through building a simple counter and and we have enough time to do this one before the end of the show is that what you want me to get more bread let's do it let's do it alright so there's a zip that you can get here that starts up with the some of the scaffolding for you but we're just gonna inject right into the component we've already done Brad's awesome counter so what we're gonna do is we're gonna take this and so this tells you go into your index index and add this and so that's what we're gonna do so we're gonna come over here to our view and return and we're gonna replace the current return with the one from the developer site and that seems to make sense so it says we're gonna put some text we're gonna throw in a simple button we're going to throw in another simple button and we're gonna throw in a value this is a bit different than angular because there's no like meta character to say here is my value in the HTML part not yet okay yeah right yet we don't yet have here's the value so this is just the HTML and so our expectation here is that over here this should have recompiled but I'm got an error so let me rerun what is my terminal is angry all right so this should compile us a a button that doesn't do anything to two buttons that do nothing in some text that's our expectation what we're gonna get ya then the next all my button start [Laughter] so in and the example even it tells us that it's hey the buttons don't do anything which is fine so it did then tells me hey there are some useful state things that are going on which is why I said initially get down to like state mm-hmm and understand these things and a little bit better before you're doing the example so go read the documentation on the state before you get to this stage we've compiled successfully which means that potentially we can see two buttons on the screen hey they don't do anything right but their buttons they change colors when you click them that's something you have to have a false assertion that it's true that they don't do anything so the example tells me come down here in my create custom element and add in an initial state of tally is zero and then up here I'm going to need to to leverage tally so that's what we're going to do now is we're going to OH first up here where we can handle States because we're passing them in into our view and so we're gonna pass past that initial state in here but we still need to do something with it so we're gonna say that state is telling and now we're gonna leverage tally inside of our HTML this is just good catches in text Hedy which is basically just adjusting value to be tally instead of zero so we're gonna do really tally there we go all right so now our expectation when we build this is that we actually have zero and it's a real zero but it still doesn't do anything so if we take a look at the browser we've done a rebuild successfully and that zero is now dependent zero and we're actually gonna you know be fun and you know why don't why not start at 101 101 is a binary high-five look at that so we're starting at 101 nice so the next step now is to make the buttons do something hmm because they they don't do anything right now so our implementation for button we're gonna adjust our button to have an on click event that's gonna update the state does that make sense mm-hmm so this is a stub we're not actually gonna put that in there because it doesn't actually do anything we're gonna take this one which actually does what it says so let's throw in this update to button and we start inside the spam here oh really I hate you what is our Auto jeaious pretty on this guy selected I thought it was not KF it's um I can't remember I want to prettify you do it go to view and view menu on the tip top pretty savvy appearance No maybe it's command ballot pretty might be no I had it I knew what it was someone will tell me in the chat soon I'm waiting for it so I'm gonna paste in two on clicks that are the same right now and so the first one says update the state of tally to tally +1 which is what we want our counter to do except for you know we're strange so we want to increment tally by 3 this you know why would I just take the example exactly as it is that doesn't seem like me this one we're gonna reset back to what I want mm-hmm what's Andrew says right click format document right click that's it document there's a hot key with it though I'm sure there is I just can't remember it it was command option shift there's more than one option all right well I don't care pick one there we go close enough although you still have no right I thought your button tag was whacked but it's not so there we go we now have two buttons and I want to be clear set reset yeah the second one so the first one is increment by 3 and the second one is reset to 101 pretty straightforward nothing earth-shattering here so we're gonna start at 101 and then we're gonna increment by 3 and we'll reset to 101 let's see if it's compiled successfully we haven't caused any global world errors which is great and so we see it's already refreshed locally and oh look at that it's incrementing by a tree it resets to word one our button does things right it's not as exciting as you wanted grab which was retrieving glide records and doing things with them but next week but but we got to where I hope to a kid see we made something something interactive happen is a good second place so next week we'll we'll get to actually like getting a record and doing something with it but this week yes getting our component to actually compile it build and deploy to an instance and work and we will update the the YouTube here with how to fix that particular error it seems like it's a permissions error with with Brad's laptop and we'll figure out how to get around that good bye go and share that with you hopefully you're not operating under at quite as restrictive at least on all of the machines or you have access to in your life I know I've been doing a bunch of development on personal machine myself because I've tested both internal and external experiences for this in the past week so that turned out so not amazing but we got through it it wouldn't be live code if it would fit all winter food these are the problems that real people have we did get a couple of questions and before I go into those I did not get into the remote desktop they won't let me to manage the okay reporting Angie the we got a couple of questions around how this is different how this UI components is different than angular at service portal was one of the one of the themes of some of our questions right so this is our new UI component it is totally separate from service portal in angularjs so it's using a new framework overall so it's not something that you'll be you know using that same paradigm is our angularjs and I don't know if you guys want to add to that at all sure I'll add just a little bit which was that you know with service portal we were locked in to a particular angular version and what we're trying to do here with the now experience and the new UI framework that we have deployed here is ServiceNow is owning this text stack and what that means for you as developers out out in the wild is you can rely on the build process to be updated in the technology behind it to be updated and leverage new things because ServiceNow is owning it so we didn't own angular and when they stopped you know supporting the angular version we were on we were basically you know stuck because if we updated the angular version we'd break everybody stuff mm-hmm and if we didn't we don't enable all the new features so what we're doing with this framework is owning the interaction between you the developer and the ServiceNow instance and we can insert the tank that will drive any of those api's for in this build process and we can upgrade those as long as we maintain the promise of what we gave you still works the same way so we can enable new things maintain the api's because we own them and the connections between those aps and whatever technologies we use to do the rendering of those so we could just as an example be using react right now to to build the component in the background and we could switch that out with something else as long as we still maintain the promise of when you give us this input you get this output so that's the intent 'if so it's a shift so that we can maintain building new interfaces with new technologies but not having you the ServiceNow developer having to learn all of these new technologies or get locked into one in particular other than then ours does that sound about right yep protect against technical debt the we have to be very afraid now Nathan first said I was able to install now CLI thank you for watching Nathan the one's unlocked yes so will we will definitely be adding more enablement here this is just a first release you know and it's a fairly limited scope of enhancing what you can do with the agent workspace we're gonna be expanding that over time but for the Orlando release this is for adding to landing pages and the ribbon and related lists for agent workspace so it's a fairly contained area that we're enabling right now but that's going to expand over time as we make these tools more available and more streamlined for ServiceNow developers and the developer site is built with this I was wondering if you're gonna mention that so the brand new developer web site is built with the same technology so eventually we will be enabling you know being able to build whole you know larger systems with this technology well that sounds like a pretty good coverage of that question were there any other questions Brad that we hadn't hit I think most of them have been answered in the chat O's a pretty active chat today thanks everybody for joining and but yeah I think we covered sweet well let's wrap up one of our favorite ways to wrap up right let's raid our beers or whatever average you have today it's all beers but 8th Street Pale Ale by 4 pigs brewery you know I'm gonna give this the quarter point success factor because Andrew bailed us out on that one three point seven five three point seven five nice Brad you said I think it's a for the worldwide this is actually about four point five this is okay I'm really jealous now I want one I was jealous before now it's very good also for five is fantastic my old arrests butan this Russian Imperial Stout was exactly as advertised so it is it's a solid four it is is good it's funny and enjoyable and the cause of many typographical errors on this video no no that's just me that's that's me without enhancement is is all of that kind of fun so thank you for joining us today we're excited to have all of these things launched this week we'll definitely be doing more on this same topic later on and I would be remiss if I didn't say something about knowledge so we don't have a further update for our knowledge conference right now it's still slated where we expect to have more information and at the very least we're going to be adding some digital components for folks who can't make it to the conference you know whether or not the conference happens live or not we're going to do something so we'll be involved in that and we'll will share with you information as we have it and we look forward to that time period because we we spend a lot of time before the conference building stuff or for you the ServiceNow developer and we want to share it with you so we'll figure out a way to share mmm this stuff with you folks and we really appreciate all of the active chatter today in the chat and bearing with our you know technology stack issues and and we'll share that out in the comments on how we fix that for bread and I really appreciate everybody Thank You Brad Thank You Chuck and have a great weekend you too thanks everybody
https://www.youtube.com/watch?v=57kbG-dRxJ4