UI Builder - Blog Comments Part 2 - Live Coding Happy Hour for 2021-04-16
[Music] so [Music] one hello and welcome to live coding happy hour on april 16 2021 i'm your host andrew barnes along here with my friends today to show you some live coding on servicenow we'll jump right into the introductions with the awesome brad hello my name is brad tilton i'm a developer advocate with the developer program here at servicenow i've been developing on the platform since 2008 and yeah i'm excited for today's show awesome thanks brad and our special guest second time on the show lisa hi there i am lisa i'm an outbound product manager for the now platform and i've been in the ecosystem for about five years and now just crossed over two years a couple of months back and at servicenow oh that's fantastic congratulations two years yeah that's all that's a that's the old timer in servicenow terms and i'm andrew barnes also developer advocate here at servicenow i have been in this role at servicenow for a little over two and a half years and i've been in the ecosystem for about seven years uh as a customer partner uh and now ad servicenow and uh with that let us introduce our cool companions beverages of choice old man tilton what do you have to drink today all right the the chat has already pointed out that our names are reversed uh but lisa's i don't i don't know what you're talking about i have this uh cinnamon coconut bee bomb fremont barrel age stout i have no idea what to expect with this it has melted wax on it it's real fancy looking so that's real fancy looking we're gonna see how it goes isn't i only know there's a freeman street in san francisco because we walked down that but i don't know if that helps this brewery is in seattle oh that isn't too far all right lisa what are you drinking today i decided to not go with a beer today but it's a red wine a adorned feta from our favorite winter here in germany awesome and i have got what do i have today let's see it is a jw lease harvest ale and it is got lots of words that brad might like this is ale matured and uh not i i've heard this word before but i don't think i've ever say it yeah whiskey cats that's what it's a scotch it's amazing like a woolen is awesome it's in our cupboard that's the i think that's ron swanson's favorite squatch squatch scotch for all the parks and rec fans it's good uh so i fixed the names the names are fixed now no more no more comments about the names there's lisa there's brad and then there's knock brad close enough nice close enough so brad we are going to do some uh you know servicenow development today this is an unscripted show if you've never been here before welcome we're glad you're here um we're all very experienced servicenow developers and we really enjoy making it look like we're not by doing a completely unscripted show which this is uh so we haven't practiced this we don't know where we're going to run into troubles just as you as a servicenow developer out there in the world would run into it anytime any day you're doing uh servicenow development and we help hopefully show you that it's okay uh to google to look things up to run into errors to ask for help and work through it so that's the purpose of this show um just as a friendly reminder and what are we going to look like we're not the experts at today brad ui builder uh which is pretty easy not to look like you're the expert in um so we are we that's right i mean it just just really came out it sort of came out a year ago but now it's really out so we we started something last week uh where we have an app that's a blogging app and lisa and i both built creator con sessions for this blogging app lisa built a session uh that's a workspace experience uh for the author so somebody writing blogs can go in and kind of manage all their blogging and then i built a portal-based session for somebody consuming those blog posts so they see a list of blog posts click on one read it and the session has some liking in it but the session doesn't add commenting but we have the kind of the bones for the commenting in the data in the data structure so we wanted to add commenting last week so we made a decision uh there is a comments widget a widget there's a comments component on the knowledge base article records and we thought should we try to use that should we build our own comments component or structure so we decided we were going to use the knowledge one and we almost got to where we were displaying knowledge comments but didn't quite get there that's that's what we're picking up i actually did a little bit of work earlier this week and made the comments work with the transform data resource which we'll look at here but what we want to do today is we want to finish up that comment component to where i can write new comments from that component uh and maybe maybe even like or reply to an existing comment so that sounds fine and you know if you're watching this in the future uh there is the previous week's episode you'll be able to get to it from the descriptions uh and uh catch up uh with where we're at and in a month from now uh if you're watching this you can also have been done been done wow that was great you can work the uh lab that brad and lisa put together um which i think puts this all nicely together in a package uh that will have so much content that's all interrelated so with that uh brad are you ready to screen share do we need to cover anything else uh let's cover right now knowledge now we were talking about it go register for knowledge um and uh very soon very soon uh you will be able to uh you know access right now you can only favorite sessions um but the detailed scheduled plan will be coming out very soon and you'll be actually be able to like you know register for sessions directly um and other than that there is the knowledge creator con 2021 hackathon happening may 8th uh so it's going to be 24 hours of developing uh limit of five uh person on a team we've got some really cool prizes brad and i are going to be doing a bunch of live streaming doing building an app during the hackathon so we'll be participating by building our own app we just don't get to compete uh because we are the the part of the judge judges for the hackathon um but really if you're someone who's watching this show you should participate in the hackathon uh so there is a place for you if you're watching this episode to be in the hackathon so come and join us for that and uh with that let's uh start the screen share brad all right let's be more prepared and there we go how do i look clean well you look like the best best texan co-worker i've got thank you i would be the only one right [Laughter] well we are a small team we are a small team it looks good brad all right so let's uh let's kind of level set here uh so i mentioned that we have this blogging app so i'm gonna go to the home page and there we go it loaded some things i was a little nervous for a second uh so this is the blogging uh home page we have here uh where we're showing a featured post at the top and then we have this list of blog posts if you're wondering how to build this you can just register for our create account sessions but what we want to do is take a look at at least one of the posts in the session you add this like functionality where you hit like and then it increments after three seconds there we go and what we added last week was this commenting so uh what we did last week was basically add this comments come come one step up brad size wise you want me to zoom in or out in you know plus got it thanks all right uh so this is uh this is this comments component this is all a single component it's really built for the kb but blogs and knowledge articles are pretty similar so i thought we could probably reuse it so right now this is all actual data that's being shown but post a comment doesn't actually do anything and like and reply on the comments don't do anything so our goal today is the main goal is to make this post a comment work and then stretch goals are make like and reply work but before we do we get into that i want to show the transform data resource so let's show both the data resources um that we used to make this happen so we have a couple of data resources that we use the first one is this lookup records data resource where we're looking at the comment table and uh the conditions are what are the conditions oh i think we uh did we script these how are we pulling these um this may not actually be working correctly uh so it looks like right now we're just pulling all blog comments uh which is fun uh but anyway we're pulling all of them we it was a society we had a society somewhere filtering for that let's see if we had a parameter for that uh comment query looks like we maybe maybe started one and uh yeah because you said we had to have a comment query because that's what we had to pass the thing like i remember you were telling me did we have to wait on this i we may have quit right there maybe it's just uh you didn't save the page right that's no it's very very possible but i do have this commented out so we'll yeah so what is supposed to happen is we're going to get all the comments related to this post and uh this uh data resource just gives it to us in this format here so this is an array of objects where we have an object for each row and then each field has an object that has the value and display value and our component we can't just give this json structure to our component it needs to change a little bit and so we have i i wrote this not on the show earlier this week to see if i could make it work and so for this one we're actually sending it the comments object so we're sending it that output from the lookup records data resource running a script and then uh making it this uh this json structure that our comments component is expecting so that's working so the first thing we need to do is uh we need to make this only pull comments for the one for the the one blog post so let's let's go ahead and like and add a new comment just to okay uh just to make our testing work so this beer is really weird your beer my beer is really weird it's yeah mine's actually incredible uh it might be incredible but i have to get over the fact that it's got these like scotchy undertones to it first sounds so amazing which which sounds amazing but my mouth's like i'm expecting beer and you're giving me scotchy and i'm confused all right so i added another comment here on a different blog post so that we can make sure it gets filtered out filtered out so if i come in here and refresh it should show me all four because we're not doing any filtering at the moment makes sense uh i guess we can just filter this and uh we only have three there's the show more oh call it does say four there we go yeah this should not be included yeah so we need to do uncommented your um script yet i'm not no i was exp it's working the way i was expecting it because i haven't uh done anything here so i think this was probably not the way we wanted to call this you know what and i think it was also context something it wasn't the imports you went through api and contacts to get to the society uh yes the cis id should be the yeah it's the context up here i'm gonna i'm gonna do a little uh self-promotion real quick [Music] it's going to be a brad blog somebody wrote this blog post that lists some of these methods and that person is going to come in here and say i want to grab the sis id from the page and the page parameter this is how i grab that cis id so nice let's go back and say this is gonna be then i think this is uh called sis id yep so that should give us the right comment there uh we want we want to set the state yeah so that looks good so we're setting this comment query so did that match comment query yes post equals and then we're going to bind the conditions to comment query so i don't know if we're going to run into any race conditions here i think the data resource automatically refreshes if this changes so i don't think it should be a problem but hopefully we were all following that uh and we don't actually have to refresh we can just look here and see it did not work um [Music] we still have four in the results so what's uh uh let's just lock this make sure this gets us what we're looking for why it seems reasonable and we'll save also we have to make sure we're actually calling this uh client script i think we added yeah so we added on the page ready event uh we added an event handler to call the client script so it should be running so now we get to check to see if we get our log hmm logs don't know why that log is there post society shouldn't it be two equals i see it it's really small but i see it or is that an encoded query is it different it should be an encoded query which i think is one equals but that's a really good question that we should actually come in it should be one equal question for an encoded query so let's make sure that it's post uh and let's run that so that gives us three let's copy the query and let's just put it somewhere post equals uh and then that looked very similar to what we had down there right so that looks correct so our client script is getting the right thing now we just need to see why where we haven't wired that up correctly into the filtering in the conditions is comment capital query the right thing we're setting so that we can access it it should be but good question comment query so let's uh let's do this let's make sure that we're setting the right query and i think we can do that by going api state and then comment query so let's see if that is getting set no no hmm so i wonder if set state is doing something asynchronous to where we're logging it before it actually gets set so um you know what i do in a situation like this when i don't have enough information to help i i say something like do we have a place where we've done this before that we could go look at i don't think i've done this specific thing before um right but you've got other apps that i have run into some weird stuff let's do some filtering there's some things i want to try before we okay before we go crazy um i like that doing doing what i want is the going crazy part that's fair uh we also you're not wrong what is happening here i think maybe i didn't save on the last one because uh i think this should be created i mean you can already see here that it has four results on the right from the mini view so but i'm checking one of the things that i've done before for a demo because i have done something like that before see if i can find the solution so one of the things we can do as we can say which i don't think is going to help because we have already you know for whatever reason comment query is not getting set correctly here but we can also say api dot data dot lookup records one dot refresh so we can tell that data resource to look itself up again uh and that actually worked which is good and upsetting um the host is going to let us in i think we're back are we good all right can you all hear us all right yes we fixed everything fixed everything um yeah we we showed too much knowledge and they censored us jordan um we had it all working but but uh you know let's break it again before we make it work again all right so we have we have the right number of blog posts showing there's no show more link it's telling us there's three the main thing that we want to do is we want to make this post a comment thing work so let's take a look at our comments events all right so comment submitted i did we do this last week this ad comment client script maybe we did all right so this add comment client script yeah i think you copied from the knowledge oh from the knowledge component so did this did we make this work last week now that i'm thinking about it i think we did make this i think we skipped the we skipped the uh transform part and made this work let's let's see um so let's say all right i remember that working last time i now remember it working uh now that we've talked about it so it doesn't work completely yet uh i think if i refresh it will show up but we should make it auto do that we should yeah absolutely uh so there we go it's there um this is a comment that uh that works so we should make it audio refresh and i think we just did we just did that in a different uh script right so let's we sure did yeah let's see if we can make it do that again so i wonder uh like i wonder if this will run too fast i think it's um maybe better to add the refresh to the um to the events of the component so after adding the com the comment client script add a new event handler and then add the refresh there and then we don't even have to do it in a script exactly and similar it's the similar thing um later if you um want to add a new or add a new comment below something if you call the data resource to post it you can also have um an event attached to a data resource so once it updates the the record it can after that you can just add the refresh exactly after the data effect succeeding or for posting something operation succeeded you can add the event right there i want to do it there this this seems like it's the better place to do that and then there's a refresh database yes look up record this one records yes yeah so once this succeeds we have created a record then we should refresh we're gonna get rid of it from over here all right do we think this is gonna work i think yes that was pretty resounding so uh this is a comment and this is the well that's not a true statement i'm gonna i'm gonna have to get that it's a comment but it worked out and it refreshed and said five and it didn't work it also didn't refresh the whole page so you stayed in your spot and didn't get pushed up all to the top and have to scroll down again it just leaves you there that's nice so our uh our blog post uh our commenting is working uh something that i did want to do but we didn't do it at the beginning was i do want to show that transform data resource that i wrote just so um i don't know man i'm not i'm not going to say it's like the right way to do a transform data resource but it's the way i did it um before we keep going which is it takes in that comments object that we got from the lookup records data resource it iterates through and then just builds a different object and pushes it into a new array and then returns that array so this is what's making those comments show up and i basically just took this from the knowledge one which makes sense because it's basically the same thing it is basically the same so i think we should try to make we should try to make at least like or reply work on the individual comments so i do have um i do have a like count on the comments themselves now and i do have uh the ability to reply to them so what i want to do is i want to take a look at the kb page and see how they're handling that well it seems reasonable while you're doing that brad um the thing i suggest for folks is go ahead and generate in one of your sub pods or your pdi a each of the app templates that's available in app engine studio so that you can see what those apps are using in ui builder um because there's some great examples in those so when you're trying to learn uib yeah i have a small psa for their templates um just so you know the roles that are being created from the templates are not being assigned to the developer out of the box so that's very true not if you're not an admin so don't have the general admin role but only say only an aes role um you will not see posts and sometimes also not see page variants for those apps that are being created from the templates so it's important to know that you'll need to get those roles assigned so you can actually create records and second for page variants audiences are very specific so if the audience doesn't include the admin role you will not see the variant so make sure you assign yourself those roles at will as well that will definitely save you some hassle it took me a while excellent pro tip there and third yeah we should oh keep going i'm sorry there's a third um your custom roles should not be capitalized make them small letters only because then um audiences are currently um case sensitive in our case right now what lisa's saying is when your colleague builds the app and capitalizes the roles and you may have to chase down uh the error with the dev team which is what lisa had to do when i created these capitalized rules for our blogging app but we've submitted that as a defect to be fixed so that's just for the current patch all right um all right so this is the article page uh and these are the so these are the three um events that that component uh can uh emit and we have worked with this comment submitted i noticed they do a refresh on the comments submitted um i think maybe our way is still better uh on the uh you know on the data resource success but uh we'll leave that up to somebody else so there's this action submitted and reaction toggled so i think we should we should take a look at how this page actually works uh and say if i hit like it just adds a like okay if i hit reply it opens this up and adds a nested comment in here so i kind of want to see if we can make this like button work because the nested comment will have to change some other things as well so now i think that's this one reaction toggle liking seems more like a reaction than an action maybe what do you guys think i think this is what's happening there the client script yes toggle comment rejection so let's see oh okay that's right so either i'm liking the comment or i'm unliking it i'm removing my like which makes sense so in this one i am we're emitting an event that i guess there is a oh you know what's happening here i think there's a page uh a page event that's responding to this so let's hunt this down so the way i would do this is i think i would try to call a data resource from this client script but it looks like this is an event that is being responded to from somewhere else so let's go and look at that was uxfd trigger requested it might also be just calling or opening a modal no it's not a mode is it a modal i don't think it's a modal because there is in the other one they were opening a modal open a clause i'm back and the stream didn't get lost yay you're back we're hunting down an event that is being emitted from a script okay so it's possible this is like this is like an internal some sort of internal page on the event on the page um so something is admitting a an event and you don't know what's handling it or that is correct so what we have so the components can actually process events that you can't see yes that may be what's happening here so when you hit the like button uh or the unlike button so if you've already liked it and you click to remove your like it's going to run this client script which is going to say you know which one's it doing is it liking or unliking and then it's building a payload and then it's firing an event and passing it either the like or unlike payload so so it's very possible that that is yeah trying to the component itself is trying to handle that yeah uh yeah i think that's probably what's happening because i don't think there's a different place where you can register an event other than generally you have these dispatched and handled event that you can events you can register on your page and then you can call them from all over the place so this is a good if if there is a thing that you're going to want to do multiple times a handled event is a good way to to do that uh where you register this handled event you add an event handler and then you can just call that event from different places if you're using evam you have to use that for the navigation event and there's some other i think there's at least a couple other components where you have to use handled events for those components um but but that is one place to do that so let's have the component like the the component's name are you looking up the source code for the component itself i can actually go see yeah nested comments that's the while you're moving on i'll i'll go check it out all right uh actually let's no you you go check that out and we'll move on so i think what i want to do is uh let's just do our own thing for this post page and let's increment the comment or the light count ourselves when you hit the like button that seems like a like a good thing to do if you hit the like button we increment the light count for that one so i think what we need to do is we need to add an event handler that was for the reaction uh oh first we need a client script so let's add a new client script and say add like we'll say add comment like i think i already have an ad like there's one for the whole page yes that was to add an actual like um so i think the first thing i want to do is i want to make sure that i know when this get gets called so we'll do a nice little uh log here and let's log let's log the events payload which i think is going to be an object it's too many l's okay and then let's add this when the reaction gets toggled add comment like all right let's save it come in you have to hit refresh do you have the action uh name handy again the action name um all right so let's hit like okay so we uh we did so reaction is true comment id is i'm hoping this comment i wouldn't see it i'm pretty sure it is all right they're different so if i hit this one again all right we got two all right so it is passing the correct comment id all right so we know that passing a a different one we know that uh it's going to tell us that it is a reaction and that we know what uh comment it's running against which should be enough to do something not the postsys id so there's that that's right i'm feeling i'm feeling 90 confident those are those are the right societies i do think what it the the back end of this is going to be more than just a single data resource so the way our data model works is that uh on the like or on the comment those third times the chart on the comment table we have this likes field which is an integer so what we're going to want that to do is increment the likes count for that comment so we will have the society of the comment so we're going to have to grab the current amount of likes and then add one to it and then tell tell the data reese we'll refresh the data resource at that point uh but we are going to have to do at least a couple of things because we have to get the current number of likes that's interesting because i think that the knowledge one is actually like its own record uh each like has its own record yeah which is why you can like and then unlike something yeah that that's how i wrote the uh so on the post each like is its own record that's how the likes work on the post itself so if i uh if i like a post it gets grayed out and the number increments then there's a record and yeah but in the comments i just added a i just added a uh just a counter yeah just a counter to the comment self which we could have we i mean we could just use that like table also uh we've got 15 minutes left i think the like the benefit of doing this in its own table is to be able to qualify whether that person that is locked in has already liked the comment yeah and then because otherwise you can just smash likes all day exactly yeah that's why uh so in the blog post so this is my challenge lab and uh i have uh at the end of the challenge lab it's a step by step to add the likes but i say because if you refresh this i've already liked this post you can still add more likes so you can refresh and add more likes so the the challenge part of it is make it to where i can not add likes at all uh if i have already liked the post but i we didn't do that that's part of the challenge nice um yeah so i think use the same let's use the same functionality like as your like button from above for that post you can still have the counter but have the counter update from the related records at some point just make it a flow at some time at some point yes which i mean he's doing for the post already exactly yeah we're already we're already doing the same thing for the post so i think i'll add a new field to the like table for a comment so we'll do that here vlogging comments yay i think that's it and then then so it could be a post or a comment can you even use the same data resources because you're writing to the same table i think i maybe i think i can use the same well the data resources is uh just a a create record data resource it's not specific to anything so i can reuse that data resource that's awesome then you give it a differences id yeah so let's uh i have a flow that does light counts already can i copy a flow yes yes is that a thing i can do now yes i never remember boom let's say let's call this that is one of the joys and sadnesses of doing this job is is that a thing i can do i know i'm supposed to be able to do that it's like it was on a it was the good thing is that it even lets you create the copy in a new scope so if you had a flow in one scope and wanted to reuse the same logic in a different scope you could just do that once you copy it it will be created in the scope you're currently at oh you know what i need to use the same flow and just change it so right now if i create a new like it just looks up all the posts yeah you can do it in the same updates yeah so what i need to do is i need to first say i forget there where there let's word that's that's how i do it just create it below and drag it off it's a comment or post and we will say if no if uh let's just say if comment is not empty you can you can do is not and then uh just leave the field empty i think okay and then click done that all should so now let's move you up and then and make your if more descriptive because right now you're looking for is this a post because comment is empty uh is this oh is this a comment is actually what i'm looking let's let's make this post because that's the easier thing to change um all right and then you can also copy actions if that helps you so yeah you need to the those actions right there are for a post one and right now that top one is for it would be a comment i think i changed it right is this a post post is not empty so it is a post okay yeah all right it was it was like just before i'm i'm running in the the slow speed apparently no i i am we were there all right so else uh let's say uh post is so comment is yeah yes there we go i understand why they collapsed the data pain but i want it not to collapse and if it gets more than a hundred thousand likes we're screwed because that's my limit [Laughter] well it's a good thing we're writing individual records now then because before uh dirk and phil were just gonna go smash the like button on a comment until it till it hit a hundred thousand all right just because they could comment and we want to make likes is count the count yes nice how do we look do we think this is going to work posters comment is we're updating comment updating post don't forget to activate so this uh is a one-way street so we only need the incrementer then because your post thing only does incrementing and now your comments one will only do incrementing that is correct we're not going to remove likes or anything like that so what we want to do now is we want to create a like record where the comment field is this comment so we know from our logging that its comment id is what we need so uh we know add like we're just gonna copy this one comment id what's the name of that so add comment like uh this is right we want to add that the user we do want to do that and then we want to say comment comment is no i hit the back button oh no oh we're still good we're still good all right nice but comment will then be a comment is comment id so that is um event event dot payload dot comment id i think is what we want sounds good it was common id not a capital d okay so table name light query uh we won't worry about this uh and then oh data refresh why aren't we yeah this is the other like button oh okay this was from our post we sh we should do something about that but for now i think this will work and this is not um actually for now let's comment all that out so what we are really looking for is when i hit that button does it increment the light count on the record itself because i don't think we're going to actually show that here and we can look at why that is in a minute all right so let's find this is the best live code ever i hit the like button and let's go back and see what's the name of that table did we just create a new record that always tilts me all the tables should have updated in there by default all of them it doesn't have a oh yes it doesn't have a post it has to have a comment does it have a comment oh it does have a comment so this part did work nice we got a comment so can i just uh counter i just bang on this too what happens i just hit it about five times yep lisa i wrote a fixed script that that did that for a user nice it's such a tiny thing but there should there should just be like a an option in the settings for each user that lets you do that give me the updated field and then sort it by that yes yes sort everything updated yes everything can you check the counter on the comment oh yes yes it updated on you can just click on it in the list yeah it's right there so i can it's right there uh likes five it did work yes the good thing about the flow is even if somebody did retract their like it would just be refreshed the next time yeah just refresh the flow also creed uh so i ran into an issue with that uh in our blogging labs uh because i set values on all of the uh on all of the blogs for the likes but i didn't add any records to the like table so you would look at a post it would say it had nine likes and you would click like and because it's running the flow that says hey let's look at all the records but none of them exist it would set it back to one like oh no so i just i was like oh yeah i need demo data for the likes um so all right so look up records so i one of the things i want for the comments is i want to get likes back so we that's not something we were including before nice so let's hit save and then i think i'm going to need to do more transforms because this is reacted it should be true if the logged in user has liked a post but we are not we're not showing that at the moment uh which i think i'm going to need to add another data resource and add it as a second input to this transform data resource um but we don't have time to do that so i i think we're at a stopping point this like sort of works an excellent stopping point um why don't why don't before we stop the share why don't you just give us a little short summary of what we did today so what did we have when we started and what did what did we accomplished so what we did today was we finished uh we finished making this comments component work so we we were able to actually post a comment and we were able to get uh all of all of the comments what we did today was we filtered these comments down and then we made this like button actually add likes to our comments so each comment has a like field uh we added a flow to make that work we did a lot of different things on here so when i hit like it does actually increment the back end and gets the data how we want it now we just need to finish configuring this comments component to display it in the right way awesome thanks for that summary brad i appreciate it all right well i'm going to stop sharing nice here we are that was great brad i love your cup today well this is my stout class your stout glass is very special stout glass wow um so that was a lot of fun we got to see some cool things in ui builder and uh you know we worked on some client scripts in there and we showed off your uh was it that the the data broker that you wrote during the week and then transform data resource transform data resources the new name oh i i will get it eventually uh transform data resource and uh we copy the flow that you were using for the uh likes for the post and turned it into nope we didn't copy it we adjusted it to handle both comments and postings uh you know we did copy it first and then we did just then we adjusted it but but as i was playing it i caught up and i was like oh wait no we we changed changed midstream uh so that was a lot of fun brad um i think uh this was this was a great uh great episode uh for me um i still am learning uh by watching you every time on ui builder uh so it's a lot of fun and i hope you out there that are watching are gaining insights um and lisa thank you so much for joining us and i love your parish shirt today got your parish shirt on i've got my i've got a creator con shirt on noise i think i have that somewhere in the depths of my class i have that shirt yeah yeah this is it's a nice crater con shirt and soon we will have uh you know creatorcon 2021 um started by the hackathon so come join that and uh anything else we want to share before we rate our tasty sidekick beverages i'd like to plug my cratercon lab not just the one that i co-developed with brad about um three yeah three bring a cape [Laughter] [Music] we're back the stream died we have to rate the beers all right here we are we're back here's the new back yay let's make sure everything's copacetic can i do my shameless plug now everything's great you can do your shameless plug awesome for your three knowledge sessions which i will get put in the description right now right after the show so as i started before the first one is the ui builder and configurable workspaces workshop this is about adding containers and components adding some theming to a workspace a logo similar to the portal that brad did and also adding some some more text and then also configuring more in the workspace especially adding the playbook component which is a perfect segue to my other creatorcon map about process automation and designer and playbooks um so definitely check that out it's a redo of the one that i did in fall and it teaches you some awesome new things in playbook um in playbooks for example how to do live or um inputs at ran at runtime with flow data which is super exciting and we haven't done that before and then my third is again part of the builder track that chuck is organizing about flow designer and building some business logic into your app awesome and i'll get those session codes for yours and brad session into the description uh for us and brad how was that fancy rat and delicious uh stout you got rocking today so this was this cinnamon coconut barrel age stout and i was not prepared for the cinnamon coconut it was excellent i'm gonna give it a four seven five it was really good i don't i don't normally like like flavored stuff it was just just strong enough to where you could taste it but not overpowering it was really good it's only the second four point seven five i think i've given so it good and the twice this month yeah seems like you're getting better in purchasing your beer yeah that may be true it's brad 2.0 yeah lisa how was yours yes my not beer my wine was excellent as always it needs a bit to warm up to the right temperature but when it's the right temperature is really nice i love my don't feta it's really i give it a at least four 4.5 oh four or five wow fantastic um my harvest ale was it never settled in um so the it it's very interesting i i like it so it's a four but it just didn't settle in it it felt a little strange uh even though i was really enjoying it and i would drink more of it so it gets a four a victory for for brad's victory today and uh sorry for the stream dropouts um i will get those uh codes uh locked in uh for us to the description and thank you everyone pointing us out there in youtube land we really appreciate you especially those of you that were engaging in the chat you really helped make this a lot of fun for us so it's not just a one-way street and with that i not brad would like to wish you a happy weekend bye everybody bye bye everybody [Music] you
https://www.youtube.com/watch?v=tEdB-0AZzyU