0:00:26
welcome back guys right to the episode
0:00:29
of bill break and fix brought to you by
0:00:32
tour coders which are auroras and today
0:00:38
that was a bit of a surprise finish
0:00:42
everyone yeah um i thought i'll jump on
0:00:50
for a little bit longer and then yeah
0:00:52
that'll be it but yeah so yeah glad to
0:01:01
good to have you as a perfect surprise
0:01:04
wasn't expecting you so
0:01:06
just a bit of a context and there guys
0:01:09
so finish our super aurora um
0:01:15
family commitments that he wants to um
0:01:18
deal with and have more time with them
0:01:24
i'm trying not to cry and i'm really
0:01:27
trying to hold myself back but let's see
0:01:33
but yeah so i thought that
0:01:39
today bo when i saw him i was really
0:01:42
surprised so that was a bit of a context
0:01:45
me being surprised yeah
0:01:52
another week or so saying um
0:01:54
because um yeah like i said i'm moving
0:01:58
or moving places so i'm just in between
0:02:00
of that at the moment
0:02:02
true true nah man that makes
0:02:06
you know what's the best for you
0:02:09
and um your commitment so
0:02:12
yeah do what you have
0:02:15
to do and if i can do
0:02:18
anything as well do do let me know
0:02:21
thanks ann appreciate it
0:02:23
no problem at all so uh
0:02:28
let's do the acknowledgement of the
0:02:30
country and pay our respects to the
0:02:35
i begin today by acknowledging the
0:02:37
traditional custodians of the land on
0:02:39
which we gather today and pay my
0:02:41
respects to the elders past present and
0:02:44
future i extend their respect to
0:02:46
aboriginal and torres strait islander
0:02:52
fantastic all right
0:02:58
i was waiting for that i was waiting
0:03:00
wait for it away from my friends
0:03:05
um yeah it's still in the works okay
0:03:13
basically programming
0:03:15
everything to be really automated as in
0:03:19
words together when it speaks so
0:03:22
whenever we have to as in do another
0:03:26
slide we can just enter the content and
0:03:30
just prepare an automatic slide for us
0:03:36
automated speech as well you know yeah
0:03:38
we don't have to record it everything is
0:03:44
that's some sexy side project there man
0:03:54
yeah hardcore big project
0:03:59
um my sources actually told me that
0:04:03
you were staying as in all
0:04:06
over 90s for the project
0:04:09
wow man you're really going hard quack
0:04:12
and tell yeah man yeah
0:04:23
that's called commitment i like it
0:04:28
all right so um yeah just a bit of a
0:04:31
background so what we're doing is
0:04:35
implementing the fixes that have been um
0:04:38
set in the beta testing by our testers
0:04:42
so just basically going one by one
0:04:46
needs to be done and just fixing it and
0:04:48
um yeah we will be going live for our
0:04:52
first prod uh and in the release would
0:04:57
but the date hasn't been decided yet um
0:05:04
but yeah so i'll share my screen first
0:05:13
we are we haven't gotten up to
0:05:21
yeah i would love to be famous though
0:05:25
why not but i don't have the money sorry
0:05:29
oh another one another one
0:05:36
yeah so um the thing is that
0:05:40
me and tori were working on implementing
0:05:44
there's something called a websocket
0:05:49
have you heard about it
0:05:51
no no i've talked about it so
0:05:54
basically that was the first time that i
0:05:56
heard when tori told me so basically
0:05:59
what um the concept is that save
0:06:04
apparently at the moment
0:06:09
connection terminates after 10 minutes
0:06:14
okay so that would mean that if the user
0:06:18
has been idle for 10 minutes he would
0:06:21
automatically be disconnected from the
0:06:25
yes okay i understand
0:06:28
oh yeah okay yeah i think i know where
0:06:31
you're getting it yep sorry yeah
0:06:34
now you carry on i i
0:06:37
really wanna hear your instincts now
0:06:43
that's the issue with the saving right
0:06:49
it uses being disconnected so that means
0:06:51
their notes are not being
0:06:53
added to the board which means it's not
0:07:00
it is at this stage nothing to do with
0:07:07
saving or no it's just
0:07:10
mainly stopping the
0:07:12
users from disconnecting
0:07:20
yeah so from from that one tori brought
0:07:23
a concept which which is called
0:07:25
websocket ping pong
0:07:27
so in that way what happens is that the
0:07:30
the server sends the
0:07:44
side sends a message to this server
0:07:48
then that means that the user is still
0:07:50
active and it won't disconnect after 10
0:07:58
one side does a pink and then the other
0:08:01
side responds with a punk
0:08:05
if they both respond
0:08:07
within the time then the connection time
0:08:14
and then the count
0:08:17
from zero minutes until 10 and then so
0:08:26
does that make sense
0:08:28
uh briefly but i think yeah make more
0:08:34
okay um get into it so so i'll just
0:08:39
uh it's important to understand the
0:08:41
concept before continuing so i'll just
0:08:53
should i yeah on them some music saying
0:08:56
oh yeah i totally forgot about that my
0:09:00
yes please what letter do you want
0:09:14
i think that's all right
0:09:33
seven this is a client okay
0:09:39
this is the oh you're not
0:09:41
sure you're not sharing so
0:09:44
oh my bad my bad i thought it was
0:09:51
i forgot about this
0:09:54
gonna have to go and then come back
0:09:57
sure all right i'll be back in a sec
0:11:40
get those ask you a question
0:11:44
i ever thought about driving the trucks
0:11:50
i haven't really thought about that
0:11:52
maybe maybe that's would you though
0:11:55
maybe would you if you had a chance
0:11:58
yeah maybe it'd be good experience i
0:12:02
traveling across the country
0:12:05
you know if you're that sort of
0:12:07
a truck driver you know you can travel
0:12:08
around the world i mean not around the
0:12:10
country i mean at least
0:12:16
i've actually driven a van
0:12:18
full time for a few years i think
0:12:26
was it a good experience
0:12:29
yeah i basically saw the entire victoria
0:12:37
it was leaving around say what what
0:12:42
six years and coming back at
0:12:50
it was a good experience
0:12:53
yeah plus i mean the company was really
0:12:56
established so it wasn't
0:13:00
at all yeah you know how they
0:13:03
basically have to pull packs and pallets
0:13:16
client can you see my screen yes you can
0:13:19
yes i can see your screen
0:13:22
server okay and this is our websocket
0:13:30
so say at the moment this uh
0:13:36
say um let's assume that
0:13:41
timer is 10 minutes so as soon as it
0:13:58
servo will send back send
0:14:03
prompt to the user
0:14:07
as in kind of a ping
0:14:13
and if the user accept uh as in kind of
0:14:21
which i don't really know how um
0:14:26
what exactly happens
0:14:28
i mean what exactly sense in in the pink
0:14:43
bigger dotted line is a ping and then
0:14:50
so say if for example um
0:14:56
sends it but he doesn't receive any
0:15:01
within 10 minutes as in one more one
0:15:07
then it would just
0:15:08
disconnect the connection
0:15:11
it won't be any connection so the user
0:15:13
will be disconnected
0:15:17
oh okay yes i understand
0:15:21
the user sends a phone back
0:15:31
less than one minute
0:15:35
to this server bank that would mean that
0:15:37
okay um we're not gonna disconnect the
0:15:41
connection because this uh the
0:15:50
does that make sense
0:15:52
yeah yeah that makes sense you're just
0:15:55
basically just checking with uh the
0:15:57
connection is live right and if it's not
0:16:04
then just drop it i guess right
0:16:06
yes yes essentially
0:16:10
so that's the entire concept and we
0:16:14
know how the websocket ping pong works
0:16:20
so we were just researching about that
0:16:28
some of the bugs that all the bugs that
0:16:35
the people on slack
0:16:38
have we kind of like
0:16:41
looked through all the bugs and that
0:16:43
sort of thing or are we
0:16:45
sort of working through it as we as we
0:16:47
go along the testing yes
0:16:56
jira and check what we want to
0:17:05
we are kind of tracking it with jira
0:17:09
oh okay yeah yeah cool
0:17:11
and con hey come on welcome good to have
0:17:18
generally you want a heartbeat to be
0:17:20
more regular than that to account for
0:17:22
connection jitter or loss
0:17:26
right okay so heartbeat would mean
0:17:35
okay that would make sense
0:17:39
there's always a poem
0:17:48
long time to wait to send
0:18:03
because uh the whole point of sending
0:18:08
as in ping pong thing is that
0:18:13
um websocket to disconnect to be
0:18:23
so if you're say uh
0:18:37
if we send it more regularly then what's
0:18:40
the point of implementing
0:18:44
this feature in the first place
0:18:47
because the websocket won't be
0:18:50
disconnected yeah that's the purpose of
0:18:52
the heartbeat where you're calling ping
0:18:54
pong it keeps the connection actually
0:19:05
what i i was trying to get at um convoy
0:19:11
explain myself properly
0:19:14
so the only reason why we want to send a
0:19:19
after nine nine minutes and give a
0:19:22
minute to a user to respond back is
0:19:28
disconnect that user from the connection
0:19:33
and the reason why
0:19:40
is because that's the time out
0:19:45
websockets that if a user is idle for
0:19:49
10 10 minutes then
0:19:52
it will terminate the connection
0:19:59
does that make sense
0:20:01
what happens if the
0:20:03
disconnect randomly after 2 minutes due
0:20:10
true true that's a valid point
0:20:14
yeah i didn't think about this scenario
0:20:21
all right um in that case we can
0:20:33
that's how you learn right you get death
0:20:38
by these kind of discussions if you do a
0:20:40
regular hobby you will keep connection
0:20:42
open in 30 seconds
0:20:46
would that mean uh
0:20:48
so if a user would send a heartbeat back
0:20:53
which would be a punk
0:20:55
would that mean that the user has to
0:20:58
input say kind of press a key every 30
0:21:12
jack dab is having some fun now
0:21:24
it will cost too much to do more than
0:21:28
once every nightmares per se
0:21:37
no even jagdev is a spawn so he recently
0:21:39
bought a house as well
0:21:42
and a really big one though
0:21:44
which i really like
0:21:49
you want it to happen automatically the
0:21:56
ah so it's an event-driven process
0:22:11
do you want to um uh
0:22:14
read this out loud it might help you of
0:22:17
thinking on that process as well
0:22:21
converse 64 says you want it to happen
0:22:25
automatically the ping pong
0:22:27
is an event driven process so client
0:22:32
and replies to the server with pong to
0:22:34
let it know it's still there
0:23:00
just a bit confused so
0:23:04
if it's event event driven um how would
0:23:12
i mean indicate as an
0:23:14
event would they just have to
0:23:21
what would the event
0:23:33
one thinking that i really don't wanna
0:23:36
annoy the users um
0:23:40
as in they have to do something every 30
0:24:01
i just understood it by the way
0:24:13
research about how um how does it even
0:24:18
driven heartbeat work
0:24:23
continue from there
0:24:28
if it doesn't involve
0:24:30
as in the user doing every
0:24:32
something to trigger the
0:24:36
every three minutes then yeah it's a
0:24:41
okay so doing it every 30 seconds i
0:24:47
yes yes i understand
0:24:49
yeah all right cool so i'll
0:24:58
it's converse 64 someone you know in
0:25:06
name sounds familiar but no
0:25:13
build a real-time website for connection
0:25:17
facing my screen yet you are
0:25:22
what works off his heartbeat
0:25:33
free time i'm talking client
0:25:40
and a heart check handshake
0:25:43
so website decline real time and point
0:25:48
subscription event
0:25:50
no this is not our thing
0:25:53
that we want to do
0:25:54
implement how big for
0:25:57
api given works okay
0:26:00
okay i'm going to chat remember here
0:26:04
understand that each one
0:26:06
eventually connected can be
0:26:08
can only be either for 39 seconds
0:26:13
before it gets disconnected so i wrote a
0:26:18
so it's a heartbeat for us so it's a
0:26:23
that will come from the backhand
0:26:25
connection can only be idle for 29
0:26:27
seconds before it gets adjusted
0:26:29
maybe function oh okay by the websocket
0:26:33
connection pings decline every 20
0:26:37
to keep the connection alive and not
0:26:38
idle and i have the server send a
0:26:40
response despite my referral mclaren
0:26:43
still automatically
0:26:44
okay that's interesting okay
0:26:47
and he's saying that
0:26:49
why is the implementation incorrect
0:26:57
read the comments here
0:27:01
the courageous and in the courage you
0:27:04
show sends one ping message every 30
0:27:07
seconds after the connection was opened
0:27:10
after that it doesn't send any more
0:27:16
oh yeah that's true not sure why i
0:27:18
didn't realize thank you
0:27:27
yes after 20 second only once
0:27:30
ah okay yes yes and then it basically
0:27:37
so this is this is
0:27:39
kind of what we're looking for but we
0:27:43
keep sending it right yeah
0:27:46
every every 30 seconds basically
0:27:52
like conversation all right
0:27:55
so hannah close and then
0:27:58
this happens on the client
0:28:10
in our case it would work in the
0:28:14
we would send a ping
0:28:19
and then the client for respond with a
0:28:30
i'm learning a lot already
0:28:32
i i didn't even know if this concept
0:28:35
existed in the first place
0:28:38
yeah neither did i
0:28:41
alright okay cool so we basically need
0:28:48
websocket url okay cool
0:28:50
i wish i had my two screens
0:28:55
i'll get it i'll get it uh terminal
0:29:00
update yeah why not
0:29:08
when you said that
0:29:12
um okay so we can start from the back
0:29:15
end my my favorite part
0:29:20
all columns features okay now we would
0:29:27
and then what we're gonna do is we will
0:29:31
make another branch
0:29:40
zen completely misreads and
0:29:42
misunderstands code
0:29:58
that happens though
0:30:03
trying to really work under a different
0:30:24
check out check out
0:30:26
what can we call this branch um
0:30:32
ping pong i think i was thinking yeah
0:30:40
actually i'm going to do websocket
0:30:42
ping-pong how's that so good
0:30:48
what was he in your mind
0:30:51
i was trying to think of something that
0:30:59
what we're trying to do like so
0:31:10
we're trying to check with that that can
0:31:12
like keep a live connection right so
0:31:14
like websocket i don't know i don't know
0:31:16
what the correct terminal
0:31:17
terminology is so let's try and think of
0:31:44
okay cool so we are in that branch and
0:31:53
okay i'm gonna try
0:31:55
to implement the server side now
0:31:59
before the end of the show
0:32:02
let's see how we go
0:32:06
okay so that would basically happen
0:32:17
as soon as websocket
0:32:20
connection opens which is in the front
0:32:27
so we want to send
0:32:29
api gateway endpoint
0:32:33
just copy and paste it
0:32:38
um so this would be
0:32:43
go right at the end
0:32:47
this will be where the
0:32:53
this red the websocket as being um
0:32:58
where the web sockets are implemented
0:33:00
right i think i don't know
0:33:02
yes which is in the front end
0:33:12
no no no no you must be right this would
0:33:23
file credentials well
0:33:26
this is all been done by tory
0:33:31
best topic can be connected ah
0:33:38
two hours is the max
0:33:43
for local testing okay
0:33:47
so what if we do something
0:33:50
const if you like it right not defined
0:34:12
okay and my stock api get with okay and
0:34:23
do you want to pause me the web uh
0:34:31
not sure if i have the latest one i'll
0:34:32
check on when i'm on um it should be in
0:35:24
right right right right right
0:35:31
what would be the connection id
0:35:35
is there a connection id and point
0:35:41
um so you need the
0:35:46
um you need the website at endpoint
0:36:06
where would i find that
0:36:09
uh if you go to api apa gateway
0:36:13
and then it should be in there called
0:36:17
websocket and you should
0:36:22
i'll just go and have a look as well
0:36:38
uh yeah i found it i'm just looking for
0:37:08
so this is a websocket
0:37:12
yes yes and have you got any
0:37:15
endpoint that says
0:37:18
connection url or connection id
0:37:22
yes yeah do you want that
0:37:32
ah this is a connection
0:37:34
sure oh um i think i wanted i'd be
0:37:39
interesting how'd this work
0:37:54
i think how this would work is though i
0:37:57
would have to send all the connection i
0:38:00
would basically have to save all the
0:38:13
we would have to send them
0:38:26
so if you check here
0:38:30
i just to see if the connection id is
0:38:33
already being saved i'm pretty sure
0:39:00
right we needed to save websocket
0:39:03
connection ids as well
0:39:06
because we will need the websocket id
0:39:16
send the heartbeats
0:39:20
which we are not doing at the moment
0:39:31
okay so that means that every time we
0:39:34
i swear we did this function
0:39:37
the function l2 right
0:39:39
yeah it seems familiar
0:39:50
okay these are working go except except
0:40:05
reading the board names you can kind of
0:40:20
this is as well yeah i know
0:40:23
i know exactly who
0:40:27
yeah without a doubt
0:40:29
oh the first one or the second one i
0:40:35
um all right cool so we would have to
0:40:42
hmm all right this is turning on longer
0:40:46
than expected now to be honest
0:40:53
so here we are taking actually for
0:40:56
forget about this one now
0:41:02
i'll just comment here
0:41:10
oh what happened there
0:41:12
whoa what happened there where did my
0:41:27
we are doing this connected and then
0:41:34
on to i'm pretty sure we are
0:41:38
that's the thing right connection id is
0:41:54
the board id was not found put item
0:41:59
oh is the websocket id right
0:42:08
give me one second plug my laptop in
0:42:12
process table so if i take the
0:42:22
process in my environment
0:42:27
table underscore template
0:42:33
websocket connections
0:42:37
table is called websocket
0:42:40
so is that one table
0:42:42
websocket connections here
0:42:49
putting it over there
0:43:02
this one board i didn't connection id
0:43:10
board id connection
0:43:14
sort board id connection id gi
0:43:50
okay we need to look what's happening
0:43:52
here all right what i'm going to do is
0:44:02
or maybe it's not being wired up
0:44:18
are you there oh yeah yeah yeah yeah i'm
0:44:20
trying to think about what you mean
0:44:26
maybe yeah maybe you're right like um
0:44:28
because i do remember we
0:44:30
we were trying to get this um
0:44:34
stored in the back end right
0:44:40
web socket which is here
0:44:42
and then environment variable which is
0:44:45
here and then it's saving in table
0:44:49
connection id request contacts and time
0:44:59
dockline partner put item call back
0:45:07
not even giving us any dates uh
0:45:11
actually isn't giving us any
0:45:17
all right what i'm going to do is
0:45:22
creator because i've taken this site off
0:45:29
all right um what we're gonna do is put
0:45:41
the tory push the changes in the front
0:45:44
end i'm pretty sure you must have
0:45:52
portfolio features
0:46:26
okay pause code auto tabs all right yeah
0:47:12
so what i'm basically doing
0:47:16
uploading everything and checking
0:47:21
if the websocket is really not working
0:47:29
we can basically take it from there
0:47:35
kind of the only way we would test the
0:47:40
by actually like when the website's live
0:47:46
so that's what i'm trying to do is
0:47:53
and it's free so aws is free
0:48:30
when you took down the site you
0:48:33
deleted the files oh yeah you did
0:48:41
this might not work because i've got to
0:48:43
give your profile name
0:49:04
it's the rumbler there we go
0:49:07
babies uploading and
0:49:09
when they're done can you
0:49:12
put them as in can you make them public
0:49:18
and then we can test our websocket
0:49:51
oh um we need to invalidate the cash
0:49:55
the cash the cash as well yeah
0:50:21
let me know when it's done yeah
0:50:31
honestly this projection is becoming a
0:50:37
it's becoming a success
0:50:51
as in how many people have contributed
0:51:01
and how much work has gone
0:51:04
into it so one best thing gonna do is
0:51:09
when probably releasing it i'm gonna
0:51:11
probably talk to the
0:51:13
original open source
0:51:25
telling we have done this
0:51:27
change on legacy and legacy code
0:51:31
to the modern code and it's also backed
0:51:34
by aws plus his saving on dynamodb
0:51:44
integrate it as your fresh
0:51:51
and see what he says
0:52:02
yeah that'd be good like if he
0:52:08
publish this and then
0:52:10
those users become our users like his
0:52:12
users become our users
0:52:15
yeah that'd be awesome
0:52:43
testing one two three four
0:52:57
cool if you want to take this um
0:53:01
i think if you want to take
0:53:08
and a person i know
0:53:17
yeah it will be really hilarious again
0:53:35
connection is there
0:53:41
okay connection is open which is great
0:53:44
and now you are going to
0:53:52
so how many people are connected to it
0:53:55
so it is coming it is coming yeah
0:53:58
three people i guess
0:54:01
so there's one more i know who that is
0:54:04
and you can't hide now
0:54:08
there can only be one
0:54:17
the connection is coming soon
0:54:20
do you want to make the buck here
0:54:29
uh yeah okay do you want to so
0:54:32
look at the time to live
0:54:36
oh i'm not time to live but
0:54:38
the idea is like we want to see whether
0:54:41
the connection holds right
0:54:43
is that something oh you guys already
0:54:45
tested it i assume actually
0:54:53
mentioned that he thinks that um
0:54:56
the connection only lasts
0:55:20
wait you're looking at the wrong board
0:55:27
wait something just happened what yes
0:55:30
and i think i know who did it
0:55:35
that's really interesting how would he
0:55:36
be able to do that
0:55:41
there are some experts out there man
0:55:47
oh yeah that is actually very
0:55:48
interesting i wonder how he did that
0:55:51
this is the live one
0:55:57
honestly this is the
0:56:00
live once he basically redirected us
0:56:07
what did he do though
0:56:12
have you made the bucket
0:56:14
have you made the pocket private
0:56:17
uh not yet give me one sir
0:56:20
please because when we we never know
0:56:23
in next second when we're gonna start
0:56:31
um i'll just disable the
0:56:35
bucket hosting i'm not sorry the
0:56:37
uh website hosting
0:56:50
this is the connection time to look and
0:56:52
this is i think showing in
0:56:59
seconds how much of the show
0:57:39
actually one might do
0:57:47
what happens in my own time
0:57:51
and see how long does the um
0:57:55
connection last if
0:57:58
both the users are
0:58:11
okay all right we can basically
0:58:18
i'm really like uh i'm really intrigued
0:58:20
but what he did i'm just like it's gonna
0:58:29
actually hang on a minute
0:58:31
let's go on a bit of an adventure and
0:58:33
have a look oh yeah she did but let's um
0:58:37
and not do it on live um just end the
0:58:41
show and and then do it all right okay
0:58:44
yeah sounds good yeah
0:58:46
do you want to do that
0:58:48
yeah cool sounds good uh thanks for
0:58:50
joining us everyone for another episode
0:58:52
of buildbreaking fix
0:58:54
in today's episode we
0:58:57
continued with beta testing um
0:59:02
we're working on the ping pong of
0:59:05
or checking of um keeper live
0:59:07
connections for websockets
0:59:12
and yeah in today's episode we
0:59:15
we had a look at some possible solutions
0:59:18
kind of testing out um what we our next
0:59:21
steps forward essentially
0:59:24
if you would like to see that see more
0:59:30
please join us on the next episode
0:59:32
um we will be doing jump
0:59:36
so i was gonna say same
0:59:37
that's gonna do it all it's gonna say
0:59:39
same task anyways um
0:59:41
please join us tomorrow same time same
0:59:47
all right guys and um
0:59:49
just to correct that dev i didn't i'm
0:59:52
getting that one uh and i didn't say
0:59:55
this will be done hundred percent done
1:00:02
probably next month so
1:00:06
probably is probably different than done
1:00:16
looking good very promising and
1:00:20
thanks for joining gekdev and cornwall
1:00:39
join us um if you can and we look
1:00:43
forward to seeing you here then all
1:00:45
right have a great one and we'll see you
1:00:51
thanks a lot good night
1:00:53
have a good night guys cheers