1
00:00:09,000 --> 00:00:13,500
Herzlich willkommen zu unserem Vortrag Lesezeichen 2.

2
00:00:14,240 --> 00:00:16,800
Das JavaScript schlägt zurück.

3
00:00:18,820 --> 00:00:24,060
Und unser Vortragender hat einen schönen Nickname, Birdy1976.

4
00:00:24,060 --> 00:00:29,560
Und er hat mir verraten, dass JavaScript tatsächlich seine Lieblingssprache ist.

5
00:00:30,000 --> 00:00:34,980
Ja, dann schauen wir mal, was da so zurückschlagen kann.

6
00:00:35,460 --> 00:00:37,220
Und ich bin gespannt.

7
00:00:37,820 --> 00:00:38,480
Dankeschön.

8
00:00:39,600 --> 00:00:46,380
Na gut, dann herzlich willkommen.

9
00:01:00,000 --> 00:01:09,520
Ich glaube, länger darf ich nicht laufen lassen wegen so Copyright-Geschichten.

10
00:01:09,660 --> 00:01:10,780
Dann breche ich jetzt hier mal ab.

11
00:01:11,400 --> 00:01:14,240
Genau, JavaScript für Bookmarklets.

12
00:01:14,980 --> 00:01:17,420
Ich bin dann eben der Birdy1976.

13
00:01:17,780 --> 00:01:21,180
Wofür die 1976 steht, könnt ihr euch wahrscheinlich vorstellen.

14
00:01:21,180 --> 00:01:25,380
Birdy ist mein Nachname, einfach auf Englisch verwurstelt.

15
00:01:26,240 --> 00:01:26,440
Genau.

16
00:01:27,060 --> 00:01:28,420
Worum geht es heute?

17
00:01:30,000 --> 00:01:32,980
Also, worum geht es eigentlich nicht?

18
00:01:33,180 --> 00:01:34,000
Also, ich weiss nicht genau.

19
00:01:34,460 --> 00:01:39,120
Also, es gibt ja auch Leute, die machen so JavaScript im Browser drin mit dem GreaseMonkey-Plugin.

20
00:01:39,200 --> 00:01:41,360
Das kann man sich so installieren im Browser.

21
00:01:41,760 --> 00:01:45,980
Und dann werden automatisch JavaScripts ausgeführt, wenn man auf bestimmte Seiten geht.

22
00:01:47,240 --> 00:01:48,700
Das werde ich nicht behandeln.

23
00:01:48,780 --> 00:01:52,980
Ich habe es nur erwähnt, weil es gibt Leute, die machen das lieber so als mit Bookmarklets.

24
00:01:53,840 --> 00:01:56,700
Dann manche Dinge sind nicht so einfach oder gehen gar nichts.

25
00:01:56,700 --> 00:01:59,700
Gar nicht, weil da die same origin policies sperrt

26
00:02:00,000 --> 00:02:08,320
Also, wenn ich von einer Webseite auf eine andere zugreifen möchte aus dem Browser, kann das sein, je nachdem, wo ich bin, dass es halt verhindert wird.

27
00:02:09,000 --> 00:02:15,260
Und dafür habe ich noch keine guten Tricks gefunden, die auch wirklich funktionieren.

28
00:02:15,360 --> 00:02:17,780
Ich sage es einfach, meistens geht es, aber nicht immer.

29
00:02:17,920 --> 00:02:19,000
Also, oft geht es, aber nicht immer.

30
00:02:20,000 --> 00:02:26,940
Dann die Adresszeile hier oben, die wir da haben, die ist ein bisschen limitiert vom Platz her, den man hat.

31
00:02:26,940 --> 00:02:29,940
Ich habe jetzt da mal 65.000, 536.000.

32
00:02:30,000 --> 00:02:33,800
Zeichen hingeschrieben, stimmt aber eigentlich nicht, ist bei jedem Browser anders.

33
00:02:34,360 --> 00:02:39,380
Und ich habe auch schon wesentlich längere Bookmarklets versucht, geht meistens auch noch.

34
00:02:39,480 --> 00:02:41,660
Irgendwo, habe ich auch schon erlebt, ist dann fertig.

35
00:02:42,060 --> 00:02:44,320
Also, dann ist halt einfach abgeschnitten hinten.

36
00:02:44,960 --> 00:02:49,260
Darum, wenn das das Problem sein sollte, muss man halt schauen, ob man die kleiner kriegt, die Bookmarklets.

37
00:02:49,260 --> 00:02:53,880
So, das als Vorbemerkung für das Mission Briefing sozusagen.

38
00:02:58,880 --> 00:02:59,260
Dann...

39
00:03:00,000 --> 00:03:03,400
Kapitel 1, die Entdeckung der Bookmarklets.

40
00:03:04,100 --> 00:03:07,460
Also, was ist da die Kraft, die da in diesen Lesezeichen drin steckt?

41
00:03:07,860 --> 00:03:11,040
Zum einen kannst du deine persönliche Sammlung da kuratieren.

42
00:03:11,160 --> 00:03:12,800
Das sind also deine Dinge, die da sind.

43
00:03:13,260 --> 00:03:16,660
Kann man selber zusammenstellen, sortieren, machen.

44
00:03:17,360 --> 00:03:19,140
Man kann Schlüsselwörter vergeben.

45
00:03:20,660 --> 00:03:22,800
Ich mache mal schnell, um zu zeigen, was das ist.

46
00:03:22,800 --> 00:03:24,620
Wenn man sich da ein Beispiel anschaut.

47
00:03:28,400 --> 00:03:29,800
Da unten gibt es ein Schlüsselwort.

48
00:03:30,000 --> 00:03:33,040
Das ist jetzt in dem Fall, man sieht es wahrscheinlich nicht gut, einfach nur eine E.

49
00:03:34,020 --> 00:03:39,100
Und wenn ich dann oben in der Adresszeile das E eingebe, wird dann dieses Bookmarklet aufgerufen.

50
00:03:39,620 --> 00:03:43,100
Das ist nicht das gleiche wie ein Tag oder ein Schlüssel...

51
00:03:43,100 --> 00:03:47,000
Wie heisst das? Schlüssel, nicht Schlüsselwort.

52
00:03:47,980 --> 00:03:48,340
Ich weiss nicht.

53
00:03:48,600 --> 00:03:50,700
Einfach, es ist kein Tag, sondern das Schlüsselwort.

54
00:03:50,800 --> 00:03:53,520
Das ist da, um direkt dieses Bookmark aufzurufen.

55
00:03:53,660 --> 00:03:57,780
Und wenn du halt ein JavaScript hinterlegt hast, kann man mit Enter gerade das ausführen.

56
00:03:57,880 --> 00:03:59,780
Das mache ich bei so Bookmarklets, die...

57
00:04:00,000 --> 00:04:01,420
...viel brauche.

58
00:04:02,580 --> 00:04:07,660
Dann nochmal was, was wichtig und nützlich sein kann, wenn man sich beim Firefox anmeldet.

59
00:04:07,960 --> 00:04:09,720
Da sieht man jetzt den Kopf hier oben.

60
00:04:10,820 --> 00:04:11,780
Den Kopf hier oben.

61
00:04:12,040 --> 00:04:12,840
Da bin ich angemeldet.

62
00:04:12,920 --> 00:04:18,060
Das heisst, bei allen meinen Browsern, wo ich angemeldet bin, wird diese Sammlung synchronisiert.

63
00:04:18,060 --> 00:04:24,180
Das heisst, es verbindet alle meine Geräte, wo ich angemeldet bin mit dem Firefox-Login.

64
00:04:26,100 --> 00:04:26,780
Genau.

65
00:04:30,000 --> 00:04:35,600
Also, das ist mal so ein bisschen ein Vorwort gewesen.

66
00:04:36,600 --> 00:04:38,360
Jetzt beginnt da die Rebellion.

67
00:04:38,780 --> 00:04:40,220
Was kann man da alles machen?

68
00:04:40,220 --> 00:04:46,180
Man kann die Bookmarklets mit CSS, HTML oder eben auch JavaScript belegen.

69
00:04:46,900 --> 00:04:49,320
Also man kann reine HTML-Seiten da auch ablegen.

70
00:04:50,120 --> 00:04:54,700
Das erlaubt dann Sachen wie private Systeme im Hyperraum abzulegen.

71
00:04:54,820 --> 00:04:59,520
Also es ist dann eine private Webseite, die nur du für dich hast, wenn du das Bookmarklet öffnest.

72
00:04:59,520 --> 00:05:01,320
Hast du eine private Webseite.

73
00:05:02,100 --> 00:05:07,140
Also habe ich für einzelne Sachen so kleine Tools, die ich dann direkt im Browser ausführen möchte.

74
00:05:08,080 --> 00:05:09,140
Ja, ist so eine Idee.

75
00:05:10,580 --> 00:05:16,100
Und wenn einem die CSS, also die Formatierungssprache HTML als Auszeichnungssprache

76
00:05:16,100 --> 00:05:19,720
und JavaScript eben als die Skriptsprache nicht ausreichen,

77
00:05:20,280 --> 00:05:24,120
kann man JavaScript-Bibliotheken auch noch nachladen im Bookmarklet.

78
00:05:24,120 --> 00:05:29,040
Also kann man die Zeichenlimitierung sozusagen auch nochmal ausweiten,

79
00:05:29,040 --> 00:05:32,740
indem man einfach externe Bibliotheken dazu holt.

80
00:05:33,260 --> 00:05:38,220
Ich versuche möglichst, ohne Bibliotheken das zu machen normalerweise,

81
00:05:38,340 --> 00:05:44,140
damit die auch funktionieren, wenn vielleicht mal die Bibliothek dann irgendwie nicht mehr da ist oder so.

82
00:05:44,660 --> 00:05:49,820
Aber wenn man jetzt mal irgendwas Schnelles braucht und halt viel Funktionalität da drin steckt

83
00:05:49,820 --> 00:05:52,700
und jemand hat es schon gemacht, kann man sich dich also auch holen.

84
00:05:59,040 --> 00:06:06,960
Genau, dann eine neue Hoffnung.

85
00:06:07,040 --> 00:06:10,860
Man kann so auch APIs abfragen.

86
00:06:12,500 --> 00:06:16,880
Also man kann auch Daten noch, nicht nur Skripte dazuladen, sondern auch Daten.

87
00:06:17,900 --> 00:06:21,000
Und da habe ich jetzt das erste Beispiel, was ich zeigen möchte.

88
00:06:23,260 --> 00:06:24,660
Das ist mein...

89
00:06:24,660 --> 00:06:28,480
Ich hole mir die immer hier oben, da habe ich es direkt.

90
00:06:29,040 --> 00:06:30,440
Zum Kopieren.

91
00:06:36,100 --> 00:06:39,140
Genau, und das ist jetzt für diese Seite hier.

92
00:06:40,220 --> 00:06:45,580
Da mache ich immer Sport und ist leider inzwischen so, dass man sich anmelden muss

93
00:06:45,580 --> 00:06:47,660
und manchmal sind die Plätze ausgebucht.

94
00:06:48,800 --> 00:06:52,400
Und da ist jetzt mein Skript eigentlich nichts anderes, also ich gehe auf die Seite hier.

95
00:06:54,400 --> 00:06:56,920
Ich mache schnell die Kommandozeile noch auf.

96
00:06:57,920 --> 00:06:58,920
Und wenn ich die jetzt...

97
00:06:59,040 --> 00:07:04,740
ausführe, wird die Konsole geleert und jetzt wird es fünf Minuten dauern oder so,

98
00:07:04,840 --> 00:07:05,820
bis es gemacht wird.

99
00:07:05,820 --> 00:07:10,260
Darum, man kann es ja laufen lassen im Hintergrund, dann passiert dann vielleicht was später.

100
00:07:11,520 --> 00:07:14,880
Im Moment gibt es da noch zehn freie Plätze, aber ich kann mich noch gar nicht anmelden,

101
00:07:14,980 --> 00:07:16,220
weil es erst nächste Woche ist.

102
00:07:17,360 --> 00:07:20,120
Also ich lasse es einfach mal laufen und zeige kurz das Skript.

103
00:07:22,220 --> 00:07:25,340
Also ich lade da einen Sound nach.

104
00:07:25,500 --> 00:07:26,540
Ah, dafür habe ich auch eins.

105
00:07:28,340 --> 00:07:28,820
Dann kann ich noch zoomen.

106
00:07:29,040 --> 00:07:36,820
Wo war es?

107
00:07:37,420 --> 00:07:38,360
Dark Mode.

108
00:07:40,940 --> 00:07:42,280
So sieht man es, glaube ich, besser.

109
00:07:42,720 --> 00:07:44,360
Zuerst lade ich einen Sound nach.

110
00:07:44,440 --> 00:07:47,040
Das ist einfach nur ein New Audio und dann den Link zur Sounddatei.

111
00:07:47,740 --> 00:07:49,760
Also auch hier kann ich einfach aus dem Netz nachladen.

112
00:07:51,000 --> 00:07:52,920
Dann setze ich einen Intervall.

113
00:07:53,000 --> 00:07:56,400
Der macht eben in dem Fall alle, was sind das, glaube ich, fünf Minuten oder so was.

114
00:07:56,880 --> 00:07:57,580
Ich muss jetzt ausrechnen.

115
00:07:57,620 --> 00:07:58,040
Sind es Millisekunden?

116
00:07:58,040 --> 00:07:58,840
Sind es Millisekunden?

117
00:07:58,840 --> 00:08:01,400
Dann sind es irgendwie 300 Sekunden, ja, fünf Minuten.

118
00:08:02,040 --> 00:08:07,100
Schaut der nach, ob es neue Plätze gibt mit diesem Check.

119
00:08:08,060 --> 00:08:11,540
Und da wird dann eben dieses JavaScript abgefragt.

120
00:08:12,260 --> 00:08:13,180
Das ist hier unten.

121
00:08:14,360 --> 00:08:20,700
Da ist die Adresse von der API hier abgelegt.

122
00:08:20,700 --> 00:08:28,700
Da muss ich einfach hinten die Nummer vom entsprechenden Angebot anschreiben.

123
00:08:28,840 --> 00:08:30,200
Das passiert hier unten.

124
00:08:30,760 --> 00:08:36,700
Ich packe einfach diese Adresse hinten noch, die Zahl dazu, von der Veranstaltung, die ich brauche.

125
00:08:37,300 --> 00:08:38,360
Dann wird geprüft.

126
00:08:39,240 --> 00:08:42,280
Dann wird der Text runtergeladen, geparst.

127
00:08:42,780 --> 00:08:45,000
Hier mit noch JSON.

128
00:08:45,480 --> 00:08:46,720
JSON wird geparst.

129
00:08:47,500 --> 00:08:52,540
Und dann schaue ich in diesen JSON-File hinein, wie viele von Maximumplätzen.

130
00:08:53,100 --> 00:08:56,020
Es ist leider nicht, dass man einfach nachschauen kann, wie viele Plätze sind frei,

131
00:08:56,020 --> 00:08:58,100
sondern man muss Maximumplätze.

132
00:08:58,840 --> 00:09:00,780
Abzählen von angemeldeten Zahl.

133
00:09:00,960 --> 00:09:02,820
Und dann bekommt man, ob etwas frei ist oder nicht.

134
00:09:03,320 --> 00:09:05,100
Ist jetzt halt bei der Schnittstelle so.

135
00:09:05,800 --> 00:09:09,440
Und wenn etwas frei ist, dann werde ich benachrichtigt.

136
00:09:09,560 --> 00:09:13,580
Und zwar wird dann ein Sound abgespielt.

137
00:09:13,740 --> 00:09:16,920
Dieses Pferdewiren hier.

138
00:09:17,560 --> 00:09:19,740
Das ist der Sound A.

139
00:09:20,220 --> 00:09:28,740
Und es wird mir eine Nachricht hier oben bei den Notifikationen eingeblendet.

140
00:09:28,840 --> 00:09:30,320
Also da habe ich zwei Sachen.

141
00:09:30,600 --> 00:09:32,580
Zusätzlich sogar noch in der Kommandozeile.

142
00:09:33,240 --> 00:09:34,520
Ich lasse jetzt einfach weiterlaufen.

143
00:09:34,660 --> 00:09:36,860
Hoffe, dass dann irgendwann das Pferd da wird.

144
00:09:38,860 --> 00:09:41,100
Dann habe ich auch ein kleines Skript.

145
00:09:41,660 --> 00:09:45,840
Das kopiert mir dann die Sachen aus dem...

146
00:09:46,460 --> 00:09:51,300
Wenn ich die Anmeldung habe, kopiert es mir an, welches Angebot das ist.

147
00:09:51,560 --> 00:09:55,760
Und wie die Trainerin heisst, die das gibt und solche Sachen.

148
00:09:55,760 --> 00:09:56,960
Das zeige ich jetzt nicht.

149
00:09:57,060 --> 00:09:58,000
Das ist einfach ein Copy.

150
00:09:58,840 --> 00:10:01,340
Aber doch, das ist noch spannend wegen dem Copy-Teil.

151
00:10:05,660 --> 00:10:07,780
Weil das ist auch etwas ganz Einfaches.

152
00:10:08,200 --> 00:10:10,960
Da habe ich am Anfang gedacht, das ist sicher super kompliziert.

153
00:10:11,100 --> 00:10:13,220
Und dann habe ich gedacht, es gibt eine Schnittstelle auch dafür.

154
00:10:17,660 --> 00:10:19,140
Genau, wieder Zoom.

155
00:10:22,140 --> 00:10:23,900
Also es ist tatsächlich einfach das hier.

156
00:10:24,260 --> 00:10:26,780
Navigator, dort Clipboard, Write Text.

157
00:10:27,160 --> 00:10:28,820
Und dann kann ich die Sachen, die ich vorher aufgemacht habe,

158
00:10:28,840 --> 00:10:33,120
aus dem Dokument herausgelesen habe, mit diesen Query-Abfragen,

159
00:10:33,680 --> 00:10:37,740
ins Clipboard hineinschreiben und kann es nach dem Kalender

160
00:10:37,740 --> 00:10:39,580
als neuen Termin einfach einfügen.

161
00:10:39,860 --> 00:10:41,940
Also es ist kein Terminkalender-Eintrag,

162
00:10:42,020 --> 00:10:45,160
sondern einfach nur der String, den ich dann brauche für den Kalender.

163
00:10:46,060 --> 00:10:47,060
Aber es ist super praktisch.

164
00:10:47,140 --> 00:10:50,800
Da habe ich immer sonst eine Minute, 30 Sekunden gebraucht.

165
00:10:50,860 --> 00:10:52,200
Jetzt brauche ich noch 10 Sekunden.

166
00:10:52,600 --> 00:10:55,940
Und weil ich immer eine Minute oder zwei Minuten losrennen muss,

167
00:10:55,940 --> 00:10:58,640
dass ich mich daran denke, mich anzumelden,

168
00:10:58,840 --> 00:11:01,680
oder oft wenigstens, muss es schnell gehen.

169
00:11:02,160 --> 00:11:03,880
Ich trage mir das trotzdem in den Kalender ein,

170
00:11:04,020 --> 00:11:07,320
aus was auch immer nostalgischen Gründen für das Archiv, für die Zukunft.

171
00:11:08,080 --> 00:11:12,180
Und man kann natürlich auch ganz andere APIs vom Multiversum abrufen,

172
00:11:12,340 --> 00:11:14,100
nämlich hier Game of Thrones.

173
00:11:15,060 --> 00:11:17,900
Machen wir schnell auf hier, die Kommandozeile.

174
00:11:18,760 --> 00:11:22,220
Und da habe ich jetzt direkt eine Game of Thrones API,

175
00:11:22,440 --> 00:11:24,160
wo man Zitate sich herholen kann.

176
00:11:25,820 --> 00:11:28,180
Da draufklicken, sieht man hier unten,

177
00:11:28,840 --> 00:11:32,620
da kommt irgendeins dieser Zitate zufällig zurück.

178
00:11:33,660 --> 00:11:35,800
You're a dragon, be a dragon, was auch immer.

179
00:11:35,900 --> 00:11:37,280
You're too slow on the draw.

180
00:11:37,540 --> 00:11:39,560
Ah, da müsste ich nach oben, dann sehe ich nicht ganz alles.

181
00:11:40,360 --> 00:11:41,420
Also das wollte ich nur noch zeigen.

182
00:11:41,500 --> 00:11:43,580
Man kann auch beliebige APIs abfragen.

183
00:11:43,700 --> 00:11:45,100
Auch hier kann ich das kurz zeigen.

184
00:11:45,960 --> 00:11:48,500
Was jemand noch sehen möchte, ist ein ganz kurzes.

185
00:11:54,000 --> 00:11:55,560
Auch hier zoomen vielleicht.

186
00:11:56,480 --> 00:11:58,820
Also auch wieder die API abrufen.

187
00:11:58,920 --> 00:12:00,840
Mit diesem Endpunkt random.

188
00:12:02,940 --> 00:12:04,740
Jetzt hat er gemerkt, dass er einen Platz frei ist.

189
00:12:04,820 --> 00:12:06,660
Also wenn ich am Computer am Arbeiten bin,

190
00:12:06,740 --> 00:12:09,080
dann weiss ich jetzt sofort auf die Anmeldeseite

191
00:12:09,160 --> 00:12:11,700
und dann habe ich einen Platz.

192
00:12:11,900 --> 00:12:14,240
Es gäbe auch eine App, aber mein Smartphone ist zu alt.

193
00:12:14,320 --> 00:12:15,780
Ich kann die App nicht installieren.

194
00:12:15,860 --> 00:12:17,860
Da habe ich mir das jetzt halt im Browser gebaut.

195
00:12:19,120 --> 00:12:20,120
Genau.

196
00:12:20,340 --> 00:12:22,020
Und genau, ist das genau gleiche Spiel wieder.

197
00:12:22,100 --> 00:12:24,960
Man bekommt dann die Antwort von dieser API, ist ein Text,

198
00:12:25,300 --> 00:12:28,340
der wird dann hier umgewandelt

199
00:12:28,340 --> 00:12:32,100
in ein JSON-Objekt und danach kann ich aus diesem JSON-Objekt

200
00:12:32,180 --> 00:12:35,400
direkt den Satz rauslesen und den Charakternamen

201
00:12:35,480 --> 00:12:37,020
noch hinten dran schreiben.

202
00:12:37,100 --> 00:12:40,660
Also das ganze Spiel jetzt, um dieses Game of Thrones Zitat

203
00:12:40,760 --> 00:12:44,660
in die Kommandozeile zu bekommen, also Kommandozeile vom Browser,

204
00:12:44,760 --> 00:12:46,760
die Konsole vom Browser.

205
00:12:48,320 --> 00:12:52,360
Gut, dann das wäre dann Kapitel drei.

206
00:12:52,460 --> 00:12:53,660
Gehen wir mal weiter.

207
00:12:53,760 --> 00:12:55,560
Schauen wir, was es da sonst noch gibt.

208
00:12:55,660 --> 00:12:58,120
Das Imperium schlägt natürlich irgendwann zurück.

209
00:12:58,340 --> 00:13:02,800
Und dann läuft der Countdown zur nächsten, zur endgültigen Schlacht,

210
00:13:02,900 --> 00:13:05,100
was darum geht, ob es das Gute oder Böse gewinnt.

211
00:13:05,200 --> 00:13:07,360
Und da braucht man natürlich so eine Anzeige,

212
00:13:07,460 --> 00:13:10,340
wo man sieht, wie viel Zeit das noch vergeht, bis die Schlacht beginnt.

213
00:13:10,940 --> 00:13:12,860
Und da habe ich jetzt so Widgets gemacht.

214
00:13:16,280 --> 00:13:18,840
Genau, Würfel, ah nicht den Würfel, das ist falsch.

215
00:13:21,620 --> 00:13:22,440
Wo war es?

216
00:13:22,540 --> 00:13:23,800
Ich wollte den Countdown da.

217
00:13:24,580 --> 00:13:25,840
Der sieht dann so aus.

218
00:13:25,840 --> 00:13:28,100
Und weil das responsive gemacht ist,

219
00:13:28,100 --> 00:13:33,160
kann ich also auch zoomen und es zoomt jetzt in dem Fall nur das Widget,

220
00:13:33,260 --> 00:13:39,260
weil die Reveal.js Webseite lässt sich lustigerweise nicht über die normale Zoom-Funktion vergrössern.

221
00:13:39,340 --> 00:13:41,760
Ist auch gut in dem Fall, weil ist ja schon genug und groß.

222
00:13:42,400 --> 00:13:45,900
Und da kann ich jetzt einfach diesen Countdown starten.

223
00:13:47,100 --> 00:13:49,360
Und den hatte ich früher eben so als kleine Webseite,

224
00:13:49,620 --> 00:13:50,960
aber ich habe dann gemerkt, ist blöd.

225
00:13:51,160 --> 00:13:55,160
Ich möchte dir eigentlich was zeigen, vielleicht parallel noch im Unterricht zum Beispiel,

226
00:13:55,160 --> 00:13:58,080
damit die Leute sehen, was sie tun sollen und gleichzeitig noch,

227
00:13:58,100 --> 00:13:59,720
wie lange sie noch Zeit haben.

228
00:13:59,720 --> 00:14:03,600
Und wenn dann Pause zwischendurch ist, zum Beispiel eine 10-Minuten-Pause,

229
00:14:03,600 --> 00:14:07,600
mache ich hier einfach Pause und nach der Pause lasse ich es weiterlaufen.

230
00:14:07,600 --> 00:14:12,600
Das ist so ein Widget und eben den Würfel, den Würfel habe ich da auch noch.

231
00:14:14,600 --> 00:14:16,600
Zum Beispiel auch wieder 42.

232
00:14:18,100 --> 00:14:23,100
Und da kann ich jetzt zum Beispiel, wenn jede Studentin, jeder Student oder jeder Teilnehmer eine Nummer bekommt,

233
00:14:23,100 --> 00:14:27,100
kann ich dann hier zufällig zum Beispiel eine Teilnehmerin bestimmen,

234
00:14:27,100 --> 00:14:33,100
die dann was machen darf oder eine Wortmeldung, eine Wortmeldung bieten oder so.

235
00:14:33,100 --> 00:14:37,100
Ich könnte dann natürlich auch eine Liste reinpacken am Anfang mit einem Prompt,

236
00:14:38,100 --> 00:14:42,100
wo ich dann halt die Liste reinkopiere und dann würde direkt der Name kommen.

237
00:14:42,100 --> 00:14:43,100
Das könnte ich auch machen.

238
00:14:43,100 --> 00:14:46,100
Ich habe jetzt einfach einen Würfel gewollt, der ist für alles brauchbar,

239
00:14:46,100 --> 00:14:52,100
auch für sonst Zufallssachen oder für Spiele, wo ich einfach einen Würfel brauche, oft mit 6 Seiten.

240
00:14:52,100 --> 00:14:56,600
Wenn die Zeit abgelaufen ist, dann habe ich jetzt hier keinen Ton reingepackt.

241
00:14:57,100 --> 00:15:00,100
Aber dafür habe ich eine Mini-Emoji-Story.

242
00:15:00,100 --> 00:15:03,100
Und als ich das letztens in meinem Kurs verwendet habe,

243
00:15:03,100 --> 00:15:07,100
da hat dann eine Teilnehmerin gesagt, ja, aber es ist ja dann immer die gleiche Geschichte am Schluss.

244
00:15:07,100 --> 00:15:08,100
Das stimmt.

245
00:15:08,100 --> 00:15:11,100
Darum habe ich mir als nächsten Ausbauschritt vorgenommen,

246
00:15:11,100 --> 00:15:15,100
da mit 42 oder so verschiedene Mini-Stories reinzupacken,

247
00:15:15,100 --> 00:15:18,100
dass dann jedes Mal eine zufällige andere Mini-Story kommt.

248
00:15:18,100 --> 00:15:21,100
Und das heisst jetzt zum Beispiel, Launch gelungen.

249
00:15:21,100 --> 00:15:25,100
Das Einhorn bringt die Pizza im Ufo und wir machen eine Party.

250
00:15:25,100 --> 00:15:26,100
Das ist dann auch noch lustig.

251
00:15:26,100 --> 00:15:30,100
Wenn jemand raten möchte, was die Geschichte da ist.

252
00:15:30,100 --> 00:15:35,100
Und dank KI kann man ja solche Sachen in Sekundenbruchteilen,

253
00:15:35,100 --> 00:15:40,100
solche Schichten erfinden und die guten raussuchen, die einem gefallen.

254
00:15:40,100 --> 00:15:47,100
Und weil dieses Reveal.js, das ist jetzt speziell, weil die Präsentation ist Reveal.js im Hintergrund,

255
00:15:47,100 --> 00:15:53,100
weil die eine Single-Page-Application ist, also alle diese Slides sind auf der gleichen Seite sozusagen,

256
00:15:53,100 --> 00:15:55,100
bleiben die Widgets auch,

257
00:15:55,100 --> 00:15:58,100
wenn ich die Slides wechsle.

258
00:15:58,100 --> 00:16:02,100
Wenn es eine normale Webseite wäre, wo ich halt auf eine Navigation klicke, würden die wegfallen,

259
00:16:02,100 --> 00:16:05,100
müsste ich sie wiederholen, wenn ich sie wieder brauche.

260
00:16:05,100 --> 00:16:09,100
Ist manchmal das eine besser, manchmal das andere, ja.

261
00:16:09,100 --> 00:16:11,100
Gut, das war das.

262
00:16:11,100 --> 00:16:13,100
Und jetzt.

263
00:16:13,100 --> 00:16:19,100
Das ist mein, Moment, mein Lieblings-Widget.

264
00:16:19,100 --> 00:16:21,100
Das ist der Chatbird Companion.

265
00:16:21,100 --> 00:16:23,100
Ich habe den hier.

266
00:16:23,100 --> 00:16:24,100
Genau.

267
00:16:24,100 --> 00:16:27,100
Wenn ein Droide übrigens hinterlegt ist, merkt ihr das?

268
00:16:27,100 --> 00:16:29,100
Da kommt der Sound.

269
00:16:29,100 --> 00:16:30,100
Bei den anderen nicht, oder?

270
00:16:30,100 --> 00:16:33,100
Wo Droiden reingepackt sind.

271
00:16:33,100 --> 00:16:36,100
Aber da machen wir jetzt, sollte ich gar nicht sagen, genau da.

272
00:16:36,100 --> 00:16:40,100
Das ist jetzt mein Chat Companion, heisst der.

273
00:16:40,100 --> 00:16:42,100
Chatbot Companion.

274
00:16:42,100 --> 00:16:46,100
Und zwar bin ich inzwischen auch immer öfter auf Chatbots unterwegs.

275
00:16:46,100 --> 00:16:48,100
Ich sage immer, es ist mein drittes Leben.

276
00:16:48,100 --> 00:16:52,100
Zuerst waren Bücher, da war ich unheimlich begeistert, immer noch.

277
00:16:52,100 --> 00:16:53,100
Dann das Internet.

278
00:16:53,100 --> 00:16:55,100
Das war ja auch der Hammer.

279
00:16:55,100 --> 00:16:59,100
Als ich vor dem Kurzprüfungsstudieren anfing, war das Internet da.

280
00:16:59,100 --> 00:17:01,100
Das ist schon eine Weile her bei mir, das Studium.

281
00:17:01,100 --> 00:17:03,100
Und dann...

282
00:17:03,100 --> 00:17:07,100
Jetzt muss ich das ausschalten, sonst kommt die ganze Zeit.

283
00:17:07,100 --> 00:17:11,100
Also das wäre auch ein Timer für mich, eigentlich alle fünf Minuten.

284
00:17:11,100 --> 00:17:12,100
Bin ich sehr...

285
00:17:12,100 --> 00:17:15,100
Genau, das dritte Leben ist jetzt sozusagen die Chatbots.

286
00:17:15,100 --> 00:17:22,100
Also ich denke immer, mein Kopf ist zu klein, herauszufinden, was ich jetzt mit dieser allwissenden Maschine eigentlich alles machen könnte.

287
00:17:22,100 --> 00:17:30,100
Und darum versuche ich immer so ein bisschen zu helfen, indem ich halt für mich so super Prompts und so weiter schreibe,

288
00:17:30,100 --> 00:17:34,100
die mir dann helfen, um noch besser zu interagieren mit dem Chatbot.

289
00:17:34,100 --> 00:17:37,100
Einer davon ist der Optimiere-Prompt.

290
00:17:37,100 --> 00:17:40,100
Also es ist ein Prompt-Optimierungs-Prompt.

291
00:17:40,100 --> 00:17:44,100
Und dann habe ich noch einen Destilier-Prompt.

292
00:17:44,100 --> 00:17:46,100
Also Optimier-Prompt ist glaube ich klar.

293
00:17:46,100 --> 00:17:50,100
Destilier-Prompt ist, wenn ich einen Dialog hatte mit dem Chatbot,

294
00:17:50,100 --> 00:17:54,100
mein initialer Prompt hat nicht das Resultat gegeben, was ich wollte,

295
00:17:54,100 --> 00:17:58,100
und da habe ich viele Anpassungen vorgenommen am Original,

296
00:17:58,100 --> 00:18:01,100
dann sage ich ihm, das ist eben ein Destilier-Prompt,

297
00:18:01,100 --> 00:18:06,100
der fasst dann alles zusammen, was ich im Dialog mit ihm gemacht habe

298
00:18:06,100 --> 00:18:10,100
und macht einen neuen Prompt daraus, den ich dann das nächste Mal verwenden kann,

299
00:18:10,100 --> 00:18:13,100
um direkt das Endresultat zu erhalten.

300
00:18:13,100 --> 00:18:16,100
Also dass ich nicht das nächste Mal wieder alle diese Anpassungen noch mal reintippen muss.

301
00:18:16,100 --> 00:18:19,100
Das ist der Destilier-Prompt. Reverse-Engineering ist wahrscheinlich klar.

302
00:18:20,100 --> 00:18:23,100
Da gebe ich Code rein und sage, wie müsste mein Prompt ausschauen,

303
00:18:23,100 --> 00:18:25,100
dass dieser Code rauskommt.

304
00:18:25,100 --> 00:18:28,100
Und da muss ich nur die Funktionen ergänzen oder rausnehmen oder anpassen,

305
00:18:28,100 --> 00:18:30,100
die ich anders haben möchte.

306
00:18:30,100 --> 00:18:33,100
Und kann den wieder laufen lassen und kriege natürlich nicht den gleichen Code,

307
00:18:33,100 --> 00:18:35,100
aber der genau das gleiche macht hoffentlich.

308
00:18:35,100 --> 00:18:37,100
Das funktioniert erstaunlich gut.

309
00:18:37,100 --> 00:18:40,100
Für Coding mag ich Claude übrigens am besten.

310
00:18:40,100 --> 00:18:44,100
Der macht am wenigsten Fehler, was ich so gemerkt habe, für meine Fälle zumindest.

311
00:18:44,100 --> 00:18:46,100
Und da gibt es einen Haufen anderer Sachen.

312
00:18:46,100 --> 00:18:49,100
Zum Beispiel erstelle Präsentation.

313
00:18:49,100 --> 00:18:55,100
Da muss ich einfach den, immer wo Selection hinten steht, könnte ich jetzt hier Text auswählen.

314
00:18:55,100 --> 00:18:59,100
Das könnte mein ganzes Skript sein, muss einfach im Browser verfügbar sein.

315
00:18:59,100 --> 00:19:04,100
Und dann mache ich hier oben, erstelle Präsentation, kopieren.

316
00:19:04,100 --> 00:19:07,100
Und dann habe ich den Text jetzt im Zwischenspeicher mit dem Prompt davor

317
00:19:07,100 --> 00:19:10,100
und dem Skript danach reinkopiert.

318
00:19:10,100 --> 00:19:17,100
Und das kann ich jetzt im Chatbot ausführen und ich bekomme direkt eine fertige Präsentation.

319
00:19:17,100 --> 00:19:19,100
Und das ist hoch erstaunlich.

320
00:19:19,100 --> 00:19:21,100
Das funktioniert bis jetzt jedes Mal perfekt.

321
00:19:21,100 --> 00:19:24,100
Und ich muss praktisch keine Anpassungen mehr machen.

322
00:19:24,100 --> 00:19:27,100
Wenn wir Zeit haben und ihr wollt das sehen, kann ich so einen Schluss laufen lassen mal

323
00:19:27,100 --> 00:19:29,100
oder auch einen anderen Prompt.

324
00:19:29,100 --> 00:19:32,100
Aber wie gesagt, ich finde das fantastisch.

325
00:19:32,100 --> 00:19:34,100
Dann habe ich, das sind die Vorlagen.

326
00:19:34,100 --> 00:19:37,100
Dann gibt es hier unten, ich habe dann irgendwie noch gedacht,

327
00:19:37,100 --> 00:19:40,100
ja ist das schon alles, immer die gleichen Vorlagen verwenden.

328
00:19:40,100 --> 00:19:43,100
Wäre es nicht cool, wenn ich auch von Anfang an bessere Prompt schreiben würde.

329
00:19:43,100 --> 00:19:47,100
Und da gibt es ja so ein paar Systeme, die kann man im Kopf haben.

330
00:19:47,100 --> 00:19:48,100
Kreide ist eins.

331
00:19:48,100 --> 00:19:50,100
So eine Abkürzung und halt die einzelnen Komponenten.

332
00:19:50,100 --> 00:19:58,100
Kontext, Rolle, Erteilung des Auftrags, Dialog führen, genau.

333
00:19:58,100 --> 00:20:01,100
Und das E ist, glaube ich, noch evaluieren, genau.

334
00:20:01,100 --> 00:20:03,100
Aber da habe ich gedacht, ja ist ein bisschen limitiert.

335
00:20:03,100 --> 00:20:08,100
Es gibt noch viele andere Module oder Patterns, die man in Prompts verwenden kann.

336
00:20:08,100 --> 00:20:14,100
Und darum habe ich dann gedacht, ich könnte hier ja so einen Prompt-Generator bauen.

337
00:20:14,100 --> 00:20:17,100
Und da kann ich jetzt einfach hier oben,

338
00:20:17,100 --> 00:20:19,100
zum Beispiel Rollen auswählen.

339
00:20:19,100 --> 00:20:23,100
Und dann kann ich hier unten den Kontext und die Rolle eingeben.

340
00:20:23,100 --> 00:20:25,100
Das Szenario ist ähnlich.

341
00:20:25,100 --> 00:20:27,100
Da ist dann Kontext, Rolle und Ziel.

342
00:20:27,100 --> 00:20:29,100
Das ist dann in einem Schritt.

343
00:20:29,100 --> 00:20:34,100
Oder wenn ich andere Dinge noch ergänzen möchte,

344
00:20:34,100 --> 00:20:36,100
Jane of Thought zum Beispiel,

345
00:20:36,100 --> 00:20:39,100
dann werden die alle noch dazugefügt im Hintergrund.

346
00:20:39,100 --> 00:20:41,100
Die brauchen nicht immer alle eine Eingabe,

347
00:20:41,100 --> 00:20:44,100
aber ich könnte jetzt direkt hier unten die Ergänzung rein tippen

348
00:20:44,100 --> 00:20:46,100
und dann mit Anzeigen,

349
00:20:46,100 --> 00:20:48,100
ist jetzt halt auch wieder relativ klein,

350
00:20:48,100 --> 00:20:50,100
wird hier denke Schritt für Schritt.

351
00:20:50,100 --> 00:20:52,100
Stell dir vor, du bist Rolle in Kontext und Ziel.

352
00:20:52,100 --> 00:20:54,100
Und wenn ich jetzt das ausgefüllt hätte,

353
00:20:54,100 --> 00:20:56,100
würde das direkt reingeschrieben.

354
00:20:56,100 --> 00:20:58,100
Auch hier kann ich es dann identifizieren

355
00:20:58,100 --> 00:21:01,100
und habe es dann bereit für den Chatbot.

356
00:21:01,100 --> 00:21:03,100
Genau, und Reset macht es zurück.

357
00:21:03,100 --> 00:21:05,100
Also das ist so mein Companion.

358
00:21:05,100 --> 00:21:07,100
Der hat den Dark und anderen Mode noch drin.

359
00:21:07,100 --> 00:21:10,100
Einfach, dass es ein bisschen je nach Seite besser ausschaut.

360
00:21:10,100 --> 00:21:11,100
Das war das.

361
00:21:11,100 --> 00:21:12,100
Jetzt, glaube ich, muss ich weiter,

362
00:21:12,100 --> 00:21:14,100
sonst wird es dann mit der Zeit vielleicht auch knapp.

363
00:21:16,100 --> 00:21:21,100
Kapitel 5, für alle Fälle.

364
00:21:21,100 --> 00:21:23,100
Das ist mit der Han Solo gemeint.

365
00:21:23,100 --> 00:21:29,100
Der muss da ja manchmal Daten schmuggeln oder andere Dinge.

366
00:21:29,100 --> 00:21:31,100
Und da habe ich für einen Kollegen,

367
00:21:31,100 --> 00:21:32,100
der hat das letztens gewollt,

368
00:21:32,100 --> 00:21:34,100
der wollte auf Tutti, das ist bei uns eine Webseite,

369
00:21:34,100 --> 00:21:37,100
wo man Sachen verkaufen kann, wie Ebay oder so.

370
00:21:37,100 --> 00:21:39,100
Ricardo ist in der Schweiz noch bekannt.

371
00:21:39,100 --> 00:21:41,100
Ich weiß nicht, was ihr in Deutschland habt.

372
00:21:41,100 --> 00:21:44,100
Und da kann ich jetzt zum Beispiel auf Tutti gehen.

373
00:21:44,100 --> 00:21:46,100
Und jetzt fragt er wieder.

374
00:21:46,100 --> 00:21:49,100
In Deutschland fragt er mich immer, ob ich ein Mensch bin.

375
00:21:49,100 --> 00:21:51,100
Das ist lustig.

376
00:21:51,100 --> 00:21:54,100
Ich weiss nicht, was sie da uns damit sagen wollen.

377
00:21:59,100 --> 00:22:02,100
Keine Witze machen, das ist immer gefährlich.

378
00:22:02,100 --> 00:22:06,100
Und jetzt möchte ich zum Beispiel Instrumente,

379
00:22:06,100 --> 00:22:09,100
die es gerade gibt, hier exportieren.

380
00:22:09,100 --> 00:22:12,100
Es gibt keine API bei dieser Seite.

381
00:22:12,100 --> 00:22:15,100
Ich möchte aber alle diese Angebote jetzt da irgendwie rausholen.

382
00:22:15,100 --> 00:22:17,100
Ich möchte natürlich jetzt Punkt um Punkt durchgehen

383
00:22:17,100 --> 00:22:18,100
und das rauskopieren.

384
00:22:18,100 --> 00:22:23,100
Er wollte die Postleitzahl und die Adresse zum Angebot.

385
00:22:23,100 --> 00:22:28,100
Und da habe ich jetzt auch wieder so ein Tutti-Skript.

386
00:22:28,100 --> 00:22:31,100
Da klicke ich hier auf Tutti.

387
00:22:31,100 --> 00:22:34,100
Und jetzt fragt er mich schon, wo möchtest du die Daten?

388
00:22:34,100 --> 00:22:35,100
Ich packe sie mal auf den Schreibtisch.

389
00:22:35,100 --> 00:22:37,100
Ich habe es heute schon mal gemacht.

390
00:22:37,100 --> 00:22:40,100
Und wenn ich es jetzt öffne,

391
00:22:40,100 --> 00:22:44,100
sollten genau alle diese Daten,

392
00:22:44,100 --> 00:22:48,100
da muss man hier unten scrollscannen,

393
00:22:48,100 --> 00:22:50,100
bekommen jetzt vorne die Postleitzahl

394
00:22:50,100 --> 00:22:52,100
und hinten die Angebote.

395
00:22:52,100 --> 00:22:54,100
Das ist jetzt in einem Klick passiert.

396
00:22:54,100 --> 00:22:56,100
Er hat mir einfach einen Pfeil erstellt.

397
00:22:56,100 --> 00:22:58,100
Wenn man mehrere Seiten möchte,

398
00:22:58,100 --> 00:23:00,100
habe ich gemerkt, ist es praktischer.

399
00:23:00,100 --> 00:23:02,100
Ich gehe jetzt mal auf die nächste Seite.

400
00:23:04,100 --> 00:23:06,100
Irgendwo da unten kommt es.

401
00:23:06,100 --> 00:23:08,100
Es ist praktischer, wenn es mir die Daten

402
00:23:08,100 --> 00:23:10,100
in den Zwischenspeicher packt.

403
00:23:10,100 --> 00:23:12,100
Dann mache ich da Zwischenspeicher.

404
00:23:12,100 --> 00:23:14,100
Und jetzt kann ich sie hier einfügen.

405
00:23:14,100 --> 00:23:16,100
Er fragt mich gerade,

406
00:23:16,100 --> 00:23:18,100
jetzt sind die anderen Angebote auch schon da.

407
00:23:18,100 --> 00:23:20,100
Dann kann ich die ersten zehn Seiten

408
00:23:20,100 --> 00:23:23,100
relativ schnell mir so rauskopieren.

409
00:23:23,100 --> 00:23:26,100
Und er hat dann noch eine Visualisierung daraus gemacht,

410
00:23:26,100 --> 00:23:29,100
wo die Inserate, also wo sie zu finden sind.

411
00:23:29,100 --> 00:23:31,100
Wahrscheinlich mit dem Ziel da,

412
00:23:31,100 --> 00:23:33,100
die, die nahe liegen und so rauszuholen.

413
00:23:33,100 --> 00:23:35,100
Respektive er hat gesagt, er möchte schauen,

414
00:23:35,100 --> 00:23:37,100
wo zum Beispiel die meisten Rolex-Uhren

415
00:23:37,100 --> 00:23:38,100
verkauft werden in der Schweiz.

416
00:23:38,100 --> 00:23:40,100
Auf Tutti glaube ich wahrscheinlich nicht viele,

417
00:23:40,100 --> 00:23:41,100
aber das war so sein Szenario.

418
00:23:41,100 --> 00:23:43,100
Er möchte mir rausschauen,

419
00:23:43,100 --> 00:23:45,100
in welchen Gebieten welche Dinge verkauft.

420
00:23:45,100 --> 00:23:47,100
Das ist ein Data-Analyst, der so Sachen macht.

421
00:23:49,100 --> 00:23:50,100
Genau.

422
00:23:50,100 --> 00:23:52,100
Da könnte ich jetzt noch kurz zeigen,

423
00:23:52,100 --> 00:23:54,100
wie die CSV-Datei geht.

424
00:23:54,100 --> 00:23:56,100
Die anderen Dinge habt ihr die meisten

425
00:23:56,100 --> 00:23:58,100
schon mal irgendwo gesehen.

426
00:23:58,100 --> 00:24:00,100
Wo ist es da?

427
00:24:02,100 --> 00:24:05,100
Und wenn man sie gut macht, die Bookmarklets,

428
00:24:05,100 --> 00:24:07,100
dann kann sie tatsächlich auch jederzeit

429
00:24:07,100 --> 00:24:08,100
wieder in diese Form bringen,

430
00:24:08,100 --> 00:24:10,100
wo sie schön formuliert sind.

431
00:24:11,100 --> 00:24:13,100
Da mache ich schnell wieder das Vollbild.

432
00:24:13,100 --> 00:24:15,100
Ups.

433
00:24:15,100 --> 00:24:18,100
Jetzt wollte ich eigentlich direkt das Vollbild.

434
00:24:18,100 --> 00:24:19,100
Wieso macht er das nicht?

435
00:24:19,100 --> 00:24:21,100
Jetzt.

436
00:24:21,100 --> 00:24:23,100
Oh je.

437
00:24:23,100 --> 00:24:25,100
Ah, da habe ich es invertiert.

438
00:24:25,100 --> 00:24:27,100
Darum.

439
00:24:27,100 --> 00:24:29,100
So.

440
00:24:29,100 --> 00:24:31,100
Genau.

441
00:24:31,100 --> 00:24:33,100
Und der Trick ist also tatsächlich,

442
00:24:33,100 --> 00:24:35,100
man sagt, man soll einen neuen Blog machen.

443
00:24:35,100 --> 00:24:37,100
Und da wird einfach diese CSV-Daten,

444
00:24:37,100 --> 00:24:39,100
das ist einfach in einer Variable gespeichert,

445
00:24:39,100 --> 00:24:42,100
mit Zeilen und Brüchen da,

446
00:24:42,100 --> 00:24:45,100
damit eins vom anderen getrennt ist.

447
00:24:45,100 --> 00:24:47,100
Sagt man, das ist jetzt eine neue Datei

448
00:24:47,100 --> 00:24:50,100
vom Typ Text CSV-Datei,

449
00:24:50,100 --> 00:24:52,100
kreiert einen Link, wo sozusagen,

450
00:24:52,100 --> 00:24:55,100
wo die Daten dann hinterlegt werden.

451
00:24:55,100 --> 00:24:58,100
Dem fügt man eine Datenadresse hinzu.

452
00:24:58,100 --> 00:24:59,100
Das ist neben dieser Blob,

453
00:24:59,100 --> 00:25:01,100
da sind auch die Daten als Datei sozusagen

454
00:25:01,100 --> 00:25:03,100
beim Link hinterlegt.

455
00:25:03,100 --> 00:25:06,100
Man sagt, wie der Name sein soll des Downloads.

456
00:25:06,100 --> 00:25:08,100
Und fügt das dann dem DOM,

457
00:25:08,100 --> 00:25:11,100
also dem Ganzen, der Webseite dazu.

458
00:25:11,100 --> 00:25:13,100
Und nachher wird der Klick simuliert,

459
00:25:13,100 --> 00:25:15,100
dass der Link angeklickt wird.

460
00:25:15,100 --> 00:25:17,100
Und dann muss ich nur noch sagen,

461
00:25:17,100 --> 00:25:19,100
wo ich es abspeichern möchte als Benutzer.

462
00:25:19,100 --> 00:25:21,100
Danach, wenn man aufräumt hinter sich,

463
00:25:21,100 --> 00:25:23,100
das ist ein guter Haushalt,

464
00:25:23,100 --> 00:25:25,100
immer aufzuräumen gerade,

465
00:25:25,100 --> 00:25:27,100
dann löscht man einfach diesen Link wieder.

466
00:25:27,100 --> 00:25:28,100
Dann ist der gerade wieder weg

467
00:25:28,100 --> 00:25:30,100
und stört nicht andere Dinge.

468
00:25:30,100 --> 00:25:32,100
Also so kann man Dateien erzeugen.

469
00:25:32,100 --> 00:25:34,100
Ist relativ einfach auf dieser Blob.

470
00:25:34,100 --> 00:25:36,100
Und dann hat man eigentlich schon eine Datei.

471
00:25:38,100 --> 00:25:41,100
Gut.

472
00:25:49,100 --> 00:25:51,100
Ah, die Datenbanken,

473
00:25:51,100 --> 00:25:52,100
jetzt musste ich gerade überlegen,

474
00:25:52,100 --> 00:25:53,100
was ich da wollte.

475
00:25:53,100 --> 00:25:55,100
Die Datenbanken der Rebellen sichern,

476
00:25:55,100 --> 00:25:57,100
Backups machen

477
00:25:57,100 --> 00:26:00,100
und sind vielleicht in Tabellen hinterlegt,

478
00:26:00,100 --> 00:26:02,100
von einer Webseite.

479
00:26:02,100 --> 00:26:03,100
Was ich normalerweise mache,

480
00:26:03,100 --> 00:26:05,100
ich drücke Kontrolltaste

481
00:26:05,100 --> 00:26:07,100
oder Steuerungstaste auf Deutsch.

482
00:26:07,100 --> 00:26:09,100
Dann wähle ich alle aus,

483
00:26:09,100 --> 00:26:10,100
kopiere die

484
00:26:10,100 --> 00:26:16,100
und das sollte eigentlich direkt gehen.

485
00:26:16,100 --> 00:26:18,100
Hoffentlich.

486
00:26:18,100 --> 00:26:19,100
Ja, zack.

487
00:26:19,100 --> 00:26:20,100
Das wissen viele Leute nicht.

488
00:26:20,100 --> 00:26:23,100
Darum hat jemand mal ein Skript geschrieben.

489
00:26:23,100 --> 00:26:24,100
Das macht,

490
00:26:24,100 --> 00:26:25,100
ist also nicht von mir,

491
00:26:25,100 --> 00:26:26,100
das nächste, was ich da zeige.

492
00:26:26,100 --> 00:26:28,100
Das heisst Table This.

493
00:26:28,100 --> 00:26:30,100
Wenn ich mit der Maus da drauf fahre,

494
00:26:30,100 --> 00:26:31,100
passiert nichts, oder?

495
00:26:31,100 --> 00:26:33,100
Wenn ich Table This aktiviere,

496
00:26:33,100 --> 00:26:34,100
das Bookmarklet,

497
00:26:34,100 --> 00:26:36,100
wird da ein Download,

498
00:26:36,100 --> 00:26:38,100
ein Download-Link eigentlich für jede Datei,

499
00:26:38,100 --> 00:26:40,100
für jede Tabelle generiert.

500
00:26:40,100 --> 00:26:42,100
Bei der hier habt ihr gesehen, wie es geht,

501
00:26:42,100 --> 00:26:43,100
einfach Kontrolle, alles auswählen.

502
00:26:43,100 --> 00:26:44,100
Hier unten ist eine,

503
00:26:44,100 --> 00:26:46,100
da funktioniert mein Trick nicht,

504
00:26:46,100 --> 00:26:48,100
weil da hat es verschachtelte Tabellen.

505
00:26:48,100 --> 00:26:50,100
Hier zum Beispiel ist eine verschachtelte Tabelle

506
00:26:50,100 --> 00:26:51,100
in der Tabelle drin

507
00:26:51,100 --> 00:26:53,100
und das geht dann mit dem anderen Trick nicht.

508
00:26:53,100 --> 00:26:55,100
Darum macht es ein bisschen Sinn,

509
00:26:55,100 --> 00:26:56,100
dieses Bookmarklet.

510
00:26:56,100 --> 00:26:57,100
Da kann ich jetzt,

511
00:26:57,100 --> 00:26:58,100
wenn ich diesen Link hier nehme,

512
00:26:58,100 --> 00:27:00,100
den ersten und nicht den kleinen hier,

513
00:27:00,100 --> 00:27:03,100
kann ich die ganze Tabelle inklusive dieser Tabellen,

514
00:27:03,100 --> 00:27:05,100
die da noch verschachtelt sind, bekommen.

515
00:27:06,100 --> 00:27:10,100
Also ja, das ist einfach nur so,

516
00:27:10,100 --> 00:27:12,100
für den Fall, dass ihr da öfter Tabellen

517
00:27:12,100 --> 00:27:14,100
von irgendwo her sichern wollt.

518
00:27:14,100 --> 00:27:16,100
Dann hat man auch das Gleiche wieder,

519
00:27:16,100 --> 00:27:18,100
in dem Fall jetzt gerade ohne die Formatierung.

520
00:27:18,100 --> 00:27:20,100
Ich hätte auch ohne Formatierung vorher einfügen können,

521
00:27:20,100 --> 00:27:21,100
natürlich.

522
00:27:21,100 --> 00:27:26,100
Gut, das war die Tabelle.

523
00:27:26,100 --> 00:27:30,100
Dann, ähm,

524
00:27:30,100 --> 00:27:32,100
muss ich manchmal so Einsatzpläne,

525
00:27:32,100 --> 00:27:34,100
die als PDF vorliegen,

526
00:27:34,100 --> 00:27:35,100
in meine,

527
00:27:35,100 --> 00:27:37,100
in mein Adressbuch übertragen,

528
00:27:37,100 --> 00:27:38,100
äh, nicht Adressbuch,

529
00:27:38,100 --> 00:27:39,100
in meinen Kalender.

530
00:27:39,100 --> 00:27:41,100
Und das ist am PDF.

531
00:27:41,100 --> 00:27:44,100
Das kann ich nicht einfach in den Kalender importieren.

532
00:27:44,100 --> 00:27:45,100
Und darum habe ich mir überlegt,

533
00:27:45,100 --> 00:27:48,100
ja, vielleicht kann ich ja die Daten rauskopieren

534
00:27:48,100 --> 00:27:51,100
und das geht tatsächlich.

535
00:27:51,100 --> 00:27:55,100
Das ist da der ICAL für Einsatzplan.

536
00:27:55,100 --> 00:27:57,100
Und die Daten sehen so aus.

537
00:27:57,100 --> 00:27:59,100
TV ist ein Eintrag,

538
00:27:59,100 --> 00:28:00,100
sind immer zwei Buchstaben,

539
00:28:00,100 --> 00:28:01,100
sind ein Eintrag.

540
00:28:01,100 --> 00:28:03,100
TV heisst Tagesverantwortung,

541
00:28:03,100 --> 00:28:05,100
ist so wie so ein Einsatzplan.

542
00:28:05,100 --> 00:28:07,100
Weiter hinten gibt es noch Spätdienst

543
00:28:07,100 --> 00:28:09,100
und Ferien und frei

544
00:28:09,100 --> 00:28:11,100
und zwei Punkte sind einfach,

545
00:28:11,100 --> 00:28:13,100
wenn nichts da drin steht.

546
00:28:13,100 --> 00:28:15,100
Und das kann man zum Glück einfach so rauskopieren

547
00:28:15,100 --> 00:28:16,100
aus dem PDF.

548
00:28:16,100 --> 00:28:17,100
Ich zeige das jetzt nicht,

549
00:28:17,100 --> 00:28:20,100
weil da halt auch Namen von Leuten draufstehen und so.

550
00:28:20,100 --> 00:28:23,100
Und vorne muss ich dann noch ergänzen,

551
00:28:23,100 --> 00:28:24,100
für welchen Monat im Jahr das ist.

552
00:28:24,100 --> 00:28:26,100
Ich habe es im März geschrieben, das Skript.

553
00:28:26,100 --> 00:28:28,100
Darum steht da jetzt halt März drin.

554
00:28:28,100 --> 00:28:32,100
Der dritte Monat sozusagen im Jahr 2025.

555
00:28:32,100 --> 00:28:33,100
Wenn ich jetzt OK klicke,

556
00:28:33,100 --> 00:28:34,100
passiert wieder das Gleiche.

557
00:28:34,100 --> 00:28:36,100
Ich bekomme einen Download.

558
00:28:36,100 --> 00:28:41,100
Direkt jetzt als ICAL.

559
00:28:41,100 --> 00:28:44,100
Und das könnte ich jetzt mit dem Kalender,

560
00:28:44,100 --> 00:28:45,100
da sieht man es hier unten,

561
00:28:45,100 --> 00:28:48,100
sind jetzt die einzelnen Termine.

562
00:28:48,100 --> 00:28:50,100
Und weil ich da im Skript noch hinterlegt habe,

563
00:28:50,100 --> 00:28:58,100
welche Schicht in welcher Zeit drinnen liegt,

564
00:28:58,100 --> 00:29:01,100
macht er auch gerade dann das Zeitfenster richtig.

565
00:29:01,100 --> 00:29:03,100
Das ist aber, weil ich die Logik

566
00:29:03,100 --> 00:29:04,100
in Bookmarklet drin habe,

567
00:29:04,100 --> 00:29:06,100
ist nicht aus den Daten direkt ersichtlich.

568
00:29:06,100 --> 00:29:08,100
Also das könnte ich jetzt importieren,

569
00:29:08,100 --> 00:29:11,100
dann sind die in meinem Kalender drinnen.

570
00:29:11,100 --> 00:29:16,100
Das hat mich einen Tag, glaube ich, gebraucht.

571
00:29:16,100 --> 00:29:17,100
Wahrscheinlich habe ich bis jetzt

572
00:29:17,100 --> 00:29:19,100
noch keine Sekunde Zeit gespart.

573
00:29:19,100 --> 00:29:22,100
Aber wie es so ist,

574
00:29:22,100 --> 00:29:23,100
es macht mehr Spass,

575
00:29:23,100 --> 00:29:25,100
das Skript zu schreiben,

576
00:29:25,100 --> 00:29:27,100
als die Terminkalendereinträge zu machen.

577
00:29:27,100 --> 00:29:30,100
Es ist der gleiche Trick,

578
00:29:30,100 --> 00:29:31,100
mit dem Blob, New Blob.

579
00:29:31,100 --> 00:29:34,100
Und dann muss man halt das ICAL-Format kennen

580
00:29:34,100 --> 00:29:39,100
und die entsprechend zusammen rendern.

581
00:29:39,100 --> 00:29:42,100
Das wollte ich jetzt gar nicht hier zeigen.

582
00:29:42,100 --> 00:29:44,100
Also, dann habe ich gedacht,

583
00:29:44,100 --> 00:29:46,100
es ist Zeit für ein kleines Zwischenspiel,

584
00:29:46,100 --> 00:29:48,100
ein Interlude.

585
00:29:48,100 --> 00:29:49,100
Da gibt es jetzt ein kurzes Spiel,

586
00:29:49,100 --> 00:29:51,100
wo ich mich blamieren kann.

587
00:29:51,100 --> 00:29:54,100
Da muss ich einfach die Asteroiden ausweichen

588
00:29:54,100 --> 00:29:57,100
und es werden immer mehr und immer schneller.

589
00:29:57,100 --> 00:29:59,100
Es sind sicher alle besser,

590
00:29:59,100 --> 00:30:00,100
als ich geübt habe.

591
00:30:00,100 --> 00:30:02,100
Da habe ich manchmal so 6-700 geschafft.

592
00:30:02,100 --> 00:30:04,100
Aber ich könnte es ja nochmal probieren.

593
00:30:04,100 --> 00:30:07,100
Es ist streng genommen kein Bookmarklet.

594
00:30:07,100 --> 00:30:10,100
Es ist ja direkt in der Datei da drin.

595
00:30:10,100 --> 00:30:12,100
Eben, es wird dann immer schwieriger.

596
00:30:12,100 --> 00:30:14,100
Ich bin nicht zufrieden.

597
00:30:14,100 --> 00:30:15,100
Ich wollte nur,

598
00:30:15,100 --> 00:30:17,100
dass wir uns zwischendurch lockern können,

599
00:30:17,100 --> 00:30:19,100
mich selber ein bisschen ablenken.

600
00:30:19,100 --> 00:30:20,100
Ich habe auch gelernt,

601
00:30:20,100 --> 00:30:21,100
wenn ich summe oder singe,

602
00:30:21,100 --> 00:30:22,100
das lasse ich jetzt,

603
00:30:22,100 --> 00:30:25,100
kann man auch Stress reduzieren und so.

604
00:30:25,100 --> 00:30:28,100
Aber ja, das war jetzt nur so als kleiner Gag gedacht,

605
00:30:28,100 --> 00:30:29,100
zwischendurch ein kleines Spiel einzubauen.

606
00:30:29,100 --> 00:30:31,100
Weil es eine Webseite ist,

607
00:30:31,100 --> 00:30:32,100
kann man alles da drin machen,

608
00:30:32,100 --> 00:30:33,100
was man möchte.

609
00:30:33,100 --> 00:30:37,100
So, und jetzt ist wieder ein roter Titel.

610
00:30:37,100 --> 00:30:40,100
Da sind wieder die Sith an der Macht

611
00:30:40,100 --> 00:30:42,100
und wollen was machen.

612
00:30:42,100 --> 00:30:46,100
Und wir Rebellen müssen uns im Autorim betätigen

613
00:30:46,100 --> 00:30:49,100
und da Experimente und Versuche starten,

614
00:30:49,100 --> 00:30:51,100
wie wir uns besser wehren können.

615
00:30:51,100 --> 00:30:52,100
Zum Beispiel,

616
00:30:52,100 --> 00:30:53,100
wie wir die Kraft,

617
00:30:53,100 --> 00:30:55,100
die Macht besser nutzen können.

618
00:30:55,100 --> 00:30:57,100
Und das habt ihr jetzt schon ein paar Mal gesehen.

619
00:30:57,100 --> 00:30:58,100
Das ist mein Vollbild.

620
00:30:58,100 --> 00:31:01,100
Mein Vollbild Bookmarklet.

621
00:31:01,100 --> 00:31:03,100
Das habe ich für diese Seite so gemacht,

622
00:31:03,100 --> 00:31:04,100
dass automatisch immer,

623
00:31:04,100 --> 00:31:06,100
dass der Editor gesumt wird.

624
00:31:06,100 --> 00:31:08,100
Das habe ich einfach als Fall eingebaut.

625
00:31:08,100 --> 00:31:10,100
Aber wenn ich es auf einer anderen Webseite,

626
00:31:10,100 --> 00:31:12,100
zum Beispiel hier starte,

627
00:31:12,100 --> 00:31:14,100
dann kann ich,

628
00:31:14,100 --> 00:31:16,100
wenn ich mit der Maus darüber fahre,

629
00:31:16,100 --> 00:31:17,100
das Element aussuchen,

630
00:31:17,100 --> 00:31:19,100
welches ich zoomen möchte.

631
00:31:19,100 --> 00:31:22,100
Zum Beispiel jetzt diese drei Punkte hier.

632
00:31:22,100 --> 00:31:25,100
Kann ich es auch einmal zoomen.

633
00:31:25,100 --> 00:31:27,100
Das geht lustigerweise.

634
00:31:28,100 --> 00:31:30,100
Dann kann ich hier rein.

635
00:31:30,100 --> 00:31:32,100
Ui, das habe ich gar nicht gemacht.

636
00:31:32,100 --> 00:31:33,100
Okay.

637
00:31:33,100 --> 00:31:34,100
Das war noch von,

638
00:31:34,100 --> 00:31:36,100
als ich es getestet habe.

639
00:31:36,100 --> 00:31:37,100
Genau.

640
00:31:37,100 --> 00:31:39,100
Und da habe ich auch einen Color Picker.

641
00:31:39,100 --> 00:31:41,100
Da ist die falsche Farbe dahinter.

642
00:31:41,100 --> 00:31:43,100
Da kann ich einfach eine andere Farbe wählen,

643
00:31:43,100 --> 00:31:45,100
die mir dann gerade passt.

644
00:31:45,100 --> 00:31:47,100
Mit Esc gehe ich wieder raus.

645
00:31:47,100 --> 00:31:49,100
Es ist auch erstaunlich einfach.

646
00:31:55,100 --> 00:31:57,100
Noch einmal Reload vielleicht.

647
00:31:57,100 --> 00:31:59,100
Vorhin war ein bisschen was komisch.

648
00:31:59,100 --> 00:32:01,100
Jetzt hat der,

649
00:32:01,100 --> 00:32:03,100
oh, der hat Leerschläge drin.

650
00:32:03,100 --> 00:32:06,100
Dann geht dieser Trick nicht.

651
00:32:06,100 --> 00:32:08,100
Noch einmal probieren.

652
00:32:08,100 --> 00:32:10,100
Vielleicht habe ich etwas falsch gemacht.

653
00:32:11,100 --> 00:32:13,100
Nein, das sind Leerschläge.

654
00:32:13,100 --> 00:32:14,100
Ah, shit.

655
00:32:14,100 --> 00:32:16,100
Ah, da habe ich den Decoder.

656
00:32:16,100 --> 00:32:18,100
Der sollte da gehen.

657
00:32:24,100 --> 00:32:25,100
Okay, jetzt hoffentlich.

658
00:32:25,100 --> 00:32:26,100
Nicht Downloaden.

659
00:32:26,100 --> 00:32:27,100
Gut.

660
00:32:27,100 --> 00:32:28,100
Das ist immer, wenn man,

661
00:32:28,100 --> 00:32:29,100
jetzt ist gut.

662
00:32:29,100 --> 00:32:30,100
Okay.

663
00:32:30,100 --> 00:32:32,100
Da habe ich einfach jetzt mit dem,

664
00:32:32,100 --> 00:32:33,100
das ist auch ein Bookmarklet,

665
00:32:33,100 --> 00:32:35,100
das macht einfach die URL-Coding raus.

666
00:32:35,100 --> 00:32:36,100
Und dann kann ich so Bookmarklets,

667
00:32:36,100 --> 00:32:38,100
die halt doch irgendwie eine Coding drin haben,

668
00:32:38,100 --> 00:32:40,100
wiederholen.

669
00:32:40,100 --> 00:32:42,100
Und da gehe ich jetzt nicht alles durch,

670
00:32:42,100 --> 00:32:43,100
was ich,

671
00:32:43,100 --> 00:32:44,100
der Hauptpunkt ist ja der,

672
00:32:44,100 --> 00:32:46,100
wie man diesen Zoom machen kann.

673
00:32:46,100 --> 00:32:47,100
Muss mal schauen, ob ich den finde.

674
00:32:47,100 --> 00:32:51,100
Der muss da irgendwo,

675
00:32:51,100 --> 00:32:53,100
irgendwo müsste er sein.

676
00:32:53,100 --> 00:32:54,100
Da.

677
00:32:54,100 --> 00:32:56,100
Man muss also nichts anderes machen,

678
00:32:56,100 --> 00:32:58,100
als Request Fullscreen,

679
00:32:58,100 --> 00:33:00,100
heisst diese Funktion.

680
00:33:00,100 --> 00:33:02,100
Da kann man einfach sagen,

681
00:33:02,100 --> 00:33:03,100
welches Element das sein soll.

682
00:33:03,100 --> 00:33:04,100
Das heisst,

683
00:33:04,100 --> 00:33:06,100
der grösste Teil vom Skript ist eigentlich die Auswahl,

684
00:33:06,100 --> 00:33:09,100
welches Element ich haben möchte.

685
00:33:09,100 --> 00:33:12,100
Und der Rest,

686
00:33:12,100 --> 00:33:13,100
das wirklich Fullscreen zu machen,

687
00:33:13,100 --> 00:33:15,100
ist dann nur noch dieser Aufruf,

688
00:33:15,100 --> 00:33:16,100
Request Fullscreen.

689
00:33:16,100 --> 00:33:18,100
Und dann macht er Pum und ist gross.

690
00:33:18,100 --> 00:33:20,100
Und irgendwo ist dann noch der Color Pick,

691
00:33:20,100 --> 00:33:21,100
aber den vergabe ich mehr oder weniger.

692
00:33:21,100 --> 00:33:23,100
Da ist er relativ einfach.

693
00:33:23,100 --> 00:33:24,100
Ist einfach eine,

694
00:33:24,100 --> 00:33:25,100
eine,

695
00:33:25,100 --> 00:33:27,100
ist eigentlich ein HTML Element,

696
00:33:27,100 --> 00:33:28,100
der Color Picker.

697
00:33:28,100 --> 00:33:32,100
Das ist ein normales HTML Element.

698
00:33:32,100 --> 00:33:34,100
Genau, das war,

699
00:33:34,100 --> 00:33:35,100
das war das,

700
00:33:35,100 --> 00:33:36,100
also Fullscreen.

701
00:33:36,100 --> 00:33:37,100
Und da,

702
00:33:37,100 --> 00:33:38,100
wie gesagt,

703
00:33:38,100 --> 00:33:39,100
da ist wieder ein Bot versteckt,

704
00:33:39,100 --> 00:33:41,100
nämlich der R2D2,

705
00:33:41,100 --> 00:33:42,100
R2D2,

706
00:33:42,100 --> 00:33:43,100
man sieht es vielleicht hier,

707
00:33:43,100 --> 00:33:44,100
ganz klein.

708
00:33:44,100 --> 00:33:45,100
Und da sitzt einer,

709
00:33:45,100 --> 00:33:46,100
den,

710
00:33:46,100 --> 00:33:48,100
da habe ich jetzt leider nur eine Kommandozeile,

711
00:33:48,100 --> 00:33:49,100
als,

712
00:33:49,100 --> 00:33:51,100
als Kommunikationsmöglichkeit mit dem.

713
00:33:51,100 --> 00:33:54,100
Und da kann ich leider auch nicht direkt hinein tippen,

714
00:33:54,100 --> 00:33:57,100
weil irgendwie meine Tastatur gerade kaputt ist.

715
00:33:57,100 --> 00:34:00,100
Behaupte ich jetzt einfach mal.

716
00:34:00,100 --> 00:34:03,100
Darum muss ich jetzt das hier kopieren.

717
00:34:03,100 --> 00:34:04,100
Ich kann es mit Rechtsklick,

718
00:34:04,100 --> 00:34:06,100
dann wird es glaubwürdiger,

719
00:34:06,100 --> 00:34:07,100
wenn ich es mit CTRL-C mache,

720
00:34:07,100 --> 00:34:09,100
glaubt jemand sogar nicht.

721
00:34:09,100 --> 00:34:11,100
Also Rechtsklick kopieren.

722
00:34:11,100 --> 00:34:12,100
Und jetzt habe ich,

723
00:34:12,100 --> 00:34:14,100
muss ich das Feld auswählen,

724
00:34:14,100 --> 00:34:17,100
wo ich rein tippen möchte.

725
00:34:17,100 --> 00:34:19,100
Und wo habe ich jetzt das Tippen?

726
00:34:19,100 --> 00:34:22,100
Tippen, wahrscheinlich unter T, oder?

727
00:34:22,100 --> 00:34:23,100
Tippen, genau.

728
00:34:23,100 --> 00:34:24,100
In Eingabefeld tippen,

729
00:34:24,100 --> 00:34:25,100
da füge ich jetzt das ein,

730
00:34:25,100 --> 00:34:26,100
mit ENTER.

731
00:34:26,100 --> 00:34:27,100
Und jetzt tippt er mir da.

732
00:34:27,100 --> 00:34:28,100
Genau.

733
00:34:28,100 --> 00:34:29,100
Und der Ton,

734
00:34:29,100 --> 00:34:30,100
der kommt,

735
00:34:30,100 --> 00:34:31,100
ich kann es nochmal machen.

736
00:34:31,100 --> 00:34:32,100
Ähm.

737
00:34:32,100 --> 00:34:33,100
Das ist der andere Ton jedes Mal, oder?

738
00:34:33,100 --> 00:34:34,100
Das ist noch lustig,

739
00:34:34,100 --> 00:34:35,100
weil,

740
00:34:35,100 --> 00:34:36,100
ich habe hier erlebt,

741
00:34:36,100 --> 00:34:37,100
wenn ich die T-Taste drücke,

742
00:34:37,100 --> 00:34:38,100
dann wird jetzt das Farbschema

743
00:34:38,100 --> 00:34:39,100
in der Tastatur,

744
00:34:39,100 --> 00:34:40,100
in der Tastatur,

745
00:34:40,100 --> 00:34:41,100
in der Tastatur,

746
00:34:41,100 --> 00:34:42,100
in der Tastatur,

747
00:34:42,100 --> 00:34:43,100
in der Tastatur,

748
00:34:43,100 --> 00:34:44,100
in der Tastatur,

749
00:34:44,100 --> 00:34:45,100
in der Tastatur,

750
00:34:45,100 --> 00:34:46,100
in der Tastatur,

751
00:34:46,100 --> 00:34:47,100
in der Tastatur,

752
00:34:47,100 --> 00:34:48,100
in der Tastatur,

753
00:34:48,100 --> 00:34:49,100
in der Tastatur,

754
00:34:49,100 --> 00:34:50,100
in der Tastatur,

755
00:34:50,100 --> 00:34:56,100
das Farbschema invertiert.

756
00:34:56,100 --> 00:34:57,100
Invertiert kommt,

757
00:34:57,100 --> 00:34:58,100
Wenn es rot ist,

758
00:34:58,100 --> 00:34:59,100
kommt der Darth Vader

759
00:34:59,100 --> 00:35:00,100
mit seiner,

760
00:35:00,100 --> 00:35:01,100
mit seiner Atmung

761
00:35:01,100 --> 00:35:02,100
und wenn es gelb wird,

762
00:35:02,100 --> 00:35:03,100
ist sozusagen die gute Seite,

763
00:35:03,100 --> 00:35:04,100
die er macht,

764
00:35:04,100 --> 00:35:05,100
dann kommt das,

765
00:35:05,100 --> 00:35:11,100
da ist der Lichtsäpel da.

766
00:35:11,100 --> 00:35:13,100
Invertiert?

767
00:35:13,100 --> 00:35:14,040
Ich weiss gar nicht mehr

768
00:35:14,040 --> 00:35:15,100
ja gut, egal.

769
00:35:15,100 --> 00:35:16,100
Also ihr habt verstanden,

770
00:35:16,100 --> 00:35:17,100
worum es geht,

771
00:35:17,100 --> 00:35:18,100
vielleicht habe ich auch einen Buggy

772
00:35:18,100 --> 00:35:19,100
da drinnen,

773
00:35:19,100 --> 00:35:20,100
kann auch sein.

774
00:35:20,100 --> 00:35:22,500
Ist erst so fünf Minuten vor fertig geworden.

775
00:35:23,320 --> 00:35:23,780
Wieso immer.

776
00:35:25,180 --> 00:35:30,940
Genau, und dann diese Hologrons, vielleicht kennt ihr die nicht, die gibt es da im Star Wars Universum.

777
00:35:31,280 --> 00:35:37,560
Das sind so Gegenstände, da kann man, wenn man ein Machtwesen ist, dann nennt sich das glaube ich,

778
00:35:38,000 --> 00:35:41,160
kann man das aktivieren und dann wird ein Hologramm abgespielt.

779
00:35:41,780 --> 00:35:47,140
Und das ist natürlich gemein, wenn das nur die Machtwesen machen können.

780
00:35:47,140 --> 00:35:50,380
Darum habe ich gedacht, ja, wie könnten wir normalen Wesen das auch tun.

781
00:35:51,140 --> 00:35:55,060
Und da haben wir zum Glück die Webcam, die wahrscheinlich ausgeschaltet ist.

782
00:35:56,700 --> 00:36:00,700
Und da ist jetzt dieses Selfie-Webcam-Bookmarklet, kommt da zum Tragen.

783
00:36:01,260 --> 00:36:02,520
Muss da mal erlauben.

784
00:36:02,600 --> 00:36:04,800
Habe ich da eine Nachtsicht? Bin ich mir sicher.

785
00:36:05,020 --> 00:36:06,560
IR, mal schauen, wie das ausschaut.

786
00:36:07,420 --> 00:36:08,680
Habe ich jetzt gar nicht getestet.

787
00:36:09,220 --> 00:36:10,320
Ah, sieht genau gleich aus.

788
00:36:10,680 --> 00:36:12,760
Und da bin ich jetzt im Selfie-Modus.

789
00:36:12,760 --> 00:36:16,260
Ich könnte jetzt, wie sage ich, am einfachsten einfach ein Stammbild aufnehmen.

790
00:36:16,260 --> 00:36:20,540
Aber damit es noch ein bisschen, kann man ja auch am Foto schiessen,

791
00:36:20,640 --> 00:36:24,040
das ist dann einfach unten, wird das unten ergänzt.

792
00:36:24,460 --> 00:36:25,700
Immer der aktuelle Stand.

793
00:36:27,220 --> 00:36:28,580
Also ja, der letzte Stand.

794
00:36:29,340 --> 00:36:32,020
Und jetzt ist nicht wahnsinnig schön gedesignt,

795
00:36:32,120 --> 00:36:36,880
das ist mehr zum zeigen, dass man da tatsächlich die Webcam im Browser einfach direkt abrufen kann.

796
00:36:37,360 --> 00:36:38,580
Ich schalte das jetzt wieder aus.

797
00:36:39,280 --> 00:36:40,460
Und wieder weg hier.

798
00:36:40,800 --> 00:36:42,380
So, wie geht das jetzt?

799
00:36:42,380 --> 00:36:43,840
Da denkt ihr sicher, wow.

800
00:36:45,100 --> 00:36:46,240
Wie geht das?

801
00:36:46,260 --> 00:36:49,700
Das habe ich ja nie gevermutet, dass das möglich ist.

802
00:36:50,440 --> 00:36:54,000
Und dann schauen wir mal, ob das hier, ist da wieder so eins?

803
00:36:54,160 --> 00:36:54,280
Nein.

804
00:36:57,840 --> 00:37:00,080
Fullscreen, wo haben wir es?

805
00:37:04,160 --> 00:37:04,500
Da.

806
00:37:09,300 --> 00:37:10,940
Das ist hier unten irgendwo.

807
00:37:11,500 --> 00:37:13,480
Get User Media, das hier ist es.

808
00:37:14,100 --> 00:37:16,240
Navigator, Media Devices, Get User Media.

809
00:37:16,260 --> 00:37:22,120
Und dann einfach ein kleines JSON-Skript, wo man halt sagt, das Video soll es sein.

810
00:37:23,680 --> 00:37:28,040
Und dann bekommt man mehr oder weniger direkt einen Stream, den man dann verwenden kann.

811
00:37:29,660 --> 00:37:35,260
Also auch hier wieder, ist irgendwie, ja, das wird dann direkt abgespielt.

812
00:37:36,500 --> 00:37:42,440
Also es ist in dem Sinn auch wieder, wenn man es weiß, ist nicht so wahnsinnig viel, was es da braucht.

813
00:37:43,940 --> 00:37:45,880
Ich habe es ja nicht gewusst, ich habe es nachgeschaut.

814
00:37:46,260 --> 00:37:48,440
Und manchmal frage ich den Chatbot, der weiß da sehr viel.

815
00:37:51,620 --> 00:37:51,940
Gut.

816
00:37:53,680 --> 00:37:56,000
Dann sind wir schon bei zehn.

817
00:37:56,140 --> 00:37:58,780
Ich glaube, dann sollte es mit der Zeit gut reichen.

818
00:38:00,480 --> 00:38:07,060
Die haben ja auch so mentale Kräfte, diese Jedi's.

819
00:38:07,160 --> 00:38:08,460
Und einen habe ich euch schon gezeigt.

820
00:38:08,880 --> 00:38:12,640
Wir haben die Leute dann, die die falschen Dinge sehen.

821
00:38:13,020 --> 00:38:15,320
Das sind mehr oder weniger auf dieser Dark Mode, habe ich gedacht.

822
00:38:15,320 --> 00:38:18,200
Eigentlich macht er nichts anderes, als die Farben umzudrehen.

823
00:38:19,060 --> 00:38:25,380
Aber doch kann ich damit euer Gehirn manipulieren, weil es wandert, anstatt schwarz, wie es eigentlich sein sollte.

824
00:38:26,440 --> 00:38:30,140
Und das ist auch wieder ein super einfaches Teil.

825
00:38:31,080 --> 00:38:43,800
Und da bin ich relativ stolz darauf, weil ich habe noch nie irgendwo so einen kurzen Dark Mode irgendwo gesehen.

826
00:38:43,800 --> 00:38:45,240
Der macht nichts anderes.

827
00:38:45,320 --> 00:38:46,700
Das ist einfach alles zu invertieren.

828
00:38:46,780 --> 00:38:49,460
Die ganze Webseite, jedes Element mit Stern.

829
00:38:50,080 --> 00:38:54,600
Wählt man alle Elemente auf der ganzen Webseite, auch die Bilder, die Emojis, alles.

830
00:38:55,200 --> 00:38:57,620
Und die werden dann einfach von der Farbe her gedreht.

831
00:38:58,000 --> 00:39:01,160
Und das ist dann einfach der Dark und Light Mode.

832
00:39:02,040 --> 00:39:06,060
Und das könnten Sie sich jetzt vorstellen, wie das mit mentalen Kräften bei euch im Kopf passiert.

833
00:39:06,600 --> 00:39:08,080
Ein bisschen von der Idee her.

834
00:39:10,160 --> 00:39:15,080
Dann möchte man vielleicht manchmal, fühlt man sich vielleicht gestört vom Design.

835
00:39:15,320 --> 00:39:19,860
Da in der Webseite, wo man möchte am liebsten nur die ganzen Styles weghaben.

836
00:39:20,240 --> 00:39:21,480
Da gibt es auch Möglichkeiten.

837
00:39:21,600 --> 00:39:26,700
Man kann nämlich einfach alle CSS-Dateien und alle Styles entfernen.

838
00:39:27,020 --> 00:39:27,840
Ich mache das mal.

839
00:39:28,300 --> 00:39:29,960
Dann sieht es nachher nur noch so aus.

840
00:39:31,320 --> 00:39:33,460
Also nochmal Reload, sowas vorher.

841
00:39:33,740 --> 00:39:35,100
Bisschen grösser machen vielleicht.

842
00:39:38,140 --> 00:39:41,720
Ja genau, jetzt kann man sehen, das ist eigentlich wie die Webseite hier aufgebaut ist.

843
00:39:41,720 --> 00:39:45,120
Man hat zwei Titel, man hat eine Aufzählungsliste und darunter noch ein Absatz.

844
00:39:45,320 --> 00:39:49,980
Und dann halt noch den Vorwärts- und Zurückknopf, mehr oder weniger.

845
00:39:49,980 --> 00:39:52,560
Das ist so die Geschichte.

846
00:39:52,560 --> 00:39:57,320
Und da habe ich jetzt nochmal ein Skript, das ich gerade zeigen möchte.

847
00:39:57,320 --> 00:39:59,560
Nämlich das Geheimtexte manipulieren.

848
00:39:59,560 --> 00:40:03,560
Also nichts anderes als die Webseite, den Text zu ändern.

849
00:40:03,560 --> 00:40:08,940
Und da habe ich auch ein Skript, da kann ich einfach ein- und ausschalten, ob ich die Webseite editieren möchte.

850
00:40:08,940 --> 00:40:11,560
Der heisst Edit Page.

851
00:40:11,560 --> 00:40:13,560
Und da habe ich jetzt so ein Schlüsselwort hinterlegt.

852
00:40:13,560 --> 00:40:15,300
Da kann ich jetzt Ctrl-L-E für Edit.

853
00:40:15,300 --> 00:40:17,300
Weil den brauche ich so oft.

854
00:40:17,300 --> 00:40:19,300
Enter.

855
00:40:19,300 --> 00:40:21,300
Und jetzt mache ich mal noch Vollbild. Ich hoffe da geht es auch.

856
00:40:21,300 --> 00:40:23,300
Ups, da muss ich wieder auswählen was.

857
00:40:23,300 --> 00:40:25,300
Nehmen wir mal das hier.

858
00:40:25,300 --> 00:40:29,300
Jetzt ist eben so ein Fall, wo der schwarze Hintergrund nicht hilft.

859
00:40:29,300 --> 00:40:34,300
So, und jetzt sollte ich da direkt hineinschreiben können.

860
00:40:34,300 --> 00:40:36,300
Eigentlich, ja. Wieso geht es jetzt nicht?

861
00:40:36,300 --> 00:40:40,300
Ah, immer Demos, immer Demos.

862
00:40:40,300 --> 00:40:44,300
Mache ich es halt direkt hier. Hoffentlich geht es da.

863
00:40:45,300 --> 00:40:47,300
Ah, jetzt okay.

864
00:40:47,300 --> 00:40:51,300
Ups, ich habe S gedrückt. Das ist das Intro.

865
00:40:51,300 --> 00:40:56,300
Das ist ja Tastatursteuerung.

866
00:40:56,300 --> 00:41:01,300
Genau, also da kann ich jetzt einfach hineinschreiben, aber kann S drücken.

867
00:41:01,300 --> 00:41:03,300
So, und dann kann ich da...

868
00:41:03,300 --> 00:41:05,300
T.

869
00:41:05,300 --> 00:41:09,300
Genau, wieder Edit Page ausschalten.

870
00:41:09,300 --> 00:41:12,300
Und wenn ich jetzt wieder versuche, passiert wieder nichts mehr.

871
00:41:12,300 --> 00:41:13,300
Also das kann ich wie einfach ein- und ausschalten.

872
00:41:13,300 --> 00:41:19,300
Das brauche ich vor allem dann, wenn ich zum Beispiel von Wikipedia mir zwei, drei Sätze kopieren möchte

873
00:41:19,300 --> 00:41:24,300
und dazwischen gibt es überall noch diese langen Klammern und Fußnoten und Nebensätze

874
00:41:24,300 --> 00:41:26,300
und die vielleicht alle gar nicht brauche.

875
00:41:26,300 --> 00:41:33,300
Dann kann ich schnell Edit ein, das anpassen, wie ich es brauche, rauskopieren und fertig, ja.

876
00:41:33,300 --> 00:41:37,300
Also ausschalten, Edit brauche ich eigentlich gar nicht, weil meistens, wenn die Seite ja neu geladen wird,

877
00:41:37,300 --> 00:41:39,300
ist es ja wieder original oder so.

878
00:41:39,300 --> 00:41:42,300
Aber ich habe einfach beides drin, dass man ein- und ausschalten kann.

879
00:41:43,300 --> 00:41:46,300
Ich mache wieder Neuladen, dass es wieder da ist.

880
00:41:46,300 --> 00:41:52,300
Ah, wenn ihr das sehen wollt, das ist noch einfacher als das hier.

881
00:41:52,300 --> 00:41:54,300
Ah, habe ich das falsche noch?

882
00:41:54,300 --> 00:42:01,300
Bearbeiten natürlich zuerst.

883
00:42:01,300 --> 00:42:04,300
Das ist einfach dieser Befehl hier.

884
00:42:04,300 --> 00:42:08,300
Document Body Content Editable.

885
00:42:08,300 --> 00:42:10,300
Da muss man einfach gleich True setzen.

886
00:42:10,300 --> 00:42:12,300
Warum man jetzt diese Zeilenbrüche nicht macht?

887
00:42:12,300 --> 00:42:15,300
Müsst ihr hier ja eigentlich Zeilenbrüche machen, wäre besser.

888
00:42:15,300 --> 00:42:19,300
Ja.

889
00:42:19,300 --> 00:42:21,300
Aber im Prinzip, wir hätten einfach getoggelt, oder?

890
00:42:21,300 --> 00:42:23,300
Mal ist er ein, mal ist er aus.

891
00:42:23,300 --> 00:42:25,300
Das ist das ganze Skript.

892
00:42:25,300 --> 00:42:27,300
Eigentlich eine Zeile, mehr oder weniger.

893
00:42:27,300 --> 00:42:30,300
Ich finde immer wieder erstaunlich, was alles geht im Browser.

894
00:42:30,300 --> 00:42:33,300
Also, wenn man das mal gemacht hat, kann man auch die ganzen Texte löschen

895
00:42:33,300 --> 00:42:35,300
und dann ist der Browser einfach ein Texteditor.

896
00:42:35,300 --> 00:42:37,300
Also, wo man halt einfach Text reinschreibt.

897
00:42:37,300 --> 00:42:41,300
Wenn man Ctrl-S macht und die Datei abspeichert, hat man eine Textdatei.

898
00:42:41,300 --> 00:42:45,300
Eine Textdatei, die man, wenn man sie wieder öffnet, mit dem Browser weiter bearbeiten kann.

899
00:42:45,300 --> 00:42:48,300
Das ist ein fertiger Texteditor in einer Zeile, sozusagen.

900
00:42:48,300 --> 00:42:50,300
Ja.

901
00:42:50,300 --> 00:42:52,300
Eben, die Sachen finde ich immer wieder lustig.

902
00:42:52,300 --> 00:42:59,300
Gut, das war jetzt mit Gedankenkraft und CSS-Kraft die Realität verändern.

903
00:42:59,300 --> 00:43:01,300
Schauen wir mal, was auf dem Programm steht.

904
00:43:01,300 --> 00:43:06,300
Man kann nämlich jetzt, ich habe es schon gesagt, man kann APIs abfragen.

905
00:43:06,300 --> 00:43:10,300
Und was ist so die mächtigste aller APIs, die wir im Moment haben?

906
00:43:10,300 --> 00:43:13,300
Der Chatbot natürlich oder die KI.

907
00:43:13,300 --> 00:43:21,300
Und ich habe bei Google kann man, bei Gemini kann man sich API-Keys for free, lustigerweise.

908
00:43:21,300 --> 00:43:24,300
Ich weiss nicht genau, wo die Limite ist für kleine Anwendungen für zu Hause,

909
00:43:24,300 --> 00:43:27,300
die man nur selber braucht oder für den Verein.

910
00:43:27,300 --> 00:43:31,300
Kein Problem, was man da an gratis API-Zeit bekommt.

911
00:43:31,300 --> 00:43:37,300
Kann ich direkt diesen Chatbot-Abt-Query machen, oder?

912
00:43:37,300 --> 00:43:39,300
Und da habe ich jetzt auch.

913
00:43:40,300 --> 00:43:43,300
So ein Script, also ein Bookmarklet.

914
00:43:43,300 --> 00:43:45,300
Das ist nur ein Demo, ein Demo-Bookmarklet.

915
00:43:45,300 --> 00:43:48,300
Das ist nicht, was ich normalerweise, wenn ich das brauche, mache.

916
00:43:48,300 --> 00:43:51,300
Dann muss ich ja Daten holen, die ich brauche für das Bookmarklet.

917
00:43:51,300 --> 00:43:54,300
Und hier mache ich einfach ein Query, um zu zeigen, dass ich eine Antwort bekomme.

918
00:43:54,300 --> 00:43:59,300
Und um es noch ein bisschen nerdiger zu machen, habe ich, wo habe ich die hingelegt?

919
00:43:59,300 --> 00:44:01,300
Ich habe es vergessen.

920
00:44:01,300 --> 00:44:02,300
Oh je.

921
00:44:02,300 --> 00:44:04,300
Ah, genau hier.

922
00:44:04,300 --> 00:44:09,300
Habe ich gedacht, ich zeige euch mal, man muss nicht immer normalen Text da reinkopieren.

923
00:44:09,300 --> 00:44:14,300
Man kann auch direkt die Query als JSON formatieren.

924
00:44:14,300 --> 00:44:19,300
Das ist dann zum Beispiel praktisch, wenn du in einem Programm drinnen deine Query generierst,

925
00:44:19,300 --> 00:44:25,300
kannst du gerade die als JSON-Objekt generieren, dein Prompt für den Chatbot.

926
00:44:25,300 --> 00:44:28,300
Und da kannst du dann auch alle Regeln vorgeben und so weiter.

927
00:44:28,300 --> 00:44:32,300
Also das ist eigentlich alles nicht nötig für Gemini.

928
00:44:32,300 --> 00:44:35,300
Gemini möchte eigentlich nur wissen am Schluss, was er zurückgeben soll.

929
00:44:35,300 --> 00:44:37,300
Darum ist das einzige Wichtige, der Rest könnte normaler Fließtext sein.

930
00:44:37,300 --> 00:44:38,300
Ja.

931
00:44:38,300 --> 00:44:45,300
Aber eben, ich finde es halt immer noch lustig, dass man sieht, man kann auch so dem Bot irgendeinen JSON-File geben

932
00:44:45,300 --> 00:44:51,300
und der analysiert das und versteht, ah, das ist meine Rolle, das ist meine Aufgabe, obwohl er es gar nicht als JSON brauchen würde.

933
00:44:51,300 --> 00:44:59,300
Aber man ist sehr kompakt dadurch und man erkennt sofort, welche sind die Bestandteile dieses Queries oder dieses Prompts.

934
00:44:59,300 --> 00:45:04,300
Und was ich wirklich möchte am Schluss, ist dieses Output-Schema, also wieder als JSON.

935
00:45:04,300 --> 00:45:06,300
Er soll mir ein JSON zurückgeben.

936
00:45:06,300 --> 00:45:09,300
Er soll sich streng daran halten, diese Vorgabe ans Schema hier.

937
00:45:09,300 --> 00:45:17,300
Er soll nur genannte Informationen aus diesem Text hier oben, ihr seht nicht den ganzen, der geht dann noch weiter nach hinten.

938
00:45:17,300 --> 00:45:22,300
Und am Schluss eben als JSON ohne Erklärung, Kommentare oder Formatierungen zurückgeben.

939
00:45:22,300 --> 00:45:24,300
Das kopiere ich jetzt hier.

940
00:45:24,300 --> 00:45:26,300
Wollte ich gerade alles kopieren, das wäre dumm gewesen.

941
00:45:26,300 --> 00:45:30,300
Das ist mein Notizblock hier, da stehen noch viele Dinge drin.

942
00:45:30,300 --> 00:45:34,300
Und dann klicke ich auf KI-Anfrage mit Google-Suche.

943
00:45:34,300 --> 00:45:35,300
Das heisst, ich habe da eine Anfrage.

944
00:45:35,300 --> 00:45:41,300
Das heisst, ich habe die Google-Suche aktiviert, obwohl ich es in dem Sinn gar nicht brauche jetzt bei dieser Anfrage.

945
00:45:41,300 --> 00:45:45,300
Der würde also auch Daten aus einer Google-Suche noch verwenden, wenn es die braucht.

946
00:45:45,300 --> 00:45:46,300
Aber in dem Fall braucht er sie nicht.

947
00:45:46,300 --> 00:45:48,300
Da füge ich sie jetzt einfach ein.

948
00:45:48,300 --> 00:45:51,300
Das ist ein JSON-File, jetzt halt auf eine Zeile gemacht.

949
00:45:51,300 --> 00:45:54,300
Dann dauert es immer einen Moment.

950
00:45:54,300 --> 00:45:57,300
Und dann bekommt man hier Peng.

951
00:45:57,300 --> 00:46:00,300
Man bekommt einfach ein JSON-File zurück.

952
00:46:00,300 --> 00:46:03,300
Darum sage ich, das ist die allmächtige API.

953
00:46:03,300 --> 00:46:04,300
Die weiss ziemlich alles von dieser Welt.

954
00:46:04,300 --> 00:46:06,300
Ich kann die Google-Suche noch dazuschalten.

955
00:46:06,300 --> 00:46:10,300
Und ich kann ihm sagen, in welchem Format möchte ich das Resultat am Schluss haben.

956
00:46:10,300 --> 00:46:12,300
Es ist nicht gesagt, dass da immer alles stimmt, was zurückkommt.

957
00:46:12,300 --> 00:46:13,300
Klar.

958
00:46:13,300 --> 00:46:18,300
Aber für Spiele, für kleine Experimente oder wo ich die Daten vorgebe.

959
00:46:18,300 --> 00:46:20,300
Fließtext, oder?

960
00:46:20,300 --> 00:46:22,300
Und er soll mir da eine Struktur daraus machen.

961
00:46:22,300 --> 00:46:23,300
Ist super geeignet.

962
00:46:23,300 --> 00:46:29,300
Und zum Beispiel, der Titel ist null, weil im ganzen Text wird der Titel des Berichts, der da analysiert wurde, nicht erwähnt.

963
00:46:29,300 --> 00:46:31,300
Darum kann er keinen Titel zurückgeben.

964
00:46:31,300 --> 00:46:32,300
Also null.

965
00:46:32,300 --> 00:46:35,300
Die andere Sache, der Dr. Meyer, den hat er gefunden.

966
00:46:35,300 --> 00:46:37,300
Veröffentlichungsdatum.

967
00:46:37,300 --> 00:46:39,300
Und welche Länder da betroffen sind.

968
00:46:39,300 --> 00:46:40,300
Deutsch und Schweiz.

969
00:46:40,300 --> 00:46:44,300
Hat er alles sauber extrahiert und nach dem Format zurückgegeben.

970
00:46:44,300 --> 00:46:50,300
Was er trotzdem immer macht, was mich am Anfang ein bisschen aufgeregt hat.

971
00:46:50,300 --> 00:46:53,300
Obwohl ich ihm sage, ohne alles, ohne Formatierungen.

972
00:46:53,300 --> 00:46:55,300
Egal, wie ich dem danke.

973
00:46:55,300 --> 00:46:57,300
Sechs oder fünf?

974
00:46:57,300 --> 00:46:59,300
Fünfzehn.

975
00:46:59,300 --> 00:47:01,300
Das wäre cool.

976
00:47:01,300 --> 00:47:03,300
Mit zwei Anstalten.

977
00:47:03,300 --> 00:47:04,300
Gut.

978
00:47:04,300 --> 00:47:07,300
Aber eben, der macht immer diese Formatierung, Markdown-Formatierung.

979
00:47:07,300 --> 00:47:13,300
Damit da eigentlich eine andere Maschine das direkt wieder als Markdown, als Code formatiert darstellen könnte.

980
00:47:13,300 --> 00:47:17,300
Schickt er trotzdem immer diese JSON-Formatierung mit fürs Markdown.

981
00:47:17,300 --> 00:47:19,300
Am Anfang und am Schluss.

982
00:47:19,300 --> 00:47:21,300
Hat mich ein bisschen aufgeregt.

983
00:47:21,300 --> 00:47:24,300
Und dann, genau.

984
00:47:24,300 --> 00:47:28,300
Wie kann ich jetzt diese JSON-Holo-Crones da sozusagen rausholen?

985
00:47:28,300 --> 00:47:30,300
Es gibt so eine Regex.

986
00:47:30,300 --> 00:47:32,300
Die macht eigentlich nichts anderes.

987
00:47:32,300 --> 00:47:36,300
Einfach vom ersten geschwungenen Klammer bis zur letzten geschwungenen Klammer.

988
00:47:36,300 --> 00:47:38,300
Holt ihr einfach alles raus.

989
00:47:38,300 --> 00:47:42,300
Und wenn da sonst nicht noch irgendwelche Klammern auf der Seite im Antwort sind.

990
00:47:42,300 --> 00:47:45,300
Also die nicht dazu gehören zum JSON.

991
00:47:45,300 --> 00:47:48,300
Sollte das dann direkt nur noch der JSON-String sein.

992
00:47:48,300 --> 00:47:51,300
Also das ist so ein kleiner Trick.

993
00:47:51,300 --> 00:47:54,300
Auch wenn die auch vorne und nachher noch Sätze schreiben würden.

994
00:47:54,300 --> 00:47:58,300
Würde es trotzdem funktionieren, solange ein gültiges JSON da drin ist.

995
00:47:58,300 --> 00:48:03,300
Ja.

996
00:48:03,300 --> 00:48:04,300
Ah.

997
00:48:04,300 --> 00:48:06,300
Den habe ich...

998
00:48:06,300 --> 00:48:08,300
Wollte ich dann hier zeigen?

999
00:48:08,300 --> 00:48:09,300
Das ist der hier wieder.

1000
00:48:09,300 --> 00:48:10,300
Chatbot Companion.

1001
00:48:10,300 --> 00:48:12,300
Dann habe ich da am Anfang was falsches gezeigt.

1002
00:48:12,300 --> 00:48:14,300
Dann hätte ich da was anderes zeigen wollen.

1003
00:48:14,300 --> 00:48:15,300
Den habt ihr jetzt schon gesehen.

1004
00:48:15,300 --> 00:48:16,300
Das wäre der hier.

1005
00:48:16,300 --> 00:48:18,300
Der Chatbot Companion.

1006
00:48:18,300 --> 00:48:20,300
Den habe ich schon gezeigt.

1007
00:48:20,300 --> 00:48:23,300
Dann habe ich das etwas verwechselt am Anfang.

1008
00:48:23,300 --> 00:48:27,300
Wenn die einzelnen Punkte nicht so klar geschrieben sind, wie sonst in den Vorträgen.

1009
00:48:27,300 --> 00:48:30,300
Muss man nicht mehr in Erinnerung haben, was sich das gemeint ist.

1010
00:48:30,300 --> 00:48:33,300
Und da habe ich mich offenbar jetzt selber mal irgendwo überlistet.

1011
00:48:33,300 --> 00:48:36,300
Gut. Gehen wir weiter.

1012
00:48:36,300 --> 00:48:38,300
Jetzt sind wir schon ziemlich am Schluss.

1013
00:48:38,300 --> 00:48:41,300
Wir haben dann noch ungefähr 10 Minuten für Fragen in dem Fall.

1014
00:48:41,300 --> 00:48:44,300
Es gibt ja ein Webformat.

1015
00:48:44,300 --> 00:48:46,300
Den habt ihr schon x-mal gesehen jetzt.

1016
00:48:46,300 --> 00:48:48,300
Das ist diese Seite hier.

1017
00:48:48,300 --> 00:48:49,300
Die finde ich super praktisch.

1018
00:48:49,300 --> 00:48:52,300
Ich mache sie mal ein bisschen kleiner, dass man sie ganz sieht.

1019
00:48:52,300 --> 00:48:53,300
Super praktisch.

1020
00:48:53,300 --> 00:48:54,300
Um irgendwelchen Code.

1021
00:48:54,300 --> 00:48:56,300
Auch HTML, XML, CSS.

1022
00:48:56,300 --> 00:48:57,300
Alles mögliche.

1023
00:48:57,300 --> 00:49:01,300
Wenn ich so unformatierten Code bekomme, packe ich den mal da rein.

1024
00:49:01,300 --> 00:49:03,300
Egal an welchem Computer, dass ich gerade bin.

1025
00:49:03,300 --> 00:49:06,300
Und bekomme dann eine gute, übersichtliche Darstellung.

1026
00:49:06,300 --> 00:49:08,300
Er findet auch Fehler lustigerweise.

1027
00:49:08,300 --> 00:49:12,300
JavaScript zum Beispiel zeigt ja gerade, wo ist der Fehler auf welcher Zeile.

1028
00:49:12,300 --> 00:49:14,300
Dann ist man auch schneller, wenn mal was nicht funktioniert.

1029
00:49:14,300 --> 00:49:17,300
Wenn man es jetzt nicht richtig im Browser debuggt.

1030
00:49:17,300 --> 00:49:18,300
Genau so.

1031
00:49:18,300 --> 00:49:19,300
Das ist etwas Cooles.

1032
00:49:19,300 --> 00:49:20,300
Den mag ich noch gern.

1033
00:49:20,300 --> 00:49:23,300
Und sie behaupten, dass es alles im Browser drin ist.

1034
00:49:23,300 --> 00:49:25,300
Ich habe es nie untersucht, ob es stimmt.

1035
00:49:25,300 --> 00:49:29,300
Weil ich mache meistens Sachen, die eigentlich auch öffentlich sein dürften.

1036
00:49:29,300 --> 00:49:33,300
Aber ja, wenn jetzt etwas ganz Geheimnis ist, würde ich es trotzdem nicht hier reinkopieren.

1037
00:49:33,300 --> 00:49:34,300
Man weiss ja nie.

1038
00:49:34,300 --> 00:49:36,300
Man kann es auch untersuchen, wenn man möchte.

1039
00:49:36,300 --> 00:49:41,300
Dann, wenn der Notrufcode zu lang ist, weil eben die URL zu kurz wird.

1040
00:49:41,300 --> 00:49:42,300
Nein, nicht die URL.

1041
00:49:42,300 --> 00:49:44,300
Die Adresszeichen zu klein sind.

1042
00:49:44,300 --> 00:49:46,300
Ihr habt aber gesehen, was da alles reinpasst.

1043
00:49:46,300 --> 00:49:48,300
Zum Beispiel der Chatbot Companion.

1044
00:49:48,300 --> 00:49:53,300
Der ist ja, ich weiss nicht, 200, 300, 400 Zeilen, ich weiss nicht mehr genau, lang.

1045
00:49:53,300 --> 00:49:54,300
Und nachher, ich weiss nicht, wie viele tausend Zeichen.

1046
00:49:54,300 --> 00:50:01,300
Aber wenn das doch mal zu lang wäre, gibt es so eine Webseite, die heisst Bookmarkletter.

1047
00:50:01,300 --> 00:50:08,300
Man kann auch da, gibt es auf GitHub das Ganze, wenn man es selber betreiben möchte.

1048
00:50:08,300 --> 00:50:13,300
Da kann man sagen, dass er zum Beispiel die URL-Encoding macht, wenn man das möchte.

1049
00:50:13,300 --> 00:50:18,300
Man kann sagen, dass er noch eine Funktion da rumlegt, damit das sicher als Bookmarkletter funktioniert.

1050
00:50:18,300 --> 00:50:23,300
Er macht auch eine Art Office, ich kann das Wort nicht sagen.

1051
00:50:23,300 --> 00:50:25,300
Diese Variablen kürzer.

1052
00:50:25,300 --> 00:50:29,300
Und dass man nicht weiss, was die Variablen, Namen und Funktionen bedeuten.

1053
00:50:29,300 --> 00:50:32,300
Aber vor allem, um Platz zu sparen, damit es kürzer wird.

1054
00:50:32,300 --> 00:50:35,300
Also man kann da wie so Sachen noch machen.

1055
00:50:35,300 --> 00:50:43,300
Und wenn man zum Beispiel jQuery in seinem Bookmarklet verwenden möchte, kann man auch gerade noch, dass er die Library dazu packt.

1056
00:50:43,300 --> 00:50:46,300
Dann kann ich auch direkt jQuery im Bookmarklet verwenden.

1057
00:50:46,300 --> 00:50:49,300
Auch auf Seiten, wo jQuery nicht schon vorhanden ist.

1058
00:50:49,300 --> 00:50:52,300
Also das sind auch so eine coole Seite, wenn man das gerne möchte, verkleinern möchte.

1059
00:50:53,300 --> 00:50:56,300
Aber dann ist es halt nachher eben, wenn man es weiter bearbeitet, muss man es original behalten.

1060
00:50:56,300 --> 00:51:00,300
Damit man noch nicht selber sich Reveurs ingenieren muss.

1061
00:51:00,300 --> 00:51:02,300
Genau.

1062
00:51:02,300 --> 00:51:07,300
Dann, was mir sehr oft Kopfzerbrechen bereitet hat, und darum fahre ich mit der Maus darüber wieder.

1063
00:51:11,300 --> 00:51:14,300
Ich sage, mach mir mal eine kleine Funktion, die ich da in meinem Bookmarklet brauche.

1064
00:51:14,300 --> 00:51:17,300
Ich mache da immer Kommentare rein, nur mit diesen zwei Strichen.

1065
00:51:17,300 --> 00:51:18,300
Schrägstrichen.

1066
00:51:18,300 --> 00:51:22,300
Und wenn ich die dann in die Adresszeile rein packe, wo alles auf einer Zeile steht,

1067
00:51:22,300 --> 00:51:25,300
ist also alles, was hinter diesen zwei Strichen ist, Kommentar.

1068
00:51:25,300 --> 00:51:28,300
Und dann funktioniert das Bookmarklet nicht mehr.

1069
00:51:28,300 --> 00:51:32,300
Darum muss man dem Chatbot eigentlich immer sagen, am besten von Anfang an,

1070
00:51:32,300 --> 00:51:40,300
er soll nur solche C-Style Kommentare machen, mit diesem Schrägstrichstern am Schluss.

1071
00:51:40,300 --> 00:51:45,300
Dann funktioniert das Bookmarklet auch mit Kommentaren noch.

1072
00:51:45,300 --> 00:51:46,300
Genau.

1073
00:51:46,300 --> 00:51:49,300
Also, dann noch zusammenfassen.

1074
00:51:49,300 --> 00:51:51,300
Javascript ist dann 3D.

1075
00:51:51,300 --> 00:51:54,300
Javascript ist dann treuer Droide im digitalen Raum.

1076
00:51:54,300 --> 00:51:56,300
Da kann man sehr viel damit machen.

1077
00:51:56,300 --> 00:52:00,300
Nutze die Macht aber weise, junger Padwan.

1078
00:52:00,300 --> 00:52:02,300
Also keinen Unsinn betreiben.

1079
00:52:02,300 --> 00:52:05,300
Und teile dein Wissen, das stärkt die ganze Rebellion.

1080
00:52:05,300 --> 00:52:07,300
Vielen Dank.

1081
00:52:14,300 --> 00:52:15,300
Ja, vielen Dank.

1082
00:52:15,300 --> 00:52:20,300
Und dann übergebe ich mal ans Publikum für Fragen, für eure Fragen.

1083
00:52:21,300 --> 00:52:23,300
Wer möchte denn beginnen?

1084
00:52:23,300 --> 00:52:28,300
Ja.

1085
00:52:28,300 --> 00:52:35,300
Ich programmiere selber Javascript, aber war bis jetzt immer nur bei Dateien.

1086
00:52:35,300 --> 00:52:42,300
Jetzt verstehe ich das so, dass statt Dateien nur Adresszeilen genutzt werden,

1087
00:52:42,300 --> 00:52:44,300
um Javascript auszuführen.

1088
00:52:44,300 --> 00:52:49,300
Ich sehe da aber das Problem, wenn ich das jetzt bearbeiten möchte.

1089
00:52:49,300 --> 00:52:53,300
Wenn ich jetzt das Skript bearbeiten möchte, diesen Einzeiler.

1090
00:52:53,300 --> 00:52:54,300
Wie bearbeite ich das?

1091
00:52:54,300 --> 00:52:56,300
Muss ich das im externen Editor öffnen?

1092
00:52:56,300 --> 00:53:01,300
Und wo ist aus Ihrer Sicht der Vorteil zu einer Datei?

1093
00:53:01,300 --> 00:53:02,300
Ah, okay.

1094
00:53:02,300 --> 00:53:09,300
Ja, also was ich mal auch ausbauen könnte bei meinem Lesezeichen 2, 1 könnte ich auch anschauen.

1095
00:53:09,300 --> 00:53:12,300
Da hatte ich noch ein bisschen weniger so Tricks drin.

1096
00:53:12,300 --> 00:53:18,300
Was man noch überlegen könnte, man könnte zum Beispiel seine Bookmarklets auf GitHub oder so als Datei ablegen.

1097
00:53:18,300 --> 00:53:25,300
Und dann halt im Bookmarklet drin eigentlich nur noch sagen, welches Skript geladen werden sollte.

1098
00:53:25,300 --> 00:53:29,300
Und dann könnte ich ganz normal mit meiner normalen Entwicklungsumgebung arbeiten.

1099
00:53:29,300 --> 00:53:33,300
Aber ich weiß nicht genau, ich mache es eigentlich meistens so, genau wie ich es gezeigt habe.

1100
00:53:33,300 --> 00:53:42,300
Ich klicke da rechts auf das Bearbeiten Ding, kopiere mir das hier raus, gehe auf diese Seite hier,

1101
00:53:42,300 --> 00:53:45,300
füge das ein und mache wieder Formatierung daraus.

1102
00:53:45,300 --> 00:53:47,300
Und dann meistens editiere ich es sogar direkt hier.

1103
00:53:47,300 --> 00:53:51,300
Und dann wechsle ich immer hin und her zwischen dem, ja so.

1104
00:53:51,300 --> 00:53:55,300
Aber eben wenn man jetzt einen professionellen Bookmarklet-Entwickler werden möchte,

1105
00:53:55,300 --> 00:54:01,300
würde ich wahrscheinlich dann auch auf den GitHub oder einer anderen Versionskontrolle umsteigen.

1106
00:54:01,300 --> 00:54:05,300
Weil wenn zum Beispiel längere Bookmarklets, die sind mühsam so.

1107
00:54:05,300 --> 00:54:08,300
Weil die dann nicht mehr funktionieren mit diesem wieder zurückformatieren.

1108
00:54:08,300 --> 00:54:14,300
Und da habe ich dann meistens eine Datei irgendwo, auch als Backup für den Fall, dass ich mal was kaputt mache.

1109
00:54:14,300 --> 00:54:16,300
Aber ja, sauberer wäre ein anderer Workflow.

1110
00:54:16,300 --> 00:54:17,300
Ja.

1111
00:54:17,300 --> 00:54:21,300
Okay, weitere Fragen?

1112
00:54:33,300 --> 00:54:35,300
Vielen Dank für den interessanten Vortrag.

1113
00:54:35,300 --> 00:54:38,300
Geht es so ein bisschen in eine ähnliche Richtung?

1114
00:54:38,300 --> 00:54:45,300
Also ist diese kurierte Sammlung vielleicht irgendwo zur Verfügung, dass man davon lernen kann,

1115
00:54:45,300 --> 00:54:46,300
also auch daran arbeiten kann zum Beispiel?

1116
00:54:46,300 --> 00:54:51,300
Ich habe das allerwenigste irgendwo veröffentlicht.

1117
00:54:51,300 --> 00:54:53,300
Eigentlich nichts, weil es alles da ist.

1118
00:54:53,300 --> 00:54:55,300
Außer, habe ich es noch auf?

1119
00:54:55,300 --> 00:54:57,300
Ich habe es nicht mehr auf.

1120
00:54:57,300 --> 00:55:00,300
Ich habe letztens das ein paar Leuten gezeigt.

1121
00:55:00,300 --> 00:55:09,300
Dann habe ich meinen Chat, meinen, diesen Chatbot-Companion, den habe ich da auf dem Internet kopiert.

1122
00:55:09,300 --> 00:55:14,300
Aber ich kann ja vielleicht noch das eine oder andere dann, ich habe gehört, man kann Links machen.

1123
00:55:14,300 --> 00:55:25,300
Kann ich vielleicht das eine oder andere noch, zum Beispiel die Slides sicher noch in die Beschreibung reinpacken beim Talk und dann sollten die nachher da sein.

1124
00:55:25,300 --> 00:55:28,300
Weil ich so knapp fertig war, habe ich es nicht schon gemacht.

1125
00:55:28,300 --> 00:55:31,300
Also ich schaue, ob das klappt, dann packe ich da noch was rein.

1126
00:55:31,300 --> 00:55:36,300
Und sonst kommst du nachher zu mir und da kann ich dir auch direkt die Sachen geben, die dich am meisten interessieren.

1127
00:55:36,300 --> 00:55:42,300
Und dann musst du ja auch nicht ganz alles irgendwie veröffentlicht irgendwo und dann pflegen und so weiter.

1128
00:55:42,300 --> 00:55:45,300
Ja, wie gesagt, es ist mehr Basteln.

1129
00:55:45,300 --> 00:55:47,300
Ich sage immer ich bastle.

1130
00:55:47,300 --> 00:55:50,300
Hacken kann man schon auch sagen, aber ich sage meistens ich bastle.

1131
00:55:50,300 --> 00:55:57,300
Und ja, und halt Dinge, die mir Spaß machen und die sind mal eine Woche, zwei, einen Monat interessant.

1132
00:55:57,300 --> 00:56:03,300
Und manche Dinge verschwinden dann wieder und dann, ja.

1133
00:56:03,300 --> 00:56:07,300
Also ich, auch erst nochmal vielen Dank für die ganzen Inputs.

1134
00:56:07,300 --> 00:56:09,300
Also es sprudelt gerade in meinem Gehirn.

1135
00:56:09,300 --> 00:56:11,300
Ich hätte gerne nochmal ein paar Antworten zu.

1136
00:56:11,300 --> 00:56:13,300
Ein paar Antworten zum Thema Grafik.

1137
00:56:13,300 --> 00:56:15,300
Wir haben einmal kurz dieses Spiel gesehen.

1138
00:56:15,300 --> 00:56:18,300
Ich habe auch schon probiert mit JavaScript und Grafik zu arbeiten.

1139
00:56:18,300 --> 00:56:22,300
Meine Frage, SVG, Canvas oder was ganz anderes?

1140
00:56:22,300 --> 00:56:27,300
Es gibt verschiedene Schnittstellen für Grafiken.

1141
00:56:27,300 --> 00:56:32,300
Das Spiel jetzt hier am Speziellen, das habe ich, ich habe da heute Nachmittag eigentlich noch dran.

1142
00:56:32,300 --> 00:56:36,300
Und dann habe ich so ein bisschen Feedback vom Chatbot geholt.

1143
00:56:36,300 --> 00:56:40,300
Und der hat gefunden, es wäre noch lustig, ein Spiel da einzubauen.

1144
00:56:40,300 --> 00:56:42,300
Und dann habe ich gesagt, ja gut, machen wir mal eins.

1145
00:56:42,300 --> 00:56:44,300
Und das ist das Thema.

1146
00:56:44,300 --> 00:56:51,300
Und es ist jetzt glaube ich tatsächlich, es ist glaube ich, jetzt muss ich überlegen, meistens ist es SVG oder ist es ein Canvas.

1147
00:56:51,300 --> 00:56:53,300
Also Canvas oder SVG geht es.

1148
00:56:53,300 --> 00:56:56,300
Das Logo hier zum Beispiel ist ein SVG.

1149
00:56:56,300 --> 00:56:58,300
Aber es kann auch Canvas sein.

1150
00:56:58,300 --> 00:57:04,300
Da kann man auch direkt dann immer wieder Dinge draufmalen.

1151
00:57:04,300 --> 00:57:05,300
Ja genau.

1152
00:57:05,300 --> 00:57:09,300
Aber wenn man es skalierbar möchte, macht man es eigentlich sinnigerweise besser, gerade als SVG-Spiel.

1153
00:57:09,300 --> 00:57:15,300
Weil dann hat man nachher auch jede Auflösung, kann man skalieren und machen.

1154
00:57:15,300 --> 00:57:22,300
Ja, aber ja, die zwei Möglichkeiten.

1155
00:57:22,300 --> 00:57:25,300
Ich war auch am überlegen, ob ich nach dem Code von dem Spiel frage.

1156
00:57:25,300 --> 00:57:28,300
Ah, wenn ich die Slides hier irgendwie veröffentliche, ist das ja da drin.

1157
00:57:28,300 --> 00:57:31,300
Ist dann einfach Folie, welche war es?

1158
00:57:31,300 --> 00:57:33,300
Weil das war jetzt einfach auch mal ein anderes Thema.

1159
00:57:33,300 --> 00:57:35,300
Darum sind es jetzt 13, ich wollte eigentlich 12.

1160
00:57:35,300 --> 00:57:37,300
Dann habe ich das Spiel noch als Interlude, wie bei Filmen, oder?

1161
00:57:37,300 --> 00:57:38,300
Interlude.

1162
00:57:38,300 --> 00:57:40,300
Wie bei Star Wars gethemed ist.

1163
00:57:40,300 --> 00:57:41,300
Also ein Interlude.

1164
00:57:41,300 --> 00:57:43,300
Asteroidenfeld nach dem Han Solo.

1165
00:57:43,300 --> 00:57:45,300
Und das hat dann einfach so zusammenge...

1166
00:57:45,300 --> 00:57:47,300
Also es ist unglaublich, oder, eigentlich?

1167
00:57:47,300 --> 00:57:48,300
Der Claude ist...

1168
00:57:48,300 --> 00:57:50,300
Also da war wieder Claude.

1169
00:57:50,300 --> 00:57:52,300
Dann habe ich zwei, drei Korrekturen noch gefragt.

1170
00:57:52,300 --> 00:57:55,300
Dann habe ich selber noch zwei, drei Dinge angepasst, die mir nicht gefallen haben.

1171
00:57:55,300 --> 00:57:57,300
Zum Beispiel ist jetzt der Num-Block zum Steuern.

1172
00:57:57,300 --> 00:58:02,300
Weil das Reveal.js braucht ja auch viele Tastaturabkürzungen.

1173
00:58:02,300 --> 00:58:06,300
Und wenn ich dann die gleichen Pfeile und so weiter für die Präsentation brauche,

1174
00:58:06,300 --> 00:58:08,300
und dann geht das Spiel ja nicht richtig, oder?

1175
00:58:08,300 --> 00:58:10,300
Dann geht eben die Folie weg.

1176
00:58:10,300 --> 00:58:13,300
Darum habe ich dann einfach das noch umgestellt auf den Num-Block,

1177
00:58:13,300 --> 00:58:15,300
wo halt dann Zahlen zum Spielen gedacht sind.

1178
00:58:15,300 --> 00:58:19,300
Darum sind die Zahlen, dass es in der Flight drin gerade funktioniert.

1179
00:58:19,300 --> 00:58:21,300
Also so kleine Tricks.

1180
00:58:21,300 --> 00:58:23,300
Da muss man halt dann selber doch auch wieder Hand anlegen

1181
00:58:23,300 --> 00:58:26,300
und den Code ein bisschen verstehen und anpassen.

1182
00:58:28,300 --> 00:58:29,300
Okay.

1183
00:58:29,300 --> 00:58:32,300
Wir hätten noch Zeit für eine kurze Frage, wenn es noch eine gäbe.

1184
00:58:35,300 --> 00:58:37,300
Dann danke ich nochmal ganz herzlich.

1185
00:58:37,300 --> 00:58:40,300
Und Applaus für unseren Sprecher.

