boarzVideosClipsStatistics

#️⃣EP 178 - How To Change String Property to Object in AWS SAM and Deploy

🎦
📅 2022-02-20 (584 days ago)
⌛ 1:21:24
ZainboarToreyboar
AllClipsEpisodesHas Blog PostZainThaneshKartikTorey
🎬
Krunchmaster Kartik
Build, Break & Fix
ZainboarKartikboar
🎬
Killing it
Special Edition: We don't stop until we get our code working
ZainboarKartikboar
🎬
Schooling in brown countries
Build,Break & Fix // Weekend two hour special
ZainboarKartikboar
🎬
Unprofessional Kartik
Build,Break & Fix // Weekend two hour special
ZainboarKartikboar
🎬
Brain Refresh
Build, Break & Fix // Setting a blog using Hugo and AWS Amplify
ZainboarKartikboar
🎬
Finger driven architecture
Build, Break & Fix // Working out Software design
ZainboarKartikboar
🎬
Fast food driven architecture
Build, Break & Fix // Working out Software design
ZainboarKartikboar
🎬
Can't be ashamed if there's never a first version
Build, Break & Fix
ZainboarKartikboar
🎬
Not a uni student
Build, Break & Fix
ZainboarKartikboar
🎬
Can't work, deploying
30 mins of deployment 😠 || 30 mins of coding 🥲
ZainboarKartikboar
🎬
Two points of contact
Today's Broadcast
ZainboarKartikboar
🎬
CORS exclusive lovin'
Today's Broadcast
ZainboarKartikboar
🎬
Sensible policy
Today's Stream
ZainboarKartikboar
🎬
Shoes in mouth
Today's Stream
ZainboarKartikboar
🎬
The code always wins
Buidl Break Fix
ZainboarKartikboar
🎬
Chicken curry in the brown way
Buidl Break Fix
ZainboarKartikboar
🎬
Finger memory practice
Build Break Fix
ZainboarKartikboar
🎬
See you later Kartik
Build Break Fix
ZainboarKartikboar
🎬
Keep your code looking sexy
Today's Broadcast
ZainboarKartikboar
🎬
Echo chamber Zain
Today's Broadcast
ZainboarKartikboar
🎬
And Kartik never got a job again...
Today's Broadcast
ZainboarKartikboar
🎬
Pilot? What even iz dat kind of fing
Today's Broascast
ZainboarKartikboar
🎬
Fish and Chips
Build - Break - Fix
ZainboarKartikboar
🎬
Backup career
Build - Break - Fix
ZainboarKartikboar
🎬
Professional background? Wat even iz dat?
Today's Broadcast
ZainboarKartikboar
🎬
Private mentorship group
Today's Broadcast
ZainboarKartikboar
🎬
Actually good job advice from Zain
Today's Stream
ZainboarKartikboar
🎬
What a classic!
Today's Stream
ZainboarKartikboar
🎬
Uber driver in training
Today's Stream
ZainboarKartikboar
🎬
Viewer burn
Today's Broadcast
ZainboarKartikboar
🎬
Time for a nap
Today's Broadcast
ZainboarKartikboar
🎬
A sniffer of a line
Today's Broadcast
ZainboarKartikboar
🎬
Slow Zain
Today's Broadcast
ZainboarKartikboar
🎬
No single point of failure
Today's Broadcast
ZainboarKartikboar
🎬
Gambling on bad logic
Today's Broadcast
ZainboarKartikboar
🎬
Estimated Time of New-Careers
Today's Broadcast
ZainboarKartikboar
🎬
Fake Nod
Today's Broadcast
ZainboarKartikboar
🎬
Investing in 'the brand'
NEW SETUP!!
ZainboarKartikboar
🎬
Hitting a brick
NEW SETUP!!
ZainboarKartikboar
🎬
Master of the green screen
NEW SETUP!!
ZainboarKartikboar
🎬
Logiclesstech
NEW SETUP!!
ZainboarKartikboar
🎬
Get him to the greenscreen
Today's Stream
ZainboarKartikboar
🎬
Change the digit to a number
Today's Stream
ZainboarKartikboar
🎬
The benefits of pair programming
Today's Broadcast
ZainboarKartikboar
🎬
Xs, the healthy choice
Today's Stream
ZainboarKartikboar
🎬
Xs vs mother
Today's Stream
ZainboarKartikboar
🎬
The beginning of the end of productivity
Today's Stream
ZainboarKartikboar
🎬
Unprofessional Zain
Today's Stream
ZainboarKartikboar
🎬
Blazing fast
Today's Stream
ZainboarKartikboar
🎬
Premature celebratory dance
Today's Stream
ZainboarKartikboar
🎬
Timeline slippage
Today's Stream
ZainboarKartikboar
🎬
Speed coding
Today's Stream
ZainboarKartikboar
🎬
Sorry I dont know that voice
Today's Broadcast
ZainboarKartikboar
🎬
Definition of done
Today's Broadcast
ZainboarKartikboar
🎬
Amway bites
Today's Broadcast
ZainboarKartikboar
🎬
A cool stream
Today's Broadcast
ZainboarKartikboar
🎬
Spooky Kartik
Today's Broadcast
ZainboarKartikboar
🎬
Water physics 101
Today's Stream
ZainboarKartikboar
🎬
Scrum master Zain
Today's Stream
ZainboarKartikboar
🎬
Zain applying his scrum master skills
Today's Stream
ZainboarKartikboar
🎬
Zain the blunderer
Today's Stream
ZainboarKartikboar
🎬
Healthier than other traditional drinks
Today's Stream
ZainboarKartikboar
🎬
Real headscratcha
Today's Stream
ZainboarKartikboar
🎬
Bracket blues
Today's Stream
ZainboarKartikboar
🎬
If statements are not good practice
Today's Stream
ZainboarKartikboar
🎬
Kappa Quality Code
Today's Stream
ZainboarKartikboar
🎬
Exciting switch statements
Today's Stream
ZainboarKartikboar
🎬
Switched-on hat
Today's Broadcast
ZainboarKartikboar
🎬
Functions, one of the big coding challenges
Today's Broadcast
ZainboarKartikboar
🎬
Break fast
Today's Broadcast
ZainboarKartikboar
🎬
Blood and breath pumping up
Today's Broadcast
ZainboarKartikboar
🎬
Wrong since day 1
Today's Broadcast
ZainboarKartikboar
🎬
Electronic waves
test
ZainboarKartikboar
🎬
RAWR coders
test
ZainboarKartikboar
🎬
Transit in Japawn
test
ZainboarKartikboar
🎬
Xs sponsorship
test
ZainboarKartikboar
🎬
Lame roars
test
ZainboarKartikboar
🎬
Setting up a suppository in Diagon Alley
test
ZainboarKartikboar
🎬
Background Diagon Alley
test
ZainboarKartikboar
🎬
Half speed zain
test
ZainboarKartikboar
🎬
One second penetration
test
ZainboarKartikboar
🎬
Top loading switches
test
ZainboarKartikboar
🎬
Making it rain with CodeBuild
test
ZainboarKartikboar
🎬
What is a sea cable?
Today's Stream
ZainboarKartikboarToreyboar
🎬
If statements are bad practice
Today's Broadcast
ZainboarKartikboar
🎬
Tomato fan
Today's Broadcast
ZainboarKartikboar
🎬
Strong intro
Today's Stream
ZainboarKartikboar
🎬
Impossible URL
Today's Stream
ZainboarKartikboar
🎬
Clever devs
Today's Stream
ZainboarKartikboar
🎬
Always CORS related problems
Today's Stream
ZainboarKartikboar
🎬
CORS headscratcha
Today's Stream
ZainboarKartikboar
🎬
Torres Strait Icelander people
Today's Stream
ZainboarKartikboarThaneshboar
🎬
Icelander or Islander?
Today's Stream
ZainboarKartikboarThaneshboar
🎬
Best Practices
101/200 Episodes
ZainboarThaneshboar
🎬
ROAR coders
105/200
ZainboarThaneshboar
🎬
Diagon Alley? What is that kind of fing?
112/200
ZainboarKartikboar
🎬
C.O.D.I.N.G
113/200
Zainboar
🎬
What's testing
115/200
ZainboarThaneshboar
🎬
CORS coders
115/200
ZainboarThaneshboar
🎬
Complimenting the wrong person
Today's Stream
ZainboarThaneshboar
🎬
Alt+F4 Zain
Today's Stream
ZainboarThaneshboar
🎬
Fixing and failing
Today's Stream
ZainboarThaneshboar
🎬
Brown is always better than white
AWS Websocket + DyanmoDb + Lambda
ZainboarThaneshboar
🎬
Wild street dogs
Today's Stream
ZainboarToreyboar
🎬
The more you know
How to Host Web App Using AWS S3, CloudFront and Route53
ZainboarThaneshboar
🎬
Inactive brain
How To Host Web App In AWS S3 with Custom Domain Using Route 53
ZainboarThaneshboar
🎬
No electricity in Bali
Today's Stream
ZainboarToreyboar
🎬
Francesco
Today's Stream
ZainboarToreyboar
🎬
Indian givers
Compare Hashed Passwords Using Bcryptjs
ZainboarToreyboar
🎬
Cold coffee, cold tea
Today's Stream
ZainboarToreyboar
🎬
Tough questions
Verify Passcode Saving Information to DynamoDB with NodeJs
ZainboarThaneshboar
🎬
Tandoor? Wat even iz dat kind of fing
Today's Stream
ZainboarThaneshboar
🎬
This is why you don't click ops
Today's Stream
ZainboarToreyboar
🎬
Bish Bash Bosh
Get Board Columns from Frontend to Backend NodeJS
ZainboarThaneshboarToreyboar
🎬
Zip first developer
Today's Stream
ZainboarThaneshboar
🎬
Busted again
Today's Stream
Zainboar
🎬
Torey the stinker
Beta Testing Fixes Part 2
ZainboarToreyboar
🎬
Torcoders which are roarers
Beta Testing Fixes Part 3
ZainboarThaneshboar
🎬
Delusional Zain
Beta Testing Fixes Part 3
ZainboarThaneshboar
🎬
Hey guys, torey here
Beta Testing Fixes Part 3
ZainboarThaneshboar
🎬
Zain's going platinum
Today's Stream
ZainboarThaneshboar
🎬
Doggy dog
Today's Stream
ZainboarThaneshboar
🎬
Fartik
How To Test Prevention XSS Attack
ZainboarKartikboar
🎬
Second Favourite
Today's Stream
Zainboar
🎬
Disco Zain
Today's Stream
Zainboar
🎬
Keyboard allergies
Hook Up AWS Websocket
Zainboar
🎬
As you been poopin?
Hook Up Board Columns to Websockets Nodejs + AWS Websockets
Zainboar

Subtitles

0:00:00
[Music]
0:00:23
what is going on guys welcome back to
0:00:25
another session of build break and fix
0:00:28
brought to you by the rule coders
0:00:31
um you might be observing and there's
0:00:34
only me at the moment um and tory the
0:00:38
other rule coder is actually making his
0:00:40
way as well he's got some technical
0:00:43
issues so he won't be
0:00:45
um
0:00:47
himself
0:00:48
for long
0:00:49
um
0:00:50
yeah so in the meanwhile uh i would uh
0:00:54
do
0:00:55
the
0:00:57
the the
0:00:58
acknowledgement of the country
0:01:00
[Music]
0:01:01
for the uh
0:01:03
for the actual custodians of the land so
0:01:06
here goes
0:01:09
i begin today by acknowledging the
0:01:11
traditional custodians of the land on
0:01:13
which we gather today and pay my
0:01:15
respects to the elders past present and
0:01:17
future i extend their respect to
0:01:20
aboriginal and torres strait islander
0:01:22
people here today
0:01:26
fantastic so now that is all done
0:01:29
pretty sweetly
0:01:31
uh so just to recall what we worked on
0:01:35
um on i guess thursday because friday
0:01:38
this stream didn't happen um that was
0:01:41
basically uh i was occupied by work
0:01:43
commitments and other um
0:01:47
team members weren't
0:01:49
available either so that is why i didn't
0:01:52
go ahead but um yeah for today
0:01:57
um
0:01:59
so
0:02:00
i mean
0:02:02
for uh on first
0:02:04
on friday i guess what i'm tori was
0:02:07
actually working off flying down he
0:02:10
um
0:02:11
we managed to do
0:02:12
some pretty cool things so when
0:02:15
tory jumps back in um he will be able to
0:02:19
explain and take us through all what he
0:02:22
did on
0:02:23
um as in or
0:02:25
offline and um
0:02:27
jay i must say
0:02:29
it he did pretty awesome stuff as in
0:02:32
um
0:02:34
since you've decided to actually pull a
0:02:37
lot of time
0:02:38
into the project um
0:02:40
yeah the project is literally flying so
0:02:43
a huge
0:02:44
huge credit to
0:02:46
tory and um
0:02:48
all of us as well for
0:02:50
being really really committed and um
0:02:54
yeah we just want to get this prom once
0:02:57
we have started we want to get
0:02:59
everything
0:03:01
finished because that's what we do
0:03:03
we don't leave things in the middle
0:03:06
all right
0:03:07
so yes i would so in the meanwhile he
0:03:12
gets back on um i would just take you
0:03:15
through some
0:03:17
jira
0:03:18
tickets
0:03:21
and
0:03:22
they're welcome mate
0:03:25
you sure i'm i'm pretty
0:03:27
[Music]
0:03:28
good at um
0:03:31
giving good jokes to be honest and
0:03:34
thanks for acknowledging it
0:03:37
i'll take that as a compliment
0:03:40
um right cool
0:03:42
so
0:03:42
in the meanwhile tori joins um i will
0:03:45
take you through some of the hero
0:03:48
tickets that we managed to get done um
0:03:51
so
0:03:52
just share my screen
0:03:54
real quick
0:03:58
and
0:03:59
i don't know if if you have observed but
0:04:01
um i have actually changed the
0:04:03
background music so if you're liking it
0:04:06
um
0:04:07
do
0:04:09
let's know in the comments or if you
0:04:12
want that to change yeah let us know in
0:04:15
the comments as well
0:04:18
all right of course unless you my screen
0:04:21
the entire screen yes so i'm going to
0:04:23
save that
0:04:24
as in shave
0:04:27
share it so
0:04:30
so what did i want to do open up jira
0:04:36
let's take you on a tour
0:04:38
um until tory
0:04:40
until tory joins in
0:04:57
okay so we did get
0:04:59
moving uh i've
0:05:01
just said a popping noise so i'm
0:05:03
thinking tori is back in action
0:05:07
yes he is so here we go welcome tori
0:05:11
she made it
0:05:20
oh i like this rock music
0:05:23
yeah yeah you like it
0:05:31
the three might be a really good change
0:05:34
for us as in um
0:05:36
from the music point of view as well
0:05:40
i'm glad you like it
0:05:42
by the way your um
0:05:44
camera is
0:05:45
frozen at a perfectly
0:05:48
perfect
0:05:49
moment but you're smiling
0:05:57
i'm guessing he's having technical
0:05:59
issues again
0:06:01
so he's probably jumped off
0:06:05
all stream yard is um
0:06:08
having a bit of a delay picking up his
0:06:11
webcam i don't know
0:06:13
i'm just taking wild guesses at the
0:06:15
moment
0:06:19
all right cool so he has actually jumped
0:06:21
off
0:06:23
and
0:06:24
hopefully comes back
0:06:26
soon all right let's take you on the
0:06:29
tour again
0:06:32
so this is the tool
0:06:37
okay cool so
0:06:40
um yeah we did
0:06:43
we managed to get all these issues
0:06:46
um done and this functionality as well
0:06:50
which is
0:06:52
perfect and um
0:06:55
yeah passing
0:06:58
um
0:07:00
so there was an issue of his back
0:07:07
oh man there you go you are back
0:07:11
sorry
0:07:13
no problem uh i was just telling the
0:07:15
viewers
0:07:17
that um
0:07:19
your
0:07:20
your camera is frozen at a perfect
0:07:24
moment
0:07:25
when
0:07:26
you were smiling
0:07:28
and
0:07:29
i like catching
0:07:31
take a picture there
0:07:33
i'm sure i looked absolutely
0:07:36
stunning
0:07:37
yes you did
0:07:39
um
0:07:40
i was gonna say maybe apply for
0:07:43
forget this
0:07:44
soft dev job maybe apply for
0:07:48
code game
0:07:52
forget the software yeah
0:07:54
forget that about it you won't make it
0:07:58
we're not gonna make it don't worry it's
0:08:01
just a file for fun but the there's big
0:08:04
boxing modeling jobs to be honest
0:08:08
but yeah anyway
0:08:10
and
0:08:11
jokes aside
0:08:12
your camera is frozen again
0:08:20
yeah is gonna i think jump
0:08:23
off and then back on again
0:08:31
yeah
0:08:32
he's
0:08:33
he's probably gonna do that because um
0:08:36
yeah
0:08:37
he won't come
0:08:38
on if is as it is or not
0:08:43
yeah yeah you're back now i hope i hope
0:08:46
it stops i don't know what's going on
0:08:49
it's not even it's it's not my wi-fi
0:08:51
it's my
0:08:52
computer ah
0:08:54
right right cracker
0:08:57
they might be
0:08:58
in
0:08:59
internet by each yeah
0:09:01
no
0:09:03
weird
0:09:05
probably i did probably i did something
0:09:08
to it today
0:09:10
too much code is it
0:09:12
unintended all your code
0:09:15
i uh i have a story i shared like
0:09:19
so
0:09:20
um i shared this tutorial with another
0:09:24
friend of mine
0:09:25
i said hey this is really useful
0:09:28
you set up uh um this like this like
0:09:32
bash script
0:09:34
or shell script whatever on on windows
0:09:38
and it will recursively clean
0:09:41
all of the node model
0:09:43
all the node modules off of whatever
0:09:46
project directory you want like
0:09:49
so i put all my projects in one folder
0:09:52
and so it will just go through and
0:09:53
delete all the node modules
0:09:56
if you have it set up correctly
0:09:58
well he called me he's like hey i need
0:10:00
help i don't understand this part
0:10:03
and then i'm like okay sure and then i'm
0:10:05
like
0:10:06
and then all this he has the he has the
0:10:08
terminal open with the command i see him
0:10:10
and i'm like it says press any key to
0:10:12
continue and all of a sudden he just
0:10:14
presses a key
0:10:16
i'm like why did you press the key like
0:10:18
you're in the wrong directory and he he
0:10:20
deleted everything on his desktop
0:10:23
like you always got to read the prompt
0:10:26
oh my god
0:10:29
uh so was it on the desktop as a
0:10:33
folder
0:10:34
yeah the desktop folder like everything
0:10:37
i was like oh nothing important was
0:10:39
there
0:10:40
he didn't finish the tutorial but i have
0:10:42
it set up
0:10:44
correctly
0:10:47
it worked it's nice it's nice
0:10:50
you just gotta read the problem
0:10:52
i told him look if you're working in the
0:10:54
console
0:10:55
if you're working in the terminal like
0:10:57
anything you do
0:10:59
it's all about reading everything is
0:11:01
there to read hmm
0:11:04
yeah but
0:11:05
i'm just really happy that he wasn't in
0:11:07
a c drive
0:11:10
[Laughter]
0:11:13
i asked him if he set up any recovery
0:11:15
points on his laptop and he's like no i
0:11:18
never did
0:11:19
ah
0:11:21
well
0:11:22
i'm pretty sure they're on desktop that
0:11:24
they're just shortcuts but all the
0:11:26
applications um
0:11:28
probably have been installed in either c
0:11:31
drive or in other as in drive that he
0:11:34
has dedicated to his softwares yeah i
0:11:37
don't know if if he had actual folders
0:11:41
that are not shortcuts on the desktop
0:11:43
but ah
0:11:45
right right that would maybe you can't
0:11:47
have it like that but i think i i think
0:11:50
he
0:11:51
i think he searched for his stuff pink
0:11:54
is gone
0:11:56
ouch
0:11:58
yeah i feel really sorry for him
0:12:02
i don't he didn't read so i was like
0:12:03
dude
0:12:05
you gotta read
0:12:06
lessons
0:12:08
yeah
0:12:10
sometimes
0:12:11
you gotta learn the hard way
0:12:13
sometimes you gotta learn the hard way
0:12:16
i'm sure i can if i had time to think
0:12:19
i'm sure there were things i did when
0:12:20
i'm like
0:12:22
like setting up
0:12:23
probably setting up docker on my
0:12:25
computer with like
0:12:27
linux subsystem and stuff i think i i
0:12:30
think i swear it messed up my computer
0:12:34
if it did um in those in those kind of
0:12:37
things i wouldn't be surprised because
0:12:40
i've done million of those things
0:12:43
yeah i don't know there's like
0:12:46
some hyper-v
0:12:47
uh
0:12:49
hyper-v to
0:12:51
run
0:12:53
run docker is required on our older
0:12:55
laptop and um
0:12:58
and
0:13:01
that
0:13:02
like messes with my
0:13:05
my like my wifi
0:13:07
driver for some reason i don't know and
0:13:09
i've tried so hard to fix it
0:13:12
ah right
0:13:13
yes i just gave up
0:13:16
yeah i wouldn't
0:13:18
know that because i am really
0:13:20
experienced that issue but um as far as
0:13:22
i know all my errors were
0:13:25
kind of
0:13:27
my wrong doings
0:13:30
yeah it was probably my fault too but i
0:13:32
don't know it was like kind of a
0:13:35
i've all yeah i can't wait to get a
0:13:37
newer laptop anyways i'm just kind of
0:13:39
jealous to be honest i can't wait to
0:13:42
until you you go back to the us and
0:13:45
everything's
0:13:46
gonna be basically brand new for your
0:13:48
brand new laptop brand new as in
0:13:51
location well
0:13:53
no location but
0:13:56
equipment wise
0:13:58
yeah yeah and i'll be indoors
0:14:05
would that be and
0:14:07
uh in front of an actual
0:14:10
wall as well
0:14:12
like
0:14:13
unfortunately
0:14:15
unfortunately yeah
0:14:17
i love
0:14:18
i love where i work now because it's
0:14:19
outside pretty much
0:14:21
ah okay okay right track right yeah
0:14:25
that's pretty cool
0:14:26
yeah i can get that on to me
0:14:29
the only problem is i think sometimes
0:14:32
based on daylight savings i would have
0:14:35
to get up at 5 30
0:14:37
in the morning
0:14:40
so we'll see
0:14:42
we'll see if it works man wow
0:14:45
that is really because i didn't try that
0:14:48
because um
0:14:49
on saturday i didn't wake up at 5 00 a.m
0:14:54
as in
0:14:55
to do something really important for
0:14:58
work
0:15:00
my body was in front of the computer but
0:15:02
my brain was sleeping in the bed still
0:15:06
and i was like okay this is not working
0:15:09
i should probably do something else for
0:15:11
now
0:15:14
yeah
0:15:16
yeah
0:15:17
but yeah um
0:15:18
yeah so good to have you again um
0:15:22
so
0:15:24
i know that you worked on bit more stuff
0:15:28
offline do you want to
0:15:30
take us through there and the viewers as
0:15:33
well i don't
0:15:34
remember anything
0:15:37
i don't remember what i last did to be
0:15:39
honest
0:15:41
i think it was to do with the color
0:15:43
change
0:15:44
yeah oh yeah we'll color change the web
0:15:47
sockets
0:15:49
all right
0:15:50
share my screen then
0:15:56
hey guys
0:16:03
all right this is um can you see my
0:16:05
screen can you enable my uh
0:16:07
i i need to yeah no i can't
0:16:11
all right let's go to scrumbler and then
0:16:13
[Music]
0:16:15
um
0:16:18
let's see a few things i fixed that
0:16:19
enter button so if you hit enter
0:16:22
it works yeah
0:16:24
so
0:16:25
i saw that one well done for that
0:16:27
okay was that pretty simple
0:16:31
yeah you just need to
0:16:35
um
0:16:38
all right let me open vs code
0:16:40
if you want to know how do you want to
0:16:42
know how
0:16:43
yeah why not
0:16:45
okay
0:16:51
this one so
0:16:55
i wonder i haven't tried pushing to
0:17:03
i i haven't tried i haven't tried
0:17:05
pushing to the new repo now that it's
0:17:08
moved to an organization
0:17:11
i wonder if it i don't think there
0:17:13
should be any problems
0:17:16
i do want to test it yeah i don't know
0:17:19
that either you will be worth while
0:17:21
testing it if uh if it still
0:17:24
allows
0:17:25
yeah
0:17:29
yeah um the only reason why i said it
0:17:32
because um as in the viewers wouldn't
0:17:35
know how we did it and it's good to
0:17:37
share knowledge
0:17:38
across
0:17:40
so that's why yeah and
0:17:46
it would be it would be nice if i had
0:17:48
the
0:17:49
the diff
0:17:51
but i don't know where that commit is
0:17:53
and i'm too lazy to look it up right now
0:17:59
the diff
0:18:00
yeah the diff so you could see so this
0:18:02
is home.html
0:18:04
so one thing i did is i don't know if
0:18:06
this was in a form
0:18:08
and maybe it was in a form element so i
0:18:10
put it in a form element
0:18:12
but there was no button
0:18:14
there was a there was a
0:18:17
there was a a tag
0:18:20
and i changed that to a button
0:18:22
and then um the button typed submit in
0:18:27
in
0:18:28
html um if you have a button inside of a
0:18:32
form with a submit
0:18:34
then whenever you submit the board
0:18:37
i mean whenever you click
0:18:39
click on the button or you hit enter and
0:18:42
maybe there's another default behavior
0:18:44
it'll submit the form
0:18:48
so that's the easiest way to
0:18:50
to do it without dealing with like key
0:18:53
press
0:19:04
as in this method but i just wanted to
0:19:07
make sure and
0:19:08
yes
0:19:10
you're right that um
0:19:12
i can easily go and read the pr and um
0:19:16
and
0:19:18
that's it um
0:19:20
yeah
0:19:21
i'll keep in mind not to be lazy
0:19:24
for next time
0:19:26
thank you for that
0:19:29
okay and then i don't know there's some
0:19:31
javascript code but it's not anything
0:19:33
pretty much not any different than what
0:19:35
you had that's fine yeah
0:19:39
the html is more exciting
0:19:42
yeah it says
0:19:44
i can tell
0:19:46
um so we're on the test board now on
0:19:49
scrambler you know on the live
0:19:52
live production site here and
0:19:55
and if
0:19:58
so i think two things that updated
0:20:01
were the card color
0:20:04
and
0:20:06
and the
0:20:07
position
0:20:08
of the card
0:20:11
now
0:20:13
the position of the card is not
0:20:15
integrated with the websocket
0:20:18
which we kind of talked about on jira
0:20:20
yeah if you remember and then yes but
0:20:23
the position of the card is saved if you
0:20:25
click save so let's stack all these in
0:20:28
the middle
0:20:29
do you remember how they look before we
0:20:31
even open the site
0:20:32
yeah one here one over here one in the
0:20:35
middle so we hit save
0:20:38
and we refresh the page
0:20:44
whoa that didn't work
0:20:47
what happened
0:20:49
to what
0:20:51
that's odd
0:20:55
there is something weird like there is
0:20:58
something weird that i've noticed like
0:21:00
there's some weird behaviors with this
0:21:02
save button i gotta look at it
0:21:04
i don't understand that's fine
0:21:06
yeah the
0:21:08
there must be
0:21:10
many fixes
0:21:11
still to be done um
0:21:14
yeah but the good part is that the logic
0:21:17
is there and um two of the cards are
0:21:20
working
0:21:21
or already it might just be something to
0:21:24
do in the back end as well
0:21:26
as in when it's being saved
0:21:30
and
0:21:31
the values are being saved in dynamodb
0:21:35
and when they're brought back
0:21:38
that's when i think it might be messing
0:21:41
up a bit
0:21:46
does that make sense
0:21:48
i swear this was there
0:21:50
see it works it works sometimes
0:21:54
sometimes it works and sometimes it
0:21:56
doesn't yeah
0:21:58
that's odd so anyways i
0:22:02
thought i fixed it before but then okay
0:22:05
it's not
0:22:07
fixed so
0:22:09
that's a good one to
0:22:13
write something
0:22:15
some
0:22:15
unit tests on or something and see if
0:22:18
there's some
0:22:19
incorrect behavior
0:22:22
exactly
0:22:26
unit tests we are going to come
0:22:29
to them because i've just learned to
0:22:31
learn
0:22:32
how to
0:22:33
do uh
0:22:35
unit testing training uh ammo
0:22:38
work because it's my first time as in
0:22:41
before this training i haven't done any
0:22:45
unit testing in my life
0:22:47
oh really
0:22:50
i i don't i'm lazy i don't do it that
0:22:52
much well it saved all the colors
0:22:54
correctly
0:22:56
yeah it was weird which is great
0:23:00
something something makes me feel like
0:23:02
yeah this would be good for the unit
0:23:04
test because something makes me feel
0:23:05
like
0:23:06
maybe there's something with the jquery
0:23:08
library that's
0:23:10
in there and then it's like debouncing
0:23:12
something
0:23:14
on the save
0:23:16
that's
0:23:17
but i see it could be a back end thing
0:23:20
as well i i will take a look at it at
0:23:23
some point i don't know that's funny
0:23:26
that's what i'm thinking they must have
0:23:28
something to do with the in the back end
0:23:31
because
0:23:32
it's being saved properly
0:23:35
i'm pretty sure but when it gets
0:23:38
the values from db i think that's when
0:23:41
they might be changing a bit
0:23:44
yeah
0:23:46
huh you so do you think it's like the
0:23:49
the raid consistency
0:23:54
to be honest i can't say anything at the
0:23:57
moment
0:23:57
until i actually debunk it
0:24:00
okay
0:24:01
um
0:24:03
so that's what i did colors
0:24:06
and position is saved now colors will
0:24:09
work on web sockets position will not
0:24:11
work on web sockets
0:24:14
um right because i just didn't hook up
0:24:17
the position because
0:24:19
honestly i had no idea how much it would
0:24:21
cost
0:24:24
like writing writing the javascript and
0:24:26
putting it on the front end will
0:24:28
probably be like 10 minutes because i
0:24:31
know i know the code well now it's
0:24:33
pretty simple but
0:24:34
in terms of costing it i i have no idea
0:24:38
how much these
0:24:40
websocket like api gateway
0:24:43
and then firing off all these lambdas
0:24:46
costs
0:24:47
it might be a lot it might not be i
0:24:49
don't know you get a million free
0:24:50
lambdas a month but i don't i don't know
0:24:53
how
0:24:54
you price the the websockets and stuff
0:24:56
as well because i think those are
0:24:58
different
0:25:00
yeah that's right um
0:25:03
we will probably have to have a
0:25:05
look in the pricing
0:25:07
uh
0:25:08
as in thing as well
0:25:10
so for now
0:25:12
this is basically pretty good as well
0:25:16
so
0:25:17
let's
0:25:18
leave this at that so well done for this
0:25:21
one um
0:25:23
and yeah pretty good progress to be
0:25:25
honest in just a few days and
0:25:30
all of the hard work
0:25:33
i would say is actually done by you so
0:25:36
huge props
0:25:38
to youtube
0:25:40
well it's cool it was fun i got to like
0:25:43
i hooked up the oh let me show you the
0:25:45
changes i made too
0:25:48
on um
0:25:51
yeah
0:25:53
i'll just uh asking objectives something
0:25:57
get that am i allowed to look at the
0:26:00
changes and that story made or
0:26:03
shall i also read that from the per
0:26:05
request
0:26:07
i probably don't want to read my pr's
0:26:11
probably horrible
0:26:13
oh talking about them we really need to
0:26:16
do a merge i think
0:26:18
because um
0:26:20
i think you're probably good at this
0:26:22
point though because like all the major
0:26:24
functionality is there
0:26:27
yeah yeah
0:26:31
because i want to make sure that we have
0:26:34
all the
0:26:35
because uh your idea was really good
0:26:38
that we should basically do a merge
0:26:41
when the
0:26:42
websockets are
0:26:43
basically pretty much done
0:26:46
yeah and everything is done
0:26:52
yes
0:26:53
yeah um
0:26:55
so
0:26:56
except they're getting uh the gap the
0:26:59
gap on but um we won't go into that one
0:27:03
at the moment
0:27:05
that will just lose the scope of
0:27:08
this stream
0:27:10
um
0:27:12
yeah
0:27:13
so
0:27:16
yeah
0:27:17
oh
0:27:24
[Music]
0:27:29
hold on there
0:27:35
i want sam
0:27:37
where's sam there it is
0:27:47
is your parrot called sam
0:27:49
[Music]
0:27:52
yeah
0:27:54
okay as soon as you say i want sam where
0:27:57
that is and your parents
0:28:02
that was pretty funny
0:28:04
sam
0:28:06
i had a
0:28:08
parakeet who would sing
0:28:11
beethoven
0:28:15
that was pretty funny
0:28:18
daytoba
0:28:19
beethoven beethoven
0:28:22
it would sing beethoven it's funny
0:28:27
um so
0:28:29
uh why is let me let me close this node
0:28:32
modules folder here
0:28:34
all right so um let's take a look at one
0:28:37
thing i did
0:28:39
um so if you notice
0:28:43
if you ever went into your folder
0:28:46
if if you never if you never pulled down
0:28:48
the changes
0:28:50
and you opened up your sam build folder
0:28:52
and you open this up
0:28:54
you would see all these functions right
0:28:57
the the lambdas
0:28:59
right so
0:29:01
if you're talking github then that
0:29:04
folder is ignored
0:29:06
right i mean on your locally like if you
0:29:10
haven't run sam build recently you open
0:29:13
these up you would you would have seen
0:29:16
that
0:29:17
every single
0:29:19
lambda folder here
0:29:21
would have had the whole express app in
0:29:24
it too even the
0:29:26
even the the websocket functions that
0:29:29
don't need it and that was why the build
0:29:31
time was like insane
0:29:35
right right track i say
0:29:38
i see so the way you deal with that
0:29:40
actually is by
0:29:42
making i mean maybe there's another way
0:29:44
too that i don't know so if somebody did
0:29:47
know the answer that'd be great but
0:29:48
basically i separated what the scrumbler
0:29:52
api is for the express app
0:29:54
and i put that in its own folder because
0:29:56
those will be bundled together into that
0:29:59
one build folder
0:30:00
if you notice the hello world function
0:30:03
probably change the name at some point
0:30:06
um uh
0:30:09
and
0:30:11
then i put all the websocket functions
0:30:14
in their own folder default on connect
0:30:17
disconnect and so now they are all just
0:30:20
built
0:30:21
separately
0:30:23
without any dependencies because they
0:30:25
don't need any and they don't have the
0:30:26
express app so it's just
0:30:28
they're all in their own individual
0:30:32
folders by themselves and then those get
0:30:34
uploaded to you know aws
0:30:38
um and so the build now now instead of
0:30:40
taking the build time taking like
0:30:43
two three minutes it takes me like 30
0:30:45
seconds
0:30:47
pretty cool stuff
0:30:49
yeah and also the good thing is that
0:30:51
when you run those lambdas too they're
0:30:53
probably just like
0:30:55
they're probably just faster because
0:30:57
they don't have all this extra crap they
0:30:59
didn't need before i think i'm not sure
0:31:01
about that though but
0:31:03
you just like
0:31:05
it just got rid of a lot of um
0:31:08
stuff that you didn't need
0:31:10
yeah yeah um
0:31:12
so
0:31:13
all i all i had to do then was just
0:31:15
update the code uri to the correct
0:31:18
folder and so you'll see those vehicles
0:31:21
yeah
0:31:23
um and then
0:31:27
in the default function no um
0:31:31
no sorry not in the default no we're
0:31:33
done with web sockets
0:31:36
so in app.js all i changed was
0:31:41
the um i did a little code
0:31:44
refactor and
0:31:47
all i changed were the um
0:31:51
the
0:31:53
posts note where's the post note post
0:31:56
note and the patch note
0:31:58
so that those worked with the new like
0:32:01
data type remember because we have color
0:32:04
text and position
0:32:06
of the note
0:32:09
and so
0:32:10
that's all i did i changed this from i
0:32:13
didn't delete what we had before i i
0:32:15
guess you can delete it later but
0:32:18
um
0:32:19
i just made this like is it a valid note
0:32:21
function that basically checks that it
0:32:23
has
0:32:24
all the right properties that come from
0:32:27
the front end yeah yeah and that are in
0:32:29
the database
0:32:30
and then
0:32:32
from there
0:32:33
it just puts it on the dynamo
0:32:35
db i don't even have to the nice thing
0:32:37
was i didn't have to
0:32:39
change anything about the um
0:32:43
the params for
0:32:45
like i don't have to update the
0:32:49
update expression or the expression
0:32:51
attributes it just it just shoved the
0:32:53
whole object onto the
0:32:56
existing array for that
0:32:59
board's note attribute
0:33:01
which was great
0:33:03
yeah yeah that makes perfect sense
0:33:06
to be honest as in how you
0:33:09
just how you structured it and added a
0:33:11
bit more logic in order to basically add
0:33:15
the validation that
0:33:18
it won't do the actual process until the
0:33:20
validation is
0:33:22
satisfied which is exactly the real
0:33:24
world programming
0:33:28
uh yeah all it is is just simple and
0:33:31
like if we the only problem is if we
0:33:33
ever update it's not like dynamic
0:33:36
so the only problem is like if if you
0:33:39
ever
0:33:40
like changed what's coming from the
0:33:42
front end to the back end then you also
0:33:45
have to go in and change this back end
0:33:47
code because it's just checking like do
0:33:49
all the
0:33:50
properties exist on this note object
0:33:53
that you're trying to update
0:33:55
yeah yeah that's that
0:33:57
that makes perfect sense to be honest
0:34:00
so it's probably not the best because
0:34:02
it's not it's not dynamic at all but
0:34:05
but it does it did the job i guess does
0:34:08
the job yeah
0:34:09
that's basically what we want at the
0:34:11
moment
0:34:12
yeah i just didn't want some weird thing
0:34:14
to happen where it's posting like
0:34:17
the wrong information and no and then
0:34:20
it's coming back to the client and then
0:34:21
it's going to throw errors because
0:34:24
like
0:34:25
things are just messed up or something
0:34:28
true true
0:34:29
now i completely agree with
0:34:32
review man as in
0:34:35
for the time duration that we have in a
0:34:37
new
0:34:38
new milestone um
0:34:40
yeah that
0:34:41
that's the way we
0:34:43
want to do it at least
0:34:45
for now
0:34:49
um gekko's asking how is work going
0:34:52
saying what are you working on on this
0:34:54
week
0:34:55
so um
0:34:57
get them work is going pretty good as in
0:35:00
uh pressures on
0:35:02
fastback fast-paced company i love that
0:35:05
um
0:35:08
why am i working on this week
0:35:10
so
0:35:11
it's uh i was basically working on
0:35:14
working on all the critical bugs
0:35:18
and um
0:35:19
[Music]
0:35:20
setting up my environments
0:35:23
for
0:35:24
different environment
0:35:26
local environments for different
0:35:29
environments so
0:35:30
when any critical bond
0:35:33
comes for any in any major environment i
0:35:37
can jump on that quickly to solve that
0:35:41
yeah so that's pretty much it for this
0:35:43
week
0:35:47
cool so
0:35:48
but
0:35:50
um
0:35:51
i guess
0:35:52
that's pretty awesome stuff and then
0:35:55
tutorial love your work as always um
0:35:59
i was thinking that in this session how
0:36:02
about if we in the back end how about if
0:36:04
we change the
0:36:06
string property of data to an object
0:36:09
itself and then just deploy it
0:36:16
oh i also i also was like playing around
0:36:18
with sam too and um i learned that you
0:36:22
can run
0:36:24
sam i think it's sam local
0:36:29
api and then api gateway or something
0:36:32
and then it will and local invoke
0:36:35
if i'm performing
0:36:38
yeah you you can you can basically
0:36:43
um locally
0:36:45
locally uh develop your like your api
0:36:49
gateway which is cool because then i
0:36:50
don't have to deploy every time
0:36:54
um to make because i thought i had a
0:36:57
course error but i told you the story
0:37:00
yeah yeah you did i was insane
0:37:03
i was using something
0:37:05
like more modern javascript that wasn't
0:37:07
supported in node 12 so
0:37:10
i also updated the
0:37:12
lambdas to node 14 which is
0:37:14
i'm sure that's lts at this point
0:37:17
anyways but
0:37:19
um
0:37:20
yeah yeah cool man because i thought i
0:37:23
was like oh what did i do
0:37:26
what did i mess up
0:37:30
yeah i know that
0:37:32
i know that feelings like there's a joke
0:37:35
in deaf community
0:37:37
that
0:37:37
there's always a problem
0:37:40
between the keyboard and the chair
0:37:44
right well actually it was good what i
0:37:46
learned from that is that next time
0:37:48
i'm gonna make sure that if i have
0:37:52
something in a node environment
0:37:55
on like a lambda or wherever else
0:37:57
there's like a different run time i'm
0:37:58
gonna make sure that
0:38:00
the runtime i'm using to develop
0:38:03
and execute my code for development is
0:38:05
the same runtime so i never have that
0:38:08
problem
0:38:10
that was like i was like this
0:38:12
this would have saved me
0:38:14
because i'm sure i have like node 16 on
0:38:17
my computer right ah the versioning
0:38:20
issue yeah yeah i know that being there
0:38:22
done that many times
0:38:25
still do it sometimes
0:38:29
thank you on stack overflow to somebody
0:38:32
who was talking about optional chaining
0:38:35
potentially being in the issue and i was
0:38:37
like i used optional chaining
0:38:43
and that was it because the error
0:38:45
message was so hard to read
0:38:47
it was so hard
0:38:50
it was like there's a dot
0:38:52
that's it's like there's a there's a
0:38:54
period
0:38:56
there's an error at period and i'm like
0:38:58
there's a lot of periods in mind
0:39:02
there's a lot of periods which one tell
0:39:04
me
0:39:05
right here
0:39:06
okay
0:39:09
yeah yeah it wouldn't it wasn't telling
0:39:11
me the line though
0:39:14
[Music]
0:39:20
um i haven't seen this syntax before
0:39:23
which
0:39:24
there's an equal
0:39:27
that strike through so what's um
0:39:31
oh there you know they
0:39:32
i know they might be off
0:39:34
is not equal to
0:39:36
as in
0:39:39
literal
0:39:40
no this this is just font ligature it's
0:39:42
like a special
0:39:45
um
0:39:46
font setting
0:39:48
oh all right crosstalk
0:39:50
cool so custom font
0:39:54
uh yeah you can turn this on in vs code
0:39:58
i mean
0:40:01
it's okay somewhere in here
0:40:04
i think it's in my main settings
0:40:08
and then if i go to
0:40:10
[Music]
0:40:11
leg
0:40:13
see font ligatures and i turn that on
0:40:16
and if you're
0:40:17
i think
0:40:18
most fonts probably have it but i'm
0:40:20
using cascadia code era code
0:40:25
and then
0:40:26
instead of it being like
0:40:29
you know normally it's
0:40:31
uh
0:40:35
let me see yeah it's like this right if
0:40:37
you see in my terminal
0:40:39
yeah yeah no like
0:40:42
you know bang equal equal it it turns it
0:40:46
into this
0:40:48
ah
0:40:49
right
0:40:51
which is just visually
0:40:53
yeah cognitively
0:40:55
it's just way easier for me
0:40:58
yeah yeah yeah that makes sense to be
0:41:01
honest
0:41:02
like i know that's i instead of just
0:41:04
seeing like sometimes i don't like code
0:41:08
personally
0:41:09
where somebody and i do it all the time
0:41:11
where there's an if statement with a not
0:41:15
because sometimes i just might not see
0:41:16
it
0:41:18
like you know not true or whatever
0:41:21
because i just may not visually see this
0:41:26
so that's sometimes i do it all the time
0:41:28
i use it all the time anyways i'm like
0:41:32
it's not it's not as readable to me
0:41:34
i guess
0:41:36
yeah
0:41:36
if you write like
0:41:38
a
0:41:39
more verbose statement
0:41:42
um like you know note
0:41:44
is
0:41:46
is false or whatever whatever makes
0:41:49
sense
0:41:50
that's me yeah
0:41:52
yeah yeah
0:41:53
i mean
0:41:55
that's actually making code more
0:41:58
readable as well
0:42:00
as
0:42:02
especially if you're just
0:42:04
doing that for yourself as a
0:42:06
specifically because
0:42:08
you wouldn't know what the um
0:42:11
what these signs are as well so
0:42:14
yeah man pretty good stuff on the in
0:42:17
individual depth level
0:42:21
um
0:42:22
all right so
0:42:24
do you know where this um
0:42:27
um so you would be in create notes
0:42:31
so if you go to
0:42:34
uh
0:42:35
router no delete
0:42:39
post
0:42:42
uh
0:42:43
yeah text for notes
0:42:46
yeah there um
0:42:48
no no
0:42:49
just slowly please
0:42:53
um
0:42:55
so that's
0:42:59
so
0:42:59
when we are posting the notes
0:43:03
oh
0:43:04
this is updating it isn't it or it's
0:43:08
posting it
0:43:09
uh this is in the post so this is adding
0:43:12
a new note to
0:43:14
the board's
0:43:16
board notes
0:43:17
no yeah yeah i
0:43:20
remember it now
0:43:22
okay so what do we have to change then
0:43:26
so basically we need to change the
0:43:29
single single nodes so if you go to
0:43:32
where the single node is
0:43:35
um
0:43:36
defined and being set
0:43:43
single note
0:43:45
is being set
0:43:47
yeah
0:43:48
so
0:43:49
we need to do something in the topic
0:43:54
because that's where the data comes in
0:43:57
right
0:44:00
this is like the note data
0:44:02
yes just text for note
0:44:04
so this has
0:44:08
map
0:44:09
so this is coming from the request body
0:44:12
yes
0:44:13
yes
0:44:19
so
0:44:21
um
0:44:30
yes it would be an object but i think we
0:44:32
would need to
0:44:36
um append
0:44:40
more things in
0:44:42
so
0:44:44
let me think
0:44:46
list there's this set board now it's
0:44:49
equal to list append boards note
0:44:52
and then it's it's uh i i
0:44:56
expression attribute
0:44:58
is that what it's called
0:44:59
no so note is a single note
0:45:02
yes
0:45:03
so
0:45:04
i'll tell you what's happening if you go
0:45:06
back to
0:45:07
where the textbook note was being set
0:45:11
okay
0:45:20
single note
0:45:23
actually hey hey hey
0:45:27
um so cons single note so
0:45:30
that's um
0:45:32
i should rename these
0:45:34
yeah
0:45:37
this was like this i didn't want to
0:45:39
change it but we can just make this the
0:45:43
um
0:45:47
well this validates it here
0:45:51
um
0:45:55
uh oh wait actually i should be careful
0:45:57
with that
0:46:00
i don't know how much that will change
0:46:03
okay let's see
0:46:06
oh right okay
0:46:08
um so
0:46:10
you know how it says request or body dot
0:46:12
single note
0:46:14
yeah
0:46:15
um
0:46:16
basically what that does is
0:46:21
huh
0:46:23
no data
0:46:26
basically what that does is when you
0:46:31
when you post something
0:46:33
it looks in the single nose property of
0:46:37
the object
0:46:39
in the body yeah yeah in the body yeah
0:46:41
which is this comes from the the
0:46:44
the front end yeah
0:46:47
yeah yeah so what i'm thinking that we
0:46:50
might need to change
0:46:54
the note data
0:46:57
into
0:46:58
an object itself
0:47:00
so
0:47:01
[Music]
0:47:02
it's accessing
0:47:05
the text and the position from the body
0:47:08
itself
0:47:10
does that make sense
0:47:14
you mean instead of it being inside one
0:47:16
single note
0:47:19
you mean in the body the requests from
0:47:21
the body you would you would change the
0:47:25
so you would do like um
0:47:28
you know fetch
0:47:32
url and then
0:47:34
[Music]
0:47:36
method right post or whatever and then
0:47:40
here in the body
0:47:42
you're gonna
0:47:44
do a bunch of objects
0:47:52
like that
0:47:54
where you have like position
0:47:57
is that what you mean
0:48:02
um
0:48:03
i was hoping that um we could only
0:48:06
as in
0:48:09
x
0:48:09
and columns
0:48:19
probably yes because i would want uh all
0:48:24
of these as in the text the
0:48:26
color and the position all to be in the
0:48:29
bodice so we can just access everything
0:48:31
from the body object
0:48:35
that's coming from the front uh from the
0:48:38
front end
0:48:39
but if if we it's gonna like take like
0:48:41
30 minutes to change all that probably
0:48:44
so how do you suggest that we go about
0:48:48
it with a
0:48:49
minimal change
0:48:50
well it works we don't need to change it
0:48:53
to be honest
0:48:56
like if we look at dynamodb
0:49:02
let's go to dynamodb and it'll probably
0:49:04
make more sense what's going on
0:49:07
because um
0:49:09
there's no problem with creating new
0:49:10
notes or yeah
0:49:13
um
0:49:14
see dynamo
0:49:17
eb items
0:49:19
so what it is it's it's a it's uh what
0:49:22
is the data type in dynamodb a list
0:49:25
basically an array
0:49:27
a map yeah you got my map okay
0:49:31
oh
0:49:33
blocked
0:49:43
don't look at mine
0:49:45
she implemented that i like it
0:49:48
oh yeah i've i've had this since the
0:49:50
start
0:49:52
oh okay right
0:49:55
51st
0:49:57
exactly
0:49:59
the credit card takes you first
0:50:05
it's your credit card too
0:50:07
i know
0:50:08
that's what i'm talking about then
0:50:19
all right i think this will
0:50:21
open the board table
0:50:24
wow you've got that many pinned items
0:50:30
four
0:50:31
oh my bookmarks
0:50:33
my bookmarks
0:50:35
no the uh
0:50:36
console
0:50:38
the console as a lambda cloud watch api
0:50:41
gateway
0:50:42
i am dynamodb
0:50:44
email service
0:50:46
i think we use all pin services
0:50:49
we use all those
0:50:51
that's why
0:50:52
not
0:50:53
email service
0:50:56
oh that's weird i don't know i didn't
0:50:57
use that oh okay cool let's see
0:51:01
um
0:51:02
yeah so that's a map
0:51:06
that's where's the
0:51:10
where's the regular test board here
0:51:14
maybe there's more than 50 boards
0:51:18
wow
0:51:19
all right
0:51:24
oh that's for table whoops
0:51:30
search the wrong thing
0:51:34
okay
0:51:36
find tables by table name i want to find
0:51:38
a
0:51:43
wow why is why is it so slow
0:51:47
yep
0:51:48
query
0:51:50
okay now it says there's 31.
0:51:53
that's weird well there's still too many
0:51:56
yeah so it's ready
0:52:06
there's a lot of tests there's the
0:52:08
regular test board
0:52:10
and good old cut
0:52:12
yeah
0:52:15
so if we look at the json it's a list
0:52:18
right board nodes is a list and then
0:52:20
each object is a map
0:52:23
i guess
0:52:24
so that's for each
0:52:26
note is a map which is basically an
0:52:29
object i'm
0:52:30
assuming so you have this list of yeah
0:52:34
four notes and then there's two notes in
0:52:38
here
0:52:39
i guess
0:52:40
what is this thing
0:52:42
a three okay there's three notes
0:52:47
all map and then if we open one
0:52:51
we have the date the note id and then
0:52:53
the topic which is all the note data
0:52:56
which is yellow
0:52:58
text and then the position and those are
0:53:01
the oh so it's already being saved yeah
0:53:05
i update i updated
0:53:07
yeah that's why i was happy i was like
0:53:09
oh i don't have to update the
0:53:12
uh like the put params or
0:53:15
whatever i say yeah that makes sense to
0:53:17
be honest
0:53:19
okay cool just just figured it out
0:53:25
unless there is something bad about it
0:53:27
but as far as i can tell it seems it's
0:53:30
working
0:53:31
working
0:53:33
yeah
0:53:34
oh that's actually pretty good okay we
0:53:37
are done let's go live
0:53:43
i think i think i don't know what is
0:53:46
necessarily left to do honestly um so
0:53:50
there are many uh
0:53:52
there are a few
0:53:53
bug fixes that when we need to well i
0:53:56
mean major feature like um the get
0:53:59
button
0:54:00
the get button
0:54:02
so that's like a major feature we need
0:54:04
all right that's
0:54:06
yes
0:54:08
so basically the idea
0:54:10
of that button was
0:54:13
to as in
0:54:17
just to get the existing board but that
0:54:20
would cause problems in the user
0:54:22
integrity
0:54:28
sorry say that again the get button
0:54:31
yeah so
0:54:32
the gap line is a list of boards
0:54:37
so you get a board by a name or
0:54:40
how does it work
0:54:43
so
0:54:44
the get button will be basically the
0:54:46
functionality when a user wants to get a
0:54:50
board
0:54:51
with
0:54:52
with notes so how will it work is um
0:54:58
when the user
0:55:03
gives the board name and then presses
0:55:06
get
0:55:07
then it will get his board
0:55:10
with all the notes populated in
0:55:14
index.html
0:55:16
that's all basically
0:55:18
okay so very similar to when you just
0:55:20
navigate to the website like
0:55:23
here you put in the board name you want
0:55:26
like
0:55:27
in our case
0:55:29
but we need to you need some validation
0:55:31
first where like it's an actual board
0:55:35
or you need to show a list of boards
0:55:38
when you're searching
0:55:40
so we can't show a list of boards
0:55:42
because that will
0:55:44
um
0:55:44
[Music]
0:55:46
that would be data integrity issue
0:55:50
because i don't really want people to
0:55:53
see
0:55:54
other people's votes
0:55:56
okay but they could because everything
0:55:59
is still public right now they could
0:56:01
potentially yes they would just have to
0:56:03
yes
0:56:05
yes ex
0:56:07
exactly
0:56:08
so
0:56:09
so
0:56:10
okay
0:56:11
here's a scenario that dysfunction that
0:56:14
would
0:56:15
work on
0:56:17
say you haven't created a board
0:56:20
tourist board okay
0:56:23
and you've
0:56:25
added added no channel everything good
0:56:28
to go press save
0:56:30
voila perfect all set perfectly fine
0:56:34
after
0:56:35
a few days you want to come back to your
0:56:38
board and see what was saved as in just
0:56:42
re revisit the notes in there
0:56:46
so
0:56:48
that's where the functionality will come
0:56:50
in then you
0:56:56
would okay so what if what if we
0:57:00
since the board is being still being
0:57:02
saved in local storage
0:57:04
we could just say go to previous board
0:57:08
or go to your last board and it could
0:57:10
just read from local storage the board
0:57:12
name and just go there
0:57:15
that's really quick and simple
0:57:18
yeah but for how long will the board be
0:57:21
saved in local storage though
0:57:24
until they delete it or they go on a
0:57:27
different
0:57:28
client well yeah if they go on a
0:57:29
different client it won't know about it
0:57:31
they go on their phone or
0:57:33
yeah
0:57:34
yeah which is basically the whole
0:57:37
purpose of
0:57:38
integrating dynamodb in this open source
0:57:41
project
0:57:42
as in wherever they are they should be
0:57:45
able to
0:57:47
get that
0:57:48
so
0:57:49
there's so how are you gonna deal with
0:57:52
the
0:57:52
in the data integrity or whatever like
0:57:57
you have like any person can go here
0:57:59
create a board and edit that board even
0:58:02
there's no authentication there's no
0:58:04
user accounts
0:58:06
how are you gonna like
0:58:08
deal with that in the fact that you want
0:58:10
a functionality where you can search for
0:58:12
a board
0:58:14
or you like enter your board and it's
0:58:16
gonna tell you if it's valid or not like
0:58:19
similar to this button
0:58:22
yeah so
0:58:24
that's
0:58:25
uh so
0:58:27
how i
0:58:28
test right and we know that's already a
0:58:31
board so it won't let me
0:58:36
yes so
0:58:37
that's what basically i'm
0:58:39
trying to explain at the moment that um
0:58:45
so
0:58:47
when
0:58:48
so how
0:58:49
i
0:58:50
basically thought about it is um
0:58:57
is okay
0:58:59
if we want um we should basically focus
0:59:02
on having a shortcut
0:59:04
so
0:59:05
as in by not
0:59:07
implementing as in the authentication
0:59:10
and the users
0:59:11
use
0:59:12
user accounts because i don't know how
0:59:14
long would that take
0:59:16
how
0:59:18
yeah
0:59:19
exactly a lot longer so which is why i
0:59:23
don't want to go that route um what i
0:59:26
was thinking is um
0:59:28
when
0:59:29
a user creates a board
0:59:32
he would put in
0:59:34
his passcode
0:59:38
okay
0:59:39
and when the uh
0:59:42
when it's all done and does it he
0:59:44
presses save
0:59:45
then
0:59:47
[Music]
0:59:50
we
0:59:51
and
0:59:52
then basically he
0:59:55
types in
0:59:57
the name of the board that he wants to
1:00:00
get
1:00:01
obviously the board will be present so
1:00:04
the system will i mean the app will ask
1:00:08
for the passcode
1:00:10
and if the passcode matches
1:00:12
um but there's no user account
1:00:16
which is why the passcode comes in handy
1:00:21
so
1:00:23
every board
1:00:25
when their represent is created will
1:00:27
have
1:00:28
we will probably have a passcode
1:00:30
attached
1:00:32
okay so this isn't like a super secret
1:00:35
thing you're just gonna
1:00:38
but then so like you should
1:00:41
warn people who are using the
1:00:44
the app that it's not like super
1:00:46
confidential right because this isn't
1:00:48
like a super like
1:00:51
um
1:00:53
like uh
1:00:56
a top a top grade like authentication
1:00:59
system it's just simply like an expl
1:01:01
excel
1:01:02
spreadsheet protected by a password
1:01:06
of course my easy job we will tell them
1:01:10
as in
1:01:11
all there is they need to know
1:01:13
so
1:01:14
yeah and uh i don't really want to go
1:01:17
down to the all authentication group
1:01:19
because yeah later later you want to get
1:01:22
this uh mvp out as soon as possible
1:01:26
basically so
1:01:27
which is with a passcode
1:01:30
shortcut
1:01:32
okay
1:01:33
yeah that's not a that's not a bad idea
1:01:35
honestly because like as long as people
1:01:38
are aware like don't put anything
1:01:42
like don't put your credit card number
1:01:44
on the board
1:01:47
don't put your users will be um
1:01:51
really smarter than that then
1:01:54
to be putting credit cards or security
1:01:57
codes
1:01:58
in this
1:02:00
i'll be really surprised if
1:02:02
they do
1:02:04
but then yeah we will probably have to
1:02:06
as in
1:02:09
find a way to basically first contact
1:02:11
them and tell them
1:02:13
that so you can
1:02:15
so you can search so then you can search
1:02:18
for a board and then
1:02:21
if if you
1:02:23
[Music]
1:02:24
you can search for a board you can
1:02:26
search for all the boards right
1:02:29
what if you put in a what if you put in
1:02:31
a board name you can't remember
1:02:36
is your board just lost
1:02:38
then of course it's lost because it's
1:02:40
you know you don't it's your
1:02:42
responsibility
1:02:45
okay so it's not a search feature
1:02:48
it's not like you can search through a
1:02:50
list of board names right no no
1:02:53
yeah
1:02:54
you have to specifically put in the
1:02:57
right board name
1:03:01
yeah
1:03:04
like it's it's not gonna help you like
1:03:06
let's say i have a board called test
1:03:08
board right but i'm like i can't
1:03:10
remember the name was it tess underscore
1:03:12
board
1:03:13
and then if this doesn't exist like
1:03:15
that's it like you're not gonna get a
1:03:17
you're not gonna get help that there's a
1:03:19
test for it
1:03:20
yes
1:03:21
so that would be one drawback but to fix
1:03:25
that drawback we can prompt the user
1:03:29
when they're actually creating it that
1:03:30
please remember
1:03:32
your board it won't be because
1:03:35
after you have saved it and gone back
1:03:39
um
1:03:40
okay at the moment there are no means to
1:03:44
remind you of the board name so yeah
1:03:47
just prompting
1:03:48
the the user for that
1:03:54
to be honest
1:03:56
there are amounts of um
1:03:58
user guidance that we're
1:04:01
gonna give to the user at this skill i
1:04:04
think it's pretty good
1:04:07
to be honest
1:04:09
and in the time we have to
1:04:13
create this although it might not be
1:04:16
ideal but
1:04:19
yeah
1:04:21
it's a quick and dirty it's not i i
1:04:23
don't mind it
1:04:25
yeah um he just he just
1:04:28
pulled my leg he likes to
1:04:33
so
1:04:33
yeah i agree
1:04:35
off comes after the mvp
1:04:38
exactly see i've got support now as well
1:04:42
yay i feel really good now i mean i mean
1:04:44
as long as as long as
1:04:47
you accept the fact that it's not full
1:04:49
blown off and there's limitations i
1:04:51
don't care
1:04:53
yeah
1:04:55
of course and this will be um
1:04:58
uh as in
1:04:59
done in the
1:05:01
in the as in kind of
1:05:04
the projects means
1:05:06
and then to let the user know that there
1:05:09
are some other features that have been
1:05:11
worked on but
1:05:13
this is the first release we could also
1:05:16
kind of if you wanted to add a feature
1:05:18
to it probably wouldn't be too hard is
1:05:20
also just add a feature where
1:05:24
if they
1:05:25
if they visit a valid board ever like
1:05:29
you can just save it to local storage
1:05:33
and then
1:05:34
like if they're using the same like
1:05:37
computer
1:05:39
then at least we could provide them a
1:05:41
drop down of boards they have actually
1:05:44
visited
1:05:45
but we don't we don't need to
1:05:50
well um how long will it take though
1:05:54
me i don't know maybe like an hour
1:05:58
i mean i don't really want to put
1:06:01
any
1:06:02
expectations on anyone because it is
1:06:06
purely
1:06:07
voluntarily i could probably i could
1:06:09
probably do
1:06:10
the get board and the local storage
1:06:14
thing in probably like
1:06:16
i don't know two three hours i'm
1:06:18
guessing
1:06:20
okay that sounds pretty as in
1:06:23
i'll just assume i'll just do it when
1:06:24
i'm bored
1:06:26
yeah i'll just do when i'm bored
1:06:28
yeah or when i'm
1:06:30
dealing with my other project
1:06:32
yeah true true
1:06:36
yeah man that's a pretty good
1:06:39
idea because at least if they access it
1:06:42
with the same
1:06:43
same device it will be available to them
1:06:47
so they'll they'll
1:06:49
will they have this option on the boards
1:06:51
page or just the home page
1:06:54
um suggest the home page
1:06:56
okay so then basically they're gonna put
1:06:58
in a password that password is going to
1:07:01
go to the dynamodb
1:07:04
table for that particular document right
1:07:06
which is a board and then it's going to
1:07:09
have to match and if it doesn't we're
1:07:11
just not returning the board back
1:07:14
yes abs
1:07:15
absolutely for the passcode scenario
1:07:18
yeah okay
1:07:20
okay it's like a
1:07:22
half fake login
1:07:23
yeah yeah basically yes for now at least
1:07:28
now before i forget and before we go um
1:07:31
um
1:07:33
do you want to maybe
1:07:35
make a task in
1:07:38
jira and record uh everything we'll be
1:07:41
talking about as in on on screen
1:07:45
can you make it in case i've
1:07:47
missed any of the details
1:07:49
yeah
1:07:50
because i just want to make sure
1:07:53
i
1:07:53
understand what you're asking
1:07:57
but i think i get it i just want to make
1:07:59
sure i do that would that would help me
1:08:02
um so one thing i want
1:08:04
i want to show you that we probably we
1:08:06
have to update
1:08:09
all right let's say i'm gonna go to a
1:08:10
board named test board and then let me
1:08:13
find another random board
1:08:17
and then i know it's late so i don't
1:08:19
want to keep you
1:08:22
um
1:08:23
yes or i'm
1:08:25
man as in
1:08:27
we're both in it together so
1:08:31
we're in it together
1:08:34
when it gave a bro
1:08:36
but not the liability
1:08:39
if people put confidence i don't know
1:08:44
i'm not running i'll run by the town
1:08:48
yeah i'll run into the jungle
1:08:52
don't know him any i don't know him
1:08:54
who's zayn i don't know him
1:08:57
um okay there's this other
1:09:00
okay
1:09:01
called
1:09:03
honestly it doesn't matter here's one
1:09:05
tory with
1:09:06
four wires that's a very interesting
1:09:10
come quick
1:09:11
i'm sure i'd probably make that one
1:09:14
all right and then we do board name is
1:09:17
tori so i have
1:09:20
one board on tory
1:09:23
and
1:09:25
uh
1:09:26
by the way
1:09:27
just so you know um
1:09:31
we don't want to give the user ability
1:09:33
to get the boards
1:09:35
directly from the url
1:09:39
so
1:09:40
is exactly how you should invite now
1:09:44
why they can just be prompted to enter a
1:09:46
password
1:09:50
sure sure yeah true because because
1:09:53
otherwise
1:09:54
how are you going to share the board
1:09:57
then why did we do all the redirects
1:09:59
with cloud ah
1:10:01
yeah yeah yeah true true that makes
1:10:03
sense
1:10:05
true
1:10:08
yeah i didn't think about this scenario
1:10:12
yeah
1:10:13
you're right all right so we have one
1:10:15
board
1:10:17
called
1:10:20
test board and
1:10:22
um hold on i'm trying to open the dev
1:10:24
tools why is it being so slow
1:10:29
and
1:10:30
i think in the mean while when you're
1:10:34
doing that i'll probably work on getting
1:10:37
uh this bug fixed which is the
1:10:40
confirmation prompt always appearing on
1:10:43
index
1:10:44
then then needs to be
1:10:46
fixed as well
1:10:49
oh yeah
1:10:50
yeah all right so if you notice like
1:10:53
both are connected to the websocket so
1:10:55
this one on the left is the tory board
1:10:58
yeah right
1:11:00
all right and this one on the right is
1:11:01
the test board
1:11:03
so
1:11:04
unfortunately the way we have it set up
1:11:06
right now
1:11:10
right you know if i save this
1:11:13
you're going to see the message over
1:11:14
here
1:11:18
from tory board
1:11:20
which from tory
1:11:22
you see you're going to get more
1:11:23
messages if i
1:11:25
edit this
1:11:28
the message message because
1:11:31
if we go to
1:11:32
dynamodb
1:11:38
and that's not good because that means
1:11:40
people who are not using the same board
1:11:42
are getting messages
1:11:45
exactly does that make sense yeah yeah
1:11:47
it does um
1:11:49
so
1:11:49
in the
1:11:53
in the tables
1:11:57
we have the
1:11:59
websocket connections
1:12:02
but the websocket connections don't know
1:12:05
what board they're connected to so
1:12:07
there's no way
1:12:09
to
1:12:10
filter them
1:12:14
when you broadcast the message in the
1:12:17
lambda that's like posting the
1:12:20
messages well or just querying them from
1:12:23
dynamodb
1:12:25
does that make sense
1:12:27
it's making sense yeah
1:12:30
yeah that could be something
1:12:33
i was thinking that um i mean i'm not
1:12:36
great with writing dynamodb like queries
1:12:39
and stuff with the sdk
1:12:43
but
1:12:44
um so you probably know more but like i
1:12:47
made this like fake
1:12:49
board example
1:12:51
um so
1:12:53
i was thinking instead of having a
1:12:55
separate table with the websocket
1:12:57
connections
1:12:59
which you could do anyways
1:13:01
yeah i don't know why this is taking so
1:13:03
long
1:13:07
all right
1:13:09
yeah there we go
1:13:11
explore table items
1:13:28
there
1:13:34
i'm probably gonna have this time
1:13:36
playing in my dreams tonight
1:13:39
is it that long
1:13:44
um are you a fan of rock
1:13:49
sure but yeah i like i like i like
1:13:51
anything
1:13:52
you're right i see
1:13:54
this is
1:13:55
this is i mean this is like the same
1:14:00
like
1:14:01
same few chords just repeated over and
1:14:04
over again
1:14:05
exactly
1:14:07
here
1:14:10
i just made like a fake
1:14:12
demonstration but basically you have the
1:14:14
same
1:14:16
like schema
1:14:18
where you have the board id and then the
1:14:20
board notes right and then the board
1:14:22
name and then if you put the attribute
1:14:25
as the websocket active connections like
1:14:28
the connection ids that you get
1:14:31
from the websocket
1:14:34
here on the on the
1:14:36
board
1:14:37
row right like this is row or whatever
1:14:40
what do you call it in in a document
1:14:44
um
1:14:45
uh
1:14:46
then you can just simply query that
1:14:50
particular board
1:14:53
that the message that okay so you can
1:14:56
you can look at the
1:14:58
so if somebody sends a message
1:15:01
somebody sends a message via websocket
1:15:03
they have a um
1:15:04
[Music]
1:15:06
they can send with them the board id
1:15:09
that they're connected to
1:15:11
which is already there
1:15:14
yeah
1:15:15
all right so they can send the board id
1:15:17
and the message and then you can query
1:15:20
that board id
1:15:22
and see if they are you can validate
1:15:25
that they're actually who they say there
1:15:27
are by looking at the active websocket
1:15:29
connections
1:15:31
and then if they are
1:15:32
in this
1:15:34
like if they're on this board id and
1:15:36
this and they should be in here in the
1:15:39
connection pool
1:15:41
right
1:15:43
and then
1:15:44
if they are in there then you send a
1:15:46
message to every other user in this
1:15:49
one connection pool
1:15:51
you only broadcast message to them
1:15:54
except yourself
1:15:56
right like you don't send a message back
1:15:58
to yourself instead of sending messages
1:16:00
to every other like this board too
1:16:04
right because right now the way it's
1:16:06
working is right
1:16:08
yeah
1:16:09
sending it to everybody across all the
1:16:11
boards because it doesn't know who's
1:16:13
connected to what board
1:16:16
correct correct i get exactly
1:16:20
what the problem is and i get exactly
1:16:23
what you're proposing as a solution yeah
1:16:26
yeah that's pretty good though yeah
1:16:29
so yeah that was the one big thing i was
1:16:32
that was the one bigger thing too i
1:16:34
thought of that like
1:16:36
it shouldn't it should be pretty easy
1:16:38
honestly to fix
1:16:42
yeah
1:16:43
yes
1:16:44
and then we can actually reduce the
1:16:46
amount of tables because we could just
1:16:48
we can just have one table we don't need
1:16:50
a second like websocket table
1:16:54
excellent unless unless you needed it
1:16:56
for some reason but
1:16:58
i couldn't
1:16:59
think of why we would need one i think
1:17:02
it's
1:17:03
easier to keep track of everything in
1:17:05
one table i guess but i'm not a i don't
1:17:07
know that much about databases or data
1:17:10
modeling
1:17:11
or
1:17:14
schemas true yeah i i
1:17:17
completely agree that and that is as in
1:17:20
really efficient because in that way
1:17:23
first of all we wouldn't need an extra
1:17:25
table and second of all um
1:17:32
all the clients that are connected to a
1:17:35
particular
1:17:37
board they will only get information
1:17:39
relevant to that board
1:17:42
yeah and you can verify who's sending
1:17:45
the message to by
1:17:47
just seeing if the connection id that's
1:17:49
sending the message
1:17:52
because i don't know maybe there's a way
1:17:53
to spoof it but i don't think it would
1:17:56
but it's probably just good to just
1:17:57
check if they actually exist in the
1:18:00
connection pool
1:18:01
and then if they do send the message if
1:18:03
they don't then don't send a message
1:18:08
yeah
1:18:10
that makes sense
1:18:11
and let's um
1:18:14
do that one
1:18:16
two
1:18:18
okay so
1:18:19
that was the that was the one thing i
1:18:21
was thinking we should fix before we do
1:18:24
the merge
1:18:26
yes correct
1:18:28
that's
1:18:29
exactly what um we should be doing
1:18:32
because this is kind of a
1:18:35
major thing yeah for
1:18:38
websockets all right
1:18:40
um what i'm gonna do is um
1:18:44
so i can open a jira ticket for that one
1:18:50
if you want
1:18:52
um
1:18:54
i would highly encourage as in as many
1:18:57
things you can think of or as many bugs
1:19:01
we can come across we should all be
1:19:03
logging them in
1:19:06
sure jira because the thing is that
1:19:09
i would like that if we all
1:19:13
have our
1:19:14
brain focusing on the code
1:19:16
rather than re remembering about the
1:19:19
functionality and
1:19:21
boxes that reveal come across
1:19:25
yeah
1:19:26
yeah okay cool so
1:19:29
yes um
1:19:31
let's
1:19:32
do that or offline
1:19:35
okay
1:19:36
yeah
1:19:37
it's like
1:19:39
it says i was gonna say wow it's nearly
1:19:42
11.
1:19:44
all right guys
1:19:47
true
1:19:48
the project is almost there almost
1:19:51
yeah yeah
1:19:53
thanks to you as well and everyone who
1:19:57
has actually it was fun i enjoyed i i
1:20:00
enjoyed
1:20:02
working on some stuff and i got to learn
1:20:04
some
1:20:05
like new stuff as well so that was cool
1:20:09
like especially aws stuff i i don't use
1:20:12
it
1:20:14
often at all so
1:20:17
it's good to go and like refresh my
1:20:20
memory from what i did learn or just the
1:20:23
things that
1:20:24
i haven't gotten to use yet either
1:20:27
true true
1:20:29
and they makes yeah perfect sensor as in
1:20:32
i've gone a lot to learn from this
1:20:35
project too so far and
1:20:38
i know it will
1:20:41
continue continue to happen but yeah
1:20:45
let's leave it at that one very good
1:20:48
progress um
1:20:49
just looking really positive
1:20:52
um
1:20:53
towards our deadline
1:20:55
and um
1:20:57
yeah if you wanna
1:20:59
check out what are we up to in the next
1:21:01
room which is a bit of a surprise then
1:21:03
join us
1:21:04
tomorrow
1:21:06
same time same place and
1:21:10
a different task
1:21:12
that's the one all right guys have a
1:21:15
great oh yeah
1:21:18
and
1:21:20
we'll catch him
1:21:22
[Music]