1
00:00:05,400 --> 00:00:09,620
Heute geht es in Folge 2 unserer
Doppelfolge zu VRPC. 

2
00:00:09,660 --> 00:00:11,730
Falls Sie es noch nicht getan 
habt, hört euch doch erst die 

3
00:00:11,740 --> 00:00:14,290
vorherige Folge nochmal an. 
Viel Spaß dabei. 

4
00:00:14,840 --> 00:00:17,960
Jetzt gucken wir andere Sprache.
Nicht, dass wir gucken jetzt mal

5
00:00:17,970 --> 00:00:22,110
eine moderne Sprache, nämlich 
javascript und Java Script gibt 

6
00:00:22,120 --> 00:00:24,680
es typischerweise ganz viel im 
Web und vor allen Dingen im 

7
00:00:24,690 --> 00:00:27,910
Browser und das Java Script, was
nicht im Browser läuft. 

8
00:00:28,610 --> 00:00:30,780
Sondern im Server, also im 
Backend. 

9
00:00:31,290 --> 00:00:34,990
Das nennt sich Note JS jetzt 
wieder stark vereinfacht, da 

10
00:00:35,000 --> 00:00:37,810
gibt es auch andere Varianten 
und so, aber sehr bekannt ist 

11
00:00:37,820 --> 00:00:41,470
halt no JS als 
Programmiersprache und das ist 

12
00:00:41,480 --> 00:00:45,160
im Prinzip Java Script, was aber
keinen Browser braucht um 

13
00:00:45,170 --> 00:00:48,880
ausgeführt zu werden, sondern 
was halt selbst stehend quasi 

14
00:00:48,890 --> 00:00:52,040
als als kompetente 
objektorientierte Sprache 

15
00:00:52,050 --> 00:00:54,450
irgendwie laufen kann ich ein. 
Wichtiges Learning irgendwie. 

16
00:00:54,460 --> 00:00:56,930
Das lass mich zusammenfassen. 
Wir hatten gesagt, im Browser 

17
00:00:56,940 --> 00:01:00,370
läuft eigentlich immer HA plus 
CSS plus javascript. 

18
00:01:01,140 --> 00:01:04,700
Und du sagst jetzt javascript 
fürs Backend oder für den Server

19
00:01:04,739 --> 00:01:07,830
ist letzten Endes noch. 
S genau, also einfach gesagt ja 

20
00:01:07,840 --> 00:01:10,560
nichts wirklich richtig sogar, 
und das ist halt, das ist 

21
00:01:10,570 --> 00:01:13,330
eigentlich ganz elegant und 
schick, weil dann kannst du, so 

22
00:01:13,340 --> 00:01:16,260
wie ich das mache, ich muss ich 
grad an beiden Fronten 

23
00:01:16,270 --> 00:01:20,430
implementiert im Frontend und 
Backend, also das nennt man Full

24
00:01:20,440 --> 00:01:22,830
Stack, wenn du sowas machst. 
Ja also ne Frontend und Backend 

25
00:01:22,840 --> 00:01:24,460
machst du typischerweise Full 
Stack. 

26
00:01:25,340 --> 00:01:28,320
Und wenn du die gleiche 
Programmiersprache Technologie 

27
00:01:28,330 --> 00:01:32,160
hast, das ist halt total schön, 
weil das menschliche Hirn, dann 

28
00:01:32,170 --> 00:01:36,200
musst du ja ständig irgendwie 
irgendwie hinter springen und 

29
00:01:36,210 --> 00:01:40,100
mit verschiedenen Tastaturen, 
aber das gleiche so, und dann 

30
00:01:40,110 --> 00:01:42,250
wirst du, dann wirst du nicht so
im Kopf, dann kannst du halt 

31
00:01:42,260 --> 00:01:45,670
beides gleichzeitig machen, weil
s halt die gleiche Sprache ist. 

32
00:01:45,680 --> 00:01:48,040
Ja natürlich ein paar andere 
Limitierungen und ein paar 

33
00:01:48,050 --> 00:01:50,960
Extras und ne paar Extras 
weniger. 

34
00:01:51,680 --> 00:01:54,340
Aber am Ende des Tages hat die 
gleiche Sprache, ja, das hat 

35
00:01:54,350 --> 00:01:56,730
ziemlich schick, deswegen setzt 
sich immer mehr durch, das hat 

36
00:01:56,740 --> 00:01:59,910
auch so ziemlich. 
Ziemlich gut genutzte Sprache 

37
00:01:59,920 --> 00:02:03,970
also AS und Python und so Python
also spielen auf einer Liga 

38
00:02:03,980 --> 00:02:07,860
Python und TSOK. 
So, du könntest natürlich 

39
00:02:07,870 --> 00:02:09,789
irgendwas anderes nehmen, wir 
haben ja gesagt, haben 

40
00:02:09,800 --> 00:02:13,910
inzwischen a dazwischen und der 
ist völlig hupe, ob das dann am 

41
00:02:13,920 --> 00:02:16,730
Ende Python aufruft und GS aber 
für die Entwickler ist 

42
00:02:16,740 --> 00:02:19,070
vielleicht schön, wenn du gerade
Full Stack machst nimmst du die 

43
00:02:19,080 --> 00:02:21,160
gleiche Sprache. 
Ja, genau. 

44
00:02:21,550 --> 00:02:24,270
Jetzt geht es los. 
Wo fängt die getriebenen Krams 

45
00:02:24,280 --> 00:02:28,320
an und so, ja und typischerweise
das erste einfache Beispiel 

46
00:02:28,330 --> 00:02:31,670
verstehen kann, ist, wenn ich 
zum Beispiel IO mache, Input 

47
00:02:31,680 --> 00:02:34,170
Output. 
Ja, das ist eine Grundlage der 

48
00:02:34,180 --> 00:02:37,120
ganzen Informatik IO Input 
Output der was heißt das? 

49
00:02:37,610 --> 00:02:41,680
Das ist das, das befasst sich 
mit dem ganzen Datei Gedöns ja 

50
00:02:41,690 --> 00:02:45,200
wenn ich zum Beispiel Datei 
schreibe oder lese ist das halt 

51
00:02:45,210 --> 00:02:48,890
IO Input Output ja und wenn ich 
jetzt kannst du dir vorstellen 

52
00:02:48,900 --> 00:02:51,150
wenn ich jetzt zum Beispiel 
Datei schreibe mit einem 

53
00:02:51,160 --> 00:02:54,100
Computerprogramm also ich hab 
irgendwelche Daten angesammelt 

54
00:02:54,110 --> 00:02:56,000
die jetzt gerade egal wo die 
herkommen, ich kann ja zum 

55
00:02:56,010 --> 00:02:58,620
Beispiel generieren ich 
irgendwelche Zufalls zahlen 

56
00:02:58,630 --> 00:03:01,840
sowas und will die Datei 
klatschen macht gar keinen Sinn 

57
00:03:01,850 --> 00:03:05,690
aber sagen wir mal ja so und 
jetzt willst du von deinem. 

58
00:03:05,760 --> 00:03:08,960
Von deinem No GS Programm aus 
einer Datei schreiben. 

59
00:03:09,390 --> 00:03:12,060
Wenn du jetzt jetzt nicht gerade
nur 2 Werte da rein schreibst, 

60
00:03:12,070 --> 00:03:14,580
sondern das ist vielleicht du 
willst halt 20 Gigabyte große 

61
00:03:14,590 --> 00:03:18,000
Datei schreiben, Vollmacht 
Zufallszahlen, dann dauert das 

62
00:03:18,010 --> 00:03:20,900
halt Moment und zwar vielleicht 
sogar ganz schön lange. 

63
00:03:20,910 --> 00:03:24,590
Ja also also wenn was dauert in 
der Software, dann ist das schon

64
00:03:24,600 --> 00:03:29,130
ne, dann ist schon ziemlich lang
ja so und 20 Gigabyte schreibst 

65
00:03:29,140 --> 00:03:32,500
du wahrscheinlich nicht in einer
Stunde ne es ist auch 

66
00:03:32,510 --> 00:03:34,880
erstaunlich, es geht schon 
erstaunlich schnell heutzutage, 

67
00:03:34,890 --> 00:03:38,460
aber egal ich will ich will den 
Punkt machen, dass wenn wenn 

68
00:03:38,470 --> 00:03:41,840
dieser. 
Wenn dieser, und das ist auch 

69
00:03:41,850 --> 00:03:45,180
wieder eine Funktion, ja, die 
heißt sowas wie tatsächlich gibt

70
00:03:45,190 --> 00:03:48,180
Pfeil System Bibliothek auch 
wieder direkt in der Sprache 

71
00:03:48,190 --> 00:03:51,560
verankert und dann kannst du 
sagen FS Punkt Right, dann gibt 

72
00:03:51,570 --> 00:03:55,560
es noch den Film den Pass an zu 
dem also fad und Teilnahme 

73
00:03:55,570 --> 00:04:00,360
zusammen und die Daten ne und 
dann schreibt dir noch eine 

74
00:04:00,370 --> 00:04:03,040
Datei hin und so das sind so 
Sachen die kannst programmieren 

75
00:04:03,050 --> 00:04:07,160
wenn du programmierst machen ne 
und wäre das jetzt so und es 

76
00:04:07,170 --> 00:04:09,910
geht auch, dass du das synchron 
machst wie man so schön sagt, 

77
00:04:09,920 --> 00:04:12,020
also jetzt quasi nicht Event 
getrieben. 

78
00:04:12,850 --> 00:04:18,019
Dann wird diese Funktion deinen 
Code, deine ganze Anwendung 

79
00:04:18,029 --> 00:04:22,510
anhalten, bis das verdammte 
Pfeil geschrieben ist und dann 

80
00:04:22,520 --> 00:04:25,870
zurückkommen. 
Ach so, das das heißt, weil das 

81
00:04:25,880 --> 00:04:29,310
sozusagen abgearbeitet wird, 
Punkt für Punkt das Programm und

82
00:04:29,320 --> 00:04:33,140
jetzt kommt die Funktion 
schreibe file mit dem Namen, in 

83
00:04:33,150 --> 00:04:37,100
dem Fahrt mit dem Inhalt ja das 
passiert wenn das erledigt ist, 

84
00:04:37,110 --> 00:04:38,810
dann kannst du nächsten. 
Kannst weitergehen. 

85
00:04:38,820 --> 00:04:42,970
Ja, so und und wären, wenn das 
synchron ist. 

86
00:04:43,010 --> 00:04:46,720
Also jetzt mal was Programm und 
so weiter also wir haben einen 

87
00:04:46,730 --> 00:04:49,340
Prozess, also Programme, 
Software, Programm läuft im 

88
00:04:49,350 --> 00:04:52,580
sogenannten Prozess ist immer 
gleich, alle Betriebssysteme und

89
00:04:52,590 --> 00:04:55,540
der Prozess ist quasi die oben, 
ist ja quasi der oberste Ausfuhr

90
00:04:55,550 --> 00:04:59,060
Container für jede Anwendung ist
immer ein Prozess. 

91
00:04:59,130 --> 00:05:00,490
Punkt. 
Ja, der Prozess kriegt ein 

92
00:05:00,500 --> 00:05:04,750
gewisser D nennen sich Process 
IDPID auch sehr wichtiges 

93
00:05:04,760 --> 00:05:06,940
Konzept. 
Jeder der mal bisschen 

94
00:05:06,950 --> 00:05:10,450
administriert w ist, die gibt es
auch sogar in Windows im 

95
00:05:10,460 --> 00:05:13,020
Taskmanager sieht manchmal 
komische Nummern wenn sich mal 

96
00:05:13,030 --> 00:05:15,830
so richtig verabschiedet hat, 
dann muss immer dann kannst du 

97
00:05:15,840 --> 00:05:18,750
sagen will diese Nummer oder 
irgendwas kannst du glaube ich 

98
00:05:18,760 --> 00:05:22,590
auch wieder und so aber egal so 
und das identifiziert hat einen 

99
00:05:22,600 --> 00:05:27,080
Prozess und wichtig ist in dem 
jede Software arbeitet halt 

100
00:05:27,090 --> 00:05:31,910
erstmal an einem Prozess und 
warum weil dem Prozess quasi der

101
00:05:31,920 --> 00:05:34,330
Anwender als Anwendungs Memory 
zugeschrieben. 

102
00:05:34,400 --> 00:05:37,360
Wird also die Daten alle Daten, 
die in dem Prozess anlaufen, 

103
00:05:37,370 --> 00:05:40,380
auflaufen? 
Gehören halt nur diesen Prozess 

104
00:05:40,390 --> 00:05:42,680
und jeder andere Prozess in 
diesem auf diesen ganzen 

105
00:05:42,690 --> 00:05:46,150
Computer auf dem Betriebssystem 
darf da halt nicht drauf 

106
00:05:46,160 --> 00:05:48,910
zugreifen, das regelt das 
Betriebssystem schon für dich 

107
00:05:49,450 --> 00:05:52,620
und das ist total wichtig, weil 
sonst hätten wir noch Security 

108
00:05:52,630 --> 00:05:54,890
Leaks so ja das wäre total 
gruselig, dann könnte jeder 

109
00:05:54,900 --> 00:05:57,950
irgendwo ein Programm starten 
und von quer irgendwie auf ein 

110
00:05:57,960 --> 00:05:59,880
anderes Programm zugreifen, da 
die Daten abstauben. 

111
00:06:01,140 --> 00:06:03,550
So, jetzt ist aber so ein 
Prozess an sich erstmal nur eine

112
00:06:03,560 --> 00:06:06,430
ausführbare Einheit. 
Ja, das was du gesagt hattest, 

113
00:06:06,440 --> 00:06:08,780
das arbeitet alles ab. 
Ja jetzt kommen irgendwelche 

114
00:06:08,790 --> 00:06:11,350
Aufrufe und dann irgendwann 
kommt diese Funktion und soll 

115
00:06:11,360 --> 00:06:14,920
halt dieses falsch schreiben ja 
so und wenn das synchron ist und

116
00:06:14,930 --> 00:06:19,150
dann passt, dann steht halt 
dieser Prozess fest für die 

117
00:06:19,160 --> 00:06:20,820
Zeit, dass dieses Fall 
geschrieben wird. 

118
00:06:21,240 --> 00:06:24,220
Wenn das jetzt aber in Backend 
ist, n Server ist, ja dann kann 

119
00:06:24,230 --> 00:06:27,030
das ja sein und das interessiert
dich ja nicht, wenn du Gerrit 

120
00:06:27,040 --> 00:06:29,930
jetzt gerade den Server nochmal 
anfragst Grad mal fresh den 

121
00:06:29,940 --> 00:06:31,810
Browser gedrückt, was passiert 
denn dann? 

122
00:06:31,820 --> 00:06:35,200
Kommt ne Anfrage an diesen an 
dieses Programm. 

123
00:06:35,690 --> 00:06:38,970
Das wird dann halt irgendwie 
Daten haben, die du haben soll. 

124
00:06:38,980 --> 00:06:41,240
Dann halt Daten abliefern, die 
du haben willst du gerade 

125
00:06:41,250 --> 00:06:44,180
anfragst. 
Du sitzt ganz anderen Ecke vom 

126
00:06:44,190 --> 00:06:47,530
Planeten und dieses Programm 
schreibt aber gerade 50 Gigabyte

127
00:06:47,540 --> 00:06:52,190
filin, weil ich den gleichen 
Server gesagt hab ich erstmal 

128
00:06:52,200 --> 00:06:55,530
meine generieren mal 50 Gigabyte
Daten und schmeißt die auf die 

129
00:06:55,540 --> 00:06:59,100
Festplatte so ja wir sind völlig
gemachter K so aber ist egal, 

130
00:06:59,110 --> 00:07:02,040
ist zeigt was los ist. 
So dann kriegst du keine 

131
00:07:02,050 --> 00:07:05,240
Antwort, so lange nicht mein 
Fall fertig geschrieben ist 

132
00:07:05,250 --> 00:07:09,240
steht quasi die Ganze die nicht 
die das kommt zwar an durch die 

133
00:07:09,250 --> 00:07:13,200
durch Netzwerkkabel kommt deine 
Anfrage an und bleibt aber 

134
00:07:13,240 --> 00:07:15,790
stehen bis die Anwendung frei 
ist. 

135
00:07:15,830 --> 00:07:18,270
Diese Anfrage. 
Abzuarbeiten das Betriebssystem,

136
00:07:18,280 --> 00:07:20,230
das dann irgendwie in Reihe 
gestellt wird und. 

137
00:07:20,240 --> 00:07:23,640
Genau da gibt es noch. 
Bei Synchronem bearbeiten 

138
00:07:23,650 --> 00:07:25,270
sozusagen. 
Auch bei asynchron. 

139
00:07:25,280 --> 00:07:29,130
Also mal, dass ich noch zu so 
ich will, das will ich kurz 

140
00:07:29,140 --> 00:07:31,690
erzählen, wichtig, und das ist 
halt synchron so, ja. 

141
00:07:32,370 --> 00:07:36,340
Und, und das ist halt besonders,
gerade für so Server Sachen für,

142
00:07:36,350 --> 00:07:39,660
man sagt für IO lästige 
Anwendungen ja und wann ist IO 

143
00:07:39,670 --> 00:07:41,240
lastig? 
Wenn wenn du viel Files 

144
00:07:41,250 --> 00:07:45,030
schreibst liest und falsch 
schreiben ist das gleiche wie 

145
00:07:45,040 --> 00:07:47,050
Datenbank Zugriffe machen am 
Ende ist eine Datenbank 

146
00:07:47,060 --> 00:07:50,090
eigentlich neues organisiertes 
Pfeil ja vielleicht nochmal 

147
00:07:50,100 --> 00:07:54,760
Anwendung und also zum Beispiel 
Sequel Light wenn das mal kurz 

148
00:07:54,770 --> 00:07:59,240
ist quasi ne in in Process 
Datenbank, die macht das 

149
00:07:59,250 --> 00:08:01,300
tatsächlich, die schreibt 
andauernd in den Pfeil und lies 

150
00:08:01,310 --> 00:08:03,630
wieder macht das aber so 
geschickt, dass es quasi wie 

151
00:08:03,640 --> 00:08:07,180
Datenbank agiert kann man sich 
merken Maid ist ein Datenbank 

152
00:08:07,190 --> 00:08:10,330
Lösung für dabei habe ich gar 
kein Netzwerk dazwischen, die 

153
00:08:10,340 --> 00:08:12,650
größeren Datenbanken laufen 
typischerweise im eigenen 

154
00:08:12,660 --> 00:08:16,790
Prozess, auch im Prozess, 
Kommunikation also quasi wieder 

155
00:08:16,800 --> 00:08:19,050
einfach Netzwerk, ja, die 
Prozesse können auf 

156
00:08:19,100 --> 00:08:21,510
unterschiedliche Prozesse auf 
dem gleichen Betriebssystem 

157
00:08:21,520 --> 00:08:23,550
laufen. 
Ja, dann kriegen wir 2 

158
00:08:23,560 --> 00:08:27,030
verschiedene IDS, können sich 
miteinander unterhalten, aber 

159
00:08:27,040 --> 00:08:29,400
nur, wenn die quasi ihre 
Memories, die eigentlich 

160
00:08:29,410 --> 00:08:33,190
getrennt sind, explizit vom 
einfach zum anderen schicken. 

161
00:08:33,299 --> 00:08:36,970
Ja, auch hier wird dann v er PC 
nochmal spannend und das muss 

162
00:08:36,980 --> 00:08:39,730
ich auch machen irgendwie über 
ich muss dann quasi die Bytes 

163
00:08:39,740 --> 00:08:41,490
die ich hab wieder 
serialisieren, das hatten wir 

164
00:08:41,500 --> 00:08:44,470
auch schon mal quasi in eine 
Kette von Einsen und Nullen 

165
00:08:44,480 --> 00:08:47,430
verpacken und von dem einen zum 
anderen schicken und muss wieder

166
00:08:47,440 --> 00:08:51,640
einpacken ja hin und her so, das
hat extrem aufwendig so aber 

167
00:08:51,650 --> 00:08:54,090
alles das passiert in in wenn du
eine Datenbank zum Beispiel 

168
00:08:54,100 --> 00:08:56,070
hast, dann wird die 
typischerweise in einem eigenen 

169
00:08:56,080 --> 00:08:58,610
Prozess. 
Laufen und eine Anfrage kommt in

170
00:08:58,620 --> 00:09:00,480
die Anwendung. 
Die fragt dann die Datenbank 

171
00:09:00,490 --> 00:09:01,990
gibt. 
Bitte gib mir mal, warte mal 

172
00:09:02,000 --> 00:09:04,150
diesen SQL Dings aus und gib mir
die Daten zurück. 

173
00:09:04,160 --> 00:09:07,720
Ja und alles dies kostet Zeit 
und wäre das alles synchron 

174
00:09:07,760 --> 00:09:10,410
könnten halt alle anderen die 
mit dieser sprechen nichts mehr 

175
00:09:10,420 --> 00:09:12,690
machen. 
Ne und so hat es auch noch nie 

176
00:09:12,700 --> 00:09:15,780
funktioniert also damit wirst du
überhaupt gar nichts skalieren. 

177
00:09:15,790 --> 00:09:17,260
Das war nur eine theoretische 
Erklärung. 

178
00:09:17,270 --> 00:09:20,610
Theoretische Erklärung was wir 
jetzt so und jetzt bleiben wir 

179
00:09:20,620 --> 00:09:23,610
dran und jetzt quasi eine 
Parallelisierung im Prinzip ja, 

180
00:09:23,620 --> 00:09:25,630
wir wollen das halt trotzdem, 
wir wollen das, auch wenn es 

181
00:09:25,640 --> 00:09:27,510
Zeit dauert, dann dauert es halt
dauernd. 

182
00:09:27,520 --> 00:09:30,390
Wir wollen aber wieder, wir 
wollen halt quasi wieder, wir 

183
00:09:30,400 --> 00:09:31,500
wollen trotzdem mehr 
Performance. 

184
00:09:31,570 --> 00:09:35,570
Der Anwendung und jetzt die 
erste naive Überlegung ist fein,

185
00:09:35,580 --> 00:09:38,830
OK, dann muss ich halt irgendwie
irgendwie was gleichzeitig 

186
00:09:38,840 --> 00:09:41,230
machen, kann ja nicht sein, dass
mein Computer ist ja auch nicht,

187
00:09:41,240 --> 00:09:43,950
nur weil diese einen Befehl 
ausführt, ja der ist halt nur 

188
00:09:43,960 --> 00:09:47,030
beschäftigt, das heißt doch 
nicht, dass C bei 100% oder 

189
00:09:47,040 --> 00:09:49,550
irgendwas gar nicht, ja, das 
frisst überhaupt gar kein Brot 

190
00:09:49,560 --> 00:09:52,270
da und jetzt kommen die 
sogenannten nochmal ins Spiel, 

191
00:09:52,280 --> 00:09:55,070
die hatten auch schon eine 
Folge, wenn wir sind in einem 

192
00:09:55,080 --> 00:09:57,830
Prozess so und jetzt die 
Möglichkeit mehrere Sachen 

193
00:09:57,840 --> 00:10:01,250
gleichzeitig zu tun, ja ist halt
quasi und ich Threads sogenannte

194
00:10:01,260 --> 00:10:05,130
Threads nehmen ja so kann ich 
sagen OK gut da. 

195
00:10:05,220 --> 00:10:07,670
Drucker, der will hier seine 
randomisierten zahlen n großes 

196
00:10:07,680 --> 00:10:09,540
schreiben, dann mach ich halt 
vielleicht auf. 

197
00:10:10,340 --> 00:10:13,450
Und der läuft neben des 
Nebenläufig. 

198
00:10:13,460 --> 00:10:15,150
Das passiert halt irgendwie 
gleichzeitig. 

199
00:10:15,160 --> 00:10:19,800
Ja, und während das so passiert,
kommt die Gerrit Anfrage rein 

200
00:10:19,890 --> 00:10:22,150
und die wir dann auch noch 
bedient, weil das ist auch 

201
00:10:22,160 --> 00:10:25,100
wieder so. 
Ja so, jetzt aber schon wieder 

202
00:10:25,110 --> 00:10:28,710
das jetzt schon wieder, jetzt 
musst du ja wissen wann ist denn

203
00:10:28,720 --> 00:10:30,870
der Burkhard fertig mit seinem 
Pfeil? 

204
00:10:31,320 --> 00:10:34,750
Ja, da brauch event. 
Ja, oder du musst Polen ne, also

205
00:10:34,760 --> 00:10:37,870
ich muss wieder. 
Also deswegen ich wollte mal im 

206
00:10:37,880 --> 00:10:40,370
Urschleim anfangen damit jemand 
da ist. 

207
00:10:40,380 --> 00:10:44,790
Schon alarm so jetzt hier oder 
mach schon wieder events. 

208
00:10:44,890 --> 00:10:46,650
Hast du gefragt, worauf die 
Geschichte? 

209
00:10:46,660 --> 00:10:48,670
Hinausläuft. 
Ja genau, ich muss, also ich, 

210
00:10:48,680 --> 00:10:51,130
ich weiß nicht ob ich musste, 
aber ich wollte immer so tief 

211
00:10:51,140 --> 00:10:54,260
ausholen, damit ihr wirklich mal
durch verstehen können, wo schon

212
00:10:54,940 --> 00:10:58,150
ja wo ja schon irgendwie sagt 
der Hund vergraben hat, so ist 

213
00:10:58,160 --> 00:11:01,350
der Hund vergraben, ich glaube. 
Ich nicht passt. 

214
00:11:02,270 --> 00:11:05,280
Ja doch, kann man sagen. 
OK, also das heißt auf dieser 

215
00:11:05,290 --> 00:11:08,200
Ebene der Prozesse und der 
Nebenläufigkeit und der Threads,

216
00:11:08,210 --> 00:11:11,500
ich glaub Folge weiß ich nicht, 
ich schätze g 12 irgendwas kann 

217
00:11:11,510 --> 00:11:14,340
sich mal anhören, brauch ich 
schon Events um einfach wieder 

218
00:11:14,350 --> 00:11:16,720
Bescheid zu sagen, dass ich 
jetzt gewisse gewisse 

219
00:11:16,730 --> 00:11:19,930
Arbeitsschritt erfolgt ist oder?
Es geht sogar noch tiefer. 

220
00:11:19,940 --> 00:11:23,250
Und jetzt sage ich noch, was die
diese ganzen, diese ganzen 

221
00:11:23,260 --> 00:11:26,300
Signale, die von außen in deinen
Computer reinkommen oder auch 

222
00:11:26,310 --> 00:11:29,460
von innen, ne, diese diese hier 
ist was da, hier wird das 

223
00:11:29,470 --> 00:11:33,120
geschrieben, hier ist fertig, 
hier ist dein Socket wird aktiv 

224
00:11:33,130 --> 00:11:35,840
weil von außen über das 
Netzwerkkabel quasi. 

225
00:11:35,910 --> 00:11:39,230
Paris gesendet wurden. 
Ne, das war früher sogar auch 

226
00:11:39,240 --> 00:11:44,070
so, dass das quasi im 
Betriebssystem quasi gepolt 

227
00:11:44,080 --> 00:11:46,870
wurde. 
Ja, diese Anfragen. 

228
00:11:46,880 --> 00:11:49,550
Es liefert immer durch, das 
nennt man File Deskriptoren, 

229
00:11:49,600 --> 00:11:52,020
also jedes. 
Man kann sich ja vorstellen, 

230
00:11:52,030 --> 00:11:54,880
Server hält halt nicht nur eine 
Verbindung, sondern erhält 

231
00:11:54,890 --> 00:11:58,190
gleichzeitig Zehntausende 20., 
je nachdem welchen Winter steht.

232
00:11:58,200 --> 00:12:01,030
Ja 50 hunderttausend 
Verbindungen gleichzeitig, über 

233
00:12:01,040 --> 00:12:03,840
die kann jederzeit über die 
verschiedenen Verbindungen 

234
00:12:03,850 --> 00:12:05,310
jederzeit irgendwas kommen, so 
ja. 

235
00:12:06,330 --> 00:12:08,280
Jetzt kann man das im 
Betriebssystem auch sagen. 

236
00:12:08,290 --> 00:12:10,840
Ich gehe immer wieder durch 
hier, was ist hier, was ist hier

237
00:12:10,850 --> 00:12:14,820
was und dann wird das furchtbar 
furchtbar in Anführungszeichen, 

238
00:12:14,830 --> 00:12:17,910
langsam und seit 2 ich jetzt 
muss ich ein bisschen jetzt 

239
00:12:17,920 --> 00:12:24,250
eigentlich seit 2002 gibt es im 
Linux Kernel i pol, das muss man

240
00:12:24,260 --> 00:12:27,070
einmal auch gehört haben, finde 
ich das ist totaler Urschleim, 

241
00:12:27,080 --> 00:12:29,810
so dass also das kennt keiner 
der jetzt den einfach komplex 

242
00:12:29,820 --> 00:12:32,210
fast nicht gehört hat und nicht 
Softwareentwickler der weiß 

243
00:12:32,220 --> 00:12:36,120
nicht was es ist. 
Aber das E Poll das da steht 

244
00:12:36,130 --> 00:12:40,910
glaub ich tatsächlich Event ja 
das ist quasi die Unterliegende 

245
00:12:40,950 --> 00:12:44,360
im Betriebssystem. 
Verankerte Einheit KQ heißt das.

246
00:12:44,400 --> 00:12:47,690
Gibt es n analoge analoges Wort 
und anderen Implementierung, 

247
00:12:47,700 --> 00:12:49,790
aber e und K, da fängt das ganze
Krams an. 

248
00:12:49,800 --> 00:12:54,230
Ja und da wird schon im Prinzip 
ganz unten im urschleim 

249
00:12:54,240 --> 00:12:57,910
Betriebssystem werden quasi 
schon Events registriert, das 

250
00:12:57,920 --> 00:13:00,630
heißt so viel wie gib mir mal 
eine Nachricht raus liebes 

251
00:13:00,640 --> 00:13:04,700
Betriebssystem, wenn auf dem 
Socket da mal was ankommt, ja 

252
00:13:04,860 --> 00:13:08,750
und das wird hoch gereicht in 
den in den sogenannten Thread 

253
00:13:08,760 --> 00:13:11,460
Pool jetzt gehe ich n bisschen 
kompliziert, wir haben quasi, 

254
00:13:11,660 --> 00:13:13,850
aber das ist total, das ist 
wichtig weil das auch total 

255
00:13:13,860 --> 00:13:15,660
aktuell ist. 
Jeder Softwareentwickler muss. 

256
00:13:15,980 --> 00:13:20,810
Sich um mit diesem Kreis, mit 
diesem Krams beschäftigen, ja. 

257
00:13:21,960 --> 00:13:24,880
Und was jetzt notwendig ist, so 
toll gemacht ist, wenn du dich 

258
00:13:24,890 --> 00:13:27,690
mit den Threads selber 
abschaffen musst, dann haben wir

259
00:13:27,700 --> 00:13:29,180
das ganze Problem, was wir in 
der Folge haben. 

260
00:13:29,190 --> 00:13:31,910
Du musst wissen, wann sind die 
fertig und so, wann ist das 

261
00:13:31,920 --> 00:13:35,420
Event fertig, dann fängst Dupont
wieder e Regierungs und so 

262
00:13:35,430 --> 00:13:39,350
weiter dann hast du auch gleich 
sind wenn 2 schwarz an der 

263
00:13:39,360 --> 00:13:41,330
gleichen Stelle irgendwie 
schreiben was du eigentlich 

264
00:13:41,340 --> 00:13:43,590
willst, weil die müssen ja 
Memory die Daten Sachen 

265
00:13:43,600 --> 00:13:47,190
austauschen auch von einem zum 
anderen das kannst du weil du 

266
00:13:47,200 --> 00:13:50,150
kannst ihn schreiben an die 
gleiche Stelle in Memory wird 

267
00:13:50,160 --> 00:13:53,250
das Memory gehört und wir sind 
im Prozess noch verfolgt hast ja

268
00:13:53,740 --> 00:13:56,350
also die laufen die können die 
Threads die können auf das 

269
00:13:56,360 --> 00:13:57,840
Gleiche. 
Sorry, zugreifen während die 

270
00:13:57,850 --> 00:13:59,420
Prozesse das nicht können. 
Das ist vielleicht ein 

271
00:13:59,430 --> 00:14:03,630
wichtiges, wichtiges Ablage, ja 
gerade ja, und wenn die das 

272
00:14:03,640 --> 00:14:06,050
machen, dann bist du halt, dann 
bist du halt im Schlamassel so, 

273
00:14:06,060 --> 00:14:08,030
ja jetzt kriegst du nicht mehr 
aussortiert, wenn die 

274
00:14:08,040 --> 00:14:12,490
gleichzeitig irgendwie schreiben
ist alles Käse, dann mach mal 

275
00:14:12,500 --> 00:14:14,780
was von hier, die Daten sind 
grob da fragt man sich so hey 

276
00:14:14,790 --> 00:14:18,610
das heißt ja meine Datenbank ist
korrupt, wie kann sowas 

277
00:14:18,620 --> 00:14:21,230
passieren, so ja zum Beispiel 
wenn es dann die gleiche 

278
00:14:21,240 --> 00:14:25,320
schreiben passiert will. 
Dann erstmal anderscht für. 

279
00:14:25,330 --> 00:14:29,910
Nee, das ist ja programmieren, 
verbockt oder so und sagt ich 

280
00:14:29,920 --> 00:14:31,980
nochmal klären. 
PS wenn du dieses Programmierst,

281
00:14:31,990 --> 00:14:36,220
dann hast du nur einen Thread 
als Programmierer. 

282
00:14:36,670 --> 00:14:40,400
Also du programmierst so als 
gäbe es gar keine Threads und 

283
00:14:40,410 --> 00:14:44,580
gar keine Gleichzeitigkeit. 
Ist total schick, aber hinten 

284
00:14:44,590 --> 00:14:48,320
drinnen gibt es tatsächlich bei 
jeder Anwendung mehrere Threads.

285
00:14:48,950 --> 00:14:52,870
Genau 4 default. 
Die dieses ganze Management 

286
00:14:52,880 --> 00:14:55,160
machen. 
Also du kriegst, du sagst in OGS

287
00:14:55,170 --> 00:14:58,830
und jetzt kommst du sagst dann 
quasi right file in der 

288
00:14:58,840 --> 00:15:02,270
asynchronen Variante synchron 
und asynchron sind auch so 

289
00:15:02,280 --> 00:15:04,470
Worte, die damit ein bisschen zu
tun haben. 

290
00:15:04,480 --> 00:15:08,010
Ne synchron heißt halt immer. 
Ich für was aus und warte so 

291
00:15:08,020 --> 00:15:11,860
lange, bis es zurückkommt. 
Asynchron heißt, ich sage, ich 

292
00:15:11,870 --> 00:15:16,800
hätte das gerne und registriere 
einen sogenannten Call Back, das

293
00:15:16,810 --> 00:15:20,250
ist auch ganz wichtiges Ding. 
Ja n Call Back, das heißt eine 

294
00:15:20,490 --> 00:15:23,760
weitere Funktion, eine 
benachrichtigungs Funktion, die 

295
00:15:23,770 --> 00:15:26,830
dann aufgerufen wird, die ich 
nicht aufrufe, dann Event 

296
00:15:26,840 --> 00:15:29,930
getrieben aufgerufen wird wenn 
das fertig ist was ich da gesagt

297
00:15:29,940 --> 00:15:32,200
habe. 
Und die ruft dann wieder an. 

298
00:15:32,240 --> 00:15:33,750
Deswegen komme. 
Ich dann wieder an. 

299
00:15:33,760 --> 00:15:37,480
Genau deswegen Call Back Call me
back if you dont ne oder 

300
00:15:37,490 --> 00:15:40,250
irgendwas so ja genau so 
funktioniert es ist total. 

301
00:15:40,320 --> 00:15:42,980
Das muss man, deswegen wollte 
ich ihnen, dass man das ist, 

302
00:15:42,990 --> 00:15:45,560
weil das ist so fundamental, 
dass man einmal irgendwie gesagt

303
00:15:45,570 --> 00:15:49,120
haben, also wenn ich jetzt sage,
schreibt die 50 Gigabyte file im

304
00:15:49,130 --> 00:15:53,960
asi im asynchronen Zustand, dann
sage ich, Liebes Neujahrs, tue 

305
00:15:53,970 --> 00:15:58,080
das, und hier gebe ich dir ne 
Funktion mit, die hab ich auch 

306
00:15:58,090 --> 00:16:01,840
programmiert von außen, die 
rufst du bitte auf, wenn das 

307
00:16:01,850 --> 00:16:04,870
fertig ist. 
So, und wenn ich das so mache, 

308
00:16:04,910 --> 00:16:07,470
dann dann hab ich verliert, dann
warte ich quasi nur noch für 

309
00:16:07,480 --> 00:16:11,640
diesen nur das Event zu 
registrieren hat Anfang mit dem 

310
00:16:11,880 --> 00:16:14,020
Macht das, bitte registriere ich
quasi Event. 

311
00:16:14,370 --> 00:16:16,740
Und wenn der Call Back kommt, 
dann wird das Event aufgeführt 

312
00:16:17,010 --> 00:16:19,470
und das feine geschrieben wird. 
Das passiert dann komplett 

313
00:16:19,480 --> 00:16:22,280
nebenher und in dem Moment wo 
ich registriert bin ich schon 

314
00:16:22,290 --> 00:16:24,470
wieder fertig und 1000 andere 
Sachen gleichzeitig machen. 

315
00:16:24,480 --> 00:16:27,180
Kannst, weil dann unter 
Umständen weiter benutzen oder 

316
00:16:27,190 --> 00:16:28,910
wie auch immer. 
Ja, nicht das gleiche Fall. 

317
00:16:28,920 --> 00:16:30,750
Das ist dann vielleicht, aber 
ich habe. 

318
00:16:30,760 --> 00:16:33,830
Am Event kam das jetzt fertig. 
Ja, dann kannst du n bisschen 

319
00:16:33,840 --> 00:16:35,710
fertig. 
Ja dann das garantiert ja das 

320
00:16:35,720 --> 00:16:37,680
Betriebssystem, das zurückkommt,
dann ist das geschrieben, dann 

321
00:16:37,690 --> 00:16:40,350
kannst du es benutzen, aber das 
wichtige ist, während dieses 

322
00:16:40,360 --> 00:16:42,760
feige geschrieben wird, ist 
meine Anwendung völlig 

323
00:16:42,770 --> 00:16:46,060
responsive. 
Ich ich habe 1000 ich hab 1000 

324
00:16:46,070 --> 00:16:48,090
Millionen als würdest du 
irgendwie bügelbrett stehen, 

325
00:16:48,100 --> 00:16:52,310
irgendwie bügeln. 
Radio reparieren, telefonieren, 

326
00:16:52,320 --> 00:16:55,620
so als gleichzeitig, das kannst 
du machen und du merkst halt 

327
00:16:55,630 --> 00:16:57,230
nicht, dass Threads am am Start 
sind. 

328
00:16:57,240 --> 00:17:00,490
Du musst ihn nicht 
synchronisieren, das tut Notiz 

329
00:17:00,500 --> 00:17:03,300
für dich und zwar mit einem ganz
wichtigen Konzept, mit dem 

330
00:17:03,310 --> 00:17:06,859
sogenannten Event Loop. 
Das heißt, wir sind jetzt quasi 

331
00:17:06,869 --> 00:17:11,480
dabei, noch mal zu erklären, ob 
er gesagt, du, was jetzt Events 

332
00:17:11,490 --> 00:17:13,680
ausmachen beziehungsweise wie 
tief sie eigentlich verankert 

333
00:17:13,690 --> 00:17:15,760
sind. 
Genau erstmal bist du auf das 

334
00:17:15,770 --> 00:17:18,060
Betriebssystem allgemein 
eingegangen und jetzt wie man in

335
00:17:18,069 --> 00:17:20,810
OGS mit Events umgeht, das haben
wir jetzt gelernt. 

336
00:17:20,990 --> 00:17:23,000
Genau. 
Dafür die eingesetzt werden. 

337
00:17:23,010 --> 00:17:26,329
Ne so. 
Genau, ich mach n bisschen 

338
00:17:26,339 --> 00:17:29,590
natürlich will ich sag mal n 
bisschen, vielleicht ein 

339
00:17:29,600 --> 00:17:32,710
bisschen weiter, ich geb mal 
kurz einen Ausblick wo ich hin 

340
00:17:32,720 --> 00:17:36,690
will, dann gehe ich wieder 
zurück auf das Level, wäre es 

341
00:17:36,700 --> 00:17:41,270
nicht schön, wenn jetzt zum 
Beispiel, also jetzt ist es ja 

342
00:17:41,280 --> 00:17:44,340
am Ende, am Ende am Ende des 
Tages sagt zum Beispiel 

343
00:17:44,350 --> 00:17:48,810
irgendein Client, ich sag mal im
Browser lieber Server, tu mal 

344
00:17:48,820 --> 00:17:53,670
für mich irgendwas, was halt 
Zeit kostet, also du veranlasst 

345
00:17:53,680 --> 00:17:56,830
irgendwie zum Beispiel eine 
Datenbank Abfrage und erwartet 

346
00:17:56,840 --> 00:17:59,880
ein Ergebnis. 
Jetzt ist es ja so für dich, 

347
00:17:59,890 --> 00:18:02,090
ganz privat im Browser, wenn du 
das tust. 

348
00:18:02,210 --> 00:18:05,700
Also du bist mir ein Beispiel 
aus der, weil irgendwie hat oder

349
00:18:05,710 --> 00:18:08,770
E oder irgend sowas und machst 
halt ne n bisschen komplizierte 

350
00:18:08,780 --> 00:18:12,540
Anfrage und hast vielleicht also
bisschen größer als wir jetzt 

351
00:18:12,550 --> 00:18:14,940
und dann ist das wirklich ne 
Weile bis das irgendwie zusammen

352
00:18:14,950 --> 00:18:19,330
gemacht wird, dann ist ja deine 
UX deine User Experience, du 

353
00:18:19,340 --> 00:18:20,460
warst du eigentlich haben 
willst. 

354
00:18:20,470 --> 00:18:24,960
Ist das in dem Moment wo das 
fertig ist ne die Anfrage, dass 

355
00:18:24,970 --> 00:18:27,540
ich den Browser von alleine 
aktualisiert und das angezeigt 

356
00:18:27,550 --> 00:18:31,340
wird und zwar sofort und jetzt 
ich denke, dass durch schick 

357
00:18:31,350 --> 00:18:34,720
wäre denn das wenn dieses Event.
Was eigentlich von dem mal ganz 

358
00:18:34,730 --> 00:18:38,140
ursprünglich, von dem E Poll 
kam, weil nämlich die das 

359
00:18:38,150 --> 00:18:41,580
Datenbank Socket nach der 
Anfrage gesagt, hier hab ich 

360
00:18:41,590 --> 00:18:44,000
gemacht, fertig. 
So, ja dann habt ihr das Recht 

361
00:18:44,010 --> 00:18:48,240
übernommen, dann eventuell 
natürlich, dann hat Call Back 

362
00:18:48,510 --> 00:18:52,020
aufgerufen und der Call Back, 
der ruft dann quasi das 

363
00:18:52,030 --> 00:18:55,220
Interface irgendwie auf und dann
gehts irgendwie magisch, da 

364
00:18:55,230 --> 00:19:00,370
kommen wir PC rüber bis zum 
Browser hin und der das ist 

365
00:19:00,380 --> 00:19:05,050
alles alles durch das Gleiche. 
Tiefste Urschleim Event 

366
00:19:05,060 --> 00:19:08,080
ausgelöst. 
Eine riesen Kette von Events die

367
00:19:08,090 --> 00:19:13,070
bis zum Browser Mandanten fähig 
auf dich zugeschnitten gehen und

368
00:19:13,080 --> 00:19:16,170
dann das Event auflösen und du 
kriegst direkt live Update und 

369
00:19:16,180 --> 00:19:18,680
du hast nicht geholt. 
Du hast nicht gesagt und das 

370
00:19:18,690 --> 00:19:21,700
passiert meistens wenn A dann 
schickst du es ab und dann musst

371
00:19:21,710 --> 00:19:24,620
du sagen gibts was neues gibts 
was neues gibts was neues so ja.

372
00:19:24,790 --> 00:19:27,080
Kapiert also so lange, bis es 
dann tatsächlich was Neues gibt 

373
00:19:27,090 --> 00:19:29,420
und wird ausgeliefert. 
Aber ist Riesen. 

374
00:19:29,430 --> 00:19:32,220
Nee, aber es kann ja auch sein. 
Und wenn du, wenn du das jetzt 

375
00:19:32,230 --> 00:19:35,500
du kannst, nicht machen kannst. 
Du kriegst immer in in 

376
00:19:35,510 --> 00:19:38,520
frühestens 10 Sekunden zum 
Beispiel Ergebnis oder in 5 oder

377
00:19:38,530 --> 00:19:39,740
sowas, je nachdem wie das Ding 
ist. 

378
00:19:40,070 --> 00:19:42,240
Während wenn der Server gerade 
Zeit hat zum Beispiel und 

379
00:19:42,250 --> 00:19:45,130
rechtlich performt aufgestellt 
ist, und der hat halt fertig 

380
00:19:45,140 --> 00:19:47,190
gemacht mit dem Event, kriegst 
du halt so schnell wie es halt 

381
00:19:47,200 --> 00:19:48,510
ist. 
Ja genau das hab ich verstanden.

382
00:19:48,520 --> 00:19:52,390
Das ist ein neues Paradigma. 
Ja, also an der Stelle K. 

383
00:19:52,400 --> 00:19:54,150
Darauf wollen wir hinaus, das 
heißt, wir haben jetzt die 

384
00:19:54,160 --> 00:19:56,680
Betriebssystem Ebene durch, wir 
haben die Ebene durch. 

385
00:19:56,920 --> 00:20:01,460
Genau, wir haben die eben noch 
nicht durch, da bin ich, da ist 

386
00:20:01,470 --> 00:20:05,490
nämlich eine Schwierigkeit, die 
gelöst werden muss, das will ich

387
00:20:05,500 --> 00:20:09,990
noch sagen, jetzt im im G. 
Es gibt einen sogenannten Event 

388
00:20:10,000 --> 00:20:16,690
Loop, der Event loop ist quasi. 
Der Manager quasi diese ganzen 

389
00:20:16,700 --> 00:20:21,350
Events wegen Event loop. 
Ja das heißt wenn ich jetzt nen 

390
00:20:21,360 --> 00:20:24,790
asynchrone Funktionen 
beauftrage, also quasi einen 

391
00:20:24,800 --> 00:20:28,270
Task registriere der irgendwas 
macht h und m Call Back damit 

392
00:20:28,280 --> 00:20:30,720
gebe, dass er dann quasi 
aufgerufen wird, dann liegt das 

393
00:20:31,010 --> 00:20:33,620
quasi auf eventuelle Threads 
machen das und wenn die fertig 

394
00:20:33,630 --> 00:20:37,330
sind legen die quasi das 
Zeichen, dass es fertig ist auf 

395
00:20:37,340 --> 00:20:40,420
den Event loop und der wird 
einfach Event abgefrühstückt. 

396
00:20:40,430 --> 00:20:44,070
Irgendwann ist dieses Event dran
und jetzt ist es wird sich 

397
00:20:44,080 --> 00:20:46,800
vorzustellen tatsächlich jetzt 
wird halt quasi irgendwann 

398
00:20:46,810 --> 00:20:50,190
mittendrin im Programm. 
Ablauf des nicht mehr, dann ist 

399
00:20:50,200 --> 00:20:53,780
halt einfach Spaghetti ne, also 
deine Funktionen werden die 

400
00:20:53,790 --> 00:20:55,730
mäßig schon getriggert auf dem 
Level, das ist wichtig zu 

401
00:20:55,740 --> 00:20:57,870
verstehen, es läuft halt nicht 
von oben nach unten links 

402
00:20:57,880 --> 00:21:01,450
Reduktion Instruktionen sondern 
jetzt kommt kommt quasi der 

403
00:21:01,460 --> 00:21:06,080
Event Loop an an deinen Brötchen
das fertig geworden ist springt 

404
00:21:06,090 --> 00:21:08,690
quasi an die Stelle im Code 
zurück. 

405
00:21:09,320 --> 00:21:11,410
Und genau diese Funktion 
aufzurufen, die sagt, jetzt 

406
00:21:11,420 --> 00:21:13,510
fertig mit dem Bock 2 ist fertig
hier. 

407
00:21:13,720 --> 00:21:16,340
Jetzt kannst du hier 
weitermachen, ja und das was 

408
00:21:16,350 --> 00:21:18,330
dann passiert wird dann 
weitergemacht und das ist quasi,

409
00:21:18,340 --> 00:21:21,290
man kann sich vorstellen, dass 
der ganze Code in so kleine Mini

410
00:21:21,300 --> 00:21:25,610
Blöcke sind, der ganze Code ist 
quasi blockartig und liegt quasi

411
00:21:25,620 --> 00:21:27,970
immer auf dem Event loop und 
werden immer nur ganz kleine 

412
00:21:27,980 --> 00:21:30,190
Blöcke fertig gemacht und die 
werden quasi gecuted. 

413
00:21:30,200 --> 00:21:32,250
Du hast zwar gefragt was 
passiert dann irgendwas kommt 

414
00:21:32,260 --> 00:21:35,150
ich bin noch nicht fertig das 
ist der Event loop ja das ist 

415
00:21:35,160 --> 00:21:40,780
quasi wie lange Q in der engen 
also quasi ne Schlange wo 

416
00:21:40,790 --> 00:21:43,030
fertige Brötchen vorbereitet 
werden ja. 

417
00:21:43,100 --> 00:21:46,000
Und so schnell wie es geht, wie 
ein wie ein Thread, das ist 

418
00:21:46,010 --> 00:21:48,630
tatsächlich diese Thread. 
Der Event läuft der sogenannten 

419
00:21:48,640 --> 00:21:51,400
Main Thread, deswegen hab ich 
als Entwickler nichts mehr zu 

420
00:21:51,410 --> 00:21:54,320
tun mit irgendwelchen Races, 
also mit irgendwelchen 

421
00:21:54,830 --> 00:21:57,950
Geschreibsel das gleiche Memory 
irgendwas vorher aussortiert, 

422
00:21:57,990 --> 00:22:00,950
weil alles was auf dem Event 
loop ist hat schon passiert und 

423
00:22:00,960 --> 00:22:04,200
ich frühstücke jetzt einfach nur
und ich hab selbst eventlog sehe

424
00:22:04,210 --> 00:22:06,520
ich nicht mehr weil ich noch die
Funktion aufgerufen bekomme. 

425
00:22:06,530 --> 00:22:09,260
Ja so und jetzt noch eine Runde 
schicker. 

426
00:22:11,320 --> 00:22:14,800
Ich finde es. 
Toll, wenn ich komplett, wenn 

427
00:22:14,810 --> 00:22:16,330
ich jetzt komplett abgehängt, 
weil ich. 

428
00:22:16,340 --> 00:22:17,800
Höre Nein, hast du nicht, du 
nicht. 

429
00:22:17,810 --> 00:22:20,740
Ich hab natürlich n bisschen 
Vorwissen was vor P eingehende, 

430
00:22:20,750 --> 00:22:22,640
das hilft mir vielleicht an der 
Stelle. 

431
00:22:23,340 --> 00:22:26,590
Aber ich glaube, dass selbst 
wenn du abhängt, ist es auf 

432
00:22:26,600 --> 00:22:28,770
jeden Fall total 
nachvollziehbar. 

433
00:22:28,780 --> 00:22:31,420
Die Begründung, wofür es gut 
ist, jedes Detail und immer 

434
00:22:31,430 --> 00:22:34,720
alles verstehst auch nicht, kann
man sich auch 3 mal gescheitert,

435
00:22:34,730 --> 00:22:37,930
wenn das genau verstehen. 
Möchte ich ganz nachlesen. 

436
00:22:38,380 --> 00:22:41,950
Hier posten ich n guten Artikel 
rein, der mal die Wahrheit über 

437
00:22:41,960 --> 00:22:43,650
diesen ganzen Kram. 
Es gibt nämlich sehr viele 

438
00:22:43,660 --> 00:22:46,590
Informationen auch tatsächlich 
über genau dieses Thema wird 

439
00:22:46,600 --> 00:22:49,310
sehr viel Quatsch verbreitet im 
Internet sehen, schade genau 

440
00:22:49,320 --> 00:22:51,940
eventlog und Threads und dies 
zusammenhängt, ich habe aber 

441
00:22:51,950 --> 00:22:54,900
einen sehr schönen und sehr 
akkurat natürlich auch sehr gut.

442
00:22:55,360 --> 00:22:58,480
Das ist auch ein, wir haben 
jetzt schon 30 folgender 

443
00:22:58,490 --> 00:23:00,710
gemacht. 
Interessierst du immer wieder 

444
00:23:00,770 --> 00:23:03,430
die Folge über Threads oder über
die Reste? 

445
00:23:03,440 --> 00:23:06,620
AP und so weiter also es ist ja 
schon alles da. 

446
00:23:06,630 --> 00:23:07,930
Man kann sich das ja alles 
zusammen. 

447
00:23:07,940 --> 00:23:10,070
Ja, und wir waren ja, ich meine,
das ist heute wieder tatsächlich

448
00:23:10,080 --> 00:23:12,680
mal richtig technische Folge so,
wir haben ja auch, also unsere 

449
00:23:12,690 --> 00:23:14,380
Urlaubswoche war zum Beispiel 
vielleicht auch gar. 

450
00:23:14,390 --> 00:23:16,670
Nicht so richtig. 
Genau die. 

451
00:23:16,680 --> 00:23:19,080
Muss mal ne Folge auslassen. 
Genau, aber wir wollen, wir 

452
00:23:19,090 --> 00:23:21,320
wollen nicht trotzdem nicht den 
Faden verlieren. 

453
00:23:21,330 --> 00:23:25,320
Ich hab nämlich h redet, ihr 
merkt, dass es auch mein Thema, 

454
00:23:25,390 --> 00:23:28,280
aber ich hab das selber als 
Entwickler, ich habe extrem 

455
00:23:28,290 --> 00:23:31,610
lange gebraucht um das alles zu.
Zusammenzukriegen? 

456
00:23:31,620 --> 00:23:33,810
Ja, das steht irgendwo immer auf
einer Seite. 

457
00:23:33,820 --> 00:23:35,930
Schön, sowas ist nicht so 
einfach, alles durch zu 

458
00:23:35,940 --> 00:23:39,490
verstehen, quasi von vom 
Betriebssystem urschleim bis was

459
00:23:39,500 --> 00:23:41,840
ist da los? 
Ja und wo wir die Zeit und was 

460
00:23:41,850 --> 00:23:43,470
sind überhaupt die an welcher 
Stelle und so? 

461
00:23:43,480 --> 00:23:47,790
Ja deswegen vielleicht für den 
einen oder anderen doch ganz. 

462
00:23:47,800 --> 00:23:49,710
Interessiert können dann mal 
schreiben. 

463
00:23:49,720 --> 00:23:54,710
Ja, so eine Sache jetzt. 
Was tatsächlich vom Coding ja 

464
00:23:54,720 --> 00:23:57,190
total kompliziert ist. 
Jetzt wieder, jetzt gucken wir 

465
00:23:57,200 --> 00:24:00,810
quasi auf den Text, dass des 
Quellcodes, also der Software, 

466
00:24:01,270 --> 00:24:04,600
wenn ich jetzt so ein 
asynchrones Event programmiere. 

467
00:24:05,050 --> 00:24:09,090
Dann gebe ich, dem hab ich 
gesagt ne Funktionen mit und ich

468
00:24:09,100 --> 00:24:11,440
weiß ja nicht wann ich 
aufgerufen wird, dann ist sie 

469
00:24:11,450 --> 00:24:13,150
quasi wieder im ganz eigenen 
Kontext. 

470
00:24:13,160 --> 00:24:15,220
Das ist Call back. 
Das nennt sich das Call Back 

471
00:24:15,230 --> 00:24:19,000
genau, der Call Back und der 
Call Back der der verliert quasi

472
00:24:19,010 --> 00:24:22,570
den nennt man das Vertrieb den 
Kontext. 

473
00:24:23,300 --> 00:24:26,400
In dem ich gerade war, während 
ich aufgerufen habe, denn das 

474
00:24:26,410 --> 00:24:28,020
passiert. 
Zum anderen Zeitpunkt hab ich 

475
00:24:28,030 --> 00:24:31,110
gesagt, ich rufe irgendwann auf 
und irgendwann später kommt der 

476
00:24:31,150 --> 00:24:35,120
kommt der Call Back zurück und 
alle Variablen, also Variablen 

477
00:24:35,130 --> 00:24:38,340
sind eigentlich nur Speicherung 
von irgendwelchen zuständig, 

478
00:24:38,350 --> 00:24:40,820
gerade um mich herum. 
Hab ne also zum Beispiel zu dem 

479
00:24:40,830 --> 00:24:43,230
Zeitpunkt durch registriere weiß
ich zum Beispiel gerade noch 

480
00:24:43,590 --> 00:24:46,240
welcher User das war, ne mit 
welchem Browser zum Beispiel 

481
00:24:46,250 --> 00:24:49,540
angefragt hat und so weiter also
diese Ganzen, diese ganzen 

482
00:24:49,550 --> 00:24:52,520
drumherum Informationen die ich 
brauche dann quasi eine 

483
00:24:52,530 --> 00:24:56,010
gescheite Antwort wieder 
zuschneiden, verliere ich 

484
00:24:56,290 --> 00:24:58,570
eigentlich. 
Beziehungsweise mir dann 

485
00:24:58,580 --> 00:25:01,260
irgendwie per Hand merken und 
die wieder an die Call Back wenn

486
00:25:01,270 --> 00:25:04,280
der kommt dran friemeln. 
Ne, manchmal gibt es auch so 

487
00:25:04,290 --> 00:25:06,150
Sachen, dass man den Call back 
dann quasi so eine Art Daten 

488
00:25:06,160 --> 00:25:08,540
Struktur mit gibt und die bringt
dann wieder, dass mit den 

489
00:25:08,550 --> 00:25:11,470
Kontakt wiederherstellen kann 
damit ich weiß ne das ist so ein

490
00:25:11,480 --> 00:25:13,800
bisschen so als würde irgendwo 
pennen und jemand weckt dich 

491
00:25:13,810 --> 00:25:17,970
auf, so sagst du hier fertig. 
Ja das ist so Alter was ist 

492
00:25:17,980 --> 00:25:21,260
jetzt hier fertig bin muss ich 
zusammenschneiden und du hast 

493
00:25:21,270 --> 00:25:24,610
irgendwie 3 Gläser irgendwie auf
dem auf dem auf dem Nachttisch 

494
00:25:24,620 --> 00:25:27,310
gestellt so und das erste war 
halt von dem wenn du das erste 

495
00:25:27,320 --> 00:25:29,450
Mal geweckt das zweite Mal 
zweiten geweckt und beim dritten

496
00:25:29,460 --> 00:25:32,410
Mal Dritte geweckt wenn du 
gerade hörst, du erst wieder 

497
00:25:32,420 --> 00:25:35,450
zusammen sortieren, ne, ich weiß
nicht wie es besser schildern, 

498
00:25:35,460 --> 00:25:37,350
aber es ist total aufwendig von 
K. 

499
00:25:37,360 --> 00:25:40,110
Ich glaube das können wir so 
nehmen wir mal hier und jetzt 

500
00:25:40,120 --> 00:25:42,630
gibt es ein Konzept das wir hier
nochmal, das ist total wichtig, 

501
00:25:42,640 --> 00:25:44,570
weil das hat mir andauernd so, 
also jedenfalls 

502
00:25:44,580 --> 00:25:47,350
Softwareentwickler, als Laie 
weiß ich nicht, es gibt 

503
00:25:47,360 --> 00:25:51,040
sogenannte Promis, was ist ein 
schönes Konzept und das ist ganz

504
00:25:51,050 --> 00:25:57,590
modern und hier. 
Tu ich so, und das ist das 

505
00:25:57,600 --> 00:26:00,930
können die Programmiersprachen 
oder auch nicht, kann das sehr, 

506
00:26:00,940 --> 00:26:02,830
sehr gut. 
Jetzt kann ich zum Beispiel 

507
00:26:02,840 --> 00:26:08,800
sagen, diese Funktion awaited. 
Await schreibt das file also. 

508
00:26:09,660 --> 00:26:13,690
Erwarte away. 
Erwarte, dass das was ich da 

509
00:26:13,700 --> 00:26:17,570
Aufrufe passieren wird und jetzt
passiert etwas ganz Neues und 

510
00:26:17,580 --> 00:26:21,160
tolles ist viel Magie und total 
kompliziert wie Internet ist. 

511
00:26:21,540 --> 00:26:24,030
Jetzt kann ich jetzt quasi was 
die Funktion eigentlich 

512
00:26:24,040 --> 00:26:27,160
ausspucken würde, nämlich 
irgendwie das OK das ist falsch,

513
00:26:27,170 --> 00:26:30,400
geschrieben wurde irgendwas der 
Return wert, der nennt die 

514
00:26:30,410 --> 00:26:33,490
Antwort auf diesem asynchronen 
Abfrage die im synchronen Fall 

515
00:26:33,500 --> 00:26:37,840
ja auch hab sofort das schreib 
ich einfach hin und was aus der 

516
00:26:37,850 --> 00:26:40,880
Funktion zurückkommt kann ich 
nehmen und weitergeben, ja weil 

517
00:26:40,890 --> 00:26:42,290
dann weiß ich, dass auch fertig 
ist. 

518
00:26:42,590 --> 00:26:44,870
Beim asynchron Ding kann ich 
halt nicht was in die Hand 

519
00:26:44,880 --> 00:26:46,390
nehmen. 
Weil es halt noch nicht fertig 

520
00:26:46,400 --> 00:26:48,280
ist. 
Ja, wenn ich das weitergebe ist 

521
00:26:48,290 --> 00:26:50,320
halt Trash, weil das nicht 
passiert. 

522
00:26:51,100 --> 00:26:54,660
Ab jetzt gibt es aber trotzdem, 
das nennt sich dann Promis, wird

523
00:26:54,670 --> 00:26:57,630
dann quasi diese Antwort wird an
einer sogenannten Versprechen 

524
00:26:57,640 --> 00:27:01,530
eine Promis gepackt, die kann 
ich dann sehr wohl weitergeben. 

525
00:27:01,640 --> 00:27:04,620
Ja ich sagen hier ist die 
Antwort, ist aber noch nix drin,

526
00:27:04,910 --> 00:27:07,200
aber wenn sich die Promis 
auflöst, das heißt wenn die 

527
00:27:07,210 --> 00:27:11,180
asynchrone Funktionen fertig 
wird ja und das Ergebnis da ist,

528
00:27:11,220 --> 00:27:13,710
dann kommt auf einmal die 
Wahrheit raus und dann steht da 

529
00:27:13,720 --> 00:27:15,440
auf einmal stehen die Daten da 
drin ne. 

530
00:27:15,500 --> 00:27:19,190
Ja, das heißt, das hab ich jetzt
nicht verstanden. 

531
00:27:19,260 --> 00:27:22,330
Das Programm doch weiter läuft 
irgendwie und so ne Art des 

532
00:27:22,340 --> 00:27:24,820
Promis und Platzhalter ist ja 
damit weiterarbeiten kann. 

533
00:27:24,830 --> 00:27:27,110
Einfach so. 
Und jetzt kannst du, und das ist

534
00:27:27,120 --> 00:27:30,200
das ist, das war also, das gibt 
es auch noch gar nicht so ewig, 

535
00:27:30,210 --> 00:27:32,390
dass die Programmiersprache und 
das so durchziehen, ne. 

536
00:27:32,840 --> 00:27:35,850
Also als ich noch beim XL 
gearbeitet hatten wir diese 

537
00:27:35,860 --> 00:27:38,920
Probleme haben wir auch Entries 
hingeschrieben, weil das machen 

538
00:27:38,930 --> 00:27:41,710
wir einfach richtig viele Daten 
durchsetzen mussten, aber wir 

539
00:27:41,720 --> 00:27:44,560
müssen machen, du kriegst 
unglaublich viele Kopfschmerzen 

540
00:27:44,570 --> 00:27:47,900
und wenn das groß wird so ja und
wenn du auf einmal hast du diese

541
00:27:47,910 --> 00:27:51,840
Promis ist ja und die Promis wie
Variable ne du kannst so tun als

542
00:27:51,850 --> 00:27:54,550
hätten die schon den Wert ne. 
Aber die Programmiersprache 

543
00:27:54,560 --> 00:27:56,840
richtet für dich, dass sie 
nicht, dass sie quasi nicht 

544
00:27:56,850 --> 00:28:00,630
aufgemacht. 
Wir Geschenk ja dann oder ne 

545
00:28:00,640 --> 00:28:04,330
Zauber Box ist irgendwie und 
irgendwo hin da drin, ja. 

546
00:28:04,340 --> 00:28:07,910
Oder hier Schrödingers Katze. 
Ja genau, irgendwie so ne und 

547
00:28:07,950 --> 00:28:10,990
und aber quasi wissen, also wenn
du es weitergibst an der nächste

548
00:28:11,000 --> 00:28:12,990
Funktion, die werden 
gekennzeichnet async und so 

549
00:28:13,000 --> 00:28:16,130
weiter dann wissen die von 
alleine wenn diese Promis Full 

550
00:28:16,140 --> 00:28:18,820
Field ist. 
Resolved ist so ja die können 

551
00:28:18,830 --> 00:28:21,480
auch n Fehler haben das auch 
immer ganz wichtig ich will auch

552
00:28:21,490 --> 00:28:23,980
mal sagen es kann ja immer einen
Funktionsaufruf gerade wenn 

553
00:28:23,990 --> 00:28:25,940
asynchron ist. 
Gerade wenn du falsch schreibst 

554
00:28:26,180 --> 00:28:28,540
mal schief gehen ja. 
Weil die Festplatte war voll. 

555
00:28:28,550 --> 00:28:29,760
Zum Beispiel kann ich nicht 
schreiben. 

556
00:28:29,770 --> 00:28:33,270
Ja hab 40 Gigabyte geschrieben 
und beim letzten Gebiete ja. 

557
00:28:34,170 --> 00:28:36,670
Dann musst du auch wissen, dass 
das nicht geklappt hat, weil wir

558
00:28:36,680 --> 00:28:38,820
wollen ja Fehler Behandlungen 
machen, ordentlich, ja, sonst 

559
00:28:38,830 --> 00:28:41,110
kriegst du eine Antwort und 
sagst alles cool, aber die 

560
00:28:41,120 --> 00:28:44,500
fehlenden Gebiete ja. 
Und dann löst sich eine Promis 

561
00:28:44,510 --> 00:28:47,260
quasi nicht auf, sondern wenn, 
dann wird daraus quasi eine 

562
00:28:47,270 --> 00:28:48,890
Exception, wie man so schön 
sagt. 

563
00:28:48,900 --> 00:28:51,520
Ja, also eine Ausnahme im Code, 
das ist auch ein sehr 

564
00:28:51,530 --> 00:28:54,900
generisches Konzept, ja. 
So, jetzt habe ich sehr viel 

565
00:28:54,910 --> 00:28:58,370
erzählt, aber jetzt nochmal ein 
Teaser. 

566
00:28:58,380 --> 00:29:01,500
Wie cool wäre es denn, wenn man 
diese Promisses. 

567
00:29:02,330 --> 00:29:06,780
Direkt verschicken könnte über 
das Netz als Teil einer Anfrage.

568
00:29:07,480 --> 00:29:10,410
Also ne, wir haben jetzt, wir 
haben was ich sagen will ist wir

569
00:29:10,420 --> 00:29:17,150
haben extrem krasse Konzepte um 
diese extrem herausfordernde 

570
00:29:17,160 --> 00:29:20,930
Event Architektur dieses Event 
driven Architecture auf dem 

571
00:29:20,940 --> 00:29:24,010
Level der Software und des 
Betriebssystems und der Sockets 

572
00:29:24,020 --> 00:29:27,050
und so weiter das haben wir 
jetzt nicht, wir reden haben wir

573
00:29:27,060 --> 00:29:31,180
in Tiefe besprochen so und diese
Konzepte, die haben wir da ja 

574
00:29:31,190 --> 00:29:32,910
und dann haben wir so tolle 
Dinge wie Promis. 

575
00:29:32,920 --> 00:29:36,550
Ja und auf einmal wenn wir jetzt
jetzt die Welt des Internets 

576
00:29:37,600 --> 00:29:41,030
erreichen, schnallen wir so 
einen alten Ranz. 

577
00:29:41,110 --> 00:29:44,590
Davor wie Rest API. 
Ja das ist wie wenn das ist wie 

578
00:29:44,600 --> 00:29:48,360
Idee ankomme muss jetzt auch 
muss die Schmalspur Bahn setzen 

579
00:29:48,370 --> 00:29:52,470
so ja das ist ne Katastrophe 
eigentlich ja und das das jetzt 

580
00:29:52,910 --> 00:29:56,260
Kommission Moment lass mich ja 
aber jetzt muss ich nochmal wenn

581
00:29:56,270 --> 00:29:58,300
du noch. 
Fragen hast du jetzt auch 

582
00:29:58,310 --> 00:30:00,160
gemacht. 
Ja, das heißt diese Konzepte, 

583
00:30:00,170 --> 00:30:05,140
das hast du ja auch gesagt, die.
Es gibt, wenn Programme 

584
00:30:05,150 --> 00:30:08,740
miteinander Daten austauschen 
und die kannst du jetzt 

585
00:30:08,750 --> 00:30:10,940
plötzlich Internet benutzen. 
Ja, wenn wenn Anwendungen an 

586
00:30:10,950 --> 00:30:15,790
verschiedenen Orten sind und gar
nicht so eng beieinander liegen,

587
00:30:15,830 --> 00:30:19,060
wie es in dem besagten Beispiel 
nehmen, von dem gerade erst 

588
00:30:19,070 --> 00:30:21,260
sozusagen oder in einer 
Programmiersprache sogar in 

589
00:30:21,270 --> 00:30:24,400
einem Programm eigentlich ne. 
Ja, also kannst du halt eben 

590
00:30:24,410 --> 00:30:28,320
nicht im Internet ja nicht VRP 
hast du ja so, das ist nämlich 

591
00:30:28,330 --> 00:30:31,520
derspringende.es gibt jetzt 
viele, also es gibt halt diese, 

592
00:30:31,530 --> 00:30:34,870
das sind quasi Internet 
Protokolle und tatsächlich jetzt

593
00:30:34,880 --> 00:30:37,820
n bisschen ich will auch nicht 
sagen wir spielen das VP spielt 

594
00:30:37,830 --> 00:30:39,850
auf dieser dieser. 
Der Protokolle wenn du willst, 

595
00:30:39,860 --> 00:30:42,440
da ist halt überhaupt nicht 
verbreitet und so weiter und ist

596
00:30:42,450 --> 00:30:46,350
noch, vielleicht wird es mal so,
weil ich die Idee gut genug ja, 

597
00:30:47,740 --> 00:30:50,770
aber es spielt in dieser Liga 
und es löst dieses Problem, 

598
00:30:50,780 --> 00:30:53,850
während die anderen das halt 
nicht können und deswegen musst 

599
00:30:53,860 --> 00:30:57,170
du jetzt an dieser Stelle 
umsteigen von dieser schönen 

600
00:30:57,210 --> 00:30:59,980
eventuell Architektur und diesen
tollen Konzepten die in der 

601
00:30:59,990 --> 00:31:02,760
Sprache gibt. 
Und muss die auch programmier 

602
00:31:02,770 --> 00:31:06,840
mäßig als Softwareentwickler 
musste auf einmal das quasi in 

603
00:31:06,850 --> 00:31:10,160
also du kommst von einer 
Solarbetriebenen Elektro Lok und

604
00:31:10,170 --> 00:31:13,300
musst dann irgendwie so n daraus
n Haufen Kohle machen und dann 

605
00:31:13,310 --> 00:31:15,780
irgendwie Dampflok übers 
Internet schicken, so ja da 

606
00:31:15,790 --> 00:31:19,000
musst du viel codieren, da musst
du viel umbauen und dann wird es

607
00:31:19,010 --> 00:31:21,220
wieder gepolt auf der anderen 
Seite es ist halt wirklich 

608
00:31:21,230 --> 00:31:23,760
furchtbar. 
Ich verstehe, verstehe OK, 

609
00:31:23,770 --> 00:31:27,120
vielleicht muss man dazu noch 
sagen, dass das ganze Open 

610
00:31:27,130 --> 00:31:28,680
Source ist. 
Das haben wir noch gar nicht 

611
00:31:29,350 --> 00:31:31,910
besprochen und wir sind ja schon
in der 2. 

612
00:31:31,920 --> 00:31:34,480
Folge zum Thema. 
Gehe ich mal von aus. 

613
00:31:34,530 --> 00:31:39,270
Ja, wahrscheinlich. 
Und wir haben jetzt nicht dass 

614
00:31:39,280 --> 00:31:43,380
und dass deswegen hier gar nicht
als Werbung gewertet werden 

615
00:31:43,390 --> 00:31:45,570
darf, zu sehr ne. 
Also du machst es ja verfügbar. 

616
00:31:45,610 --> 00:31:47,740
Nee, überhaupt nicht. 
Genau, nee, und ich finde halt, 

617
00:31:47,750 --> 00:31:50,880
weil das halt, das ist halt auch
ein Tool, das ist halt so 

618
00:31:50,890 --> 00:31:55,450
generisch, also grundsätzlich 
funktional für alle möglichen, 

619
00:31:55,460 --> 00:31:58,180
das definiert mich nicht 
irgendwie, ja, das hat auch mit 

620
00:31:58,190 --> 00:32:00,130
unserem speziellen 
Anwendungsfall gar nicht 

621
00:32:00,650 --> 00:32:02,690
wirklich was zu tun, das löst 
natürlich das Problem sehr 

622
00:32:02,700 --> 00:32:05,920
elegant, aber genau das ist 
völlig open Source ist MIT 

623
00:32:05,930 --> 00:32:08,040
Lizenz ist kann man sogar 
kommerzialisieren, wenn man 

624
00:32:08,050 --> 00:32:09,300
möchte. 
Vielleicht können wir ein 

625
00:32:09,310 --> 00:32:13,090
bisschen über die erstmal nicht 
so technischen Themen rund um 

626
00:32:13,100 --> 00:32:16,640
VP, da hab ich ein paar Fragen. 
OK, dann machen wir zwischen. 

627
00:32:16,650 --> 00:32:19,430
Zwischen also du hast gerade 
schon erwähnt, Anwendungsfälle, 

628
00:32:19,440 --> 00:32:22,690
also es ist agnostisch was den 
Anwendungsfall angeht, das habe 

629
00:32:22,700 --> 00:32:25,810
ich verstanden, aber wo bietet 
es sich dann kann man das sagen,

630
00:32:25,820 --> 00:32:29,720
wo es sich ganz besonders 
anbietet, also mal ein Bild vor 

631
00:32:29,730 --> 00:32:32,960
Augen hat, also IOT klar, aber 
vielleicht erst nochmal kurz. 

632
00:32:34,280 --> 00:32:37,410
Ja, also es gibt. 
Genau. 

633
00:32:37,420 --> 00:32:39,650
Also es bietet sich, es bietet 
sich, es gibt sehr viele Ebenen,

634
00:32:39,660 --> 00:32:44,250
wo sich anbietet, weil das quasi
weil ich hab jetzt ganz viel 

635
00:32:44,260 --> 00:32:46,710
erzählt, dass mit dem Internet 
so das Problem haben. 

636
00:32:46,720 --> 00:32:49,110
Ja das Internet ist aber gar 
nicht, das ist quasi nur ein 

637
00:32:49,120 --> 00:32:51,900
Anwendungsfall, wenn wir quasi 
im Internet dazwischen haben, 

638
00:32:52,100 --> 00:32:56,070
zwischen diesen asynchronen 
Funktions aufrufen, es kann, 

639
00:32:56,080 --> 00:33:00,190
aber es kann sogar auf innerhalb
von Micro Service Architekturen 

640
00:33:00,200 --> 00:33:02,990
auch ganz relevant sein, ne, 
also was sind jetzt Microsoft 

641
00:33:03,000 --> 00:33:07,220
hat auch schon f habe ich meine 
containerisierten Anwendungen 

642
00:33:07,230 --> 00:33:10,050
und da habe ich auch schon 
gesagt die können halt auch den 

643
00:33:10,060 --> 00:33:11,450
Halt abgeschlossen, die können 
halt quasi. 

644
00:33:11,520 --> 00:33:15,460
So wie das Internet miteinander 
spricht, kommunizieren über 

645
00:33:15,470 --> 00:33:17,200
Netzwerke. 
Ja, das ist zwar alles quasi das

646
00:33:17,210 --> 00:33:21,180
lokale Netzwerk, ja, wenn die 
quasi auf dem gleichen auf dem 

647
00:33:21,190 --> 00:33:23,680
gleichen Server sitzen, auf dem 
gleichen Computer, was ja oft 

648
00:33:23,690 --> 00:33:26,920
ist ne Micro Services. 
Also man sagt zum Beispiel in 

649
00:33:26,930 --> 00:33:31,360
der Micro Service Communication 
ne, also wie wie kommuniziere 

650
00:33:31,370 --> 00:33:32,570
ich von einem Container zum 
anderen? 

651
00:33:32,580 --> 00:33:34,380
Ja, da kannst du es auch 
einsetzen. 

652
00:33:34,390 --> 00:33:37,500
Ja und da ist es auch besonders 
schick, weil du da, du bist ja 

653
00:33:37,510 --> 00:33:41,410
quasi im Code. 
Wir sind ja in der Scouting 

654
00:33:41,420 --> 00:33:43,290
Welt, sogar im Backend noch 
zusammen. 

655
00:33:43,330 --> 00:33:45,230
Da hast du quasi den einen 
Microservices, den anderen 

656
00:33:45,240 --> 00:33:48,580
Microservices, liegt im gleichen
Backend ja ganz nah beieinander 

657
00:33:48,780 --> 00:33:51,710
und hast du auf einmal wieder 
diesen diesen krass krasse 

658
00:33:51,720 --> 00:33:54,500
Problem, dass du, wenn du zum 
Beispiel mit einer Rest API 

659
00:33:54,510 --> 00:33:58,250
machen wolltest, du dir einfach 
die die Knüppel zwischen die 

660
00:33:58,260 --> 00:34:01,420
Beine schmeißen, weil du vom 
ganz eleganten asynchronen 

661
00:34:01,430 --> 00:34:05,500
Promis basierten Code einmal die
Dampflok besteigst fährst rüber 

662
00:34:05,510 --> 00:34:08,199
zum anderen Container und da 
bastelt wieder d zusammen? 

663
00:34:08,210 --> 00:34:11,710
So, ja, ist wirklich so. 
Ja wenn du nimmst, so, und 

664
00:34:11,719 --> 00:34:15,020
deswegen ist da zum Beispiel 
auch die PC ganz viel im 

665
00:34:15,030 --> 00:34:18,469
Einsatz. 
GPS hat eine andere Form des 

666
00:34:18,480 --> 00:34:21,210
RPCS. 
Dann auch mal gucken, wo sind 

667
00:34:21,219 --> 00:34:24,610
die Unterschiede, jedoch nicht 
vielleicht später vielleicht. 

668
00:34:24,620 --> 00:34:28,219
Ich weiß nicht, auf jeden Fall 
ist das cool, ja und also der 

669
00:34:28,230 --> 00:34:31,139
Anwendungs also hinter Micro 
Service Kommunikation zum 

670
00:34:31,150 --> 00:34:33,929
Beispiel auch oder halt aber 
auch zum Beispiel gerät wenn 

671
00:34:33,969 --> 00:34:36,630
wenn du selbst wenn du zum 
Beispiel in der Sprache 

672
00:34:36,639 --> 00:34:40,030
unterwegs bist und du hast 
findest n ganz tolles Stück C 

673
00:34:40,040 --> 00:34:43,760
plus plus Code, was zahlt 
einfach es nicht gibt hat noch 

674
00:34:43,770 --> 00:34:46,040
keiner geschrieben Open Source 
Code zum Beispiel von einer 

675
00:34:46,050 --> 00:34:49,330
anderen Technologie E Plus oder 
in Python und du möchtest den 

676
00:34:49,340 --> 00:34:52,100
einfach. 
Integrieren in deine Software 

677
00:34:52,110 --> 00:34:54,280
da? 
Ja dann kannst du auch VRPC 

678
00:34:54,290 --> 00:34:58,240
benutzen, weil du dann quasi die
beiden Schnipsel adaptiert und 

679
00:34:58,250 --> 00:35:01,620
das spricht halt quasi trotz des
Funkt sich halt quasi durch die 

680
00:35:01,630 --> 00:35:04,320
Gegend, dann halt quasi lokales 
Internet, wenn man möchte. 

681
00:35:04,330 --> 00:35:06,840
Ja das muss man wissen, es gibt 
immer einen Back Interface. 

682
00:35:06,970 --> 00:35:09,770
Also ne ne ne Software 
bibliothek die ich jetzt in der 

683
00:35:09,780 --> 00:35:11,920
Technologie oder der 
Programmiersprache, die ich 

684
00:35:12,070 --> 00:35:14,670
gerade primär benutze nicht zur 
Verfügung habe, aber in einer 

685
00:35:14,680 --> 00:35:18,620
anderen Sprache zur Verfügung 
steht, kann ich dann einfach ja 

686
00:35:18,630 --> 00:35:21,170
einbauen. 
Extra Aufwand, weil ich PC noch 

687
00:35:21,180 --> 00:35:23,780
dazwischen packe, aber. 
Ich hab die Funktionalität exakt

688
00:35:23,790 --> 00:35:26,200
und VB frisst. 
Fast kein Brot, das ist das ne, 

689
00:35:26,210 --> 00:35:28,810
das ist halt dadurch, dass es 
halt diese ganzen asynchronen 

690
00:35:28,820 --> 00:35:32,860
Klatsch einfach mitmacht. 
Ist halt so und das ist jetzt 

691
00:35:32,870 --> 00:35:36,500
sage ich, aber da ziemlich 
irgendwie ich nochmal sagen, es 

692
00:35:36,510 --> 00:35:40,440
macht das mit, weil ich bald zum
Beispiel das VRPC über die 

693
00:35:40,450 --> 00:35:43,280
Leitung quasi, also entweder 
über Internet sockets, wenn ich 

694
00:35:43,290 --> 00:35:45,900
Bibliotheken spreche oder 
Microservices oder halt auch 

695
00:35:45,910 --> 00:35:49,890
über das große böse Internet, es
kann halt diese Promises 

696
00:35:50,250 --> 00:35:54,280
verpacken und schicken. 
Na s schickt diese asynchrone 

697
00:35:54,290 --> 00:35:58,510
Elemente tatsächlich rüber, so 
dass ich und das Internet selber

698
00:35:58,520 --> 00:36:01,550
und ne, also wenn ich in 
Netzwerk aufrufe mach, dann ist 

699
00:36:01,560 --> 00:36:05,770
das selber eine asynchrone 
Aktivität, weil das dauert und 

700
00:36:05,820 --> 00:36:07,520
das sag ich jetzt gleich mal 
ganz exakt. 

701
00:36:07,530 --> 00:36:11,450
Ja, wenn ich jetzt vom Browser n
Datenbankabfrage machst in einer

702
00:36:11,460 --> 00:36:14,990
standardmäßigen Web Anwendung, 
dann hast du 2 asynchrone 

703
00:36:15,000 --> 00:36:18,910
Prozesse, du hast nämlich den 
den asynchronen oder den 

704
00:36:18,920 --> 00:36:23,850
Wartenden langwierigen Teil von 
Request vom Klienten zum Server 

705
00:36:24,000 --> 00:36:26,710
und dessen Response Request 
Response. 

706
00:36:26,780 --> 00:36:29,090
Das ist ein, da könntest du 
jetzt synchron drauf warten, 

707
00:36:29,100 --> 00:36:30,790
dann dauert das ja oder du 
machst. 

708
00:36:30,800 --> 00:36:34,400
Das ist quasi in sich asynchron 
und der zweite asynchrone Part 

709
00:36:34,410 --> 00:36:37,220
ist. 
Wenn der Server die Request 

710
00:36:37,230 --> 00:36:40,180
erhält und eine Datenbank 
Abfrage gemacht, dann ist die 

711
00:36:40,190 --> 00:36:43,950
Halt auf dem Backend asynchron. 
Weißt du was ich meine? 

712
00:36:43,990 --> 00:36:47,440
Da sind 22 du hast 2 asynchrone 
Aktivitäten, nämlich die 

713
00:36:47,680 --> 00:36:50,980
Netzwerk Anfrage und die 
Datenbankanfrage. 

714
00:36:51,360 --> 00:36:53,730
Weil der Server ist ja erstmal 
nur so ne Art eingangs Server, 

715
00:36:53,740 --> 00:36:56,220
dann guckt was muss ich 
eigentlich tun und in dem Fall 

716
00:36:56,230 --> 00:36:58,450
wäre noch die Abfragen. 
So, und jetzt ist es so, dass 

717
00:36:58,460 --> 00:37:02,000
wenn du jetzt VPC benutzt, dann 
sitzt VPN Server und am 

718
00:37:02,040 --> 00:37:05,970
Klienten, also in dem Browser VP
läuft im Browser dann halt auch 

719
00:37:05,980 --> 00:37:09,640
mal sagen ja. 
Und VAPC sorgt dafür, dass diese

720
00:37:09,650 --> 00:37:13,620
ganze Asynchronität, diese 
Doppelte sogar einfach verpackt 

721
00:37:13,630 --> 00:37:15,690
wird. 
Und du kannst dann im Browser 

722
00:37:15,700 --> 00:37:18,200
das jetzt wieder javascript ist 
sagen. 

723
00:37:18,920 --> 00:37:22,050
Such aus der Datenbank den 
Quatsch raus, das SQL Server 

724
00:37:22,060 --> 00:37:25,690
oder kannst du schreiben sogar 
schon im Browser und diese ganze

725
00:37:25,700 --> 00:37:28,700
Asynchronität ist komplett 
verpackt und da kommt wieder 

726
00:37:28,710 --> 00:37:33,720
Promis raus und und du machst 
damit weil das javascript im 

727
00:37:33,730 --> 00:37:37,140
Browser kann auch diese ganzen 
modernen Dinger da ist wieder IC

728
00:37:37,150 --> 00:37:40,320
am Start so ja. 
Und aber du verlässt. 

729
00:37:40,430 --> 00:37:43,320
Du steigst aus dem ICE nicht 
mehr aus bei VIPCH du bleibst 

730
00:37:43,330 --> 00:37:45,030
sitzen und so. 
Ja du sagst halt irgendwie, gib 

731
00:37:45,040 --> 00:37:48,600
mir vom vom Backend die 
Datenbank Abfrage zurück und 

732
00:37:48,610 --> 00:37:51,100
dann kriegst du ne Promis die 
dauert die Lust hat sich genau 

733
00:37:51,110 --> 00:37:53,230
dann aus, wenn das alles schon 
passiert ist und wenn es nicht 

734
00:37:53,240 --> 00:37:56,400
passiert schick VB die 
entsprechende Option das wird 

735
00:37:56,410 --> 00:37:58,580
alles Back aufgesammelt, das ist
im Endeffekt relativ 

736
00:37:58,590 --> 00:38:01,360
kompliziert. 
Ausführt aber also zu 

737
00:38:01,370 --> 00:38:03,600
programmieren. 
Aber es führt dazu zum als 

738
00:38:03,610 --> 00:38:06,640
anwendungs Programmierer im 
Browser, das überhaupt nicht 

739
00:38:06,650 --> 00:38:08,620
nachdenken muss, so als wäre das
quasi neben dir. 

740
00:38:08,630 --> 00:38:10,240
Ja als würdest du einfach 
sitzen. 

741
00:38:10,250 --> 00:38:14,360
BE ist voll cool, prima und das 
benutzen wir quasi. 

742
00:38:14,370 --> 00:38:17,290
Jetzt kommt ein kleines 
Geheimnis unserer App, Bilder 

743
00:38:17,530 --> 00:38:20,580
machen ganz bisschen Werbung, 
aber unser App Bilder ist ja 

744
00:38:20,590 --> 00:38:24,290
quasi die Plattform mit dem wir 
quasi andere Apps bauen, das ist

745
00:38:24,300 --> 00:38:26,720
am Ende des Tages einfach nur 
eine sehr mächtige Web 

746
00:38:26,730 --> 00:38:31,640
Anwendung, die sehr viel Backend
verschiedenen Code aufrufen muss

747
00:38:31,730 --> 00:38:33,710
und ganz viele Sachen machen 
muss weil da ne. 

748
00:38:33,810 --> 00:38:36,130
Ist ja so weg. 
Du schiebst irgendwas ständig. 

749
00:38:36,740 --> 00:38:38,900
Ja, ständig ist Backend 
Kommunikation. 

750
00:38:39,760 --> 00:38:42,550
Dass selbst haben wir unser 
eigenes Produkt mit unserem 

751
00:38:42,560 --> 00:38:44,910
Produkt geschrieben, so dass 
passiert alles auf VRPC. 

752
00:38:44,920 --> 00:38:47,510
Ja, und deswegen kommen wir 
relativ zügig voran und sind da 

753
00:38:47,520 --> 00:38:50,050
auch schnell, weil wir, wir 
bleiben halt immer schön IC 

754
00:38:50,060 --> 00:38:54,080
sitzen und das alles easy, ja. 
Wo andere noch in die Umsteigen?

755
00:38:54,120 --> 00:38:56,670
Genau, ja, cool. 
Ich mag das, ruhig zu 

756
00:38:56,680 --> 00:38:59,510
formulieren, ich n bisschen 
provokanter war. 

757
00:38:59,520 --> 00:39:02,370
Ich muss mal sagen. 
Ja, ich finde schlechtes Bild, 

758
00:39:02,380 --> 00:39:06,710
vor allem, weil es ja insofern 
nicht so clever ist, weil man ja

759
00:39:06,720 --> 00:39:11,070
schon schnell unterwegs ist und 
dann auch wieder anders 

760
00:39:11,080 --> 00:39:12,780
irgendwas anderes rein denken 
muss. 

761
00:39:12,820 --> 00:39:14,930
Genau. 
Vielleicht noch eine wichtige 

762
00:39:14,940 --> 00:39:20,350
Sache zu dem RPC, das gibt es ja
schon länger rojales, die waren 

763
00:39:20,360 --> 00:39:23,010
halt früher und das ist der 
Unterschied, die waren halt 

764
00:39:23,020 --> 00:39:24,760
synchron. 
Jetzt verstehst du vielleicht, 

765
00:39:24,770 --> 00:39:28,210
was ist das heißt, wenn du den 
du konntest zwar schon immer PC 

766
00:39:28,220 --> 00:39:31,760
Calls machen vom Klienten aus, 
aber der muss dann wieder 

767
00:39:31,770 --> 00:39:35,420
tatsächlich hart warten bis der 
ganze Kram fertig war, deswegen 

768
00:39:35,430 --> 00:39:38,040
hat sich diese Technologie nicht
durchgesetzt, die P Technologie 

769
00:39:38,420 --> 00:39:41,000
und wenn du jetzt Leuten, nicht 
Leuten manchmal haben benutzen 

770
00:39:41,010 --> 00:39:44,730
wie P und dann sagen die OK die 
sind halt irgendwie von gestern,

771
00:39:44,740 --> 00:39:46,620
das hat sich schon längst 
gezeigt, dass das Scheiße ist, 

772
00:39:46,630 --> 00:39:49,040
so ja. 
In RB war tatsächlich nicht so 

773
00:39:49,050 --> 00:39:53,130
erfolgreich, weil halt quasi 
beim Aufruf von dieser von 

774
00:39:53,140 --> 00:39:55,700
dieser PC, also beim Aufruf des 
Experten Code musst du halt 

775
00:39:55,710 --> 00:39:59,240
warten, weil diese ganze 
asynchronität Gedöns nicht 

776
00:39:59,250 --> 00:40:02,760
gelöst wurde von diesen alten 
RPC Bibliotheken und dann hast 

777
00:40:02,770 --> 00:40:06,040
du echt gewartet und wenn du im 
Browser javascript echt warten 

778
00:40:06,050 --> 00:40:09,270
musst eine echte Katastrophe, 
weil dann kannst du auch keinen 

779
00:40:09,280 --> 00:40:13,410
Knopf klicken, das ist sehr dein
Browser eingefroren so ja darfst

780
00:40:13,420 --> 00:40:16,180
halt nicht warten müssen so ja 
und deswegen ist es wichtig, 

781
00:40:16,190 --> 00:40:20,160
dass das RPC quasi asynchron mit
geht, ja. 

782
00:40:20,730 --> 00:40:22,320
Jetzt vielleicht ne andere 
Frage. 

783
00:40:22,330 --> 00:40:25,310
Ich habe ganz gut. 
Und zwar wollte ich mal hören, 

784
00:40:25,320 --> 00:40:27,510
wie du denn eigentlich darauf 
gekommen bist. 

785
00:40:27,550 --> 00:40:32,120
Jetzt das VRPC ja letzten Endes 
zu entwickeln. 

786
00:40:32,160 --> 00:40:36,150
Also ich weiß ja, das hat sich 
so mit der Zeit ergeben und weil

787
00:40:36,160 --> 00:40:39,290
jetzt p war schon da und dann 
hast du hast du von der Idee 

788
00:40:39,300 --> 00:40:42,760
gehört oder hast du das gesehen?
Dachtest clever, hier müssen wir

789
00:40:42,770 --> 00:40:46,840
die Fehler ausmerzen, kann man 
das vielleicht auch benutzen 

790
00:40:47,130 --> 00:40:50,110
oder hat sich das so ergeben im 
Laufe der Zeit vielleicht 

791
00:40:50,120 --> 00:40:51,730
einfach mal? 
Also das finde ich echt cool. 

792
00:40:51,820 --> 00:40:54,500
Also dazu gekommen bin ich 
überhaupt diese ganzen Probleme 

793
00:40:54,510 --> 00:40:57,490
irgendwie wahrzunehmen mit dem 
mit meinem ersten Job quasi beim

794
00:40:57,500 --> 00:41:00,180
European XFL. 
Also weil wir, das hab ich schon

795
00:41:00,190 --> 00:41:02,480
mal erzählt haben, ja einen 
Skala System, also ein 

796
00:41:02,490 --> 00:41:07,100
Leitsystem aufgebaut und da 
haben wir halt diese OT mäßigen 

797
00:41:07,110 --> 00:41:09,610
Anforderungen, dass wir ganz 
viel Hardware gesteuert haben 

798
00:41:09,620 --> 00:41:13,690
und Sensoren ausgelesen haben. 
Und, und davon gingen auch 

799
00:41:13,700 --> 00:41:16,360
wieder Komponenten und kamen und
wir haben halt und dann muss man

800
00:41:16,370 --> 00:41:18,670
sich halt überlegen, das ist 
sehr lustig, da fließen viele 

801
00:41:18,680 --> 00:41:22,110
Daten hin und her und jeder will
irgendwie die ganze Zeit in 

802
00:41:22,120 --> 00:41:23,610
Echtzeit mehr oder weniger 
sehen, was passiert. 

803
00:41:24,450 --> 00:41:26,980
Und da musste ich dieses Problem
damals schon lösen. 

804
00:41:26,990 --> 00:41:29,730
Da gab es aber noch nicht das Q 
11, da gab es auch keine 

805
00:41:29,740 --> 00:41:32,900
Container und nichts und so und 
das war quasi. 

806
00:41:33,810 --> 00:41:35,970
Ja, das hat mich halt hart 
genervt und da habe ich das 

807
00:41:35,980 --> 00:41:38,040
erste Mal richtig fundamental 
drüber nachgedacht, was ich 

808
00:41:38,050 --> 00:41:39,760
machen kann und dass Karabo 
heißt. 

809
00:41:39,770 --> 00:41:42,290
Du heißt das Kontrollsystem, was
immer noch im Einsatz ist am 

810
00:41:42,300 --> 00:41:46,200
European XFL, das ist halt für 
damalige Verhältnisse natürlich 

811
00:41:46,210 --> 00:41:49,280
entsprechend implementiert, aber
komplett Event getrieben, genau 

812
00:41:49,290 --> 00:41:52,660
wie also Event getrieben, 
umständlicher vom Code her ne 

813
00:41:52,770 --> 00:41:54,350
sehr umständlich zu 
programmieren die. 

814
00:41:55,050 --> 00:41:57,160
Da haben wir ja leider müssen 
die Entwickler, dann hast. 

815
00:41:57,170 --> 00:42:00,020
Du brauchst ja, wenn du einmal 
im Einsatz ist, haben wir auch 

816
00:42:00,030 --> 00:42:03,660
schon erzählt, dass du ja nicht 
einmal um die könnten natürlich 

817
00:42:03,670 --> 00:42:07,260
schöner PC nehmen ist aber jetzt
nicht, weil alles im Einsatz 

818
00:42:07,270 --> 00:42:11,110
ist. 
Das Schöne ist, es funktioniert 

819
00:42:11,120 --> 00:42:13,770
und es hat richtig viel Last. 
Ich war neulich da, irgendwie so

820
00:42:13,780 --> 00:42:16,060
ein Release Event, daraus gibt 
es nämlich Open Source. 

821
00:42:16,070 --> 00:42:19,410
Mittlerweile ist auch ganz nice,
aber nur am Rande so und aber 

822
00:42:19,420 --> 00:42:22,290
das System schafft es halt diese
wahnsinnigen Datenraten die da 

823
00:42:22,300 --> 00:42:27,210
fließen ne und wir sprechen ja 
von Zigtausenden von Motoren und

824
00:42:27,220 --> 00:42:29,470
noch viel mehr Tausenden von 
Pumpen und so weiter all diese 

825
00:42:29,480 --> 00:42:31,460
ganzen und die schicken die 
ganze Zeit irgendwelche 

826
00:42:31,470 --> 00:42:34,770
Sensordaten hin und her und so 
weiter es wird alles abgefräst 

827
00:42:34,780 --> 00:42:37,670
mit gar nicht so viel, das gibt 
es keine Cloud oder sowas ja das

828
00:42:37,680 --> 00:42:40,050
ist gar nicht so viel Server, 
das ist jetzt nicht hier, 

829
00:42:40,060 --> 00:42:42,990
sondern das fließt halt alles 
schnell und geschmeidig 

830
00:42:43,000 --> 00:42:45,280
ineinander. 
Weil das Halt von Grund auf 

831
00:42:45,290 --> 00:42:48,320
Event getrieben ist, wird halt 
nirgendwo an keiner Stelle 

832
00:42:48,330 --> 00:42:52,050
irgendwas gepolter. 
Ja, so, und das war quasi 

833
00:42:52,060 --> 00:42:54,280
meinen, das war so mein mein 
Lehrstück. 

834
00:42:54,290 --> 00:42:57,330
Und dann habe ich mir gedacht 
das ne mit allem was so genervt 

835
00:42:57,340 --> 00:42:59,550
hat beim Code nur für die 
Softwareentwicklung, das muss 

836
00:42:59,560 --> 00:43:02,330
doch eigentlich noch viel 
eleganter und cooler gehen ne 

837
00:43:02,590 --> 00:43:04,220
und wie geil wäre denn das wenn 
man. 

838
00:43:05,000 --> 00:43:08,060
Man hätte, wenn man das alles 
eigentlich ganz easy ineinander 

839
00:43:08,220 --> 00:43:11,900
bröseln kann, so ja und man muss
einfach nur die Kommunikation so

840
00:43:11,910 --> 00:43:14,690
doll nachdenken. 
Ich muss halt, also will auch 

841
00:43:14,700 --> 00:43:17,050
eigentlich, eigentlich willst du
eigentlich, willst du an dieser 

842
00:43:17,060 --> 00:43:20,770
nicht Medien heute ja, also 
normalerweise tut man sowas 

843
00:43:20,780 --> 00:43:23,410
nicht auf diesem Level 
irgendwelche Bibliotheken zu 

844
00:43:23,420 --> 00:43:25,630
schreiben, weil typischerweise 
gibt es ja immer alles schon im 

845
00:43:25,640 --> 00:43:27,790
Netz und auch sehr gut vom sehr 
cleveren. 

846
00:43:27,800 --> 00:43:29,480
Jetzt denkt man immer, das ist 
immer schon alles. 

847
00:43:29,490 --> 00:43:31,730
Denken immer, ich halt diese 
Nische für sich entdeckt und es 

848
00:43:31,740 --> 00:43:36,420
gab damals keine gute Lösung und
alles was es gab, es hat mir 

849
00:43:36,430 --> 00:43:39,010
nicht so geschickt, wie ich 
gedacht habe, ich das müsste 

850
00:43:39,020 --> 00:43:42,120
eigentlich nochmal schicken. 
Ich hab auch n Moment gedauert. 

851
00:43:42,620 --> 00:43:44,970
Hab ich aber schon sehr früh 
angefangen, quasi diese schon 

852
00:43:44,980 --> 00:43:47,430
damals schon drüber nachgedacht 
und dann in der während der 

853
00:43:47,440 --> 00:43:50,310
nächsten Firma quasi das weiter 
gedacht und auch viel in meiner 

854
00:43:50,320 --> 00:43:53,260
Freizeit n Wochenende 
konzeptuell daran gearbeitet und

855
00:43:53,270 --> 00:43:56,540
dann irgendwie, weil das quasi 
professionell fertiggemacht so 

856
00:43:56,550 --> 00:44:00,200
genau und das ist eigentlich in 
einem guten Zustand, so dass da 

857
00:44:00,210 --> 00:44:02,240
müssen wir das Spiel jetzt auch 
jeden Tag darum. 

858
00:44:02,950 --> 00:44:06,630
Jetzt, wo wir dabei gerade sind,
sagt jetzt, das war alles nicht 

859
00:44:06,640 --> 00:44:09,840
elegant genug. 
Wie sieht das aus, wenn jetzt 

860
00:44:10,230 --> 00:44:13,910
das benutzen möchte? 
VRPC ja für was auch immer 

861
00:44:13,920 --> 00:44:17,080
Inter, Microservices oder eben 
um. 

862
00:44:17,090 --> 00:44:20,240
Oder? 
Wir anzubinden oder haha oder 

863
00:44:20,250 --> 00:44:23,270
sowas. 
Und du hast vorhin, du hast 

864
00:44:23,280 --> 00:44:26,360
jetzt am Beispiel A erklärt, 
aber es gibt ja auch dann für 

865
00:44:26,370 --> 00:44:28,760
andere Sprachen. 
Richtig, genau das ist da, wo 

866
00:44:28,770 --> 00:44:30,320
wir noch ein bisschen Arbeit 
reinstecken müssen. 

867
00:44:31,370 --> 00:44:33,680
Also s gibt es für C plus Plus 
und für G. 

868
00:44:33,690 --> 00:44:37,300
Es ist immer sehr wichtig für 
Python, zum Teil für die 

869
00:44:37,310 --> 00:44:40,590
Programmiersprache R gibt es 
das, da freu ich mich, wenn das 

870
00:44:40,600 --> 00:44:45,400
hat auch noch keiner benutzt. 
Wir hatten mal ne Kundenanfrage 

871
00:44:45,410 --> 00:44:47,370
wo das irgendwie interessant 
gewesen wäre, da habe ich das 

872
00:44:47,380 --> 00:44:50,980
quasi als akademische Hand Übung
mal geguckt ob ich r. 

873
00:44:51,070 --> 00:44:54,390
Kriege sind sehr extravagante 
Programmiersprache, die bei den 

874
00:44:54,650 --> 00:44:56,210
ganz viel Psychologen genutzt 
wird. 

875
00:44:56,220 --> 00:44:59,410
Also eine statistische 
Auswertung, Sprache also, in dem

876
00:44:59,420 --> 00:45:03,390
entweder Python oder r. 
Aber er hat auch so seine seine 

877
00:45:03,400 --> 00:45:04,770
Vereinigen und dann kannst du 
das Prinzip. 

878
00:45:04,780 --> 00:45:06,170
Kannst du das für solche Sachen 
nehmen? 

879
00:45:06,180 --> 00:45:09,190
Ja genau schick, also wir werden
demnächst nochmal Python fertig 

880
00:45:09,200 --> 00:45:11,420
machen und dann gibt es 
natürlich noch andere Sprachen 

881
00:45:11,430 --> 00:45:15,570
shap ne die zum Beispiel in der 
Windows Welt unterwegs sind ist 

882
00:45:15,580 --> 00:45:18,380
natürlich total spannend, hätte 
ich gerne alles in Java selbst, 

883
00:45:18,390 --> 00:45:21,470
so dass noch nicht da, aber wenn
wir das quasi alles fertig haben

884
00:45:21,480 --> 00:45:23,770
konzeptuell ist völlig klar, ist
eigentlich noch programmiert 

885
00:45:23,780 --> 00:45:26,950
werden, also haben wir gerade 
nicht, aber vielleicht findet 

886
00:45:26,960 --> 00:45:30,870
sich vielleicht auf wenn jemand 
zuhört der sich mächtig genug 

887
00:45:30,880 --> 00:45:33,240
fühlt in einer vielleicht 
Softwareentwickler ist oder 

888
00:45:33,250 --> 00:45:36,430
jemanden kennt. 
Es alles Open Source, da kann 

889
00:45:36,440 --> 00:45:39,040
sich kann sich einfach kann sich
beteiligen. 

890
00:45:39,050 --> 00:45:43,100
Es gibt sogar eine Produkt 
Webseite das VRPC Punkt IO und 

891
00:45:43,140 --> 00:45:46,120
da findet man den Status quo 
wenn man ganz viele 

892
00:45:46,130 --> 00:45:48,380
Dokumentationen auch ganz viel 
Beispiele es kann sofort 

893
00:45:48,390 --> 00:45:52,330
losgelegt werden und wenn man VP
ausprobieren möchte ist auch 

894
00:45:52,340 --> 00:45:56,110
ganz einfach weil wir einen wir 
bieten quasi an for Free n 

895
00:45:56,120 --> 00:45:59,720
Broker den Kreis hab ich noch 
nicht geschlossen, den schließe 

896
00:45:59,730 --> 00:46:03,090
ich jetzt vielleicht auch 
gereicht dennoch Klick, denn wir

897
00:46:03,100 --> 00:46:05,410
haben jetzt gesprochen das Event
getrieben und es geht übers 

898
00:46:05,420 --> 00:46:08,970
Internet dann könnte man sich 
jetzt wahrscheinlich schon 

899
00:46:08,980 --> 00:46:11,430
gefragt. 
Könnt ihr dann, wenn sie nicht 

900
00:46:11,590 --> 00:46:14,780
Rest ist. 
Als Transport Protokoll. 

901
00:46:14,910 --> 00:46:18,920
Und der nimmt halt einen QT, ja.
Weil das passt wie Arsch auf 

902
00:46:18,930 --> 00:46:22,780
einmal oder wie Deckel auf Topf,
weil das MQTT genau das ist. 

903
00:46:22,790 --> 00:46:26,280
MQTT ist quasi Event getriebenes
benachrichtigen durchs Internet 

904
00:46:26,290 --> 00:46:29,240
mit so einem Broker Krams. 
Ja das ist Subscribe, Publish 

905
00:46:29,250 --> 00:46:31,840
und so weiter das passt halt, 
das ist das was man dafür 

906
00:46:31,850 --> 00:46:35,270
nehmen. 
SVPC auf MQTT auf, könnte man 

907
00:46:35,280 --> 00:46:38,280
das so sagen? 
Das VRPC liegt auf MQTT auf, 

908
00:46:38,290 --> 00:46:41,380
wenn man es, wenn man es übers 
Internet schickt. 

909
00:46:41,390 --> 00:46:43,980
Ja ich brauche einen t nur dann,
wenn ich quasi übers Internet 

910
00:46:43,990 --> 00:46:46,220
gehe. 
Eine gute Idee ist quasi raus, 

911
00:46:46,230 --> 00:46:48,880
wenn wenn du Inter Microservices
machst und so weiter dann kann 

912
00:46:48,890 --> 00:46:50,790
ich dann kann ich direkt 
agieren, ne? 

913
00:46:51,510 --> 00:46:53,280
Eine letzte Frage oder bitte 
das? 

914
00:46:53,290 --> 00:46:55,200
Geht nicht. 
Ich muss mich korrigieren. 

915
00:46:56,710 --> 00:47:00,720
MT ist raus, wenn du quasi 
Hardware, also wenn du Software 

916
00:47:00,730 --> 00:47:04,780
Bibliotheken einbinden direkt so
und bei Inter Microservices 

917
00:47:04,790 --> 00:47:08,880
brauchst du auch. 
Im QTT Instanz, die kann aber 

918
00:47:08,890 --> 00:47:11,140
lokal dann sein. 
Ne genau und vielleicht sag ich 

919
00:47:11,150 --> 00:47:13,110
doch zum Abschluss vielleicht 
noch Verständnis. 

920
00:47:13,120 --> 00:47:18,080
VPC ist quasi ein Protokoll, 
also wenn viele Leute beim T 

921
00:47:18,090 --> 00:47:20,900
sprechen, dann sprechen Sie 
messages und werden ganz oft 

922
00:47:20,910 --> 00:47:23,180
messages formuliert, wie die 
Aussehen mit der Pilot und so 

923
00:47:23,190 --> 00:47:25,550
weiter von verschiedenen Geräten
gibt, Standardisierungsgremien 

924
00:47:25,560 --> 00:47:30,250
und so weiter und sofort also 
ein sogenanntes Message oriented

925
00:47:30,980 --> 00:47:37,020
System und es gibt was da 
geschickt wird VRPC man muss 

926
00:47:37,030 --> 00:47:40,140
sich nicht messen, das ist ein 
Protokoll, das heißt eben, dass 

927
00:47:40,150 --> 00:47:42,170
es ruft ja einfach die Funktion 
auf, das ist halt dieses. 

928
00:47:42,240 --> 00:47:45,900
P Systems basiert zwar auf MQT, 
aber welche Topical benutzt 

929
00:47:45,910 --> 00:47:47,960
werden und welche Messages durch
die Gegend fliegen, das 

930
00:47:48,050 --> 00:47:49,800
organisiert das von sich selbst 
so. 

931
00:47:50,050 --> 00:47:53,100
Du kannst auch nur du packst 
deinen Code rein, genau du 

932
00:47:53,110 --> 00:47:56,110
packst es, wenn ich es richtig 
mitbekommen auch dahin wo ich 

933
00:47:56,120 --> 00:47:57,580
etwas aufrufen möchte, dann 
muss. 

934
00:47:57,590 --> 00:48:00,900
Ich dann alleine. 
Du hast Klienten, also wir 

935
00:48:00,910 --> 00:48:04,150
nennen es Agenten, wir nicht nur
Client Server können, wir können

936
00:48:04,160 --> 00:48:06,310
mit ganz vielen Servern, 
deswegen nennen wir den Server 

937
00:48:06,320 --> 00:48:11,240
Part Agent ja und du kannst dann
mit einem mit als einen Klienten

938
00:48:11,250 --> 00:48:13,560
kannst du mit beliebig vielen 
Agenten sprechen die beliebig 

939
00:48:13,570 --> 00:48:16,340
irgendwo liegen und die beliebig
verschiedene Technologien haben.

940
00:48:16,410 --> 00:48:18,010
Dann gibt es noch sogenannte 
Adapter. 

941
00:48:19,150 --> 00:48:22,210
Der Adapter es gibt 3 
Komponenten, Klienten der der 

942
00:48:22,220 --> 00:48:25,330
Macht quasi, der löst den 
Auftrag aus, ne der will was 

943
00:48:25,340 --> 00:48:28,640
haben kriegt diese diese 
Nachricht zurück als wäre es 

944
00:48:28,650 --> 00:48:32,950
nebenan ist der Client der Agent
kriegt die Nachricht der muss 

945
00:48:32,960 --> 00:48:36,970
das Ausführen, der ne sammelt 
das zusammen und der horcht 

946
00:48:36,980 --> 00:48:40,330
quasi im Netz und der Adapter 
ist wichtig, der Adapter ist 

947
00:48:40,340 --> 00:48:42,800
dafür da wenn du ich hab ja 
gesagt wir müssen nicht wieder 

948
00:48:42,810 --> 00:48:45,810
anfangen ist wenn du Code hast 
der schon existiert in der 

949
00:48:45,820 --> 00:48:50,280
Lieblingssprache dann klatscht 
du quasi Adapter dran und und 

950
00:48:50,290 --> 00:48:53,130
der erkennt quasi was du für 
Code geschrieben hast. 

951
00:48:53,270 --> 00:48:56,080
Und ohne dass du den Anfassen 
musst, ist er halt quasi von 

952
00:48:56,090 --> 00:48:58,720
Remote aufrufbar. 
Das ganz schick plus Adapter 

953
00:48:58,730 --> 00:49:02,180
sogar noch ganz nett deine 
Dokumentation, wenn du diesen 

954
00:49:02,190 --> 00:49:05,510
hast. 
Also deine Code die oft die 

955
00:49:05,550 --> 00:49:08,830
Dokumentation der Public 
Functions quasi der kann, 

956
00:49:08,840 --> 00:49:12,000
nämlich gibt es eine bestimmte 
Sprache wie man dokumentiert und

957
00:49:12,010 --> 00:49:15,640
Standard ja der heißt. 
Java. 

958
00:49:15,650 --> 00:49:18,860
Doc. 
Im Java Doc Stil kommentiert. 

959
00:49:19,680 --> 00:49:25,170
Dann bringt Dir VP sogar die 
Dokumentation der Funktion, also

960
00:49:25,180 --> 00:49:28,970
die API Dokumentation mit direkt
in den in den Aufrufen in den 

961
00:49:28,980 --> 00:49:32,250
Klienten Code. 
Das ist ganz schön krass also. 

962
00:49:32,260 --> 00:49:35,930
Du quasi damit auf r sehr 
elegante Art und Weise an deinen

963
00:49:35,940 --> 00:49:38,540
Code andere Funktionalität 
einfach so dran. 

964
00:49:38,940 --> 00:49:42,490
Und du kannst, ich hab auch mal 
genannt, tatsächlich Glaube BO 

965
00:49:42,500 --> 00:49:45,550
steht drin auf der ersten Seite 
des Internet of Code Internet 

966
00:49:45,560 --> 00:49:47,290
Code. 
Ich finde das ganz gut zusammen,

967
00:49:47,480 --> 00:49:48,870
also weil wir genau das was du 
gesagt hast. 

968
00:49:48,880 --> 00:49:51,860
Wir erleben quasi beliebige 
Coach Schnipsel von beliebigen 

969
00:49:51,870 --> 00:49:53,540
Technologien an beliebigen 
Stellen. 

970
00:49:54,060 --> 00:49:57,070
Mit ihrer vollen Eleganz in der 
ganzen Asynchronität mit. 

971
00:49:57,840 --> 00:50:00,390
Mit Weiterleitung von Exceptions
und so weiter also wir versuchen

972
00:50:00,400 --> 00:50:02,810
dieses Bild hat dieses Bild, das
ist quasi neben dir sitzt im 

973
00:50:02,820 --> 00:50:06,950
Code, in allen seinen Facetten 
irgendwie hinzukriegen. 

974
00:50:07,000 --> 00:50:09,650
Und das Paradebeispiel für die 
Anwendung ist quasi für die 

975
00:50:09,660 --> 00:50:12,310
Anwendung ist unsere Bilder, 
unsere Plattform, die komplett 

976
00:50:12,320 --> 00:50:14,390
darauf basiert. 
Und auch wenn wir jetzt mit kann

977
00:50:14,400 --> 00:50:18,210
ich noch mal sagen mit externen 
externe Daten aufrufen, woher 

978
00:50:18,220 --> 00:50:21,710
auch immer ja von Hardware zum 
Beispiel oder aus Dateien oder. 

979
00:50:22,810 --> 00:50:25,600
Das Betriebssystem oder wie auch
immer das auch über VP und. 

980
00:50:25,610 --> 00:50:27,500
Tun genau machen wir auch, aber 
auch. 

981
00:50:27,550 --> 00:50:30,100
Das ist natürlich abstrahiert, 
dass kein Mensch, der unser 

982
00:50:30,110 --> 00:50:31,740
Produkt benutzt muss vor PC. 
Versteht. 

983
00:50:31,750 --> 00:50:32,750
Nein, überhaupt. 
Müssen wir. 

984
00:50:32,760 --> 00:50:35,340
Sagen Wir sind zum Beispiel auch
schnell, also wir sind, also wir

985
00:50:35,350 --> 00:50:38,570
sind ja, wir sind ja Advokaten 
der Open Source Community, 

986
00:50:38,710 --> 00:50:41,250
deswegen ist das auch selber 
Open Source und wir nutzen halt 

987
00:50:41,260 --> 00:50:43,530
auch sehr viel Open Source, und 
das können wir besonders 

988
00:50:43,540 --> 00:50:45,980
intelligent, weil auch da wieder
ein Open Source ist. 

989
00:50:45,990 --> 00:50:48,660
Ja, existierende Code in 
Bibliotheken Form gegossen, 

990
00:50:49,050 --> 00:50:51,960
OPCUA zum Beispiel haben wir 
schon mal geredet, ist eine 

991
00:50:51,970 --> 00:50:56,430
große Bibliothek, sehr schön von
einem von von Etienne. 

992
00:50:57,190 --> 00:51:00,460
Draußen nun. 
Genau, danke Gerrit und die 

993
00:51:00,470 --> 00:51:03,100
können wir halt auch mit VP 
machen und das finden wir quasi.

994
00:51:03,110 --> 00:51:06,140
Die Funktion die er geschrieben 
hat an und schwupps haben wir 

995
00:51:06,150 --> 00:51:11,470
die irgendwie für unsere App 
Bilder Kunden irgendwie sofort 

996
00:51:11,990 --> 00:51:13,730
zur Verfügung die dann aufrufen 
können. 

997
00:51:13,740 --> 00:51:17,620
Ne, genau, nicht zu viel Werbung
jetzt, aber das mal gekriegt und

998
00:51:17,630 --> 00:51:20,780
wie gesagt, an was andere Leute 
mit VPC machen, ich weiß nicht, 

999
00:51:20,820 --> 00:51:23,870
weißt du gar nicht genau ne aber
es gibt die Downloads die Leute 

1000
00:51:23,880 --> 00:51:26,460
benutzen das, aber was genau? 
Ist sehr überschaubar, kleines 

1001
00:51:27,360 --> 00:51:30,860
genau ja, also das ist ja wie 
immer, du kannst n schönes 

1002
00:51:30,870 --> 00:51:32,830
Produkt. 
Wir haben eine Firma sein und 

1003
00:51:32,840 --> 00:51:34,420
trotzdem ganz wenig Visibility 
haben. 

1004
00:51:34,570 --> 00:51:36,900
Ist ja auch ganz normal. 
Wir sind ja noch jung, ist ganz 

1005
00:51:36,910 --> 00:51:39,470
am Anfang im Vergleich zu 
anderen Open Source Projekten 

1006
00:51:39,480 --> 00:51:42,250
noch ziemlich ja noch ziemlich 
jung. 

1007
00:51:42,260 --> 00:51:44,810
Ja, da ist bestimmt, da gibt es 
noch Potenzial das zu erweitern,

1008
00:51:44,820 --> 00:51:46,240
wie gesagt. 
Vielleicht wird jetzt 

1009
00:51:46,250 --> 00:51:49,150
Nachfolger. 
Gibt es noch irgendwas vergessen

1010
00:51:49,160 --> 00:51:50,530
hab? 
Ich schon, erzähl ich 

1011
00:51:50,540 --> 00:51:53,440
Schweißperlen auf der Stirn, 
insofern 30 Grad hier. 

1012
00:51:53,450 --> 00:51:54,630
Ich glaube, wir müssen mal 
Glück. 

1013
00:51:54,640 --> 00:52:00,320
Hat noch immer bekommen. 
Ja nee, ich würde sagen, wir 

1014
00:52:00,330 --> 00:52:02,360
haben Syrer, glaube ich, 
ziemlich über die Maßen 

1015
00:52:02,370 --> 00:52:06,260
gespannt, so dass uns den Sack. 
So machen wir das ne. 

1016
00:52:06,800 --> 00:52:11,360
Ja, prima, dann vielen Dank und.
Ja, ich bin gespannt, wie das 

1017
00:52:11,370 --> 00:52:16,260
Thema so ankommt bei euch sagt 
es uns gerne über Podcast 

1018
00:52:16,270 --> 00:52:21,350
heise.com ladet euch runter auf 
auf PCIO oder direkt auf github 

1019
00:52:21,390 --> 00:52:23,480
verlinkt natürlich alles. 
Genau. 

1020
00:52:23,490 --> 00:52:25,820
Oder klickt man Stern dran, 
selbst wenn er Spaß hat beim 

1021
00:52:26,460 --> 00:52:28,300
Sorry. 
Alles klar. 

1022
00:52:28,540 --> 00:52:31,710
Gut Leute, danke fürs Zuhören 
und danke für die Erklärung, mit

1023
00:52:31,720 --> 00:52:33,940
der heute sehr weitergeholfen. 
Alles klar? 

1024
00:52:33,980 --> 00:52:35,940
Dann machs gut aus Hamburg, 
Tschüss. 

1025
00:52:38,660 --> 00:52:41,240
Vielen Dank fürs Zuhören dieser 
Folge von einfach komplex. 

1026
00:52:41,330 --> 00:52:43,390
Die Folge gefallen? 
Dann lass uns doch ne gute 

1027
00:52:43,400 --> 00:52:45,820
Bewertung da oder Teile die 
Folge mit jemanden aus seinem 

1028
00:52:45,830 --> 00:52:49,140
Netzwerk für Kritik zufolge 
Anregungen und Fragen für neue 

1029
00:52:49,150 --> 00:52:52,920
Folgen freuen wir uns auf deine 
Email an Podcast teilnehmer.com 

1030
00:52:52,960 --> 00:52:56,240
Abonniere jetzt unseren Podcast,
um keine Folge zu verpassen bis 

1031
00:52:56,250 --> 00:52:57,660
zum nächsten Mal. 
Tschüss aus. 

1032
00:52:57,670 --> 00:52:59,370
Hamburg. 
H.

