boarzVideosClipsStatistics

#️⃣EP 227 - Today's Stream

🎦
📅 2022-05-05 (510 days ago)
⌛ 1:01:32
ZainboarToreyboar
AllClipsEpisodesHas Blog PostZainThaneshKartikTorey
067
Today's Stream
📅 2021-09-20 
(737 days ago)
⌛ 1:03:46
📰
ZainboarKartikboarToreyboar
🎬
What is a sea cable?
Today's Stream
ZainboarKartikboarToreyboar
068
Today's Stream
📅 2021-09-21 
(736 days ago)
⌛ 1:09:13
📰
ZainboarKartikboarToreyboar
120
Special Guest - Torey Littlefield Pt.2
📅 2021-11-30 
(666 days ago)
⌛ 1:12:15
📰
ZainboarToreyboar
125
Today's Stream
📅 2021-12-10 
(656 days ago)
⌛ 1:07:15
ZainboarToreyboar
129
Today's Stream
📅 2021-12-14 
(652 days ago)
⌛ 1:10:28
📰
ZainboarToreyboar
131
Today's Stream
📅 2021-12-17 
(649 days ago)
⌛ 1:10:59
ZainboarKartikboarToreyboar
139
Today's Stream
📅 2021-12-28 
(638 days ago)
⌛ 1:16:17
📰
ZainboarToreyboar
141
AWS WebSocket API Integration Pt.2
📅 2021-12-30 
(636 days ago)
⌛ 1:08:23
📰
ZainboarToreyboar
142
AWS WebSocket Integration with SAM Pt.3
📅 2022-01-02 
(633 days ago)
⌛ 1:03:18
📰
ZainboarToreyboar
144
AWS WebScoket Integration with SAM Pt.4
📅 2022-01-04 
(631 days ago)
⌛ 1:04:18
📰
ZainboarToreyboar
146
AWS WebSocket Integration with SAM Pt. 6
📅 2022-01-06 
(629 days ago)
⌛ 1:03:18
📰
ZainboarToreyboar
147
Today's Stream
📅 2022-01-07 
(628 days ago)
⌛ 1:11:55
📰
ZainboarToreyboar
148
Connect AWS WebSocket to DynamoDB Pt.1
📅 2022-01-09 
(626 days ago)
⌛ 1:10:25
📰
ZainboarToreyboar
150
"Blank Line" Bug In Lambda Response For AWS Websocket Pt.1
📅 2022-01-11 
(624 days ago)
⌛ 0:58:13
📰
ZainboarKartikboarToreyboar
151
"Blank Line" Bug In Lambda Response From Lambda
📅 2022-01-13 
(622 days ago)
⌛ 1:04:40
📰
ZainboarToreyboar
153
AWS WebSocket + Lambda + DynamoDB
📅 2022-01-16 
(619 days ago)
⌛ 1:11:37
📰
ZainboarToreyboar
155
Today's stre
📅 2022-01-18 
(617 days ago)
⌛ 0:45:24
ZainboarToreyboar
158
Today's Stream
📅 2022-01-21 
(614 days ago)
⌛ 1:02:17
📰
ToreyboarZainboar
159
Today's Stream
📅 2022-01-23 
(612 days ago)
⌛ 1:13:29
📰
ZainboarToreyboar
🎬
Wild street dogs
Today's Stream
ZainboarToreyboar
161
How to Host Web App In AWS S3 using CloudFront, Route53 and CloudFormation
📅 2022-01-25 
(610 days ago)
⌛ 1:01:07
ZainboarToreyboar
163
How To Host Web App In AWS S3 with Custom Domain
📅 2022-01-27 
(608 days ago)
⌛ 1:08:48
📰
ZainboarToreyboar
166
Today's Broadcast
📅 2022-01-31 
(604 days ago)
⌛ 1:11:16
📰
ThaneshboarToreyboar
167
How To Host Web App In AWS S3 with Custom Domain Using Route 53
📅 2022-02-01 
(603 days ago)
⌛ 1:06:35
📰
ZainboarToreyboar
169
Test AWS Websocket Connection With Multiple Users
📅 2022-02-03 
(601 days ago)
⌛ 1:01:59
📰
ZainboarToreyboar
172
Today's Broadcast
📅 2022-02-07 
(597 days ago)
⌛ 1:05:20
📰
ThaneshboarToreyboar
173
Today's Stream
📅 2022-02-08 
(596 days ago)
⌛ 1:05:29
ZainboarToreyboar
174
Today's Stream
📅 2022-02-10 
(594 days ago)
⌛ 1:05:47
ZainboarToreyboar
🎬
No electricity in Bali
Today's Stream
ZainboarToreyboar
175
How To Send Messages To Multiple Clients Through AWS Websocket
📅 2022-02-13 
(591 days ago)
⌛ 1:02:05
ZainboarToreyboar
177
Today's Stream
📅 2022-02-17 
(587 days ago)
⌛ 0:58:01
ZainboarToreyboar
🎬
Francesco
Today's Stream
ZainboarToreyboar
178
How To Change String Property to Object in AWS SAM and Deploy
📅 2022-02-20 
(584 days ago)
⌛ 1:21:24
ZainboarToreyboar
181
How to Hash Passcode with BCRYPT using Node Pt.2
📅 2022-02-27 
(577 days ago)
⌛ 1:07:59
ZainboarToreyboar
183
How To Make FrontEnd Talk to Backend with Node
📅 2022-03-01 
(575 days ago)
⌛ 1:01:33
ZainboarToreyboar
184
How To Positioning A Div
📅 2022-03-04 
(572 days ago)
⌛ 1:09:27
ZainboarToreyboar
188
Compare Hashed Passwords Using Bcryptjs
📅 2022-03-10 
(566 days ago)
⌛ 1:01:31
ZainboarToreyboar
🎬
Indian givers
Compare Hashed Passwords Using Bcryptjs
ZainboarToreyboar
190
Today's Stream
📅 2022-03-13 
(563 days ago)
⌛ 1:16:40
ZainboarToreyboar
🎬
Cold coffee, cold tea
Today's Stream
ZainboarToreyboar
192
Today's Stream
📅 2022-03-15 
(561 days ago)
⌛ 1:05:51
ZainboarToreyboar
193
Today's Stream
📅 2022-03-17 
(559 days ago)
⌛ 1:21:59
ZainboarToreyboar
195
How to Compare Passcodes Using Bcrytp Node.js
📅 2022-03-20 
(556 days ago)
⌛ 1:04:19
ZainboarToreyboar
196
Today's Broadcast
📅 2022-03-21 
(555 days ago)
⌛ 1:06:59
ThaneshboarToreyboar
197
Today's Stream
📅 2022-03-22 
(554 days ago)
⌛ 1:02:51
ZainboarToreyboar
199
Today's Stream
📅 2022-03-25 
(551 days ago)
⌛ 1:12:27
ZainboarToreyboar
200
Today's Stream
📅 2022-03-27 
(549 days ago)
⌛ 1:14:36
ZainboarToreyboar
202
How To Do A Merge Using VSCode and Github
📅 2022-03-29 
(547 days ago)
⌛ 1:05:33
ZainboarToreyboar
204
Today's Stream
📅 2022-03-31 
(545 days ago)
⌛ 0:57:10
ZainboarToreyboar
🎬
This is why you don't click ops
Today's Stream
ZainboarToreyboar
206
Today's Stream
📅 2022-04-03 
(542 days ago)
⌛ 1:06:56
ZainboarToreyboar
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
208
Today's Stream
📅 2022-04-05 
(540 days ago)
⌛ 0:57:30
ZainboarToreyboar
216
Implement Passcode Tab Feature
📅 2022-04-17 
(528 days ago)
⌛ 0:58:49
ZainboarToreyboar
217
Beta Testing Fixes Part 2
📅 2022-04-19 
(526 days ago)
⌛ 1:00:24
ZainboarToreyboar
🎬
Torey the stinker
Beta Testing Fixes Part 2
ZainboarToreyboar
219
Beta Testing Fixes Part 4
📅 2022-04-21 
(524 days ago)
⌛ 1:00:13
ZainboarToreyboar
220
Beta Testing 5
📅 2022-04-22 
(523 days ago)
⌛ 1:10:18
ThaneshboarToreyboar
223
Today's Stream
📅 2022-04-28 
(517 days ago)
⌛ 1:00:33
ZainboarToreyboar
225
Saving Object Through Websocket in DynamoDB
📅 2022-05-01 
(514 days ago)
⌛ 0:49:15
ZainboarToreyboar
▶️
Today's Stream
📅 2022-05-05 
(510 days ago)
⌛ 1:01:32
ZainboarToreyboar
228
Welcome Back Kartik Party
📅 2022-05-08 
(507 days ago)
⌛ 0:55:32
ZainboarToreyboarKartikboar

Subtitles

0:00:12
[Music]
0:00:26
what is going on guys welcome back to
0:00:29
another session of blue break and fix
0:00:32
thanks
0:00:36
you should have planned it yeah
0:00:42
anyway
0:00:43
getting back to that brought to you by
0:00:46
the raw coders
0:00:48
yours truly
0:00:50
that's the one
0:00:52
actually two now
0:00:54
um yeah so
0:00:55
first thing is first
0:00:57
ask
0:00:58
as to the acknowledgement of the country
0:01:00
and pay our respects to the elders of
0:01:02
the past present and future
0:01:05
so there we go
0:01:08
i begin today by acknowledging the
0:01:10
traditional custodians of the land on
0:01:12
which we gather today and pay my
0:01:14
respects to the elders past present and
0:01:16
future i extend their respect to
0:01:19
aboriginal and torres strait islander
0:01:21
people here today
0:01:24
that wasn't you done it isn't it
0:01:28
yeah that was good
0:01:30
all right perfect so
0:01:33
uh
0:01:34
i guess you can choose a letter
0:01:37
today because it's your birthday
0:01:41
oh
0:01:42
nice i didn't know
0:01:46
what'd you get me
0:01:48
huh
0:01:49
what'd you get me for my birthday an
0:01:51
admin streamian
0:01:53
reason that it was done today
0:01:56
thank you man
0:01:58
uh let's go with the letter
0:02:02
um
0:02:05
oh okay i was a bit too slow
0:02:09
i was gonna
0:02:10
say that if you just play and
0:02:12
let me guess which one is it
0:02:17
have we done night driving
0:02:20
yeah okay i think so
0:02:25
you gotta go with that one
0:02:29
sure
0:02:31
dance pop
0:02:35
let me know it makes you feel sleepy
0:02:39
i'll do the same
0:02:41
why would you play this while you're
0:02:42
driving you're gonna fall asleep at the
0:02:44
wheel exactly my point
0:02:47
especially at night
0:02:49
yeah
0:02:51
sleeping is even more tempting then
0:02:55
yeah this is dangerous music
0:02:58
yeah
0:02:59
anyway um yeah good to be back um
0:03:03
those of you who are expecting us to
0:03:06
come
0:03:07
um
0:03:08
in the last few days do apologize um so
0:03:12
uh i was busy with my work and um
0:03:17
then uh
0:03:19
tori had his commitments as well so we
0:03:22
weren't it was a continue but we are
0:03:24
back now in action
0:03:29
right so tori uh because we uh we don't
0:03:33
want to put the
0:03:35
the
0:03:36
scrambler enhanced version up and do the
0:03:40
um websocket thing
0:03:43
however if we just focus on sanitizing
0:03:46
first
0:03:47
sounds great yeah that's that seems to
0:03:49
be the biggest block at the moment
0:03:52
yeah yeah because um
0:03:54
once this sanitizer is done then even if
0:03:57
we put it online um
0:04:00
we won't
0:04:01
get the xss attacks
0:04:05
yeah this outrageous audience
0:04:09
yep
0:04:10
which is i'm very surprised on none at
0:04:13
the moment
0:04:14
of those
0:04:16
yeah
0:04:18
but who knows who knows yeah you never
0:04:20
know they could be lurking yeah
0:04:23
yeah waiting for waiting for the
0:04:26
opportunity opportunists
0:04:30
yeah yeah
0:04:31
true
0:04:32
behind the scenes
0:04:34
and they've got to attack now
0:04:39
uh yeah so do you want to share your
0:04:41
your back end
0:04:45
hey actually why do we want to put this
0:04:48
in the back end
0:04:50
as
0:04:50
senate sanitize it in the back end
0:04:53
because the xss attacks are being
0:04:57
done in the front end in the browser
0:04:59
isn't it
0:05:02
that is true but the browser is
0:05:07
always
0:05:09
well
0:05:11
i wouldn't say always but the browser is
0:05:13
is insecure because the browser
0:05:16
can
0:05:18
um
0:05:19
the client side is
0:05:21
is not
0:05:22
in your control
0:05:25
so um what if we
0:05:27
whenever um
0:05:30
we find out
0:05:32
we sanitize it basically in this way
0:05:35
that whenever you use user as any html
0:05:38
tags or even script tags
0:05:41
that's not taking taken as inner
0:05:44
html they're just taken as text
0:05:50
um
0:05:55
i actually i haven't either so it's good
0:05:58
learning opportunity but i think
0:06:02
i think the vulnerabilities
0:06:05
for this um
0:06:08
xss attack are actually in inside of the
0:06:12
jquery
0:06:14
which
0:06:16
we could we could but
0:06:18
we could go in and try to fix it but if
0:06:21
we sanitize
0:06:24
the back end
0:06:25
it's it's actually easier because
0:06:29
all um
0:06:30
[Music]
0:06:31
we know the points at which the
0:06:35
the user
0:06:36
input
0:06:38
where it's coming and where
0:06:41
um where we need to sanitize it so we
0:06:43
can just
0:06:44
sanitize any of the
0:06:46
the requests that are sent to the
0:06:49
the back end like on on and then when we
0:06:53
receive i mean
0:06:55
when we receive a request on the back
0:06:57
end from the user we just sanitize it
0:06:59
right away
0:07:02
and and that way it's just more
0:07:05
more scalable it's it's easier to just
0:07:08
know where those
0:07:10
those surfaces are
0:07:13
that we need to cover
0:07:15
and also it's it's more secure because
0:07:18
there's
0:07:19
no one can go
0:07:21
a malicious user can't go into our back
0:07:24
end
0:07:25
and circumvent the code
0:07:28
versus the
0:07:30
the client side
0:07:32
because the cut is open source
0:07:34
so anyone can just go
0:07:38
find out and
0:07:40
just
0:07:44
alter the code itself
0:07:47
alt alter well you would have to accept
0:07:50
a like a pull request or something to
0:07:53
have them alter it
0:07:56
yes but the point that i'm trying to
0:07:59
make that the code can be changeable
0:08:02
which is
0:08:03
not really as in what we're trying to do
0:08:06
but
0:08:08
what i was
0:08:10
talking about that if we put this
0:08:12
so see the axis's attack is happening on
0:08:15
the front end through the
0:08:18
browser right
0:08:19
as in if you
0:08:22
create a note in the browser and then
0:08:25
write
0:08:27
the script tag and do what you want to
0:08:29
do
0:08:30
in javascript on the note itself then it
0:08:34
picks up
0:08:36
because it's done in in a html so the
0:08:40
browser is
0:08:42
say
0:08:43
the the browser is convert
0:08:45
taking that input and then doing it with
0:08:48
what the input has asked the browser to
0:08:51
do
0:08:53
um uh yeah yeah and they're right um
0:08:57
yeah you're you're right um
0:08:59
maybe if i maybe if i draw a little
0:09:02
diagram
0:09:03
yep
0:09:04
let's do that and i'll let you
0:09:07
add
0:09:09
your screen um to the i don't need your
0:09:11
permission anymore
0:09:14
exactly my point because
0:09:16
that's what i'm
0:09:18
gonna say you do whatever you need to do
0:09:20
you'll unleash now
0:09:24
for better or worse
0:09:25
yeah all right i just wanted to
0:09:28
blank
0:09:30
blank little
0:09:33
why is it connecting me to github
0:09:37
oh boy i just want draw
0:09:41
oh um if you do
0:09:43
crea um so
0:09:45
okay
0:09:46
that's fine uh white
0:09:51
yeah what's what's going on
0:09:54
hey convo 64 welcome okay you know what
0:09:58
i just need a
0:10:00
white
0:10:03
my board that's a really cute girl there
0:10:06
though
0:10:07
in the icon
0:10:11
all right i don't know if this is free
0:10:13
or easy to use
0:10:16
i just want to draw you a little diagram
0:10:20
okay
0:10:24
like it's gonna be terrible though
0:10:25
because i'm probably gonna have to use
0:10:27
my mouse
0:10:30
i've been there
0:10:32
i've drawn
0:10:34
yeah
0:10:35
come on level whiteboard what's going on
0:10:39
why not just use
0:10:42
the draw io
0:10:43
i was trying to and then for some reason
0:10:46
it was like
0:10:47
connecting to my github
0:10:50
go back i it doesn't have to connect to
0:10:53
github i'll
0:10:55
guide you to that it's pretty easy it's
0:10:57
all done in the browser
0:11:02
i think it's diagrams this yeah this is
0:11:05
it now this one no no they changed the
0:11:07
name it's diagrams.net now
0:11:12
so we go here
0:11:15
yeah here we go
0:11:18
come on
0:11:24
please ensure
0:11:25
javascript is
0:11:27
enabled is it
0:11:29
yeah see so
0:11:30
um so
0:11:32
create new diagrams
0:11:35
if you close that
0:11:42
uh
0:11:44
if you want to click on the
0:11:48
yeah okay
0:11:51
decide later
0:11:53
you can also do that
0:11:55
okay cool
0:11:56
all right yeah this is something
0:11:59
cool thanks
0:12:00
um
0:12:01
so
0:12:04
you know we have we have our client
0:12:07
right
0:12:11
and then is that big enough for you
0:12:13
yeah yeah all right and then let's just
0:12:17
say
0:12:18
uh
0:12:20
he's a bad he's a bad man
0:12:23
or a lady a bad lady
0:12:26
um so so that's our client
0:12:30
and then
0:12:31
um
0:12:32
we have our our back end here right
0:12:38
here where
0:12:39
um
0:12:41
here is where
0:12:44
uh well actually we have we have two we
0:12:47
have two different parts of the back end
0:12:49
so let me hold up there
0:12:51
we have
0:12:53
i'll just use the squares
0:12:56
all right so we have the
0:12:59
uh we have the websocket
0:13:01
um
0:13:05
default
0:13:08
lambda
0:13:09
i think
0:13:11
so that's the one that um
0:13:15
this
0:13:17
receipt would be easier if we just go
0:13:20
with a really really high
0:13:23
high level without
0:13:26
going into any detail or is this um how
0:13:30
you prefer to
0:13:32
show me the concept that you're talking
0:13:35
about
0:13:37
um
0:13:38
well i don't know i was hoping that this
0:13:41
this would make sense
0:13:42
okay but if it if i hope it's not a
0:13:45
waste of time
0:13:47
try no no there's nothing called a waste
0:13:50
of the base of time mate
0:13:52
all right um
0:13:55
and then we have hey
0:13:58
let's say we have
0:14:00
another get that i was gonna like just
0:14:03
have a ball with this
0:14:06
[Music]
0:14:07
okay i know him too well
0:14:10
um so client
0:14:12
two all right
0:14:14
so
0:14:15
this is um we have we have the aws in
0:14:18
between here right
0:14:20
but
0:14:21
when you when you send
0:14:24
um when you use
0:14:27
when you send a
0:14:31
a message to the websocket lambda right
0:14:35
so you send it you send that message and
0:14:37
then in turn
0:14:39
that message is then broadcast who to
0:14:42
whoever else is connected to the board
0:14:44
right
0:14:45
yeah
0:14:46
so what's going on here is somebody's
0:14:49
sending
0:14:50
like
0:14:51
tag basically
0:14:53
which is
0:14:54
javascript
0:14:57
and then when that same script tag
0:15:01
is received here
0:15:05
then it's being executed on this
0:15:08
client's
0:15:09
browser
0:15:12
so the easiest way
0:15:14
to mitigate that
0:15:17
is here inside the lambda on the back
0:15:19
end is we take
0:15:21
we take that script tag and then
0:15:25
we just
0:15:26
we just erase it like with the
0:15:28
sanitizing
0:15:32
and that way
0:15:34
instead of inside of the client having
0:15:36
to sanitize like different
0:15:39
different surfaces let's say like points
0:15:42
of attack
0:15:44
or vulnerabilities then
0:15:46
all we have to do is just sanitize it
0:15:48
here before it gets sent out to the
0:15:50
client
0:15:52
right i see so
0:15:57
i see where you're coming from
0:16:00
from now
0:16:02
this would just be turned into a string
0:16:04
here like on the other side basically
0:16:08
yes so
0:16:10
yeah yeah that's that's right it's good
0:16:13
that you brought in the um
0:16:16
the the
0:16:18
websocket part because that's the one i
0:16:20
think that i missed out when i was
0:16:23
talking about
0:16:25
we can
0:16:26
just have that concept done in the front
0:16:28
end because it's all happening in the
0:16:30
browser but when you brought out the
0:16:34
websocket actually makes
0:16:37
more
0:16:39
sense
0:16:40
as in
0:16:41
the message
0:16:43
the messages are actually being
0:16:44
broadcasted to other
0:16:46
users
0:16:50
going via the websocket and websocket is
0:16:53
in the back end
0:16:54
so
0:16:55
it would make more sense um if we
0:16:58
actually sanitize it
0:17:01
on the server side yep yep and that and
0:17:06
and that way it's secure because
0:17:08
unless unless there's a vulnerability
0:17:11
um in the in the library that we choose
0:17:14
to use for sanitizing
0:17:16
yeah
0:17:17
nobody can just
0:17:19
circumvent it
0:17:22
yeah yeah absolutely
0:17:26
cool yes
0:17:29
in the back end and thanks for bringing
0:17:32
out the websocket um because to be
0:17:35
honest i
0:17:36
forgot about that concept
0:17:38
sure and actually i
0:17:41
don't know what happens with
0:17:47
um
0:17:51
uh i don't know uh
0:17:54
about the
0:17:57
the back end for the express app and
0:17:59
saving the notes to dynamodb but that
0:18:02
could be another potential vulnerability
0:18:04
because if dynamodb is also
0:18:08
so say somebody writes a note that's
0:18:11
like a script tag and then that gets
0:18:13
saved to the database
0:18:16
well
0:18:18
then when somebody loads the board
0:18:21
then
0:18:22
they would receive that script tag even
0:18:24
though it was supposed to be a note or
0:18:26
some text or something else right
0:18:29
so that's that's another potential
0:18:31
vulnerability but i don't know if dynamo
0:18:34
db itself has some
0:18:36
um you know escapes
0:18:39
some of
0:18:40
these like script tag characters i don't
0:18:42
know enough about like
0:18:45
dynamodb and those sort of
0:18:47
vulnerabilities
0:18:49
but another thing we
0:18:52
want to look at at some point
0:18:55
yes and we will definitely look at that
0:18:58
one but i think for starters
0:19:00
let's just go step by step and um
0:19:03
do the part with the script tag um
0:19:07
i guess sanitizes and is it becomes all
0:19:11
text
0:19:13
so
0:19:14
let's
0:19:15
get
0:19:16
that part
0:19:18
as a
0:19:19
first step and then we can come back to
0:19:21
other parts where we need to look up for
0:19:24
dynamodb and so on and so forth
0:19:28
sounds good all right so
0:19:31
um i'll close this now yeah yeah cool
0:19:34
uh i promise you know i have explained
0:19:37
to zayn well what our website is yet
0:19:40
tori
0:19:42
is he talking
0:19:47
ah okay i can't yeah
0:19:50
just being a jerk
0:19:52
i get it i get it actually yeah
0:19:56
i was hoping you could explain
0:19:58
meanwhile websites because to be honest
0:20:02
after interviewing people i still don't
0:20:04
know what um
0:20:06
a
0:20:08
web
0:20:09
site
0:20:10
is though so yeah
0:20:13
feel free
0:20:16
um
0:20:18
so this is the uh the default lambda
0:20:24
um
0:20:25
uh the default lambda right yeah
0:20:29
um
0:20:30
um
0:20:31
[Music]
0:20:32
and so
0:20:34
um did you get my branch by the way
0:20:38
oh
0:20:40
i think i'm cr up possibly i haven't
0:20:43
pushed anything because there was
0:20:45
nothing to push
0:20:47
on anyway he ignore that
0:20:50
ignore that
0:20:51
yeah um
0:20:52
for sure
0:20:54
so dev is the latest
0:20:58
oh uh dev are you on dev at the moment
0:21:02
yeah uh yeah i'm on dub
0:21:04
should i just
0:21:05
yeah then
0:21:06
there must be the latest
0:21:10
okay yeah we'll make we'll make a new
0:21:12
branch
0:21:14
yeah uh sanitizing
0:21:17
inputs
0:21:20
um
0:21:22
so
0:21:23
for work
0:21:24
yes um
0:21:26
but for the
0:21:27
raw coders we are planning to bring on
0:21:30
uh
0:21:31
one person but let's see how that goes
0:21:36
and it's
0:21:37
tourist friend
0:21:39
and it's also from the uk so really
0:21:41
looking forward to as in meeting him and
0:21:44
getting to know him a bit
0:21:48
yeah yeah let's hope let's hope he can
0:21:51
do it
0:21:52
he just got like yeah he just he just
0:21:54
got a new job so i'm not sure how much
0:21:56
time he gonna have
0:21:58
yeah yeah maybe maybe he'll get maybe
0:22:01
he'll get fired though and then he'll be
0:22:03
good
0:22:10
um
0:22:12
okay
0:22:15
do we need this so
0:22:17
are we using any library
0:22:20
for sanitizing
0:22:23
oh um at the moment
0:22:25
i don't think we have decided on one
0:22:30
so yeah
0:22:32
there's nothing in here
0:22:34
okay that's fine yeah because um i was
0:22:37
working on that last night um a bit when
0:22:41
after finishing work
0:22:43
okay yeah but i i didn't really get
0:22:46
anywhere
0:22:48
um
0:22:49
yeah
0:22:50
there is one library for sanitizing
0:22:53
which school which is a really
0:22:55
apparently popular one
0:22:58
called dom purify
0:23:00
okay yeah that was one i looked at and
0:23:03
it looked pretty easy
0:23:05
yeah so
0:23:07
probably do that
0:23:10
from
0:23:11
your reply
0:23:12
and not the code yeah get the text so to
0:23:17
avoid the exercise attacks
0:23:21
from a person
0:23:23
you know him very well
0:23:38
um
0:23:40
how come it didn't take me to the
0:23:42
library
0:23:52
huh
0:23:54
nothing
0:23:55
did i not spell it right
0:23:58
sure
0:24:03
let's have let's build it right
0:24:08
dom purify
0:24:10
what's going on oh there's f1
0:24:13
yeah there we go
0:24:15
okay
0:24:20
um
0:24:32
yeah uh yeah sorry go ahead same so i
0:24:35
think um from my research all we
0:24:38
basically need to do is import it
0:24:41
and then
0:24:43
basically
0:24:44
use this
0:24:46
sanitized method to
0:24:49
um
0:24:50
you pass in the text in
0:24:52
to this sanitize method and then we are
0:24:55
done
0:24:58
and then we can basically
0:25:00
test it
0:25:02
okay
0:25:09
okay
0:25:11
um and this this does work
0:25:15
in
0:25:16
uh node right
0:25:18
um
0:25:19
yes apparently because it's in it's it's
0:25:22
a known library so
0:25:25
oh yeah it does here uh 14.
0:25:29
cool all right
0:25:31
i don't know why i'm hungry
0:25:34
uh gekko asks how
0:25:37
um finesse is doing if you've spoken to
0:25:40
him
0:25:41
oh um
0:25:43
he's very happy as in spending time with
0:25:46
his
0:25:47
family
0:25:48
and
0:25:54
so
0:25:55
i am really spoken to embrace in the
0:25:58
bible as in kind of touch base with him
0:26:01
i think we might even catch up this
0:26:03
weekend
0:26:08
um
0:26:13
so this
0:26:16
okay
0:26:17
um wow it's been a while
0:26:20
okay cool
0:26:22
installing this
0:26:23
and then i think
0:26:25
do we need to initialize a
0:26:29
package.json for this default lambda now
0:26:32
since we're using a
0:26:35
a library
0:26:37
or a dependency
0:26:40
uh
0:26:43
but that one should be in the main
0:26:46
project is it in not the
0:26:49
uh not the folder itself
0:26:53
isn't it
0:26:56
yeah so i
0:26:58
install it here
0:27:01
but see how this scrumbler api is the
0:27:05
express app
0:27:06
like it has its own package dot json i
0:27:09
think sam will yell at me
0:27:14
if i try to build
0:27:17
well we'll see what happens
0:27:21
um
0:27:23
so
0:27:28
so
0:27:29
once you basically just install
0:27:32
let's require it and then you
0:27:37
use it and then see
0:27:38
[Music]
0:27:40
what it does or even yells else
0:27:48
sounds good
0:27:52
uh will the streaming
0:27:55
be ready for deaf coming next week um
0:27:59
i don't think so at this thing get there
0:28:01
because
0:28:03
we still have a few more things
0:28:07
to do but hopefully um
0:28:10
i'm really hoping
0:28:11
this week um
0:28:13
not this week sorry this month
0:28:29
so we have this message
0:28:35
um
0:28:37
and the message
0:28:41
um
0:28:46
is a string
0:28:53
and this is
0:28:58
oh
0:29:00
okay
0:29:07
ah okay
0:29:09
it's been a while since i looked at this
0:29:12
so this
0:29:14
sends the message
0:29:16
with this api gateway posted connection
0:29:19
method
0:29:21
that's part of the api gateway
0:29:25
interface there
0:29:27
uh so
0:29:30
this
0:29:31
is
0:29:32
the message
0:29:34
yeah which is
0:29:35
which is an object
0:29:38
object
0:29:39
so
0:29:40
all we basically would
0:29:43
all might need to do is just sanitize
0:29:46
as soon as it comes in there
0:29:50
it's
0:29:52
so big
0:29:56
it's just reading the comments
0:30:00
oh is dev cop gonna use this
0:30:05
that's very gonna do our protest
0:30:08
oh cool
0:30:12
because
0:30:14
essentially the
0:30:15
idea of this was originated from is
0:30:19
organized yeah
0:30:21
i haven't gone in forever because it's
0:30:22
so early for me but yeah me neither
0:30:26
i don't know it's been a few months down
0:30:29
yeah oh they they did used to use they
0:30:32
used to use this or they still use it
0:30:35
i don't think so let's still use it
0:30:38
are they used yeah i think last time i
0:30:40
was there which was
0:30:42
sadly probably a year ago they were
0:30:44
using
0:30:46
something else
0:30:48
um
0:30:51
right
0:30:52
so you know where it's
0:30:54
returning the
0:30:56
message
0:30:58
as in return
0:31:00
send
0:31:04
as in online one
0:31:06
100
0:31:10
oh what happened
0:31:13
is it frozen
0:31:15
no it's back i saw i don't know it was
0:31:17
spinning on my screen
0:31:24
so we have to
0:31:27
sanitize the message before
0:31:30
this method is executed
0:31:33
because this is this is when
0:31:36
it'll be sent
0:31:37
um through api gateway
0:31:40
so
0:31:43
so what that basically you wanted to and
0:31:46
one of three
0:31:47
lines
0:31:48
saying that take and can you remove the
0:31:50
cursor because i can't read the oh my
0:31:52
god
0:31:54
um so that is saying basically it's an s
0:31:58
async function
0:32:00
and it's calling
0:32:02
so what is basically trying to do is
0:32:06
uh post the connection to each of the
0:32:10
ids
0:32:14
sorry zoomed in too much
0:32:19
that happens
0:32:21
when the
0:32:22
response is a bit delayed yeah
0:32:25
uh yeah
0:32:27
what you said is is right yeah
0:32:29
so what we can basically do is
0:32:33
when it starts to map
0:32:36
we can
0:32:38
add another line before the posting
0:32:42
connection to sanitize the message
0:32:47
uh so
0:32:51
um yeah and here
0:32:53
so
0:32:55
you know where it says message
0:33:01
online yeah
0:33:05
um
0:33:06
okay
0:33:07
uh
0:33:10
yeah uh it's it's it's going well
0:33:13
thanks actually um
0:33:15
it's it's a lot of work but um
0:33:19
some of some of the interviews i've had
0:33:21
have actually been quite enjoyable and
0:33:23
i've even interviewed in australia
0:33:26
which was great
0:33:28
cool
0:33:28
interesting stuff
0:33:31
yeah
0:33:32
the market is really hot at the moment i
0:33:35
would say across the world
0:33:37
as in everyone is just on it
0:33:40
on the i.t thing
0:33:42
yeah it seems like it
0:33:46
are you in um i
0:33:49
in the process of
0:33:50
any um i've done like this i just
0:33:54
started this week so i i'm still on like
0:33:57
all the phone screens
0:34:00
but
0:34:02
i i don't i think there's two like in
0:34:05
consideration well actually no one now
0:34:08
because today they got back to me and
0:34:10
they said they wouldn't move forward
0:34:11
because
0:34:13
i i think um
0:34:15
my
0:34:16
salary expectation was a little bit more
0:34:19
than what they were looking for
0:34:21
um i see
0:34:23
yeah
0:34:26
i mean they've they've never really got
0:34:28
what they pay for
0:34:31
i like them i like what they were
0:34:34
what they were
0:34:36
doing it seemed like a great place
0:34:38
um
0:34:41
but uh yeah i got i think i have like
0:34:45
two or three more interviews tomorrow
0:34:48
morning and then
0:34:50
at least one on saturday
0:34:52
because it's u.s
0:34:54
it'll be there afternoon so
0:34:57
i think i have more next week already
0:34:59
it's i can't i can't even keep track to
0:35:02
be honest applied
0:35:06
um
0:35:07
so
0:35:08
uh the one thing zayn is that this
0:35:11
message object is like
0:35:14
it's it's so it's an object
0:35:16
right um and
0:35:19
i don't know how this dom purify
0:35:24
works but i'm assuming this
0:35:28
would sanitize like a strain
0:35:36
so if you go to the method of it
0:35:39
and then just basically control find
0:35:42
sanitize then it will basically tell you
0:35:45
what it says but yeah you must be
0:35:47
refrigerated
0:35:49
it does
0:35:51
oh that's that's annoying i mean it
0:35:54
makes sense but now we have to figure
0:35:56
out what's a string
0:35:59
on the on the message object
0:36:04
a string or
0:36:06
i guess actually i guess any
0:36:09
anything on the message object
0:36:12
has to be sanitized
0:36:14
because they can use any anything
0:36:15
hanging on it to just
0:36:18
exactly put some nasty code in there
0:36:25
um
0:36:26
no no
0:36:28
are these paid rolls
0:36:31
with the boars
0:36:34
do you mean
0:36:37
the boards aren't going to pay me
0:36:39
or
0:36:41
pull me i would be nice is there a
0:36:43
budget thing
0:36:44
am i
0:36:45
am i getting left out of something
0:36:48
well
0:36:50
at the moment to be honest everything is
0:36:53
going to aws even my point is going to
0:36:58
aws
0:37:01
so we should
0:37:02
basically
0:37:03
close to the top
0:37:06
flows up
0:37:12
yeah but i really wish that
0:37:15
there's some sponsor out there who's
0:37:17
listening to us
0:37:19
and
0:37:21
they're happy to sponsor us something
0:37:25
but yeah
0:37:28
um okay cool so as sanitized it takes in
0:37:33
what
0:37:38
i think they just mean like a dirty a
0:37:40
dirty input
0:37:42
so
0:37:44
how about if you just try out and um see
0:37:47
what happens as in if if you want to
0:37:50
just
0:37:51
find out
0:37:54
what
0:37:55
message comes up as
0:37:58
we can just
0:37:59
log it right
0:38:03
uh messages is already logged in
0:38:05
cloudwatch it looks like
0:38:09
so if you if you want we can go to
0:38:12
cloudwatch logs
0:38:16
yeah let's do that
0:38:26
all right where'd you go
0:38:47
i need to authenticate
0:38:55
what's msk
0:38:59
msk
0:39:02
to be honest
0:39:09
interesting i don't even know that
0:39:11
is
0:39:15
it must be because it's been advertised
0:39:18
it must be wrong
0:39:19
oh i gotta log into my password manager
0:39:22
here
0:39:23
amazon is take
0:39:25
actually
0:39:26
aws is taking over the world
0:39:32
it is and actually having um
0:39:36
at least a a basic understanding of some
0:39:39
serverless
0:39:42
architecture
0:39:44
you know on aws has been
0:39:46
very valuable
0:39:50
absolutely
0:39:52
couldn't agree more
0:39:56
um
0:39:59
it's this one
0:40:21
how's how's work going zayn how's
0:40:23
everything
0:40:26
yeah pretty good
0:40:28
um
0:40:34
sorry about that
0:40:36
um
0:40:40
nowadays on the stream which i really
0:40:43
need to control
0:40:44
um
0:40:46
um but yeah work is
0:40:48
doing really good people
0:40:50
productive um
0:40:55
yeah i got my
0:40:57
review
0:40:58
yes today is
0:41:00
well
0:41:02
really promising so i'm really happy
0:41:04
about first
0:41:06
good man that's great
0:41:08
yeah
0:41:09
congrats
0:41:10
thanks man thanks for
0:41:12
appreciating it
0:41:14
yeah you're just sitting back coasting
0:41:16
huh
0:41:18
now you're just sitting back coasting
0:41:21
not really putting an extra work anymore
0:41:25
well they
0:41:28
don't
0:41:29
say
0:41:30
if required
0:41:32
um
0:41:34
but yeah it's been a really good editing
0:41:37
kind of
0:41:39
journey until now
0:41:41
we're just i always have to be in this
0:41:44
solution mindset
0:41:47
and
0:41:49
yeah it can get
0:41:51
the morning but hey
0:41:53
things have to be done right
0:41:56
yep
0:42:04
i like i said don't say publicly don't
0:42:07
say publicly
0:42:13
um
0:42:15
uh i won't know i think i'll have to
0:42:17
look at the lambda and track down the
0:42:18
logs
0:42:23
looks like they updated the
0:42:25
the ui a bit
0:42:35
when i stream it just
0:42:38
slows down
0:42:40
like this part like it just takes
0:42:43
forever it's not this slow on my
0:42:44
computer
0:42:46
how about now
0:42:48
there you go
0:42:49
it was the it was a music apparently
0:42:56
wow
0:42:57
cool
0:42:58
um so we have the default function
0:43:03
hopefully there's some logs in there
0:43:05
with
0:43:08
some messages
0:43:10
it was actually
0:43:12
logged it
0:43:13
isn't it
0:43:16
yeah it looks like it looks like it was
0:43:18
vlogging
0:43:19
um
0:43:23
yeah yeah dev uh
0:43:26
[Music]
0:43:29
and the issues are
0:43:32
very important
0:43:34
the issues are very important to be done
0:43:37
as soon as possible
0:43:38
so
0:43:39
that was the reason why i just focus on
0:43:42
getting things done
0:43:44
rather than
0:43:45
leaving it until the next morning
0:43:49
and as in there were
0:43:51
urgent issues as well so
0:43:55
yeah
0:44:00
are you are you
0:44:01
are you going somewhere
0:44:03
soon zayn are you taking a
0:44:05
taking a trip somewhere
0:44:08
yeah i'm actually planning to go back to
0:44:11
the uk to visit my parents and then
0:44:14
of course
0:44:16
yeah because especially when i can work
0:44:20
from there as well in the london office
0:44:27
so i can basically take the weekend
0:44:30
phone
0:44:31
for
0:44:32
for traveling
0:44:33
and
0:44:34
not even basically take any of the
0:44:36
holidays
0:44:37
and just
0:44:39
go there and start working and then
0:44:43
spend evenings and weekends with the
0:44:45
parents
0:44:47
oh that sounds nice
0:44:52
is my job in the uk um so i do work
0:44:56
remotely but they have
0:44:58
uh
0:45:00
most of the team is actually based
0:45:02
in the uk which is
0:45:05
which explains the late working hours
0:45:10
sometimes
0:45:11
but yeah
0:45:13
but i
0:45:16
sorry go ahead
0:45:18
yeah i was just
0:45:20
saying that but i do work from
0:45:23
as in
0:45:24
australia but they have branches in
0:45:28
australia new zealand uk
0:45:31
paris
0:45:32
yeah
0:45:37
i think not paris france i would say
0:45:40
yeah
0:45:41
or although paris is in france
0:45:45
how big is your how big is the team in
0:45:49
in aussie
0:45:53
you mean my team
0:45:56
the oh so it's just it's just you and
0:45:59
ozzy
0:46:00
so in australia
0:46:04
so
0:46:05
in
0:46:07
in here
0:46:08
as in in australia it's just me by
0:46:11
myself
0:46:12
really wow
0:46:13
yeah wow so one person is in new zealand
0:46:19
and
0:46:20
the
0:46:22
most of the team
0:46:24
as in
0:46:25
in which i work in is based in the uk
0:46:28
but they have as in
0:46:32
company-wise teams uh in melbourne
0:46:35
though as well and in fact
0:46:37
planning to go
0:46:39
to the office um
0:46:41
next
0:46:42
week as well
0:46:46
okay cool
0:46:47
see how that goes right
0:46:50
finally so
0:46:53
fantastic
0:46:58
if we look at the code
0:47:01
uh
0:47:06
for
0:47:08
the the handler right so we get the
0:47:10
event
0:47:11
the event has the the the body
0:47:15
um we parse it
0:47:17
yeah and we have a message and a board
0:47:20
id so really what we need to sanitize is
0:47:24
this
0:47:25
message so
0:47:27
here we have this
0:47:31
this stringified
0:47:34
message password
0:47:38
so where is the act so that's all the
0:47:41
message so all we only basically need
0:47:44
message.txt
0:47:47
yeah
0:47:50
message uh
0:47:56
that's it i hate i have such a hard time
0:47:59
reading it like that
0:48:07
yeah i know you're feeding it is a bit
0:48:09
hard to read as well
0:48:15
um
0:48:29
oh there's an error
0:48:45
um
0:48:47
oh well
0:48:51
maybe
0:48:52
put it in
0:48:54
json
0:48:55
metadata or
0:48:57
format
0:48:59
will those work for for stringified
0:49:03
um
0:49:05
[Music]
0:49:07
wealth of a check i would say
0:49:12
i wouldn't i would suppose they would
0:49:21
i mean we could
0:49:22
yeah
0:49:23
i mean we could just go look at the
0:49:24
front end code but i don't have the
0:49:27
mm-hmm
0:49:28
yeah like it open
0:49:31
um in vs code
0:49:34
it's all right
0:49:36
this one doesn't have a lot of options
0:49:40
so uh i think you would be messaged or
0:49:44
text
0:49:49
but let's see
0:49:51
uh yeah this is what i basically
0:49:54
normally use
0:49:58
passing around alignment body
0:50:07
expecting and off
0:50:10
so it's expecting another one
0:50:14
another curly brace is there
0:50:23
validate
0:50:27
i'm missing something silly but i don't
0:50:30
know
0:50:33
how about if you format it first
0:50:37
would that be a bit easier
0:50:42
oh okay yeah
0:50:44
there you go
0:50:53
oh well
0:50:56
so it works but it doesn't um
0:51:00
it doesn't it doesn't parse it
0:51:04
okay so what we basically need is
0:51:08
uh
0:51:10
so you would be event
0:51:13
body
0:51:14
body
0:51:16
message
0:51:17
and then text
0:51:20
yeah text
0:51:23
no
0:51:24
sorry my bad is event body message
0:51:29
data
0:51:31
and text
0:51:32
yeah there we go
0:51:34
now i i think we have to
0:51:38
not only sanitize the text i think we
0:51:40
have to sanitize all of these
0:51:43
potentially or at least some of them
0:51:46
because
0:51:47
you mean all the
0:51:49
automated inputs
0:51:51
all the
0:51:53
all the inputs on data
0:51:55
i don't think the action matters but i
0:51:58
think some of these may end up on the
0:52:01
dom
0:52:02
um like being being written to the dom
0:52:06
so like this id
0:52:09
property
0:52:10
probably
0:52:12
doesn't
0:52:13
but
0:52:16
i mean yeah maybe you're right maybe
0:52:18
it's only the text but
0:52:21
if we were saving these
0:52:23
i mean i don't know maybe it's just
0:52:26
maybe the text is fine
0:52:28
but yeah like there could be find
0:52:31
[Music]
0:52:42
right here right now
0:52:44
we'll just basically code it and then we
0:52:47
can take the testing offline
0:52:50
okay so we have message
0:52:54
um
0:52:56
dot tab
0:52:58
oh dot data
0:53:05
um
0:53:09
i i wonder if the
0:53:13
is the data
0:53:17
that's that's an object right data is
0:53:19
just an object it's not a stringified
0:53:21
object right
0:53:28
i think it is
0:53:31
so the entire message is stringified
0:53:36
okay
0:53:40
so
0:53:42
i'm saying
0:53:43
uh so there's some so message so
0:53:47
so message is stringified so we have to
0:53:49
parse it first
0:53:52
okay
0:53:55
okay
0:53:56
so
0:54:01
um
0:54:01
[Music]
0:54:02
santa prize message
0:54:09
or
0:54:12
well
0:54:14
um
0:54:17
variable name
0:54:18
tired
0:54:21
just do anything at the moment trust me
0:54:27
message to
0:54:35
um
0:54:37
that's weird i keep i think my keyboard
0:54:39
is dying
0:54:41
um
0:54:45
just got parse
0:54:47
the message
0:54:50
okay
0:54:51
and then
0:54:55
whoa
0:54:57
i think it's my i think it's like sticky
0:54:59
keys
0:55:01
ah yeah that might be
0:55:05
and then
0:55:08
from here we'll have
0:55:12
message
0:55:14
uh
0:55:17
two green
0:55:18
dot
0:55:19
data
0:55:22
all right
0:55:25
dot text
0:55:27
dot text
0:55:30
and then
0:55:34
um
0:55:42
and we want to call that dom purify
0:55:44
method on this right
0:55:55
and don't purify sanitize
0:55:58
oh thank you
0:56:12
i can also sanitize a node okay
0:56:18
and then there's some config but do we
0:56:20
need like the options here we might not
0:56:24
need
0:56:24
any config
0:56:26
yeah i don't think so we need any
0:56:30
okay
0:56:32
cool all right yeah
0:56:35
um
0:56:37
so
0:56:39
then um
0:56:46
so now on
0:56:48
the message
0:56:50
to clean
0:56:52
dot
0:56:53
tax
0:56:55
we'll just replace that with the clean
0:56:57
text
0:57:02
and now that should modify message dot
0:57:05
to clean.data.txt
0:57:08
isn't it
0:57:11
yes thank you
0:57:14
where's my type script
0:57:24
so then this message
0:57:29
oh i wonder if
0:57:31
we don't need to parse it because here
0:57:33
we're stringifying it again
0:57:37
see that
0:57:39
um
0:57:41
maybe
0:57:41
if i actually take a look at the code
0:57:48
oh it's a oh it is a string
0:57:54
huh
0:57:55
huh
0:57:56
is it a string
0:57:58
looks like it is i guess i don't know if
0:58:01
it wasn't an object
0:58:07
or i just put this here like it was a
0:58:10
bad move
0:58:11
i i think i wrote this that's not me
0:58:14
i saw my name there
0:58:16
that's not you
0:58:18
i think this might
0:58:21
you be changed your name say just
0:58:24
five seconds ago right
0:58:27
it's a different tory little field
0:58:30
who also happens to work on this project
0:58:34
yeah
0:58:35
um
0:58:36
well
0:58:39
yeah hopefully that that parse doesn't
0:58:41
blow up
0:58:42
um
0:58:44
yeah
0:58:44
we'll
0:58:45
basically basically have to test it um
0:58:48
there's no basically other way that we
0:58:50
can
0:58:52
say that okay this is it or this is not
0:58:56
it or this maybe
0:58:58
yeah
0:58:59
maybe it
0:59:01
would be it but we can't really say on
0:59:05
to anything else until we test it
0:59:09
okay now if we do need to
0:59:13
oh it's loud here tonight with crickets
0:59:19
if we do
0:59:21
have to parse it then i suppose we
0:59:24
also have to stringify it after we've
0:59:27
changed the text we've cleaned the text
0:59:30
sanitize the text and then all we have
0:59:33
to do
0:59:35
is replace
0:59:37
that message we are previously passing
0:59:40
in
0:59:41
and just pass in the
0:59:44
sanitized message
0:59:49
that's right
0:59:56
hmm
1:00:01
i just renamed it um there you go
1:00:04
all right
1:00:05
um
1:00:06
yeah that looks a lot better now
1:00:11
okay
1:00:13
yeah let's just call it a night here um
1:00:16
hopefully it will as in work as we
1:00:20
expected but yeah
1:00:22
we'll do some testing offline and see if
1:00:25
that is the case
1:00:27
sure and i'll push this up
1:00:30
to the
1:00:31
the branch
1:00:32
fantastic
1:00:35
that's brilliant
1:00:38
all right
1:00:41
hopefully that helps
1:00:43
mitigate
1:00:46
something
1:00:47
so we can move on
1:00:51
absolutely man and i think that this is
1:00:54
the up that is preventing us from moving
1:00:57
on but
1:00:59
hopefully
1:01:00
when we test it it works
1:01:03
and um
1:01:04
yeah
1:01:05
thanks for joining guys um being a
1:01:07
pleasure having you all as always
1:01:10
and um yeah if you want to check out how
1:01:12
we move on um
1:01:15
feel free to join us tomorrow
1:01:18
same place
1:01:20
same time and
1:01:23
a different task
1:01:24
there we go
1:01:26
peace out
1:01:27
[Music]
1:01:29
thanks everyone have