WEBVTT

1
00:00:04.560 --> 00:00:06.800
Welkom bij aflevering 13 van CodeKlets.

2
00:00:07.500 --> 00:00:09.940
We zijn vandaag met z'n tweeën, Bernard en ik.

3
00:00:10.420 --> 00:00:11.300
Hallo Bernard.

4
00:00:11.520 --> 00:00:11.780
Hallo.

5
00:00:12.640 --> 00:00:13.220
Weer online.

6
00:00:14.320 --> 00:00:15.640
En dat gaat voorlopig niet veranderen.

7
00:00:16.140 --> 00:00:18.480
Dat gaan we misschien nog wel tien keer herhalen.

8
00:00:18.940 --> 00:00:22.540
Maar het is het nieuwe normaal, zoals ze dat zo mooi zeggen.

9
00:00:23.300 --> 00:00:24.220
Maar het is wat het is.

10
00:00:24.580 --> 00:00:26.620
Het wendt op zich ook wel een beetje.

11
00:00:27.140 --> 00:00:29.300
Dan moet ik wel zeggen, we hadden wat opstartproblemen.

12
00:00:29.300 --> 00:00:33.240
Dus dat wendt weer niet.

13
00:00:34.400 --> 00:00:41.340
Maar goed, om te beginnen ook nog steeds bedankt Salves voor het mogelijk maken van het opnemen

14
00:00:41.340 --> 00:00:42.300
via Zencaster.

15
00:00:43.760 --> 00:00:47.880
Zij sponsoren ons voor dat kleine deel, dus daar zijn we blij mee.

16
00:00:49.080 --> 00:00:53.020
En ik wil beginnen met wat huishoudelijke zaken voor CodeKlets.

17
00:00:54.600 --> 00:00:56.860
Dat is eigenlijk een beetje aandachtvragen.

18
00:00:57.700 --> 00:01:03.540
We zijn nu sinds een week of drie, denk ik, begonnen met een nieuwsbrief.

19
00:01:03.580 --> 00:01:04.820
Het begint aardig te lopen.

20
00:01:05.940 --> 00:01:07.380
Ik zou zeggen, check hem uit.

21
00:01:07.520 --> 00:01:11.460
Je kunt hem via codeklets.nl, kun je je daar op subscriben.

22
00:01:13.220 --> 00:01:17.540
En ja, het is gewoon een nieuwsbrief waar we gewoon wat nieuwtjes over software ontwikkelingen.

23
00:01:18.780 --> 00:01:19.940
Ja, die zetten we daarin.

24
00:01:21.100 --> 00:01:22.700
Dan hoef je zelf niet over alleen te googlen.

25
00:01:22.780 --> 00:01:23.750
Dat doen we dan voor je.

26
00:01:25.130 --> 00:01:29.670
De leukste artikelen kouden we voor.

27
00:01:30.310 --> 00:01:34.910
Maar ook conferenties, podcasts en dat soort zaken.

28
00:01:35.350 --> 00:01:37.630
Dus dat is eigenlijk stiekem een tip.

29
00:01:38.570 --> 00:01:40.770
Wij van WC1 tippen.

30
00:01:42.150 --> 00:01:47.530
Ja, dan is al een tijdje, zeg maar, het doel.

31
00:01:47.630 --> 00:01:49.990
Kijk, een podcast maken, dit klinkt een beetje raar.

32
00:01:50.090 --> 00:01:52.550
Maar dat kost natuurlijk ook stiekem ook wel wat geld.

33
00:01:52.550 --> 00:01:57.570
Dus je host de boel en wat tools die je gebruikt.

34
00:01:58.710 --> 00:02:02.910
En het is niet zo in Nederland dat je zomaar heel erg rijk wordt voor het podcast.

35
00:02:02.990 --> 00:02:05.810
Dat is ook volgens mij nooit de bedoeling geweest van CodeKlets.

36
00:02:06.490 --> 00:02:12.130
Maar je hebt altijd wel zoiets van, oké, nou, die aantal kosten zou wel fijn zijn als we die gedecht kunnen zien worden.

37
00:02:12.730 --> 00:02:18.310
Een van de modellen is om dan via bijvoorbeeld een Patreon een petje af voor vrienden van de show.

38
00:02:19.130 --> 00:02:22.290
Zodat de luisteraars eventueel zouden kunnen steunen.

39
00:02:22.290 --> 00:02:27.330
Nou, ik vind niet dat we daarover moeten gaan betelen, want dat vind ik wel een beetje raar.

40
00:02:28.150 --> 00:02:31.850
Maar we zitten erover na te denken om die mogelijkheid aan te bieden.

41
00:02:31.890 --> 00:02:38.890
Zodat mensen gewoon vrijblijvend eventueel de show kunnen, of de show, de podcast kunnen steunen.

42
00:02:39.590 --> 00:02:42.010
Nou, we gaan even kijken hoe dat loopt.

43
00:02:42.410 --> 00:02:44.790
Misschien heeft helemaal niemand zin erin en misschien wel.

44
00:02:45.450 --> 00:02:50.830
We zien wel en we moeten nog even nadenken welke vorm, want er zijn verschillende manieren om dat te doen.

45
00:02:52.210 --> 00:02:56.350
Ze hebben allemaal een voordeel en een nadeel, maar goed, even kijken wat het beste bij ons past.

46
00:02:57.250 --> 00:03:01.710
Mooi is dat ik op de achtergrond mijn kat hoor zeuren wat die wil schijnen.

47
00:03:01.950 --> 00:03:02.530
Die hoor ik ook.

48
00:03:02.890 --> 00:03:08.390
Ik vind het ook altijd heel erg vervelend als mensen in een podcast gaan vragen om steun en elke week weer.

49
00:03:08.650 --> 00:03:09.550
Maar ik snap het heel goed.

50
00:03:09.750 --> 00:03:14.690
Je wilt, ja, het is niet erg om kosten te maken, want het is hartstikke leuk om te doen.

51
00:03:14.750 --> 00:03:16.570
Maar je wilt niet dat je er arm van wordt.

52
00:03:16.650 --> 00:03:17.750
Nou, dat gaat ook niet gebeuren.

53
00:03:17.750 --> 00:03:25.230
Maar ja, ik denk als mensen überhaupt, als ik geld geef aan een podcast, dan is het meer een blijk van waardering.

54
00:03:25.690 --> 00:03:27.570
En dan denk ik niet aan de kosten die ze maken.

55
00:03:28.770 --> 00:03:30.450
Nee, oh zo. Ja, dat klopt.

56
00:03:30.590 --> 00:03:35.450
Dat is misschien ook wel een ding, want ik steun één podcast zelf.

57
00:03:36.510 --> 00:03:39.330
En dat was meer van ja, goed, ik vind het wel leuk.

58
00:03:40.810 --> 00:03:44.810
En ja, het is niet een steunbetaaling, vind ik een beetje raar, maar gewoon.

59
00:03:45.670 --> 00:03:46.310
Duimpje omhoog.

60
00:03:46.850 --> 00:03:48.250
Ja, precies een duimpje omhoog.

61
00:03:48.390 --> 00:03:49.910
Ja, precies wat je zegt.

62
00:03:51.190 --> 00:03:52.650
En dat is wel fijn.

63
00:03:54.010 --> 00:03:58.030
Ja, nou, ze zijn er in een podcast land zijn er stiekem best wel wat ontwikkeling in de laatste tijd.

64
00:03:59.950 --> 00:04:05.830
Iedereen roept natuurlijk podcasts hebben de toekomst en dat zal misschien ook wel zo zijn.

65
00:04:07.430 --> 00:04:15.650
Het was denk ik wel echt wel populairder, want je merkt ook dat in de gewone media steeds meer verwezen wordt naar podcasts.

66
00:04:15.650 --> 00:04:18.210
Dus dat is op zich heel positief.

67
00:04:18.750 --> 00:04:28.510
Wat ik een beetje argwaan bij heb, is dat er een aantal grote partijen zoals Spotify, nu inmiddels ook Sony, Apple,

68
00:04:28.570 --> 00:04:38.930
dat ze ook gewoon een soort van exclusieve contenten gaan maken, dat er een soort van platform specifieke content gaat komen.

69
00:04:39.550 --> 00:04:44.950
Nou goed, dat is nu helemaal zo, daar gaan wij echt niks tegen doen.

70
00:04:46.530 --> 00:04:53.430
Daar kun je gewoon iets van vinden. Maar goed, daar gaat het me nou niet eens om, want podcast is een heel simpel iets.

71
00:04:53.550 --> 00:05:03.510
Het is gewoon een RSS feed in XML met verwijzing naar een audiofaal, meer is het eigenlijk niet.

72
00:05:04.310 --> 00:05:11.990
Nou zo zijn ze begonnen, en er is ook een index ooit door Adam Curry, die kennen we misschien in Nederland wel.

73
00:05:14.150 --> 00:05:19.210
En zijn vriend Dave Weiner, die hebben samen zijn ze dat idee begonnen, en ze hebben ook een index gemaakt,

74
00:05:19.390 --> 00:05:24.110
zodat je daar via die index makkelijk allerlei verschillende podcasts kon vinden.

75
00:05:24.310 --> 00:05:32.110
Nou die index is uiteindelijk door Apple gekocht, ook allemaal nog niet spannend, want in principe deed Apple er nooit heel gekke dingen mee.

76
00:05:32.110 --> 00:05:40.990
Maar dat was en is nog steeds wel de de facto index, zeg maar, die dus eigenlijk de meeste podcast applicatie gebruiken om een podcast te vinden.

77
00:05:43.190 --> 00:05:49.770
Nou Spotify doet dat wel een beetje anders, die proberen dat allemaal op hun eigen platform te krijgen, wat ik vanuit hun begrijp.

78
00:05:50.530 --> 00:06:01.730
Maar inmiddels is Adam Curry ook bezig met het podcast 2.0, dus dan krijg je een nieuw formaat, wat extensies op het RSS-formaat.

79
00:06:06.130 --> 00:06:11.430
Zodat je ook bijvoorbeeld betalingen kunt doen. Dat is wel interessant, dat is niet per se voor ons, maar ik vind het wel interessant.

80
00:06:11.570 --> 00:06:18.370
Dan kun je zeggen, oké, gedurende het luisteren stort je, zeg maar, stream je geld.

81
00:06:18.470 --> 00:06:25.570
Dus dan zijn het bitcoins of lightning en dan is het wel, ja, dat is wel interessant.

82
00:06:25.770 --> 00:06:30.850
Maar dan kun je zien aan de hand van hoeveel geld mensen geven aan een bepaalde aflevering.

83
00:06:30.850 --> 00:06:35.730
Ja, zover komen ze dan in de aflevering of wat vinden ze wel of niet leuk.

84
00:06:35.910 --> 00:06:38.490
En daar ontstaat wel een interessante dynamiek.

85
00:06:38.650 --> 00:06:41.530
Dus daar ben ik stiekem wel een beetje nieuwsgierig naar voor wat er gaat gebeuren.

86
00:06:43.310 --> 00:06:51.010
Ik geloof niet dat wij op korte termijn dat gaan inzetten, maar het is wel interessant om dat een beetje in de gaten te houden en wat daar gaat gebeuren.

87
00:06:51.130 --> 00:06:57.290
Nou goed, dat is even een beetje een side note en wat ontwikkeling in podcastland.

88
00:06:57.290 --> 00:07:01.750
Ik wil er zelf nogal wat dieper in duiken, want mensen die zijn er nog wat mee bezig.

89
00:07:01.910 --> 00:07:03.830
Dus even kijken of we daar überhaupt iets mee moeten.

90
00:07:04.790 --> 00:07:09.150
Maar ook ook de techniek vind ik nog wel interessant, gewoon als nieuwsgierig developer.

91
00:07:10.870 --> 00:07:13.170
Dat is het podcast, de website.

92
00:07:13.290 --> 00:07:17.770
De website hebben we, ja, die is inmiddels een tijdje, de vernieuwde website zit inmiddels een tijdje in de lucht.

93
00:07:17.970 --> 00:07:20.290
Nou, ik vind het op zich oké, functioneel.

94
00:07:20.890 --> 00:07:27.090
Hij is nog wel wat kaal en daar kan nog wel wat, ja, misschien nog wel een likje verf overheen hier en daar.

95
00:07:27.290 --> 00:07:33.270
Nou goed, ik ben niet Mr. Designer, dus het was even even in elkaar gooien zodat de functionele tijd er is.

96
00:07:33.770 --> 00:07:37.610
Maar er ontwreekt ook nog wat content, we kregen van iemand te horen van hey,

97
00:07:37.670 --> 00:07:42.370
jullie hebben geen colofon, about us, zeg maar, pagina.

98
00:07:42.750 --> 00:07:47.730
Dus die moet er eigenlijk nog wel komen, zodat ze ook meer of meer weten van hey, we zijn, dus dat is misschien ook wel handig.

99
00:07:49.970 --> 00:07:54.650
Ja, dat is het, de website heb ik eigenlijk niet te melden.

100
00:07:55.210 --> 00:07:58.170
Qua huishoudelijke, huishoudelijke mededelingen.

101
00:07:59.230 --> 00:08:12.050
Maar laat het maar eens even hebben over de gast, want we hebben dit keer een gast die ervaring heeft met een onderwerp waar ik echt eigenlijk gewoon helemaal geen kaas van heb gegeten.

102
00:08:12.210 --> 00:08:16.150
Of ik heb het een beetje omzeld of verdrongen, ik weet het niet.

103
00:08:17.750 --> 00:08:24.010
Dat is één onderwerp, ander onderwerp weet ik niet, daar hebben we allemaal wel wat kaas van gegeten, dus daar ben ik ook wel in geïnteresseerd.

104
00:08:24.650 --> 00:08:27.130
Maar goed, de gast van vandaag is Wander Hille.

105
00:08:28.490 --> 00:08:29.410
Ja, hallo.

106
00:08:31.690 --> 00:08:35.930
Ik neem aan dat je poggermeren leuk vindt, want het zou weer gek zijn als je niet zou zeggen nee.

107
00:08:36.470 --> 00:08:45.030
Ja, nee, ik voel helemaal schildig natuurlijk, nee, ik vind het echt leuk en ik doe het ook al best wel lang.

108
00:08:46.050 --> 00:08:51.550
Ik heb een pauze gehad, waar ik een beetje heb gezonderd, heb ik vanavond een electrical engineering gedaan.

109
00:08:51.550 --> 00:08:52.990
Oh, cool.

110
00:08:54.210 --> 00:09:01.370
Maar nee, mijn eerste, ja, het ging al heel vroeg mis bij mij, want op mijn zesde kreeg ik boek Windows voor kinderen van Addo Stuur.

111
00:09:01.610 --> 00:09:04.350
Ik weet niet of jullie daar nog uit die generatie komen.

112
00:09:04.870 --> 00:09:08.750
En dan met Sinterklaas later het boek meer Windows voor kinderen.

113
00:09:09.690 --> 00:09:14.670
En eigenlijk het jaar daarna ging het pas helemaal mis, want ik kreeg programmeren voor kinderen op mijn zevende verjaardag.

114
00:09:14.790 --> 00:09:17.390
En dat was met Superlogo.

115
00:09:17.790 --> 00:09:23.290
Ja, met Turtles, dus kan je heel mooi tekeningen maken op het scherm.

116
00:09:23.750 --> 00:09:30.070
En ik had een vliegtuig dat kwam dan van de linker kant van het scherm, kwam naar binnen, maak dan een salto waarbij je ook nog allemaal vormen tekenen.

117
00:09:30.070 --> 00:09:32.410
Vloog weer weg, maar dat vond ik helemaal.

118
00:09:32.650 --> 00:09:35.630
Eindelijk was het meteen verkocht en is eigenlijk nummer goed gekomen.

119
00:09:37.490 --> 00:09:39.090
Nou ja, dat is wel grappig.

120
00:09:39.410 --> 00:09:41.250
Logo ben ik echt vergeten.

121
00:09:41.410 --> 00:09:42.830
Ja, Superlogo noem jij het?

122
00:09:42.830 --> 00:09:44.690
Ja, er zullen misschien varianten van zijn.

123
00:09:45.370 --> 00:09:46.630
Ja, zo heet die taal.

124
00:09:46.810 --> 00:09:48.730
Het kwam heel goed op het scherm als je het op startte.

125
00:09:49.150 --> 00:09:54.490
Maar ja, dat was ook helemaal in het Nederlands vertaald was deze vorm, dat was voor kinderen.

126
00:09:54.630 --> 00:10:06.810
Dus in plaats van dat je functies defineert met Def of Define of Learn of wat dan ook, dan was het zeg maar leer salto en dan zo lang.

127
00:10:06.930 --> 00:10:11.730
Je had zo lang missen en als statement en aan het eind begon.

128
00:10:11.730 --> 00:10:19.310
Was het niet end of zo'n curly bracket slijten, maar dat was ook einde en het was helemaal vertaald in het Nederlands.

129
00:10:19.470 --> 00:10:25.250
Dus het was voor mij, als zeven, sprak ik nog niet zo goed Engels natuurlijk, dus dat was hartstikke mooi.

130
00:10:25.570 --> 00:10:32.570
Ik ken logo alleen, niet de Nederlandstalige variant, maar dat heeft vroeger ooit vast wel eens in zo'n blad gestaan.

131
00:10:33.990 --> 00:10:35.330
Daar moet je het maar aan denken.

132
00:10:36.070 --> 00:10:39.730
Het grappige is dat het heet logo, maar het staat altijd zo'n turtletje in toch?

133
00:10:39.730 --> 00:10:47.890
Ja, het heeft daar ook weer tekenen op het scherm, dus je kan de pen down en dan kun je zeg maar vooruit 100, rechts 90.

134
00:10:48.010 --> 00:10:50.190
Ja, en roteren en dan een beetje en dan.

135
00:10:50.370 --> 00:10:52.990
Dat leg je dan vier keer en dan betekent die een vierkantje.

136
00:10:53.210 --> 00:10:53.990
Ja, dat is leuk.

137
00:10:55.130 --> 00:10:58.730
Dat is heel visueel, je krijgt meteen feedback over wat je het eigenlijk kan doen.

138
00:11:00.590 --> 00:11:04.690
Eigenlijk is dat wel heel goed ja, want dat zei, volgens mij verliezen ook, dat het soms.

139
00:11:05.570 --> 00:11:08.090
Ik kan me niet heel goed herinneren hoe dat zat met foutmeldingen of zo,

140
00:11:08.090 --> 00:11:13.190
maar dat dat in een programmeertal, dat een foutmelding die wij gewoon inmiddels gewoon denken.

141
00:11:13.510 --> 00:11:16.290
Ja, dat is normaal zakt van de wereld, maar die schrikt natuurlijk mensen heel erg af.

142
00:11:16.710 --> 00:11:20.030
En niet iets heel fijn om te lezen.

143
00:11:20.210 --> 00:11:21.390
Fatal error, ja.

144
00:11:21.770 --> 00:11:22.130
Ja, precies.

145
00:11:22.130 --> 00:11:26.010
Staat ook een beetje onduidelijk vaak zo van ja, x not defined.

146
00:11:26.550 --> 00:11:28.850
Ja, maar wat dan waar niet?

147
00:11:28.950 --> 00:11:29.630
En nu dan ja.

148
00:11:29.890 --> 00:11:30.590
Wat voor manier niet?

149
00:11:31.810 --> 00:11:32.930
Dus dat schrikt mensen gewoon af.

150
00:11:33.110 --> 00:11:34.410
Dus en terwijl bij de logo was dat best.

151
00:11:34.670 --> 00:11:35.870
Ja, maar goed, ik kan me niet herinneren.

152
00:11:35.870 --> 00:11:38.670
Dat was heel toegankelijk, zo moet ik het zeggen.

153
00:11:39.510 --> 00:11:39.570
Ja.

154
00:11:40.070 --> 00:11:42.130
Ja, dat was heel goed om mij te leren.

155
00:11:42.250 --> 00:11:43.410
Maar dat ben je er wel zo goed bij geweest.

156
00:11:43.710 --> 00:11:45.830
Ja, dat is even kijken.

157
00:11:47.290 --> 00:11:50.190
Ja, daarna op de middelbare school niet zo heel veel meegedaan.

158
00:11:50.270 --> 00:11:57.050
Ik had ook een lerares informatica en die was eigenlijk lerares Frans en het schat

159
00:11:57.050 --> 00:12:01.110
van de mensen heel erg ter west, maar dat ging gewoon niet zo lekker.

160
00:12:02.630 --> 00:12:10.650
Ik heb gestudeerd, gestudeerd bij de marine wapentechniek op het Kim, dus de officiersacademie.

161
00:12:11.370 --> 00:12:15.430
Ik heb daarna ook een jaar of of negen nog bij de marine gewerkt.

162
00:12:17.190 --> 00:12:22.370
En daar heb ik wel allerlei dingen gedaan, maar naar allerlei missies geweest.

163
00:12:22.570 --> 00:12:29.130
Maar ik heb ook bijvoorbeeld zat ik dat heet dan zo mooi de kennispool en daar zat

164
00:12:29.130 --> 00:12:36.250
ik dan bij ontwikkeling van nieuwe nieuwe radars en Defensie die betaalt heel veel geld aan

165
00:12:36.250 --> 00:12:40.370
TNO elk jaar om nieuwe onderzoek te doen naar nieuwe nieuwe dingen.

166
00:12:41.390 --> 00:12:46.650
En daar worden ook officieren van Defensie bij gezet om gewoon even te kijken of ze

167
00:12:46.650 --> 00:12:48.550
of ze dat wel goed doen.

168
00:12:49.270 --> 00:12:53.230
Oké, daar heb ik dan op onderzoeksniveau niet zoveel af te zeggen.

169
00:12:54.130 --> 00:12:57.470
Maar het is wel de bedoeling dat je weet waar je het over hebt en waar zij het over hebben.

170
00:12:57.470 --> 00:13:02.630
Dus als ze zeggen van nou, we hebben nou 10 miljoen extra nodig om te gaan doen,

171
00:13:02.730 --> 00:13:09.070
dat je kan zeggen van volgens mij hebben de Franse onderzoek naar gedaan en kan je niet gewoon hun resultaten gebruiken.

172
00:13:09.230 --> 00:13:10.350
Ja, precies.

173
00:13:10.390 --> 00:13:15.470
Dus dat bestond misschien voornamelijk uit literatuur, onderzoek of vergelijken of?

174
00:13:16.270 --> 00:13:22.190
Ja, literatuur, onderzoek, maar ook ja, je bent gewoon veel in contact met die mensen

175
00:13:23.370 --> 00:13:29.810
en ook met je counterparts van andere Nafarlanden om te overleggen waar je het over hebt.

176
00:13:30.630 --> 00:13:34.430
Want een marine radar, dat is eigenlijk voor heel veel landen toch een beetje hetzelfde.

177
00:13:34.650 --> 00:13:38.870
Ja, en het doet ongeveer hetzelfde, zit in ongeveer dezelfde omgeving, moet hij werken.

178
00:13:39.070 --> 00:13:45.270
Hij heeft ongeveer dezelfde veilen, want als Nafarlanden zijn er gewoon een paar verwachte dingen waar je naar wil kijken.

179
00:13:45.410 --> 00:13:50.730
Dat zijn Russische gewestvliegen en Chinese friketen en dat is het wel, zeg maar.

180
00:13:53.350 --> 00:13:59.730
Dus als je dat dan met z'n allen kan doen, het zijn ook dingen dat je bijvoorbeeld met de Engels overlegt

181
00:13:59.730 --> 00:14:04.170
van nou jullie doen dit stuk en wij doen dat stuk en aan het einde gaan we dat uitwisselen.

182
00:14:04.830 --> 00:14:08.730
Dus leuke banen, radar zijn leuke dingen.

183
00:14:09.450 --> 00:14:10.930
Ja, maar geen programmeerwerk?

184
00:14:12.230 --> 00:14:14.170
Nee, dat moest ik aan de TNO's overlaten.

185
00:14:14.310 --> 00:14:20.710
Dus op een gegeven moment heb ik ook weer weggegaan bij de marine omdat ik me toch weer dichter bij de techniek wilde houden.

186
00:14:20.710 --> 00:14:24.150
Dan dat waar mijn carrière daar naartoe ging.

187
00:14:24.170 --> 00:14:26.770
Dus nou heb ik je steeds verder weggekomen van de techniek.

188
00:14:26.870 --> 00:14:28.250
Maar van jammer, dat vind ik wel heel leuk.

189
00:14:28.730 --> 00:14:31.130
Ja, en wat gebeurde er toen?

190
00:14:32.630 --> 00:14:36.330
Even kijken, nou dat was in 2015 ofzo.

191
00:14:37.550 --> 00:14:42.630
Toen ben ik op een gegeven moment weggegaan bij de marine.

192
00:14:42.990 --> 00:14:49.090
Ben ik aan het werk gegaan bij Oeutransfer, een avalisering start-up in Nederland, gewoon in Amsterdam.

193
00:14:50.950 --> 00:14:57.150
En ook hoe dat gebeurde was eigenlijk heel leuk, want ik ging weg bij de marine.

194
00:14:57.290 --> 00:15:03.450
Dus er is heel veel van embedded systems en de vermogensversterkers, allemaal heel low level.

195
00:15:04.150 --> 00:15:12.550
En ik had zoiets, als ik aan de slag wil bij een hippe start-up, dan zal ik toch op z'n mis beter moeten weten hoe zo'n H2P-request werkt.

196
00:15:12.850 --> 00:15:14.370
Want de web is helemaal hip.

197
00:15:15.270 --> 00:15:19.310
Dus ik dacht, ik ga voor mezelf een website maken.

198
00:15:19.510 --> 00:15:29.010
Dus de allereerste probeers dat je was uit de H2P-pagina of de HTML-pagina, dat ging eigenlijk goed.

199
00:15:29.370 --> 00:15:35.410
Dus toen dacht ik, dat is leuk, maar dit was wel echt gewoon hello world, maar dan voor de web-pagina.

200
00:15:36.830 --> 00:15:38.230
Wat is mijn volgende project?

201
00:15:38.270 --> 00:15:42.050
Dus ik keek een beetje omheen en toen dacht ik, weet je dat Utransfer?

202
00:15:42.850 --> 00:15:46.330
Vaals uploaden, downloaden, dat is toch wel een beetje een opgelost probleem, zou je zeggen.

203
00:15:46.510 --> 00:15:49.010
Dus dit is een mooi tussenprojectje.

204
00:15:49.130 --> 00:15:55.150
Het is niet zo groot en moeilijk als Facebook klonen, maar het is ook niet helemaal een basis ding.

205
00:15:55.490 --> 00:15:57.890
Dus ik dacht, nou, dan ga ik dat proberen zelf te maken.

206
00:15:59.830 --> 00:16:07.270
En zo gezegd, zo gedaan, dus vol goede moed ging ik aan de slag en ik was daar een week of zo mee bezig.

207
00:16:07.930 --> 00:16:09.130
Ik had een paar weken vrij.

208
00:16:12.330 --> 00:16:18.830
En wat er toen gebeurde was dat een vriend van mij, die zei van, hey Wanner, op de lokale Ruby Meetup,

209
00:16:19.250 --> 00:16:24.490
daar gaat iemand van Utransfer die heeft gesproken en die heeft zijn prestatie online gezet.

210
00:16:26.490 --> 00:16:29.230
Van, is dat niet leuk om naar te kijken?

211
00:16:29.450 --> 00:16:31.890
Dus ik dacht, nou ja, dat zou leuk zijn.

212
00:16:32.030 --> 00:16:36.710
En dat was een jongen die heet Julik, die werkte samen met Arno, die hier ook op podcast is geweest.

213
00:16:37.590 --> 00:16:38.750
En mij hebben we veel samen gewerkt.

214
00:16:39.890 --> 00:16:46.710
En die zei van, dit zijn allemaal interessante problemen, want inderdaad files up en download is niet zo'n probleem.

215
00:16:47.450 --> 00:16:52.870
Maar als je er miljoen tegelijkertijd up en download in Utransfer doet,

216
00:16:53.270 --> 00:16:55.090
dan wordt het al een stuk lastiger natuurlijk.

217
00:16:55.990 --> 00:17:04.730
En wat, hij had een aantal van die problemen die daar waren en zei van, deze die hebben we opgelost en deze die zijn nog steeds lastig.

218
00:17:04.730 --> 00:17:08.790
En ik keek zo naar die, mijn prestatie, dat is zo lastig toch niet?

219
00:17:09.130 --> 00:17:16.250
Dus ik zou tip, tip, tip op mijn eigen klantje, had ik dat een soort van semi opgelost.

220
00:17:16.310 --> 00:17:18.890
En ik stuur een mailtje van, waarom doen jullie het niet zo eigenlijk?

221
00:17:19.090 --> 00:17:20.950
Want dat moet toch te doen zijn.

222
00:17:21.250 --> 00:17:25.830
En zei van, ja, kreeg ik een mailtje terug? Ja, dat is wel zo.

223
00:17:26.050 --> 00:17:30.430
Maar wat ik niet in de prestatie heb gezegd, is dat er ook nog deze en deze en deze constraint zijn.

224
00:17:33.690 --> 00:17:39.310
En dus ik heb zo een beetje heen en weer gemailed, leuke gesprek gehad.

225
00:17:42.070 --> 00:17:46.610
En ja, dat is toen een beetje uitgefizzeld, maar toen ze een paar maanden later vacature hadden,

226
00:17:46.750 --> 00:17:49.470
kreeg die van zich van vier kanten tegelijkertijd opgestuurd.

227
00:17:50.550 --> 00:17:55.130
Ja, long story short, daar heb ik ook drie maanden gewerkt, of drie jaar gewerkt, moet ik zeggen.

228
00:17:57.010 --> 00:17:59.330
Ja, en daar ben ik nu net een half jaartje weg.

229
00:18:00.430 --> 00:18:01.990
En daar zijn we nu.

230
00:18:04.350 --> 00:18:06.210
Even iets in mijn wervel in het wind.

231
00:18:06.990 --> 00:18:11.710
Ja, dat is wel een interessante carrière.

232
00:18:13.910 --> 00:18:17.490
Ik zag dat je nu zeg maar een tijd, je bent nu een half jaar.

233
00:18:19.450 --> 00:18:21.950
Doe je eventjes niks? Of hoe zeg je, een sabbatical heb je genomen?

234
00:18:22.770 --> 00:18:25.330
Ja, ik ben een beetje een sabbatical aan het houden.

235
00:18:27.710 --> 00:18:31.890
Ik werk wat aan alpe-source dingen die ik leuk vind.

236
00:18:33.850 --> 00:18:38.410
Ik ben in tussentijd getrouwd en daar wou ik ook de tijd voor nemen.

237
00:18:40.370 --> 00:18:44.210
Ja, en langzamer zeker ben ik een beetje aan het freelancen.

238
00:18:44.690 --> 00:18:47.950
Er zijn mensen die mij geld willen geven om mooie dingen voor me te maken.

239
00:18:48.230 --> 00:18:49.550
Dus dat kan ook geen kwaad.

240
00:18:49.550 --> 00:18:50.770
Altijd mooi, ja.

241
00:18:52.110 --> 00:18:53.170
Oké, cool.

242
00:18:54.630 --> 00:18:59.410
Goed, het eerste onderwerp, want ik gaf het een beetje een introductie al aan.

243
00:18:59.630 --> 00:19:04.970
Ik heb ooit misschien een paar regels geschreven.

244
00:19:05.470 --> 00:19:07.170
Trouwens, ik kan het wel moeilijk doen, maar het is Haskell.

245
00:19:09.070 --> 00:19:14.330
Het is een beetje een interessant taal.

246
00:19:14.910 --> 00:19:16.330
Het is bijna...

247
00:19:16.330 --> 00:19:21.730
Ja, goed, voor mij is het een beetje ver van mijn bed.

248
00:19:21.850 --> 00:19:22.810
Het wordt een beetje meaty.

249
00:19:23.130 --> 00:19:24.890
Heel veel mensen zijn er super enthousiast over.

250
00:19:27.930 --> 00:19:30.170
Ik kent niet heel veel mensen die Haskell programmeren.

251
00:19:30.370 --> 00:19:31.610
Maar de mensen die het programmeren, die hebben zoiets van,

252
00:19:31.670 --> 00:19:33.950
ja, je moet echt eens een keer naar kijken, want het is heel mooi en tof.

253
00:19:35.750 --> 00:19:37.910
Oké, nou, het valt wel, want ja, ik heb geen tijd.

254
00:19:38.350 --> 00:19:39.750
Dus ik doe er even niks mee.

255
00:19:39.810 --> 00:19:41.830
Dus ik heb het altijd een beetje opzeld of zo.

256
00:19:42.270 --> 00:19:47.150
Ik heb er nooit echt een reden voor gehad om er echt helemaal in te duiken.

257
00:19:48.410 --> 00:19:52.290
Maar ja, jij programmeert ook in Haskell, heb ik begrepen.

258
00:19:52.430 --> 00:19:53.710
Of heb je geprogrammeerd in Haskell?

259
00:19:55.810 --> 00:19:56.250
Beide.

260
00:19:58.610 --> 00:20:01.250
Ik heb het gedaan vroeger en ik doe het nog steeds.

261
00:20:02.450 --> 00:20:03.430
Met veel plezier ook.

262
00:20:03.450 --> 00:20:06.810
Een van de dingen wat ik net zei dat ik aan open source een bijdrage ben,

263
00:20:07.190 --> 00:20:08.450
is de compiler van Haskell.

264
00:20:11.550 --> 00:20:14.370
Dus wat een beetje de oorsprong is van die taal is,

265
00:20:15.130 --> 00:20:19.770
in de jaren 70, 80 waren er een heleboel kleinere taaltjes.

266
00:20:20.010 --> 00:20:21.810
Elke universiteit had zijn eigen dialect.

267
00:20:22.390 --> 00:20:25.750
Op een gegeven moment zijn ze bij elkaar gaan zitten.

268
00:20:26.990 --> 00:20:30.310
En hebben gezegd, wat zijn nou de beste elementen van elk dialect?

269
00:20:30.450 --> 00:20:34.530
En dat heb je samengevoegd tot één oertaal en dat is Haskell geworden.

270
00:20:35.850 --> 00:20:39.660
En wat ik daar zo leuk aan vind, is het past heel goed bij...

271
00:20:40.370 --> 00:20:45.190
Kijk, wat ik zei, bij mijn studie bij de marine heb ik heel veel wiskunde gehad,

272
00:20:45.770 --> 00:20:46.870
heel veel elektronica.

273
00:20:48.230 --> 00:20:52.640
En de manier waarop je dat uitdrukt, de vergelijking waarin je dat opschrijft,

274
00:20:55.430 --> 00:20:59.870
dat gaat op een gegeven moment ook een beetje beïnvloeden over hoe je denkt.

275
00:21:01.170 --> 00:21:11.050
Dus vaak als ik een programma zie, dan kijk ik niet zozeer naar de structuur ofzo.

276
00:21:12.130 --> 00:21:18.570
Waar ik voornamelijk naar kijk, is hoe stroomt de code, zeg maar.

277
00:21:19.250 --> 00:21:22.350
Ik weet niet, ik vind het heel lastig om dit in woorden te noemen.

278
00:21:23.110 --> 00:21:28.130
Ja precies, je hebt de data, die gaat hierheen, die wordt veranderd in iets anders.

279
00:21:29.110 --> 00:21:32.150
Die wordt misschien samengevoegd.

280
00:21:32.350 --> 00:21:34.170
En uiteindelijk komt daar een resultaat uit.

281
00:21:34.430 --> 00:21:39.650
En Haskell past gewoon heel goed bij die manier van denken over je programma.

282
00:21:39.910 --> 00:21:42.910
En dat bevalt mij heel erg.

283
00:21:43.870 --> 00:21:47.490
Wat overigens niet wil zeggen dat ik graag alles in Haskell zou willen doen.

284
00:21:48.270 --> 00:21:51.310
Maar wat zijn dan volgens jou een beetje de eigenschappen van Haskell

285
00:21:51.310 --> 00:21:53.990
die het jou mogelijk maken om op die manier na te denken?

286
00:21:57.470 --> 00:22:02.970
Nou, het is eigenlijk met elke vorm van functioneel programmeren.

287
00:22:03.030 --> 00:22:04.150
Daar is het heel erg op gericht.

288
00:22:06.250 --> 00:22:09.850
En je beschrijft niet wat je wil dat de computer doet.

289
00:22:10.430 --> 00:22:12.650
Je beschrijft wat je wil dat die voor je berekent.

290
00:22:12.930 --> 00:22:18.110
Dus als je zegt, ja, doe is een voorbeeld.

291
00:22:20.870 --> 00:22:23.610
Ik wil graag de sum van al deze getallen.

292
00:22:24.270 --> 00:22:27.170
Dan maakt het me helemaal niet uit of je daar ondertussen een extra variabele...

293
00:22:28.850 --> 00:22:30.590
Dus je wil de sum van een lijstwachtel.

294
00:22:31.770 --> 00:22:35.050
Dan maakt het me helemaal niet uit of je een extra variabele aanmaakt

295
00:22:35.050 --> 00:22:36.670
en ze daar allemaal bij optelt.

296
00:22:36.930 --> 00:22:41.630
Of dat die ze allemaal in parallel bij elkaar optelt in blokken van 2 en dan van 4 en dan van 8.

297
00:22:42.190 --> 00:22:44.810
Of dat die nog andere dingen doet, dat vind ik eigenlijk niet zo belangrijk.

298
00:22:44.830 --> 00:22:47.270
Ik wil dat die computer dat voor mij bepaalt.

299
00:22:47.270 --> 00:22:53.370
Ik wil alleen kunnen zeggen, nou, wat ik wil hier is de sum van al die getallen.

300
00:22:56.730 --> 00:23:03.270
Juist die focus op wat je eigenlijk wil bereiken in plaats van hoe je het wilt bereiken.

301
00:23:04.430 --> 00:23:08.270
Dat is iets wat ik in veel andere programmeertalen van minder zie.

302
00:23:10.170 --> 00:23:11.570
Het is ook een beetje gegeven.

303
00:23:11.710 --> 00:23:14.810
Kijk, bijvoorbeeld als ik een website maak, dan doe ik dat veel liever in Ruby.

304
00:23:14.810 --> 00:23:23.710
Want een backend, een API ofzo, dat laat zich veel beter uitdrukken.

305
00:23:24.270 --> 00:23:26.590
En nu ga je iets ophalen uit de database.

306
00:23:28.010 --> 00:23:34.430
En om deze 500 redenen kan je allemaal HTTP errorcodes genereren of exceptions maken.

307
00:23:36.430 --> 00:23:39.670
En dat soort hele branchy dingen, dat is Haskell iets minder fijn in.

308
00:23:40.070 --> 00:23:42.990
Maar als je een wiskundige berekening wilt uitdrukken,

309
00:23:42.990 --> 00:23:45.050
dan doe je dat veel liever in Haskell dan in Ruby.

310
00:23:45.650 --> 00:23:48.870
Omdat die taal die is daar gewoon meer op gericht.

311
00:23:49.150 --> 00:23:52.850
Oké, en heb je het ook op je werken gebruikt?

312
00:23:54.150 --> 00:23:57.330
En wat voor soort problemen had je dan mee te maken?

313
00:23:59.310 --> 00:24:04.990
Nou, één ding wat ik heb gemaakt, dat was op een gegeven moment hadden we een soort van...

314
00:24:04.990 --> 00:24:07.710
Nou, moet je dat zeggen.

315
00:24:07.930 --> 00:24:16.250
We hadden een microservice die dan hashes moest opzoeken in een grote lijst.

316
00:24:16.310 --> 00:24:18.650
Een soort blacklist met hashes.

317
00:24:20.410 --> 00:24:24.270
Maar dat waren niet gewoon normale hashes zoals je in een HashMap stopt.

318
00:24:24.690 --> 00:24:27.010
Maar dat waren zogeheten contextual hashes.

319
00:24:30.050 --> 00:24:32.170
En dat kwam uit.

320
00:24:32.170 --> 00:24:36.310
Dat was een hele ingewikkelde vectorberekening.

321
00:24:37.610 --> 00:24:38.890
144 dimensionale vectors.

322
00:24:40.050 --> 00:24:43.890
En dan moest je daar een soort van multidimensionale bol om heen tekenen.

323
00:24:44.010 --> 00:24:47.330
Als er andere punten in die bol zaten dan was het een match.

324
00:24:50.570 --> 00:24:55.710
Dat was typisch zoiets wat je dus in tekst niet zo heel goed kan uitleggen.

325
00:24:56.770 --> 00:24:59.170
In Ruby zou dat ook...

326
00:24:59.170 --> 00:25:02.010
Het is een beetje een gedoe. In Haskell is het een one-liner.

327
00:25:03.150 --> 00:25:06.510
En je hebt daar ook mooie tree-based algoritmes voor.

328
00:25:07.710 --> 00:25:11.150
Waar dus een heleboel onderzoekers in Haskell al heel veel tijd in hebben gestopt.

329
00:25:11.350 --> 00:25:14.590
En waar de Ruby-gemeenschap meestal wat minder enthousiast over wordt.

330
00:25:14.650 --> 00:25:17.910
Omdat die zich meer richt op normale web-dingen.

331
00:25:19.810 --> 00:25:23.090
Oké, cool dat het zo makkelijk is.

332
00:25:23.290 --> 00:25:28.630
Ik heb ooit iets met Haskell gedaan omdat ik iets meer van wilde weten.

333
00:25:28.630 --> 00:25:32.670
En ik merkte zelf dat, nadat ik dingen in Haskell had geprobeerd,

334
00:25:32.810 --> 00:25:37.990
dat je een aantal leerpunten ook meeneemt naar de Ruby-omgeving.

335
00:25:39.850 --> 00:25:44.390
Vastregels als no-side-effects, die vond ik heel lekker.

336
00:25:44.810 --> 00:25:47.090
En daar lette ik naderhand toch meer op.

337
00:25:48.070 --> 00:25:50.090
Heb jij dat ook? Of zijn er meer van dat soort dingen?

338
00:25:50.890 --> 00:25:52.670
Ja, dat is heel erg.

339
00:25:52.890 --> 00:25:57.510
Er zijn inderdaad no-side-effects, immutability is er zo eentje.

340
00:25:57.510 --> 00:26:01.650
Type classes zoals je ziet in Rust bijvoorbeeld.

341
00:26:02.470 --> 00:26:07.250
Dat is er ook eentje die ik echt heb geleerd.

342
00:26:07.410 --> 00:26:10.270
En Haskell eigenlijk nooit meer niet zie.

343
00:26:10.290 --> 00:26:13.730
Zelfs als ik in een andere taal aan het programmeren ben.

344
00:26:14.070 --> 00:26:20.550
En dat helpt me ook wel om sommige dingen te analyseren.

345
00:26:21.490 --> 00:26:26.610
Ik had een tijdje geleden een junior die ik mocht mentoren.

346
00:26:26.610 --> 00:26:31.210
En ik vroeg hem wat voor ding komt er uit deze functie?

347
00:26:31.450 --> 00:26:32.250
Wat returnt die?

348
00:26:32.590 --> 00:26:35.870
En zegt hij, ja, dat is een getal.

349
00:26:36.290 --> 00:26:37.390
Wat voor getal dan?

350
00:26:39.850 --> 00:26:44.610
Hij had nog niet een heel goed model in zijn hoofd van

351
00:26:45.390 --> 00:26:49.750
wat voor type dingen er uit die functie kwamen.

352
00:26:50.090 --> 00:26:53.070
In dit geval was het dan of een float of een nil.

353
00:26:55.850 --> 00:26:59.490
En omdat hij dat niet zo goed in zijn hoofd had,

354
00:26:59.870 --> 00:27:04.770
was het ook heel lastig om die functie in te bouwen in de rest van het programma.

355
00:27:04.810 --> 00:27:09.430
Omdat hij ook niet in zijn hoofd had wat de rest van het programma verwacht.

356
00:27:09.610 --> 00:27:14.450
Want als die verwacht of een float of een nil of een string,

357
00:27:15.690 --> 00:27:19.610
dan is het al heel iets anders dan wat er uit die functie kan komen.

358
00:27:19.610 --> 00:27:24.590
En zo krijg je steeds meer verwarring omdat dat niet duidelijk is.

359
00:27:25.630 --> 00:27:30.650
Wat ik ook leuk vind is dat het helemaal niet nodig is om overal Haskell te schrijven.

360
00:27:30.850 --> 00:27:33.470
Sommige mensen beschuldigen me weleens van ja,

361
00:27:33.610 --> 00:27:36.910
want jij wilt gewoon eigenlijk alleen maar Haskell schrijven in elke baan.

362
00:27:37.070 --> 00:27:38.210
En dat is helemaal niet waar.

363
00:27:39.010 --> 00:27:43.490
Ik wil graag de goede delen van Haskell, die zou ik graag willen overnemen.

364
00:27:43.910 --> 00:27:45.550
En het mooie is dat dat al gebeurt.

365
00:27:45.550 --> 00:27:50.930
Dus Ruby is met alle blocks en proxen en lanta's die je daar tegenkomt,

366
00:27:51.090 --> 00:27:53.370
heeft al superveel functionele programmerdingen.

367
00:27:53.950 --> 00:27:56.550
En in heel veel talen zie je dat steeds meer terugkomen.

368
00:27:57.510 --> 00:28:02.910
En wat ik mooi vind is dat, en dat komt ook uit die oorsprong waar ik het al over had,

369
00:28:03.370 --> 00:28:05.670
dat het komt als een soort van onderzoektal.

370
00:28:05.770 --> 00:28:07.950
Het is ook heel makkelijk uit te breiden door onderzoekers.

371
00:28:08.110 --> 00:28:11.510
En je ziet dat er gewoon een heleboel rare experimenten in zitten.

372
00:28:11.650 --> 00:28:14.330
Sommigen waren een heel groot succes, sommigen niet.

373
00:28:14.330 --> 00:28:17.230
Dat kan gebeuren. Maar het is een onderzoektal.

374
00:28:17.390 --> 00:28:19.490
Dus het is prima dat daar dingen niet lukken.

375
00:28:20.790 --> 00:28:25.550
En je ziet dat heel veel functies in moderne programmaatalen,

376
00:28:25.610 --> 00:28:28.830
dat die min of meer direct zijn overgenomen van Haskell,

377
00:28:28.870 --> 00:28:30.210
omdat ze gewoon een heel goed idee waren.

378
00:28:30.890 --> 00:28:33.770
Dus dan kan je bijvoorbeeld denken, list comprehensions in Python,

379
00:28:33.970 --> 00:28:40.030
of type classes in Rust, of eigenlijk zelfs de Go-routines van Go.

380
00:28:40.210 --> 00:28:43.210
Dat model, daar is heel veel ervaring op gedaan in Haskell.

381
00:28:43.210 --> 00:28:47.370
Want je hebt precies dezelfde soort green threads die dan heel lightweight zijn.

382
00:28:49.010 --> 00:28:54.150
En dat vind ik leuk, dat daar eigenlijk gewoon de goede ideeën worden overgenomen

383
00:28:54.150 --> 00:28:55.770
en de slechte raad het.

384
00:28:56.410 --> 00:28:59.130
Dat is leuk. Iemand heeft z'n PSD mee gehaald,

385
00:28:59.330 --> 00:29:00.710
maar we gaan verder niks meer meer doen.

386
00:29:04.070 --> 00:29:08.290
Even even kijken, want Haskell is al in pose.

387
00:29:09.190 --> 00:29:12.230
Je zei ook net van oké, je zou eerder

388
00:29:12.750 --> 00:29:17.630
een web applicatie maken in Ruby dan met Haskell.

389
00:29:17.710 --> 00:29:18.950
Dat zal vast iemand gedaan hebben.

390
00:29:19.090 --> 00:29:20.970
Dat is trouwens ook een vraag van een collega van mij.

391
00:29:21.050 --> 00:29:21.950
Die had ik vandaag gesproken.

392
00:29:23.010 --> 00:29:25.430
Die heb ik wel vaker aangehaald in de podcast.

393
00:29:26.670 --> 00:29:29.030
Maar goed, die heeft mij ook meerdere keer gezegd,

394
00:29:29.130 --> 00:29:30.450
je moet eens een keer Haskell doen.

395
00:29:31.570 --> 00:29:34.410
Blijkbaar heb je een site, daar kun je allerlei opdrachten doen met Haskell.

396
00:29:35.130 --> 00:29:35.890
Die kun je dan oplossen.

397
00:29:36.370 --> 00:29:41.130
Ja. Maar goed, daar is het gewoon niet van gekomen.

398
00:29:41.290 --> 00:29:44.110
Maar hij vroeg me over, anders moet je vragen

399
00:29:44.110 --> 00:29:46.890
of er webdevelopment gedaan wordt met Haskell.

400
00:29:47.110 --> 00:29:50.950
Maar is dat er ook, zeg maar, of is het meer van oké,

401
00:29:50.970 --> 00:29:54.530
blijft het nog steeds bij dat met meer wiskundigen?

402
00:29:55.830 --> 00:29:59.570
Het hangt er een beetje vanaf.

403
00:30:00.670 --> 00:30:02.530
Kijk, sowieso, het kan allemaal wel.

404
00:30:02.530 --> 00:30:03.530
Ja, er zijn gewoon libraries.

405
00:30:04.930 --> 00:30:07.630
En de eerste laatste, een paar maanden geleden,

406
00:30:07.950 --> 00:30:12.010
heeft een Duits bedrijf, dat heeft dan een framework gelanceerd,

407
00:30:12.130 --> 00:30:17.030
dat heet IAP, en dat probeert een beetje de rails van de Haskell wereld te worden.

408
00:30:19.610 --> 00:30:24.130
Ja, kijk, HTML genereren, dat is op zich goed te doen.

409
00:30:24.890 --> 00:30:27.750
En er zijn allemaal libraries.

410
00:30:28.390 --> 00:30:32.030
Aan de andere kant zijn ze vaak niet zo super gepolist

411
00:30:32.030 --> 00:30:34.690
zoals een rails of een Django of zoiets.

412
00:30:36.990 --> 00:30:38.690
Maar er zijn wel bedrijven.

413
00:30:40.070 --> 00:30:45.010
Dus als groot voorbeeld is Facebook spamfiltering,

414
00:30:45.370 --> 00:30:46.770
dat kwijt allemaal op Haskell.

415
00:30:48.850 --> 00:30:52.050
Er is bijvoorbeeld in Utrecht zit een bedrijfje,

416
00:30:52.410 --> 00:30:55.290
er zit een aantal Haskell bedrijfjes zelfs.

417
00:30:55.510 --> 00:30:57.650
Er is er eentje die doet met machine learning,

418
00:30:58.650 --> 00:31:04.110
maken ze automatisch chords, hoe zeg je dat,

419
00:31:05.090 --> 00:31:07.870
noten en bladmuziek.

420
00:31:07.870 --> 00:31:09.050
Bladmuziek is een lastwoord.

421
00:31:10.370 --> 00:31:13.650
Dus die geef je een stuk muziek,

422
00:31:14.030 --> 00:31:16.530
en dan generereert die daar automatisch bladmuziek uit.

423
00:31:17.330 --> 00:31:19.170
Dat is op zich een website.

424
00:31:20.230 --> 00:31:25.690
Je moet je muziek, ja, je liedje uploaden via webpagina,

425
00:31:25.690 --> 00:31:30.150
maar dat wordt dan later automatisch door de machine learning heen getrokken.

426
00:31:30.550 --> 00:31:31.990
En dat is allemaal in Haskell.

427
00:31:32.210 --> 00:31:35.610
Zo zijn er nog wat meer dingen die dan net niet helemaal

428
00:31:36.690 --> 00:31:39.050
een crud-app zoals dat zo mooi heet,

429
00:31:40.470 --> 00:31:44.410
maar die wat meer involved processing erachter hebben,

430
00:31:44.910 --> 00:31:46.270
dat is er zeer goed geschikt voor.

431
00:31:47.490 --> 00:31:49.970
Oké, cool. Maar wat je ook de mogelijkheid,

432
00:31:50.290 --> 00:31:52.590
de microservices zijn ontstaan, of ze zijn niet ontstaan,

433
00:31:52.590 --> 00:31:53.850
die zijn er misschien alweer al een tijdje,

434
00:31:54.950 --> 00:31:56.590
maar je kan zo een oplossing,

435
00:31:56.590 --> 00:31:58.730
ik moet nou zeggen een applicatie of een landschap,

436
00:31:59.610 --> 00:32:02.810
dus stel dat je nou een oplossing moet maken,

437
00:32:03.110 --> 00:32:07.230
dan zou het dus wel kunnen zijn dat je een deel van die applicatie met Haskell zou schrijven

438
00:32:07.230 --> 00:32:09.310
en dat dat ineen microservices weggestopt wordt.

439
00:32:10.030 --> 00:32:11.050
En de rest met Ruby.

440
00:32:12.030 --> 00:32:16.450
Zie je dat ook weleens gebeuren of is dat spoorradies komt dat voor?

441
00:32:18.410 --> 00:32:24.710
Ja, je vraagt het aan mij alsof ik soort van de guru ben op het gebied van...

442
00:32:24.710 --> 00:32:25.130
Nee, nee, nee.

443
00:32:27.350 --> 00:32:33.190
Ik zie wel dat inderdaad dat je dat soort van microservices in meerdere talen

444
00:32:33.190 --> 00:32:39.450
die dan beter geschikt zijn, dat zie ik wel redelijk regelmatig.

445
00:32:43.270 --> 00:32:49.210
Omdat Ruby en Python of Node.js ofzo, dat zijn vaak talen die dan niet...

446
00:32:49.210 --> 00:32:50.950
Dat zijn interpreted languages natuurlijk,

447
00:32:51.270 --> 00:32:53.270
dus als je daar echt zware nummer crunching mee wilt doen,

448
00:32:53.510 --> 00:32:55.630
dan kan je beter iets gecompileerds gebruiken.

449
00:32:57.550 --> 00:32:59.190
Dat hebben we bij Wytransfer ook weleens gedaan,

450
00:32:59.270 --> 00:33:02.910
bijvoorbeeld dat we in Crystal, als je die taal kent,

451
00:33:03.150 --> 00:33:04.570
dat is een soort gecompileerde Ruby,

452
00:33:09.010 --> 00:33:14.710
die één superzware endpoint, die hebben we daarin herschreven

453
00:33:14.710 --> 00:33:16.310
omdat het gewoon niet te doen was in Ruby.

454
00:33:16.470 --> 00:33:17.450
Dat was echt een drama.

455
00:33:19.330 --> 00:33:22.190
En dat ging letterlijk honderd keer sneller in Crystal.

456
00:33:24.150 --> 00:33:25.310
Dat is gewoon de moeite waard.

457
00:33:25.930 --> 00:33:29.890
Maar voor de meeste dingen, zeker in het webwereld,

458
00:33:30.010 --> 00:33:32.010
dan is Ruby gewoon snel genoeg.

459
00:33:32.010 --> 00:33:37.010
Of je webpagina nou gerenderd wordt in één of twee milliseconden,

460
00:33:37.710 --> 00:33:40.650
dat is leuk, maar de ping van mensen die zoveel hoger,

461
00:33:40.850 --> 00:33:41.870
dat merken ze niet eens.

462
00:33:42.490 --> 00:33:43.890
Nee, oh zo, ja.

463
00:33:43.910 --> 00:33:47.030
Het is een relatieve snelheid, want die...

464
00:33:47.030 --> 00:33:52.150
De randtrip, dat is toch al honderd miliseconden.

465
00:33:52.870 --> 00:33:54.010
Ja, microseconden zou ik wel willen.

466
00:33:54.270 --> 00:33:55.090
Microseconden zou wel tof zijn.

467
00:33:56.170 --> 00:33:57.050
Ja, precies.

468
00:33:57.330 --> 00:34:01.530
Maar er is toch ergens iets met natuurkundige wetten en zo.

469
00:34:01.530 --> 00:34:03.290
Nou, dat gaat gewoon niet.

470
00:34:04.890 --> 00:34:06.290
Misschien verzinnen we daar ook nog wel iets op.

471
00:34:08.730 --> 00:34:12.250
Maar goed, dat is eigenlijk de familie, de functionele talen.

472
00:34:13.670 --> 00:34:16.530
Wat nu veel gebeurt, is dat het...

473
00:34:17.090 --> 00:34:19.630
Ja, goed, er is een hele post geweest,

474
00:34:19.750 --> 00:34:25.830
bijvoorbeeld Java, C++, dat is allemaal de objectorienteerde talen.

475
00:34:26.110 --> 00:34:30.090
We merken ook wel dat er een aantal beloften die daar in de oog gemaakt werden,

476
00:34:30.090 --> 00:34:31.570
die zijn niet helemaal waargemaakt.

477
00:34:32.150 --> 00:34:37.210
Ook in C-Shop, dus de taal waar je tot net meestal informeert,

478
00:34:37.470 --> 00:34:41.810
daar komen ook steeds meer functionele aspecten daar terug.

479
00:34:42.110 --> 00:34:43.310
Dat is wel iets...

480
00:34:43.310 --> 00:34:43.870
Dus better matching.

481
00:34:44.070 --> 00:34:48.090
Er zijn een aantal van dat soort zaken die zie je dan weer in C-Shop komen.

482
00:34:48.250 --> 00:34:50.790
Dan zijn er al weer mensen die zeggen van ja, maar hallo.

483
00:34:51.990 --> 00:34:56.050
Ja, dan laat je bepaalde concepten los, zeg maar, of...

484
00:34:56.050 --> 00:34:57.750
Ik ben er niet zo heel strikt in.

485
00:34:57.750 --> 00:35:00.890
Maar ik vind het wel grappig dat er die zaken overgenomen worden.

486
00:35:01.550 --> 00:35:05.350
Want op een tot net platform heb je dan F-sharp als de functionele taal.

487
00:35:05.970 --> 00:35:07.290
En dan worden er soms dingen overgenomen.

488
00:35:07.650 --> 00:35:12.610
Soms ook wel dingen van C-sharp naar F-sharp, maar meestal andersom.

489
00:35:13.090 --> 00:35:15.470
Dus dat is wel een beweging die je wel de laatste tijd wel ziet.

490
00:35:15.550 --> 00:35:17.510
Ook op het Java-platform is dat met...

491
00:35:17.510 --> 00:35:19.530
Nu moet ik even uitkijken wat ik zeg, maar Scala.

492
00:35:19.970 --> 00:35:21.370
Oeh, dat zou ook...

493
00:35:21.370 --> 00:35:21.850
Scala?

494
00:35:22.110 --> 00:35:24.610
Ja, dat Scala ook daar vandaan kwam.

495
00:35:24.870 --> 00:35:25.150
Ja, toch?

496
00:35:25.150 --> 00:35:28.630
Ja, Scala is een grote inspiratiebron voor Elixir.

497
00:35:28.730 --> 00:35:30.150
En volgens mij is Elixir ook functioneel.

498
00:35:31.670 --> 00:35:33.450
Dat is eerlijk, ja.

499
00:35:33.930 --> 00:35:34.430
Ja, eerlijk, ja.

500
00:35:35.110 --> 00:35:38.010
Wat precies functioneel is dat er een paar mensen...

501
00:35:38.010 --> 00:35:40.450
Er zijn super puristies van, ja, dat moet dit hebben.

502
00:35:40.950 --> 00:35:45.970
En sommige mensen zijn van, ja, maar JavaScript met Map en ForEats...

503
00:35:45.970 --> 00:35:47.690
Dat is ook wel functioneel genoeg, zeg maar.

504
00:35:48.050 --> 00:35:48.950
Ja, precies.

505
00:35:49.290 --> 00:35:50.870
Dat zijn hele gradaties in.

506
00:35:52.150 --> 00:35:53.150
Ja, klopt, ja.

507
00:35:53.150 --> 00:35:55.510
Het is volgens mij ook die side-effects en zo.

508
00:35:56.230 --> 00:35:57.310
En ja, dat klopt.

509
00:35:57.630 --> 00:35:59.510
F-sharp is ook...

510
00:35:59.510 --> 00:36:00.910
Daar zitten wel wat side-effects in.

511
00:36:01.150 --> 00:36:03.150
Dus je kunt sommige dingen...

512
00:36:04.810 --> 00:36:06.930
Ja, het is niet puur functioneel.

513
00:36:07.310 --> 00:36:08.390
Zo is het.

514
00:36:08.410 --> 00:36:09.550
Maar dat is gewoon meer convenience.

515
00:36:09.730 --> 00:36:11.310
Van, ja, je wilt productief blijven, zeg maar.

516
00:36:11.590 --> 00:36:15.590
Maar is jouw liefde voor Haskell, is dat Haskell?

517
00:36:15.650 --> 00:36:20.430
Of heb je ook andere functionele programmeertalen die je ook erbij doet?

518
00:36:22.650 --> 00:36:25.470
Je zei dat je met die compiler aan het werk was.

519
00:36:26.170 --> 00:36:30.410
Je zit toch heel erg in de Haskell-hoek als je mag kiezen?

520
00:36:31.070 --> 00:36:32.050
Ja, meestal wel.

521
00:36:32.470 --> 00:36:37.830
Haskell heeft een heleboel manieren om gewoon heel compact op te schrijven wat je wil.

522
00:36:38.790 --> 00:36:40.890
En dat waardeer ik erg aan.

523
00:36:41.450 --> 00:36:43.890
Maar wat dat betreft, ik ben niet zo'n purist.

524
00:36:45.970 --> 00:36:49.310
Als het beter in Ruby gaat, dan doe ik het in Ruby.

525
00:36:49.310 --> 00:36:52.210
En als het beter in Python gaat, dan doe ik het in Python.

526
00:36:52.550 --> 00:36:55.130
Of in Rust, dat maakt het allemaal niet uit.

527
00:36:59.210 --> 00:37:05.250
Ja, ik heb gewoon een paar talen waar ik graag naar grijp als ik een bepaald soort problemen heb.

528
00:37:06.850 --> 00:37:09.150
Maar ik ben helemaal niet getrouwd met Haskell.

529
00:37:10.070 --> 00:37:13.810
Nee, nee, nee, klopt. Of klopt, dat kan, ja.

530
00:37:14.150 --> 00:37:18.470
Nee, wel grappig. Je hoort het steeds vaker, dus ik moet er maar eens een keer aan geloven.

531
00:37:18.470 --> 00:37:21.470
Ik had toevallig begin deze week, volgens mij.

532
00:37:22.070 --> 00:37:24.750
Ja, begin deze week wel even naar de Haskell site gegaan.

533
00:37:24.890 --> 00:37:28.170
En dan kun je zeg maar, dan krijg je zo'n, ja, niet een tutorial, maar gewoon een beetje zo'n rappel.

534
00:37:28.270 --> 00:37:29.070
En dan kun je een aantal dingen.

535
00:37:29.810 --> 00:37:31.150
Ja, ik weet wel wat je zegt.

536
00:37:31.790 --> 00:37:36.850
Ja, in eerste instantie had ik gezegd, oké, ik snap de syntax nog niet, zeg maar.

537
00:37:37.030 --> 00:37:38.850
Ik begrijp ongeveer wel wat er staat.

538
00:37:38.970 --> 00:37:41.620
Maar ik weet nog niet precies wat nou waarin.

539
00:37:41.990 --> 00:37:43.470
Want je herkent een aantal zaken.

540
00:37:44.730 --> 00:37:46.830
Ja, die lijken, die zijn er waarschijnlijk overgenomen.

541
00:37:46.830 --> 00:37:49.170
Dus bijvoorbeeld in C-Shop in mijn geval.

542
00:37:49.370 --> 00:37:50.810
Dan denk ik, oké, dit snap ik wel.

543
00:37:51.230 --> 00:37:53.250
Maar wat betekent nou precies?

544
00:37:53.990 --> 00:37:57.310
En je hebt type inferring, is het volgens mij, toch?

545
00:37:57.530 --> 00:38:00.130
Zodat ze, ja, inferren.

546
00:38:00.290 --> 00:38:02.650
Dus dat, nou goed, ik snap er nog niet helemaal wat de syntax was.

547
00:38:02.930 --> 00:38:06.070
En qua tijd, dus deze week, kwam ik er natuurlijk verder niet aan toe.

548
00:38:06.110 --> 00:38:10.030
Om dan nog meer de diepte in te duiken.

549
00:38:12.710 --> 00:38:13.510
Ja, dat.

550
00:38:15.310 --> 00:38:18.730
Oké, maar stel nou dat ik voor een leuk probleem

551
00:38:18.730 --> 00:38:21.030
wat ik voorgeschoten krijg, Haskell wil gaan gebruiken.

552
00:38:21.210 --> 00:38:22.310
En dat wil ik morgen doen.

553
00:38:22.350 --> 00:38:26.630
Kan ik dan gewoon op mijn laptopje Haskell installeren

554
00:38:26.630 --> 00:38:30.590
en dan ga ik typen en dan is het klaar?

555
00:38:30.790 --> 00:38:34.690
Moet ik dan IDA's krijgen die op m'n oren?

556
00:38:35.850 --> 00:38:39.490
Ja, ik kan zo een gewikkeld maken als je zelf wilt, natuurlijk.

557
00:38:39.510 --> 00:38:40.510
Nee, dat wil ik niet.

558
00:38:41.910 --> 00:38:44.670
Kijk, ja, kan je beginnen met typen en dan is het klaar.

559
00:38:44.810 --> 00:38:47.730
Dat is natuurlijk ja, als je goed pundt in Haskell.

560
00:38:47.870 --> 00:38:50.310
Maar dat is hetzelfde voor opgeprogrammeerd aan.

561
00:38:50.410 --> 00:38:52.590
Ja, maar ik kan het gewoon op m'n Mac downloaden en dan heb ik...

562
00:38:53.190 --> 00:38:54.510
Dan doe ik gewoon...

563
00:38:56.030 --> 00:38:58.270
Een tooltje dat heet GHC-up.

564
00:38:58.910 --> 00:38:59.950
Zij is de compiler.

565
00:39:00.450 --> 00:39:02.050
En dan gewoon de P erachter.

566
00:39:02.670 --> 00:39:07.570
En dat is hetzelfde als RBM of PIEMF en dat soort dingen.

567
00:39:07.570 --> 00:39:10.770
Dan kun je gewoon een compiler neertrekken.

568
00:39:11.410 --> 00:39:13.710
En de tooling die er omheen hoort.

569
00:39:15.010 --> 00:39:19.410
En dan open een tekstval in de editor die het lekkerst vindt.

570
00:39:19.810 --> 00:39:20.810
En begin met typen.

571
00:39:21.790 --> 00:39:22.990
Zo makkelijk kan dat zijn.

572
00:39:23.530 --> 00:39:26.930
En dan kan ik het ook deployen als ik het wil, ergens neerzetten.

573
00:39:28.510 --> 00:39:30.550
Het compaalt in principe gewoon naar binaries.

574
00:39:30.810 --> 00:39:33.330
Dus je kan het af en toe draaien waar je wilt.

575
00:39:34.550 --> 00:39:38.870
Ik wil met zin met alle normale KVS die erbij houden.

576
00:39:39.070 --> 00:39:43.150
Dus als je het op Linux compileert, dan moet je het misschien even cross-compiler voor Windows.

577
00:39:44.450 --> 00:39:46.990
Maar de normale dingen die erbij houden.

578
00:39:47.150 --> 00:39:48.910
Maar daar hebben we nu containers voor.

579
00:39:49.290 --> 00:39:50.390
Ja precies, of stoppen te doen.

580
00:39:52.350 --> 00:39:53.310
Ja precies.

581
00:39:53.490 --> 00:39:55.090
Dat is op zich ook wel mooi.

582
00:39:57.210 --> 00:39:59.930
Je ziet zeker die tooling die wordt wel steeds belangrijker.

583
00:40:01.770 --> 00:40:05.450
Een paar jaar geleden was er een beetje een gedoe.

584
00:40:05.690 --> 00:40:09.130
Iemand anders was super ongelukkig met de normale tooling.

585
00:40:10.050 --> 00:40:12.010
Dus hij had zijn eigen variant geschreven.

586
00:40:13.370 --> 00:40:18.310
En een paar blockpasser in die de oorspronkelijke tooling echt tot de grond toe afbranden.

587
00:40:20.910 --> 00:40:25.170
Dat heeft de maintenance van de oorspronkelijke tooling ook wel weer een beetje matuatie gegeven.

588
00:40:26.290 --> 00:40:29.010
Om hun spullen weer product te krijgen.

589
00:40:29.010 --> 00:40:35.450
En eigenlijk zijn de meeste features van die nieuwe tooling die zijn weer in de oorspronkelijke gevoegd.

590
00:40:37.050 --> 00:40:40.010
En dat is allemaal een beetje gesetteld.

591
00:40:42.010 --> 00:40:43.870
En de tooling die is echt een stuk beter geworden.

592
00:40:44.010 --> 00:40:48.230
IDE integratie die wordt ook met de week beter op het ogenblik.

593
00:40:48.650 --> 00:40:51.310
Er zijn een paar mensen bezig met language server integratie.

594
00:40:51.490 --> 00:40:55.010
Dus in VS Code ofzo dan kan je dat zo op inhaken.

595
00:40:56.170 --> 00:40:57.010
Oké, cool.

596
00:40:57.010 --> 00:40:59.790
En er waren al IDE's of niet?

597
00:41:00.870 --> 00:41:04.990
Ja, dat is altijd een beetje een gedoe geweest.

598
00:41:05.150 --> 00:41:08.250
Want je hebt, hoe moet ik dat goed uitdrukken?

599
00:41:08.590 --> 00:41:10.970
Er waren een paar IDE's.

600
00:41:11.290 --> 00:41:14.430
En dat is zeker een paar die al vrij vroeg zijn begonnen.

601
00:41:14.530 --> 00:41:17.570
Maar de oorspronkelijke developers daarvan zijn ermee gestopt.

602
00:41:17.670 --> 00:41:21.770
En dat is eigenlijk nooit meer echt van de grond gekomen.

603
00:41:22.450 --> 00:41:25.010
En je ziet de laatste jaren of twee ofzo.

604
00:41:25.010 --> 00:41:28.090
Dat is gewoon weer echt een goede push om dat goed op orde te krijgen.

605
00:41:28.290 --> 00:41:33.070
Ook omdat nieuwe talen gewoon allemaal goed op orde hebben.

606
00:41:33.590 --> 00:41:34.550
Ja, ja, klopt.

607
00:41:34.650 --> 00:41:38.450
Toen als we begonnen in 1990 was het allemaal zo belangrijk niet.

608
00:41:40.590 --> 00:41:43.750
En nu dan zie je met de concurrentie van bijvoorbeeld Rust.

609
00:41:44.350 --> 00:41:46.650
Dat mensen zeggen van oh, dit is een goed idee.

610
00:41:47.970 --> 00:41:49.690
Dat willen wij ook.

611
00:41:50.030 --> 00:41:52.530
Dus dan schrijft iemand een goed doeltje.

612
00:41:54.170 --> 00:41:55.550
Zo kruisbestuift dat.

613
00:41:56.850 --> 00:41:59.710
Ja, ik denk dat toen ik best wel wel kwam.

614
00:42:00.070 --> 00:42:01.990
Ja, het is gewoon steeds belangrijker, simpel.

615
00:42:02.350 --> 00:42:03.250
Dat is nu helemaal zo.

616
00:42:05.770 --> 00:42:07.310
Maar ja, goed.

617
00:42:07.410 --> 00:42:11.230
Ik ben gewoon heel dikke idees gewend.

618
00:42:12.510 --> 00:42:14.930
En heel vaak vind ik dat fijn.

619
00:42:15.070 --> 00:42:18.470
Maar soms vind ik Visual Studio Code of Front-end Development

620
00:42:18.470 --> 00:42:20.150
of even snel wat kleine dingetjes doen.

621
00:42:20.150 --> 00:42:23.070
Ja, dat vind ik gewoon een simpelere idee.

622
00:42:23.930 --> 00:42:25.170
Ja, editor noem het.

623
00:42:25.410 --> 00:42:27.450
Een veredelde editor, zo moet ik het een beetje zien.

624
00:42:28.230 --> 00:42:29.890
Zo noem ik Visual Studio Code dan maar even.

625
00:42:31.530 --> 00:42:32.890
Ja, vind ik het dan ook fijn.

626
00:42:33.870 --> 00:42:34.290
Ja, goed.

627
00:42:34.290 --> 00:42:36.350
Kijk, op school kreeg je met...

628
00:42:36.350 --> 00:42:40.030
Dan moest je juwelijke command daarin C compileren met...

629
00:42:40.570 --> 00:42:41.010
GCC.

630
00:42:41.230 --> 00:42:43.390
Unix was CC en later GNU CC.

631
00:42:43.870 --> 00:42:44.310
GCC.

632
00:42:45.970 --> 00:42:49.010
En hier nog wat later was het G++, meen ik.

633
00:42:49.010 --> 00:42:49.750
Ja, weet ik veel.

634
00:42:49.810 --> 00:42:52.090
Maar goed, dat deed je allemaal gewoon lekker met het handje command line.

635
00:42:52.630 --> 00:42:53.830
En de Pickles deed je dan met VI.

636
00:42:54.090 --> 00:42:55.930
En daar deed je nog wat trucjes in.

637
00:42:56.090 --> 00:42:56.950
Een andere adem, Emacs.

638
00:42:57.110 --> 00:43:01.910
Dus dat was een beetje hoe je dat in Unixland deed.

639
00:43:03.530 --> 00:43:06.890
Maar goed, in Windows is het allemaal wel een stukje luxer, zeg maar.

640
00:43:07.370 --> 00:43:09.490
Dat is de luxe voor je visueelder.

641
00:43:10.430 --> 00:43:11.550
Nou goed, voordeel en nadeel.

642
00:43:11.610 --> 00:43:12.330
Het is gewoon smaak.

643
00:43:12.450 --> 00:43:14.470
Je kan niet zeggen van oké, het een is beter dan het ander.

644
00:43:14.630 --> 00:43:15.010
Dus dat...

645
00:43:16.470 --> 00:43:16.790
Oké.

646
00:43:16.890 --> 00:43:17.690
Maar ik wist trouwens niet eens.

647
00:43:17.690 --> 00:43:18.630
De Haskell is sinds...

648
00:43:18.630 --> 00:43:20.690
Want je zegt nu net 1990, maar dat is sinds...

649
00:43:22.230 --> 00:43:28.670
Wanneer was de eerste versie, zeg maar, uitgekomen?

650
00:43:29.090 --> 00:43:30.510
Volgens mij 1990.

651
00:43:32.550 --> 00:43:34.850
Ik heb het nog opgezocht.

652
00:43:34.990 --> 00:43:36.810
Dus het is letterlijk dertig jaar oud.

653
00:43:37.050 --> 00:43:39.950
Dat zie je trouwens af en toe als je in die compiler code bezig bent.

654
00:43:39.950 --> 00:43:40.930
Zie je dat ook wel terug.

655
00:43:41.850 --> 00:43:44.570
Dat je denkt van nou, hier zijn toch een paar ideeën.

656
00:43:46.210 --> 00:43:49.710
Dat zou ik zelf niet zo geschreven hebben in Modern Haskell.

657
00:43:50.010 --> 00:43:51.310
En dan kijk je naar een commit message.

658
00:43:51.430 --> 00:43:53.730
Dat is letterlijk 25 jaar geleden.

659
00:43:53.970 --> 00:43:55.030
Dan denk je, holy shit.

660
00:43:56.570 --> 00:43:57.310
Ja, op zich.

661
00:43:57.470 --> 00:44:00.430
Maar op zich valt het toch wel mee, zeg maar.

662
00:44:00.590 --> 00:44:04.310
Het is niet zo'n heel, heel oude taal, zeg maar.

663
00:44:04.690 --> 00:44:06.250
Het kan heel erg, ja.

664
00:44:06.570 --> 00:44:07.470
Ja, ja, ja.

665
00:44:07.970 --> 00:44:10.970
Ik bedoel, Java is inmiddels ook al een jaartje of 20.

666
00:44:11.450 --> 00:44:12.850
Misschien nog wel iets ouder.

667
00:44:12.890 --> 00:44:13.730
Ja, je zegt het.

668
00:44:13.730 --> 00:44:14.510
25 jaar?

669
00:44:14.710 --> 00:44:15.030
Ja, wel.

670
00:44:16.210 --> 00:44:18.210
Ja, 25 jaar of iets ouder, ja.

671
00:44:18.590 --> 00:44:20.690
Dus dat schild ontloopt elkaar niet heel erg.

672
00:44:20.950 --> 00:44:25.410
Ja, ik heb meer dan 20 jaar geleden, denk ik, een applet geschreven in Java.

673
00:44:25.750 --> 00:44:27.510
Dan kon je net applets in de browsers bouwen, ja.

674
00:44:28.950 --> 00:44:29.090
Ja.

675
00:44:29.090 --> 00:44:30.190
Toch wel nieuwsgierig, hoor.

676
00:44:31.530 --> 00:44:31.590
Ja.

677
00:44:31.590 --> 00:44:32.170
Zoeken erop.

678
00:44:32.170 --> 00:44:32.710
Ja, zoeken erop.

679
00:44:34.370 --> 00:44:37.190
Ja, Java, die moet echt, volgens mij, tegen de 25 jaar aan zijn.

680
00:44:37.930 --> 00:44:39.770
Wat Bernard ook zegt, dat wel.

681
00:44:40.090 --> 00:44:43.550
Versie 1.0 van Java was 23 januari 1996.

682
00:44:45.310 --> 00:44:48.030
Oké, 24 jaar oud.

683
00:44:48.150 --> 00:44:48.230
Ja.

684
00:44:48.230 --> 00:44:49.010
Betrekkelijk jongen.

685
00:44:49.110 --> 00:44:49.810
Ja, bijna 50.

686
00:44:50.030 --> 00:44:50.590
Bijna 50.

687
00:44:51.570 --> 00:44:53.170
Hey, Real World Haskell.

688
00:44:53.410 --> 00:44:54.130
Dat is een mooi boek.

689
00:44:54.750 --> 00:44:55.910
Real World ook.

690
00:44:57.110 --> 00:45:02.290
Ja, dat is ook een beetje de eilose bron van grappen, natuurlijk.

691
00:45:02.910 --> 00:45:06.950
Want er bestaat geen boek Real World JavaScript of Real World Ruby ofzo.

692
00:45:07.250 --> 00:45:09.530
Dus alle Ruby die wordt geschreven is voor de Real World.

693
00:45:09.930 --> 00:45:12.850
Het is alleen als Haskell dat je dat erbij zit op je boek.

694
00:45:12.850 --> 00:45:14.830
Ja, dat is wel, ja.

695
00:45:15.210 --> 00:45:18.850
Ja, Bernard liet even, ja, dat is voor de podcast luisteraars natuurlijk niet te zien.

696
00:45:18.890 --> 00:45:20.330
Maar Bernard liet even een boek zien.

697
00:45:20.910 --> 00:45:22.350
En Real World Haskell, zeg maar.

698
00:45:23.110 --> 00:45:24.390
O'Reilly waarschijnlijk toch, of niet?

699
00:45:25.050 --> 00:45:27.030
Ja, met een dier op.

700
00:45:27.130 --> 00:45:29.010
In zo'n grote keven.

701
00:45:29.050 --> 00:45:33.190
Ja, wel interessant wie iedere keer verzint welk dier welke taal is.

702
00:45:34.170 --> 00:45:36.170
Maar dat is wel wel grappig.

703
00:45:36.350 --> 00:45:37.250
Ja, oké, nou, cool.

704
00:45:37.470 --> 00:45:38.090
Dat wist ik niet.

705
00:45:38.210 --> 00:45:40.570
Ja, ik had echt het gevoel dat hij nog ouder was.

706
00:45:40.570 --> 00:45:43.510
Maar misschien verwaar ik dat met Lisp of zo?

707
00:45:45.190 --> 00:45:46.010
Ja, dat zal wel.

708
00:45:46.570 --> 00:45:49.310
Ja, dat is een vraag.

709
00:45:50.470 --> 00:45:51.830
Ik kan hem niet goed behandelen.

710
00:45:51.890 --> 00:45:54.770
De Haskell 1.0 specs zijn in 1990 gepubliceerd.

711
00:45:55.970 --> 00:45:56.650
O, de spec?

712
00:45:57.030 --> 00:45:58.150
Ja, 1.0.

713
00:45:58.710 --> 00:45:59.190
Oké.

714
00:45:59.190 --> 00:46:01.610
Zullen we nog wel iets eerder begonnen zijn met samenstellen?

715
00:46:01.610 --> 00:46:02.730
Ja, vast wel, ja.

716
00:46:04.090 --> 00:46:06.110
Ja, een vraag.

717
00:46:06.330 --> 00:46:09.730
Ik weet niet of jij wil of kunt of whatever beantwoorden.

718
00:46:09.730 --> 00:46:13.990
Maar dat wordt altijd gevraagd door mensen met die functioneel programmer.

719
00:46:14.150 --> 00:46:15.330
Maar wat is een monad?

720
00:46:19.150 --> 00:46:24.130
Je hebt zo verschrikkelijk veel slechte monad-tutorials op de internet.

721
00:46:24.610 --> 00:46:25.550
Ja, precies.

722
00:46:26.610 --> 00:46:33.790
Op een gegeven moment was er iemand die dan Haskellers op de hak wou nemen.

723
00:46:33.970 --> 00:46:36.370
En zegt, ja, dat zijn allemaal van die academische wiskundigen.

724
00:46:36.370 --> 00:46:42.650
Die zeggen, ja, monad is een endofunctor in een monoid van die categorie.

725
00:46:43.450 --> 00:46:46.250
En sommige andere mensen gaan helemaal de andere kant op.

726
00:46:47.270 --> 00:46:52.330
En die zeggen van, ja, een monad, dat is een soort burrito.

727
00:46:53.150 --> 00:46:58.350
En dan komt daar ook het verhaal uit dat je denkt, dit gaat helemaal nergens.

728
00:46:58.370 --> 00:47:00.770
We hebben het helemaal verloren wat je probeert uit te leggen.

729
00:47:02.690 --> 00:47:05.070
Ja, het is, wat is een monad?

730
00:47:06.230 --> 00:47:08.090
Als ik het gewoon zou willen beschrijven.

731
00:47:09.010 --> 00:47:12.090
Een monad is gewoon een type data structure.

732
00:47:12.830 --> 00:47:15.130
Daar komt het nog, het lijkt het meeste op.

733
00:47:16.310 --> 00:47:23.170
En net als dat je verschillende data structures hebt met ongeveer dezelfde vorm.

734
00:47:24.130 --> 00:47:27.310
Om dingen in te stoppen, een array en een linked list.

735
00:47:27.770 --> 00:47:28.930
Dat kan je misschien voorstellen.

736
00:47:29.090 --> 00:47:30.790
We hebben ongeveer dezelfde vorm, weet je?

737
00:47:31.390 --> 00:47:34.890
Het zijn een heleboel objecten in een rijtje.

738
00:47:35.810 --> 00:47:39.990
En je kan er een soort van van links naar rechts doorheen als je wil.

739
00:47:41.150 --> 00:47:44.450
En ja, dat, daar zou je voor kunnen stellen.

740
00:47:44.610 --> 00:47:46.990
Dat is een soort van oer data class.

741
00:47:47.330 --> 00:47:49.950
En zowel array als linked list die inherente daarvan.

742
00:47:50.230 --> 00:47:51.030
Ja, precies.

743
00:47:53.430 --> 00:47:58.150
En monad is net zo'n soort oer data class.

744
00:47:58.950 --> 00:48:00.670
Alleen dan is het voor berekeningen.

745
00:48:00.970 --> 00:48:02.570
Dus je, het is functioneel programmeren.

746
00:48:02.570 --> 00:48:06.790
Dus je kan functies gewoon in container stoppen, in data structure stoppen.

747
00:48:07.270 --> 00:48:11.550
En monad is een data structure waar je functies in kan stoppen.

748
00:48:11.790 --> 00:48:13.810
Met bepaalde garanties die je erbij krijgt.

749
00:48:13.910 --> 00:48:17.630
Dus je kan ze bijvoorbeeld één voor één allemaal uitvoeren.

750
00:48:18.890 --> 00:48:23.930
En dan heb je allemaal verschillende implementaties van die monad.

751
00:48:26.050 --> 00:48:28.590
Die die berekening dan allemaal net op een andere manier doet.

752
00:48:28.670 --> 00:48:32.410
Net als een array en een linked list zijn ongeveer hetzelfde.

753
00:48:32.410 --> 00:48:33.410
Maar toch net anders.

754
00:48:34.250 --> 00:48:36.290
Dan heb je ook verschillende monads die allemaal net anders zijn.

755
00:48:36.450 --> 00:48:41.270
Dus je hebt eentje die die voegt state toe aan je berekening als je dat wil.

756
00:48:41.690 --> 00:48:44.470
Of er eentje die die voegt error handling toe.

757
00:48:45.290 --> 00:48:51.590
Of je hebt er eentje die voegt backtracking toe aan willekeurige berekeningen.

758
00:48:51.870 --> 00:48:53.990
Sommige berekeningen is niet heel handig, maar sommige wel.

759
00:48:54.670 --> 00:48:59.670
En zo heb je dus heel veel verschillende monads die allemaal ongeveer dezelfde vorm hebben.

760
00:49:01.050 --> 00:49:01.730
Nou, cool.

761
00:49:02.430 --> 00:49:04.790
Het is weer gewoon een slechte mannen tutorial hier.

762
00:49:05.230 --> 00:49:05.950
Nee, nee, nee.

763
00:49:05.970 --> 00:49:06.750
Maar dat is altijd.

764
00:49:06.850 --> 00:49:07.770
Want dat is wat voor mensen.

765
00:49:09.390 --> 00:49:11.010
Dus ja, ik weet het een beetje.

766
00:49:12.270 --> 00:49:13.890
Bijna prank, zo zeg maar.

767
00:49:14.490 --> 00:49:15.650
Het wordt heel vaak gevraagd.

768
00:49:15.730 --> 00:49:18.330
Het wordt heel vaak niet goed uitgelegd.

769
00:49:19.670 --> 00:49:26.170
En of het is natuurlijk ook hoe iemand het, zeg maar, zelf begrepen heeft het concept.

770
00:49:26.770 --> 00:49:27.450
Kan helemaal anders zijn.

771
00:49:27.450 --> 00:49:28.910
En het werkt ook gewoon helemaal voor iemand.

772
00:49:28.910 --> 00:49:30.710
Het kan helemaal anders zijn dan voor iemand anders.

773
00:49:30.950 --> 00:49:33.410
Niet alle twee gewoon begrijpen en gewoon kunnen inzetten.

774
00:49:34.370 --> 00:49:35.850
Dat is heel bijzonder met monads.

775
00:49:36.150 --> 00:49:42.110
Dus het zijn andere concepten in software ontwikkeling die wat eenduidiger uit te leggen zijn.

776
00:49:42.450 --> 00:49:46.090
Bij mijn monads is dat wel een beetje een show notes.

777
00:49:46.870 --> 00:49:48.710
Gaan we wel een Wikipedia link?

778
00:49:50.030 --> 00:49:51.010
Ja, ik wens ik je succes ook wel.

779
00:49:51.010 --> 00:49:52.850
We zoeken op memes en monads.

780
00:49:53.310 --> 00:49:53.990
Ja, precies.

781
00:49:54.550 --> 00:49:56.070
Monads Explained met comics.

782
00:49:56.070 --> 00:49:59.250
Nou, dan kom je dus bij de berichters uit.

783
00:50:00.390 --> 00:50:04.110
Ja, dat is eigenlijk wel humor.

784
00:50:07.090 --> 00:50:08.910
Ehm, eens even kijken.

785
00:50:13.010 --> 00:50:19.390
Ja, nou goed, je zei net dat Google bijvoorbeeld monads gebruikt voor de spam detection.

786
00:50:19.770 --> 00:50:20.370
Facebook.

787
00:50:20.370 --> 00:50:21.570
Volgt het heel veel?

788
00:50:21.970 --> 00:50:27.650
Is het in populariteit aan het toenemen of is het een beetje stabiel?

789
00:50:29.270 --> 00:50:31.250
Ja, het is moeilijk te zeggen.

790
00:50:31.770 --> 00:50:35.470
Ik ben de laatste tijd zelf meer mee bezig.

791
00:50:35.730 --> 00:50:37.890
Dus ik spreek gewoon meer Haskellers de laatste tijd.

792
00:50:39.390 --> 00:50:41.390
Maar ik weet niet.

793
00:50:41.830 --> 00:50:49.690
Er is een gezegde in de Haskell community en dat is avoid success at all cost.

794
00:50:50.730 --> 00:50:52.910
Maar zeggen ze er dan bij.

795
00:50:53.090 --> 00:50:54.690
Je moet wel de haakjes goed zetten.

796
00:50:55.050 --> 00:50:59.250
Dus het is niet avoid success net all cost.

797
00:50:59.590 --> 00:51:03.190
Nee, het is avoid success at all cost.

798
00:51:04.150 --> 00:51:08.390
En het is prima om succes te hebben, maar we willen niet onze idealen daarvoor opzij zetten.

799
00:51:09.130 --> 00:51:17.790
Dus we gaan voornamelijk niet onze idealen opzij zetten om een grotere groep nieuwe programmeurs te loggen.

800
00:51:17.790 --> 00:51:24.730
Die daar verder geen interesse in zouden hebben en die dat normaal nooit zouden willen doen.

801
00:51:25.670 --> 00:51:28.530
Dus als er mensen Haskell willen leren, dan zijn ze altijd welkom.

802
00:51:29.090 --> 00:51:33.690
Maar als ze dat niet willen, dan gaan we niet enorme marketing campagnes voeren om dat te trekken.

803
00:51:33.970 --> 00:51:37.190
Ik denk dat dat daar ook een beetje mee te maken heeft.

804
00:51:37.970 --> 00:51:43.910
Het zal ook waarschijnlijk nooit zo groot worden als JavaScript of PHP of zelfs Ruby.

805
00:51:43.910 --> 00:51:44.970
Het hoeft niet.

806
00:51:46.130 --> 00:51:49.910
Het is een researchstaal.

807
00:51:51.430 --> 00:51:55.910
Dus ja, zelfs ik het beleven, het blijft ongeveer gelijk.

808
00:51:58.770 --> 00:51:59.410
Oké.

809
00:51:59.550 --> 00:52:02.410
Dat is trouwens ook niet eens bij stilstaan.

810
00:52:03.290 --> 00:52:09.730
Toen je in het leger zat, en toen TNO aan het klussen was voor het leger,

811
00:52:09.950 --> 00:52:12.490
was er toespraak van hebben zij toen Haskell toevallig,

812
00:52:12.490 --> 00:52:16.270
want dat zou ook kunnen toch voor bepaalde systemen?

813
00:52:17.970 --> 00:52:18.490
Of is dat?

814
00:52:18.670 --> 00:52:20.090
Ja, dat hoeft natuurlijk niet.

815
00:52:20.370 --> 00:52:23.470
Dat mag ik natuurlijk niet al te veel uitbrengen,

816
00:52:23.570 --> 00:52:27.810
maar ik kan wel vertellen dat, zeker op het moment,

817
00:52:28.470 --> 00:52:32.230
in de laatste decennium, de laatste 5 jaar,

818
00:52:34.150 --> 00:52:38.490
ik ken mensen die speciaal zijn aangenomen bij TNO,

819
00:52:40.230 --> 00:52:45.870
wiens baan eigenlijk is om alle crappy onderzoeks Python code

820
00:52:46.870 --> 00:52:51.490
te vertalen van hun Jupyter Notebook naar een C++

821
00:52:52.810 --> 00:52:55.650
om het ook gewoon performant te draaien.

822
00:52:55.850 --> 00:53:00.670
Ik kan je best voorstellen dat er een van de dingen waar ze nu mee bezig zijn,

823
00:53:00.950 --> 00:53:03.450
bijvoorbeeld als je met een radar ergens naar aan het kijken bent,

824
00:53:04.030 --> 00:53:07.890
dan wil je graag weten, ja, het is ongeveer zo groot als een drone.

825
00:53:07.890 --> 00:53:10.510
Maar sommige vogels zijn ook zo groot als een drone,

826
00:53:10.610 --> 00:53:12.310
dus is het nou een drone of een vogel?

827
00:53:13.510 --> 00:53:17.250
Want dat kan belangrijk zijn, een drone kan van de veld zijn,

828
00:53:17.330 --> 00:53:18.190
een vogel was ook niet.

829
00:53:19.470 --> 00:53:22.850
Dus waar ze naar kijken bijvoorbeeld is,

830
00:53:23.790 --> 00:53:26.930
wat heeft een vogel wel en een drone niet?

831
00:53:27.210 --> 00:53:30.590
Nou, vleugels. Een drone die heeft namelijk van de propellertjes.

832
00:53:30.810 --> 00:53:34.110
En die gaan veel sneller dan dat een vleugel met zijn wiki klapt

833
00:53:34.110 --> 00:53:36.350
en dat kun je terugzien in het radar signaal.

834
00:53:37.130 --> 00:53:39.650
En daar heb je dus allemaal berekeningen voor

835
00:53:39.650 --> 00:53:43.310
en die werken uitstekend, ook in Python kan ik je vertellen.

836
00:53:43.810 --> 00:53:45.810
Alleen daar duurt het misschien vijf seconden

837
00:53:45.810 --> 00:53:48.150
voordat je dat allemaal uitregelt als het daar gaat.

838
00:53:48.670 --> 00:53:51.070
Een paar gigabyte data moet er doorheen gebladerd worden.

839
00:53:52.490 --> 00:53:56.430
En die vijf seconden, dat is wel gewoon te veel of te lang.

840
00:53:57.150 --> 00:53:59.470
Dus die vriend van mij, zijn baan is eigenlijk

841
00:53:59.470 --> 00:54:03.410
om dan die soort van werkende onderzoekscode te pakken

842
00:54:03.410 --> 00:54:05.710
en alles weg te gooien wat niet belangrijk is

843
00:54:05.710 --> 00:54:08.270
en te zorgen dat hij het ook in een tiende van de seconde kan.

844
00:54:08.630 --> 00:54:10.370
Oh ja, oh ja, grappig, ja.

845
00:54:10.750 --> 00:54:15.050
Dus ja, er wordt behoorlijk wat onderzoeksprogrammeerdingen

846
00:54:15.050 --> 00:54:17.650
worden gedaan bij TNO en ook bij Defensie

847
00:54:17.650 --> 00:54:20.030
en waarschijnlijk overal wel in laboratoria.

848
00:54:20.870 --> 00:54:23.130
En soms is dat goed genoeg en soms niet.

849
00:54:24.090 --> 00:54:25.210
Ja, die worden wat goed, ja.

850
00:54:27.390 --> 00:54:28.290
Oké, cool.

851
00:54:28.910 --> 00:54:31.710
Nou, dat was denk ik wel een goede dosis.

852
00:54:31.710 --> 00:54:32.770
Haskell denk ik.

853
00:54:34.670 --> 00:54:38.250
Heb jij nog bij laten wat de zaken die je eventueel nog wil bespreken?

854
00:54:38.350 --> 00:54:41.950
Nee, nee, ik had ook ten voorbereiding wat dingen opgezocht

855
00:54:41.950 --> 00:54:47.610
over Haskell in real life, of Haskell in databases

856
00:54:47.610 --> 00:54:50.130
en dan kom je toch op wat websites terecht

857
00:54:50.130 --> 00:54:51.810
dat daar gewoon overal wel libraries voor zijn

858
00:54:51.810 --> 00:54:53.830
en dat is toch anders dan ik me kon herinneren

859
00:54:53.830 --> 00:54:55.750
en dat, ja, was toch wel goed.

860
00:54:56.450 --> 00:55:00.970
Ook wat dingen over Haskell en AI zag ik langskomen.

861
00:55:00.970 --> 00:55:03.990
Ik zal die links wel, als ik ze vind, even in de show note zetten

862
00:55:03.990 --> 00:55:09.150
en als jij goede links hebt om met Haskell te beginnen

863
00:55:09.150 --> 00:55:10.630
dan nemen we die ook op.

864
00:55:11.850 --> 00:55:13.590
Ja, ik zal het op Slack zetten.

865
00:55:13.830 --> 00:55:14.230
Ja, cool.

866
00:55:15.770 --> 00:55:17.130
Nice, nice, nice.

867
00:55:17.790 --> 00:55:19.530
Volgend onderwerp is een brede.

868
00:55:19.910 --> 00:55:22.650
Dus we gaan het er doen op z'n CodeKlets

869
00:55:24.770 --> 00:55:29.770
en het gaat over, dat is iets wat op jouw blog staat

870
00:55:29.770 --> 00:55:31.650
en dat vond ik wel interessant.

871
00:55:31.790 --> 00:55:35.410
Er stond er een in dat je ook verstand hebt

872
00:55:35.410 --> 00:55:37.210
van optimalisatie en scalability.

873
00:55:38.030 --> 00:55:40.710
Nou zeg ik dingen half Nederlands, half Engels.

874
00:55:41.670 --> 00:55:43.610
Optimalisatie en schaalbaarheid.

875
00:55:44.330 --> 00:55:46.510
Nou, dat is natuurlijk een heel breed begrip.

876
00:55:46.730 --> 00:55:48.110
Ik vind het op zich wel interessant.

877
00:55:48.770 --> 00:55:51.130
Niet per se met dit onderwerp.

878
00:55:51.190 --> 00:55:52.330
Nou, wel met dit onderwerp te maken.

879
00:55:52.510 --> 00:55:55.390
Want laatst was er een podcast bij ChangeLog.

880
00:55:55.650 --> 00:55:57.910
Er ging over, er was een collega van Bart de Water.

881
00:55:59.330 --> 00:56:04.130
Er ging over performance en, hoe ging dat nou?

882
00:56:05.890 --> 00:56:06.530
Ja, en napkin.

883
00:56:06.590 --> 00:56:08.910
Dus dat je heel snel kon bepalen van oké,

884
00:56:09.550 --> 00:56:11.250
ja, hoe snel gaat iets zijn?

885
00:56:11.650 --> 00:56:11.890
Weet je wel?

886
00:56:12.030 --> 00:56:14.190
We weten bijvoorbeeld de latency over het netwerk

887
00:56:14.190 --> 00:56:16.690
heeft een bepaalde impact.

888
00:56:17.090 --> 00:56:18.570
Cash, sorry cash niet.

889
00:56:18.970 --> 00:56:20.250
Je register is op je CPU.

890
00:56:21.790 --> 00:56:22.730
L1 cash, L2 cash.

891
00:56:23.010 --> 00:56:24.010
Dus dat is allemaal categorieën.

892
00:56:24.010 --> 00:56:27.550
Dus dan kon je een beetje beredeneren, zeg maar,

893
00:56:27.690 --> 00:56:29.970
hoeveel tijd gaat zo'n algoritme kosten, zeg maar,

894
00:56:30.070 --> 00:56:31.350
en wat kost het ook kan geld.

895
00:56:33.070 --> 00:56:34.370
En dat vond ik op zich wel interessant.

896
00:56:34.490 --> 00:56:36.690
Niet per se iets wat ik daar met Egen Heel Blin zat.

897
00:56:36.830 --> 00:56:38.810
Want voor hem was het echt gewoon, ja,

898
00:56:38.930 --> 00:56:40.870
dat was een belangrijk deel van zijn taak,

899
00:56:41.030 --> 00:56:45.130
was de Ruby on Rails applicatie natuurlijk bij Shopify.

900
00:56:45.910 --> 00:56:46.530
Daar werkt-ie.

901
00:56:48.630 --> 00:56:49.830
Dus dat vond ik wel interessant.

902
00:56:50.270 --> 00:56:52.070
Maar ja, nou kan ik het heel flauw doen

903
00:56:52.070 --> 00:56:53.530
in een heel breed stel.

904
00:56:53.650 --> 00:56:56.050
En zeggen wij, wat weet jij van optimalisatie en scalability?

905
00:56:56.330 --> 00:56:58.970
Nou, dat vind ik alles.

906
00:57:00.470 --> 00:57:01.370
Nou, dat denk ik.

907
00:57:02.550 --> 00:57:04.210
Zoveel weet ik er ook weer niet van.

908
00:57:04.730 --> 00:57:06.710
Nee, maar goed, maar laten we eens beginnen.

909
00:57:06.890 --> 00:57:09.470
Maar stel dat je nu, ja, dat kan op veel manier.

910
00:57:09.750 --> 00:57:10.450
Laat ik anders zeggen.

911
00:57:10.530 --> 00:57:16.110
Stel dat iemand jou benadert en vraagt van,

912
00:57:16.230 --> 00:57:18.730
oké, we willen dat dit systeem, ja,

913
00:57:18.730 --> 00:57:21.210
dat loopt allemaal niet lekker en het gaat voor geen meter.

914
00:57:21.210 --> 00:57:24.110
Die zouden bij jou aankloppen.

915
00:57:24.630 --> 00:57:25.190
Dat is een opdracht.

916
00:57:25.370 --> 00:57:26.170
Dat zou kunnen, ja.

917
00:57:26.350 --> 00:57:27.230
Dat zou kunnen, ja.

918
00:57:28.210 --> 00:57:29.310
En zijn er dan vraagtukken?

919
00:57:29.330 --> 00:57:30.390
Ja, dat hoef je niet specifiek te zijn.

920
00:57:30.510 --> 00:57:33.210
Oké, bij opdracht X is dat gebeurd.

921
00:57:33.470 --> 00:57:35.950
Maar wat voor zaken moeten we dan aan denken, zeg maar?

922
00:57:36.130 --> 00:57:38.790
Nou ja, dat zijn wat je vaak ziet.

923
00:57:39.130 --> 00:57:42.370
En dat stand voornamelijk aan scalability is een woord

924
00:57:42.370 --> 00:57:44.330
met een soort van meerdere betekenissen.

925
00:57:44.690 --> 00:57:46.330
Je hebt de scalability van een systeem.

926
00:57:47.270 --> 00:57:49.610
Maar je hebt ook een soort van scalability

927
00:57:50.310 --> 00:57:53.650
van je hele architectuur van misschien wel meerdere systemen.

928
00:57:54.570 --> 00:57:58.030
En wat je vaak ziet, of in ieder geval wat ik regelmatig tegen ben gekomen,

929
00:57:58.350 --> 00:58:04.290
is dat je een systeem hebt wat ontwikkeld is voor een bepaalde use case.

930
00:58:04.730 --> 00:58:07.930
Laten we zeggen, een of andere start-up die begon

931
00:58:07.930 --> 00:58:12.530
en die moest snel eventjes in elkaar draaien om als MVP te doen.

932
00:58:13.090 --> 00:58:16.290
Daarna, op een gegeven moment, kwamen er gebruikers.

933
00:58:16.290 --> 00:58:20.810
En een paar jaar later heeft het systeem wat ontwikkeld is voor nou,

934
00:58:21.210 --> 00:58:23.110
als we 100 klanten hebben is het al veel,

935
00:58:23.730 --> 00:58:27.730
dat moet plotseling 1000 klanten verwerken of misschien wel 10.000.

936
00:58:27.890 --> 00:58:30.290
Dat ene servertje dat staat te roken

937
00:58:30.830 --> 00:58:35.310
en dat is helemaal niet meer geschikt voor wat het nu moet doen,

938
00:58:35.710 --> 00:58:38.530
terwijl het waarschijnlijk vroeger was het prima.

939
00:58:40.570 --> 00:58:45.990
En dus wat je vaak ziet is dat dingen die appropriate zijn,

940
00:58:45.990 --> 00:58:51.010
die die gewoon goed geschikt zijn voor een bepaalde hoeveelheid load,

941
00:58:51.790 --> 00:58:56.270
dat die niet meer geschikt zijn voor de volgende stap.

942
00:58:57.110 --> 00:58:59.590
Dus als iemand zo bij mij zou aankomen van,

943
00:59:00.530 --> 00:59:03.010
we hebben een probleem, er komt roken uit alle servers

944
00:59:03.590 --> 00:59:06.790
en een paar keer naar laden kost 10 seconden, help.

945
00:59:08.630 --> 00:59:12.150
Dan is eigenlijk het eerste wat je moet doen,

946
00:59:12.150 --> 00:59:16.670
is kijken nou van wat is nou eigenlijk de bottleneck in je systeem?

947
00:59:17.090 --> 00:59:19.470
Wat is het langzaamste deel?

948
00:59:19.910 --> 00:59:23.350
En als je dat dan sneller maakt,

949
00:59:23.630 --> 00:59:24.890
misschien door te herschrijven,

950
00:59:25.110 --> 00:59:27.930
misschien door een betere architecture ervoor te maken,

951
00:59:29.210 --> 00:59:31.270
dan komen we vanzelf op een nieuwe bottleneck uit.

952
00:59:32.430 --> 00:59:33.490
Waar je dan mee aan vragen moet.

953
00:59:34.350 --> 00:59:37.550
Oké, dat kan natuurlijk van alles zijn.

954
00:59:37.550 --> 00:59:41.370
Ik kan me voorstellen dat bijvoorbeeld een e-commerce platform,

955
00:59:45.470 --> 00:59:48.070
toevallig nu Black Friday staat voor de deur,

956
00:59:49.350 --> 00:59:50.290
en dat ze denken, nou...

957
00:59:50.290 --> 00:59:53.870
Bortewater zal het wel naar zijn zin hebben bij Shopify.

958
00:59:55.590 --> 00:59:57.090
Ja, dat denk ik wel.

959
00:59:57.730 --> 01:00:00.780
Elke jaar met Black Friday hebben ze ook altijd zo'n filmpje van

960
01:00:01.270 --> 01:00:03.650
hoe hard de pan uitvliegt gedurende die dag.

961
01:00:03.870 --> 01:00:05.830
Al die loads met een wereldbol.

962
01:00:06.390 --> 01:00:08.810
Ja, dat is fantastisch om te zien.

963
01:00:10.150 --> 01:00:10.930
Ja, dat is echt niet normaal.

964
01:00:11.090 --> 01:00:12.710
Maar het is ook Black Friday.

965
01:00:13.110 --> 01:00:14.470
Gisteren was het 11.11.

966
01:00:15.270 --> 01:00:17.470
De singles deden, volgens mij...

967
01:00:18.330 --> 01:00:18.830
Sinterwaten.

968
01:00:22.470 --> 01:00:23.830
Volgens mij was het...

969
01:00:24.350 --> 01:00:27.190
Ja, gisteren hadden ze in de eerste 15 minuten

970
01:00:27.190 --> 01:00:30.370
nu al meer omzet gedraaid dan de singles deden van vorig jaar.

971
01:00:30.910 --> 01:00:33.830
Dat soort records waar je echt...

972
01:00:33.830 --> 01:00:34.210
Dat is normaal.

973
01:00:36.930 --> 01:00:37.410
Oké.

974
01:00:38.150 --> 01:00:41.230
Maar dat is wel stoer als je dat soort serves gaat maken

975
01:00:41.230 --> 01:00:42.590
en dat die dat gewoon aankunnen.

976
01:00:42.850 --> 01:00:47.870
Dat er in een kwartiertijd zo ontzettend veel orders geplaatst worden.

977
01:00:47.930 --> 01:00:48.530
Dat is echt bizar.

978
01:00:50.210 --> 01:00:51.890
Ja, en dat moet je ook...

979
01:00:51.890 --> 01:00:55.310
Als je het jaar elk jaar doet, dan weet je ongeveer

980
01:00:55.310 --> 01:00:56.390
wat je kan verwachten.

981
01:00:56.630 --> 01:00:59.730
Maar je kan het nooit voorbereiden.

982
01:01:00.010 --> 01:01:01.650
Het gaat altijd anders dan je denkt.

983
01:01:01.650 --> 01:01:04.210
Dus je kan wel drills gaan doen.

984
01:01:04.310 --> 01:01:05.630
Ja, dat klopt.

985
01:01:07.790 --> 01:01:10.890
Ik heb een tijdje zo'n post geleden

986
01:01:10.890 --> 01:01:13.390
op de Node.js podcast...

987
01:01:13.390 --> 01:01:15.850
Ik weet niet eens meer hoe die precies heette.

988
01:01:16.210 --> 01:01:19.370
Maar daar kwam iedere keer wel een bedrijf langs die...

989
01:01:19.370 --> 01:01:20.790
Er is iemand langs die bij een bedrijf werkte

990
01:01:20.790 --> 01:01:22.450
en die legde uit hoe ze bepaalde dingen deden.

991
01:01:22.530 --> 01:01:24.330
Maar dat was ook één bedrijf die had...

992
01:01:24.330 --> 01:01:25.230
Ik weet echt niet meer welke.

993
01:01:26.170 --> 01:01:28.930
Dat was ook een e-commercepartij.

994
01:01:28.990 --> 01:01:30.650
Maar die hadden gewoon constant...

995
01:01:30.650 --> 01:01:32.910
Die hadden altijd iets van...

996
01:01:32.910 --> 01:01:37.630
30% load zetten ze bewust zelf op het systeem.

997
01:01:37.970 --> 01:01:38.570
Altijd.

998
01:01:40.030 --> 01:01:41.910
En dat kon ze dan weghalen.

999
01:01:42.090 --> 01:01:44.770
Dus als ze ademrit nodig hadden, dan kon ze het weghalen.

1000
01:01:44.910 --> 01:01:48.170
Maar ze stressten hun systeem gewoon altijd.

1001
01:01:48.770 --> 01:01:50.510
Om extra, zeg maar.

1002
01:01:51.890 --> 01:01:54.090
Om ook om te zien wat er om valt.

1003
01:01:54.830 --> 01:01:59.610
Dus dat zijn echt heel andere manieren van...

1004
01:01:59.610 --> 01:02:01.550
Ja, manier van denken bij mij.

1005
01:02:02.230 --> 01:02:02.970
Sorry, ja.

1006
01:02:04.010 --> 01:02:08.830
Wat ik bijvoorbeeld vaak wel wel zie is...

1007
01:02:08.830 --> 01:02:11.450
Je hebt één van de dingen...

1008
01:02:11.450 --> 01:02:14.610
Kijk, voor een webservice...

1009
01:02:15.390 --> 01:02:19.690
Dan is het gewoon best wel straight forward.

1010
01:02:20.790 --> 01:02:22.910
En dan kan je wel zeggen van...

1011
01:02:22.910 --> 01:02:26.450
Oké, deze server die draait de hele tijd 100% CPU.

1012
01:02:26.990 --> 01:02:28.590
Dan zetten we er gewoon nog eentje naast.

1013
01:02:30.410 --> 01:02:32.590
En met een load balancer...

1014
01:02:33.870 --> 01:02:35.310
Dat is redelijk straight forward.

1015
01:02:35.570 --> 01:02:37.930
En eigenlijk elke grote web framework...

1016
01:02:37.930 --> 01:02:39.350
Die heeft daar gewoon dingen voor.

1017
01:02:39.470 --> 01:02:41.830
Dat je dat bijna plug en play...

1018
01:02:41.830 --> 01:02:44.070
Gewoon met de slide-outje groter kan maken, bijna.

1019
01:02:46.430 --> 01:02:48.230
En wat je dan vaak ziet...

1020
01:02:48.230 --> 01:02:51.050
Is dat mensen die maken het grotere en grotere en grotere...

1021
01:02:51.050 --> 01:02:52.630
En dat gaat heel lang goed.

1022
01:02:53.970 --> 01:02:57.530
Tot op een gegeven moment dat ene ding wat niet mee is gehaald...

1023
01:02:57.530 --> 01:02:58.670
Dat is vaak de database.

1024
01:02:59.550 --> 01:03:02.430
Dat is dan het grootste probleem.

1025
01:03:02.750 --> 01:03:06.950
Dus je ziet vaak de data die wordt vaak veel groter.

1026
01:03:08.090 --> 01:03:11.990
Het eerste wat je ziet is dat indexen bijvoorbeeld...

1027
01:03:11.990 --> 01:03:14.910
Die niet zoveel uitmaken op een tabel van 100 rijen.

1028
01:03:15.150 --> 01:03:18.790
Met een tabel van een miljoen rijen begint dat toch wel echt belangrijk te worden.

1029
01:03:19.970 --> 01:03:24.930
Dus je ziet heel vaak dat er dan wel een paar indexen zijn gemaakt.

1030
01:03:24.930 --> 01:03:29.290
Maar dat mensen nog niet gewoon grondig hebben gekeken...

1031
01:03:29.290 --> 01:03:31.750
Van waar zijn ze nou wel nodig en waar niet.

1032
01:03:33.130 --> 01:03:37.150
Dat wordt een ad hoc bijgezet als het nodig begint te worden.

1033
01:03:37.590 --> 01:03:40.330
In plaats van voordat het kapot gaat.

1034
01:03:42.050 --> 01:03:45.090
En wat je ook heel vaak ziet is dat...

1035
01:03:45.590 --> 01:03:48.930
Zeker bij een begindende start-up waar geld super schaars is...

1036
01:03:49.530 --> 01:03:51.730
Doen mensen bijvoorbeeld analytische queries.

1037
01:03:52.210 --> 01:03:54.690
Voor een data-team of een growth-team of zo.

1038
01:03:54.690 --> 01:03:56.430
Dan hebben ze een of twee mensen.

1039
01:03:56.790 --> 01:04:02.210
En die doen een query op zondag nacht in een cronjobje tegen de grote database aan.

1040
01:04:05.110 --> 01:04:09.970
En ook dat zijn gewoon dingen dat kan je beter niet doen.

1041
01:04:10.370 --> 01:04:12.390
Want er zit ontzettend veel lood op zo'n database.

1042
01:04:13.830 --> 01:04:15.390
En het is vaak ook...

1043
01:04:15.390 --> 01:04:17.330
Zijn dat queries die over een hele tabel heen gaan.

1044
01:04:17.470 --> 01:04:19.370
Dus een index maakt er eigenlijk niet meer uit.

1045
01:04:20.510 --> 01:04:20.950
En...

1046
01:04:20.950 --> 01:04:25.330
Ik weet wel, we hadden op een gegeven moment een tabel met 5 miljarden rijen.

1047
01:04:25.990 --> 01:04:27.870
En dat was gewoon echt niet meer praktisch.

1048
01:04:27.930 --> 01:04:30.590
Om daar nog die analytische queries tegen die database aan te doen.

1049
01:04:30.810 --> 01:04:34.210
Dus dat hebben we op een gegeven moment ook verplaatst naar Redshift.

1050
01:04:34.230 --> 01:04:35.290
Naar zo'n data warehouse.

1051
01:04:37.110 --> 01:04:39.570
Die daar A. Veel efficiënter mee kan omgaan.

1052
01:04:39.690 --> 01:04:42.030
Want het kan helemaal een sharder over 100.000 servers.

1053
01:04:42.790 --> 01:04:47.370
En B. Dan was al die extra load weg van onze productiedatabase.

1054
01:04:48.470 --> 01:04:50.290
En dat scheelde ook al.

1055
01:04:50.370 --> 01:04:56.750
Toen ik daar kwam, toen viel de ding bij wijze van spreken elke 2 weken om.

1056
01:04:58.270 --> 01:05:01.270
En stap voor stap hebben we dat langzamer zeker beter gemaakt.

1057
01:05:03.390 --> 01:05:06.290
En inderdaad geen crep erop draaien die er niet op wordt.

1058
01:05:06.670 --> 01:05:07.730
Dat was wel een groot deel.

1059
01:05:09.710 --> 01:05:10.670
Ja, precies.

1060
01:05:10.670 --> 01:05:16.250
Dat is mijn oude jouw boerenfluitje manier van hoe ik tegen webdevelopment op kan.

1061
01:05:16.390 --> 01:05:20.570
Want dat zei mensen ook van ja, dat moet schalen.

1062
01:05:20.750 --> 01:05:22.850
Dat is makkelijk gedaan met een webapplicatie.

1063
01:05:22.990 --> 01:05:25.510
Ik zeg ja, de webserver die is makkelijk te schalen.

1064
01:05:26.330 --> 01:05:26.870
Ja, vind je wel.

1065
01:05:27.630 --> 01:05:29.550
Het irritant is, die database daarachter.

1066
01:05:29.690 --> 01:05:32.850
Goed, dat was de traditionele stack in .net.

1067
01:05:33.390 --> 01:05:36.970
Dat was een .net webapplicatie.

1068
01:05:37.430 --> 01:05:38.770
En daarachter zat gewoon een SQL server.

1069
01:05:39.430 --> 01:05:42.370
Zeg maar, twee SQL servers naast kadra in een clustertje.

1070
01:05:42.430 --> 01:05:44.750
Dat is al een stukje ingewikkelder zeg maar.

1071
01:05:45.030 --> 01:05:46.970
Dan gewoon even twee, drie servers erbij zetten.

1072
01:05:47.090 --> 01:05:50.830
Dus dat was wel een andere tak van sport.

1073
01:05:51.070 --> 01:05:52.390
En ook precies wat jij zegt ook.

1074
01:05:52.410 --> 01:05:53.850
Ook een database is gewoon stellen.

1075
01:05:54.050 --> 01:05:55.470
Maar ja, gooi maar de index op.

1076
01:05:56.370 --> 01:05:58.530
We zoeken daar ook vaak, doe daar ook nog maar één op.

1077
01:05:58.790 --> 01:05:59.270
Maakt niet uit.

1078
01:05:59.410 --> 01:06:01.590
En dan op een gegeven moment loopt het echt zo.

1079
01:06:01.670 --> 01:06:02.990
Het zet het gewoon niet goed meer.

1080
01:06:03.770 --> 01:06:06.310
Dus dat zijn wel interessante dingen.

1081
01:06:06.310 --> 01:06:08.810
Nou goed, die podcast dat was,

1082
01:06:08.890 --> 01:06:11.770
volgens mij ging om napkin met math.

1083
01:06:12.150 --> 01:06:13.730
Dus dan wist je een beetje in,

1084
01:06:13.810 --> 01:06:18.430
kon je heel snel een korte tijd even bepalen van wat gaat het kosten,

1085
01:06:18.490 --> 01:06:20.050
hoeveel tijd kost het.

1086
01:06:20.610 --> 01:06:22.450
En dan, ja, dat was,

1087
01:06:22.950 --> 01:06:23.890
er zit met de metatiek achter,

1088
01:06:23.990 --> 01:06:26.310
dan kon je heel best wel goed en okkurig bepalen

1089
01:06:27.970 --> 01:06:30.570
hoeveel performance en hoeveel tijd en geld kost het zeg maar.

1090
01:06:30.730 --> 01:06:33.810
Ja, je moest volgens mij samenvatend gewoon

1091
01:06:35.570 --> 01:06:38.690
een orde groter berekening maken door wat getallen achter elkaar,

1092
01:06:38.970 --> 01:06:40.370
te vinden voldoende die zinnig waren.

1093
01:06:40.610 --> 01:06:43.370
En dan had je een idee of het hoeveel nullen het waren

1094
01:06:43.370 --> 01:06:45.250
en of je daar ver naast zat of niet.

1095
01:06:47.070 --> 01:06:49.650
Ja, het had een aantal voorbeelden volgens mij uit vroeger.

1096
01:06:49.710 --> 01:06:51.150
Ik weet niet waar wij maar niet.

1097
01:06:51.610 --> 01:06:54.690
Dat beweest dat die metatiek heel erg goed leek.

1098
01:06:55.910 --> 01:06:58.870
Dus dat, ja, en nu is het tegenwoordig zeg,

1099
01:06:58.930 --> 01:07:00.350
oh ja, dat is een cloud up schaal.

1100
01:07:00.350 --> 01:07:03.370
Ja, dat zou even vragen trouwens.

1101
01:07:04.070 --> 01:07:07.350
We hebben dat op een gegeven moment, ook bij Witreser trouwens,

1102
01:07:09.490 --> 01:07:11.730
hadden we op een gegeven moment ergens een artist.

1103
01:07:11.810 --> 01:07:13.910
Ik weet niet eens meer waarom dat precies was.

1104
01:07:15.530 --> 01:07:16.670
Oh ja, ik weet het nog.

1105
01:07:16.750 --> 01:07:17.930
Dat was namelijk George Trulli.

1106
01:07:18.070 --> 01:07:20.030
Die had een patch gereleased.

1107
01:07:22.970 --> 01:07:27.560
Je hebt gewoon de front-end die de webpagina serveert.

1108
01:07:27.560 --> 01:07:30.520
We hadden ook een cluster met die background jobs.

1109
01:07:30.760 --> 01:07:36.820
Dus allemaal emails en betalingen opschonen van oude bestanden.

1110
01:07:37.000 --> 01:07:37.700
Dat soort dingen.

1111
01:07:37.700 --> 01:07:39.520
Dat werd allemaal door die background cluster gedaan.

1112
01:07:42.300 --> 01:07:43.960
En ik had iets gereleased,

1113
01:07:44.180 --> 01:07:48.000
wat die background workers deed crashen, ons start-up.

1114
01:07:50.620 --> 01:07:53.120
Maar de web applicatie, die werkte wel.

1115
01:07:53.540 --> 01:07:54.940
Dus daar werden we nog steeds met,

1116
01:07:54.940 --> 01:07:58.280
dat waren op dat moment een stuk of 40 servers.

1117
01:07:59.740 --> 01:08:02.760
Op volle pot werden er nieuwe jobs in de queue gezet.

1118
01:08:03.180 --> 01:08:04.180
Dit moet nog gedaan worden.

1119
01:08:04.760 --> 01:08:06.300
Maar die workers waren gedaan.

1120
01:08:06.460 --> 01:08:08.940
Dus die queue werd groter en groter en groter.

1121
01:08:09.760 --> 01:08:12.460
Op een gegeven moment zat dat vrij snel door.

1122
01:08:12.580 --> 01:08:15.360
Maar tegen die tijd zaten er al een miljoen jobs in de queue.

1123
01:08:17.880 --> 01:08:22.220
En rollback, dat duurde toen nog best wel lang.

1124
01:08:24.480 --> 01:08:26.700
Dus gelukkig was het een cloud-based queue.

1125
01:08:26.960 --> 01:08:29.740
Dus daar kun je in principe zoveel in stoppen als je wil.

1126
01:08:29.980 --> 01:08:32.440
En Amazon dacht wel dat dat gebeurde.

1127
01:08:33.100 --> 01:08:34.440
Dus op een gegeven moment, wij hadden gerollbacked.

1128
01:08:35.600 --> 01:08:36.340
Al die workers erop.

1129
01:08:36.940 --> 01:08:39.780
Die workers automatisch opschalen ook.

1130
01:08:40.480 --> 01:08:42.440
Dus dat komt helemaal goed.

1131
01:08:42.460 --> 01:08:43.380
Die cluster schaalt op.

1132
01:08:43.400 --> 01:08:44.720
Die draait even door die queue heen.

1133
01:08:44.940 --> 01:08:47.440
Er stonden inmiddels 3 miljoen jobs in.

1134
01:08:48.880 --> 01:08:51.020
Die cluster draait even door die jobs heen.

1135
01:08:51.020 --> 01:08:53.300
Dan ben je zo weer terug.

1136
01:08:53.940 --> 01:08:56.020
Maar dat was niet helemaal waar.

1137
01:08:56.500 --> 01:09:01.380
Want een groot gedeelte van die jobs, dat waren mails die je verstuurd moesten worden.

1138
01:09:01.580 --> 01:09:03.820
Dat kan je in Rails, dat kan je heel makkelijk doen zeg maar.

1139
01:09:03.860 --> 01:09:05.980
Mail.new.deliverlater.

1140
01:09:07.240 --> 01:09:09.220
En dan hoef je dat niet in je request zelf te doen.

1141
01:09:09.300 --> 01:09:10.900
Maar dan kan je dat in de achtergrond doen.

1142
01:09:11.180 --> 01:09:11.540
Super.

1143
01:09:12.700 --> 01:09:16.020
Maar ja, we hadden één mailserver.

1144
01:09:17.100 --> 01:09:18.520
We hadden één harde schijf.

1145
01:09:18.520 --> 01:09:22.960
En die harde schijf die met de verzenden berichten was helemaal vol.

1146
01:09:23.980 --> 01:09:29.740
En hij probeerde volle plot die dingen door te sturen naar Centgrid was het geloof ik.

1147
01:09:30.320 --> 01:09:31.820
Maar ja, die zei ook op een gegeven moment.

1148
01:09:32.180 --> 01:09:33.180
Nou ja, hallo jongens.

1149
01:09:33.520 --> 01:09:34.300
Doe even kalm aan.

1150
01:09:34.400 --> 01:09:35.400
Jullie worden gereed limit.

1151
01:09:35.600 --> 01:09:38.000
Want zo veel mails versturen, dat is niet oké.

1152
01:09:40.340 --> 01:09:45.060
Dus ja, en die background job cluster maar opschalen en opschalen en opschalen.

1153
01:09:45.060 --> 01:09:50.160
Maar ja, die werden gewoon echt niet meer mails verstuurd dan dat er verstuurd werden.

1154
01:09:50.900 --> 01:09:52.880
Dus dat was een heel gedoe.

1155
01:09:53.160 --> 01:09:56.800
Dus uiteindelijk heeft het echt een euro 5 geduurd voordat die queue weer leeg was.

1156
01:09:57.540 --> 01:10:00.860
Op een gegeven moment hadden we zoveel workers zoals we wilden.

1157
01:10:01.780 --> 01:10:06.180
Niet veel later is die mailserver ook auto scanning geworden trouwens.

1158
01:10:06.660 --> 01:10:08.160
Oh ja, oké.

1159
01:10:08.240 --> 01:10:11.240
Nee, maar goed, ik grap er natuurlijk over.

1160
01:10:11.400 --> 01:10:13.040
Omdat ik vond, ja, ho de klautie heeft allerlei beloften.

1161
01:10:13.040 --> 01:10:14.560
Maar er komen natuurlijk ook andere dingen bij.

1162
01:10:14.620 --> 01:10:15.780
Ook kosten bijvoorbeeld.

1163
01:10:16.020 --> 01:10:18.480
Je kunt natuurlijk wel denken, oké, schaam onbeperkt.

1164
01:10:18.660 --> 01:10:20.500
Maar ja, het gaat ook wel wat geld kosten.

1165
01:10:21.760 --> 01:10:26.380
Dus het maakt, de klaut heeft het gewoon nog een paar orde grootte complexer gemaakt.

1166
01:10:27.460 --> 01:10:29.380
Ja, je infrastructuur wordt gewoon wat complexer.

1167
01:10:29.580 --> 01:10:32.200
Ja, sommige dingen worden heel, heel veel makkelijker met de klaut.

1168
01:10:32.300 --> 01:10:34.940
En sommige dingen, daar moet je gewoon nog steeds over nadenken.

1169
01:10:35.460 --> 01:10:36.220
Ja, precies.

1170
01:10:36.800 --> 01:10:39.000
Of nadenken wat dat vroeger eigenlijk niet hoefde.

1171
01:10:40.440 --> 01:10:41.180
Ja, ja, precies.

1172
01:10:41.180 --> 01:10:46.260
Ja, het is wel makkelijk om te doen, zeg maar.

1173
01:10:46.520 --> 01:10:49.000
Maar het blijft wel, het is een extra laag, zeg maar.

1174
01:10:49.360 --> 01:10:49.600
Zeker.

1175
01:10:50.540 --> 01:10:52.120
Ja, voorheen, wat ik ook had gezegd.

1176
01:10:52.280 --> 01:10:55.440
Ja, ik vond het altijd wel fijn dat mijn server gewoon onder mijn bureau stond.

1177
01:10:55.560 --> 01:10:59.060
En als er iets mis was, ja, dan zat je gewoon op je server.

1178
01:10:59.300 --> 01:11:00.820
Je had het wat en je wist wat er aan de hand was.

1179
01:11:01.000 --> 01:11:02.020
En klaar is, Kees.

1180
01:11:02.280 --> 01:11:04.180
En die afstand is al groter, zeg maar.

1181
01:11:04.340 --> 01:11:07.380
Dat is natuurlijk met de remote verbinding daarnaartoe.

1182
01:11:07.420 --> 01:11:09.440
Maar het is toch, er zit een afstand, zeg maar.

1183
01:11:09.440 --> 01:11:17.320
Dat is een aantal dingetjes die je niet meer makkelijk, zo makkelijk kan doen in de cloud als nu.

1184
01:11:19.340 --> 01:11:20.440
Als we wat er voorheen konden.

1185
01:11:21.360 --> 01:11:22.180
Even kijken.

1186
01:11:22.540 --> 01:11:23.520
Ook dat is er voor en een nadeel, trouwens.

1187
01:11:24.420 --> 01:11:24.780
Sorry?

1188
01:11:25.260 --> 01:11:27.280
Ook dat is er voor en een nadeel.

1189
01:11:27.760 --> 01:11:28.740
Ja, nee, dat klopt.

1190
01:11:29.040 --> 01:11:30.520
Ja, ik zeg, depend.

1191
01:11:31.360 --> 01:11:32.700
En dan kom je overal.

1192
01:11:32.700 --> 01:11:33.300
Vaak genoeg.

1193
01:11:33.660 --> 01:11:35.720
En ook dat heb ik een paar keer zelf gedaan.

1194
01:11:35.720 --> 01:11:45.480
Dat iemand bijvoorbeeld de Rails vooral maakt het heel makkelijk.

1195
01:11:45.600 --> 01:11:48.900
Je kan een Rails console openen in de productie.

1196
01:11:49.020 --> 01:11:55.120
En die laat dan automatisch alle environment variablen en al je database connecties en al je Redis en wat niet.

1197
01:11:57.200 --> 01:12:03.820
Dus een collega van mij die kwam langs.

1198
01:12:04.580 --> 01:12:10.320
Of die had prongelijk een paar keys naar de Redis cache geschreven.

1199
01:12:11.680 --> 01:12:14.020
Maar was vergeten er een expiry op te zetten.

1200
01:12:15.280 --> 01:12:16.960
En hij wist ook niet meer welke het waren.

1201
01:12:17.080 --> 01:12:22.120
Maar hij wist wel dat je in Redis kun je searchen op prefixes, maar niet op postfixes.

1202
01:12:23.560 --> 01:12:26.020
Dus hij dacht, dan doe ik dat wel gewoon in Ruby.

1203
01:12:26.020 --> 01:12:31.080
Dus hij zei Redis.new.keys.

1204
01:12:31.720 --> 01:12:33.840
En dan de enige van de Ruby functie om dat te selecteren.

1205
01:12:34.520 --> 01:12:38.220
Maar wat dat doet is Keystar op de Redis database.

1206
01:12:39.760 --> 01:12:43.860
Dus die Redis die dacht, oh je wil alle keys hebben die ik heb.

1207
01:12:44.040 --> 01:12:46.400
Dat is goed, je hebt zo alle 30 miljoen.

1208
01:12:46.560 --> 01:12:47.860
Dat duurde natuurlijk even.

1209
01:12:48.900 --> 01:12:50.040
En Redis is single thread.

1210
01:12:50.280 --> 01:12:55.180
Dus geen enkele andere web request komt nog bij de Redis.

1211
01:12:56.060 --> 01:12:58.240
Waardoor die al gigantij mouten.

1212
01:12:58.340 --> 01:13:02.340
Want dat duurde langer dan 30 seconden voor dat Redis er klaar was.

1213
01:13:03.460 --> 01:13:04.800
Dus opeens alles down.

1214
01:13:04.860 --> 01:13:06.320
Niemand wist wat er aan de hand was.

1215
01:13:08.020 --> 01:13:12.940
We waren wel vrij snel achter dat het Redis was die down was.

1216
01:13:13.580 --> 01:13:16.180
Dus op een gegeven moment kwamen we daar naar kijken.

1217
01:13:16.980 --> 01:13:18.760
Zo van, dat is gek.

1218
01:13:19.140 --> 01:13:20.360
Kom op die jongen.

1219
01:13:20.380 --> 01:13:21.660
Werkte er net een week.

1220
01:13:22.340 --> 01:13:23.680
Ja, arme gast.

1221
01:13:24.020 --> 01:13:25.280
Ik was heel schapachtig.

1222
01:13:25.320 --> 01:13:27.680
Jongens, ik denk dat ik het was.

1223
01:13:28.900 --> 01:13:30.240
Ik moest er heel erg van wachten.

1224
01:13:30.480 --> 01:13:32.840
Want iedereen daar had dat wel eens gedaan natuurlijk.

1225
01:13:33.440 --> 01:13:35.780
Of iets doms in productie.

1226
01:13:36.140 --> 01:13:38.060
We weten allemaal dat het niet zou moeten.

1227
01:13:38.820 --> 01:13:40.100
Maar iedereen heeft wel eens gedaan.

1228
01:13:40.820 --> 01:13:41.380
Ja, natuurlijk.

1229
01:13:42.320 --> 01:13:49.620
Volgens mij, ieder platform of taal die heeft wel zo'n simpele fout die je maakt.

1230
01:13:49.620 --> 01:13:51.820
Maar iedereen wel een keer ingetuind is.

1231
01:13:52.280 --> 01:13:54.700
En waardoor je weet ik voor wat die je server neertrekt.

1232
01:13:54.900 --> 01:13:56.260
Of ik weet niet wat je doet.

1233
01:13:56.480 --> 01:13:57.180
Dat is echt wel.

1234
01:13:58.420 --> 01:13:59.580
Maar dat is altijd lachen natuurlijk.

1235
01:13:59.720 --> 01:14:01.040
Als dat bij de nieuwe jongen gebeurt.

1236
01:14:03.040 --> 01:14:04.900
Of de nieuwe vrouw of weet ik veel wat.

1237
01:14:05.080 --> 01:14:06.620
Ja, dat is natuurlijk altijd wel even.

1238
01:14:07.260 --> 01:14:08.420
Een soort van ontroeding.

1239
01:14:08.660 --> 01:14:11.100
Dat is ook eigenlijk een andere manier om te leren.

1240
01:14:11.420 --> 01:14:11.920
Ja, tuurlijk.

1241
01:14:14.600 --> 01:14:15.400
Ja, tuurlijk.

1242
01:14:15.600 --> 01:14:16.160
Dat is ook wel.

1243
01:14:17.180 --> 01:14:18.520
Ja, kijk.

1244
01:14:18.520 --> 01:14:22.160
Je moet altijd wel een beetje tezaalaansteken bang zijn.

1245
01:14:22.160 --> 01:14:23.680
Zeg maar dat je iets loopt.

1246
01:14:24.060 --> 01:14:25.260
Dat is wel. Maar je weet gewoon.

1247
01:14:25.300 --> 01:14:27.060
Je gaat de keer iets lopen.

1248
01:14:27.140 --> 01:14:27.560
Tuurlijk.

1249
01:14:29.200 --> 01:14:30.840
Uiteindelijk als je erop terugkijkt.

1250
01:14:30.860 --> 01:14:31.920
Wat is nou echt gebeurd?

1251
01:14:32.040 --> 01:14:34.040
De website was 45 seconden down.

1252
01:14:35.200 --> 01:14:36.800
Het is echt meer dan waard.

1253
01:14:38.060 --> 01:14:41.240
Dat je het met zoiets een domme fout maakt.

1254
01:14:41.460 --> 01:14:43.920
In plaats van dat je een hele tabel wist of zo.

1255
01:14:45.220 --> 01:14:46.660
Het laatste onderwerp.

1256
01:14:46.660 --> 01:14:47.940
Het was eigenlijk niet eens echt een onderwerp.

1257
01:14:48.020 --> 01:14:49.160
Het was een beetje losvast.

1258
01:14:49.380 --> 01:14:53.080
We hebben een aantal dingetjes die we steeds terug proberen te laten komen.

1259
01:14:53.600 --> 01:14:54.400
Eentje gaat vervallen.

1260
01:14:54.600 --> 01:14:56.260
Ik had geen Twitter rant.

1261
01:14:56.700 --> 01:14:58.200
Ik had ook geen echte Twitter.

1262
01:14:58.560 --> 01:14:59.680
Ja, die heb ik niet gezien.

1263
01:14:59.800 --> 01:15:00.820
Dus ik heb er geen.

1264
01:15:02.380 --> 01:15:03.260
Jij ook niet denk ik?

1265
01:15:03.500 --> 01:15:06.740
Nee, je was zeker te druk met de verkiezingen in de VS of wat?

1266
01:15:07.760 --> 01:15:08.820
Dat is misschien wel een rant.

1267
01:15:08.940 --> 01:15:10.320
Ja, dat is een rant.

1268
01:15:10.800 --> 01:15:13.000
Laten we daar niet over hebben.

1269
01:15:13.380 --> 01:15:14.140
Nou ja, misschien.

1270
01:15:14.400 --> 01:15:17.000
Het was best vermakelijk die Slack channel.

1271
01:15:18.940 --> 01:15:21.000
Ja, ik vond het wel gezellig.

1272
01:15:21.220 --> 01:15:23.500
Ja, er was een Slack channel, zeg maar, bij Neus op tafel.

1273
01:15:23.760 --> 01:15:25.620
Dat ging over de VS-verkiezingen.

1274
01:15:26.300 --> 01:15:30.540
En de eerste nacht, ook bij de verkiezingen van Hillary versus Trump,

1275
01:15:31.580 --> 01:15:33.140
toen was ik ook wakker gebleven en zo.

1276
01:15:33.220 --> 01:15:35.220
Maar daarna had het natuurlijk wel een beetje een kater.

1277
01:15:35.580 --> 01:15:36.940
Ja, dat klinkt natuurlijk raar.

1278
01:15:37.080 --> 01:15:42.040
Maar goed, bij iedereen in Nederland lijkt niet voor Trump te zijn.

1279
01:15:42.940 --> 01:15:45.440
Het is een beetje bijna alsof het een schande is als je voor Trump is.

1280
01:15:45.560 --> 01:15:46.940
Dat vind ik ook weer een beetje overdreven.

1281
01:15:47.300 --> 01:15:48.680
Dus zo zit ik er ook weer niet in.

1282
01:15:48.980 --> 01:15:50.560
Maar goed, dat vond ik een beetje jammer.

1283
01:15:50.760 --> 01:15:51.840
Nu is dit nu weer opgebleven.

1284
01:15:52.020 --> 01:15:56.040
En toen rond de uur of, ik weet niet, 1, 2 nachts.

1285
01:15:56.660 --> 01:15:57.300
Toen was het niet zo.

1286
01:15:57.680 --> 01:15:59.560
Ik zie de bijl weer hangen.

1287
01:16:01.520 --> 01:16:03.120
Rond drie uur ben ik mijn bed ingegaan.

1288
01:16:03.320 --> 01:16:06.840
Ik denk, geef mij een portie maar een fikkie, want dit gaat er weer niet worden.

1289
01:16:08.400 --> 01:16:15.260
En er waren hier en daar wel wat dingetjes waardoor misschien Biden zou winnen.

1290
01:16:15.420 --> 01:16:16.720
Dus ik denk, ja, dat gaat nooit meer gebeuren.

1291
01:16:16.780 --> 01:16:17.500
Maar toen werd ik wakker.

1292
01:16:18.860 --> 01:16:20.860
Toen begon het een beetje om te slaan.

1293
01:16:21.100 --> 01:16:22.620
En meer en meer en meer.

1294
01:16:22.900 --> 01:16:24.940
Dus het is echt wel bijzonder.

1295
01:16:25.280 --> 01:16:28.780
Ja, eigenlijk zou je ook, ja, misschien moeten we ooit een keer iemand vinden

1296
01:16:28.780 --> 01:16:30.800
die echt die dataanalyse doet.

1297
01:16:31.020 --> 01:16:35.120
Want al die campagne teams, die hebben allemaal dataanalysten, zeg maar, die allemaal gaan kijken

1298
01:16:35.120 --> 01:16:40.400
van hey, met modellen van wat is nou de kans dat Biden of Trump gaat winnen.

1299
01:16:40.620 --> 01:16:45.720
Dus die uitslagen die in eerste instantie gegeven werden door de nieuwsagenties,

1300
01:16:46.580 --> 01:16:53.060
New York Times, Fox News, CNN, de hele week, die hebben allemaal modellen.

1301
01:16:53.240 --> 01:16:54.800
Dus dat allemaal dataanalysten, zeg maar.

1302
01:16:54.860 --> 01:16:59.500
Die gaan kijken voor, ja, uit het verleden zijn dit soort verkiezingen geweest.

1303
01:16:59.560 --> 01:17:02.140
En dan kunnen we een deel daarvan voorspellen.

1304
01:17:02.140 --> 01:17:05.640
Een deel is op basis van de exit polls die we hebben.

1305
01:17:06.400 --> 01:17:10.060
Dus het is ook nog niet eens dat al die data die op al die nieuws channels zijn,

1306
01:17:10.060 --> 01:17:11.600
dat dat gewoon feitelijke data is.

1307
01:17:11.640 --> 01:17:12.620
Dat vind ik ook wel bijzonder.

1308
01:17:12.860 --> 01:17:15.220
Dus die zit allemaal best wel te speculeren.

1309
01:17:15.940 --> 01:17:17.540
En ze hebben allemaal een kleur.

1310
01:17:17.800 --> 01:17:21.260
Fox News, die heeft na de film op zich dit jaar best wel mee eigenlijk.

1311
01:17:21.620 --> 01:17:24.040
Maar die hebben een bepaalde manier hoe ze daar naar kijken.

1312
01:17:24.240 --> 01:17:25.380
CNN weer heel anders.

1313
01:17:26.280 --> 01:17:31.220
Dus dat is op die manier, dus qua techniek vond ik het ook heel intrigerend, zeg maar.

1314
01:17:31.220 --> 01:17:35.220
Dus eigenlijk zouden we een keer iemand moeten strikken die daar echt als techneut, zeg maar, een keer...

1315
01:17:35.800 --> 01:17:40.200
Ja, er zijn diverse aspecten die daar wel erg interessant aan zijn.

1316
01:17:40.600 --> 01:17:46.160
Ook hoe ze van tevoren al gaan bekijken waar ze moeten gaan zitten flyeren

1317
01:17:46.160 --> 01:17:47.540
en waar ze wel niet moeten aanbellen.

1318
01:17:48.480 --> 01:17:52.080
Dat is op zich niet wat we hier in Nederland doen.

1319
01:17:52.200 --> 01:17:55.320
Ze dat ook een beetje raar vinden als ze hier in de straten

1320
01:17:55.320 --> 01:17:58.640
bij precies de goede huizen wel of niet aanbellen.

1321
01:17:59.280 --> 01:18:00.120
Ja, maar het is echt bizar.

1322
01:18:00.120 --> 01:18:01.480
Ja, dat is ook een beetje raar.

1323
01:18:02.500 --> 01:18:08.140
Ja, maar je registreert je daar ook volgens mij als democrat of als republikein.

1324
01:18:08.380 --> 01:18:10.120
En dan kun je een telefoontje even wachten.

1325
01:18:10.740 --> 01:18:14.280
Je wordt gewoon gebeld van, je gaat toch bijna stemmen?

1326
01:18:14.780 --> 01:18:15.860
Ja, je gaat toch wel bijna spelen.

1327
01:18:16.260 --> 01:18:17.760
Ja, ik ga waarschijnlijk bijna stemmen.

1328
01:18:17.940 --> 01:18:18.560
Ja, dan kunnen we registreren.

1329
01:18:18.640 --> 01:18:19.500
Ja, dat is goed.

1330
01:18:20.240 --> 01:18:20.920
Ik ga bijna stemmen.

1331
01:18:20.980 --> 01:18:23.600
En dan wordt het gewoon bijgehouden, als het ware.

1332
01:18:24.600 --> 01:18:26.440
Dus het is echt...

1333
01:18:26.440 --> 01:18:28.180
Het is ook wel een beetje het systeem daar natuurlijk

1334
01:18:28.180 --> 01:18:31.000
dat je eigenlijk in praktijk maar twee partijen hebt.

1335
01:18:31.580 --> 01:18:32.860
We hebben natuurlijk veel meer.

1336
01:18:33.120 --> 01:18:39.820
Dus je krijgt die waanzinnige wij tegen zij die je daar hebt.

1337
01:18:39.960 --> 01:18:42.120
Je bent of democrat of republikein.

1338
01:18:42.180 --> 01:18:46.000
Maar als je hiervoor, laten we zeggen, de VVD stemt of de PvdA.

1339
01:18:46.820 --> 01:18:50.380
Tuurlijk is er wel een beetje rivaliteit tussen sommige partijen.

1340
01:18:50.520 --> 01:18:53.400
De D66 en PVV, die vinden elkaar niet aardig.

1341
01:18:54.000 --> 01:18:54.540
Nee, klopt.

1342
01:18:54.540 --> 01:19:00.740
Je hebt niet die enorme polarisatie, omdat er gewoon nog tien partijen omheen staan

1343
01:19:00.740 --> 01:19:01.900
die ook dingen vinden.

1344
01:19:02.840 --> 01:19:05.500
Dus je kan nooit één echte grote oorlog krijgen.

1345
01:19:07.280 --> 01:19:08.620
En dat is...

1346
01:19:08.620 --> 01:19:13.640
Maar wat iemand ook wel zei en daarna houden we er wel voor op, denk ik.

1347
01:19:14.260 --> 01:19:20.540
Het is ook wel sinds de jaren tachtig of zo de manier van nieuws brengen

1348
01:19:20.540 --> 01:19:26.520
die heeft heel veel invloed op hoe mensen over de onderwerpen zijn gaan denken.

1349
01:19:27.340 --> 01:19:32.000
Dus het is eigenlijk best wel raar, want je rapporteert als het ware.

1350
01:19:32.020 --> 01:19:33.680
Je zegt van oké, dit is wat mensen vinden.

1351
01:19:33.880 --> 01:19:37.220
Maar nee, die nieuwsagencies, omdat die ook gekleurd zijn, die hadden belang erbij.

1352
01:19:37.380 --> 01:19:39.460
Dus die zijn onderwerpen.

1353
01:19:40.100 --> 01:19:45.560
Dus voor de rechse republikeinen was het heel erg voor de abortuswet.

1354
01:19:46.380 --> 01:19:47.860
Daar werd dan heel veel gefocust.

1355
01:19:48.080 --> 01:19:49.400
Of de immigratie.

1356
01:19:49.400 --> 01:19:51.860
Dus er werd heel veel op gehamerd.

1357
01:19:52.060 --> 01:19:54.760
Totdat mensen echt gewoon daarin zijn ingelofd.

1358
01:19:55.060 --> 01:19:58.080
Dus echt, ja, intrinsiek geloof.

1359
01:19:58.200 --> 01:19:59.300
Ja, dit kan echt niet.

1360
01:19:59.420 --> 01:20:00.400
Dat moet je me niet ontnemen.

1361
01:20:00.560 --> 01:20:03.400
Dat is gewoon een persoonlijk iets geworden.

1362
01:20:03.500 --> 01:20:05.540
Dat gaat niet meer over een mening.

1363
01:20:06.020 --> 01:20:09.540
Als ik nu kies voor de democraten komt dat beter uit.

1364
01:20:09.900 --> 01:20:11.440
Want ja, dat past meer bij hoe ik ben.

1365
01:20:11.540 --> 01:20:16.260
Nee, dan is het echt meer een soort van ja, ik voel me echt heel erg republikein.

1366
01:20:16.360 --> 01:20:17.640
Dat loopt heel erg hoogop.

1367
01:20:17.640 --> 01:20:24.060
Maar dat is iets wat schijnbaar de laatste 20, 30 jaar heel erg veranderd is.

1368
01:20:24.180 --> 01:20:26.060
Het was een binnenrepublikeinspartij.

1369
01:20:26.260 --> 01:20:29.480
En de democraten, daar zitten nuances in.

1370
01:20:30.400 --> 01:20:32.560
De democraten zijn heel erg rechts, zeg maar.

1371
01:20:32.800 --> 01:20:33.940
En de democraten zijn heel links.

1372
01:20:34.100 --> 01:20:34.640
Dus dat hoor je ook.

1373
01:20:34.980 --> 01:20:38.580
Dus Bernie Sanders is natuurlijk veel linkser dan Joe Biden.

1374
01:20:39.040 --> 01:20:39.560
Saber.

1375
01:20:40.200 --> 01:20:43.560
Dus dat zijn wel, daar zitten ook nog wel wat.

1376
01:20:43.980 --> 01:20:45.080
Daar zitten nuance in.

1377
01:20:45.140 --> 01:20:47.240
Alleen naar buiten toe zijn het gewoon twee partijen.

1378
01:20:47.240 --> 01:20:51.500
Ja, en dat is echt niet, dat helpt volgens mij niet.

1379
01:20:52.280 --> 01:20:56.860
Dus maar goed, ik ben blij dat ik in Nederland woon en niet in Amerika.

1380
01:20:57.100 --> 01:20:59.980
Ik ben, ik vind dat politieke systeem, ik krijg niks daar.

1381
01:21:00.240 --> 01:21:00.740
Maar goed.

1382
01:21:01.120 --> 01:21:01.480
Oké.

1383
01:21:01.480 --> 01:21:01.860
Dat is leuk.

1384
01:21:02.720 --> 01:21:05.480
We hebben wel developers dilemmas.

1385
01:21:05.780 --> 01:21:09.220
Deze keer heb ik ze vooraf even zelf verzonnen.

1386
01:21:09.940 --> 01:21:12.360
Dus misschien is de kwaliteit minder of misschien is het beter.

1387
01:21:13.740 --> 01:21:17.180
Ja, het viel me op dat degene die op de developers dilemmas site

1388
01:21:18.860 --> 01:21:20.660
gebruikte of die gebruikte ervoor.

1389
01:21:20.840 --> 01:21:22.920
Ja, dat was een herhaling van zetten heel vaak.

1390
01:21:23.160 --> 01:21:26.420
Ja, maar die komen uit een grote set van AppSignal.

1391
01:21:27.360 --> 01:21:29.400
Dus ook het Ruby bedrijf ook.

1392
01:21:30.240 --> 01:21:32.560
Ik ken die gasten vrij goed.

1393
01:21:32.860 --> 01:21:35.420
Ik heb alle normale dilemmas al een keer gezien.

1394
01:21:35.960 --> 01:21:38.660
Ja, dat zei je.

1395
01:21:38.820 --> 01:21:43.800
Want ik had dat gedaan toen Arno en Floor toen als gast waren.

1396
01:21:44.980 --> 01:21:46.600
En toen wist ik nog niet van die site af.

1397
01:21:46.600 --> 01:21:48.400
En toen zei ze, die site is er ook.

1398
01:21:48.480 --> 01:21:50.080
Ik zei, oh, grappig.

1399
01:21:50.800 --> 01:21:51.800
Want ik wilde developer.

1400
01:21:51.980 --> 01:21:53.620
Ik zei, misschien zijn developer.

1401
01:21:54.020 --> 01:21:56.600
Ik weet niet, ik had een andere naam genoemd.

1402
01:21:56.760 --> 01:21:58.520
Developers Dilemma is gewoon klinkt goed.

1403
01:21:59.460 --> 01:22:00.600
Alitereerd en dat is mooi.

1404
01:22:00.800 --> 01:22:04.320
Maar goed, die set was, we waren er een beetje doorheen volgens mij.

1405
01:22:04.960 --> 01:22:10.900
En in die aflevering had ik volgens mij ook al wat tegenstellingen die wat gekker waren.

1406
01:22:11.120 --> 01:22:11.520
Kom maar op.

1407
01:22:12.800 --> 01:22:13.780
Ja, de eerste.

1408
01:22:14.300 --> 01:22:17.960
Een Greenfield project en je krijgt 1 miljoen euro.

1409
01:22:18.240 --> 01:22:22.780
Versus een Slechtloper project en je krijgt 2 miljoen euro om het recht te bereien.

1410
01:22:23.100 --> 01:22:24.160
Allebei kost evenveel tijd.

1411
01:22:24.700 --> 01:22:27.320
Dus laten we zeggen, dat kun je van tevoren niet weten.

1412
01:22:27.380 --> 01:22:29.060
Maar dat is in dit geval wel zo.

1413
01:22:29.180 --> 01:22:30.220
Dat kost je gewoon een jaar.

1414
01:22:31.340 --> 01:22:35.800
Maar het Greenfield project is, nou, leuk, hier heb je 1 miljoen.

1415
01:22:35.800 --> 01:22:36.760
En dat loopt lekker.

1416
01:22:37.460 --> 01:22:39.540
Slechtloper project, daar zul je wat meer moeite voor moeten doen.

1417
01:22:39.640 --> 01:22:41.240
Maar dan krijg je wel 2 miljoen voor.

1418
01:22:41.240 --> 01:22:44.140
Oh, dat is wel een tij, hoor.

1419
01:22:47.840 --> 01:22:51.320
Ik wil zeggen, dat hangt heel erg van mijn collega's af.

1420
01:22:53.340 --> 01:22:55.640
Dat is wel echt de belangrijkste in deze keuze.

1421
01:22:56.800 --> 01:23:00.240
Maar ik denk dat je dat een beetje hebt samengevat in en het loopt goed.

1422
01:23:02.380 --> 01:23:03.760
Versus en het loopt slecht.

1423
01:23:04.180 --> 01:23:08.120
Dus dan ga ik toch echt voor het goedlopende Greenfield project.

1424
01:23:08.120 --> 01:23:14.120
En het mag zelfs een project zijn dat helemaal in de krep zit.

1425
01:23:14.720 --> 01:23:17.500
Maar met leuke collega's en het loopt goed.

1426
01:23:18.520 --> 01:23:22.600
Dan een volstrekt fantastisch Greenfield project.

1427
01:23:23.280 --> 01:23:25.020
Misschien wel voor 10 miljoen euro.

1428
01:23:27.420 --> 01:23:29.460
Mijn sanity is me te veel waard.

1429
01:23:29.960 --> 01:23:31.340
Ja, precies.

1430
01:23:32.740 --> 01:23:37.060
Ik had eerst gezegd van 1 miljoen versus 10 miljoen.

1431
01:23:37.060 --> 01:23:37.840
Maar ja, goed.

1432
01:23:40.040 --> 01:23:42.940
Iemand gaat uiteindelijk wel een keer zwichten voor geld.

1433
01:23:45.860 --> 01:23:49.600
Maar als ik het zo in deze setting mag besluiten.

1434
01:23:51.080 --> 01:23:54.480
Het is veel belangrijker om normaal te blijven.

1435
01:23:55.100 --> 01:23:57.820
Ik heb een keer een echt krep project gehad.

1436
01:23:59.520 --> 01:24:06.060
Nee, ik heb er echt heel duidelijk 2 slechte.

1437
01:24:07.000 --> 01:24:08.340
Het is wel een les.

1438
01:24:11.960 --> 01:24:14.160
Toen ik erin zat, als je het me had gevraagd, had ik gezegd.

1439
01:24:14.800 --> 01:24:16.020
Het had voor mij niet gehoeven.

1440
01:24:16.180 --> 01:24:21.760
Maar achteraf gezien, ik ben blij dat ik ze meegemaakt heb.

1441
01:24:23.000 --> 01:24:24.120
Het vormt je wel.

1442
01:24:24.500 --> 01:24:25.560
Het leert er wel van.

1443
01:24:26.080 --> 01:24:28.440
Maar tegelijkertijd zou je er nog eentje willen doen?

1444
01:24:29.680 --> 01:24:30.360
Nee, natuurlijk niet.

1445
01:24:31.120 --> 01:24:34.780
Ik teken nu vooraf voor een slecht project.

1446
01:24:34.780 --> 01:24:39.420
Er zullen niet veel mensen zijn die dat vooraf zouden zeggen.

1447
01:24:39.740 --> 01:24:40.880
Bernard, heb jij nog een mening over?

1448
01:24:40.940 --> 01:24:42.240
Nee, ik zou dezelfde keuze doen.

1449
01:24:43.160 --> 01:24:45.660
Dat bedrag, 1 miljoen is al veel.

1450
01:24:46.860 --> 01:24:47.880
Dat zou wel op kunnen.

1451
01:24:52.580 --> 01:24:56.340
Een teamleider van alleen maar 65-jarige ontwikkelaars

1452
01:24:56.340 --> 01:24:59.140
of een teamleider met 25-jarige ontwikkelaars?

1453
01:25:02.420 --> 01:25:04.020
Ik had het nog een keer gelezen.

1454
01:25:04.260 --> 01:25:07.140
Dit wordt niet een soort van leeftijdsdiscriminatie.

1455
01:25:07.920 --> 01:25:08.460
Dat is het niet.

1456
01:25:08.620 --> 01:25:10.620
Het gaat om je teams.

1457
01:25:11.880 --> 01:25:12.980
Het is vooral niks te kiezen.

1458
01:25:13.320 --> 01:25:16.580
Het ene team is 75-jarige of het team met 25-jarige.

1459
01:25:18.840 --> 01:25:20.140
Welke zou je leiden?

1460
01:25:22.440 --> 01:25:23.380
Dat moet ik weer eerst.

1461
01:25:24.620 --> 01:25:25.220
Het maakt me niet uit.

1462
01:25:25.360 --> 01:25:26.240
Bernard mag ook eerst.

1463
01:25:26.240 --> 01:25:27.900
Dan kun je erover nadenken.

1464
01:25:28.560 --> 01:25:29.300
Wat zou je kiezen Bernard?

1465
01:25:29.700 --> 01:25:32.380
25-jarige zou ik kiezen.

1466
01:25:37.120 --> 01:25:39.460
Die leren misschien nog wat makkelijker iets bij.

1467
01:25:39.660 --> 01:25:41.740
Of kan je wat bijbrengen als teamleider?

1468
01:25:42.380 --> 01:25:45.200
Ik denk dat mensen die zo lang in het vak zitten

1469
01:25:46.420 --> 01:25:48.160
misschien niks van je aannemen

1470
01:25:48.160 --> 01:25:51.920
of alles op de manier doen die ze al lang doen.

1471
01:25:54.220 --> 01:25:54.740
Flexibiliteit.

1472
01:25:56.160 --> 01:26:01.060
Dat is niet gegarandeerd dat 65-jarigen niet flexibel zijn.

1473
01:26:02.080 --> 01:26:05.940
Het begint toch wel op leeftijdsdiscriminatie te rieken.

1474
01:26:07.020 --> 01:26:08.500
Het is een taai.

1475
01:26:09.360 --> 01:26:12.320
Ik ga ook voor de 25-jarigen.

1476
01:26:12.380 --> 01:26:17.140
Alhoewel dat ook een beetje afhangt van het project.

1477
01:26:17.540 --> 01:26:21.860
Als ik een banking website in Kobel zou moeten doen.

1478
01:26:25.100 --> 01:26:27.420
Maar ik ga voor de 25-jarigen.

1479
01:26:27.820 --> 01:26:30.260
Dat is voor mij een persoonlijke keuze.

1480
01:26:31.480 --> 01:26:33.180
Omdat ik daar ervaring mee heb.

1481
01:26:33.380 --> 01:26:37.040
Ik ben bij de marine meerdere malen op missie 6 maanden overreis geweest

1482
01:26:37.040 --> 01:26:38.160
naar, laten we zeggen, sommaren.

1483
01:26:38.780 --> 01:26:42.640
En daar had ik ook een team van 25-jarigen, corporaals en matrozen

1484
01:26:43.220 --> 01:26:44.180
omleiding aan gegeven.

1485
01:26:44.260 --> 01:26:45.380
Dus ik weet dat ik dat kan.

1486
01:26:46.140 --> 01:26:48.840
Daar ben ik minder bang voor dan de 65-jarigen

1487
01:26:48.840 --> 01:26:50.320
en daar gebruik ik me meer zorgen over te maken.

1488
01:26:53.640 --> 01:27:00.820
Ik denk normaal, want ik vind die energie, los van de energie die ze hebben,

1489
01:27:02.040 --> 01:27:04.640
dat vind ik wel aanstekelijk.

1490
01:27:05.560 --> 01:27:09.660
Ik vind het wel heel leuk om te zien, het lijkt er bij de 65-jarigen,

1491
01:27:10.240 --> 01:27:11.740
en dat heb ik niet meer bijgezet.

1492
01:27:11.860 --> 01:27:16.620
Maar stel dat we nu echt enorm ervaren, ten los van dat ze vastzitten,

1493
01:27:16.820 --> 01:27:18.120
het is ook heel leerzaam.

1494
01:27:19.300 --> 01:27:22.180
Ik ben 45, ik ben wat jonger,

1495
01:27:22.320 --> 01:27:24.520
dus ik denk dat ik daar ook heel veel van zou kunnen leren.

1496
01:27:24.580 --> 01:27:25.940
Dan is het meer andersom.

1497
01:27:26.220 --> 01:27:29.620
Dus die 25-jarigen, jij zult ze misschien wat meer leren,

1498
01:27:29.780 --> 01:27:32.400
maar die 65-jarigen is voor jou meer een leerschool, zeg maar.

1499
01:27:33.800 --> 01:27:36.160
Ja, het beste is natuurlijk om een combinatie te hebben.

1500
01:27:36.500 --> 01:27:37.420
Ja, tuurlijk, ja.

1501
01:27:38.040 --> 01:27:39.600
Dat is natuurlijk niks te kiezen.

1502
01:27:40.100 --> 01:27:41.400
Je wilt ze het liefst op elkaar.

1503
01:27:41.700 --> 01:27:42.580
Tuurlijk, de mix.

1504
01:27:43.280 --> 01:27:46.500
Je wilt een gezonde mix hebben van...

1505
01:27:46.500 --> 01:27:49.400
Ja, dat is één van de...

1506
01:27:49.400 --> 01:27:51.460
Als we toch over alles en niks hebben.

1507
01:27:52.620 --> 01:27:55.960
By far de belangrijkste les die ik bij de officiersopleiding

1508
01:27:55.960 --> 01:27:57.360
bij de marina heb geleerd.

1509
01:27:57.680 --> 01:27:59.400
Gemixte teams werken het best.

1510
01:28:00.200 --> 01:28:02.840
Er was één oefening die ze altijd deden

1511
01:28:02.840 --> 01:28:05.080
en die altijd hetzelfde resultaat had,

1512
01:28:06.660 --> 01:28:07.680
is moet je een brug maken,

1513
01:28:08.880 --> 01:28:10.880
over een soort waterding,

1514
01:28:10.980 --> 01:28:12.480
gewoon een brug uit touwen en planken.

1515
01:28:13.480 --> 01:28:17.060
En je hebt net genoeg materiaal om te kunnen.

1516
01:28:18.700 --> 01:28:21.500
Dus zeg maar, als je ruim genoeg materiaal hebt,

1517
01:28:22.220 --> 01:28:22.660
no problem.

1518
01:28:23.100 --> 01:28:24.580
Als je helemaal net genoeg materiaal hebt,

1519
01:28:24.740 --> 01:28:25.420
dan lukt het sowieso nooit.

1520
01:28:25.600 --> 01:28:26.520
Maar je hebt net genoeg,

1521
01:28:26.560 --> 01:28:27.800
maar je moet er wel goed over nadenken

1522
01:28:27.800 --> 01:28:28.420
over wie het gaat doen.

1523
01:28:28.500 --> 01:28:29.100
Maar het kan wel.

1524
01:28:30.620 --> 01:28:34.080
En ze deden wat de leiders van die oefening

1525
01:28:34.080 --> 01:28:34.920
dan altijd deden.

1526
01:28:35.020 --> 01:28:37.720
En ik ben ook wel een soort van teamleider geweest

1527
01:28:37.720 --> 01:28:40.560
van zo'n groep nieuwe recruten,

1528
01:28:42.020 --> 01:28:44.500
dus ik kan er dan van de zijkant naar kijken.

1529
01:28:45.080 --> 01:28:46.960
Het is heel geestig om te zien hoe dat er gaat.

1530
01:28:47.300 --> 01:28:49.920
Dus die leraren of die docenten,

1531
01:28:49.920 --> 01:28:52.420
die delen de groep in, in drie groepen.

1532
01:28:52.880 --> 01:28:55.300
En dat ze zien, eigenlijk in de eerste oogopslag

1533
01:28:55.300 --> 01:28:55.900
zien ze al een beetje,

1534
01:28:56.160 --> 01:28:57.600
dit zijn gewoon de actieve gasten.

1535
01:28:58.760 --> 01:29:00.700
Dit zijn iets minder actieve of zeg maar,

1536
01:29:00.880 --> 01:29:01.760
dit zijn de doeners,

1537
01:29:01.940 --> 01:29:02.940
dit zijn de denkers.

1538
01:29:03.440 --> 01:29:05.840
En ze hebben ook een groep met doeners en denkers,

1539
01:29:05.880 --> 01:29:06.780
ongeveer 50-50.

1540
01:29:07.540 --> 01:29:08.980
En het is altijd,

1541
01:29:10.240 --> 01:29:12.020
ik kan er loos op gelijk zetten,

1542
01:29:12.420 --> 01:29:16.140
de doeners die gaan als een speer, uiteraard.

1543
01:29:17.380 --> 01:29:18.900
Maar halverwege komen ze erachter

1544
01:29:18.900 --> 01:29:20.640
dat hoe ze het hebben gedaan

1545
01:29:20.640 --> 01:29:21.580
niet zo handig was,

1546
01:29:21.700 --> 01:29:23.000
dus nu hebben ze geen materieel meer over,

1547
01:29:23.040 --> 01:29:26.200
dus ze moeten eigenlijk een deel van een brug weer afbreken

1548
01:29:26.200 --> 01:29:28.820
om opnieuw te beginnen, op een betere manier.

1549
01:29:28.900 --> 01:29:30.440
En er wordt altijd een drama,

1550
01:29:30.640 --> 01:29:33.180
er wordt ruzie en ze weten niet wat ze willen

1551
01:29:33.180 --> 01:29:34.660
en na de derde keer dat het niet lukt,

1552
01:29:35.440 --> 01:29:37.710
of dat ze zijn voor de derde keer begonnen

1553
01:29:38.280 --> 01:29:39.700
zonder er goed over na te denken,

1554
01:29:40.320 --> 01:29:41.540
dat gaat natuurlijk niet worden.

1555
01:29:42.160 --> 01:29:44.960
De denkers, of het team met alleen denkers,

1556
01:29:45.980 --> 01:29:47.480
dat lukt ook niet,

1557
01:29:47.740 --> 01:29:49.860
want die beginnen eigenlijk gewoon niet,

1558
01:29:49.860 --> 01:29:50.660
die blijven denken.

1559
01:29:51.240 --> 01:29:52.660
Maar juist die gemengde groep,

1560
01:29:53.460 --> 01:29:55.560
daar is altijd het eerst klaar.

1561
01:29:55.620 --> 01:29:58.180
Ik heb deze oefening vijf of zes keer gezien

1562
01:29:59.140 --> 01:30:00.500
met verschillende groepen,

1563
01:30:01.340 --> 01:30:03.620
en het maakt niet uit.

1564
01:30:03.880 --> 01:30:06.740
Het is altijd de gemengde groep die er het eerst uitkomt,

1565
01:30:07.040 --> 01:30:08.100
want die beginnen wel,

1566
01:30:08.260 --> 01:30:09.660
maar die luisteren ook nog naar elkaar.

1567
01:30:10.220 --> 01:30:12.780
Dus dan zie je er vaak een van de denkers,

1568
01:30:12.920 --> 01:30:14.040
die staat ernaast en zegt,

1569
01:30:14.140 --> 01:30:15.940
jongens, dit is niet handig wat we hier aan het doen zijn.

1570
01:30:16.500 --> 01:30:18.040
En dan zegt een van de donezen,

1571
01:30:18.140 --> 01:30:19.300
oh, die heeft helemaal gelijk,

1572
01:30:19.460 --> 01:30:20.600
en die legt de knopen anders,

1573
01:30:20.760 --> 01:30:22.040
of die verschuift een plank,

1574
01:30:22.660 --> 01:30:24.520
en het is echt waanzinnig.

1575
01:30:24.540 --> 01:30:26.160
En je ziet het ook in de software teams.

1576
01:30:27.280 --> 01:30:31.880
Ja, daarom.

1577
01:30:33.240 --> 01:30:34.060
Iedereen zegt wel,

1578
01:30:34.160 --> 01:30:34.940
ik moet gemengd zien,

1579
01:30:35.100 --> 01:30:37.760
maar dan niet op basis van niks.

1580
01:30:38.140 --> 01:30:39.240
Voor mij is het een gut feeling,

1581
01:30:39.300 --> 01:30:39.720
want ik denk,

1582
01:30:40.140 --> 01:30:42.120
je wilt niet allemaal bijvoorbeeld heel kritische mensen

1583
01:30:42.120 --> 01:30:45.460
of juist mensen die allemaal heel overpositief zijn.

1584
01:30:45.720 --> 01:30:47.280
Dus ja, dan wil je daar een beetje mix in hebben.

1585
01:30:49.100 --> 01:30:50.860
Oké, het laatste dilemma.

1586
01:30:53.180 --> 01:30:54.900
Programmeren met een half kapot scherm,

1587
01:30:54.900 --> 01:30:56.360
en dat bedoel ik dus niet te hebben,

1588
01:30:56.600 --> 01:30:59.380
want dan ga je je windows aan de linker of rechter kant doen,

1589
01:30:59.720 --> 01:31:00.840
random uitval dus eigenlijk,

1590
01:31:01.220 --> 01:31:02.580
of met een half kapot keyboard.

1591
01:31:03.400 --> 01:31:04.580
Oh, wat doe je me aan?

1592
01:31:06.880 --> 01:31:08.360
Ik zou serieus,

1593
01:31:08.660 --> 01:31:10.340
zelf als eerste,

1594
01:31:10.980 --> 01:31:12.100
ik zou echt denken,

1595
01:31:13.800 --> 01:31:16.000
ja, ik weet niet,

1596
01:31:16.660 --> 01:31:21.100
ik zou zelf kiezen voor een half kapot scherm.

1597
01:31:21.300 --> 01:31:22.860
Ja, dat zou ik denk ik doen.

1598
01:31:23.160 --> 01:31:24.780
Ja, ik denk het ook.

1599
01:31:25.420 --> 01:31:27.620
Ik zou ook voor het half kapot scherm kiezen,

1600
01:31:27.780 --> 01:31:30.300
want ik vind niks zo vervelend als op een toetsenbord typen,

1601
01:31:30.440 --> 01:31:33.400
en dan gebeurt er dus niet wat je typt.

1602
01:31:35.160 --> 01:31:36.660
Dan kan ik heel erg geïriteerd worden.

1603
01:31:36.720 --> 01:31:38.280
En nu zie je het niet, dat is nog goed.

1604
01:31:39.160 --> 01:31:40.260
Ja, ik word ook echt boos van,

1605
01:31:40.360 --> 01:31:41.880
als ik denk van nou, ik heb echt al aangedrukt.

1606
01:31:42.700 --> 01:31:44.420
En dan gebeurt het gewoon niet.

1607
01:31:45.200 --> 01:31:46.780
Ja, dat is echt serieus.

1608
01:31:46.820 --> 01:31:47.660
Precies wat jij zegt.

1609
01:31:47.740 --> 01:31:49.460
Dat is ook waarom ik het zou doen.

1610
01:31:51.580 --> 01:31:53.100
Dat komt er ook misschien een beetje,

1611
01:31:53.480 --> 01:31:55.880
dat is juist een beetje, als je in Haskell programmeert,

1612
01:31:56.120 --> 01:31:57.300
die taal is heel compact.

1613
01:31:57.520 --> 01:31:59.760
Dus je kan eigenlijk alles wel schrijven als een one-liner.

1614
01:32:00.020 --> 01:32:01.640
Dus als je keyword het dan niet doet,

1615
01:32:01.800 --> 01:32:04.660
dat is gewoon als percentage van wat je wilt typen,

1616
01:32:04.700 --> 01:32:05.460
dat is veel groter.

1617
01:32:06.100 --> 01:32:06.560
Ja, ja.

1618
01:32:06.660 --> 01:32:07.720
Ja, als je dingen mist.

1619
01:32:08.640 --> 01:32:09.480
Ja, dat is wel waar, ja.

1620
01:32:09.540 --> 01:32:12.340
Want ook op een toetsenbord, als er één toets, zeg maar,

1621
01:32:12.400 --> 01:32:13.180
bijvoorbeeld niet toets.

1622
01:32:13.680 --> 01:32:15.220
Ja, dat is echt de worst.

1623
01:32:16.280 --> 01:32:17.280
Ja, en dan random.

1624
01:32:17.280 --> 01:32:19.160
Ja, ik heb geluk.

1625
01:32:19.300 --> 01:32:20.500
Die Mac net niet.

1626
01:32:22.280 --> 01:32:25.120
De Mac sinds 2016 tot 2000.

1627
01:32:25.140 --> 01:32:28.000
Nog wel een toetsenbord soms, gewoon wel en niet.

1628
01:32:28.660 --> 01:32:30.060
Ik zou echt gek worden.

1629
01:32:30.260 --> 01:32:32.200
Ik weet niet waarom mensen daar niet,

1630
01:32:32.200 --> 01:32:35.200
dat er niet soort van revolt is geweest, zeg maar,

1631
01:32:35.620 --> 01:32:36.880
naar Apple na een jaar.

1632
01:32:37.940 --> 01:32:39.000
Dat kan gewoon niet, man.

1633
01:32:39.140 --> 01:32:43.080
Maar goed, dat is nu een middelsweer achter de rug.

1634
01:32:46.700 --> 01:32:48.020
Ja, dat waren ze.

1635
01:32:48.120 --> 01:32:48.800
Ik had er drie.

1636
01:32:49.160 --> 01:32:50.360
Dat hebben we nu lekker erin.

1637
01:32:51.640 --> 01:32:53.080
Dan hebben we normaal ook nog tips.

1638
01:32:55.020 --> 01:32:55.380
Ik heb...

1639
01:32:55.380 --> 01:32:56.040
bijna een tip.

1640
01:32:56.320 --> 01:33:00.320
Ik heb volgens mij...

1641
01:33:00.320 --> 01:33:01.220
Jawel, ik heb wel een tip.

1642
01:33:02.160 --> 01:33:03.640
Ja, dat is gewoon...

1643
01:33:03.640 --> 01:33:05.440
Voor sommige mensen is dat gewoon gesneden koek.

1644
01:33:05.680 --> 01:33:11.280
Onze website is gemaakt met React, Next.js en Tailwind.

1645
01:33:12.160 --> 01:33:13.060
Next.js vind ik echt goed.

1646
01:33:13.060 --> 01:33:13.680
Dat is gewoon leuk.

1647
01:33:13.880 --> 01:33:15.920
Dat is een framework voor React.

1648
01:33:16.380 --> 01:33:19.500
Dus dan kun je statische sites maken.

1649
01:33:20.000 --> 01:33:23.060
Maar je kunt ook hybride sites maken.

1650
01:33:23.160 --> 01:33:25.440
Zodat een deel toch op de server site gegeneerd wordt.

1651
01:33:25.780 --> 01:33:27.200
Maar goed, dat moet je maar uitzoeken.

1652
01:33:27.300 --> 01:33:28.200
Maar dat is wel een tip.

1653
01:33:28.280 --> 01:33:31.440
Next.js, mocht je dus React gebruiken.

1654
01:33:32.820 --> 01:33:34.020
En dan is dat...

1655
01:33:34.020 --> 01:33:35.520
Ja, vond ik wel echt fijn.

1656
01:33:35.780 --> 01:33:38.380
Ja, best wel een verademing om mee te werken.

1657
01:33:39.900 --> 01:33:40.760
Ja, verder heb ik geen tips.

1658
01:33:40.760 --> 01:33:41.820
Ik heb geen boeken tips.

1659
01:33:42.820 --> 01:33:44.960
Ja, ik kijk series.

1660
01:33:45.420 --> 01:33:47.080
Maar die tips, die wil ik wel best wel geven.

1661
01:33:47.920 --> 01:33:49.460
Maar dat kent iedereen inmiddels wel.

1662
01:33:49.520 --> 01:33:51.240
Dat is Star Trek Discovery op Netflix.

1663
01:33:51.500 --> 01:33:52.760
Seizoen 3 is inmiddels weer begonnen.

1664
01:33:52.860 --> 01:33:53.500
Ja, kijk ik ook.

1665
01:33:54.400 --> 01:33:56.880
Ja, goed seizoen.

1666
01:33:58.220 --> 01:33:59.880
Deze tot nu toe was het interessant.

1667
01:34:02.020 --> 01:34:04.720
Ja, iemand op Twitter zag we, ja, maar ze hebben het verpest.

1668
01:34:04.780 --> 01:34:06.340
Want er is heel veel pio, pio, pio.

1669
01:34:06.520 --> 01:34:07.400
En oploffingen.

1670
01:34:07.900 --> 01:34:10.440
Ik denk, ja, oké.

1671
01:34:10.580 --> 01:34:12.920
Dat viel, eerlijk gezegd, nog niet eens heel erg op.

1672
01:34:13.680 --> 01:34:15.920
Ik ben er toen na de rand op gaan letten, omdat iemand daar zei.

1673
01:34:15.960 --> 01:34:17.660
Want ik dacht, ja, ik vind het nog steeds onmengelijk.

1674
01:34:17.960 --> 01:34:19.780
Maar ik vond het op zich wel weer leuk.

1675
01:34:21.640 --> 01:34:23.100
Alle 3 seizoenen zijn wel een beetje anders.

1676
01:34:23.200 --> 01:34:24.960
Dus dat is op zich wel wel grappig.

1677
01:34:27.060 --> 01:34:28.940
Ja, heb jij tips, Bernard?

1678
01:34:29.620 --> 01:34:29.980
Nee.

1679
01:34:31.960 --> 01:34:34.020
Je hebt toevallig tips, je mag alles tipsen.

1680
01:34:34.040 --> 01:34:35.100
Je eigen website.

1681
01:34:37.660 --> 01:34:43.040
Nou, wat ik wil tippen, het is niet eens van mezelf.

1682
01:34:44.560 --> 01:34:48.620
Maar op 1 december begint de Advent of Code weer.

1683
01:34:48.820 --> 01:34:49.260
Ja.

1684
01:34:52.900 --> 01:34:57.540
In het hypothetische geval dat iemand zowel naar CodeKlets luistert

1685
01:34:57.540 --> 01:35:00.300
en niet weet wat Advent of Code is.

1686
01:35:00.660 --> 01:35:02.340
Ik denk niet dat het een hele grote groep zal zijn.

1687
01:35:02.340 --> 01:35:10.280
Maar elke dag komt er een nieuwe programming challenge op AdventOfCode.com.

1688
01:35:11.460 --> 01:35:12.660
En die kan je oplossen.

1689
01:35:14.360 --> 01:35:16.720
En het begint altijd heel makkelijk.

1690
01:35:17.320 --> 01:35:22.560
Bij wijze van spreken tel deze 10 getallen bij elkaar op.

1691
01:35:22.900 --> 01:35:25.080
En het wordt vanzelf steeds moeilijker

1692
01:35:25.080 --> 01:35:30.120
tot je op dag 28 hele microchips aan het simuleren bent.

1693
01:35:30.120 --> 01:35:31.620
Het is hartstikke leuk.

1694
01:35:32.020 --> 01:35:33.860
Ik kan het van harte aanraden.

1695
01:35:34.980 --> 01:35:36.960
En als je een nieuwe programmeertal wilt leren,

1696
01:35:37.120 --> 01:35:38.480
waarom doe je het niet in Haskell dit jaar?

1697
01:35:38.620 --> 01:35:40.500
Nou ja, dat specifieke...

1698
01:35:40.980 --> 01:35:42.020
Ja, dat klopt.

1699
01:35:42.200 --> 01:35:44.480
Dat zei die collega volgens mij niet.

1700
01:35:45.060 --> 01:35:45.560
Ja, wel.

1701
01:35:46.120 --> 01:35:48.520
Die heeft het volgens mij vorig jaar in Haskell, dacht ik.

1702
01:35:48.520 --> 01:35:52.200
Ik ken iemand die elke dag een andere programmeertal gebruikt een keer.

1703
01:35:52.500 --> 01:35:53.740
Dus 25 dagen lang.

1704
01:35:54.160 --> 01:35:56.320
Allemaal 25 verschillende programmeertalen.

1705
01:35:57.380 --> 01:35:57.440
Ja.

1706
01:35:58.280 --> 01:35:58.680
Respect.

1707
01:35:59.620 --> 01:36:00.340
Dat is wel respect.

1708
01:36:01.780 --> 01:36:03.740
Ik heb alleen maar Ruby gebruikt vorig jaar.

1709
01:36:04.160 --> 01:36:07.240
En dit jaar ga ik misschien in Haskell of Swift of wat anders tussendoor doen.

1710
01:36:07.960 --> 01:36:11.480
Maar het is wel zo dat die puzzles op elkaar inhaken soms.

1711
01:36:11.540 --> 01:36:14.140
Dus dan heb je een stuk code dat je dan kan hergebruiken.

1712
01:36:14.160 --> 01:36:15.180
Dat was afgelopen jaar zo.

1713
01:36:15.540 --> 01:36:18.960
Maar ik heb erg veel logmat en ik heb er nu ook alweer zin in.

1714
01:36:19.920 --> 01:36:21.520
Nee, ik heb het nog niet gedaan.

1715
01:36:21.680 --> 01:36:24.440
Het was meer tijd en zin.

1716
01:36:24.440 --> 01:36:27.640
En ik kan niet zo goed tegen mijn verlies.

1717
01:36:27.700 --> 01:36:28.740
Dat klinkt heel raar.

1718
01:36:30.300 --> 01:36:32.160
Dus als ik dan loop over, oh ja, die heeft dat gedaan.

1719
01:36:33.180 --> 01:36:35.440
Ja, dat is echt...

1720
01:36:36.400 --> 01:36:39.500
Nee, maar als je ambities hebt om in de top 100 te komen,

1721
01:36:39.640 --> 01:36:41.440
er zijn gasten die hebben dat...

1722
01:36:42.560 --> 01:36:45.980
Die puzzles komen zochtends Nederlandse tijd denk ik om 5 uur of zo.

1723
01:36:46.620 --> 01:36:51.640
En dan zijn de mensen die binnen 5 minuten hele moeilijke puzzles hebben ze opgelost.

1724
01:36:51.640 --> 01:36:54.600
En die streamen ook live van wat ze aan het programmeren zijn.

1725
01:36:54.660 --> 01:36:55.820
Ik heb wel zo'n filmpje gekeken.

1726
01:36:56.580 --> 01:36:57.660
Het gaat heel bizar.

1727
01:36:58.260 --> 01:36:58.920
Ja, waanzinnig.

1728
01:36:59.600 --> 01:37:03.120
Als je competitief mee wilt doen, dat zou ik je niet aanraden.

1729
01:37:03.940 --> 01:37:06.260
Maar er zijn live streams van mensen die dat doen.

1730
01:37:06.600 --> 01:37:09.640
En die gaan verschrikkelijk snel.

1731
01:37:10.220 --> 01:37:12.920
En die hebben dus ook hele tooling setups.

1732
01:37:13.540 --> 01:37:18.100
Dat ze precies op de seconde dat een nieuwe puzzle wordt gereleased,

1733
01:37:18.280 --> 01:37:19.220
dan loggen ze daar echt in.

1734
01:37:19.220 --> 01:37:24.360
En tegelijkertijd hebben ze een cronjob die op de achtergrond

1735
01:37:25.620 --> 01:37:28.520
hun gepersonaliseerde testinput downloadt,

1736
01:37:28.620 --> 01:37:30.260
zodat ze dat alvast klaar hebben zet,

1737
01:37:30.320 --> 01:37:32.280
zodat ze dat niet handmatig hoeft te downloaden.

1738
01:37:33.420 --> 01:37:37.440
Het is echt die mensen die elke seconde telt.

1739
01:37:38.080 --> 01:37:39.580
Ik zit er zelf niet zo in.

1740
01:37:39.680 --> 01:37:41.540
Ik vind het leuk om er gewoon af na te denken

1741
01:37:41.540 --> 01:37:43.360
en een mooie oplossing te maken.

1742
01:37:44.440 --> 01:37:46.100
Hoe lang is dit er al inmiddels?

1743
01:37:47.420 --> 01:37:48.380
2017 volgens mij.

1744
01:37:48.380 --> 01:37:49.680
Een jaar of twee, drie jaar.

1745
01:37:50.100 --> 01:37:50.380
Hoe lang?

1746
01:37:50.720 --> 01:37:50.880
Even kijken hoor.

1747
01:37:51.180 --> 01:37:53.040
Dat kan je heel goed even kijken.

1748
01:37:54.100 --> 01:37:54.540
Event.

1749
01:37:55.260 --> 01:37:57.320
De eerste is uit 2015.

1750
01:37:58.660 --> 01:37:59.340
Oh wel, oké.

1751
01:37:59.500 --> 01:38:00.420
Dus een jaar of vijf jaar.

1752
01:38:01.260 --> 01:38:03.600
Je kent het denk ik een jaar of drie of zo.

1753
01:38:03.860 --> 01:38:06.420
Misschien moeten we een leaderboard aanmaken voor CodeKlets.

1754
01:38:07.480 --> 01:38:11.520
Dan kunnen de mensen die CodeKlets kennen daar gelijken.

1755
01:38:11.520 --> 01:38:12.840
Kijken hoe iedereen het doet.

1756
01:38:12.840 --> 01:38:15.680
Ik heb ook een beetje die rare Tadzone eruit.

1757
01:38:17.020 --> 01:38:18.460
Ja, dat klopt.

1758
01:38:20.780 --> 01:38:21.360
We zullen zien.

1759
01:38:21.780 --> 01:38:23.300
Ik ga eens kijken of ik dat kan opzetten.

1760
01:38:24.460 --> 01:38:25.880
Ja, dat lijkt me wel leuk.

1761
01:38:26.720 --> 01:38:28.360
Kijken of, ja.

1762
01:38:29.000 --> 01:38:31.440
Het zou wel grappig zijn als er dan onder ons

1763
01:38:31.440 --> 01:38:32.920
echt een top 100 iemand zit.

1764
01:38:34.340 --> 01:38:34.860
Oké.

1765
01:38:37.420 --> 01:38:38.340
We gaan zien.

1766
01:38:39.300 --> 01:38:39.820
Goed.

1767
01:38:40.080 --> 01:38:40.660
Dat waren de tips.

1768
01:38:40.660 --> 01:38:41.180
Goede tip.

1769
01:38:41.800 --> 01:38:42.280
Zeker.

1770
01:38:42.840 --> 01:38:45.880
Ja, dan zijn we door het laatste deel heen.

1771
01:38:46.060 --> 01:38:50.120
Dus dan blijft er niks anders over dan jou te bedanken.

1772
01:38:50.720 --> 01:38:51.500
Ja, heel erg bedankt.

1773
01:38:52.360 --> 01:38:52.840
Ja.

1774
01:38:53.700 --> 01:38:54.300
Was leuk.

1775
01:38:54.900 --> 01:38:56.040
Was weer leerzaam.

1776
01:38:57.740 --> 01:38:58.320
Even kijken.

1777
01:38:58.460 --> 01:39:01.240
Ja, we zetten meestal in de show notes allerlei links.

1778
01:39:02.060 --> 01:39:04.440
Ja, hoe mensen je kunnen vinden op Twitter, LinkedIn.

1779
01:39:06.320 --> 01:39:07.760
Ja, je website en dat soort zaken.

1780
01:39:07.920 --> 01:39:09.860
Dus dat zetten we meestal in de show notes.

1781
01:39:09.860 --> 01:39:11.920
Als ik vragen heb, dan ga ik je benaderen.

1782
01:39:12.960 --> 01:39:13.860
Hoe zit het daar?

1783
01:39:14.600 --> 01:39:15.300
Ja, precies.

1784
01:39:15.380 --> 01:39:16.000
Dus dat is heel fijn.

1785
01:39:16.860 --> 01:39:17.860
Ja, wat nog meer?

1786
01:39:18.520 --> 01:39:19.960
Ik ben er niet heel veel mee te melden.

1787
01:39:20.240 --> 01:39:24.940
Ja, als je hiernaar luistert, dan denk ik al dat je subscribe bent.

1788
01:39:26.680 --> 01:39:28.900
Informatie over CodeKlets is gewoon te vinden op codeklets.nl.

1789
01:39:30.000 --> 01:39:31.160
Je kunt ons volgen op Twitter.

1790
01:39:31.680 --> 01:39:32.840
Ja, we hebben de nieuwsbrief.

1791
01:39:33.000 --> 01:39:35.240
Dat is wel iets waar je bijvoorbeeld in kunt schrijven.

1792
01:39:35.240 --> 01:39:43.520
Dan krijg je iedere twee weken een leuke set aan informatie voor de developers.

1793
01:39:44.140 --> 01:39:46.540
Kan ik meer?

1794
01:39:46.800 --> 01:39:47.500
Niet eigenlijk.

1795
01:39:47.980 --> 01:39:49.000
Goed, dankjewel.

1796
01:39:49.280 --> 01:39:51.800
En tot de volgende keer weer.

1797
01:39:51.920 --> 01:39:52.360
Doei doei.

1798
01:39:52.560 --> 01:39:53.220
Doei.

1799
01:39:53.400 --> 01:39:53.760
Hela.
