boarzVideosClipsStatistics

#️⃣EP 037 - Special Guest - Sam Nolan

🎦
📅 2021-08-19 (768 days ago)
⌛ 1:05:19
ZainboarKartikboar
AllClipsEpisodesHas Blog PostZainThaneshKartikTorey
001
Build Break and Code
📅 2021-07-14 
(804 days ago)
⌛ 0:58:43
ZainboarKartikboar
002
Build, Break & Fix
📅 2021-07-15 
(803 days ago)
⌛ 0:53:45
ZainboarKartikboar
003
Build, Break & Fix
📅 2021-07-16 
(802 days ago)
⌛ 1:09:05
ZainboarKartikboar
004
Special Edition: We don't stop until we get our code working
📅 2021-07-16 
(801 days ago)
⌛ 2:27:06
ZainboarKartikboar
005
Build,Break & Fix // Weekend two hour special
📅 2021-07-17 
(800 days ago)
⌛ 2:00:31
ZainboarKartikboar
006
Build, Break & Fix
📅 2021-07-19 
(799 days ago)
⌛ 1:03:20
ZainboarKartikboar
007
Build, Break & Fix
📅 2021-07-20 
(798 days ago)
⌛ 1:04:37
ZainboarKartikboar
008
Build, Break & Fix
📅 2021-07-21 
(797 days ago)
⌛ 1:00:37
ZainboarKartikboar
009
Build, Break & Fix
📅 2021-07-22 
(796 days ago)
⌛ 1:17:02
ZainboarKartikboar
010
Build, Break & Fix
📅 2021-07-23 
(795 days ago)
⌛ 1:04:59
ZainboarKartikboar
011
Build, Break & Fix
📅 2021-07-23 
(794 days ago)
⌛ 1:48:16
ZainboarKartikboar
012
Build, Break & Fix
📅 2021-07-24 
(793 days ago)
⌛ 2:05:28
ZainboarKartikboar
013
Build, Break & Code //First Special Guest Appearance
📅 2021-07-26 
(792 days ago)
⌛ 1:09:09
ZainboarKartikboar
014
Build, Break & Fix
📅 2021-07-27 
(791 days ago)
⌛ 1:05:37
ZainboarKartikboar
015
Build, Break & Fix // Setting a blog using Hugo and AWS Amplify
📅 2021-07-28 
(790 days ago)
⌛ 1:07:46
ZainboarKartikboar
016
Build, Break & Fix // Working on FETCH APIs
📅 2021-07-29 
(789 days ago)
⌛ 1:03:57
ZainboarKartikboar
017
Build, Break & Fix // Working on FETCH APIs
📅 2021-07-30 
(788 days ago)
⌛ 1:06:45
ZainboarKartikboar
018
Build, Break & Fix // creating get methods with FETCH API
📅 2021-07-30 
(787 days ago)
⌛ 2:00:16
ZainboarKartikboar
019
Build, Break & Fix // BLOG REVEAL!! &Fixing our broken Hugo blog
📅 2021-07-31 
(786 days ago)
⌛ 2:03:11
📰
ZainboarKartikboar
020
Build, Break & Fix // Fixing the uncaught exception error in FETCH APIs
📅 2021-08-02 
(785 days ago)
⌛ 1:02:04
ZainboarKartikboar
021
Build, Break & Fix // Trying different things to resolve the error
📅 2021-08-03 
(784 days ago)
⌛ 1:04:49
📰
ZainboarKartikboar
022
Build, Break & Fix // Special Guest announcement for tomorrow!
📅 2021-08-04 
(783 days ago)
⌛ 1:03:15
📰
ZainboarKartikboar
023
Special Episode : Talking to a Principal Developer at Seek
📅 2021-08-05 
(782 days ago)
⌛ 1:04:56
📰
ZainboarKartikboar
024
Build, Break & Fix // Working out Software design
📅 2021-08-06 
(781 days ago)
⌛ 1:08:19
📰
ZainboarKartikboar
025
Build, Break & Fix
📅 2021-08-06 
(780 days ago)
⌛ 2:01:05
📰
ZainboarKartikboar
026
Weekend Special 1.5 hours
📅 2021-08-08 
(779 days ago)
⌛ 1:35:49
📰
Zainboar
027
30 mins of deployment 😠 || 30 mins of coding 🥲
📅 2021-08-09 
(778 days ago)
⌛ 1:07:48
📰
ZainboarKartikboar
028
Today's Broadcast
📅 2021-08-10 
(777 days ago)
⌛ 1:18:59
📰
ZainboarKartikboar
029
Build Break Fix
📅 2021-08-11 
(776 days ago)
⌛ 1:01:46
📰
ZainboarKartikboar
030
Today's Stream
📅 2021-08-12 
(775 days ago)
⌛ 1:09:24
📰
ZainboarKartikboar
031
Buidl Break Fix
📅 2021-08-13 
(774 days ago)
⌛ 1:05:05
📰
ZainboarKartikboar
032
Today's Broadcast
📅 2021-08-14 
(773 days ago)
⌛ 1:20:18
📰
ZainboarKartikboar
033
Build - Break - Fix
📅 2021-08-15 
(772 days ago)
⌛ 1:34:03
📰
ZainboarKartikboar
034
Build Break Fix
📅 2021-08-16 
(771 days ago)
⌛ 1:18:19
📰
ZainboarKartikboar
035
Today's Broadcast
📅 2021-08-17 
(770 days ago)
⌛ 1:04:07
📰
ZainboarKartikboar
036
Build, Break, Fix
📅 2021-08-18 
(769 days ago)
⌛ 1:03:21
📰
ZainboarKartikboar
▶️
Special Guest - Sam Nolan
📅 2021-08-19 
(768 days ago)
⌛ 1:05:19
📰
ZainboarKartikboar
038
Today's Broadcast
📅 2021-08-20 
(767 days ago)
⌛ 1:01:55
📰
ZainboarKartikboar
039
Today's Broascast
📅 2021-08-21 
(766 days ago)
⌛ 1:33:11
📰
ZainboarKartikboar
040
Build - Break - Fix
📅 2021-08-22 
(765 days ago)
⌛ 1:33:18
📰
ZainboarKartikboar
041
Build Break Fix
📅 2021-08-23 
(764 days ago)
⌛ 0:57:11
📰
Zainboar
042
Today's Broadcast
📅 2021-08-24 
(763 days ago)
⌛ 1:06:08
📰
ZainboarKartikboar
043
Today's Stream
📅 2021-08-25 
(762 days ago)
⌛ 1:13:08
📰
ZainboarKartikboar
044
Today's Stream
📅 2021-08-26 
(761 days ago)
⌛ 0:49:48
📰
ZainboarKartikboar
045
Today's Stream
📅 2021-08-27 
(760 days ago)
⌛ 1:08:21
📰
ZainboarKartikboar
046
Weekend Special
📅 2021-08-28 
(759 days ago)
⌛ 1:32:51
ZainboarKartikboar
047
Weekend Special
📅 2021-08-29 
(758 days ago)
⌛ 1:01:39
Zainboar
048
Today's Broadcast
📅 2021-08-30 
(757 days ago)
⌛ 1:17:19
ZainboarKartikboar
049
Today's Broadcast
📅 2021-08-31 
(756 days ago)
⌛ 1:00:16
ZainboarKartikboar
050
CELEBRATION: 50th Episode
📅 2021-09-01 
(755 days ago)
⌛ 1:01:53
ZainboarKartikboar
051
Today's Broadcast
📅 2021-09-02 
(754 days ago)
⌛ 1:05:39
ZainboarKartikboar
052
Today's Broadcast
📅 2021-09-03 
(753 days ago)
⌛ 1:12:47
ZainboarKartikboar
053
NEW SETUP!!
📅 2021-09-04 
(752 days ago)
⌛ 1:04:04
ZainboarKartikboar
054
Weekend Special
📅 2021-09-05 
(751 days ago)
⌛ 1:41:54
ZainboarKartikboar
055
Today's Stream
📅 2021-09-06 
(750 days ago)
⌛ 1:20:05
ZainboarKartikboar
056
Today's Broadcast
📅 2021-09-07 
(749 days ago)
⌛ 1:25:44
ZainboarKartikboar
057
Today's Stream
📅 2021-09-08 
(748 days ago)
⌛ 1:00:33
ZainboarKartikboar
058
Today's Stream
📅 2021-09-09 
(747 days ago)
⌛ 1:13:08
ZainboarKartikboar
059
Today's Broadcast
📅 2021-09-10 
(746 days ago)
⌛ 1:50:40
ZainboarKartikboar
060
Today's Stream
📅 2021-09-12 
(744 days ago)
⌛ 1:02:36
ZainboarKartikboar
061
Today's Stream
📅 2021-09-13 
(743 days ago)
⌛ 1:00:40
ZainboarKartikboar
062
Today's Stream
📅 2021-09-14 
(742 days ago)
⌛ 1:11:29
ZainboarKartikboar
063
Today's Stream
📅 2021-09-15 
(741 days ago)
⌛ 1:07:00
ZainboarKartikboar
064
Today's Broadcast
📅 2021-09-16 
(740 days ago)
⌛ 1:20:45
📰
ZainboarKartikboar
065
test
📅 2021-09-16 
(739 days ago)
⌛ 2:03:01
📰
ZainboarKartikboar
066
Today's Broadcast
📅 2021-09-19 
(737 days ago)
⌛ 1:46:13
📰
ZainboarKartikboar
067
Today's Stream
📅 2021-09-20 
(736 days ago)
⌛ 1:03:46
📰
ZainboarKartikboarToreyboar
068
Today's Stream
📅 2021-09-21 
(735 days ago)
⌛ 1:09:13
📰
ZainboarKartikboarToreyboar
069
Today's Broadcast
📅 2021-09-22 
(734 days ago)
⌛ 1:03:51
📰
ZainboarKartikboar
070
Today's Stream
📅 2021-09-23 
(733 days ago)
⌛ 1:59:01
📰
ZainboarKartikboar
071
Today's Stream
📅 2021-09-24 
(732 days ago)
⌛ 0:28:57
📰
ZainboarKartikboar
072
Today's Stream
📅 2021-09-24 
(732 days ago)
⌛ 0:39:33
📰
ZainboarKartikboar
073
Today's Stream
📅 2021-09-26 
(2 years ago)
⌛ 1:21:14
📰
Zainboar
074
Today's Stream
📅 2021-09-27 
(729 days ago)
⌛ 1:03:40
📰
ZainboarKartikboar
075
Today's Stream
📅 2021-09-28 
(728 days ago)
⌛ 1:04:05
📰
ZainboarKartikboar
076
Today's Broadcast
📅 2021-09-29 
(727 days ago)
⌛ 0:58:07
📰
ZainboarKartikboar
077
Today' Broadcast
📅 2021-09-30 
(726 days ago)
⌛ 1:13:14
📰
ZainboarKartikboar
078
Today's Broadcast
📅 2021-10-01 
(725 days ago)
⌛ 1:23:11
📰
ZainboarKartikboar
079
Today's Stream
📅 2021-10-03 
(723 days ago)
⌛ 1:14:52
📰
ZainboarKartikboar
080
Today's Stream
📅 2021-10-04 
(722 days ago)
⌛ 1:05:10
📰
ZainboarKartikboar
081
Today's Stream
📅 2021-10-05 
(721 days ago)
⌛ 1:01:05
📰
Zainboar
082
Today's Stream
📅 2021-10-06 
(720 days ago)
⌛ 0:54:10
📰
ZainboarKartikboar
083
Today's Stream
📅 2021-10-07 
(719 days ago)
⌛ 1:15:04
📰
ZainboarKartikboar
084
Today's Stream
📅 2021-10-08 
(718 days ago)
⌛ 1:12:59
ZainboarKartikboar
085
Today's Stream
📅 2021-10-10 
(716 days ago)
⌛ 1:17:09
📰
ZainboarKartikboar
086
Today's Stream
📅 2021-10-11 
(715 days ago)
⌛ 1:00:57
📰
ZainboarKartikboar
087
Today's Stream
📅 2021-10-12 
(714 days ago)
⌛ 0:51:02
📰
ZainboarKartikboar
088
Today's Stream
📅 2021-10-13 
(713 days ago)
⌛ 1:07:31
📰
ZainboarKartikboar
089
Today's Broadcast
📅 2021-10-14 
(712 days ago)
⌛ 1:07:16
📰
ZainboarKartikboar
090
Today's Stream
📅 2021-10-15 
(711 days ago)
⌛ 1:01:10
📰
Zainboar
091
Today's Stream
📅 2021-10-17 
(709 days ago)
⌛ 1:26:37
📰
ZainboarKartikboarThaneshboar
092
Today's Stream
📅 2021-10-18 
(708 days ago)
⌛ 1:05:40
📰
ZainboarKartikboarThaneshboar
093
Today's Stream
📅 2021-10-19 
(707 days ago)
⌛ 1:01:58
📰
ZainboarThaneshboar
094
Today's Stream
📅 2021-10-20 
(706 days ago)
⌛ 1:04:18
📰
ZainboarKartikboar
095
Today's Stream
📅 2021-10-21 
(705 days ago)
⌛ 1:16:08
📰
ZainboarKartikboarThaneshboar
096
100th Episode
📅 2021-10-23 
(703 days ago)
⌛ 1:13:16
📰
ZainboarKartikboar
097
101/200 Episodes
📅 2021-10-24 
(702 days ago)
⌛ 1:00:53
📰
ZainboarThaneshboar
098
102/200 Episode
📅 2021-10-25 
(701 days ago)
⌛ 1:09:20
📰
ZainboarKartikboar
099
103/200 Episode
📅 2021-10-26 
(700 days ago)
⌛ 1:10:51
📰
ZainboarKartikboarThaneshboar
100
104/200
📅 2021-10-27 
(699 days ago)
⌛ 1:03:23
📰
ZainboarKartikboar
101
105/200
📅 2021-10-28 
(698 days ago)
⌛ 1:15:24
📰
ZainboarThaneshboar
102
107/200
📅 2021-10-29 
(697 days ago)
⌛ 1:14:04
📰
ZainboarKartikboar
103
109/200
📅 2021-10-31 
(695 days ago)
⌛ 1:11:38
📰
ZainboarKartikboarThaneshboar
104
110/200
📅 2021-11-01 
(694 days ago)
⌛ 1:04:53
📰
ZainboarKartikboar
105
111/200
📅 2021-11-02 
(693 days ago)
⌛ 1:11:33
📰
ZainboarKartikboarThaneshboar
106
112/200
📅 2021-11-03 
(692 days ago)
⌛ 1:00:17
📰
ZainboarKartikboar
107
113/200
📅 2021-11-04 
(691 days ago)
⌛ 1:03:53
📰
Zainboar
108
114/200
📅 2021-11-05 
(690 days ago)
⌛ 0:56:39
Zainboar
109
115/200
📅 2021-11-07 
(688 days ago)
⌛ 1:02:25
📰
ZainboarThaneshboar
110
116/200
📅 2021-11-08 
(687 days ago)
⌛ 1:09:37
📰
ZainboarKartikboar
111
117/200
📅 2021-11-09 
(686 days ago)
⌛ 1:06:25
📰
ZainboarKartikboarThaneshboar
112
118/200
📅 2021-11-10 
(685 days ago)
⌛ 1:02:39
📰
ZainboarKartikboar
113
119/200
📅 2021-11-11 
(684 days ago)
⌛ 1:08:01
📰
ZainboarKartikboarThaneshboar
114
120/200
📅 2021-11-12 
(683 days ago)
⌛ 1:00:14
📰
Zainboar
115
120/200
📅 2021-11-14 
(681 days ago)
⌛ 1:06:19
📰
ZainboarKartikboarThaneshboar
116
122/200
📅 2021-11-15 
(680 days ago)
⌛ 1:00:31
ZainboarKartikboar
117
Today's Stream
📅 2021-11-22 
(673 days ago)
⌛ 1:01:46
📰
KartikboarThaneshboar
118
How This Video Has 12 Views, Explained
📅 2021-11-25 
(670 days ago)
⌛ 0:59:47
KartikboarThaneshboar
119
How This Video Has 14 Views, Explained
📅 2021-11-29 
(666 days ago)
⌛ 1:16:20
📰
KartikboarThaneshboar
120
Special Guest - Torey Littlefield Pt.2
📅 2021-11-30 
(665 days ago)
⌛ 1:12:15
📰
ZainboarToreyboar
121
Today's Stream
📅 2021-12-02 
(663 days ago)
⌛ 1:02:25
KartikboarThaneshboar
122
Today's Stream
📅 2021-12-06 
(659 days ago)
⌛ 1:02:01
📰
KartikboarThaneshboar
123
Today's Broadcast
📅 2021-12-07 
(658 days ago)
⌛ 1:01:00
KartikboarThaneshboar
124
Today's Stream
📅 2021-12-09 
(656 days ago)
⌛ 1:05:48
📰
ZainboarThaneshboar
125
Today's Stream
📅 2021-12-10 
(655 days ago)
⌛ 1:07:15
ZainboarToreyboar
126
Today's Stream
📅 2021-12-12 
(653 days ago)
⌛ 0:12:47
📰
ZainboarThaneshboar
127
Today's Stream
📅 2021-12-12 
(653 days ago)
⌛ 0:50:29
📰
ZainboarThaneshboar
128
Today's Stream
📅 2021-12-13 
(652 days ago)
⌛ 1:02:31
📰
ZainboarKartikboar
129
Today's Stream
📅 2021-12-14 
(651 days ago)
⌛ 1:10:28
📰
ZainboarToreyboar
130
Today's Stream
📅 2021-12-16 
(649 days ago)
⌛ 1:16:51
📰
ZainboarThaneshboar
131
Today's Stream
📅 2021-12-17 
(648 days ago)
⌛ 1:10:59
ZainboarKartikboarToreyboar
132
Today's Stream
📅 2021-12-19 
(646 days ago)
⌛ 1:00:49
📰
Zainboar
133
Today's Stream
📅 2021-12-20 
(645 days ago)
⌛ 1:01:49
📰
ZainboarKartikboar
134
Today's Stream
📅 2021-12-21 
(644 days ago)
⌛ 1:03:43
📰
ZainboarThaneshboar
135
Today's Stream
📅 2021-12-22 
(643 days ago)
⌛ 1:06:30
📰
ZainboarKartikboar
136
Today's Stream
📅 2021-12-23 
(642 days ago)
⌛ 1:00:09
Zainboar
137
Today's Stream
📅 2021-12-26 
(639 days ago)
⌛ 1:17:00
📰
ZainboarThaneshboar
138
Today's Stream
📅 2021-12-27 
(638 days ago)
⌛ 1:05:22
📰
ZainboarKartikboar
139
Today's Stream
📅 2021-12-28 
(637 days ago)
⌛ 1:16:17
📰
ZainboarToreyboar
140
WebSocket Integration
📅 2021-12-29 
(636 days ago)
⌛ 1:02:44
📰
Zainboar
141
AWS WebSocket API Integration Pt.2
📅 2021-12-30 
(635 days ago)
⌛ 1:08:23
📰
ZainboarToreyboar
142
AWS WebSocket Integration with SAM Pt.3
📅 2022-01-02 
(632 days ago)
⌛ 1:03:18
📰
ZainboarToreyboar
143
Today's Stream
📅 2022-01-03 
(631 days ago)
⌛ 1:07:18
📰
ZainboarKartikboar
144
AWS WebScoket Integration with SAM Pt.4
📅 2022-01-04 
(630 days ago)
⌛ 1:04:18
📰
ZainboarToreyboar
145
AWS WebSocket Integration with SAM Pt.5
📅 2022-01-05 
(629 days ago)
⌛ 1:03:21
📰
ZainboarKartikboar
146
AWS WebSocket Integration with SAM Pt. 6
📅 2022-01-06 
(628 days ago)
⌛ 1:03:18
📰
ZainboarToreyboar
147
Today's Stream
📅 2022-01-07 
(627 days ago)
⌛ 1:11:55
📰
ZainboarToreyboar
148
Connect AWS WebSocket to DynamoDB Pt.1
📅 2022-01-09 
(625 days ago)
⌛ 1:10:25
📰
ZainboarToreyboar
149
Connect AWS WebSocket to DynamoDB
📅 2022-01-10 
(624 days ago)
⌛ 1:02:06
ZainboarKartikboar
150
"Blank Line" Bug In Lambda Response For AWS Websocket Pt.1
📅 2022-01-11 
(623 days ago)
⌛ 0:58:13
📰
ZainboarKartikboarToreyboar
151
"Blank Line" Bug In Lambda Response From Lambda
📅 2022-01-13 
(621 days ago)
⌛ 1:04:40
📰
ZainboarToreyboar
152
AWS WebSocket + Lambda + DynamoDB
📅 2022-01-14 
(620 days ago)
⌛ 1:04:33
📰
ZainboarThaneshboar
153
AWS WebSocket + Lambda + DynamoDB
📅 2022-01-16 
(618 days ago)
⌛ 1:11:37
📰
ZainboarToreyboar
154
Test
📅 2022-01-17 
(617 days ago)
⌛ 1:03:13
📰
ZainboarThaneshboar
155
Today's stre
📅 2022-01-18 
(616 days ago)
⌛ 0:45:24
ZainboarToreyboar
156
AWS Websocket + DyanmoDb + Lambda
📅 2022-01-19 
(615 days ago)
⌛ 1:06:33
📰
ZainboarThaneshboar
157
Today's Stream
📅 2022-01-20 
(614 days ago)
⌛ 0:57:55
📰
Zainboar
158
Today's Stream
📅 2022-01-21 
(613 days ago)
⌛ 1:02:17
📰
ToreyboarZainboar
159
Today's Stream
📅 2022-01-23 
(611 days ago)
⌛ 1:13:29
📰
ZainboarToreyboar
160
How To Host A Web App using AWS S3 and CloudFront
📅 2022-01-24 
(610 days ago)
⌛ 1:16:15
📰
ZainboarThaneshboar
161
How to Host Web App In AWS S3 using CloudFront, Route53 and CloudFormation
📅 2022-01-25 
(609 days ago)
⌛ 1:01:07
ZainboarToreyboar
162
How to Host Web App Using AWS S3, CloudFront and Route53
📅 2022-01-26 
(608 days ago)
⌛ 1:03:12
ZainboarThaneshboar
163
How To Host Web App In AWS S3 with Custom Domain
📅 2022-01-27 
(607 days ago)
⌛ 1:08:48
📰
ZainboarToreyboar
164
How To Host Web App In AWS S3 with Custom Domain Using Route 53
📅 2022-01-28 
(606 days ago)
⌛ 1:08:57
📰
ZainboarThaneshboar
165
How To Host Web App In AWS S3 with Custom Domain Using Route 53
📅 2022-01-30 
(604 days ago)
⌛ 0:28:17
Zainboar
166
Today's Broadcast
📅 2022-01-31 
(603 days ago)
⌛ 1:11:16
📰
ThaneshboarToreyboar
167
How To Host Web App In AWS S3 with Custom Domain Using Route 53
📅 2022-02-01 
(602 days ago)
⌛ 1:06:35
📰
ZainboarToreyboar
168
Generate SSL Certificate via AWS Certificate Manager
📅 2022-02-02 
(601 days ago)
⌛ 0:58:02
📰
ZainboarThaneshboar
169
Test AWS Websocket Connection With Multiple Users
📅 2022-02-03 
(600 days ago)
⌛ 1:01:59
📰
ZainboarToreyboar
170
Adding Redirection To The AWS S3 Page
📅 2022-02-04 
(599 days ago)
⌛ 0:25:00
Zainboar
171
Redirecting AWS S3 page
📅 2022-02-06 
(597 days ago)
⌛ 0:54:11
Zainboar
172
Today's Broadcast
📅 2022-02-07 
(596 days ago)
⌛ 1:05:20
📰
ThaneshboarToreyboar
173
Today's Stream
📅 2022-02-08 
(595 days ago)
⌛ 1:05:29
ZainboarToreyboar
174
Today's Stream
📅 2022-02-10 
(593 days ago)
⌛ 1:05:47
ZainboarToreyboar
175
How To Send Messages To Multiple Clients Through AWS Websocket
📅 2022-02-13 
(590 days ago)
⌛ 1:02:05
ZainboarToreyboar
176
How To CRUD Data Through AWS Websocket with Multiple Clients
📅 2022-02-16 
(587 days ago)
⌛ 1:07:32
ZainboarThaneshboar
177
Today's Stream
📅 2022-02-17 
(586 days ago)
⌛ 0:58:01
ZainboarToreyboar
178
How To Change String Property to Object in AWS SAM and Deploy
📅 2022-02-20 
(583 days ago)
⌛ 1:21:24
ZainboarToreyboar
179
Today's Stream
📅 2022-02-23 
(580 days ago)
⌛ 0:59:43
📰
ZainboarThaneshboar
180
How To HASH A Password using BCRYPT in Node
📅 2022-02-25 
(578 days ago)
⌛ 1:03:48
ZainboarThaneshboar
181
How to Hash Passcode with BCRYPT using Node Pt.2
📅 2022-02-27 
(576 days ago)
⌛ 1:07:59
ZainboarToreyboar
182
Create Passcode UI
📅 2022-02-28 
(575 days ago)
⌛ 1:01:29
📰
ZainboarThaneshboar
183
How To Make FrontEnd Talk to Backend with Node
📅 2022-03-01 
(574 days ago)
⌛ 1:01:33
ZainboarToreyboar
184
How To Positioning A Div
📅 2022-03-04 
(571 days ago)
⌛ 1:09:27
ZainboarToreyboar
185
Today's Stream
📅 2022-03-06 
(569 days ago)
⌛ 1:00:29
Zainboar
186
Today's Stream
📅 2022-03-07 
(568 days ago)
⌛ 0:55:51
ZainboarThaneshboar
187
Today's Stream
📅 2022-03-09 
(566 days ago)
⌛ 1:00:11
ZainboarThaneshboar
188
Compare Hashed Passwords Using Bcryptjs
📅 2022-03-10 
(565 days ago)
⌛ 1:01:31
ZainboarToreyboar
189
Special Appearance
📅 2022-03-11 
(564 days ago)
⌛ 0:58:44
ZainboarThaneshboarKartikboar
190
Today's Stream
📅 2022-03-13 
(562 days ago)
⌛ 1:16:40
ZainboarToreyboar
191
How To Make Frontend Talk To The Backend - NodeJS
📅 2022-03-14 
(561 days ago)
⌛ 1:07:00
ZainboarThaneshboar
192
Today's Stream
📅 2022-03-15 
(560 days ago)
⌛ 1:05:51
ZainboarToreyboar
193
Today's Stream
📅 2022-03-17 
(558 days ago)
⌛ 1:21:59
ZainboarToreyboar
194
How To Apply Authentication When Saving NodeJs
📅 2022-03-18 
(557 days ago)
⌛ 1:05:27
Zainboar
195
How to Compare Passcodes Using Bcrytp Node.js
📅 2022-03-20 
(555 days ago)
⌛ 1:04:19
ZainboarToreyboar
196
Today's Broadcast
📅 2022-03-21 
(554 days ago)
⌛ 1:06:59
ThaneshboarToreyboar
197
Today's Stream
📅 2022-03-22 
(553 days ago)
⌛ 1:02:51
ZainboarToreyboar
198
Verify Passcode Saving Information to DynamoDB with NodeJs
📅 2022-03-23 
(552 days ago)
⌛ 1:03:09
ZainboarThaneshboar
199
Today's Stream
📅 2022-03-25 
(550 days ago)
⌛ 1:12:27
ZainboarToreyboar
200
Today's Stream
📅 2022-03-27 
(548 days ago)
⌛ 1:14:36
ZainboarToreyboar
201
Today's Stream
📅 2022-03-28 
(547 days ago)
⌛ 1:08:28
ZainboarThaneshboar
202
How To Do A Merge Using VSCode and Github
📅 2022-03-29 
(546 days ago)
⌛ 1:05:33
ZainboarToreyboar
203
Today's Stream
📅 2022-03-30 
(545 days ago)
⌛ 0:57:26
ZainboarThaneshboar
204
Today's Stream
📅 2022-03-31 
(544 days ago)
⌛ 0:57:10
ZainboarToreyboar
205
Today's Stream
📅 2022-04-01 
(543 days ago)
⌛ 1:00:36
Zainboar
206
Today's Stream
📅 2022-04-03 
(541 days ago)
⌛ 1:06:56
ZainboarToreyboar
207
Get Board Columns from Frontend to Backend NodeJS
📅 2022-04-04 
(540 days ago)
⌛ 1:00:38
ZainboarThaneshboarToreyboar
208
Today's Stream
📅 2022-04-05 
(539 days ago)
⌛ 0:57:30
ZainboarToreyboar
209
Today's Stream
📅 2022-04-06 
(538 days ago)
⌛ 0:59:39
ZainboarThaneshboar
210
Today's Stream
📅 2022-04-07 
(537 days ago)
⌛ 1:04:46
Zainboar
211
Store String Array in DynamoDB using NodeJS
📅 2022-04-08 
(536 days ago)
⌛ 0:19:27
Zainboar
212
Today's Stream
📅 2022-04-10 
(534 days ago)
⌛ 1:07:24
Zainboar
213
Today's Stream
📅 2022-04-11 
(533 days ago)
⌛ 1:02:34
ZainboarThaneshboar
214
Today's Stream
📅 2022-04-12 
(532 days ago)
⌛ 0:27:43
Zainboar
215
Jira Organising & Beta Testing Day 1
📅 2022-04-13 
(531 days ago)
⌛ 0:58:09
ZainboarThaneshboar
216
Implement Passcode Tab Feature
📅 2022-04-17 
(527 days ago)
⌛ 0:58:49
ZainboarToreyboar
217
Beta Testing Fixes Part 2
📅 2022-04-19 
(525 days ago)
⌛ 1:00:24
ZainboarToreyboar
218
Beta Testing Fixes Part 3
📅 2022-04-20 
(524 days ago)
⌛ 1:01:02
ZainboarThaneshboar
219
Beta Testing Fixes Part 4
📅 2022-04-21 
(523 days ago)
⌛ 1:00:13
ZainboarToreyboar
220
Beta Testing 5
📅 2022-04-22 
(522 days ago)
⌛ 1:10:18
ThaneshboarToreyboar
221
Today's Stream
📅 2022-04-25 
(519 days ago)
⌛ 1:01:01
ZainboarThaneshboar
222
WebSocket Heartbeat & Thanesh's Farewell
📅 2022-04-27 
(517 days ago)
⌛ 0:51:08
ZainboarThaneshboar
223
Today's Stream
📅 2022-04-28 
(516 days ago)
⌛ 1:00:33
ZainboarToreyboar
224
Save Notes Through Websocket
📅 2022-04-29 
(515 days ago)
⌛ 0:51:30
Zainboar
225
Saving Object Through Websocket in DynamoDB
📅 2022-05-01 
(513 days ago)
⌛ 0:49:15
ZainboarToreyboar
226
Saving Object Through Websocket in DynamoDb
📅 2022-05-02 
(512 days ago)
⌛ 0:55:26
Zainboar
227
Today's Stream
📅 2022-05-05 
(509 days ago)
⌛ 1:01:32
ZainboarToreyboar
228
Welcome Back Kartik Party
📅 2022-05-08 
(506 days ago)
⌛ 0:55:32
ZainboarToreyboarKartikboar
229
Testing Prevention of XSS attack
📅 2022-05-10 
(504 days ago)
⌛ 0:29:16
Zainboar
230
How To Test Prevention XSS Attack
📅 2022-05-11 
(503 days ago)
⌛ 0:40:42
ZainboarKartikboar
231
Fixing Websocket
📅 2022-05-19 
(495 days ago)
⌛ 0:49:55
Zainboar
232
Today's Stream
📅 2022-05-20 
(494 days ago)
⌛ 0:56:10
ZainboarKartikboar
233
Today's Stream
📅 2022-05-22 
(492 days ago)
⌛ 0:55:33
Zainboar
234
Today's Stream
📅 2022-05-24 
(490 days ago)
⌛ 0:23:19
Zainboar
235
Websockets bugs
📅 2022-05-27 
(487 days ago)
⌛ 1:00:51
ZainboarKartikboar
236
Websocket Bug Fix
📅 2022-05-29 
(485 days ago)
⌛ 0:49:50
Zainboar
237
Hook Up AWS Websocket
📅 2022-05-30 
(484 days ago)
⌛ 0:48:59
Zainboar
238
Hook up AWS Websocket Pt.2
📅 2022-05-31 
(483 days ago)
⌛ 0:53:07
Zainboar
239
Today's Stream
📅 2022-06-01 
(482 days ago)
⌛ 0:21:05
Zainboar
240
AWS Websocket Bug Fix
📅 2022-06-05 
(478 days ago)
⌛ 0:52:47
Zainboar
241
AWS Websocket Bug Fix Pt.2
📅 2022-06-06 
(477 days ago)
⌛ 0:23:52
Zainboar
242
Hook Up Board Columns to Websockets Nodejs + AWS Websockets
📅 2022-07-27 
(426 days ago)
⌛ 1:00:06
Zainboar

Blog

Today we had a privilege to have Sam Nolan, who is the President of The Programming Club at RMIT as our special guest. We interviewed him on his experiences in programming, his entrepreneurial journey so far and his love for diving into software architecture. As we know that our express application design had to change and we already had few options in our minds, however, we thought it would be good to pick Sam's creative brain up by sharing our ideas and see what he thinks. He brought us to another approach which he thought and explained why it would be better than all our approaches. Considering the efficiency and the performance perspective, we decided we would go with his approach. So thanks to him for shedding light on that. We really admire his passion for good suggestions and opinions about architectures and look forward to having him again soon.

Subtitles

0:00:01
[Music]
0:00:23
all right
0:00:25
welcome back everyone welcome back on to
0:00:28
another episode of build break and fix
0:00:31
where we are attempting to
0:00:34
um build uh enhancement on the current
0:00:37
open source project called scrambler.ca
0:00:40
we aim to add persistent storage to the
0:00:43
condo princess project
0:00:45
and you guys might be wondering who's
0:00:46
this new face here um i'd like to
0:00:48
introduce sam
0:00:50
sam is the president of the rmit
0:00:52
programming club um
0:00:54
i essentially met him at uni and i we
0:00:56
thought it would be a good idea to
0:00:58
uh bring up up here on the stream and
0:01:01
talk about his experiences so sam do you
0:01:03
want to introduce yourself
0:01:04
yeah sure so
0:01:06
um i'm sam nolan as i has been
0:01:08
introduced in the president of the rmit
0:01:09
programming club um i've been around the
0:01:12
club space uh ever since i came to uni
0:01:15
um so that's been four years and i'm
0:01:17
leaving this year
0:01:19
but
0:01:20
my interests mainly revolve around a
0:01:23
functional programming
0:01:25
type systems and ensuring the
0:01:26
correctness of systems but then it also
0:01:28
kind of strays into uh architectures
0:01:33
statistics
0:01:34
um and a whole lot of different little
0:01:36
subfields and areas
0:01:38
so
0:01:39
my my skills are very wide and my
0:01:42
interests wider so it's a little bit um
0:01:44
of a pain to describe but yeah
0:01:47
okay what what got you into functional
0:01:49
programming though like why that's my
0:01:52
whole option
0:01:54
um
0:01:55
i think
0:01:56
when i started off in functional
0:01:58
programming i think it was mainly just
0:02:00
like
0:02:01
is the quest for the languages because i
0:02:03
think i originally
0:02:05
um i start you kind of learn a little
0:02:07
bit of functional programming but i
0:02:08
really know it's functional programming
0:02:10
um when you go going to javascript and
0:02:12
python but with when you start with the
0:02:14
quest of the languages it's like oh
0:02:16
haskell's a really tough language and
0:02:17
i'm like oh really is it now and then
0:02:19
you start haskell and you realize that
0:02:21
like the haskell tutorials have like
0:02:23
chapter nine
0:02:24
part one is hello world and it's like
0:02:26
what in the world what are you doing for
0:02:27
the first eight chapters um so it's
0:02:31
it's it's pretty hard stuff um
0:02:34
but eventually when you you bang your
0:02:36
head at it for long enough you
0:02:38
eventually um you've got a new language
0:02:40
under your belt
0:02:43
nice um
0:02:45
and i'm pretty close
0:02:48
i think i originally used it to build
0:02:50
little command line applications like i
0:02:51
tried to make a projectional editor you
0:02:53
know at one point um but then eventually
0:02:56
i just use it for for general purpose
0:02:58
programming because it's such a
0:02:59
fantastic language
0:03:00
for other people that are not so aware
0:03:02
of it
0:03:03
it's definitely worth worth banging your
0:03:04
head up against for for a month or so
0:03:07
because it just changes the way you
0:03:08
think about programming in general
0:03:11
yeah
0:03:12
but why only has although like there are
0:03:14
other functional programming lines which
0:03:16
are like kind of as good as haskell i
0:03:18
don't want to step on any toes but
0:03:21
i mean like go ahead what what are some
0:03:24
functional programming languages that
0:03:25
are as good as high school
0:03:27
um
0:03:28
i mean
0:03:29
there are a lot of them um i mean
0:03:32
there's like my my i would list
0:03:34
yeah
0:03:35
pretty good
0:03:37
and then you have like oh camel which i
0:03:38
think is the a slightly more
0:03:41
maybe popular than haskell but i'm not
0:03:42
even sure about that um and then there's
0:03:44
what like the the theater improvers
0:03:46
which is like idris aghda
0:03:48
um isabelle
0:03:50
as well
0:03:51
um but i think that honestly if you're
0:03:53
going to functional programming haskell
0:03:55
is surely
0:03:56
the the first one that you want to go to
0:03:59
right yeah but yeah
0:04:01
do you want to give our viewers a bit of
0:04:03
um what exactly is functional
0:04:05
programming well how is it different
0:04:08
scripting languages
0:04:09
[Music]
0:04:11
absolutely um
0:04:13
let's go for the rant um it's been a
0:04:15
while since i've been able to
0:04:17
do this
0:04:18
um
0:04:19
functional programming
0:04:21
stream
0:04:24
yeah
0:04:26
so yeah functional programming to to
0:04:28
really hook you onto it um
0:04:31
i i it's impossible to describe because
0:04:33
uh there's so many different concepts
0:04:35
that makes functional programming
0:04:37
different from normal programming and
0:04:38
one of the first times is when you come
0:04:40
to functional programming and you
0:04:41
explain functional programming to
0:04:42
someone they're like oh but don't we
0:04:44
have object orientated programming and
0:04:46
they they i think they click they get
0:04:48
confused with the concept of a
0:04:49
functional programming language in a
0:04:50
procedural programming language so
0:04:52
before going further c is not a
0:04:54
functional programming language it's a
0:04:55
procedural programming language and when
0:04:58
i say functional programming language
0:05:00
i'm talking about haskell o camel ml the
0:05:04
uh the theorem provers that i named like
0:05:06
idris ogden isabel
0:05:09
and if you
0:05:11
think you know a functional programming
0:05:12
language that isn't one of those
0:05:14
it's probably not a functional
0:05:16
programming language um it's probably
0:05:18
not something you've experienced and my
0:05:19
gosh you've got quite the opportunity
0:05:21
obviously if you just spend a little bit
0:05:23
um
0:05:25
but the main thing with functional
0:05:26
programming languages and the things
0:05:27
that make them absolutely wonderful and
0:05:28
you're going to make it's going to be
0:05:30
very hard to believe
0:05:31
um yes c is imperative 100
0:05:34
um c is an imperative language and that
0:05:38
functional languages are different
0:05:40
um on the level of being imperative
0:05:42
versus yet functional
0:05:44
and yeah so most languages you've worked
0:05:46
with are probably imperative um with
0:05:48
these languages being functional
0:05:51
what the the great selling point of
0:05:53
functional languages is that there's
0:05:54
this magical thing with functional
0:05:56
languages whereas when you code with the
0:05:58
functional language
0:06:00
the
0:06:00
usually the first time it compiles it
0:06:04
operates and works correctly
0:06:07
so
0:06:07
there's this magical feeling that you
0:06:09
normally get in other languages where
0:06:10
it's like oh yes you know first time
0:06:12
well that's not that magical in
0:06:13
functional programming languages because
0:06:15
it just always works first time um but
0:06:17
all the vast majority of the time
0:06:20
and the features that allow
0:06:23
functional programming programming
0:06:25
languages to do that
0:06:27
are quite manifold
0:06:28
but one particular one is that they are
0:06:33
very strong on type systems
0:06:35
so for instance you know you'd have like
0:06:38
um
0:06:40
although you can have strict um let's
0:06:43
you can have dynamically tight
0:06:45
functional programming languages but
0:06:46
they're rare i don't think i can name
0:06:47
any of the top of my head um but
0:06:50
yeah usually they're very strongly typed
0:06:53
which means that you know you have like
0:06:55
python which is not type java which is
0:06:57
slightly more typed haskell o camel uh
0:07:00
further typed than that and the stuff
0:07:01
that i'm doing my honest thesis on which
0:07:03
is about idris and isabel or even
0:07:05
further type than that and that just
0:07:06
means that it's impossible to get your
0:07:08
compute program to compile and for it to
0:07:10
not work
0:07:11
um but then there's a whole lot of other
0:07:12
features about like the way that you
0:07:14
think about and write programs that make
0:07:16
just a functional programming language
0:07:18
both impossible to describe and
0:07:19
absolutely fantastic at the same time
0:07:22
i mean i could go through some of those
0:07:23
but i'm not sure
0:07:25
i mean you kind of just have to try it
0:07:28
yeah for sure but yeah i kind of like
0:07:30
the fact that like fps are really
0:07:33
concise and still they retain a lot of
0:07:35
their semantics but how do you how do
0:07:37
you feel about these kind of languages
0:07:39
being used in the industry because
0:07:41
they're not heavily encouraged but i
0:07:43
know a lot of i know some places that
0:07:46
haskell is being um developed in
0:07:48
production as well so how do you feel
0:07:49
about that
0:07:51
ah
0:07:52
i mean
0:07:54
the thing is with
0:07:56
when you're doing these types of
0:07:57
trade-offs like okay um
0:07:59
for a little bit of context uh my
0:08:01
current thesis
0:08:03
is actually on trying to
0:08:06
diagnose problems with the usability of
0:08:08
what we call interactive theory
0:08:09
improvers fees in industry um
0:08:12
so
0:08:13
um i've been i'm talking about
0:08:15
functional programming languages which
0:08:16
are like you know haskell and ocamel and
0:08:18
what's fantastic about a functional
0:08:20
programming language and why you
0:08:21
probably should be using it in industry
0:08:22
i believe
0:08:23
um
0:08:24
is that as i said it's it's a lot more
0:08:27
difficult a lot more difficult to write
0:08:29
bugs into it
0:08:31
um although it is also more difficult to
0:08:33
learn and there isn't as great a tooling
0:08:37
ecosystem around it um but i still think
0:08:40
that that that change is definitely
0:08:41
worth it um a hundred percent because it
0:08:44
just removes the bugs
0:08:46
um regardless of that ecosystem but then
0:08:49
like i guess what i'm what my i'm
0:08:50
currently doing which is uh interactive
0:08:52
theorem provers which is the one step
0:08:54
over from haskell into
0:08:57
programs that you can actually prove
0:08:59
operate correctly
0:09:01
so you have some sort of formal written
0:09:02
specification about how your software
0:09:04
works and then you you write
0:09:07
into your your programming language like
0:09:09
isabel and an actual proof as to as to
0:09:12
why it works um and as you can imagine
0:09:15
these types of tools are even less
0:09:17
supported um than than haskell or camel
0:09:23
they have a they have a smaller
0:09:24
ecosystem so i guess it's it's the it's
0:09:26
the trade-off really with how difficult
0:09:29
it is to hire people
0:09:31
of those categories of who
0:09:33
have those skills um
0:09:48
yes that's because it compiles doesn't
0:09:49
mean it's valid it'll work at one time
0:09:52
this is 100 true but i think what's
0:09:54
fantastic about when you get when you go
0:09:56
down this um this like this hierarchy of
0:09:59
of of type systems is that you can
0:10:01
slowly remove different classes of
0:10:03
errors
0:10:04
like um one of the apple i like that
0:10:06
you're currently doing a back end in
0:10:08
express currently uh because i built an
0:10:11
application that i call was called may
0:10:13
and i think i spent most of the time
0:10:15
fussing over type systems and how to
0:10:17
make really cool statically typed
0:10:19
architectures one thing that i was able
0:10:21
to do with a little bit of a graphql and
0:10:23
typing was that i was able to
0:10:26
completely type the interface between
0:10:28
the front and the back end which means
0:10:30
that i would get type errors anytime
0:10:32
there was a a miscon like a
0:10:35
mis-specification of the protocol of the
0:10:37
weight of the api
0:10:38
right so if there was like a field that
0:10:40
was missing that would like produce a
0:10:42
type error on one side or the other and
0:10:46
i think that yeah as you go down the
0:10:47
chain obviously yes
0:10:49
you can't get to 100 perfection um you
0:10:52
almost can
0:10:53
with like fear improvers but
0:10:55
it you can definitely do a go a long way
0:10:58
in val um removing
0:11:00
massive classes of errors when you go
0:11:02
down that type of hierarchy
0:11:04
yeah no that makes sense
0:11:06
then then do you have any questions to
0:11:07
ask him
0:11:09
yeah i just wanted to ask him i know you
0:11:12
said us um
0:11:14
the term interacting firm prove it i
0:11:17
haven't really heard that um would you
0:11:19
mind just
0:11:21
describing i think what that is and
0:11:25
yeah so um interactive theorem proof is
0:11:28
a fantastic piece of the software so the
0:11:30
general idea is that um if you were to
0:11:32
go into a university that wasn't rmit uh
0:11:34
what they'd do is that they would uh
0:11:36
they'll get you to write a computer
0:11:38
program and then they would give you a
0:11:40
pen and paper and you'd have to prove
0:11:42
loop invariants over why exactly that
0:11:43
computer program works
0:11:45
you know that
0:11:47
right right yeah yeah it brings about
0:11:50
that
0:11:51
the idea is that um with the uh that's
0:11:53
theorem proving so you have some sort of
0:11:55
theorem that your your code works the
0:11:57
way that you expect it does
0:11:59
um and then you with a pen and paper try
0:12:01
to provide a proof as to why that uh
0:12:05
that piece of code operates correctly
0:12:07
um theorem provers
0:12:09
try to help you find proofs for why that
0:12:12
code operates correctly
0:12:14
and those theorems are split into two
0:12:16
categories you've got automated and
0:12:19
interactive theorem provers
0:12:21
so automated theorem improvers attempt
0:12:23
to try to find a proof
0:12:24
for the the correctness of your software
0:12:26
automatically
0:12:27
um but
0:12:29
because
0:12:30
the um
0:12:32
trying to prove correctness of software
0:12:34
is an undecidable problem
0:12:36
sometimes it's it's quite a difficult
0:12:38
algorithm
0:12:40
sometimes it doesn't terminate and it
0:12:42
requires user intuition to be able to
0:12:44
interact with the um
0:12:45
[Music]
0:12:47
the the proof to construct um verified
0:12:50
software like for instance some of the
0:12:51
things that have been done with
0:12:53
interactive theorem brewers is they've
0:12:54
built uh fully verified micro kernels um
0:12:57
cryptographic libraries they've made um
0:13:00
they've also made a comp cert which is a
0:13:03
certified c compiler um in which
0:13:06
just yeah it's guaranteed to
0:13:08
to operate according to their
0:13:10
specification which is fantastic
0:13:12
um
0:13:14
so that's that's the type of space of
0:13:15
theorem proof is so that's i think going
0:13:17
right to the very edge of what's
0:13:19
possible with type systems and obviously
0:13:21
you shouldn't do that forever for every
0:13:22
project because otherwise you'll just
0:13:23
drive yourself into a wall
0:13:28
yeah that makes sense though
0:13:32
um talking a bit more about haskell so
0:13:35
i've heard like
0:13:36
a lot of people
0:13:38
um say that there's a problem with
0:13:40
haskell's syntax or
0:13:42
a lot of people say it's too arbitrary
0:13:44
or it's kind of traditional less and
0:13:46
i also when i was reading about it um
0:13:50
i i heard some people say that if there
0:13:52
was a combination of haskell with a
0:13:54
python syntax that would be the best
0:13:56
thing in the world
0:13:57
what do you think about that
0:14:02
i'm not 100 sure what that would look
0:14:04
like
0:14:04
um
0:14:06
i mean like there are quite a few
0:14:08
peculiarities with haskell syntax like
0:14:10
i've noticed that there are some things
0:14:12
where there are a lot of programming
0:14:14
languages that are based off haskell but
0:14:16
then fix these odd things with the
0:14:18
syntax that kind of that kind of is a
0:14:21
bit strange
0:14:22
um
0:14:23
but
0:14:25
ah
0:14:27
i mean like the the thing is with the
0:14:28
difference between functional imperative
0:14:30
one of the another main
0:14:32
things
0:14:33
is that a functional programming
0:14:34
language okay so an imperative
0:14:36
programming language when you write
0:14:37
programs you write them like they're a
0:14:38
recipe so you go
0:14:40
um
0:14:41
like
0:14:42
if this while that do this then that
0:14:45
than this if that um and then they go
0:14:47
down like a series of instructions
0:14:49
um
0:14:50
in a functional programming language
0:14:52
instead of having it like a series of
0:14:55
functions it's kind of like let program
0:14:57
equals and you have an expression which
0:15:00
itself represents your program
0:15:02
so
0:15:03
in in haskell everything is an
0:15:05
expression and because everything is an
0:15:07
expression that kind of means that you
0:15:09
have syntax that looks a little bit
0:15:12
bizarre to other programmers like for
0:15:14
instance in haskell uh white space is
0:15:16
function application so if you want to
0:15:18
do like you know you call like sine of x
0:15:21
it's sine space x
0:15:24
yeah
0:15:25
which is incredibly unusual to most
0:15:27
programmers um but it makes a lot of
0:15:29
sense when you're you're applying a lot
0:15:31
of functions so
0:15:33
i i can't really
0:15:35
i'm not i can't really say that that's
0:15:37
i would be surprised if it was syntax
0:15:40
that was the the constraining element in
0:15:43
understanding languages like haskell um
0:15:46
i'd be more like less surprised if it
0:15:48
stuffed like i would think it'd be more
0:15:50
like
0:15:51
understanding concepts like monads and
0:15:54
how they work that that's an interesting
0:15:56
decision but i guess it was it was one
0:15:58
that they decided to go with which is
0:15:59
always fun
0:16:01
yeah okay
0:16:02
nice
0:16:04
but i mean that's kind of the thing i've
0:16:06
heard like um haskell people are trying
0:16:09
to use haskell in a lot of security and
0:16:10
network security side of things now
0:16:13
which is good
0:16:14
yeah
0:16:15
um they're apparently used in facebook
0:16:17
spam filter that's so good that you
0:16:19
didn't even realize that facebook had a
0:16:20
spam filter yeah
0:16:23
first of all i actually didn't know but
0:16:24
cool that's actually good
0:16:27
nice
0:16:27
but i guess moving on to
0:16:30
our
0:16:31
first 15 minutes we dedicated to
0:16:33
functional programming let's move on
0:16:35
from that
0:16:36
but i guess next we kind of want to talk
0:16:38
about your experiences at the rmit
0:16:40
programming club and um
0:16:42
why do you think it's important to join
0:16:44
these things in the university level
0:16:46
ah the rmit programming club
0:16:49
um well yeah with with me at the rmit
0:16:52
programming club i i definitely enjoy
0:16:54
um trying to explore the edge of what's
0:16:58
not uh like
0:17:00
really taught within school uh within
0:17:02
school because i think originally in
0:17:04
rmit i don't think even python was
0:17:05
taught which is a little bit concerning
0:17:07
so we did a lot of a lot of python
0:17:08
workshops um but i think right now
0:17:11
there's a lot of opportunity to be
0:17:12
explored within within rust
0:17:14
um and react because i think react is
0:17:17
taught like once and i know i know i i i
0:17:21
like to call on react sometimes
0:17:24
um
0:17:26
but i i think it's it is an important
0:17:28
skill that people need to learn if they
0:17:30
want to get out in industry um so i
0:17:32
think it's it's incredibly important to
0:17:34
get involved in the different types of
0:17:36
initiatives like even you kartik i know
0:17:38
you're guilty of running some fantastic
0:17:40
aws workshops um
0:17:42
and like to be able to have
0:17:45
that good understanding of cloud
0:17:48
um
0:17:48
honestly
0:17:50
i'm not gonna lie
0:17:51
i i feel like that if you just kind of
0:17:54
put your effort in in learning what's
0:17:56
actually kind of required of you rather
0:17:58
than what's kind of put in front of you
0:18:00
in the assessment sheet you're going to
0:18:02
go way further um yeah and i'm pretty
0:18:05
i'm i although i haven't really looked
0:18:06
into the space because i don't really um
0:18:08
i haven't
0:18:11
got hired yet um i'm pretty sure that
0:18:13
that's the type of stuff that people
0:18:14
would be looking for
0:18:16
yeah
0:18:19
i could see the pain in your face when
0:18:20
you said react is good
0:18:23
i mean like no it's necessary reactors
0:18:26
and sound as well
0:18:28
i think react is a fantastic step
0:18:29
forward i could um for context um
0:18:33
i think i've been posted with saying
0:18:35
that react is the worst thing that's
0:18:37
happened to web development please
0:18:38
change my mind and i i disagree with my
0:18:41
own my old sentiment back then um i
0:18:43
think reactors is is pretty good it's a
0:18:46
step forward but that's missing a couple
0:18:48
of features that i i
0:18:50
would prefer
0:18:52
to say you report there is less
0:18:54
that was my first impression of you
0:18:57
what what the react yeah
0:19:00
i mean it's good it's good to be
0:19:01
opinionated i guess at least
0:19:03
if you can hold your physician but yes
0:19:05
i'm often teased about that one
0:19:07
yeah
0:19:10
if if anyone's curious about um
0:19:13
that
0:19:14
i i prefer elm over react
0:19:17
which is what i use in my applications
0:19:19
um simply because the state management
0:19:21
is so much better um and there's so much
0:19:24
opportunity using functional programming
0:19:26
languages for using from the function
0:19:28
functional compound uh points yeah
0:19:32
right
0:19:33
well then do you wanna take over and um
0:19:37
go ahead or do we want to um go ahead
0:19:39
and work on this stuff
0:19:41
um
0:19:42
unless
0:19:44
you've got more questions for sam i just
0:19:47
had one question um in the middle so
0:19:51
as in how did you guys meet as in the
0:19:54
first
0:19:55
time i'm
0:19:57
just be curious
0:19:58
what carter can i
0:20:00
yeah yeah
0:20:01
i think i think kartik remembers the
0:20:03
first time we met i think
0:20:05
what happens when i'm a club executive
0:20:06
is i meet a lot
0:20:08
actually i think
0:20:10
did we meet um was it the first was also
0:20:12
the welcome event i'm guessing
0:20:14
yeah it was uh like the yeah welcome the
0:20:16
x lamps
0:20:18
i don't remember if we expect but you
0:20:20
had a
0:20:21
thing um
0:20:23
um
0:20:23
some sort of game
0:20:25
on
0:20:26
some sheet of paper i forgot what is it
0:20:28
was it underneath the um was it on like
0:20:31
the rusu room underneath the level yeah
0:20:33
yeah yeah oh yeah i i wrote a paper
0:20:36
program i think uh where everyone had to
0:20:40
um had one role
0:20:42
was that it yeah yeah yeah i still don't
0:20:44
understand what it was if you want to
0:20:46
explain so what i did is that i i wrote
0:20:48
a program
0:20:49
by getting giving instructions to people
0:20:52
about like when you get this message do
0:20:53
that
0:20:54
um
0:20:55
and they had to try and work out a what
0:20:57
the program was and
0:21:00
if there was a bug within the program
0:21:02
and how to fix it
0:21:04
ah it was so good
0:21:06
everyone was confused
0:21:09
i thought it was a little bit more
0:21:10
obvious it was calculating fibonacci
0:21:11
numbers um but as it turns out um i was
0:21:14
a lot
0:21:20
me were thinking of doing like a youtube
0:21:22
video in which we just go to melbourne
0:21:24
central with a whiteboard
0:21:26
uh with a program return on it something
0:21:29
like fibonacci only and
0:21:31
we're going to ask people to debug it
0:21:33
for like 10 bucks or something
0:21:40
and that might go viral as well but
0:21:43
please sam
0:21:46
if you come we might
0:21:48
lose a lot of money
0:21:50
oh yeah
0:21:52
i think honestly the only people that
0:21:53
are coming do that would be the people
0:21:55
that can do it
0:21:56
you'd probably lose money either way
0:22:03
yeah
0:22:04
it doesn't matter
0:22:08
true yeah it might be interesting we'll
0:22:10
kind of see what the
0:22:12
public intellect is about programming so
0:22:16
yeah absolutely the thing we should
0:22:18
really organize it and if sam can
0:22:21
join us as well
0:22:23
that'd be fun
0:22:24
phenomenal yeah i think one of the other
0:22:28
hobbies that i have is i absolutely like
0:22:30
making extremely esoteric games um and
0:22:33
getting other people to go through the
0:22:34
pain of playing them which is great
0:22:38
i i designed an economic concept and for
0:22:40
my birthday i got everyone to to walk
0:22:43
around and run a sim
0:22:45
in person simulation of it um and by the
0:22:47
end of it they were very tired
0:22:51
wow
0:22:53
that's incredible though now i like you
0:22:56
um
0:22:57
as in i can tell how your brain
0:23:01
works as you're
0:23:02
really creative and you're full of
0:23:05
creative ideas so i really like
0:23:08
that about you
0:23:11
and i'm
0:23:13
still working on that part of mine so
0:23:15
hopefully
0:23:17
i'll get there one day
0:23:20
yeah but yeah but it's something i still
0:23:23
get didn't get a reply on if you're
0:23:25
joining us for the video or not
0:23:28
i'm not going to leave that
0:23:32
here we go
0:23:33
you just kind of diverted the questions
0:23:35
yeah i can tell
0:23:39
okay that's a yes
0:23:40
okay
0:23:44
cool um mr
0:23:46
do you want to start with the
0:23:47
architecture of the experts that will be
0:23:50
discussing
0:23:51
and just um
0:23:53
take
0:23:53
what sam
0:23:55
thinks about it
0:23:56
yeah yeah i'd be very i'm a massive
0:23:58
architecture person
0:24:00
ah i have i have the staff
0:24:02
which has been named by another person
0:24:03
after me
0:24:05
wow
0:24:06
interesting
0:24:08
it's not the stack you want to work with
0:24:11
but it's great i love it
0:24:13
i don't think it's the same we want to
0:24:15
work with
0:24:18
[Music]
0:24:23
all right this is the point where i keep
0:24:26
keep quiet and you guys carry on
0:24:30
we want you to
0:24:33
all right brilliant so i'll just shave
0:24:35
my screen and um i will open up that
0:24:38
really rough architectural diagram
0:24:41
and um we can
0:24:44
go for it with time as well
0:24:46
just
0:24:47
um
0:24:48
okay share my screen with you guys
0:24:52
all right
0:24:53
come on
0:24:58
okay cool that's crawl
0:25:09
oh okay and i'll just open that up in
0:25:14
[Music]
0:25:26
i
0:25:28
i really hope i did
0:25:30
i i have it first of all um if oh no i
0:25:33
don't
0:25:35
i don't know
0:25:36
i must have it just give me a minute and
0:25:40
um
0:25:43
if you want you can do like a physical
0:25:44
whiteboard
0:25:46
okay yeah there we go
0:25:48
oh we got it
0:25:49
[Music]
0:25:51
oh you're all good fantastic why don't
0:25:53
we go there
0:25:54
oh nice cool um so i'll just
0:25:58
zoom in a bit
0:26:00
are you guys
0:26:02
able to see it properly yeah yeah
0:26:06
okay
0:26:07
so
0:26:09
do you want to go through this yeah yeah
0:26:12
sure
0:26:13
okay um
0:26:14
so we have three approaches um
0:26:17
so for
0:26:18
context purposes we are using a fetch
0:26:20
api system for the middleware
0:26:23
um
0:26:24
and for back-end as we mentioned earlier
0:26:26
we're using express
0:26:27
uh apis
0:26:29
um for the back-end we just have some
0:26:31
basic functions right now which is like
0:26:34
get bored or update board or insert
0:26:36
insert board delete board get notes or
0:26:39
some some stuff like that
0:26:41
so
0:26:42
um
0:26:43
i guess
0:26:44
to really explain what's happening is um
0:26:47
i'll take an example of get bored
0:26:51
um so how get bored essentially works is
0:26:55
um
0:26:56
i guess i need to share my screen for
0:26:58
that
0:26:58
okay yeah you do that and um
0:27:02
you can stop sharing my screen
0:27:04
yep
0:27:05
see my screen
0:27:06
yes
0:27:08
alrighty i guess i'll just explain how
0:27:10
get boot works through some api calls
0:27:15
right
0:27:16
so
0:27:17
originally our get bored used to work um
0:27:20
[Music]
0:27:22
second
0:27:24
all right yeah
0:27:25
so originally our get bored used to work
0:27:28
with the id this is the only function
0:27:30
only controller which we changed to work
0:27:32
with the board name
0:27:35
but um
0:27:37
so this kind of means that um
0:27:40
appending the url in the fetch api
0:27:43
either we do it with the board id or
0:27:45
either we do it with the board name
0:27:47
um so initially when we designed the
0:27:49
whole thing we did it using the board id
0:27:52
that meant that
0:27:54
instead of k6 here the board id should
0:27:56
come here then only it will fetch the
0:27:59
stuff
0:28:00
so the first approach
0:28:02
we kind of thought was that
0:28:05
instead of doing this why not we just
0:28:07
change everything in the back end to
0:28:09
work with the board name
0:28:11
so that was our first approach
0:28:13
um
0:28:14
on which we kind of really give it a
0:28:16
thought and we started working on it
0:28:18
that's why get bored works with the
0:28:19
board name and not with the board id
0:28:22
but then again it kind of came to our
0:28:24
mind that there must be easier way to do
0:28:25
it because we don't have to go ahead and
0:28:27
change the whole back in architecture to
0:28:29
just
0:28:30
make um fetch apis work
0:28:33
and it only makes sense that it works
0:28:35
with the id because board name could be
0:28:37
redundant and
0:28:39
there could be reputation in board names
0:28:41
that's not a big problem
0:28:43
so the second approach um
0:28:46
we kind of came across was to
0:28:49
create
0:28:50
a function called
0:28:52
um get bold
0:28:56
id which passes the name which passes
0:28:59
this
0:29:00
and gets this to the middleware
0:29:02
and when it gets back to the middleware
0:29:04
then it can call
0:29:05
a get function or a delete function or
0:29:08
insert board function whatever function
0:29:09
roll call
0:29:11
we can just append this
0:29:13
um board id
0:29:15
in the url
0:29:16
after getting the board id
0:29:19
after passing the board name to the
0:29:21
backend
0:29:22
um
0:29:23
so that was the um current approach
0:29:26
which we were trying to think
0:29:29
um sam are you on the
0:29:31
same page till now
0:29:33
yep i think i understand
0:29:35
all righty so um third and a bit of
0:29:38
creative approach i guess
0:29:40
which we kind of trying to take was that
0:29:44
so the problem with the second approach
0:29:45
was that
0:29:46
we are traveling from the fetch api to
0:29:49
the back end twice which means that
0:29:51
first from the fetch api we go to the
0:29:53
back end saying that okay here's the
0:29:55
board name give me the board id and when
0:29:57
you get the board id then you append it
0:29:58
to
0:29:59
whatever fetch api call you want to do
0:30:01
get or delete border any anything you
0:30:04
want to do so that way you're hitting
0:30:05
the back end twice and you're hitting
0:30:07
the database twice
0:30:08
um third approach which we kind of came
0:30:11
up with was that
0:30:13
um
0:30:14
you go to the back end with a thing
0:30:16
called action in the body that action
0:30:19
could be a delete or get or whatever it
0:30:22
is
0:30:23
um you
0:30:24
go to the back end um there will be a
0:30:26
specific variable in the json in the
0:30:28
body call action and it will specify
0:30:31
what action needs to be done
0:30:33
and in the back end um when it goes
0:30:35
it'll just pass the board name and it'll
0:30:37
just do the action uh in the back end
0:30:40
and see what
0:30:41
um
0:30:42
uh what controller it's relating to
0:30:45
let's say the action thing said delete
0:30:47
so i'll just go to
0:30:49
the delete controller in the back end
0:30:51
and it'll do the thing
0:30:52
[Music]
0:30:54
i guess accordingly and it'll have a
0:30:56
response as well
0:30:57
if it's a get function the response
0:30:59
would be the
0:31:01
json
0:31:02
board or else if it's a delete or
0:31:04
something that we can always respond
0:31:06
with the
0:31:07
status
0:31:08
so if you have any questions sam or even
0:31:11
zen um before we start discussing i
0:31:13
guess we can uh talk about the questions
0:31:16
first
0:31:20
i mean like actually now that i i've
0:31:21
heard of those i'm like oh there's a
0:31:24
so can i ask um the first question would
0:31:26
be with the second option you said that
0:31:29
you had an api endpoint that got the
0:31:32
board id given a board name is that
0:31:34
correct
0:31:36
yeah so you create like a get function
0:31:38
from the back end
0:31:39
yeah um but what i was surprised by is
0:31:43
that i'm surprised the fact that the
0:31:44
front end knows the board name without
0:31:46
knowing the board id i would kind of
0:31:49
expect that on the request where they
0:31:52
find out about the board name
0:31:54
that they find also about the board id
0:32:02
i'll just
0:32:04
say that the fact that it already knows
0:32:06
the board name is because the user
0:32:10
types in the board names uh the board
0:32:13
name in the text box as in say for
0:32:16
example if you created
0:32:19
today a board name
0:32:21
called sam
0:32:23
one and tomorrow you want to go and get
0:32:27
all uh
0:32:28
the
0:32:29
that board
0:32:30
you would just write the name as in sam
0:32:33
one and
0:32:34
then press
0:32:36
get and then
0:32:38
that's how it already knows the
0:32:41
board name already
0:32:43
oh does that make sense yeah
0:32:45
yeah i understand so the reason why you
0:32:47
don't have an id is because it's not
0:32:49
even in the back end yet
0:32:51
is that correct
0:32:53
no it is
0:32:55
insert the board it is
0:32:58
so yeah so when you insert the board um
0:33:02
okay a bit for simple terminology when
0:33:05
you create a board as in a new board
0:33:08
that is given a unique identifier
0:33:14
yeah
0:33:16
let's give it a unique identifier
0:33:20
okay so
0:33:21
yeah um i guess if you don't have any
0:33:24
questions do you uh any of you guys
0:33:26
no
0:33:27
uh i don't know about samba i'm good
0:33:33
i wonder if i could draw this somehow
0:33:35
i like
0:33:37
i like this
0:33:39
the board action
0:33:41
i guess
0:33:45
i think what might do we
0:33:47
might invest in one
0:33:50
context
0:33:57
i'll share my screen what i'll do is
0:34:00
i'll open up
0:34:01
a new drawing on chrome canvas
0:34:06
which i've got a fantastic let's do this
0:34:10
ask sound design
0:34:12
no thank you
0:34:14
no
0:34:14
um okay let me just just show my screen
0:34:17
first screen as easy as the two monitors
0:34:20
yeah
0:34:22
okay
0:34:23
can you see my screen
0:34:25
um
0:34:26
yep uh yes now we can
0:34:29
yeah so i'm imagining oh come on let me
0:34:33
draw oh wow you're not letting me draw
0:34:35
you're just okay
0:34:37
um i'm imagining you have two parts you
0:34:39
have a front end and you have your back
0:34:41
end so this is the this is the back
0:34:44
yep i have my pens where but this is
0:34:47
i'm using by mouse right now
0:34:50
okay so i've got a front and your back
0:34:52
end so for here at this point
0:34:55
you've created something you've created
0:34:57
your board is that correct
0:35:00
so for them you need to send to the back
0:35:02
end
0:35:03
the fact that you've created the board
0:35:05
do you need to do that
0:35:07
to insert it in the db yes
0:35:11
yes okay
0:35:13
um so in that case you would probably be
0:35:15
doing some sort of post request
0:35:18
yeah
0:35:19
correct yeah
0:35:21
so the thing is usually i think the
0:35:24
standard way of doing it would be you on
0:35:26
the on the
0:35:28
the response of the get request you
0:35:30
would include the id
0:35:36
um
0:35:37
so what's your name
0:35:39
but we are not um
0:35:42
get request of what like what are we
0:35:44
getting sorry this is a post request so
0:35:46
this is the creation of the the creation
0:35:48
of the board and in the response of the
0:35:51
post request you include the id and then
0:35:53
that means that you have a board and say
0:35:57
you want to get a board
0:35:58
um you want to get all the boards or
0:35:59
something a get a board you you can get
0:36:01
it by an id because you have that id
0:36:05
so you just send it the id
0:36:08
in a get request
0:36:10
is that
0:36:10
correct yes we can do that
0:36:13
that is
0:36:15
gonna imply changing a bit of stuff but
0:36:18
i think i get what you mean
0:36:20
yeah and then that way you don't need
0:36:22
any get bored by id
0:36:26
ah so
0:36:27
we don't need that overall
0:36:30
name sorry you just need to get bored
0:36:32
from id
0:36:34
right right right right right see yeah
0:36:37
yeah something makes me feel like that
0:36:38
you're missing this part where when on
0:36:40
the return you don't give the id back is
0:36:43
that correct
0:36:44
yeah so for now you're just having a
0:36:46
response status for that
0:36:48
yeah
0:36:51
so that that's the more classical way
0:36:53
that i'd imagine that you'd go about
0:36:54
doing it
0:36:56
yes i guess uh you can
0:36:59
look into this um i guess
0:37:01
one thing which it
0:37:03
kind of also gave me an idea was that
0:37:06
rather than having to type the board
0:37:08
name we can have like a drop down list
0:37:11
and we can have like uh the name of all
0:37:13
the boards and
0:37:15
when we have the name of all the boards
0:37:17
they are gonna relate to
0:37:19
a board id
0:37:21
so when the user comes back and logs in
0:37:23
again we can just use that
0:37:25
drop-down list which is going to have
0:37:27
the board value but every board value in
0:37:30
the front end is going to relate to a
0:37:31
board id so i guess we don't have to go
0:37:33
back to the back end again
0:37:35
so no yeah i guess yeah yeah
0:37:39
yeah i'd agree to that
0:37:43
would do am i silly do you think that
0:37:45
that would be a more reasonable idea or
0:37:47
[Music]
0:37:48
no i think that's pretty good we can
0:37:50
give it we can give it a shot um
0:37:52
but also it has a valid point here if
0:37:55
you want to look into it yeah just how
0:37:57
does that work if you haven't in boards
0:38:00
yeah
0:38:02
um i'm curious why wait so you're saying
0:38:06
that say what i have a million boards
0:38:09
um and
0:38:11
what okay
0:38:13
how is it any different a million boards
0:38:15
i don't quite understand the question i
0:38:17
think if you had a million boards what
0:38:18
you would do
0:38:19
is that you would you would have like a
0:38:21
get all boards request and then you
0:38:23
would
0:38:24
page that request
0:38:30
at least what he's trying to ask is that
0:38:32
about the drop down thing but um
0:38:35
yeah
0:38:36
yeah so what we can kind of do is that
0:38:39
either we can have like a
0:38:42
search thing uh when we are trying to do
0:38:45
it like you can go ahead and search the
0:38:47
board and then click it
0:38:50
um
0:38:51
that's something
0:38:52
we could also get the boards based on
0:38:56
the user
0:38:58
id yeah yeah yeah yeah for sure
0:39:01
yeah yeah
0:39:03
yeah
0:39:05
all righty yeah that makes sense and i
0:39:09
really like sam's approach that he's
0:39:12
not he's been really productive with the
0:39:15
connections so hitting the db once and
0:39:19
then in the same request he's
0:39:22
gained the
0:39:24
id as well i think that should be the
0:39:26
approach that we um
0:39:28
should
0:39:29
go for
0:39:30
what do you think can't take
0:39:32
yeah yeah for sure um that's true i
0:39:34
guess
0:39:35
uh utilizing the connections um
0:39:39
um andre says that that means you need
0:39:41
to tie all the users to the board in the
0:39:43
first place um is in scrambler public um
0:39:46
i guess that's one of the announcements
0:39:48
which we are trying to make right um
0:39:50
having kind of like a
0:39:53
login sort of architecture but not
0:39:54
really login like a code based
0:39:56
architecture in which you're gonna have
0:39:58
a code and then only you're gonna
0:40:00
kind of get to access some boards
0:40:02
so yeah that's one of the announcements
0:40:05
so very good you can
0:40:09
go ahead please
0:40:10
that's right
0:40:19
i think one thing that might be worth
0:40:21
considering i don't i don't want to
0:40:23
completely bend the architecture of your
0:40:25
application as soon as i just i just
0:40:27
come in but um
0:40:29
but i when i build applications i like
0:40:31
building them offline first um and what
0:40:33
that means is that
0:40:35
uh you use
0:40:37
local storage as much as possible so
0:40:40
that you create a fully working
0:40:41
application that works just on on like
0:40:45
the user's computer without accessing
0:40:47
the internet it means you can also
0:40:48
create stuff like progressive web
0:40:49
applications where you can access your
0:40:52
website without going online which is
0:40:54
fantastic
0:40:55
um but then when you log in you offer
0:40:57
those sync functionalities and i think
0:40:59
that's both incredibly easy to implement
0:41:01
um
0:41:02
and
0:41:03
pretty powerful
0:41:05
i think there's a word for it um
0:41:07
i can't remember it
0:41:09
offline
0:41:11
not on cloud
0:41:17
but i guess we are kind of too late for
0:41:18
that um we both have you you might be
0:41:21
victimized that
0:41:22
yeah we both are kind of like too cloud
0:41:24
oriented um
0:41:25
[Music]
0:41:27
like we just want to get stuff on the
0:41:28
clouds
0:41:30
yeah fair enough
0:41:32
yeah
0:41:35
um
0:41:37
so
0:41:38
um i think you should work on a twitter
0:41:40
clone i asked because it seems really a
0:41:42
great project to learn something yeah i
0:41:44
think that's a that's a good idea um
0:41:46
yeah
0:41:47
that'd be awesome though it could be a
0:41:49
second project
0:41:51
uh
0:41:52
to your dot-com
0:41:54
username for example person
0:41:56
look up by string
0:41:58
not by id yeah yeah okay
0:42:05
[Music]
0:42:14
um i guess um
0:42:16
but it also kind of comes down to how
0:42:19
crumbler.ca was um designed initially
0:42:22
when we took it as an open source
0:42:24
project
0:42:25
um i guess implementing that would also
0:42:28
mean changing a lot of stuff
0:42:31
so basically
0:42:34
i think
0:42:35
the route we are
0:42:37
going to as in
0:42:39
enhance it is by adding a login as well
0:42:43
yeah and um we won't really
0:42:46
allow these shoots just any anonymous
0:42:49
user
0:42:50
to go in and
0:42:52
create the board that's not going to
0:42:54
happen
0:42:55
so
0:42:56
paul
0:42:57
announcement is that
0:42:58
is the implementation of the
0:43:01
user hierarchy as well
0:43:03
yeah yeah for sure
0:43:05
um
0:43:06
i guess uh if we are kind of um but
0:43:10
um i guess what sam said um
0:43:12
when we get the board back yeah while
0:43:15
posting then what happens okay let's say
0:43:17
we i want to call the delete board
0:43:19
function
0:43:20
um
0:43:21
i have the board let's say this is just
0:43:23
one transaction like one login i i'm not
0:43:26
coming back so
0:43:27
does that mean i have the board locally
0:43:30
on my
0:43:31
front end
0:43:35
well yeah you if you you bought likely
0:43:37
on your front end um and i think the
0:43:39
golden rule
0:43:40
is that absolutely nowhere except
0:43:44
that
0:43:44
the front-end interface do you actually
0:43:46
reference the name you are
0:43:48
yeah in every other place you call up id
0:43:51
so then you send the id over to the
0:43:53
delete endpoint for boards
0:43:56
and then that should delete the board
0:43:57
and then purge it from your front end
0:43:59
right yeah but then okay
0:44:02
i guess uh the one transaction is sorted
0:44:04
out when um when you're posting the
0:44:06
board and doing all sorts of delete and
0:44:09
other stuff but what happens when you
0:44:11
come back um you have a
0:44:14
like kind of id or whatever it is
0:44:16
then what happens when you come back how
0:44:18
are you gonna access this board id
0:44:21
come back where
0:44:23
um after closing the session and you
0:44:25
want to access your board next day
0:44:27
yeah oh then
0:44:29
we would just get
0:44:31
all the boards based on the user
0:44:35
as in they'll log in
0:44:37
and then they will drop down and
0:44:40
say these are all your boards which one
0:44:42
would you like to choose
0:44:44
and
0:44:46
we
0:44:46
will already have the board ids of all
0:44:50
of them but we won't necessarily display
0:44:54
the
0:44:55
ids as in the ids can be hidden
0:44:58
but only the names are visible
0:45:01
does that make sense
0:45:02
yeah so i guess after the login function
0:45:05
you are saying but i guess that's also
0:45:08
um i don't think that's the time for
0:45:10
that but
0:45:11
at some point in the future we might
0:45:13
have to go back to the back end and add
0:45:15
the
0:45:16
what user does the board belong to like
0:45:18
some kind of relation
0:45:20
um
0:45:20
which is one to many of course but
0:45:23
um
0:45:24
we might have to go back i mean we have
0:45:25
to uh for that
0:45:30
which means you would have to do two
0:45:32
separate transactions is that what
0:45:34
you're saying
0:45:36
um
0:45:37
so i guess
0:45:38
initially we weren't looking on that
0:45:40
side of things that do
0:45:42
initially like the whole project was
0:45:44
like kind of like an open source thing
0:45:46
that anyone could access um stuff
0:45:49
but if we are thinking to move towards a
0:45:52
bit more um
0:45:54
um login oriented side of things then we
0:45:56
might have to
0:45:57
um set some schema and that's some kind
0:45:59
of relation between the users and the
0:46:01
boards and change that in the back in
0:46:03
express as well
0:46:09
right
0:46:11
yeah yeah it does
0:46:13
but i guess for now um
0:46:15
you're right we can do that by get all
0:46:17
boards
0:46:18
um
0:46:20
thinking we are dealing with only one
0:46:21
user
0:46:24
what what do you say sam
0:46:26
i i mean i i've coded applications that
0:46:29
are kind of like this as well but yeah
0:46:31
obviously you have users and those users
0:46:33
have collections of objects um
0:46:36
i think
0:46:38
honestly yeah you sound like yeah we're
0:46:40
not quite yet up to the part where we're
0:46:42
doing authentication is that correct
0:46:44
no no no not even yeah authentication is
0:46:46
a nightmare in and of itself and
0:46:48
obviously when you authenticate you need
0:46:50
yeah you hold the token in local storage
0:46:52
you refresh it you access it you gain
0:46:55
all your data um on by just getting
0:46:58
calling get on whatever the resource is
0:47:01
um
0:47:02
so
0:47:02
it depends what path you want to go down
0:47:05
and i feel like if you really want to
0:47:06
worry about that right now
0:47:08
but you probably do actually it might
0:47:10
even just be too easier to just do an
0:47:12
entirely local application for starters
0:47:16
too late for that like i'm not gonna lie
0:47:18
too late man
0:47:20
too late i think it's true
0:47:21
i think the amount of time and pain that
0:47:23
you will go through going through
0:47:25
getting an authentication set up if you
0:47:26
haven't done that before
0:47:28
will be i guess
0:47:31
we will only use
0:47:33
aws cognito for that so
0:47:35
um
0:47:39
yeah yeah so remember the um app which i
0:47:42
delivered the workshop
0:47:44
oh yeah that was on using
0:47:47
amplify correct
0:47:48
yeah but it used cognito as well but
0:47:50
yeah i mean it uses a
0:47:52
um
0:47:53
amplifier project
0:47:55
is this an amplified project as well
0:47:58
no no not yet i mean no okay
0:48:01
no no
0:48:05
but yeah um i guess uh if we want to do
0:48:07
it fully cloud we can
0:48:10
think about stuff like cognito but
0:48:12
i i also feel we are not quite there yet
0:48:15
it's good to talk about it but
0:48:18
um
0:48:19
i don't think there's any action which
0:48:21
we need to we are on that stage here
0:48:23
so
0:48:24
um then if you wanna should we go ahead
0:48:27
and change how sam said the
0:48:30
um
0:48:31
post request or is there anything we
0:48:33
want to talk about in the architecture
0:48:36
uh
0:48:37
i think if you're taking sam's approach
0:48:41
which um looks like would be up because
0:48:43
i'm pretty pretty happy with that um
0:48:47
and we can actually
0:48:48
continue to do the
0:48:51
implementation as in changing the
0:48:53
existing architecture to suit those
0:48:56
needs but directly
0:48:58
yeah but i guess one thing i also want
0:49:00
to discuss is that so here's the deal
0:49:02
sam on every board
0:49:05
is gonna have a lot of notes like by a
0:49:07
lot like it could be a lot as well um
0:49:10
so when you are inside a board you're
0:49:12
gonna start posting notes
0:49:14
and
0:49:15
when you post a note then do you want to
0:49:17
do the same thing do you want to get the
0:49:19
id back because
0:49:21
you're going to post like let's say 100
0:49:23
notes
0:49:24
then you won't be able to manage um
0:49:28
the ids of the notes so in that
0:49:30
situation what do you think it's a is a
0:49:32
good approach
0:49:35
well a hundred notes is totally fine for
0:49:38
ids i don't think you'd have any trouble
0:49:40
with that
0:49:41
okay i mean like
0:49:45
wait what like what like you might need
0:49:47
to paginate if that's what you're
0:49:48
worrying about but
0:49:49
wasn't that sure
0:49:51
i guess i'm kind of worrying about how
0:49:53
you go if you're gonna use the ids then
0:49:55
to append in the url because it's going
0:49:57
to be a lot of notes and posting and
0:49:59
then returning
0:50:02
so you mean like the how do you get
0:50:05
um all of the notes if you've stored and
0:50:08
there's an enormous amount of ids you
0:50:09
don't just want to go get slash bang
0:50:12
a list of 100 ids massive url um yeah
0:50:15
what you would do is that you would just
0:50:17
have
0:50:18
um you would have a resource course that
0:50:20
is on board
0:50:22
slash board id
0:50:24
slash notes and that notes resource you
0:50:27
just go get
0:50:28
and then that would return
0:50:30
all of the
0:50:31
yeah the notes wouldn't that i think
0:50:33
that's stuff so
0:50:34
[Music]
0:50:36
i think how sam you're saying that is
0:50:39
only if we want to get a particular as
0:50:42
in one note then only we can append the
0:50:46
id but if all the notes then
0:50:49
we don't append nothing we just do
0:50:52
a board id slash notes boom done
0:50:56
yeah exactly but i guess it also but
0:50:59
then one thing which we need to kind of
0:51:01
think about would be
0:51:02
let's say we are calling a delete node
0:51:04
fetch api call
0:51:06
how do you get your particular what's id
0:51:08
to call that
0:51:10
url and just do a delete
0:51:13
well so how did so you're deleting a
0:51:15
note say
0:51:16
yeah
0:51:18
yeah so what you would do
0:51:22
i think the front head would know what
0:51:24
board the note belongs to
0:51:26
so i think the front end would be able
0:51:28
to say here's the board id here's the
0:51:30
note id construct the url send a delete
0:51:32
request from the front end and then
0:51:33
you're done
0:51:35
like how do you oh all right okay so
0:51:38
that's what all right now i know what
0:51:39
you mean um so whenever the note is
0:51:42
displayed every node is kind of um
0:51:45
whenever it's displayed it's related to
0:51:47
a note id
0:51:49
yeah yeah yeah
0:51:51
all right i guess that's something which
0:51:53
we can turn the front end team as well
0:51:54
then
0:51:56
um we would have to
0:51:58
yeah
0:51:59
right you have a front-end team
0:52:02
yes we are saved
0:52:04
for people
0:52:06
oh fantastic
0:52:08
five now
0:52:10
yeah
0:52:11
yeah
0:52:13
so
0:52:14
some people are working on front ends
0:52:18
some are um doing the
0:52:21
back and stuff and then yeah
0:52:24
i'm the project lead
0:52:26
marvelous nice
0:52:29
yeah
0:52:30
[Music]
0:52:31
so
0:52:32
i think i'm really happy with um
0:52:36
all the points that's
0:52:38
um
0:52:39
essentially highlighted and it really as
0:52:41
in
0:52:42
indicates that that's efficient and um
0:52:46
we're using all the res
0:52:49
sources
0:52:50
only to the point that we we need to and
0:52:53
none
0:52:55
extra
0:52:56
what's your ranking content
0:52:58
yeah yeah i guess um let's do that
0:53:01
um
0:53:02
i guess uh for now we just need to kind
0:53:05
of see if all the
0:53:07
get notes and um core function are
0:53:09
working and not really worry about how
0:53:12
they're gonna be implemented yeah i mean
0:53:14
we are worrying about that but not in
0:53:16
the sense that how in a particular user
0:53:18
story it will be implemented
0:53:20
um
0:53:21
but yeah let's do that um we have like
0:53:24
seven minutes left yeah
0:53:26
all right
0:53:27
let's do that i'll just uh so i would
0:53:30
have to
0:53:32
change
0:53:33
the
0:53:35
backhand a bit isn't it
0:53:39
yeah
0:53:40
what do you mean
0:53:49
[Music]
0:53:55
that's some humor there
0:53:59
all right um i'm going to share my
0:54:01
screen
0:54:03
viable product yeah
0:54:05
most valuable product
0:54:08
or
0:54:09
most valuable programmer i like that
0:54:12
yeah yeah i guess
0:54:13
i do have a as a point here what's the
0:54:16
least work
0:54:17
um
0:54:20
right
0:54:21
um
0:54:25
[Music]
0:54:32
so i think um what we need to as in
0:54:35
backtrack a bit there what do we
0:54:38
need
0:54:39
to get done in
0:54:41
in order to get the mvp working up
0:54:45
yeah
0:54:46
yeah i mean um so i think what andre is
0:54:49
trying to say is that
0:54:50
um there's a thing when in scrum it's
0:54:53
called like um sashmi slicing
0:54:56
um
0:54:57
i don't know if sam was in you have
0:54:59
heard about it or even andre i have that
0:55:02
that's just a way of um developing in
0:55:05
the sense that you release small bits of
0:55:07
slices so i guess what he's trying to
0:55:09
say is that we need to
0:55:11
what's the basic functionality um
0:55:14
you can work and then look for
0:55:17
what's coming
0:55:19
yeah great
0:55:21
could i make a suggestion on this front
0:55:24
yeah sure
0:55:25
i think this is the third time i made
0:55:26
this suggestion today um no but no
0:55:31
it's a bit evil um i i um i quite
0:55:35
strongly feel
0:55:36
that
0:55:37
um
0:55:38
usually when you build a front end
0:55:41
you
0:55:42
usually
0:55:43
create a
0:55:44
local storage mock of the back end
0:55:47
anyway to do things like integration
0:55:49
testing or unit testing or things like
0:55:52
that yeah
0:55:53
doing that
0:55:54
yeah so
0:55:56
i would say that if you can mock the
0:55:59
back end
0:56:00
with local calls
0:56:02
then having that would create a local
0:56:06
application
0:56:07
and i think that that would make
0:56:10
the minimum viable product without
0:56:12
having to worry too much about a back
0:56:14
end
0:56:15
yeah i guess we can do that so what we
0:56:18
used to do is we used to set up a local
0:56:20
dynamodb and um it used to the app can
0:56:24
work perfectly on
0:56:26
local as well without using cloud so if
0:56:29
that's what you're saying like
0:56:30
that is a possibility even right now i
0:56:33
think
0:56:34
what sam is indicating and i could be
0:56:37
wrong
0:56:38
and correct me if i am that you're
0:56:41
saying to use
0:56:43
local
0:56:45
um
0:56:45
storage
0:56:47
which
0:56:48
would be a cache
0:56:49
of a system to create the
0:56:52
entire app on that and then when that's
0:56:56
all working then we can superstitious
0:57:00
storage am i right
0:57:03
well yeah as long as i said you can't
0:57:05
release a mock store it kind of is you
0:57:07
can't really lisa box store so what i i
0:57:10
didn't quite mean like local dynamodb um
0:57:13
i actually or a local back end i just
0:57:15
meant
0:57:16
running it in
0:57:18
entirely as web local storage using like
0:57:20
indexeddb or window.localstorage
0:57:23
um to completely
0:57:24
mock the back end
0:57:26
and then from that
0:57:28
you'd be able to um
0:57:29
[Music]
0:57:30
you'd have you'd interact with a fake
0:57:32
back end which would just interact with
0:57:34
itself
0:57:35
i guess store it inside the browser's
0:57:37
compute local storage and then that way
0:57:39
you could you could release that
0:57:41
um
0:57:42
and yeah but um
0:57:45
i think that's all already happening in
0:57:47
the
0:57:48
current
0:57:49
live version which is a scrum little
0:57:53
ca so the whole point of us working on
0:57:57
on this project i'm going to cut it
0:58:00
yeah no you're good
0:58:01
okay cool um the whole point of us
0:58:04
working on this is is because we want to
0:58:07
add some persistence storage so at the
0:58:10
moment what's happening with the live
0:58:13
version is that when the server goes
0:58:16
down
0:58:17
then all the data is
0:58:19
vanished
0:58:21
okay
0:58:22
but we
0:58:24
we want the huge users uh to have the
0:58:28
data even if anything happens to this
0:58:31
server
0:58:32
so that's when dynamodb comes in
0:58:36
as in as a persistence storage
0:58:39
yeah um i also kind of want to mention
0:58:42
that
0:58:42
um so we are working on like our project
0:58:46
managing skills as well and going back
0:58:48
is kind of not an option because we are
0:58:50
working in like uh
0:58:52
so
0:58:53
but i also want to also point out what
0:58:56
andre is kind of saying that we want to
0:58:58
work on the mvp and going back to local
0:59:00
storage is kind of
0:59:02
um literally going reversed rather than
0:59:04
trying to make make the viable product
0:59:07
but i also respect what you're trying to
0:59:08
say like that's the
0:59:10
kind of correct way to develop or won't
0:59:12
say like the credit i guess that's one
0:59:14
way to develop it in a efficient way if
0:59:18
we're going to put it
0:59:19
um
0:59:20
but if we want to look at also the
0:59:22
project management side of skills and
0:59:24
there are like a lot of people involved
0:59:25
in it and we want to look make the
0:59:28
least product which we can release as
0:59:30
soon as possible um
0:59:32
i guess it only makes sense that we um
0:59:35
um kind of stick it i know sam doesn't
0:59:37
like benson
0:59:40
but
0:59:41
oh yeah i can
0:59:43
i can
0:59:45
tell by his facial expression that he
0:59:47
really isn't he's really passionate
0:59:50
already about the thing that we're doing
0:59:52
and he wanna
0:59:54
turns things around but uh i i totally
0:59:58
respect your um
0:59:59
opinions and facts sam and
1:00:02
that is kind of as in the right and
1:00:05
efficient way
1:00:07
to do but i just really wish that
1:00:10
um kartik
1:00:12
brought you on the show as in two months
1:00:15
before
1:00:17
so we can actually
1:00:19
start off
1:00:21
from that method
1:00:22
in the first place yeah you know what i
1:00:24
mean yeah i really i really wish that
1:00:27
but um at the moment say
1:00:30
we have come this far that um if we go
1:00:34
back
1:00:35
it will probably be all the opposite
1:00:38
direction that we want to go
1:00:40
to achieve our
1:00:42
chief goal does that make sense
1:00:45
well that makes total sense
1:00:49
although i'm definitely going to make a
1:00:51
couple of pull requests in your rapper
1:00:53
for sure
1:01:08
yeah i could actually invite you as a
1:01:11
contributor in the red pope uh but yeah
1:01:13
let me know i will pull a request i will
1:01:15
be
1:01:17
cretaceous
1:01:20
yeah i appreciate that
1:01:25
i guess uh
1:01:26
that's time for today uh what do you say
1:01:28
then
1:01:30
yeah as you know i don't really want to
1:01:33
take more of um sam's precious
1:01:36
time he has
1:01:37
already has in given us alone more than
1:01:42
i was uh anticipating and
1:01:45
thank you very much sam as in your
1:01:47
knowledge about programming is way above
1:01:50
than me and
1:01:52
i totally respect all your opinions
1:01:56
yeah me too thank you
1:01:58
alrighty um i guess that was pretty good
1:02:02
chat with sam
1:02:04
and thanks again sam for coming in and
1:02:07
i guess uh
1:02:08
we had a good talk and the blog of this
1:02:11
uh stream would be really interesting to
1:02:13
see yeah
1:02:15
um
1:02:17
we blog every um stream
1:02:28
and maybe start implementing a couple of
1:02:30
controllers tomorrow
1:02:32
so yeah that sounds like a plan
1:02:34
yeah you have anything to add sam or zen
1:02:40
sam is itching to say something and i'm
1:02:44
waiting for his comment now
1:02:46
yeah
1:02:50
you know option three you said earlier
1:02:52
with the actions list
1:02:54
yeah if
1:02:55
you want to do something like that it's
1:02:57
called graphql and you should follow
1:02:58
those standards
1:03:00
that's
1:03:15
no really thank you for taking the time
1:03:17
to come on
1:03:18
and um
1:03:20
also for your
1:03:21
valuable opinions um
1:03:24
which
1:03:25
you sound really passionate about um and
1:03:28
i totally respect that and um
1:03:33
look forward to inviting you to
1:03:37
the show again if you're up for it and
1:03:40
um
1:03:40
uh you want to add
1:03:42
anything
1:03:45
i think thank you so much for
1:03:48
letting me be on the show and and
1:03:50
talking too much about my my unusual
1:03:52
architecture opinions um but yes
1:03:55
wow that's good i mean
1:03:57
on the bright side we are actually going
1:03:58
to implement it tomorrow so yeah
1:04:01
yeah that's that's that's a big
1:04:03
contribution and i was actually kind of
1:04:05
thinking then like when we release the
1:04:07
first public version of the app maybe we
1:04:09
can like kind of invite all these
1:04:11
special guests who came of course
1:04:14
yeah
1:04:16
i guess that would be great
1:04:18
but that's like three four months down
1:04:20
the line so
1:04:21
yeah yeah
1:04:22
but i mean
1:04:24
the time is very flying past so
1:04:27
um
1:04:28
it just seems around the corner already
1:04:31
yeah i guess in three days we're
1:04:33
completing 40 episodes
1:04:35
yeah wow i
1:04:39
still sugar
1:04:40
yeah sure okay guys contact
1:04:43
yeah i would i would be
1:04:48
yeah
1:04:49
cool
1:04:50
guys
1:04:51
um see you guys smaller than your dad
1:04:57
thanks for
1:04:58
coming again um
1:05:00
sam right guys uh thanks for
1:05:04
joining it and
1:05:06
we'll see you back is same time tomorrow
1:05:10
same tour
1:05:11
no a different task and same place right
1:05:15
catch you guys have a good night cheers
1:05:17
bye