Tracking the karaoke interactions - Live Coding Happy Hour for 2021-04-02
[Music] one hello and welcome to live coding happy hour for this fabulous april 2nd 2021 i'm your host andrew barnes and with me is our usual suspect awesome co-host chuck tomasi why don't you introduce yourself i'll be your bartender today please try to uh keep things clean as you go out there so my name is chuck tomasi senior developer advocate at servicenow been here since 2010 customer for a couple years before that and an assorted history of odd career before that so most of it technical but not always awesome thanks chuck i'm andrew barnes developer advocate here at servicenow we are a lovely team of three andrew brad and chuck brad is taking a well-deserved rest today um but for me i have been doing this for two and a half years at servicenow been working on the platform for seven years do large-scale development deployment uh and integrations and custom apps as specialties and uh chuck you've been doing this long enough that uh you know you predate the alphabet but i just got my quebec shirt so i thought i'd wear it i just threw it on they must still think of you as part of the product team oh well i was when i submitted the this this shirt [Laughter] nice uh so before that they were uh you know uh spring and uh like they were named fall and spring uh which was hilarious because the whole world isn't on that at the same time uh so which which one was your first one was it was it uh spring 2018 original intro original instance was summer 2008 or fall whatever it was i don't remember where the cutoffs were i think it was summer winter and spring it was really weird because there's four seasons but there were three releases so uh there was also very little known fact between the seasons and the alphabet were one or two releases of months so there was like a june 2010 and a december 2010. then we started at aspen berlin et cetera if anybody asks you speaking of historical releases i got my hands on a march 2007 release i'm doing research for a panel we're doing at creatorcon about how servicenow evolution the development has evolved over time i'll tell you i had a hard time just making a basic request app before there was workflow before there were ui actions okay there's buttons on the forums but you're not sure how they got there i spent three hours exploring this thing and we are going to bring some of that to you in an upcoming live code happy hour because i think it'd be hysterical to just go let's try to build something simple that you could do in five minutes on app engine studio and probably more it took me like an hour good where are the notifications that it's that is too much fun it was so much fun we almost did it today but we stayed staying on task uh and so we're gonna get back on task with your beverage introduction which looks like an old familiar you've got there on your desk um i think i may have had this before but let me let me grab a glass here from the bar there we go and pour out the from the kona brewing company in hawaii i've got the kua bay india pale ale so this is uh very nice as you can see a golden pale ale i poured a little too much head on that but i'm in a hurry i will leave it out there so i i have not you know ipas for me are one of those things that if you have them too often you kind of go ah yeah ipa nah but it's been a long time so this is going to be really refreshing oh nice i have got a norwegian beer from uh honda um brewing company and the name of it is norwegian wood uh and it is already pretty tasty i had a little sip this is quite good i'm excited about it speaking of norwegian it's not norwegian but it's it reminded me there is an active volcano in iceland right now that every time i go to youtube they're saying hey live cam of the icelandic and of course you know icelandic volcanoes have names this long so i'm not even going to try and pronounce it but i invite you if you're if you're a volcanologist or you have an interest in the sciences those are so much supposed to watch it and go lava neat it is lava neat and scary and i'm not there but i can watch it which is fun all right so tell us um what we're gonna do today chuck so one of the things we're going to be doing at creatorcon is having a karaoke party where the attendees will be making requests and upvoting requests that i will then attempt to sing now these are requests from my favorites list so you can't just go randomly choose songs i have no idea what they are but in doing so we're going to be raising money for charity and we'll ask you to do something like subscribe to the youtube channel or make a vote or uh subscribe to the podcast you know there's going to be some interaction going on and in in doing that we're going to be that's what's going to raise the money somebody subscribes ten dollars in the pot somebody that sounds like fun so we've got rest apis to go check youtube how many subscribers do we have right now oh 15 542. great if we check in 10 minutes and we've got 15 543 we got one that's ten dollars okay we we have this similar kind of thing for our podcast subscription so we're going to i've got a spoke built out we'll build a little bit of this but what i'd love to have is that we can periodically throughout this marathon telethon is go to the tote board and say how much money have we raised for charity as of now and it will say 1480 and then we hit update and it'll say fifteen hundred and fifty dollars great thanks for the seventy dollars everybody so we are going to raise that money but we need to build all this stuff we don't have a tote board we don't have a dashboard we want to build that dashboard that ties in with these apis and goes you got three clicks that's worth 30 dollars you've got three subscriptions you get you know that's that's what we're after don't know how far we're gonna get andrew threw down an extra challenge and said let's do this as a workspace dashboard and i went you're looking at probably one of the least qualified ui builder people but maybe this is a statement or a testimonial that if i can do it you can do it we'll see what happens there you predate ui actions so maybe no i don't create ui actions i had to go find them like oh and you want to know the worst part on that 2007 software there's no navigation filter i i don't underst no i object the left-hand thing where you use it yeah no i understand i just object like no yeah so you can't just like go let's type in action and see if there's a ui action oh no it's not there it sounds like you just go to the table table really how did we get stuff done back then yeah i'll show you and then we'll talk to beauregerian david lu about this stuff i'm looking forward to that that sounds like a lot of fun the live coding happy hour to build up to that panel is gonna be priceless oh well yeah we're that's too much fun i think i think 2010 instance was the earliest i ever gotten like to touch i saw pictures and someone interacting with our earlier ones a couple years ago but like actually like hands on keyboard 2010 was the earliest one i can show you a calgary instance in a few minutes but i've got one at the ready i have to but that's as far back as i've got at my fingertips fire okay screen share oh let's start the screen share and start building something today that's what we came here to do so screen share desktop two and three two one share command f says phil that's what you do when you don't have the you don't have the navigation filter except yeah i don't know if it's fine i really think i would just go to the table table like i tried that but it it oh i'm gonna save it there's there's just so many oh my god [Laughter] let's do something where we can do something all right i've i started building this app and i'm not gonna do a cooking show on you but if i go into studios into my creator con stats app you can see i don't have a table i don't have anything i got nothing i think i went into guided app creator earlier this week and went wait stop it's a clean slate build a scope okay so what i'd like to do is have a table that just tracks these things right i think we're gonna have to sum multiple parts whether it's requests whether it's up votes maybe it's 5.0 ratings whether it's youtube api incoming or podcast api incoming we're going to track this somehow so it feels like we need a table that's got some values associated with it like here's 15 clicks at 10 bucks a click that's 150 so we can sum that up somehow so my first instinct is most apps go is to start with the data model and so depending on how you can get your data it doesn't make sense to uh like record those checkpoints that's sort of where i was thinking like at this time at 10 o'clock we had this and at 11 o'clock we had that because then we could even you know see it over the growth over time and like could do that i'm thinking about how we siphon that out in a report because you need like give me just the last one of each oh uh so in a report we could do uh so they could be we could store the difference at that checkpoint uh and then some of them but that sounds like some of the diffs uh but so yeah i could i could do that but i think from a report perspective um it might just make sense to me to just have a a separate table that that has the the latest entry like or a filter that's just the the latest entry in the table for the yeah let's do that so the the filter for report purposes would be give me the the latest record can you the most updated record in the events table all right we'll get to the reporting in a second let's let's start with that premise and see where it leads us uh hardest part name the table [Laughter] out um [Music] checkpoint yes data point i just yeah that's our terrible table name those terrible table names uh um do we want them to be uh two separate tables or just two for what what do you think the two different uh the subscription and the so the podcast and the youtube uh well it was almost like they could be one table well we might have requests or votes or hey if everybody rates me four and a half or better we could we could add that to the tally like i have to perform to get you to pledge that kind of thing but let's let's start with those incoming apis i think you might be right i think you might be right let's let's make two tables so we're going to have um what we're counting and how many of them we counted right so be a reference field in there somewhere okay so what we're counting i'm sorry i am not thinking straight right now i can't think of a good table name and that isn't it um oh man i'm coming up with like object and it's like that's come on chat room help us out what are we calling this table of here's here's a youtube endpoint here's a podcast endpoint here's a maybe it's just endpoint great feels like stats table well the stats but that's and then we'd have what yeah and then we'd have the data line item for the other one i don't know this is just us why are we are being so difficult over this it's it's like three people are ever going to see this table three people are going to see the table name and we're we're really belaboring the point it's quarter two and we haven't done anything all right uh we need a new module let's call the menu cc that's fundraiser yeah cc stats sounds great okay and we need name i got that one make that display true and true to form i am going to do an active field i do like an action first you're not going to make it an inactive field oh please don't don't don't get me started on that yeah and i'll default it to false no we're not going to do that okay and what are we what are we describing here for our endpoint do we need any other attributes for this um if this is all that's in this table then we don't need a table this is a choice i kind of agree but we may think of something that's coming that we we don't see initially okay and one of the things i've noticed about guided app creator is if you go under controls it likes to make a new role for every table and that drives me insane i'm sorry it just does so i am going to make a generic cc stats user and use it forever so because if i do this i haven't found a use case where i need a new role for every table i just haven't and i don't know why this was a decision because there was a decision point to be made at one point yeah i i don't i go change that every time too so all right i have nothing i have known when i forgot logic behind why it will create you for acls for the crud operations and stick that role on there so if you forget you're gonna have to go like update all four of those you'll be mad at yourself and i've done it so many times it's worse than hitting update instead of insert and stay okay we've got our endpoint let's make another table uh so does the end point belong in the here like the could connections and credentials or something like that no because that's going to be relying on flow designer right the flow designer could pick the credential from the applicable one that it's pulling out of the endpoint table but that's already built into the spoke okay through an alias if you've already got that settled then you don't need it yeah i'm i i see where you're going is how does the flow we're going to create a flow i think that'll be taken care of in the flow so the flow will call the action the action is going to go out to youtube and say hey i want this particular channel's subscriber count pull it back and then the flow itself is gonna say go do an update record on that's the key is what record are we updating i think you're right we need something to say this flow is associated with this table huh i haven't thought of that yet but let's get ourselves one let's do our stats table this is going to be a point in time okay this is a stat checkpoint you like those long table names find with me i i do we don't need mobile and we want cc stats oh interestingly enough on that 2007 build there was an ecc queue but no mid servers and i'll be darned if i can figure out how you did an import back then so i am reading what phil is saying and phil's i think he's dropping some knowledge on me today oh go to your application record for this scoped app ah so select the user there is there like a default role that it will put in there there appears to be a default or choose between the many table version and the one one role version user role okay cc stats user okay so it should default to that it says file settings from studio is also another way you can get there okay we haven't saved this yet so i want to abort and try that again let's find out phil you you may win an award today stats i think he's telling us we did it wrong but [Laughter] no we did sweet he was just telling an alternate way to get to the same data all right oh from studios file settings gotcha file settings derp okay there it is yeah but you don't get any ui actions on a lot of this stuff i don't think i've ever clicked file settings in studio i used to i don't think i've ever clicked that ever i'm cody happy hour right here people we're it's uh so for all of you that have been around for a little while and know uh what knowledge the conference is um we have been really busy with knowledge really really really busy and it's friday and we're having drinks and we're a little touchy we are a lot punchy um i'm gonna just put a number on here for the fun of it okay i like numbers it's it's a point in time thing we're gonna be counting them um so we have a number field we have our endpoint we have what do we have the count and the diff oh yeah yeah let's do cow and if because we might want both of those to show at some point hey and we can write a flow or a business rule or something to figure out what the diff is um what else we've got time we know when it was created this feels like we're making it harder than it needs to be and we should just like shut up and do the easy things first okay submit we got a couple of tables what do you say we go build a flow bill's now shouting that that you can go set the menu there too really setting you'd have to do that after you make your the first one yeah but i guess you could always start out and go yeah you can come here and hit menu yeah oh phil you saved me so many clicks here it is like how long have we had studios since geneva yep just fuji plus one is how i remember it because we got something that's fuji fuji which so our store that scope came out in fuji and the studio came out plus one yep that's how my brain stores things i don't i don't remember the studios in geneva did we load the youtube spoke on here uh i've never been to this instance i don't know the answer to that question we're going to find out what's the quickest way to find out all my applications just yeah that's not a plugins yeah plugins or uh flow designer but both of those are going to take a hot second to load all right in the meantime what else do we have to share any upcoming news or events one one day i'm going to figure out what takes this page so long to load and then i'm going to fix it you're going to fix it yeah i'll submit a pr [Laughter] imaging very hard to implement and put spelling errors in a column name please just give it or create tables and columns in german instead of creating english then translating with the dictionary brilliant um okay why didn't the plugins come up the spoke fine i'm gonna go to is this instance not hooked to the oh you know what it might not be it might not be then okay that answers that question yes the youtube spoke is not okay we're gonna do podcasts or will we be loading it during the show glow or sub flow uh the answer is always subflow until you when in doubt go sub flow i figured you'd say that okay get omni subscription wow that is in the wrong spoke a scope that should not be there i hereby crucify should not be in the omni studios no no because i don't want to oh wait maybe maybe i do it seems like a thing that should be in that spoke sometimes you do yes i do well yeah because this goes through and gets all the subscriptions and breaks them out into an object but that's uh what are the inputs on this none of the inputs on this eight and time so this says how many subscriptions do i have at a certain date and time but that's not what we're after we're not doing an omni i'm sorry we're not integrating with the omni spoke i was on the wrong track in my brain we are going after the url shortener track which we do we please tell me i saved my work oh i have an action but i don't have a sub flow okay okay so link stats let me show you what i'm after we're going to say hey if you want to subscribe to the podcast go click this short link and then we are going to say which short link is it and if i remember it's number 80 and it will go out and say how many clicks do you have on this particular thing now and it's going to say this is the oops that was techno85 registration but you get the idea it's had 154 hits see that yeah that's the payload i'm gonna get back i just have to remember what we're hitting and then we will update that in our cc stats table so the question is what was the magic number or uh easy podcast i'm gonna yeah a little search that's jeopardy search research i have a lot of creatorcon stuff in here right now did i now make a short link breakpoint there it is uh its magic number is zero in the url not seeing it it's supposed to happen when i hover over there 97 97 all right 97 as in windows 97 no office 97 so i want this let's see test yeah for a second you could have convinced me that there was a windows 97 but then i really no it was it was the infamous windows 95 yep but you and we get back that's that's where i'm at today is you could have convinced me that it was 97 all right sure that's how that's how myopic we are today people we have to just focus on the projects in front of us all right so let's make 97 and we've got a basis action so let's go subflow in the cc stats get podcast count and here's where we might get into trouble so we're going to pass in a little bit that's how we're going to get the record of course we are uh what did we call that table that's checkpoint we're going to update or create no we're going to create a checkpoint record we need the endpoint so we can associate it okay and brain is working overtime here this is a reference to our endpoint table which points oh for crying out loud how many tables have endpoint in them that's not it that's it there it is that should be mandatory we can't get away without a parent record to refer to uh outputs do we need any outputs i can't think of any at the moment maybe the actual count or why not uh yeah let's return the count because we may invoke this from a flow and we'll want to get the the count potentially i'm curious to know when the ring and the record what are the return me the record as well oh okay to the checkpoint record yeah works for me checkpoint checkpoint is a reference to give me my arrow back queue checkpoint oh man we picked some crappy table names or did we pick excellent ones are you saying like great minds think alike and simple minds have obvious thoughts that's it done okay so first thing we want to do is fire off so you need to know what i want to do is go to the endpoints table and add the um the thing i want in there which for the right yes i was gonna say where are we getting that 97 from so this would be id that sounds really boring doesn't it and it could be a string it doesn't have to be an integer yeah string is fine because we may want to pass it a different thing for youtube like the channel id we are not practicing good naming we're we're getting the job done quickly for entertainment purposes only all right stop abort this is not enterprise development here this is um but our record whoa dude look at that we added the field and it's already there we didn't have to refresh someone smartened up flow designer i love me some flow designer some days okay i it's the little things that get us excited we are going to use our url shortener yes i made that icon myself even though it looks like glasses uh we are going to get link stats and the id is coming from here and then when we get that back we will create right that's right there create record on the check point table last one and we are going to create first let's link it because how many times have you created a reference field and forgot to use it then we are going to we gotta save our count we could do the diff with a look we can do the diff right here we could do the diff but we need to look up look up the last record okay that's going to be interesting so we should count is going to have to do that for this count actually we should probably do something a little smarter like say if a status oh we're gonna check to see if we're successful yes hey hop on the if train buddy i want to go there there is uh save first i want my little data if i why can't i drag that under the if am i doing something wrong here nothing obvious besides drinking and coding that's the way uh well fine then we'll do our look up first we got to do a look opening we're just going to look up a record right um yeah because we want the maximal one so we're going to look up on the x point table oh i get to use something i haven't done in a long long time let's get the last record we are going to do we have a limit here we don't have a limit just order by the number no but you order by the order by the created by created z to a where's my limit of one um this is oh it's a look up right there's yeah this is this is already limit of one [Laughter] wow that was brilliant [Laughter] okay return only the first record if multiple records are found well no you shouldn't oh wait return only the first this is what we want yes okay okay is it sorting so it's gotten smartened up in a little bit in paris and more in quebec this lookup record it used to for example just error and then your flow was broken at that point um so now i can now we can drag up sweet and now are we gonna do this we can do it if um potentially we can do it with the function transforms i don't think you can i want to i want to try and fail the math functions are not that robust see there's not a there's not a minus or something i i'm hoping there will be in the future yeah i checked we can add them because i was trying some something here that'll cut our donations in half okay so let's do this uh we want var um old count equals shifty data dot look up record dot uh record dot dot out sounds reasonable i am really really pessimistic and i'm going to put in a parse into here okay i've been burned by string math too many times what's what's 10 what's 10 minus five and five no wait that's concatenating i honestly don't know what would happen if you subtracted two strings okay our new count javascript will turn you return you something that you didn't want uh where's my input no i want link stats dot count and i don't need a base 19 number i have no idea what that would look like and then i'm going to burn variables here new count gold count return if have i missed anything uh i was looking at the chat you've got the old count you've got the new count and you're doing the diff and then you're going to return the dip that sounds reasonable is there any other field in here we need to be friendly too so we haven't created any others we used all the ones we created just checking no we didn't use number [Laughter] okay the so that will save our record and then we are going to set the outputs outputs are assigned subflow outputs which will be um oh did we return count or diff ah let's return count i think we do both at some point yeah i think count is the thing you care about most if i were doing a ui action that could always do the same thing in script if it had to or could reference it through the uh record so checkpoint is going to be our new checkpoint record which not available to us because it's inside the if so what we'll do is save this and phil uh is error checking us very nicely which um what do you find uh the first time when we don't have any uh we're gonna need to have zero in there for the diff you are correct wouldn't it return would parsing return zero i don't know but we can definitely tell it to be zero [Laughter] like that yeah that's for those of you that are wondering at home that's the if you really didn't do very well then give me a zero uh no what did i do i did done done save i didn't like the big red delete button dad i i wasn't wild about it all right so we will get no outputs if this is unsuccessful we could put in an else and just return some kind of error test test we better get we better get a zero we don't have we need to put the number in the uh end point we didn't we don't even have an endpoint record yeah so we gotta create an end point and put the number in there we haven't even gotten to the dashboard part yet we might this might be a two-parter uh or we could just you know finish it [Laughter] after afterwards we'll beautify it later i want to do a dashboard so this is breakpoint id 97. done okay back to flow test break point break point run noise so the expectation here here is that we get the returned information and then we create a new checkpoint record and in that record should be a count and a diff and those should be the same for this entry that's what victory looks like look up record did not find yeah oops oh we didn't handle the error case that's okay we oh yeah so it didn't run yeah so we need to go tell that action to proceed i think he doesn't find any no we told it uh return for the first one um don't fail on error checkbox is what you need to click don't die susan okay done say so prior to quebec the way i handled that was just by never using that action and just using look up records and then using the count and then you know getting it from from that here's another annoyance we haven't fixed yet you can't run a test with the same record twice in a row without removing it and hopefully we get closer to victory this time oh can i read count from empty from something who died so it the old count percent is erroring because it doesn't have a record from here yeah oh oh oh oh oh we need to do some other logic don't worry i guess we'll have to do logic there so our lookup record what does lookup record lookup record has a status so we can do an if check there we can do an if check here well what are we going to do in either case if it works we know what to do we'll take the diff of the last record if it's the first time through we could always sell the pot and just put in a checkpoint why don't we put in a zero checkpoint record that's what i was just saying like oh you know what else we forgot we forgot the related list on this thing let's let's just create one [Laughter] yeah again it's going to be faster enterprise applications do it a little bit different you know we handle these things a little different for this is a uh you know um tom scott um a pretty uh big youtuber um has a great thought process about this sort of thing and he calls it i think the the art of the badge and so he just like barges things together to get them to work like he's he noice we have success we have success we have a count of one and a diff of one and i i am going to wait a minute how did we get one who who put the one in there i'm i'm going to just is that what the the system says there is maybe somebody hit the endpoint no you could have hit the endpoint all right i'm going to hit a couple of them a couple of times let's pretend and i will re okay i hit the end point a couple more times so let's run the flow again so we have an expectation that it'll be more like four or five or something three or four sure uh-oh we're going the wrong direction well the diff is zero you're right okay link stats what are you doing to me man is it our flow or is it the action that's having issues uh n i don't think that's right so we give this a it says three [Music] yeah it has three so this feels like we have an endpoint issue yeah that is for you tell me it's three where did that one come from i think the action is busted the action needs a little love apparently he actually needs a little love we'll do that offline [Laughter] it's returning three and i'm but instead i'm going to tell you it's one all right well no next step in making a dashboard would be what creating a workspace first through aes um let's make the report that we want okay first i like that and then well wouldn't that be part of the data visualization that we put on the dashboard you just want to make a report for a quick win well um so the data visualization can just select from a report though i like that reuse old work like if we go and create the report we want then that should be how we can feed it into the the report is um we need that multiplier though let's just let's just sum them up what are we summing up the number of we're summing up the diffs are we summing up the diffs we could sum up the difference and yeah we're summing up the dips and we're going to group them by end point okay sum of gifs this will be a table checkpoint it's an end point we thinking we're going to make a r yeah sure whatever and we will group by endpoint goods let's stack by we want an aggregation no we want a sum of if oh my gosh reporting has gotten so much easier so the sum of diffs is that the correct sum of diffs yeah it was wasn't it so let's save that let's go back to our we are going to make an already break it up yeah we can drop in uh well we need another end point but we can drop in some uh because we want which would have been three and this one was 10 and the diff was seven this is assuming our logic on the back end is okay let's do this is close oh thumb of see it again run open do something run open computer that was that was on pluto the other day no computer hello computer okay uh is the sum 10 yes because it was seven plus three which is also the count of the latest entry but we didn't have to figure that part out in a report all right um so you want to make up your own point so yeah let's do another end point just so we can see okay both of them on there like and we'll say youtube is going to be oh heavens i don't know what's our channel id do you remember it offhand i don't the actual like id id no the channel id yeah i go with the human readable one which is servicenow dev program yeah but i don't think you can pass that that's not yeah you can't pass it to the api there it is starts out with uc if you get the human readable one the uh the non-readable one is in the page source somewhere i i have done that thank you karaoke app history [Laughter] endpoint youtube boom boom no we'll pretend that happened did did you think i that i had any chance of knowing what that was you could have said it started with uc you have met me before lucky i can remember how to spell my own name so first one has a count of zero diff of zero no actually the first one has a count of fifteen thousand something something something yeah 15 243 is that the number how'd you know that so fast that that that was just me being marketing and just throwing it works for me directionally correct 15 to 43 we'll get the actual number from an actual api when we get the spoke install save that and then let's say our next click was 10 minutes later and we had 343 which would give us a diff of one hundred we have lots of times those dips dips go way down i hit an update darn it what was i just saying about insert and stay versus update 81 that happens in 243 we need to put this back otherwise they're going to be out of order [Laughter] wait we can't sum that up the sum the diff here has to be zero for the first one yeah like that's why i said well the diff goes way down then yeah yeah that wouldn't be bad we'd be owing that's actually a really good reason to start with uh to start with a seated thing because we want the first one to be zero insert and stay okay let's go to this and make sure we have some decent related records boom boom boom very nice back to the report okay how do we turn this into money so this is a useful graph just for funsie but then for the money part um what we need to do is on the endpoint thing uh associate a value to a multiplier yeah yep the value let's just do value sounds like another crappy variable name to me crappy name i love it and that's going to be an integer because we're only dealing in dollars whole dollars you can't donate 35 cents sorry and okay now that we know that what do we get we we could do a flow that just keeps if we could take the count no we need this we still need the sum of the diffs now when we do the diff we just um so this is a good time for a calculated field right here a function field not a calculated field a function field oh value or the uh the contributions or whatever uh whatever we want to call it is a function field that takes diff and value um okay and we'll do that on the checkpoint entries not on oh i see yeah i see where you're putting that yeah so let's do this and then we have contributions but then we can't sum this up we'd have a contribution for a checkpoint per checkpoint how do you which could be in oh because you're taking the diff gotcha because i'm doing diff yes how many yeah i like that better than just lump sum because you'd lose it over time yeah so the contribution is a function field it's a function field function you know i have because we want to do math on right and endpoint dot value am i missing something because i don't see there's no function field to choose from i think what you what you do is declare here is an integer you declare you know i remember talking about this like back in new york or madrid or something and then when we go to the dictionary oop we go to the dictionary this is a what in its own window the function definition do we know what's okay we're back okay do we know what to do with a function definition uh well you are gone once i'm validating that we are back yes we look to be back excellent no audio back phil says what do you mean no audio okay phil bill's i can hear things we must be good okay i hear i hear things too i hear voices in my head all the time though that's because my ipad talks to my hearing aids with bluetooth that's a totally different story uh so function field you remember what to do with the function field no but we've got this lovely place that that keeps documentation so i type function and field and service down it takes me to the docs page that tells me use case function fields versus calculated fields um function fields cannot be encrypted give me an example yeah to the examples we go side function dot length okay so we have add i like add that'll work that's great multiply is what we're looking for glide function colon multiply and then two let's do it okay so you're thinking it's current.this and current.that sure oops print dot if and and we're going to need current dot endpoint dot value dot walking is your friend that just looks totally wrong i'm sorry it looks like something's straight out of service portal hey we don't know if it's right or wrong that's what makes this show so fun why does this say it needs updating what are the change over here uh you did remove that field but i thought that updated since then okay so let's check the list for you does it auto calculate yes uh endpoint you need to configure this layout to put contribution on there yeah yeah i'm not sure about the current part but uh yeah so did not calculate i think there's our answer let's remove current you just put the field names in there i i i think that's what it's telling us i don't like that i'm not a fan either but how do you do your dot walking i want to look at more maybe it doesn't yeah see that there are field names there not current dot so okay i'm okay i'm closing my eyes and punting oop not delete calls i thought i was on the zero here's a zero okay well we're back and we what we had to do was remove current um and we had to add a value in the endpoint.value field and then our function field started working and ten let's put we need ten dollars in the breakpoint bank so every breakpoint subscription will raise us ten dollars and then we look at our checkpoints we still need to oh no this is zero okay so we would sum up the contributions we can do this this is just like we did just like we did the diffs reports view run we're gonna we're gonna end on a high note here okay uh mount raised a terrible name but we want the look at that right there single score is down here boom come on click and double click to go to the next one configure function field no you want to sum the contribution field yep it's already done wait a minute that looks fishy to me is that that job is that our data it does let's go back to stats checkpoints 30 plus 70 is 100. oh okay nice you know what that's victory right there that's victory i like that because uh raised during the the the telethon i mean we can have this thing flow once we fix it polling every few minutes and then just go well the other thing we can do with a report like this is is do the sum um so we can do uh the filter to be like the last x period and we so we have two single scores we can show like last 15 minutes and then we can have overall you crazy man okay i am crazy man we don't have to do that right now but that's that that i think is a nice no but you kind of get at that other thing remember we were talking about the lock box like hey chuck's got this song in the locker room once we see this amount in this window yeah that's exactly what i was saying we can raise 500 in the next 30 minutes chuck's going to sing some secret song or something yeah we could have that so we get to see the overall score so let's let's stop the screen share and wrap it up hence the beauty of the checkpoints nice architectural decision there mr barnes let me uh see if i can get a little closer to the stop share button i missed it well that was painful with two screen dropouts but we got success why is i didn't give this report a title i thought i gave a rude title i'm not race there it is so that feels like what with the direction we want to go which is uh we've got um a flexible endpoint table that can handle different endpoints and we need flows to back those um and we can function when we use function fields and it allows us to uh do overtime things and totals um and because we have two different things we have the you know we want the final goal and we also want to do these unlocking things and chuck wants to make sure the bar is cleaned though his his desk is looking awful sharp and clean there uh it's it's really really quite nice i also took the cover off i thought it was more like a developer laptop now i had i had so many stickers i had to start coding the inside of the cover i've got four stickers on mine but i you know it hasn't moved uh from its little spot on the desk and and i don't even really see it because it's so it's like over there i don't even see my the back of my laptop screen so uh that was really great chuck uh thanks for walking us through that um and then we'll get this into a workspace dashboard uh and jazz it up a little bit but we've got the we've got the roots now um and we got to use a function field which was great um i feel proud i never had a use case that's the first function field we've done on this show who suggested that was that phil no that was me that was you i thought it came from the chat no that was me i was like function field let's do it um so uh that was really great um we look forward to uh you know getting through april and uh uh completing our our prep for knowledge in creatorcon uh which has got us really uh really befuddled a little bit today we're excited though very we are super excited um so chuck how was your beverage today sir go on i hope you can drink alcohol after a coven shot i had my second shot today i forgot to ask i i hope everyone is uh staying safe out there and um what's the rating on that empty bottle you've got rating on the kona kua bay india pale ale with the success factor i'm going 4.5 oh wow that's a that's uh that's quite good my norwegian wood um is really quite good um but it's not it's it's a little different than most beers i've ever had like it's it's a little it's different so what's the style i mean was it was it a like a maltier [Music] uh so i've got what i wear i would put it which is somewhere like it's kind of like a brown it's kind of like a u.s brown but the the style of a multi kind of thing a little bit uh so this thing is made with uh juniper berries and oh wow okay um and and they're like handmade so that this is a really small brewery um so it's a little bit of a special beer uh and it's it's really good like this is this is like a four seven five like this is wow the way you started with that description i expected it to be lower tickled with how good it is like it it's just so good right it's not it's not a you know it's not immediately familiar to my palette um but i like it and it's got a great name uh norwegian wood it's just just a good name uh so that was that was so much fun thank you everyone in the chat it was really great engagement in the chat especially uh phil and jordan really were uh engaging quite a lot uh the others were there and we love all of your participation and we look forward to seeing you uh soon in the future we've got more episodes next week um i'm excited about uh tuesday is a creator toolbox in which that's what i was yep so on our blog we've been having a nice uh series from peter bell about the um glide query function that he created um and shipped last year in the platform and so i've been helping him get all of those blogs published and i decided that it was time for me to just start using glide query and the way i'm forcing myself to do that is i'm going to take a script include and rewrite everything in that script include that i can fit into our window uh with glide query and so that's how i'm going to do it is and i'm going to do it right here on on this youtube channel uh with you i'm looking forward to that on tuesday and with that um chuck and i will bid you a do and we hope you have a safe and most wonderful weekend goodbye everybody take care everybody happy easter [Music] do [Music] you
https://www.youtube.com/watch?v=8NEOp2s9zfY