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
091
Today's Stream
📅 2021-10-17 
(710 days ago)
⌛ 1:26:37
📰
ZainboarKartikboarThaneshboar
🎬
Torres Strait Icelander people
Today's Stream
ZainboarKartikboarThaneshboar
092
Today's Stream
📅 2021-10-18 
(709 days ago)
⌛ 1:05:40
📰
ZainboarKartikboarThaneshboar
🎬
Icelander or Islander?
Today's Stream
ZainboarKartikboarThaneshboar
093
Today's Stream
📅 2021-10-19 
(708 days ago)
⌛ 1:01:58
📰
ZainboarThaneshboar
095
Today's Stream
📅 2021-10-21 
(706 days ago)
⌛ 1:16:08
📰
ZainboarKartikboarThaneshboar
097
101/200 Episodes
📅 2021-10-24 
(703 days ago)
⌛ 1:00:53
📰
ZainboarThaneshboar
🎬
Best Practices
101/200 Episodes
ZainboarThaneshboar
099
103/200 Episode
📅 2021-10-26 
(701 days ago)
⌛ 1:10:51
📰
ZainboarKartikboarThaneshboar
101
105/200
📅 2021-10-28 
(699 days ago)
⌛ 1:15:24
📰
ZainboarThaneshboar
🎬
ROAR coders
105/200
ZainboarThaneshboar
103
109/200
📅 2021-10-31 
(696 days ago)
⌛ 1:11:38
📰
ZainboarKartikboarThaneshboar
105
111/200
📅 2021-11-02 
(694 days ago)
⌛ 1:11:33
📰
ZainboarKartikboarThaneshboar
109
115/200
📅 2021-11-07 
(689 days ago)
⌛ 1:02:25
📰
ZainboarThaneshboar
🎬
What's testing
115/200
ZainboarThaneshboar
🎬
CORS coders
115/200
ZainboarThaneshboar
111
117/200
📅 2021-11-09 
(687 days ago)
⌛ 1:06:25
📰
ZainboarKartikboarThaneshboar
113
119/200
📅 2021-11-11 
(685 days ago)
⌛ 1:08:01
📰
ZainboarKartikboarThaneshboar
115
120/200
📅 2021-11-14 
(682 days ago)
⌛ 1:06:19
📰
ZainboarKartikboarThaneshboar
117
Today's Stream
📅 2021-11-22 
(674 days ago)
⌛ 1:01:46
📰
KartikboarThaneshboar
118
How This Video Has 12 Views, Explained
📅 2021-11-25 
(671 days ago)
⌛ 0:59:47
KartikboarThaneshboar
119
How This Video Has 14 Views, Explained
📅 2021-11-29 
(667 days ago)
⌛ 1:16:20
📰
KartikboarThaneshboar
121
Today's Stream
📅 2021-12-02 
(664 days ago)
⌛ 1:02:25
KartikboarThaneshboar
122
Today's Stream
📅 2021-12-06 
(660 days ago)
⌛ 1:02:01
📰
KartikboarThaneshboar
123
Today's Broadcast
📅 2021-12-07 
(659 days ago)
⌛ 1:01:00
KartikboarThaneshboar
124
Today's Stream
📅 2021-12-09 
(657 days ago)
⌛ 1:05:48
📰
ZainboarThaneshboar
🎬
Complimenting the wrong person
Today's Stream
ZainboarThaneshboar
🎬
Alt+F4 Zain
Today's Stream
ZainboarThaneshboar
126
Today's Stream
📅 2021-12-12 
(654 days ago)
⌛ 0:12:47
📰
ZainboarThaneshboar
127
Today's Stream
📅 2021-12-12 
(654 days ago)
⌛ 0:50:29
📰
ZainboarThaneshboar
130
Today's Stream
📅 2021-12-16 
(650 days ago)
⌛ 1:16:51
📰
ZainboarThaneshboar
134
Today's Stream
📅 2021-12-21 
(645 days ago)
⌛ 1:03:43
📰
ZainboarThaneshboar
137
Today's Stream
📅 2021-12-26 
(640 days ago)
⌛ 1:17:00
📰
ZainboarThaneshboar
🎬
Fixing and failing
Today's Stream
ZainboarThaneshboar
152
AWS WebSocket + Lambda + DynamoDB
📅 2022-01-14 
(621 days ago)
⌛ 1:04:33
📰
ZainboarThaneshboar
154
Test
📅 2022-01-17 
(618 days ago)
⌛ 1:03:13
📰
ZainboarThaneshboar
156
AWS Websocket + DyanmoDb + Lambda
📅 2022-01-19 
(616 days ago)
⌛ 1:06:33
📰
ZainboarThaneshboar
🎬
Brown is always better than white
AWS Websocket + DyanmoDb + Lambda
ZainboarThaneshboar
160
How To Host A Web App using AWS S3 and CloudFront
📅 2022-01-24 
(611 days ago)
⌛ 1:16:15
📰
ZainboarThaneshboar
162
How to Host Web App Using AWS S3, CloudFront and Route53
📅 2022-01-26 
(609 days ago)
⌛ 1:03:12
ZainboarThaneshboar
🎬
The more you know
How to Host Web App Using AWS S3, CloudFront and Route53
ZainboarThaneshboar
164
How To Host Web App In AWS S3 with Custom Domain Using Route 53
📅 2022-01-28 
(607 days ago)
⌛ 1:08:57
📰
ZainboarThaneshboar
🎬
Inactive brain
How To Host Web App In AWS S3 with Custom Domain Using Route 53
ZainboarThaneshboar
166
Today's Broadcast
📅 2022-01-31 
(604 days ago)
⌛ 1:11:16
📰
ThaneshboarToreyboar
168
Generate SSL Certificate via AWS Certificate Manager
📅 2022-02-02 
(602 days ago)
⌛ 0:58:02
📰
ZainboarThaneshboar
172
Today's Broadcast
📅 2022-02-07 
(597 days ago)
⌛ 1:05:20
📰
ThaneshboarToreyboar
176
How To CRUD Data Through AWS Websocket with Multiple Clients
📅 2022-02-16 
(588 days ago)
⌛ 1:07:32
ZainboarThaneshboar
179
Today's Stream
📅 2022-02-23 
(581 days ago)
⌛ 0:59:43
📰
ZainboarThaneshboar
180
How To HASH A Password using BCRYPT in Node
📅 2022-02-25 
(579 days ago)
⌛ 1:03:48
ZainboarThaneshboar
182
Create Passcode UI
📅 2022-02-28 
(576 days ago)
⌛ 1:01:29
📰
ZainboarThaneshboar
186
Today's Stream
📅 2022-03-07 
(569 days ago)
⌛ 0:55:51
ZainboarThaneshboar
187
Today's Stream
📅 2022-03-09 
(567 days ago)
⌛ 1:00:11
ZainboarThaneshboar
189
Special Appearance
📅 2022-03-11 
(565 days ago)
⌛ 0:58:44
ZainboarThaneshboarKartikboar
191
How To Make Frontend Talk To The Backend - NodeJS
📅 2022-03-14 
(562 days ago)
⌛ 1:07:00
ZainboarThaneshboar
196
Today's Broadcast
📅 2022-03-21 
(555 days ago)
⌛ 1:06:59
ThaneshboarToreyboar
198
Verify Passcode Saving Information to DynamoDB with NodeJs
📅 2022-03-23 
(553 days ago)
⌛ 1:03:09
ZainboarThaneshboar
🎬
Tough questions
Verify Passcode Saving Information to DynamoDB with NodeJs
ZainboarThaneshboar
201
Today's Stream
📅 2022-03-28 
(548 days ago)
⌛ 1:08:28
ZainboarThaneshboar
203
Today's Stream
📅 2022-03-30 
(546 days ago)
⌛ 0:57:26
ZainboarThaneshboar
🎬
Tandoor? Wat even iz dat kind of fing
Today's Stream
ZainboarThaneshboar
207
Get Board Columns from Frontend to Backend NodeJS
📅 2022-04-04 
(541 days ago)
⌛ 1:00:38
ZainboarThaneshboarToreyboar
🎬
Bish Bash Bosh
Get Board Columns from Frontend to Backend NodeJS
ZainboarThaneshboarToreyboar
209
Today's Stream
📅 2022-04-06 
(539 days ago)
⌛ 0:59:39
ZainboarThaneshboar
🎬
Zip first developer
Today's Stream
ZainboarThaneshboar
213
Today's Stream
📅 2022-04-11 
(534 days ago)
⌛ 1:02:34
ZainboarThaneshboar
215
Jira Organising & Beta Testing Day 1
📅 2022-04-13 
(532 days ago)
⌛ 0:58:09
ZainboarThaneshboar
218
Beta Testing Fixes Part 3
📅 2022-04-20 
(525 days ago)
⌛ 1:01:02
ZainboarThaneshboar
🎬
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
220
Beta Testing 5
📅 2022-04-22 
(523 days ago)
⌛ 1:10:18
ThaneshboarToreyboar
221
Today's Stream
📅 2022-04-25 
(520 days ago)
⌛ 1:01:01
ZainboarThaneshboar
🎬
Zain's going platinum
Today's Stream
ZainboarThaneshboar
🎬
Doggy dog
Today's Stream
ZainboarThaneshboar
222
WebSocket Heartbeat & Thanesh's Farewell
📅 2022-04-27 
(518 days ago)
⌛ 0:51:08
ZainboarThaneshboar

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]